Доброго времени суток!
Может кто подскажет, необходимо написать хук отлова диалога печати. Ставлю хук 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?)
Буду очень благодарен за помощь!