Интерфейс IQueryAssociations (shlwapi.h)

Предоставляет методы, упрощающие получение сведений, хранящихся в реестре, в связи с определением типа файла или протокола и связыванием их с приложением.

Наследование

Интерфейс IQueryAssociations наследуется от интерфейса IUnknown . IQueryAssociations также имеет следующие типы членов:

Методы

Интерфейс IQueryAssociations содержит следующие методы.

 
IQueryAssociations::GetData

Ищет и извлекает двоичные данные, связанные с файлами или протоколами, из реестра.
IQueryAssociations::GetEnum

Этот метод не реализован. (IQueryAssociations.GetEnum)
IQueryAssociations::GetKey

Выполняет поиск и получение ключа, связанного с файлом или протоколом, из реестра.
IQueryAssociations::GetString

Ищет и извлекает строку, связанную с файлом или протоколом, из реестра. (IQueryAssociations.GetString)
IQueryAssociations::Init

Инициализирует интерфейс IQueryAssociations и задает для корневого ключа соответствующий ProgID.

Комментарии

Когда следует реализовать

Этот интерфейс предоставляется оболочкой или расширениями пространства имен для упрощения обработки сопоставлений файлов и протоколов. Не следует реализовывать этот интерфейс.

Когда следует использовать

Используйте этот интерфейс, если вам нужны сведения из реестра, связанные с сопоставлениями файлов или протоколов. Например, этот интерфейс можно использовать для получения сведений, связанных с расширением имени файла, например командной строки одной из его команд.

Полный путь к реестру или значение HKEY не требуется. Вместо этого можно получить сведения на основе таких критериев, как расширение имени файла или имя исполняемого файла. Обсуждение сопоставлений файлов см. в разделе Типы файлов.

Вы также можете получить имя приложения с помощью этого интерфейса. Используйте метод IQueryAssociations::GetString. Задайте для параметра strзначение ASSOCSTR_FRIENDLYAPPNAME.

Чтобы использовать этот интерфейс, необходимо сначала получить указатель на него. Как правило, указатель QueryInterface извлекается путем вызова метода IShellFolder::GetUIObjectOf объекта оболочки . Вы также можете получить указатель интерфейса, вызвав AssocCreate (задайте для clsid значение CLSID_QueryAssociations). Инициализируйте интерфейс с помощью IQueryAssociations::Init. Этот метод задает корневой ключ, который будет использоваться при вызове любого из трех оставшихся методов для получения сведений из реестра. Они будут выглядеть только под корневым ключом. Вы должны освободить интерфейс, когда он больше не нужен.

Интерфейс IQueryAssociations полезен, если необходимо многократно запрашивать сведения в реестре. После инициализации интерфейса затраты на вызов различных методов будут относительно небольшими. В разделе См. также несколько связанных функций, которые позволяют получить те же сведения из реестра с помощью одного вызова функции. Хотя они проще в использовании, они приводят к дополнительным затратам на создание и инициализацию IQueryAssociations при каждом вызове. Поэтому они лучше всего подходят для однократного использования.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional, Windows XP [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header shlwapi.h

См. также раздел

AssocQueryKey

AssocQueryString

AssocQueryStringByKey