StgCreatePropStg 函式 (coml2api.h)

StgCreatePropStg 函式會在指定的記憶體或數據流物件中建立並開啟屬性集。 屬性集提供 IPropertyStorage 介面的系統提供的獨立實作。

語法

HRESULT StgCreatePropStg(
  [in]  IUnknown         *pUnk,
  [in]  REFFMTID         fmtid,
  [in]  const CLSID      *pclsid,
  [in]  DWORD            grfFlags,
  [in]  DWORD            dwReserved,
  [out] IPropertyStorage **ppPropStg
);

參數

[in] pUnk

儲存新屬性集之記憶體或數據流物件上 IUnknown 介面的指標。

[in] fmtid

要建立之屬性集的 FMTID。

[in] pclsid

此屬性集之初始 CLSID 的指標。 可以是 NULL,在此情況下 ,pclsid 會設定為所有零。

[in] grfFlags

PROPSETFLAG 常數中的值,決定如何建立和開啟屬性集。

[in] dwReserved

保留;必須是零。

[out] ppPropStg

接收新屬性集介面指標的 IPropertyStorage* 指標變數位址。

傳回值

除了下列專案外,此函式還支援標準傳回值E_INVALIDARG和E_UNEXPECTED:

備註

StgCreatePropStg 會建立並開啟新的屬性集,以提供 IPropertyStorage 介面的系統提供的獨立實作。 新的屬性集包含在 pUnk 所指定的記憶體或資料流物件中。 grfFlags 參數的值會指出 pUnk 是否指定記憶體或數據流物件。 例如,如果已設定PROPSETFLAG_NONSIMPLE,則可以查詢記憶體物件上的 IStorage 介面 pUnk

不論是哪一種情況,此函式都會針對包含屬性集的記憶體或數據流物件呼叫 pUnk-AddRef>。 當不再需要物件時,呼叫端必須負責釋放物件。

此函式類似於 IPropertySetStorage::Create 方法。 不過, StgCreatePropStg 會新增 pUnk 參數,並支援 grfFlags 參數的PROPSETFLAG_UNBUFFERED值。 如果您有不支援 IPropertySetStorage 介面的 IStorage 介面,或是想要使用 PROPSETFLAG_UNBUFFERED 值,請使用這個函式,而不是 Create 方法。 如需使用此PROPSETFLAG_UNBUFFERED列舉值的詳細資訊,請參閱 PROPSETFLAG 常數

屬性集會自動包含代碼頁和地區設定標識碼 (識別碼) 屬性。 這些分別設定為目前的系統預設值和目前的用戶預設值。

grfFlags 參數是取自 PROPSETFLAG 常數的值組合。 支援新的列舉值PROPSETFLAG_UNBUFFERED。 如需詳細資訊,請參閱 PROPSETFLAG 常數

此函式會從可轉散發 Iprop.dll 導出,隨附於 service Pack 2 (SP2) 和更新版本中的 Windows NT 4.0 中,並可在 Windows 95、Windows 98 和更新版本中以可轉散發套件的形式提供。 在 Windows 2000 和 Windows XP 中,它會從 ole32.dll 導出。 它也可以從 Windows 2000 和 Windows XP 中的 iprop.dll 導出,但呼叫會轉接至 ole32.dll。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 coml2api.h (包含 Propidl.h)
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

IPropertySetStorage

IPropertySetStorage-獨立實作

IPropertyStorage

IPropertyStorage-獨立實作

PROPSETFLAG 常數

StgCreatePropSetStg

StgOpenPropStg