OFNHookProc

De OFNHookProc haak procedure is een toepassing of bibliotheek gedefinieerde callback-functie die wordt gebruikt met de Verkenner-stijl Open dialoogvensters en Opslaan als gemeenschappelijk. De functie ontvangt meldingen verzonden vanuit de common dialog box. Ook ontvangt de functie berichten voor extra besturingselementen die u hebt gedefinieerd door een kind dialoogvenster sjabloon opgeven.

Het LPOFNHOOKPROC type definieert een pointer naar deze callback functie. OFNHookProc is een tijdelijke aanduiding voor de naam van de toepassing- of bibliotheek gedefinieerde functie.

Als u de vlag OFN_EXPLORER wanneer u een dialoogvenster openen of Opslaan als gemeenschappelijk maakt, en u wilt dat een haak niet opgeeft, moet u een oude-stijl OFNHookProcOldStyle haak procedure gebruiken. In dit geval, zal het dialoogvenster hebben de oude-stijl gebruikersinterface.

(UINT CALLBACK OFNHookProc HWND  hdlg, / / verwerken naar kind dialoogvenster vensterUINTuiMsg, / / bericht idWPARAMwParam, / / bericht parameterLPARAMlParam / / bericht parameter);
 

Parameters

hdlg
Ingang naar het dialoogvenster kind van het dialoogvenster openen of Opslaan als . Gebruik de functie GetParent om de ingang voor het venster van openen of Opslaan als een dialoogvenster vak.
uiMsg
Identificeert het bericht wordt ontvangen.
wParam
Aanvullende informatie over het bericht aangeeft. De exacte betekenis hangt af van de waarde van de parameter uiMsg.
lParam
Aanvullende informatie over het bericht aangeeft. De exacte betekenis hangt af van de waarde van de parameter uiMsg.

Als de parameter uiMsg het bericht WM_INITDIALOG geeft , is lParam een aanwijzer naar een NAAMOPENBESTAND structuur met de waarden opgegeven toen het dialoogvenster werd gemaakt.

Retourwaarden

Als de haak procedure nul retourneert, verwerkt de verstekprocedure dialoogvenster vak het bericht.

Als de haak procedure een andere waarde dan nul retourneert, negeert de verstekprocedure dialoogvenster vak het bericht.

Voor de meldingen voor CDN_SHAREVIOLATION en CDN_FILEOK , moet de haak procedure een andere waarde dan nul om aan te geven dat het de SetWindowLong functie is gebruikt om een niet-nulzijnde DWL_MSGRESULT waarde retourneren.

Opmerkingen

Wanneer u de functies GetOpenFileName of GetSaveFileName maken een Verkenner-stijl Open dialoogvenster of Opslaan als gemeenschappelijk gebruikt, kunt u een OFNHookProc haak procedure voorzien. Opdat de haak procedure, de NAAMOPENBESTAND structuur die u aan de functie dialoogvenster creatie doorgegeven te gebruiken. De aanwijzer aan de haak-procedure in de lpfnHook lid opgeven en de OFN_ENABLEHOOK vlag in de vlaggen lid opgeven.

Als u een haak procedure voorzien in een Verkenner-stijl common dialog box, wordt een dialoogvenster dat een kind van het dialoogvenster standaard is gemaakt. De haak-procedure treedt op als het dialoogvenster procedure voor de kind-dialoogvenster. Dit dialoogvenster kind is gebaseerd op de sjabloon die u hebt opgegeven in de NAAMOPENBESTAND structuur, of het is een standaard kind dialoogvenster als geen sjabloon is opgegeven. Het dialoogvenster kind wordt gemaakt wanneer de verstekprocedure dialoogvenster haar boodschap WM_INITDIALOG wordt verwerkt. Nadat het dialoogvenster kind zijn eigen WM_INITDIALOG bericht verwerkt, beweegt de verstekprocedure dialoogvenster de standaardbesturingselementen, indien nodig, om ruimte voor de eventuele extra besturingselementen van het dialoogvenster kind te maken. Het systeem stuurt het bericht CDN_INITDONE naar de haak-procedure.

De haak procedure ontvangt geen berichten die bestemd zijn voor de standaard besturingselementen van het dialoogvenster. U kunt de subklasse de standaardbesturingselementen, maar dit wordt afgeraden omdat het uw toepassing onverenigbaar met toekomstige versies van het dialoogvenster gemeenschappelijke kan maken. De gemeenschappelijke dialogen van Verkenner-stijl evenwel een reeks van berichten die de haak procedure gebruiken kunt en controleren van het dialoogvenster. Deze omvatten een set van meldingen verzonden vanuit het dialoogvenster, evenals berichten die u kunt gegevens ophalen uit het dialoogvenster verzenden. Zie voor een volledige lijst van deze berichten, Verkenner-stijl haak Procedures.

Als de procedure haak het WM_CTLCOLORDLG bericht verwerkt, moet deze resulteren in een geldige borstel handvat voor het schilderen van de achtergrond van het dialoogvenster. In het algemeen, als het alle WM_CTLCOLOR-berichten worden verwerkt, moet het een geldige borstel handvat voor het schilderen van de achtergrond van het opgegeven besturingselement terugkeren.

De EndDialog -functie niet aanroepen vanuit de haak procedure. In plaats daarvan, kan de procedure haak roepen de PostMessage -functie om een WM_COMMAND-bericht met de waarde IDABORT naar het dialoogvenster vak procedure. Posten IDABORT sluit u het dialoogvenster en veroorzaakt de dialoogvenster vak functie FALSE. Als u weten waarom de haak procedure het dialoogvenster gesloten wilt, dient u uw eigen communicatiemechanisme voor tussen de haak procedure en uw toepassing.

Syntaxisinfo

nbsp; Windows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Niet-ondersteunde.
Header:Verklaard in commdlg.h.
Bibliotheek importeren:Gebruiker gedefinieerde.

Zie ook

Overzicht van bibliotheek het gemeenschappelijk dialoogvenster, gemeenschappelijk dialoogvenster vak functies, GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENBESTANDSNAAM

Index