IPropertySetStorage::Create 方法 (propidl.h)
Create 方法创建并打开属性集存储对象中的新属性集。
语法
HRESULT Create(
[in] REFFMTID rfmtid,
[in] const CLSID *pclsid,
[in] DWORD grfFlags,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg
);
参数
[in] rfmtid
要创建的属性集的 FMTID。 有关平台 SDK 中已知且预定义的 FMTID 的信息,请参阅 预定义的属性集格式标识符。
[in] pclsid
指向此属性集的初始类标识符 CLSID 的指针。 可以为 NULL,在这种情况下,它设置为所有零。 CLSID 是类的 CLSID,用于显示和/或提供对属性值的编程访问。 如果没有此类,建议使用 FMTID。
[in] grfFlags
[in] grfMode
打开新创建的属性集的访问模式,取自 STGM_Constants的某些值,如以下“备注”部分所述。
[out] ppprstg
指向接收 IPropertyStorage 接口指针的输出变量的指针。
返回值
此方法支持标准返回值E_UNEXPECTED以及以下内容:
注解
IPropertySetStorage::Create 创建并打开一个新的属性集子对象, (支持此属性集存储对象中包含的 IPropertyStorage 接口) 。 属性集自动包含代码页和区域设置 ID 属性。 它们分别设置为 Unicode 和当前用户默认值。
grfFlags 参数是取自 PROPSETFLAG 常量的值的组合。 如果使用此枚举中的PROPSETFLAG_ANSI值,则代码页将设置为当前系统默认值,而不是 Unicode。
grfMode 参数指定打开新创建的集的访问模式。 此参数的值与 IPropertySetStorage::Open 的 grfMode 参数中的值相同,并添加了下表中列出的值。
值 | 含义 |
---|---|
STGM_FAILIFTHERE | 如果存在另一个具有指定 fmtid 参数的属性集,则调用将失败。 这是默认操作;即,除非指定STGM_CREATE,否则STGM_FAILIFTHERE是默示的。 |
STGM_CREATE | 如果已存在使用指定 fmtid 参数设置的另一个属性,则会将其删除并替换为此新属性。 |
默认情况下,创建的属性集很简单,但调用方可以通过在 grfFlags 参数中指定 PROPSETFLAG_NONSIMPLE 值来请求非简单属性集。 有关简单和非简单属性集的详细信息,请参阅属性集的存储和Stream对象。
此方法受简单属性集的基础 IStorage::CreateStream (的约束) 或 IStorage::CreateStorage () 非简单属性集的约束。 例如,使用 IPropertySetStorage-Compound 文件实现时,请将 grfMode 参数中的STGM_SHARE_EXCLUSIVE指定为 IPropertySetStorage::Create。 相反,如果使用 IPropertySetStorage-独立实现, 则 IPropertySetStorage::Create 受应用于调用方指定的 IStorage 的约束。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | propidl.h (包括 Objbase.h) |
Library | Uuid.lib |
DLL | Ole32.dll |