Társítás tömbök
A társítástömb a beállításjegyzék azon helyeinek rendezett listája, amelyeket egy elemtípus adatainak tárolására használnak, beleértve a kezelőket, az igéket és más attribútumokat, például a típus ikonját és megjelenítendő nevét. A Rendszerhéj társítástömbök használatával kérdez le egy előre definiált beállításjegyzék-helyet, amely információkat tartalmazhat egy Shell-elemről.
Ez a témakör a következőképpen van rendszerezve:
- A társítástömbök
- társítási tömbök lekérdezése
- Társítás tömbök használata adott shell-adatforráshoz
- További erőforrások
- Kapcsolódó témakörök
Tudnivalók a társítástömbökről
A társítástömb a beállításjegyzék helyeinek rendezett listája, amely egy elemtípussal kapcsolatos információkat tartalmaz, beleértve a kezelőket, az igéket és más attribútumokat, például a típus ikonját és megjelenítendő nevét. Az elemtípusra vonatkozó információk különböző specifikus szinteken regisztrálhatók. Regisztrálhat például egy olyan igét, amely csak egy adott fájltípushoz (például .jpg) fog megjelenni, vagy az azonos System.Kind (például System.kind = kép) vagy az összes elemhez.
A Rendszerhéj társítástömbök használatával kérdez le egy előre definiált beállításjegyzék-helyet, amely esetleg információkat tartalmazhat az elemet illetően. A társítástömb API-kkal a beállításkulcs alkulcsából egyetlen, a kért információt tartalmazó érték kérhető le, amely az azt biztosító tömb első bejegyzéséből származik. A rendszer például így kéri le az alapértelmezett ikonértéket. A társítás tömb a beállításjegyzék alkulcsaiban tárolt értékek készletének lekérésére is használható. Az igék listája például az összes alkulcs alatt regisztrált igékből épül fel.
Miután a Shell lekérdez egy előre definiált beállításjegyzék-helyet a Shell-elemekkel kapcsolatos információkért, a beállításjegyzék helyeit egy tömbbe helyezi, a legspecifikusabb helytől a legátfogalmasabbig.
Mivel a társítástömbök rendezett listák, az alkalmazásfejlesztők számára olyan mechanizmust biztosítanak, amellyel adatokat adhatnak hozzá a beállításjegyzékhez, amelyeket egy adott elemtípushoz adnak vissza. Hasonlóképpen, a társítási tömbök lehetővé teszik az alkalmazásfejlesztők számára, hogy adatokat adjanak a beállításjegyzékhez egy adott elemcsoporthoz, ha ezek az elemek egy általánosabb helyen vannak regisztrálva. Ez a logika tájékoztatja a döntést a beállításjegyzékben a Shell-elemekre vonatkozó információk tárolásához legmegfelelőbb helyről.
Egy alapértelmezett Windows rendszeren egy .jpg-fájl a következő társítástömböt tartalmazza:
- HKEY_CLASSES_ROOT\jpgfile
- HKEY_CLASSES_ROOT\SystemFileAssociations\.jpg
- HKEY_CLASSES_ROOT\kép
- HKEY_CLASSES_ROOT\*
- HKEY_CLASSES_ROOT\AllFilesystemObjects
A társítási tömbök regisztrálásával kapcsolatos információkért lásd alkalmazásregisztrációs.
Társítási tömbök lekérdezése
Vannak Shell API-k, amelyek a beállításjegyzék alkulcsainak tartományából, a beállításjegyzék legspecifikusabb alkulcsától az összes beállításjegyzék-alkulcs információinak egy szuperhalmazához kérnek le adatokat.
A társítótömbök leggyakoribb használata egyetlen érték lekérdezése, amelyet a Rendszerhéj a kért adatokat tartalmazó tömb legspecifikusabb eleméből ad vissza. Az alábbi példakód bemutatja, hogyan teheti ezt meg.
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();
}
A következő API-k használhatók társítási tömb lekérdezésére vagy társítási tömb IQueryAssociations lekérdezhető objektum létrehozására:
- AssocCreate (Windows Vista előtt)
- AssocCreateForClasses
- AssocQueryString
Társítástömbök használata egy adott rendszerhéj-adatforráshoz
Minden Shell-adatforrás meghatározza az elemek társítástömbjét. A társítástömbök meghatározása általában az elem típusának függvénye. A Shell adatforrás-implementálóinak meg kell határozniuk és dokumentálnia kell a társítási tömböket, hogy az alkalmazások bővíthessék az ilyen típusúak viselkedését, például az igék vagy egyéb információk regisztrálásához. Az alkalmazások kiterjeszthetik az elemek viselkedését az adatok társítástömb-alkulcsokhoz való hozzáadása alapján, például az elemekhez tartozó igék hozzáadásával.
A fájlrendszer adatforrása a következő beállításjegyzék-alkulcsok és speciális ProgID-k alapján hoz létre társítástömböt a fájlokhoz:
Ha a fájl regisztrált ProgID azonosítóval rendelkezik, HKEY_CLASSES_ROOT\ProgID lesz használva. Ellenkező esetben HKEY_CLASSES_ROOT\Ismeretlen használ.
A fájlnévkiterjesztés regisztrálva van HKEY_CLASSES_ROOT\SystemFileAssociations\.fileExtension alkulcs alatt.
A speciális progID-k az alábbi táblázatban láthatók.
Speciális progID Leírás HKEY_CLASSES_ROOT\* Minden fájl (nem mappák) HKEY_CLASSES_ROOT\AllFilesystemObjects Fájlok és fájlrendszermappák HKEY_CLASSES_ROOT\Címtár Fájlrendszermappák HKEY_CLASSES_ROOT\mappa Shell-tárolók
Rendszerhéj adatforrás-társítás tömbjei
Az alábbi lista a Shell adattár-társítás tömbjeinek egy részét jelöli, amelyek a jelen témakörben leírt célokra használhatók:
- HKEY_CLASSES_ROOT\*
- HKEY_CLASSES_ROOT\AllFilesystemObjects
- HKEY_CLASSES_ROOT\Kind.Document
- HKEY_CLASSES_ROOT\eredmények
- HKEY_CLASSES_ROOT\SystemFileAssociations\.docx
- HKEY_CLASSES_ROOT\Word.Document.12
A DBFolderhez használható Shell-adatforrás-társítási tömbök (a keresési eredményekben és a lekérdezésalapú nézetekben lévő elemeket képviselő Shell-adattár) a következők:
- Meghajtók
- Hálózat
- RegItems
- Példák:
- ContentView
- Igék
Más gyakori társítástömbök közé tartoznak a mappák és a nyomtatók.
További erőforrások
- Shell-adattár létrehozásához lásd: Az alapszintű mappaobjektum-felületek implementálása.
Kapcsolódó témakörök