MSDN сообщает, что FindWindow
и FindWindowEx
возвращают NULL, если функция завершается с ошибкой, и вам следует проверить GetLastError
Кажется, что эта документация неверна. Возьми этот фрагмент кода:
SetLastError(12345);
HWND h = FindWindow(L"class_name_that_does_not_exist", nullptr);
cout << h << ' ' << GetLastError() << endl;
Будет выведено
00000000 12345
Так что, как видите, FindWindow не может установить последнюю ошибку. В вашем случае это означает, что ERROR_ALREADY_EXISTS
была последней ошибкой, установленной перед вызовом FindWindow
.