#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
	HDC hdc;
	PAINTSTRUCT ps;
	switch (msg) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	case WM_PAINT:
		hdc = BeginPaint(hwnd , &ps);
		SetROP2(hdc , R2_XORPEN);
		Rectangle(hdc , 10 , 10 , 200 , 50);
		Ellipse(hdc , 100 , 25 , 300 , 100);
		EndPaint(hwnd , &ps);
		return 0;
	}
	return DefWindowProc(hwnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
			PSTR lpCmdLine , int nCmdShow ) {
	HWND hwnd;
	MSG msg;
	WNDCLASS winc;
	winc.style		= CS_HREDRAW | CS_VREDRAW;
	winc.lpfnWndProc	= WndProc;
	winc.cbClsExtra	= winc.cbWndExtra	= 0;
	winc.hInstance		= hInstance;
	winc.hIcon		= LoadIcon(NULL , IDI_APPLICATION);
	winc.hCursor		= LoadCursor(NULL , IDC_ARROW);
	winc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);
	winc.lpszMenuName	= NULL;
	winc.lpszClassName	= TEXT("KITTY");
	if (!RegisterClass(&winc)) return -1;
	hwnd = CreateWindow(
			TEXT("KITTY") , TEXT("Kitty on your lap") ,
			WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			NULL , NULL , hInstance , NULL
	);
	if (hwnd == NULL) return -1;
	while(GetMessage(&msg , NULL , 0 , 0)) DispatchMessage(&msg);
	return msg.wParam;
}

| 定数 | 解説 | 
|---|---|
| R2_BLACK | ピクセルは、常に 0 です | 
| R2_COPYPEN | ピクセルは、描画する色です | 
| R2_MASKNOTPEN | ピクセルは、画面の色と、描画する色を反転した色の 両方に共通な色の組み合わせです  | 
| R2_MASKPEN | ピクセルは、描画する色と、画面の色の 両方に共通な色の組み合わせです  | 
| R2_MASKPENNOT | ピクセルは、描画する色と、画面の色の 両方に共通な色の組み合わせです  | 
| R2_MERGENOTPEN | ピクセルは、画面の色と、描画する色を反転した色の組み合わせです | 
| R2_MERGEPEN | ピクセルは、描画する色と、画面の色の組み合わせです | 
| R2_MERGEPENNOT | ピクセルは、描画する色と、画面の色を反転した色の組み合わせです | 
| R2_NOP | ピクセルは、変更されません | 
| R2_NOT | ピクセルは、スクリーンの色を反転した色です | 
| R2_NOTCOPYPEN | ピクセルは、描画する色を反転した色です | 
| R2_NOTMASKPEN | ピクセルは、R2_MASKPEN の色を反転した色です | 
| R2_NOTMERGEPEN | ピクセルは、R2_MERGEPEN の色を反転した色です | 
| R2_NOTXORPEN | ピクセルは、R2_XORPEN の色を反転した色です | 
| R2_WHITE | ピクセルは、常に 1 です | 
| R2_XORPEN | ピクセルは、描画する色と、画面の色との組み合わせですが 両方に共通する色は除きます  |