Blame winpr/libwinpr/wnd/test/TestWndWmCopyData.c

Packit 1fb8d4
Packit 1fb8d4
#include <winpr/crt.h>
Packit 1fb8d4
#include <winpr/wnd.h>
Packit 1fb8d4
#include <winpr/tchar.h>
Packit 1fb8d4
#include <winpr/library.h>
Packit 1fb8d4
Packit 1fb8d4
static LRESULT CALLBACK TestWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Packit 1fb8d4
{
Packit 1fb8d4
	PCOPYDATASTRUCT pCopyData;
Packit 1fb8d4
Packit 1fb8d4
	switch (uMsg)
Packit 1fb8d4
	{
Packit 1fb8d4
		case WM_COPYDATA:
Packit 1fb8d4
			{
Packit 1fb8d4
				pCopyData = (PCOPYDATASTRUCT) lParam;
Packit 1fb8d4
Packit 1fb8d4
				if (!pCopyData)
Packit 1fb8d4
					break;
Packit 1fb8d4
Packit 1fb8d4
				printf("WM_COPYDATA: cbData: %"PRIu32" dwData: %"PRIu32"\n",
Packit 1fb8d4
						(int) pCopyData->cbData, (int) pCopyData->dwData);
Packit 1fb8d4
			}
Packit 1fb8d4
			break;
Packit 1fb8d4
Packit 1fb8d4
		case WM_CLOSE:
Packit 1fb8d4
			printf("WM_CLOSE\n");
Packit 1fb8d4
			break;
Packit 1fb8d4
Packit 1fb8d4
		default:
Packit 1fb8d4
			printf("TestWndProc: uMsg: 0x%08"PRIX32"\n", uMsg);
Packit 1fb8d4
			return DefWindowProc(hwnd, uMsg, wParam, lParam);
Packit 1fb8d4
			break;
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	return 0;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
int TestWndWmCopyData(int argc, char* argv[])
Packit 1fb8d4
{
Packit 1fb8d4
	HWND hWnd;
Packit 1fb8d4
	HMODULE hModule;
Packit 1fb8d4
	HINSTANCE hInstance;
Packit 1fb8d4
	WNDCLASSEX wndClassEx;
Packit 1fb8d4
Packit 1fb8d4
	hModule = GetModuleHandle(NULL);
Packit 1fb8d4
Packit 1fb8d4
	ZeroMemory(&wndClassEx, sizeof(WNDCLASSEX));
Packit 1fb8d4
	wndClassEx.cbSize = sizeof(WNDCLASSEX);
Packit 1fb8d4
	wndClassEx.style = 0;
Packit 1fb8d4
	wndClassEx.lpfnWndProc = TestWndProc;
Packit 1fb8d4
	wndClassEx.cbClsExtra = 0;
Packit 1fb8d4
	wndClassEx.cbWndExtra = 0;
Packit 1fb8d4
	wndClassEx.hInstance = hModule;
Packit 1fb8d4
	wndClassEx.hIcon = NULL;
Packit 1fb8d4
	wndClassEx.hCursor = NULL;
Packit 1fb8d4
	wndClassEx.hbrBackground = NULL;
Packit 1fb8d4
	wndClassEx.lpszMenuName = _T("TestWndMenu");
Packit 1fb8d4
	wndClassEx.lpszClassName = _T("TestWndClass");
Packit 1fb8d4
	wndClassEx.hIconSm = NULL;
Packit 1fb8d4
Packit 1fb8d4
	if (!RegisterClassEx(&wndClassEx))
Packit 1fb8d4
	{
Packit 1fb8d4
		printf("RegisterClassEx failure\n");
Packit 1fb8d4
		return -1;
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	hInstance = wndClassEx.hInstance;
Packit 1fb8d4
Packit 1fb8d4
	hWnd = CreateWindowEx(0, wndClassEx.lpszClassName,
Packit 1fb8d4
		0, 0, 0, 0, 0, 0, HWND_MESSAGE, 0, hInstance, NULL);
Packit 1fb8d4
Packit 1fb8d4
	if (!hWnd)
Packit 1fb8d4
	{
Packit 1fb8d4
		printf("CreateWindowEx failure\n");
Packit 1fb8d4
		return -1;
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	SendMessage(hWnd, WM_CLOSE, 0, 0);
Packit 1fb8d4
Packit 1fb8d4
	DestroyWindow(hWnd);
Packit 1fb8d4
Packit 1fb8d4
	return 0;
Packit 1fb8d4
}
Packit 1fb8d4