次の方法で共有


SetClipboardData 関数 (winuser.h)

指定したクリップボード形式でクリップボードにデータを配置します。 ウィンドウは現在のクリップボード所有者である必要があり、アプリケーションは OpenClipboard 関数を呼び出している必要があります。 ( WM_RENDERFORMAT メッセージに応答する場合、クリップボードの所有者は SetClipboardData を呼び出す前に OpenClipboard を呼び出してはなりません。

構文

HANDLE SetClipboardData(
  [in]           UINT   uFormat,
  [in, optional] HANDLE hMem
);

パラメーター

[in] uFormat

型: UINT

クリップボードの形式。 このパラメーターには、登録済みの形式または標準のクリップボード形式のいずれかを指定できます。 詳細については、「 標準のクリップボード形式 」と「 登録済みのクリップボード形式」を参照してください。

[in, optional] hMem

型: HANDLE

指定した形式のデータへのハンドル。 このパラメーターには NULL を指定できます。これは、ウィンドウが要求時に指定されたクリップボード形式 (形式をレンダリング) でデータを提供することを示します。これは 遅延レンダリングと呼ばれます。 ウィンドウがレンダリングを遅らせる場合は、 WM_RENDERFORMAT を処理し、メッセージ をWM_RENDERALLFORMATS する必要があります。

SetClipboardData が成功した場合、システムは hMem パラメーターで識別されるオブジェクトを所有します。 所有権がシステムに転送されると、アプリケーションはデータに書き込んだり解放したりすることはできませんが、 CloseClipboard 関数が呼び出されるまでデータをロックして読み取ることができます。 (クリップボードを閉じる前にメモリのロックを解除する必要があります。 hMem パラメーターがメモリ オブジェクトを識別する場合、オブジェクトは GMEM_MOVEABLE フラグを持つ 関数を使用して割り当てられている必要があります。

戻り値

型: HANDLE

関数が成功した場合、戻り値はデータへのハンドルです。

関数が失敗した場合は、返される値は NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

Windows 8: Windows ストア アプリアプリと共有するビットマップは、 CF_BITMAP 形式である必要があります (デバイスに依存するビットマップ)。

WM_RENDERFORMATまたはWM_RENDERALLFORMATSに応答してアプリケーションが SetClipboardData を呼び出す場合、SetClipboardData が呼び出された後、アプリケーションはハンドルを使用しないでください。

アプリケーションが hwnd を NULL に設定して OpenClipboard を呼び出す場合、EmptyClipboard はクリップボードの所有者を NULL に設定します。これにより、SetClipboardData が失敗します。

システムは、アプリケーションが GetClipboardData 関数を呼び出すときに、特定のクリップボード形式間で暗黙的なデータ形式変換を実行します。 たとえば、 CF_OEMTEXT 形式がクリップボードにある場合、ウィンドウは CF_TEXT 形式でデータを取得できます。 クリップボードの形式は、要求時に要求された形式に変換されます。 詳細については、「 合成されたクリップボード形式」を参照してください。

例については、「 クリップボードへの情報のコピー」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-misc-l1-2-0 (Windows 8.1で導入)

関連項目

クリップボード

CloseClipboard

概念

GetClipboardData

OpenClipboard

リファレンス

RegisterClipboardFormat

WM_RENDERALLFORMATS

WM_RENDERFORMAT