OleCreatePropertyFrameIndirect 函式 (olectl.h)
根據包含參數的結構 (OCPFIPARAMS) ,建立屬性框,也就是屬性表對話方塊,而不是在呼叫 OleCreatePropertyFrame 時指定個別的參數。
語法
WINOLECTLAPI OleCreatePropertyFrameIndirect(
[in] LPOCPFIPARAMS lpParams
);
參數
[in] lpParams
呼叫端配置的結構的指標,其中包含對話框的建立參數。
傳回值
此函式支持標準傳回值E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及下列各項:
傳回碼 | 描述 |
---|---|
|
對話框已叫用並成功運作。 |
|
lpParams 中的地址無效。 例如,可能是 NULL。 |
備註
除了 cbStructSize (結構的大小) 和 dispIDInitialProperty,OCPFIPARAMS 結構的所有成員都具有與 OleCreatePropertyFrame 參數相同的語意。 當 dispIDInitialProperty DISPID_UNKNOWN時,這兩個函式的行為完全相同。
與 IPerPropertyBrowsing 和 IPropertyPage2 搭配運作, dispIDInitialProperty 可讓呼叫端指定當對話框可見時應該反白顯示哪一個屬性。 使用 OleCreatePropertyFrame 時無法使用此功能。 若要判斷一開始要顯示的頁面和屬性,屬性框架會執行下列動作:
- 呼叫 (*ppUnk) -QueryInterface> (IID_IPerPropertyBrowsing...) 以取得第一個物件的介面指標。
- 呼叫 IPerPropertyBrowsing::MapPropertyToPage (dispIDInitialProperty,...) 來判斷要反白顯示的屬性。 叫用此框架的所有物件都必須支援框架中顯示的屬性集。
- 建立對話框時,步驟 2 中擷取 CLSID 的屬性頁會以 IPropertyPage::Activate 啟動。
- 屬性框架會查詢 IPropertyPage2 的作用中頁面。
- 如果成功,框架會呼叫 IPropertyPage2::EditProperty (dispIDInitialProperty) 反白顯示該對話框中的正確欄位。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | olectl.h |
程式庫 | OleAut32.lib |
Dll | OleAut32.dll |