Я пытаюсь получить дескриптор процесса, который загрузил DLL из библиотеки DLL.
Мой подход:
в DLL_PROCESS_ATTACH я вызываю EnumWindows (EnumWindowsProc, NULL);
моя реализация EnumWindowsProc выглядит следующим образом:
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) {
if(GetCurrentProcessId() == GetWindowThreadProcessId(hWnd,NULL)){
MessageBox(hWnd,L"I loaded your dll!",L"it's me",MB_OK);
return TRUE;
}
return FALSE;
}
проблема в том, что GetCurrentProcessId () == GetWindowThreadProcessId (hWnd, NULL) никогда не выполняется (если я помещаю вызов messagebox вне блока if, все работает, но он вызывается один раз для каждого перечисленного окна).
Есть ли другой способ добраться до сути? Это неправильный подход или я что-то упускаю?
Спасибо заранее