OleCreate 関数 (ole2.h)

CLSID によって識別される埋め込みオブジェクトを作成します。 通常、これを使用して、エンド ユーザーが新しいオブジェクトを挿入できるようにするメニュー項目を実装します。

構文

HRESULT OleCreate(
  [in]  REFCLSID        rclsid,
  [in]  REFIID          riid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     pFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

パラメーター

[in] rclsid

作成する埋め込みオブジェクトの CLSID。

[in] riid

インターフェイスの識別子への参照 (通常は IOleObject のインターフェイス識別子として OLE ヘッダーで定義) IID_IOleObject。呼び出し元は新しいオブジェクトと通信します。

[in] renderopt

列挙 OLERENDER の値。新しく作成されたオブジェクトがローカルにキャッシュされた描画機能を示します。 選択した OLERENDER 値は、 pFormatEtc パラメーターに指定できる値に影響します。

[in] pFormatEtc

renderopt の値として使用される OLERENDER フラグに応じて、 FORMATETC 列挙値のいずれかを指すポインター。 制限については、 OLERENDER 列挙を参照してください。 このパラメーターと renderopt パラメーターは、新しいオブジェクトが最初にキャッシュできる内容を指定します。

[in] pClientSite

OleCreateIOleObject::SetClientSite を呼び出す場合は、コンテナー上の IOleClientSite インターフェイスへのポインター。 値は NULL である場合があります。この場合は、操作を試行する前に IOleObject::SetClientSite を 明示的に呼び出す必要があります。

[in] pStg

ストレージ オブジェクト上の IStorage インターフェイスのインスタンスへのポインター。 このパラメーターは NULL にすることはできません。

[out] ppvObj

riid で要求されたインターフェイス ポインターを受け取るポインター変数のアドレス。 正常に戻ると、*ppvObject には要求されたインターフェイス ポインターが含まれます。

戻り値

この関数は成功時にS_OKを返し、標準の戻り値E_OUTOFMEMORYをサポートします。

リターン コード 説明
E_OUTOFMEMORY
操作のメモリ不足。

注釈

OleCreate 関数は、新しい埋め込みオブジェクトを作成し、通常はメニュー項目 Insert New Object を実装するために呼び出されます。 OleCreate が戻るときに、renderopt がOLERENDER_DRAWまたはOLERENDER_FORMATされ、読み込まれていない限り、作成したオブジェクトは空白になります (データは含まれません)。 コンテナーは通常、 OleRun 関数または IOleObject::D oVerb を呼び出して、最初の編集用のオブジェクトを表示します。

rclsid パラメーターは、要求されたオブジェクトの CLSID を指定します。 登録済みオブジェクトの CLSID は、システム・レジストリーに保管されます。 アプリケーション ユーザーが [オブジェクトの挿入] を選択すると、選択ボックスを使用して、レジストリ内のオブジェクトから目的のオブジェクトの種類を選択できます。 OleCreate を使用して [オブジェクトの挿入] メニュー項目を実装すると、選択した項目に関連付けられている CLSID が OleCreate の rclsid パラメーターに割り当てられます。

riid パラメーターは、クライアントが新しいオブジェクトとの通信に使用するインターフェイスを指定します。 正常に戻ると、 ppvObject パラメーターは要求されたインターフェイスへのポインターを保持します。

作成されたオブジェクトのキャッシュには、コンテナーを開いたときに包含オブジェクトの表示を可能にする情報が含まれています。 キャッシュする必要がある内容に関する情報は、 renderopt 値と pFormatetc 値に渡されます。 OleCreate が返された場合、作成されたオブジェクトのキャッシュは必ずしも満たされるとは限りません。 代わりに、オブジェクトが初めて実行中の状態に入った時点でキャッシュがいっぱいになります。 呼び出し元は、OleCreate が返された後、オブジェクトが実行される前に、IOleCache::Cache を呼び出してキャッシュ コントロールを追加できます。 renderopt がOLERENDER_DRAWまたはOLERENDER_FORMATの場合、 OleCreate では、オブジェクトが IOleCache インターフェイスをサポートしている必要があります。 renderopt の他の値に対してこのような要件はありません。

pClientSiteNULL 以外の場合、OleCreate は pClientSite ポインターを介して IOleObject::SetClientSite呼び出します。 IOleClientSite は、オブジェクトがコンテナーからサービスを要求するプライマリ インターフェイスです。 pClientSiteNULL の場合は、操作を試行する前に IOleObject::SetClientSite を特定の呼び出しを行う必要があります。

要件

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

こちらもご覧ください

FORMATETC

IOleClientSite

IOleObject

OLERENDER