자주 까먹어서 포스팅
void CopyClipboard( IN const tstring strTemp )
{
if( ::OpenClipboard( NULL ) )
{
::EmptyClipboard();
HGLOBAL hBlock = ::GlobalAlloc( GMEM_MOVEABLE, sizeof(TCHAR) * ( strTemp.size() + 1 ) );
if( hBlock )
{
TCHAR *pwszText = (TCHAR*)::GlobalLock( hBlock );
if( pwszText )
{
_tcscpy( pwszText, strTemp.c_str() );
::GlobalUnlock( hBlock );
}
::SetClipboardData( CF_UNICODETEXT, hBlock );
}
::CloseClipboard();
// We must not free the object until CloseClipboard is called.
if( hBlock )
::GlobalFree( hBlock );
}
}
OUT const tstring GetClipboard()
{
if( ::OpenClipboard( NULL ) )
{
if( ::IsClipboardFormatAvailable( CF_UNICODETEXT ) == TRUE )
{
HANDLE hMem;
hMem = ::GetClipboardData( CF_UNICODETEXT );
const tstring reStr = (LPCTSTR)GlobalLock((HGLOBAL)hMem );
GlobalUnlock( (HGLOBAL)hMem );
return reStr;
}
::CloseClipboard();
}
return tstring();
}
'게임개발 > 팁' 카테고리의 다른 글
MSSQL 에서 in 사용시 varchar를 파라메터로 넣기 (0) | 2013.03.22 |
---|---|
비트맵폰트용 일본어 (0) | 2011.07.14 |
서브버전 로그 꼭 남기게 하는 팁 (2) | 2007.01.05 |
synchronized block in C++ (0) | 2006.05.03 |
최상위 비트 인덱스 가져오기 (0) | 2006.05.02 |