Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Array asosiasi adalah daftar lokasi registri yang diurutkan yang digunakan untuk menyimpan informasi tentang jenis item, termasuk handler, kata kerja, dan atribut lainnya seperti ikon dan nama tampilan jenis. menggunakan Shell array asosiasi untuk mengkueri sekumpulan lokasi registri yang telah ditentukan sebelumnya yang mungkin berisi informasi tentang item Shell .
Topik ini diatur sebagai berikut:
- Tentang Array Asosiasi
- Mengkueri Array Asosiasi
- Bekerja dengan Array Asosiasi untuk Sumber Data Tertentu Shell
- Sumber Tambahan
- Topik terkait
Tentang Array Asosiasi
Array asosiasi adalah daftar lokasi registri yang diurutkan yang berisi informasi tentang jenis item, termasuk handler, kata kerja, dan atribut lainnya seperti ikon dan nama tampilan jenis. Informasi tentang jenis item ini dapat didaftarkan pada berbagai tingkat kekhususan. Misalnya, Anda dapat mendaftarkan verb yang hanya akan muncul untuk jenis file tertentu (seperti .jpg), atau untuk semua item dengan System.Kind yang sama (misalnya, System.kind = picture), atau untuk semua item.
Shell menggunakan array asosiasi untuk mengkueri sekumpulan lokasi registri yang telah ditentukan sebelumnya yang mungkin berpotensi berisi informasi tentang item tersebut. API array asosiasi dapat digunakan untuk mengambil dari subkuncu registri satu nilai yang berisi informasi yang diminta, dengan nilai tersebut berasal dari entri pertama dalam array yang menyediakannya. Misalnya, nilai ikon default diambil dengan cara ini. Array asosiasi juga dapat digunakan untuk mengambil sekumpulan nilai yang disimpan dalam subkuntang registri. Misalnya, daftar kata kerja dibangun dari kata kerja yang terdaftar di bawah semua subkunji.
Shell Setelah kueri sekumpulan lokasi registri yang telah ditentukan sebelumnya untuk informasi tentang itemShell, itu menempatkan lokasi registri ke dalam array secara berurutan dari lokasi yang paling spesifik ke yang paling umum.
Karena array asosiasi adalah daftar yang diurutkan, array tersebut menyediakan mekanisme kepada pengembang aplikasi untuk menambahkan informasi ke registri yang akan dikembalikan untuk jenis item tertentu. Demikian juga, array asosiasi mengizinkan pengembang aplikasi untuk menambahkan informasi ke registri untuk sekelompok item tertentu ketika item tersebut terdaftar di lokasi yang lebih umum. Logika ini menginformasikan keputusan Anda tentang lokasi yang paling tepat di registri untuk menyimpan informasi tentang Shell item.
Pada sistem Windows default, file .jpg memiliki array asosiasi berikut:
- \ HKEY_CLASSES_ROOTjpgfile
- \ HKEY_CLASSES_ROOTSystemFileAssociations\.jpg
- \ HKEY_CLASSES_ROOTcitra
- HKEY_CLASSES_ROOT\*
- \ HKEY_CLASSES_ROOTAllFilesystemObjects
Untuk informasi tentang mendaftarkan array asosiasi, lihat Pendaftaran Aplikasi.
Mengkueri Array Asosiasi
Ada Shell API untuk mengambil informasi dari berbagai subkuntang registri, dari subkuntang registri yang paling spesifik hingga superset informasi di semua subkuntang registri.
Penggunaan array asosiasi yang paling umum adalah mengkueri satu nilai yang Shell dikembalikan dari elemen paling spesifik dalam array yang memiliki informasi yang diminta. Contoh kode berikut menunjukkan cara melakukannya.
IQueryAssociations *pqa;
// pShellItem is assumed to be an existing IShellItem object.
hr = pShellItem->BindToHandler(NULL, BHID_AssociationArray, IID_PPV_ARGS(&pqa));
if (SUCCEEDED(hr))
{
wchar_t szValue[256];
DWORD cbValue = sizeof(szValue); // Count of bytes in the array
hr = pqa->GetData(0, ASSOCDATA_VALUE, L"InfoTip", szValue, &cbValue);
if (SUCCEEDED(hr))
{
// The "InfoTip" value is used to compute the infotip string from
// properties of an item.
}
pqa->Release();
}
API berikut dapat digunakan untuk mengkueri array asosiasi atau untuk membuat objek IQueryAssociations array asosiasi yang dapat dikueri:
- AssocCreate (sebelum Windows Vista)
- AssocCreateForClasses
- AssocQueryString
Bekerja dengan Array Asosiasi untuk Sumber Data Tertentu Shell
Setiap Shell sumber data menentukan array asosiasi untuk itemnya. Menentukan array asosiasi biasanya merupakan fungsi dari jenis item. Shell pelaksana sumber data harus menentukan dan mendokumentasikan array asosiasi untuk memungkinkan aplikasi memperluas perilaku jenis tersebut, seperti untuk mendaftarkan kata kerja atau informasi lainnya. Aplikasi dapat memperluas perilaku item berdasarkan penambahan data ke subkuntang array asosiasi, seperti menambahkan kata kerja untuk item.
Sumber data sistem file membangun array asosiasi untuk file berdasarkan subkuntang registri berikut dan ProgID khusus:
Jika file memiliki ProgID terdaftar, HKEY_CLASSES_ROOT\ProgID digunakan. Jika tidak , HKEY_CLASSES_ROOT\Tidak Diketahui digunakan.
Ekstensi nama file terdaftar di bawah subkuncisystemFileAssociations.fileExtension\ HKEY_CLASSES_ROOT\.
ProgID khusus diperlihatkan dalam tabel berikut.
ProgID khusus Deskripsi HKEY_CLASSES_ROOT\* Semua file (non-folder) \ HKEY_CLASSES_ROOTAllFilesystemObjects Folder sistem file dan file \ HKEY_CLASSES_ROOTDirektori Folder sistem file \ HKEY_CLASSES_ROOTMap Shell Wadah
Shell Array Asosiasi Sumber Data
Daftar berikut ini mewakili beberapa Shell array asosiasi penyimpanan data yang dapat digunakan untuk tujuan yang dijelaskan dalam topik ini:
- HKEY_CLASSES_ROOT\*
- \ HKEY_CLASSES_ROOTAllFilesystemObjects
- \ HKEY_CLASSES_ROOTKind.Document
- \ HKEY_CLASSES_ROOTHasil
- \ HKEY_CLASSES_ROOTSystemFileAssociations\.docx
- \ HKEY_CLASSES_ROOTWord.Document.12
Shell array asosiasi sumber data yang dapat digunakan untuk DBFolder (penyimpanan Shell data yang mewakili item dalam hasil pencarian dan tampilan berbasis kueri) adalah sebagai berikut:
- Penggerak
- Jaringan
- RegItems
- Contoh:
- ContentView
- Kata kerja
Array asosiasi umum lainnya termasuk Folder dan Printer.
Sumber Daya Tambahan
- Untuk membuat penyimpanan Shell data, lihat Menerapkan Antarmuka Objek Folder Dasar.
Topik terkait