Поделиться через


Функция AssocGetDetailsOfPropKey (shlobj_core.h)

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

Синтаксис

SHSTDAPI AssocGetDetailsOfPropKey(
  [in]  IShellFolder      *psf,
  [in]  PCUITEMID_CHILD   pidl,
  [in]  const PROPERTYKEY *pkey,
  [out] VARIANT           *pv,
  [out] BOOL              *pfFoundPropKey
);

Параметры

[in] psf

Тип: IShellFolder*

Указатель на папку оболочки, для которой извлекаются сведения о ключе свойств сопоставления файлов.

[in] pidl

Тип: PCUITEMID_CHILD

PIDL дочернего элемента, для которого запрашиваются сопоставления файлов.

[in] pkey

Тип: PROPERTYKEY*

Указатель на извлекаемый ключ свойства.

[out] pv

Тип: VARIANT*

Когда эта функция возвращается, содержит сведения о заданном ключе свойства.

[out] pfFoundPropKey

Тип: BOOL*

Когда эта функция возвращается, содержит флаг, который имеет значение TRUE , если ключ свойства найден, в противном случае — FALSE.

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

Тип: HRESULT

Если эта функция выполнена успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Замечания

Эта функция используется только для реализации расширений пространства именIShellFolder. Другие вызывающие приложения должны использовать IShellFolder2::GetDetailsEx , чтобы получить значение для PROPERTYKEY. Эта функция используется для реализации расширений пространства имен IShellFolder .

Предоставленное расширение пространства имен должно поддерживать использование этого API одним из следующих трех способов.

  1. Если предоставленные расширения пространства имен поддерживают получение интерфейса IQueryAssociations для элемента путем реализации IShellFolder::GetUIObjectOf(..., IID_IQueryAssociations, ...), то AssocGetDetailsOfPropKey будет использовать предоставленный API сопоставлений файлов для получения значения ключа свойства.
  2. Если предоставленное расширение пространства имен возвращает SFGAO_FILESYSTEM для элемента из IShellFolder::GetAttributesOf и предоставляет имя синтаксического анализа элемента, то AssocGetDetailsOfPropKey будет использовать сопоставления стандартной файловой системы для получения значения ключа свойства.
  3. Если предоставленное расширение пространства имен возвращает SFGAO_FOLDER | SFGAO_BROWSABLE для элемента из IShellFolder::GetAttributesOf, то AssocGetDetailsOfPropKey будет использовать сопоставление файлов для папок (ASSOCCLASS_FOLDER), чтобы получить значение ключа свойства.
Если реализованная оболочка ShellFolder содержит элементы, расширяемые с помощью механизма сопоставлений файлов, то эту функцию можно использовать для получения свойствKeys , объявленных для данной ассоциации файлов. Например, если в данной папке Оболочки есть область сведений, и вы хотите, чтобы свойства, отображаемые в этой области, управлялись расширениями имен файлов сторонних производителей, можно использовать эту функцию для возврата PKEY_PropList_PreviewDetails. Этот раздел имеет значение, объявленное в реестре для этого расширения имени файла с точкой с запятой, разделенным списком свойств. В реестре есть список определенных свойств расширения имени файла. Этот список включает в себя, но не ограничивается следующими:
  • PKEY_PropList_PreviewDetails
  • PKEY_PropList_PreviewTitle
  • PKEY_PropList_FullDetails
  • PKEY_PropList_TileInfo
  • PKEY_PropList_ExtendedTileInfo
  • PKEY_PropList_InfoTip
  • PKEY_PropList_QuickTip
  • PKEY_PropList_FileOperationPrompt
  • PKEY_PropList_ConflictPrompt
  • PKEY_PropList_SetDefaultsFor
  • PKEY_PropList_NonPersonal
  • PKEY_NewMenuPreferredTypes
  • PKEY_NewMenuAllowedTypes

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
Header shlobj_core.h (include Shlobj.h)
Library shell32.lib
DLL Shell32.dll