Witam chciałbym się podczepić pod procedurę WNDPROC okna pulpitu, aby moc właściwie odświeżać moje rysunki na pulpicie.
HWND hWnd = FindWindow( "Progman", NULL);
hWnd = GetWindow(hWnd, GW_CHILD);
hWnd = GetWindow(hWnd, GW_CHILD);
WNDPROC g_OldWndProc;
g_OldWndProc = (WNDPROC)SetWindowLong(hWnd, GWL_WNDPROC, (LONG)NewWndProc);
DWORD a = GetLastError();
I w tym momencie a przyjmuje mi wartosc 5 co odpowiada "Access is denied.". Więc nie udał się subclassing. Sprawdzałem to na innych oknach i zauważyłem, że występuje ten sam błąd. więc nie można podłączać sie pod procedury innych oknien niż stworzone własnoręcznie...
Pomyślałem że zrobie to za pomocą haków i:
HHOOK hak = SetWindowsHookEx (WH_CALLWNDPROCRET, &WndProcPulp, NULL, GetThreadId (...???...));
Tylko nie wiem co wstawić w miejsce: ...???..., ponieważ nie wiem jak znaleźć Id procesu pulpitu...
Idąc dalej jakim sposobem będę mógł się dowiedzieć w tej procedurze że został przesłany komuniat WM_PAINT?
LRESULT CALLBACK WndProcPulp (int code, WPARAM wParam, LPARAM lParam)
{
}
Z góry bardzo dziękuję za odpowiedzi :)</cpp>
//Edit
deus:
Dzięki wielkie!