Megosztás a következőn keresztül:


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:

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:

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

alkalmazásregisztrációs

fájltípusok

Fájltársítások működése

tartalomnézet fájltípus vagy kind szerint

Fájltípus-ellenőrző

fájltípus-kezelők

programozott azonosítók

észlelt típusok