Metode IShellItemArray::GetAttributes (shobjidl_core.h)

Mendapatkan atribut set item yang terkandung dalam IShellItemArray. Jika array berisi lebih dari satu item, atribut yang diambil oleh metode ini bukan atribut item tunggal, tetapi kombinasi logis dari semua atribut yang diminta dari semua item.

Sintaks

HRESULT GetAttributes(
  [in]  SIATTRIBFLAGS AttribFlags,
  [in]  SFGAOF        sfgaoMask,
  [out] SFGAOF        *psfgaoAttribs
);

Parameter

[in] AttribFlags

Jenis: SIATTRIBFLAGS

Jika array berisi satu item, metode ini memberikan hasil yang sama dengan GetAttributes. Namun, jika array berisi beberapa item, set atribut dari semua item digabungkan ke dalam satu set atribut dan dikembalikan dalam nilai yang ditujukkan oleh psfgaoAttribs. Parameter ini mengambil salah satu nilai berikut untuk menentukan bagaimana set atribut akhir ditentukan:

SIATTRIBFLAGS_AND (0x00000001)

0x00000001. Jika ada beberapa item dalam array, gunakan BITWISE AND untuk menggabungkan atribut di seluruh item. Misalnya, jika array berisi dua item di mana satu item dapat dipindahkan (SFGAO_CANMOVE) dan item kedua tidak dapat, metode mengembalikan (1 & 0) atau 0 untuk bit atribut tersebut.

SIATTRIBFLAGS_OR (0x00000002)

0x00000002. Jika ada beberapa item dalam array, gunakan bitwise OR untuk menggabungkan atribut di seluruh item. Misalnya, jika array berisi dua item di mana satu item dapat dipindahkan (SFGAO_CANMOVE) dan item kedua tidak dapat, metode mengembalikan (1 | 0) atau 1 untuk bit atribut tersebut.

SIATTRIBFLAGS_APPCOMPAT (0x00000003)

0x00000003. Ambil atribut langsung dari sumber data Shell. Untuk menggunakan nilai ini, array item Shell harus diinisialisasi sebagai IShellFolder dengan kontennya yang ditentukan sebagai array PIDL anak.

SIATTRIBFLAGS_MASK (0x00000003)

0x00000003. Masker untuk SIATTRIBFLAGS_AND, SIATTRIBFLAGS_OR, dan SIATTRIBFLAGS_APPCOMPAT. Penelepon biasanya tidak menggunakan nilai ini.

SIATTRIBFLAGS_ALLITEMS (0x00004000)

0x00004000. Windows 7 dan yang lebih baru. Periksa semua item dalam array untuk menghitung atribut. Perhatikan bahwa ini dapat mengakibatkan performa yang buruk atas array besar dan oleh karena itu harus digunakan hanya ketika diperlukan. Kasus di mana Anda meneruskan bendera ini harus sangat jarang terjadi. Lihat Keterangan untuk detail selengkapnya.

[in] sfgaoMask

Jenis: SFGAOF

Masker yang menentukan atribut tertentu yang diminta. Bitwise OR dari satu atau beberapa nilai SFGAO .

[out] psfgaoAttribs

Jenis: SFGAOF*

Bitmap yang, ketika metode ini berhasil dikembalikan, berisi nilai atribut yang diminta.

Nilai kembali

Jenis: HRESULT

Mengembalikan S_OK jika atribut yang dikembalikan sama persis dengan yang diminta di sfgaoMask, S_FALSE jika atribut tidak sama persis, atau nilai kesalahan COM standar sebaliknya.

Keterangan

Array item Shell menyimpan atribut individual setelah ditentukan.

Saat metode ini melewati informasi atribut pengumpulan array, biasanya berhenti melihat atribut tertentu setelah nilai tersebut ditetapkan secara tidak dapat ditarik kembali. Misalnya, jika bendera SIATTRIBFLAGS_AND diatur, setelah atribut ditemukan tidak diatur pada item (nilai 0), tidak perlu terus memeriksa nilai atribut tersebut pada item lain karena hasil operasi AND akan selalu 0. Oleh karena itu, kumpulan atribut akhir umumnya dihitung dengan hanya melihat beberapa item pertama dalam array, yaitu semua yang diperlukan untuk mendapatkan nilai akhir. Jika Anda memiliki kebutuhan untuk memeriksa semua item dalam array, atur bendera SIATTRIBFLAGS_ALLITEMS. Namun, ketahuilah bahwa ini dapat memperlambat pengembalian metode secara besar-besaran, jadi jangan melakukannya tanpa penyebab.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header shobjidl_core.h (termasuk Shobjidl.h)