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 Shell társítás tömbök használatával lekérdezi az előre definiált beállításjegyzék-helyeket, amelyek információkat tartalmazhatnak 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 olyan verb elemeket, amelyek csak egy adott fájltípushoz (például .jpg) jelennek meg, vagy az azonos System.Kind (például System.kind = kép) elemhez vagy az összes elemhez.

A Shell társítás tömbök használatával lekérdezi a beállításjegyzék azon előre definiált helyeit, amelyek esetleg információkat tartalmazhatnak az elemről. 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ések egy előre definiált beállításjegyzék-helyet tartalmaztak az 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 az elemekre vonatkozó információk tárolásához legmegfelelőbb helyről Shell .

Egy alapértelmezett Windows rendszeren egy .jpg-fájl a következő társítástömböt tartalmazza:

  • \ HKEY_CLASSES_ROOTjpgfile
  • \ HKEY_CLASSES_ROOTSystemFileAssociations\.jpg
  • HKEY_CLASSES_ROOT\kép
  • HKEY_CLASSES_ROOT\*
  • \ HKEY_CLASSES_ROOTAllFilesystemObjects

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 egy tartományából, a legspecifikusabb beállításkulcsból az összes beállításkulcsra vonatkozó információ egy szuperhalmazára kérik le az információkat.

A társítótömbök leggyakoribb használata egyetlen érték lekérdezése, amelyet a Shell kért információt 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 Shell 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. Shell Az adatforrás-megvalósítóknak meg kell határozniuk és dokumentálniuk a társítási tömböket, hogy az alkalmazások bővíthessék az ilyen típusú alkalmazások 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_ROOTAllFilesystemObjects Fájlok és fájlrendszermappák
    HKEY_CLASSES_ROOT\Címtár Fájlrendszermappák
    HKEY_CLASSES_ROOT\mappa Shell Konténerek

     

Shell Adatforrás-társítás tömbjei

Az alábbi lista néhány Shell olyan adattártársítási tömböt jelöl, amelyek a jelen témakörben leírt célokra használhatók:

  • HKEY_CLASSES_ROOT\*
  • \ HKEY_CLASSES_ROOTAllFilesystemObjects
  • \ HKEY_CLASSES_ROOTKind.Document
  • HKEY_CLASSES_ROOT\eredmények
  • \ HKEY_CLASSES_ROOTSystemFileAssociations\.docx
  • \ HKEY_CLASSES_ROOTWord.Document.12

Shell A DBFolderhez használható adatforrás-társítási tömbök (a Shell keresési eredményekben és a lekérdezésalapú nézetekben lévő elemeket megjelenítő adattár) a következők:

  • Meghajtók
  • Hálózat
  • RegItems
  • Példák:
    • Tartalommegjelenítő
    • 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