Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma matriz de associação é uma lista ordenada de locais do Registro usados para armazenar informações sobre um tipo de item, incluindo manipuladores, verbos e outros atributos, como o ícone e o nome para exibição do tipo. O Shell usa matrizes de associação para consultar um conjunto predefinido de locais do Registro que podem conter informações sobre um Shell item.
Este tópico está organizado da seguinte forma:
- Sobre matrizes de associação
- Consultando matrizes de associação
- Trabalhando com matrizes de associação para uma fonte de dados específica Shell
- Recursos adicionais
- Tópicos relacionados
Sobre matrizes de associação
Uma matriz de associação é uma lista ordenada de locais do Registro que contêm informações sobre um tipo de item, incluindo manipuladores, verbos e outros atributos, como o ícone e o nome para exibição do tipo. Essas informações sobre o tipo de item podem ser registradas em diferentes níveis de especificidade. Por exemplo, você pode registrar um verb que aparecerá apenas para um tipo de arquivo específico (como .jpg), ou para todos os itens com o mesmo System.Kind (por exemplo, System.kind = imagem), ou para todos os itens.
O Shell usa matrizes de associação para consultar um conjunto predefinido de locais do Registro que podem conter informações sobre o item. As APIs da matriz de associação podem ser usadas para recuperar da subchave do Registro um único valor que contém as informações solicitadas, com esse valor vindo da primeira entrada na matriz que o fornece. Por exemplo, o valor do ícone padrão é recuperado dessa forma. A matriz de associação também pode ser usada para recuperar um conjunto de valores armazenados nas subchaves do Registro. Por exemplo, a lista de verbos é construída a partir desses verbos que estão registrados em todas as subchaves.
Depois que as Shell consultas um conjunto predefinido de locais do Registro para obter informações sobre um Shell item, ele coloca os locais do Registro em uma matriz em ordem do local mais específico para o mais geral.
Como as matrizes de associação são listas ordenadas, elas fornecem aos desenvolvedores de aplicativos um mecanismo para adicionar informações ao Registro que serão retornadas para um tipo específico de item. Da mesma forma, as matrizes de associação permitem que os desenvolvedores de aplicativos adicionem informações ao registro para um grupo específico de itens quando esses itens são registrados em um local mais geral. Essa lógica informa sua decisão sobre o local mais apropriado no registro para armazenar informações sobre Shell itens.
Em um sistema Windows padrão, um arquivo .jpg tem a seguinte matriz de associação:
- \ HKEY_CLASSES_ROOTjpgfile
- \ HKEY_CLASSES_ROOTSystemFileAssociations\.jpg
- HKEY_CLASSES_ROOT\imagem
- HKEY_CLASSES_ROOT\*
- \ HKEY_CLASSES_ROOTAllFilesystemObjects
Para obter informações sobre como registrar matrizes de associação, consulte Application Registration.
Consultando matrizes de associação
Existem Shell APIs para recuperar informações de uma variedade de subchaves do Registro, desde a subchave do Registro mais específica até um superconjunto das informações em todas as subchaves do Registro.
O uso mais comum de uma matriz de associação é consultar um único valor que o Shell retorna do elemento mais específico na matriz que tem as informações solicitadas. O exemplo de código a seguir mostra como fazer isso.
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();
}
As APIs a seguir podem ser usadas para consultar uma matriz de associação ou para construir uma matriz de associação IQueryAssociations objeto que pode ser consultado:
- AssocCreate (anterior ao Windows Vista)
- AssocCreateForClasses
- AssocQueryString
Trabalhando com matrizes de associação para uma fonte de dados específica Shell
Cada Shell fonte de dados define a matriz de associação para seus itens. Definir uma matriz de associação é geralmente uma função do tipo de item. Shell Os implementadores de fonte de dados devem definir e documentar as matrizes de associação para permitir que os aplicativos estendam o comportamento desses tipos, como para registrar verbos ou outras informações. Os aplicativos podem estender o comportamento de itens com base na adição de dados às subchaves da matriz de associação, como a adição de verbos para itens.
A fonte de dados do sistema de arquivos cria uma matriz de associação para arquivos com base nas seguintes subchaves do Registro e ProgIDs especiais:
Se o arquivo tiver um ProgID registrado, HKEY_CLASSES_ROOT\ ProgID será usado. Caso contrário, HKEY_CLASSES_ROOT\ desconhecido é usado.
A extensão de nome de arquivo está registrada em HKEY_CLASSES_ROOT\SystemFileAssociations\.fileExtension subchave.
ProgIDs especiais são mostrados na tabela a seguir.
ProgID especial Descrição HKEY_CLASSES_ROOT\* Todos os ficheiros (não pastas) \ HKEY_CLASSES_ROOTAllFilesystemObjects Arquivos e pastas do sistema de arquivos HKEY_CLASSES_ROOT\Diretório Pastas do sistema de arquivos HKEY_CLASSES_ROOT\Pasta Shell contentores
Shell Matrizes de associação de fonte de dados
A lista a Shell seguir representa algumas das matrizes de associação de armazenamento de dados que podem ser usadas para os fins descritos neste tópico:
- HKEY_CLASSES_ROOT\*
- \ HKEY_CLASSES_ROOTAllFilesystemObjects
- \ HKEY_CLASSES_ROOTTipo.Documento
- HKEY_CLASSES_ROOT\Resultados
- \ HKEY_CLASSES_ROOTSystemFileAssociations\.docx
- \ HKEY_CLASSES_ROOTWord.Document.12
Shell As matrizes de associação de fonte de dados que podem ser usadas para DBFolder (um Shell armazenamento de dados que representa itens em resultados de pesquisa e exibições baseadas em consulta) são as seguintes:
- Acionamentos
- Rede
- RegItems
- Exemplos:
- ContentView
- Verbos
Outras matrizes de associação comuns incluem Pasta e Impressoras.
Recursos adicionais
- Para criar um armazenamento de Shell dados, consulte Implementando as interfaces de objeto de pasta básicas.
Tópicos relacionados