IOleObject::InitFromData メソッド (oleidl.h)
指定したデータ オブジェクトのデータを使用して、新しく作成されたオブジェクトを初期化します。このオブジェクトは、同じコンテナーまたはクリップボードに存在できます。
構文
HRESULT InitFromData(
[in] IDataObject *pDataObject,
[in] BOOL fCreation,
[in] DWORD dwReserved
);
パラメーター
[in] pDataObject
初期化データの取得元となるデータ オブジェクト上の IDataObject インターフェイスへのポインター。 このパラメーターには NULL を指定できます。これは、呼び出し元がデータの送信を試みる価値があるかどうかを知りたいと思っていることを示します。つまり、コンテナーが渡されたデータからオブジェクトを初期化できるかどうか。 渡されるデータ オブジェクトは、コンテナー ドキュメント内の現在の選択に基づくか、外部ソースからコンテナーに転送されたデータに基づいて指定できます。
[in] fCreation
TRUE は 、コンテナーが新しいオブジェクトを内部に挿入し、そのオブジェクトを現在の選択範囲のデータで初期化していることを示します。 FALSE は 、現在の選択範囲以外のソースからのより一般的なプログラムによるデータ転送を示します。
[in] dwReserved
このパラメーターは予約されており、0 である必要があります。
戻り値
このメソッドは、 pDataObject が NULL でない場合にS_OKを返します。オブジェクトは、指定されたデータから自身を初期化しようとしました。 pDataObject が NULL の場合、オブジェクトは正常な初期化を試みられます。 その他の可能な戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
pDataObject が NULL でない場合、オブジェクトはそれ自体を初期化しようとしました。 pDataObject が NULL の場合、オブジェクトは指定されたデータから自身の初期化を試みることはできません。 |
|
オブジェクトは InitFromData をサポートしていません。 |
|
オブジェクトが実行されていないため、操作を実行できません。 |
解説
このメソッドを使用すると、コンテナー ドキュメントは、コンテナー内の現在のデータ選択に基づくコンテンツを持つ新しいオブジェクトを、コンテナー ドキュメント自体に挿入できます。 たとえば、スプレッドシート ドキュメントでは、選択したセル範囲のデータに基づいてグラフ オブジェクトを作成できます。
このメソッドを使用すると、コンテナーは埋め込みオブジェクトの内容を別のソースから転送されたデータに置き換えることもできます。 これにより、埋め込みオブジェクトを更新する便利な方法が提供されます。
呼び出し元へのメモ
初期化後、コンテナーは IOleObject::GetMiscStatus を呼び出して、OLEMISC_INSERTNOTREPLACE ビットの値をチェックする必要があります。 ビットがオンの場合、新しいオブジェクトは選択したデータの後にそれ自体を挿入します。 ビットがオフの場合は、選択したデータが新しいオブジェクトによって置き換えられます。実装者へのメモ
コンテナーは、fCreation パラメーターに TRUE または FALSE を渡すことによって、現在の選択範囲に新しいオブジェクトを基にするかどうかを指定します。fCreation が TRUE の場合、コンテナーはオブジェクトの新しいインスタンスを作成しようと試み、データ オブジェクトで指定された選択したデータで初期化します。
fCreation が FALSE の場合、呼び出し元はオブジェクトの現在の内容を pDataObject が指す内容に置き換えようとしています。 貼り付け操作中にオブジェクトに適用される通常の制約は、ここで適用する必要があります。 たとえば、指定されたデータの型が受け入れられない場合、オブジェクトは初期化に失敗し、S_FALSEを返す必要があります。
オブジェクトがS_FALSEを返す場合、指定されたデータから自身を初期化することはできません。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | oleidl.h |