IDataObject::SetData メソッド (objidl.h)
このメソッドを実装するオブジェクトにデータを転送するために、データ ソースを含む オブジェクトによって呼び出されます。
構文
HRESULT SetData(
[in] FORMATETC *pformatetc,
[in] STGMEDIUM *pmedium,
[in] BOOL fRelease
);
パラメーター
[in] pformatetc
ストレージ メディアに含まれるデータを解釈するときにデータ オブジェクトによって使用される形式を定義する FORMATETC 構造体へのポインター。
[in] pmedium
データが渡されるストレージ メディアを定義する STGMEDIUM 構造体へのポインター。
[in] fRelease
TRUE の場合、SetData を実装する 呼び出されたデータ オブジェクトは、呼び出しが返された後にストレージ メディアを所有します。 つまり、 ReleaseStgMedium 関数を呼び出してメディアを使用した後、メディアを解放する必要があります。 FALSE の場合、呼び出し元はストレージ メディアの所有権を保持し、呼び出されたデータ オブジェクトは呼び出しの間だけストレージ メディアを使用します。
戻り値
このメソッドは、成功したS_OKを返します。 その他の可能な値は次のとおりです。
リターン コード | 説明 |
---|---|
|
lindex の値が無効です。現在、-1 のみがサポートされています。 |
|
pformatetc の値が無効です。 |
|
tymed 値が無効です。 |
|
dwAspect 値が無効です。 |
|
オブジェクト アプリケーションが実行されていません。 |
|
操作が失敗しました。 |
|
予期しないエラーが発生しました。 |
|
dwDirection 値が無効です。 |
|
この操作に使用できるメモリが不足していました。 |
解説
SetData を使用すると、別のオブジェクトが実装データ オブジェクトにデータを送信しようとします。 データ オブジェクトは、別のオブジェクトからのデータの受信をサポートしている場合に、このメソッドを実装します。 これがサポートされていない場合は、E_NOTIMPLを返すように実装する必要があります。
呼び出し元は、データが渡される pmedium パラメーターによって示されるストレージ メディアを割り当てます。 呼び出されたデータ オブジェクトは、正常にデータを受け取り、エラー コードが返されない限り、データの所有権を取得しません。 fRelease パラメーターの値は、呼び出しが返された後のメディアの所有権を示します。 FALSE は 、呼び出し元がまだメディアを所有しており、データ オブジェクトが呼び出し中にのみ使用されていることを示します。 TRUE は 、データ オブジェクトがデータ オブジェクトを所有し、不要になったときに解放する必要があることを示します。
pformatetc パラメーターと pmedium パラメーターで指定される medium の型は同じである必要があります。 たとえば、1 つはグローバル ハンドルに、もう 1 つはストリームにすることはできません。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | objidl.h |