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で導入) |
関連項目
概念
リファレンス