Функция AssocQueryStringA (shlwapi.h)

Выполняет поиск и извлечение строки сопоставления, связанной с файлом или протоколом, из реестра.

Синтаксис

LWSTDAPI AssocQueryStringA(
  [in]            ASSOCF   flags,
  [in]            ASSOCSTR str,
  [in]            LPCSTR   pszAssoc,
  [in, optional]  LPCSTR   pszExtra,
  [out, optional] LPSTR    pszOut,
  [in, out]       DWORD    *pcchOut
);

Параметры

[in] flags

Тип: ASSOCF

Флаги, которые можно использовать для управления поиском. Это может быть любое сочетание значений ASSOCF , за исключением того, что можно включить только одно значение ASSOCF_INIT.

[in] str

Тип: ASSOCSTR

Значение ASSOCSTR , указывающее тип возвращаемой строки.

[in] pszAssoc

Тип: LPCTSTR

Указатель на строку, завершающуюся значением NULL, которая используется для определения корневого ключа. Можно использовать следующие четыре типа строк.

Расширение имени файла

Расширение имени файла, например .txt.

CLSID

Идентификатор GUID CLSID в стандартном формате "{GUID}".

ProgID:

ProgID приложения, например Word.Document.8.

Имя исполняемого файла

Имя файла .exe приложения. Флаг ASSOCF_OPEN_BYEXENAME должен быть установлен в флагах.

[in, optional] pszExtra

Тип: LPCTSTR

Необязательная строка, завершающаяся значением NULL, с дополнительными сведениями о расположении строки. Обычно для него задана команда оболочки, например открытая. Присвойте этому параметру значение NULL , если он не используется.

[out, optional] pszOut

Тип: LPTSTR

Указатель на строку, завершающуюся значением NULL, которая при успешном возвращении этой функции получает запрошенную строку. Задайте для этого параметра значение NULL , чтобы получить требуемый размер буфера.

[in, out] pcchOut

Тип: DWORD*

Указатель на значение, которое при вызове функции присваивается количеству символов в буфере pszOut . Когда функция возвращается успешно, значение задается на количество символов, фактически помещенных в буфер.

Если флаг ASSOCF_NOTRUNCATE установлен в флагах , а буфер, указанный в pszOut , слишком мал, функция возвращает E_POINTER, а значение задается требуемым размером буфера.

Если значение pszOut равно NULL, функция возвращает S_FALSE и pcchOut указывает на требуемый размер буфера в символах.

Возвращаемое значение

Тип: HRESULT

Возвращает стандартное значение ошибки COM, включая следующее:

Ошибка Значение
S_OK Успешно.
E_POINTER Буфер pszOut слишком мал для хранения всей строки.
S_FALSE pszOut имеет значение NULL. pcchOut содержит требуемый размер буфера.

Комментарии

Эта функция является оболочкой для интерфейса IQueryAssociations . Функция AssocQueryString предназначена для упрощения процесса использования интерфейса IQueryAssociations .

После выбора элемента узел должен решить, какой (если таковой) обработчик предварительного просмотра доступен для этого элемента. Обработчики предварительного просмотра обычно регистрируются в расширениях имен файлов или ProgID, но некоторые обработчики предварительного просмотра создаются только для элементов в определенных папках оболочки (обработчик предварительной версии MAPI связан с любыми элементами, полученными из папки оболочки MAPI, например). Таким образом, узел должен использовать IQueryAssociations , чтобы определить, какой обработчик предварительного просмотра следует использовать. Дополнительные сведения о работе функций сопоставления файлов и протоколов см. в разделе IQueryAssociations.

Примечание

Заголовок shlwapi.h определяет AssocQueryString как псевдоним, который автоматически выбирает версию anSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Перемешивание использования нейтральную кодировку псевдонима с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в соглашениях по прототипам функций.

Требования

   
Минимальная версия клиента Windows 2000 Профессиональный, Windows XP [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header shlwapi.h
Библиотека Shlwapi.lib
DLL Shlwapi.dll (версия 5.0 или более поздняя)