CreateGenericComposite 関数 (objbase.h)
2 つのモニカーの汎用構成を実行し、結果の複合モニカーへのポインターを提供します。
構文
HRESULT CreateGenericComposite(
[in, optional] LPMONIKER pmkFirst,
[in, optional] LPMONIKER pmkRest,
[out] LPMONIKER *ppmkComposite
);
パラメーター
[in, optional] pmkFirst
pmkRest が指すモニカーの左側に構成されるモニカーへのポインター。 ジェネリック 複合を含む任意の種類のモニカーを指すことができます。
[in, optional] pmkRest
pmkFirst が指すモニカーの右側に構成されるモニカーへのポインター。 ジェネリック 複合を含む pmkRest モニカーの型と互換性のある任意の種類のモニカーを指すことができます。
[out] ppmkComposite
pmkFirst と pmkRest を作成した結果である複合モニカー オブジェクトへのインターフェイス ポインターを受け取る IMoniker* ポインター変数のアドレス。 このオブジェクトは、 IMoniker の OLE 複合モニカーの実装をサポートしています。 成功すると、関数はモニカーで AddRef を呼び出し、呼び出し元は Release の呼び出しを担当します。 pmkFirst または pmkRest のいずれかが NULL の場合、指定されたポインターは NULL 以外のポインターです。 pmkFirst と pmkRest の両方が NULL の場合、またはエラーが発生した場合、返されるポインターは NULL です。
戻り値
この関数は、E_OUTOFMEMORY標準の戻り値と、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
入力モニカーは正常に構成されました。 |
|
パスの構文でエラーが発生したため、2 つのモニカーを構成できませんでした (たとえば、pmkFirst と pmkRest の両方が絶対パスに基づくファイル モニカーである場合)。 |
注釈
CreateGenericComposite は、2 つのモニカーを 1 つに結合します。 結合されるモニカー クラスは、コンポジションのルールのみに従って異なる場合があります。 この関数は、汎用コンポジション機能を含む IMoniker::ComposeWith の実装内で、IMoniker インターフェイスを実装して新しいモニカー クラスを記述する場合にのみ呼び出します。
モニカー プロバイダーは ComposeWith を呼び出して、2 つのモニカーを一緒に作成する必要があります。 ComposeWith の実装では、(OLE 実装と同様に) クラスが妥当な場合に、最初に非ジェネリックコンポジションを実行し、同じクラスの 2 つのモニカーを組み合わせて実行する必要があります。 これが不可能な場合、実装では CreateGenericComposite を 呼び出して、コンポジションのルール内で異なるクラスの 2 つのモニカーを組み合わせた汎用コンポジションを実行できます。 新しいモニカー クラスを記述する場合は、新しい種類の非ジェネリックコンポジションを定義できます。
2 つのモニカーを作成するプロセス中に、 CreateGenericComposite は可能なすべての簡略化を行います。 pmkFirst がジェネリック複合モニカー、A + B + C、pmkRest がジェネリック複合モニカー、C -1 + B -1 + Z (C -1 が C の逆数) である例を考えてみましょう。 関数は最初に C から C -1 を作成します。これは何も構成しません。 次に、B と B -1 を何も構成しません。 最後に、A から Z を構成し、汎用複合モニカー A + Z へのポインターを提供します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | objbase.h |
Library | Ole32.lib |
[DLL] | Ole32.dll |
API セット | ext-ms-win-com-ole32-l1-1-5 (Windows 10 バージョン 10.0.15063 で導入) |