EnumWindows

Лучик_света

Мне нужно получить дескриптор окна в dll. я использую функцию EnumWindows, в которой меняю обработчик событий приложения на свой MyWndProc. Но почему-то у меня мой обработчик событий не выполняется. Что не так в коде?
extern "C" __declspec(dllexport) BOOL CALLBACK ******(HWND hWnd, LPARAM lParam)
{
    __asm int 3;
    OldWindowProc = (WNDPROC)SetWindowLong(hWnd, GWL_WNDPROC, (long)MyWndProc);
    return false;
}
 
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    EnumWindows((WNDENUMPROC)******, 1);
    return TRUE;
}
1 ответ

Лучик_света

Лучик_света, MSDN:
GWL_WNDPROCSets a new address for the window procedure.Windows NT/2000/XP: You cannot change this attribute if the window does not belong to the same process as the calling thread.