クリップボードの基本関数をまとめただけです。
関数名をクリックすると各記事にジャンプ移動します。(戻る)
ヘッダ・ファイル - funcClipBoard.h
//------------------------------------------------------------------------------ // 文字列バッファの基本操作 //------------------------------------------------------------------------------ #ifndef __FUNCCLIPBOARD_INCLUDE__ #define __FUNCCLIPBOARD_INCLUDE__ //------------------------------------------------ // 関数のプロトタイプ宣言 //------------------------------------------------ extern BOOL funcClipClear( HWND hWnd ); extern BOOL funcClipRead( HWND hWnd, LPTSTR lpBuff, DWORD dwSize ); extern BOOL funcClipWrite( HWND hWnd, LPCTSTR lpBuff, DWORD dwSize ); extern LPTSTR funcClipGets( HWND hWnd ); extern BOOL funcClipPuts( HWND hWnd, LPCTSTR lpString ); extern BOOL funcClipPutf( HWND hWnd, LPCTSTR lpFormat, ... ); #endif //------------------------------------------------------------------------------ // End of funcClipBoard.h //------------------------------------------------------------------------------
ソース・ファイル - funcClipBoard.cpp
//------------------------------------------------------------------------------ // クリップボード操作の基本関数 //------------------------------------------------------------------------------ #include <stdarg.h> #include <Windows.h> #include "funcString.h" #include "funcClipBoard.h" //------------------------------------------------ // クリップボードのデータをクリア //------------------------------------------------ extern BOOL funcClipClear( HWND hWnd ) { if ( OpenClipboard(hWnd) ){ EmptyClipboard(); CloseClipboard(); return TRUE; } return FALSE; } //------------------------------------------------ // クリップボードからテキストを読み込む //------------------------------------------------ extern BOOL funcClipRead( HWND hWnd, LPTSTR lpBuff, DWORD dwSize ) { HGLOBAL hMem; LPCTSTR lpClip; if ( OpenClipboard(hWnd) ){ if ( (hMem = GetClipboardData(CF_CLIPTEXT)) != NULL ){ if ( (lpClip = (LPCTSTR)GlobalLock(hMem)) != NULL ){ if ( lstrlen(lpClip) == 0 ){ funcZeroString( lpBuff, dwSize ); } else{ funcCopyString( lpBuff, dwSize, lpClip ); } GlobalUnlock( hMem ); CloseClipboard(); return TRUE; } } CloseClipboard(); } return FALSE; } //------------------------------------------------ // クリップボードにテキストを書き込む //------------------------------------------------ extern BOOL funcClipWrite( HWND hWnd, LPCTSTR lpBuff, DWORD dwSize ) { HGLOBAL hMem; LPTSTR lpClip; DWORD dwByte; // 文字数からバイト数に変換 dwByte = dwSize; dwByte *= sizeof(TCHAR); dwByte += sizeof(TCHAR); if ( (hMem = GlobalAlloc((GHND|GMEM_SHARE),dwByte)) != NULL ){ if ( (lpClip = (LPTSTR)GlobalLock(hMem)) != NULL ){ funcCopyString( lpClip, (dwSize + 1), lpBuff ); GlobalUnlock( hMem ); // クリップボードにコピー if ( OpenClipboard(hWnd) ){ EmptyClipboard(); SetClipboardData( CF_CLIPTEXT, hMem ); CloseClipboard(); return TRUE; } } GlobalFree( hMem ); } return FALSE; } //------------------------------------------------ // クリップボードの文字列を複製取得 //------------------------------------------------ extern LPTSTR funcClipGets( HWND hWnd ) { LPTSTR lpBuff = NULL; LPTSTR lpClip; HGLOBAL hMem; if ( OpenClipboard(hWnd) ){ if ( (hMem = GetClipboardData(CF_CLIPTEXT)) != NULL ){ if ( (lpClip = (LPTSTR)GlobalLock(hMem)) != NULL ){ lpBuff = funcDupString( lpClip, lstrlen(lpClip) ); GlobalUnlock( hMem ); } } CloseClipboard(); } return lpBuff; } //------------------------------------------------ // クリップボードに文字列を出力 //------------------------------------------------ extern BOOL funcClipPuts( HWND hWnd, LPCTSTR lpString ) { return funcClipWrite( hWnd, lpString, lstrlen(lpString) ); } //------------------------------------------------ // クリップボードに書式列を出力 //------------------------------------------------ extern BOOL funcClipPutf( HWND hWnd, LPCTSTR lpFormat, ... ) { TCHAR szBuff[ 2048 ]; DWORD dwSize; va_list argp; va_start( argp, lpFormat ); dwSize = wvsprintf( szBuff, lpFormat, argp ); va_end( argp ); return funcClipWrite( hWnd, szBuff, dwSize ); } //------------------------------------------------------------------------------ // End of funcClipBoard.cpp //------------------------------------------------------------------------------
関連記事
- クリップボードのデータをクリア - funcClipClear()
- クリップボードからテキストを読み込む - funcClipRead()
- クリップボードにテキストを書き込む - funcClipWrite()
- クリップボードの文字列を複製取得 - funcClipGets()
- クリップボードに文字列を出力 - funcClipPuts()
- クリップボードに書式列を出力 - funcClipPutf()
- クリップボードの基本関数(まとめ)
※コメント投稿者のブログIDはブログ作成者のみに通知されます