s***@gmail.com
2009-02-05 15:25:56 UTC
i want to cpture the cilpboard data, and modify it then want to set
it into Ciplboard back.How can i do?
Thnaks
------------------------------------------------------------------------------------------------------------------
HGLOBAL hglb;
WCHAR* wszDomain = NULL;
char* pData;
if (!IsClipboardFormatAvailable(CF_TEXT))
return;
OpenClipboard();
pData = (char*) ::GetClipboardData(CF_TEXT);
int n = strlen(pData);
CloseClipboard();
HGLOBAL HMem = NULL;
TCHAR* pMem = NULL;
HMem = (TCHAR*) ::GlobalAlloc((GMEM_MOVEABLE | GMEM_DDESHARE ), (n *
2) + 1 );
if(HMem == NULL) { return;}
pMem = (TCHAR*) ::GlobalLock(HMem);
if(pMem == NULL)
{
::GlobalFree(HMem); return;
}
n = strlen(pData);
if(n > 0 )
{
wszDomain = new WCHAR[(n * 2) + 1];
wmemset(wszDomain,0,( n * 2 ) + 1);
MultiByteToWideChar( CP_UTF8, 0, (const char*)pData,n ,
wszDomain, (n * 2));
}
_tcscpy(pMem,wszDomain);
::GlobalUnlock(HMem);
if(!OpenClipboard())
{
::GlobalFree(HMem); return;
}
SetClipboardData(CF_UNICODETEXT,HMem);
CloseClipboard();
if( wszDomain ) delete wszDomain; wszDomain = NULL;
it into Ciplboard back.How can i do?
Thnaks
------------------------------------------------------------------------------------------------------------------
HGLOBAL hglb;
WCHAR* wszDomain = NULL;
char* pData;
if (!IsClipboardFormatAvailable(CF_TEXT))
return;
OpenClipboard();
pData = (char*) ::GetClipboardData(CF_TEXT);
int n = strlen(pData);
CloseClipboard();
HGLOBAL HMem = NULL;
TCHAR* pMem = NULL;
HMem = (TCHAR*) ::GlobalAlloc((GMEM_MOVEABLE | GMEM_DDESHARE ), (n *
2) + 1 );
if(HMem == NULL) { return;}
pMem = (TCHAR*) ::GlobalLock(HMem);
if(pMem == NULL)
{
::GlobalFree(HMem); return;
}
n = strlen(pData);
if(n > 0 )
{
wszDomain = new WCHAR[(n * 2) + 1];
wmemset(wszDomain,0,( n * 2 ) + 1);
MultiByteToWideChar( CP_UTF8, 0, (const char*)pData,n ,
wszDomain, (n * 2));
}
_tcscpy(pMem,wszDomain);
::GlobalUnlock(HMem);
if(!OpenClipboard())
{
::GlobalFree(HMem); return;
}
SetClipboardData(CF_UNICODETEXT,HMem);
CloseClipboard();
if( wszDomain ) delete wszDomain; wszDomain = NULL;