Corrupção de heap ao usar CreateWindowExW

Estou com alguns problemas com a corrupção da pilha. O aviso pode ser observado ao usar a função CreateWindowExW. Eu sei que geralmente é um erro de memória, mas como eu poderia procurar em tal situação? Não há novas variáveis antes de chamar CreateWindowExW e não consigo entrar nessa função. Aqui está o código.

HWND GetMainWnd(HINSTANCE hInstance){
static HWND hWnd = NULL;
if (hWnd)
    return hWnd;

RETURN_AT_ERROR(hInstance, NULL);

WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
wcex.style          = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc    = MainWndProc;
wcex.hInstance      = hInstance;
wcex.hCursor        = ::LoadCursorW(NULL, IDC_ARROW);
wcex.lpszClassName  = g_config->GetWndClass();

ATOM atom = ::RegisterClassExW(&wcex);
RETURN_AT_ERROR(atom != 0, NULL);

hWnd = ::CreateWindowExW(WS_EX_LEFT, g_config->GetWndClass(), 0, WS_POPUP | WS_MINIMIZEBOX | WS_CLIPCHILDREN, 0, 0, 0, 0, 0, 0, hInstance, 0);

return hWnd;}

Nesta cadeia

hWnd = ::CreateWindowExW(WS_EX_LEFT, g_config->GetWndClass(), 0, WS_POPUP | WS_MINIMIZEBOX | WS_CLIPCHILDREN, 0, 0, 0, 0, 0, 0, hInstance, 0);

existe uma caixa de mensagem de aviso

O Windows acionou um ponto de interrupção no drm.exe. Isso pode ocorrer devido a uma corrupção do heap, que indica um erro no drm.exe ou em qualquer uma das DLLs carregadas. Isso também pode ser devido ao usuário pressionar F12 enquanto o drm.exe estiver em foco. A janela de saída pode ter mais informações de diagnóstico.

Eu pressiono "Continuar" e mostra

Unhandled exception at 0x77dae753 in app.exe: 0xC0000374: A heap has been corrupted.

No entanto, CreateWindowExW retorna um valor diferente de zero e a janela é criada como deveria ser ...

questionAnswers(2)

yourAnswerToTheQuestion