Russian Qt Forum

Программирование => С/C++ => Тема начата: kosproger от Октябрь 30, 2013, 01:23



Название: Отловить диалог печати Hook, WinAPI
Отправлено: kosproger от Октябрь 30, 2013, 01:23
Доброго времени суток!
Может кто подскажет, необходимо написать хук отлова диалога печати. Ставлю хук WH_CALLWNDPROCRET, событие HC_ACTION c сообщением WM_INITDIALOG, но возникла трудность, не могу понять, как определить какой диалог открывается.
Код callback-функции:
Код:
LRESULT CALLBACK HookProc(int code, WPARAM wParam, LPARAM lParam)
{
    if (code == HC_ACTION) {
        CWPRETSTRUCT* pwp = (CWPRETSTRUCT*)lParam;
        if (pwp->message == WM_INITDIALOG) {
            ....//Как определить какой даилог?
        }
    }
    return CallNextHookEx(NULL, code, wParam, lParam);
}
По идее из pwp->lParam вытащить можно это, но как именно?
И попутно пара вопросов: можно ли по данному диалогу определить, какой файл будет отправлен на печать? Можно ли передать свои данные в данный диалог (например список принтеров со своими именами, или, более уточненный вопрос, можно ли определить свой DEVNAMES?)
Буду очень благодарен за помощь!