CreateWindowEx returns 0, but GetLastError reveals no error
I am new to c++, and I am trying to get my first win32 gui application
to work correctly, however I am experiancing some difficulties. When
creating a window the handle gets passed 0, however when calling
GetLastError, I get the response : 0. The ShowWindow function however
returns ERROR_INVALID_WINDOW_HANDLE. I am stumped as to why this
would happen. Any help would be greatly appreciated. An excerpt is
shown below, and thank you.
WNDCLASSEX wcex;
wcex.cbClsExtra = 0;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.cbWndExtra = 0;
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.hCursor = (HCURSOR)LoadImage(NULL, MAKEINTRESOURCE(OCR_NORMAL),
IMAGE_CURSOR, 0, 0, LR_MONOCHROME | LR_DEFAULTSIZE | LR_SHARED) ;
wcex.hIcon = (HICON)LoadImage(NULL, MAKEINTRESOURCE(OIC_SAMPLE),
IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
wcex.hIconSm = NULL;
wcex.hInstance = hInstance;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.lpszClassName = L"TestClass";
wcex.lpszMenuName = NULL;
wcex.style = CS_GLOBALCLASS | CS_HREDRAW | CS_VREDRAW;
RegisterClassEx(&wcex);
gHInstance = hInstance;
RECT rect = { 0, 0, 800, 600 };
AdjustWindowRectEx(&rect, WS_OVERLAPPEDWINDOW, FALSE, CS_GLOBALCLASS |
CS_HREDRAW | S_VREDRAW);
gHwnd = CreateWindowEx(WS_EX_LEFT, L"TestClass", L"Test",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rect.right -
rect.left, rect.bottom - rect.top, HWND_DESKTOP, NULL, hInstance,
NULL);
ShowWindow(gHwnd, nShowCmd);