Функция 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, которая используется для определения корневого ключа. Можно использовать следующие четыре типа строк.

  1. Расширение имени файла: расширение имени файла, например .txt.
  2. CLSID: ИДЕНТИФИКАТОР GUID CLSID в стандартном формате "{GUID}".
  3. ProgID. ProgID приложения, например Word. Document.8.
  4. Имя исполняемого файла: имя файла .exe приложения. Флаг ASSOCF_OPEN_BYEXENAME должен быть установлен в формате flags.

[in, optional] pszExtra

Тип: LPCTSTR

Необязательная строка со значением NULL с дополнительными сведениями о расположении строки. Обычно используется командная команда оболочки, например open. Присвойте этому параметру значение 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 Shell). Таким образом, узел должен использовать IQueryAssociations , чтобы определить, какой обработчик предварительного просмотра использовать. Дополнительные сведения о том, как работают функции сопоставления файлов и протоколов, см. в разделе IQueryAssociations.

Примечание

Заголовок shlwapi.h определяет AssocQueryString в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

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