KNOWNFOLDER_DEFINITION 结构 (shobjidl_core.h)

定义已知文件夹的具体内容。

语法

typedef struct KNOWNFOLDER_DEFINITION {
  KF_CATEGORY         category;
  LPWSTR              pszName;
  LPWSTR              pszDescription;
  KNOWNFOLDERID       fidParent;
  LPWSTR              pszRelativePath;
  LPWSTR              pszParsingName;
  LPWSTR              pszTooltip;
  LPWSTR              pszLocalizedName;
  LPWSTR              pszIcon;
  LPWSTR              pszSecurity;
  DWORD               dwAttributes;
  KF_DEFINITION_FLAGS kfdFlags;
  FOLDERTYPEID        ftidType;
} KNOWNFOLDER_DEFINITION;

成员

category

类型: KF_CATEGORY

KF_CATEGORY常量中的单个值,用于将文件夹分类为虚拟、固定、通用或每用户。

pszName

类型: LPWSTR

指向已知文件夹的非本地化规范名称的指针,存储为以 null 结尾的 Unicode 字符串。 如果此文件夹是通用或每用户文件夹,则此值也用作“User Shell 文件夹”注册表设置的值名称。 此名称是一个唯一的可读名称。 建议第三方遵循 格式 Company.Application.Name。 此处提供的名称不应与显示名称混淆。

pszDescription

类型: LPWSTR

指向已知文件夹的简短说明的指针,存储为以 null 结尾的 Unicode 字符串。 此说明应包括文件夹的用途和用法。

fidParent

类型: KNOWNFOLDERID

一个 KNOWNFOLDERID 值,该值将另一个已知文件夹命名为父文件夹。 仅适用于通用文件夹和每用户文件夹。 此值与 pszRelativePath 一起使用。 有关更多详细信息 ,请参阅备注

如果未为 pszRelativePath 提供任何值,则此值是可选的。

pszRelativePath

类型: LPWSTR

可选。 指向相对于 fidParent 中指定的父文件夹的路径的指针。 这是一个以 null 结尾的 Unicode 字符串,引用物理文件系统路径,未本地化。 仅适用于通用文件夹和每用户文件夹。 有关更多详细信息 ,请参阅备注

pszParsingName

类型: LPWSTR

指向文件夹的 Shell 命名空间文件夹路径的指针,存储为以 null 结尾的 Unicode 字符串。 仅适用于虚拟文件夹。 例如, Control Panel 具有分析名称 ::%CLSID_MyComputer%::%CLSID_ControlPanel%

pszTooltip

类型: LPWSTR

可选。 指向创建此已知文件夹时用于它的默认工具提示资源的指针。 这是以 null 结尾的 Unicode 字符串,格式如下:

模块名称、资源 ID

例如, @%_SYS_MOD_PATH%,-12688 是常见图片的工具提示。 创建文件夹时,此字符串将存储在该文件夹的 Desktop.ini 副本中。 稍后其他 Shell API 可以对其进行更改。 此资源可能已本地化。

虚拟文件夹不需要此信息。

pszLocalizedName

类型: LPWSTR

可选。 指向创建文件夹时使用的默认本地化名称资源的指针。 这是以 null 结尾的 Unicode 字符串,格式如下:

模块名称、资源 ID

创建文件夹时,此字符串将存储在该文件夹的 Desktop.ini 副本中。 稍后其他 Shell API 可以对其进行更改。

虚拟文件夹不需要此信息。

pszIcon

类型: LPWSTR

可选。 指向创建文件夹时使用的默认图标资源的指针。 这是以 null 结尾的 Unicode 字符串,格式如下:

模块名称、资源 ID

创建文件夹时,此字符串将存储在该文件夹的 Desktop.ini 副本中。 稍后其他 Shell API 可以对其进行更改。

虚拟文件夹不需要此信息。

pszSecurity

类型: LPWSTR

可选。 指向 安全描述符定义语言 格式字符串的指针。 这是一个以 null 结尾的 Unicode 字符串,用于描述文件夹在创建时接收的默认安全描述符。 如果此参数为 NULL,则新文件夹将继承其父文件夹的安全描述符。 这对于所有用户都可访问的常用文件夹特别有用。

dwAttributes

类型:DWORD

可选。 创建文件夹时为其提供的默认文件系统属性。 例如,该文件可以隐藏和只读 (FILE_ATTRIBUTE_HIDDEN 和FILE_ATTRIBUTE_READONLY) 。 有关可能值的完整列表,请参阅 CreateFile 函数的 dwFlagsAndAttributes 参数。 如果不需要,则设置为 -1。

kfdFlags

类型: KF_DEFINITION_FLAGS

可选。 KF_DEFINITION_FLAGS枚举中的更多值之一,可用于限制重定向、允许电脑到电脑漫游以及控制创建已知文件夹的时间。 如果不需要,则设置为 0。

ftidType

类型: FOLDERTYPEID

一个 FOLDERTYPEID 值,根据已知文件夹类型的内容 ((如文档、音乐或照片) )标识该文件夹类型。 此值是 GUID。

注解

fidParentpszRelativePath 值协同工作。 例如,假设你要定义一个名为 MyNewFolder 的文件夹,并且想要将该文件夹创建为 ...<Username>\AppData\Local\MyApp\MyNewFolder。 在 fidParent 中提供FOLDERID_LocalAppData来表示 ...<Username>\AppData\Local。 在 pszRelativePath 中提供“\MyApp\MyNewFolder”。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 shobjidl_core.h (包括 Shobjidl.h)

另请参阅

IKnownFolder::GetFolderDefinition

IKnownFolderManager::RegisterFolder

已知文件夹示例