Функция 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 должен быть установлен в формате 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 или более поздняя) |