FreeRDP/winpr/libwinpr/clipboard/test/TestClipboardFormats.c

87 lines
2.1 KiB
C
Raw Normal View History

2014-10-17 23:19:05 +04:00
#include <winpr/crt.h>
#include <winpr/print.h>
2014-10-17 23:19:05 +04:00
#include <winpr/clipboard.h>
int TestClipboardFormats(int argc, char* argv[])
{
UINT32 index;
UINT32 count;
UINT32* pFormatIds;
const char* formatName;
wClipboard* clipboard;
UINT32 utf8StringFormatId;
2017-03-28 17:18:00 +03:00
2014-10-17 23:19:05 +04:00
clipboard = ClipboardCreate();
2017-03-28 17:18:00 +03:00
if (!clipboard)
return -1;
ClipboardRegisterFormat(clipboard, "text/html");
ClipboardRegisterFormat(clipboard, "image/bmp");
ClipboardRegisterFormat(clipboard, "image/png");
utf8StringFormatId = ClipboardRegisterFormat(clipboard, "UTF8_STRING");
pFormatIds = NULL;
count = ClipboardGetRegisteredFormatIds(clipboard, &pFormatIds);
for (index = 0; index < count; index++)
{
2017-03-28 17:18:00 +03:00
UINT32 formatId = pFormatIds[index];
formatName = ClipboardGetFormatName(clipboard, formatId);
2019-11-06 17:24:51 +03:00
fprintf(stderr, "Format: 0x%08" PRIX32 " %s\n", formatId, formatName);
}
free(pFormatIds);
if (1)
{
BOOL bSuccess;
UINT32 SrcSize;
UINT32 DstSize;
2016-10-06 14:31:25 +03:00
const char* pSrcData = "this is a test string";
char* pDstData;
2016-08-10 11:29:59 +03:00
if (!pSrcData)
{
fprintf(stderr, "Memory allocation failed\n");
return -1;
}
SrcSize = (UINT32)(strnlen(pSrcData, UINT32_MAX - 1) + 1);
2019-11-06 17:24:51 +03:00
bSuccess = ClipboardSetData(clipboard, utf8StringFormatId, pSrcData, SrcSize);
fprintf(stderr, "ClipboardSetData: %" PRId32 "\n", bSuccess);
DstSize = 0;
2019-11-06 17:24:51 +03:00
pDstData = (char*)ClipboardGetData(clipboard, utf8StringFormatId, &DstSize);
fprintf(stderr, "ClipboardGetData: %s\n", pDstData);
free(pDstData);
}
if (1)
{
UINT32 DstSize;
char* pSrcData;
WCHAR* pDstData;
DstSize = 0;
2019-11-06 17:24:51 +03:00
pDstData = (WCHAR*)ClipboardGetData(clipboard, CF_UNICODETEXT, &DstSize);
pSrcData = NULL;
ConvertFromUnicode(CP_UTF8, 0, pDstData, -1, &pSrcData, 0, NULL, NULL);
fprintf(stderr, "ClipboardGetData (synthetic): %s\n", pSrcData);
free(pDstData);
free(pSrcData);
}
2014-10-17 23:19:05 +04:00
pFormatIds = NULL;
count = ClipboardGetFormatIds(clipboard, &pFormatIds);
for (index = 0; index < count; index++)
{
2017-03-28 17:18:00 +03:00
UINT32 formatId = pFormatIds[index];
2014-10-17 23:19:05 +04:00
formatName = ClipboardGetFormatName(clipboard, formatId);
2019-11-06 17:24:51 +03:00
fprintf(stderr, "Format: 0x%08" PRIX32 " %s\n", formatId, formatName);
2014-10-17 23:19:05 +04:00
}
free(pFormatIds);
ClipboardDestroy(clipboard);
return 0;
}