OleCreatePropertyFrameIndirect 関数 (olectl.h)

OleCreatePropertyFrame を呼び出すときのように個別のパラメーターを指定するのではなく、パラメーターを含む構造体 (OCPFIPARAMS) に基づいて、プロパティ フレーム (プロパティ シート) ダイアログ ボックスを作成します。

構文

WINOLECTLAPI OleCreatePropertyFrameIndirect(
  [in] LPOCPFIPARAMS lpParams
);

パラメーター

[in] lpParams

ダイアログ ボックスの作成パラメーターを含む呼び出し元によって割り当てられた構造体へのポインター。

戻り値

この関数は、標準の戻り値E_INVALIDARG、E_OUTOFMEMORY、およびE_UNEXPECTEDをサポートします。また、次に示します。

リターン コード 説明
S_OK
ダイアログ ボックスが呼び出され、正常に操作されました。
E_POINTER
lpParams のアドレスが無効です。 たとえば、 NULL である可能性があります。

注釈

cbStructSize (構造体のサイズ) と dispIDInitialProperty に加えて、OCPFIPARAMS 構造体のすべてのメンバーは、OleCreatePropertyFrame のパラメーターと同じセマンティクスを持ちます。 dispIDInitialProperty がDISPID_UNKNOWN場合、2 つの関数の動作は同じです。

dispIDInitialPropertyIPerPropertyBrowsing および IPropertyPage2 と組み合わせて使用すると、呼び出し元は、ダイアログ ボックスを表示するときに強調表示する単一のプロパティを指定できます。 OleCreatePropertyFrame を使用する場合、この機能は使用できません。 最初に表示するページとプロパティを決定するために、プロパティ フレームは次の操作を行います。

  1. (*ppUnk)->QueryInterface(IID_IPerPropertyBrowsing, ...) を呼び出して、最初のオブジェクトへのインターフェイス ポインターを取得します。
  2. 強調表示するプロパティが含まれているページ CLSID を確認するには 、IPerPropertyBrowsing::MapPropertyToPage(dispIDInitialProperty, ...) を呼び出します。 このフレームが呼び出されるすべてのオブジェクトは、フレームに表示されるプロパティのセットをサポートする必要があります。
  3. ダイアログ ボックスが作成されると、手順 2 で取得した CLSID を持つプロパティ ページが IPropertyPage::Activate でアクティブになります
  4. プロパティ フレームは、 IPropertyPage2 のアクティブ ページに対してクエリを実行します。
  5. 成功した場合、フレームは IPropertyPage2::EditProperty(dispIDInitialProperty) を呼び出して、そのダイアログ ボックスの正しいフィールドを強調表示します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー olectl.h
Library OleAut32.lib
[DLL] OleAut32.dll

こちらもご覧ください

OCPFIPARAMS

OleCreatePropertyFrame