クリップボードにデータを設定するには SetClipboardData 関数を使います。(戻る)
- グローバル・メモリを確保(GlobalAlloc)
- グローバル・メモリをロック(GlobalLock)
- グローバル・メモリにコピー(lpBuff)
- グローバル・メモリをアンロック(GlobalUnlock)
- クリップボードを開く(OpenClipboard)
- クリップボードをクリア(EmptyClipboard)
- クリップボードにデータを設定(SetClipboardData)
- クリップボードを閉じる(CloseClipboard)
クリップボードを[開く]~[閉じる]は、なるべく短時間で行うこと。
プロトタイプ宣言
BOOL OpenClipboard( HWND hWndNewOwner // ウインドウのハンドル ); HANDLE SetClipboardData( UINT uFormat, // クリップボードのデータ形式 HANDLE hMem // データのハンドル ); BOOL EmptyClipboard( VOID ); BOOL CloseClipboard( VOID );
サンプル
HGLOBAL hMem; // 設定用のメモリ変数 LPTSTR lpBuff; // 複写用のポインタ LPTSTR lpText; // 複写元の文字列 DWORD dwSize; // 複写元の長さ // クリップボードのデータ内容 lpText = TEXT("テキストデータの内容です\r\n"); dwSize = ((lstrlen(lpText) + 1) * sizeof(TCHAR)); // '\0' 文字分を加算 // クリップボードにデータを設定 if ( (hMem = GlobalAlloc((GHND|GMEM_SHARE),dwSize)) != NULL ){ if ( (lpBuff = (LPTSTR)GlobalLock(hMem)) != NULL ){ lstrcpy( lpBuff, lpText ); // lpBuff にコピー GlobalUnlock( hMem ); if ( OpenClipboard(hWnd) ){ EmptyClipboard(); SetClipboardData( CF_TEXT, hMem ); // データを設定 CloseClipboard(); return; } } GlobalFree( hMem ); // クリップボードが開けないとき解放 }
- hWnd にウインドウのハンドルを指定します。
- hWnd に NULL を指定することも出来ます。
関連記事
- クリップボードのデータをクリア
- クリップボードのテキストデータを取得
- クリップボードにテキストデータを設定
- [HSP]クリップボードの操作(クリア・取得・設定)
※コメント投稿者のブログIDはブログ作成者のみに通知されます