クリップボードへのテキストの転送
// WinMFC.hxx
//*******************************************************************************
// 関数名 :クリップボードへのテキストの転送
// 作成日 :’01/07/13
// 変更日 :’07/12/14 UNICODE テキスト対応
//*******************************************************************************
inline
BOOL SetClipboardText (LPCTSTR text)
{
CString str = text ;
GLOBALHANDLE hGMemText = 0 ;
{
hGMemText = ::GlobalAlloc(GHND,(DWORD)(str.GetLength()+1)*sizeof(TCHAR)) ;
LPSTR lpText = (LPSTR)::GlobalLock(hGMemText) ;
memmove(lpText,str,str.GetLength()*sizeof(TCHAR)) ;
::GlobalUnlock(hGMemText) ;
}
{
BOOL ret = ::OpenClipboard(NULL) ;
if (ret == FALSE) {
::GlobalFree(hGMemText) ;
::MessageBeep(0) ;
::MessageBox(NULL,_T("ERROR: Cannot access the Clipboard!"),AfxGetAppName(),MB_OK|MB_ICONEXCLAMATION) ;
return FALSE ;
}
else {
::EmptyClipboard() ;
#ifdef _UNICODE
::SetClipboardData(CF_UNICODETEXT, hGMemText) ;
#else
::SetClipboardData(CF_TEXT, hGMemText) ;
#endif
::CloseClipboard() ;
}
}
return TRUE ;
}
//*******************************************************************************
// 関数名 :クリップボードへのテキストの転送
// 作成日 :’01/07/13
// 変更日 :’07/12/14 UNICODE テキスト対応
//*******************************************************************************
inline
BOOL SetClipboardText (LPCTSTR text)
{
CString str = text ;
GLOBALHANDLE hGMemText = 0 ;
{
hGMemText = ::GlobalAlloc(GHND,(DWORD)(str.GetLength()+1)*sizeof(TCHAR)) ;
LPSTR lpText = (LPSTR)::GlobalLock(hGMemText) ;
memmove(lpText,str,str.GetLength()*sizeof(TCHAR)) ;
::GlobalUnlock(hGMemText) ;
}
{
BOOL ret = ::OpenClipboard(NULL) ;
if (ret == FALSE) {
::GlobalFree(hGMemText) ;
::MessageBeep(0) ;
::MessageBox(NULL,_T("ERROR: Cannot access the Clipboard!"),AfxGetAppName(),MB_OK|MB_ICONEXCLAMATION) ;
return FALSE ;
}
else {
::EmptyClipboard() ;
#ifdef _UNICODE
::SetClipboardData(CF_UNICODETEXT, hGMemText) ;
#else
::SetClipboardData(CF_TEXT, hGMemText) ;
#endif
::CloseClipboard() ;
}
}
return TRUE ;
}