以下是 StgOpenPropStg 函数的声明:
#include <coml2api.h>
HRESULT StgOpenPropStg(
const WCHAR *pwcsName,
IStorage *pstgPriority,
DWORD grfMode,
REFFMTID fmtid,
IPropertySetStorage **ppPropSetStg
);
- pwcsName: 存储对象的路径名。
- pstgPriority: 指向实现了 IStorage 接口的存储对象的指针,表示打开或创建属性集合时的优先存储对象。可以为 nullptr。
- grfMode: 存储对象的打开模式,可以是 STGM_DIRECT、STGM_TRANSACTED 等之一,指定存储对象的访问模式。
- fmtid: 属性集合的格式标识符(FMTID)。
- ppPropSetStg: 指向 IPropertySetStorage 接口指针的指针,用于接收打开或创建的属性集合存储对象的指针。
函数成功时返回 S_OK,并将打开或创建的属性集合存储对象的指针存储在 ppPropSetStg 中。该对象实现了 IPropertySetStorage 接口,允许您对指定格式标识符的属性集合进行操作。
以下是一个示例用法:
#include <coml2api.h>
void ExampleStgOpenPropStg() {
IPropertySetStorage *pPropSetStg = nullptr;
// Open or create a property set storage for a specific FMTID
HRESULT hr = StgOpenPropStg(
L"example.stg", // Storage name
nullptr, // Priority storage (can be nullptr)
STGM_READWRITE | STGM_SHARE_EXCLUSIVE, // Access mode
FMTID_SummaryInformation, // FMTID of the property set
&pPropSetStg // Pointer to property set storage object
);
if (SUCCEEDED(hr)) {
// Use the opened or created property set storage object (pPropSetStg) for further operations
// Release the property set storage object when done
pPropSetStg->Release();
}
}
请注意,在使用 StgOpenPropStg 打开或创建的属性集合存储对象完成操作后,应该调用 Release 方法释放对象。
转载请注明出处:http://www.zyzy.cn/article/detail/24620/Win32 API/Coml2api.h/StgOpenPropStg