OFNHookProc

Procedura haka OFNHookProc jest funkcję zwrotne definiowane przez aplikację lub biblioteki, która jest używana w stylu Eksploratora Otwórz i Zapisz jako wspólne pola okna dialogowego. Funkcja odbiera wiadomości wysyłane przez wspólne okno dialogowe. Funkcja również odbiera wiadomości wszelkich dodatkowych formantów, zdefiniowanych przez określenie szablonu okno dialogowe dziecka.

Typ LPOFNHOOKPROC określa wskaźnik do funkcji wywołania zwrotnego. OFNHookProc jest symbolem zastępczym nazwy funkcji zdefiniowanych przez aplikację lub zdefiniowany biblioteki.

Jeśli nie określisz Flaga OFN_EXPLORER po utworzeniu otwarte lub Zapisz jako wspólne okno dialogowe i chcesz, aby procedura haka, należy użyć procedury haka OFNHookProcOldStyle w starym stylu. W tym przypadku okno dialogowe będzie mieć interfejs użytkownika w starym stylu.

(UINT wywołania zwrotnego OFNHookProc HWND  hdlg, / / dojście do okna dialogowego podrzędnegoUINTuiMsg, / / wiadomości identyfikatorWPARAMwParam, / / wiadomości parametrFIKCYJNYMIfikcyjnymi / / wiadomości parametr);
 

Parametry

hdlg
Dojście do okna dialogowego dziecko okna dialogowego Otwórz i Zapisz jako . Użyj funkcji GetParent Aby uzyskać dojście do okna pole otwarte lub Zapisz jako okno dialogowe.
uiMsg
Identyfikuje wiadomość odbierany.
wParam
Określa dodatkowe informacje na temat wiadomości. Dokładne znaczenie zależy od wartości parametru uiMsg.
fikcyjnymi
Określa dodatkowe informacje na temat wiadomości. Dokładne znaczenie zależy od wartości parametru uiMsg.

Jeżeli parametr uiMsg określa komunikat WM_INITDIALOG , fikcyjnymi jest wskaźnik do struktury OPENFILENAME zawierających, wartości określone podczas tworzenia okna dialogowego.

Zwraca wartości

Jeśli procedura haka zwraca zero, procedury pole dialogowe domyślne przetwarza wiadomość.

Jeśli procedura haka zwraca wartość różną od zera, procedury pole dialogowe domyślne ignoruje wiadomości.

Wiadomości powiadomień CDN_SHAREVIOLATION i CDN_FILEOK procedura haka powinny zwracać wartość różną od zera do wskazania, że została użyta funkcja SetWindowLong ustawić niezerową wartość DWL_MSGRESULT.

Uwagi

Podczas tworzenia stylu Eksploratora otwarte lub Zapisz jako wspólne okno dialogowe za pomocą funkcji GetOpenFileName lub GetSaveFileName , może zapewnić procedura haka OFNHookProc . Aby włączyć procedura haka, użyj struktury OPENFILENAME , który zostanie przekazany do funkcji Tworzenie okna dialogowego. Określanie wskaźnika, aby procedura haka członka lpfnHook i określić flagi OFN_ENABLEHOOK członka flagi.

Jeśli procedura haka można przewidzieć wspólne okno dialogowe stylu eksploratora, system tworzy okno dialogowe, która jest elementem podrzędnym okno dialogowe domyślne. Procedura haka działa jako procedury okno dialogowe okno podrzędne. To okno dialogowe dziecko jest opartych na tym szablonie, określonej w strukturze OPENFILENAME , lub jest domyślne okno dialogowe dziecka, jeśli żaden z szablonów jest określony. Okno dialogowe dziecko jest tworzony podczas procedury okno dialogowe domyślne jest przetwarzania komunikatu WM_INITDIALOG . Po oknie dialogowym dziecko przetwarza komunikatu WM_INITDIALOG, procedury okno dialogowe domyślne przenosi standardowych formantów, jeśli to konieczne zwolnić miejsce dla wszelkich dodatkowych formantów okna dialogowego dziecka. System następnie wysyła wiadomość z powiadomieniem CDN_INITDONE procedura haka.

Procedura haka nie otrzyma wiadomości przeznaczonych dla standardowych formantów okna dialogowego domyślne. Możesz podklasy standardowych formantów, ale to jest niewskazane, ponieważ aplikacja może dokonać niezgodne z przyszłych wersji wspólne okno dialogowe. Jednakże stylu Eksploratora wspólnych okien dialogowych zawierają zestaw komunikatów, które procedura haka można używać do monitorowania i kontrolowania okna dialogowego. Obejmują one zestaw powiadomień wysyłanych z okna dialogowego, jak również wiadomości, które można wysyłać do pobierania informacji z okna dialogowego. Aby uzyskać pełną listę tych wiadomości zobacz Procedury haka stylu Eksploratora.

Jeśli procedura haka przetwarza wiadomość WM_CTLCOLORDLG , musi ona zwracać do malowania tła okna dialogowego uchwytu ważne pędzla. Ogólnie jeżeli je przetwarza wiadomości WM_CTLCOLOR *, to musi zwracać obsługę pędzla prawidłowy obraz tła określonych kontroli.

Nie wywołuj funkcję EndDialog z procedura haka. Zamiast tego procedura haka może wywołać funkcję PostMessage , aby ogłosić wiadomość WM_COMMAND z wartością IDABORT procedurze pole dialogowe. Księgowanie IDABORT zamyka okno dialogowe i powoduje, że funkcja pole dialogowe zwraca FALSE. Jeśli użytkownik chce wiedzieć, dlaczego procedura haka zamknięte okno dialogowe, należy podać swój własny mechanizm komunikacji między procedura haka i aplikacji.

Skrócone informacje

nbsp; Windows &NT: wymagana wersja 3.1 lub nowsza.
Systemu Windows:Wymaga systemu Windows 95 lub nowszego.
Systemu Windows CE:Nieobsługiwane.
Nagłówka:Zadeklarowane w commdlg.h.
Importowanie biblioteki:Zdefiniowane przez użytkownika.

Zobacz też

Wspólny omówienie biblioteki okna dialogowego, wspólne funkcje pole dialogowe, GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME

Index