Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 de exibição do tipo. A Shell associação usa matrizes para consultar um conjunto predefinido de locais do Registro que podem conter informações sobre um Shell item.
Este tópico é organizado da seguinte maneira:
- sobre matrizes de associação
- matrizes de associação de consulta
- 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 de 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 será exibido apenas para um tipo de arquivo específico (como .jpg) ou para todos os itens com o mesmo System.Kind (por exemplo, System.kind = picture) 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 de 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 proveniente 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 é criada a partir dos verbos registrados em todas as subchaves.
Shell Depois de consultar um conjunto predefinido de locais do Registro para obter informações sobre um Shell item, ele coloca os locais do Registro em uma matriz na 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_ROOT\ jpgfile
- HKEY_CLASSES_ROOT\\.jpg SystemFileAssociations
- HKEY_CLASSES_ROOT\imagem
- HKEY_CLASSES_ROOT\*
- HKEY_CLASSES_ROOT\ AllFilesystemObjects
Para obter informações sobre como registrar matrizes de associação, consulte de Registro de Aplicativo.
Consultando matrizes de associação
Há Shell APIs para recuperar informações de um intervalo 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 retorna Shell 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 SEGUINTEs APIs podem ser usadas para consultar uma matriz de associação ou construir uma matriz de associação IQueryAssociations objeto que pode ser consultado:
- assocCreate (antes do 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 da 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 dos 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 é registrada em HKEY_CLASSES_ROOT\SystemFileAssociations\subchave .fileExtension.
ProgIDs especiais são mostrados na tabela a seguir.
ProgID especial Descrição HKEY_CLASSES_ROOT\* Todos os arquivos (não pastas) HKEY_CLASSES_ROOT\ AllFilesystemObjects Arquivos e pastas do sistema de arquivos do Diretório HKEY_CLASSES_ROOT\ Pastas do sistema de arquivos da Pasta HKEY_CLASSES_ROOT\ Shell Recipientes
Shell Matrizes de associação da fonte de dados
A lista a seguir representa algumas das matrizes de associação do Shell repositório de dados que podem ser usadas para as finalidades descritas neste tópico:
- HKEY_CLASSES_ROOT\*
- HKEY_CLASSES_ROOT\ AllFilesystemObjects
- \ HKEY_CLASSES_ROOTKind.Document
- de Resultados do HKEY_CLASSES_ROOT\
- HKEY_CLASSES_ROOT\\.docx SystemFileAssociations
- HKEY_CLASSES_ROOT\ Word.Document.12
Shell As matrizes de associação da fonte de dados que podem ser usadas para DBFolder (um Shell repositório de dados que representa itens nos resultados da pesquisa e exibições baseadas em consulta) são as seguintes:
- Unidades
- Rede
- RegItems
- Exemplos:
- ContentView
- Verbos
Outras matrizes de associação comuns incluem Pasta e Impressoras.
Recursos adicionais
- Para criar um Shell armazenamento de dados, consulte Implementando as Interfaces básicas de objeto de pasta.
Tópicos relacionados