NAAMOPENBESTAND

De NAAMOPENBESTAND structuur bevat informatie die de GetOpenFileName en GetSaveFileName functies gebruiken om een dialoogvenster openen of Opslaan als gemeenschappelijk initialiseren. Nadat de gebruiker het dialoogvenster sluit, geeft het systeem informatie over de selectie van de gebruiker in deze structuur.

typedef struct tagOFN {/ / ofn DWORD lStructSize; 
    HWND hwndOwner; 
    HINSTANCE hInstance; 
    LPCTSTR lpstrFilter; 
    LPTSTR lpstrCustomFilter; 
    DWORD nMaxCustFilter; 
    DWORD nFilterIndex; 
    LPTSTR lpstrFile; 
    DWORD nMaxFile; 
    LPTSTR lpstrFileTitle; 
    DWORD nMaxFileTitle; 
    LPCTSTR lpstrInitialDir; 
    LPCTSTR lpstrTitle; 
    DWORD Vlaggen; 
    WORD nFileOffset; 
    WORD nFileExtension; 
    LPCTSTR lpstrDefExt; 
    DWORD lCustData; 
    LPOFNHOOKPROC lpfnHook; 
    LPCTSTR lpTemplateName; 
} NAAMOPENBESTAND 
 

Leden

lStructSize
Hiermee geeft u de lengte, in bytes, van de structuur.
hwndOwner
Identificeert het venster dat eigenaar is van het dialoogvenster. Dit lid kan elk geldig vensteringang, of het kan worden NULL als het dialoogvenster geen eigenaar heeft.
hInstance
Als de vlag OFN_ENABLETEMPLATEHANDLE is ingesteld in de vlaggen lid, is hInstance het handvat van een geheugen-object met een dialoogvenster vak sjabloon. Als de vlag OFN_ENABLETEMPLATE is ingesteld, identificeert hInstance een module die een dialoogvenster vak sjabloon met de naam door de lpTemplateName lid bevat. Als geen van beide vlag is ingesteld, wordt dit lid genegeerd.

Als de vlag OFN_EXPLORER is ingesteld, gebruikt het systeem de opgegeven sjabloon te maken een dialoogvenster dat is een kind van het dialoogvenster standaard Verkenner-stijl. Als de vlag OFN_EXPLORER is niet ingesteld, het systeem de sjabloon gebruikt om een oude-stijl dialoogvenster maken waarin het dialoogvenster standaard vervangt.

lpstrFilter
Aanwijzer naar een buffer met paren van filtertekenreeksen eindigt met null. De laatste tekenreeks in de buffer moet worden beëindigd door twee NULL-tekens.

De eerste tekenreeks in elk paar is een weergavereeks die beschrijft het filter (bijvoorbeeld "tekstbestanden"), en de tweede tekenreeks aangeeft het filterpatroon (bijvoorbeeld "*.TXT"). Gebruik een puntkomma te scheiden van de patronen te geven meerdere filter patronen voor een enkele weergavereeks (bijvoorbeeld "*.TXT; *.DOC; *.BAK"). Een patroon string kunnen een combinatie zijn van geldige bestandsnaam tekens en het jokerteken sterretje. Neem geen spaties in de tekenreeks patroon.

Het systeem verandert niet de volgorde van de filters. Het geeft ze weer in het vakbestandstypen combo in de volgorde die is opgegeven in lpstrFilter .

Als lpstrFilter NULL is, worden het dialoogvenster geen filters niet weergegeven.

lpstrCustomFilter
Aanwijzer naar een statisch buffer die een paar van null eindigende filtertekenreeksen bevat voor het behoud van het filterpatroon gekozen door de gebruiker. De eerste tekenreeks is uw weergegeven tekenreeks die het aangepaste filter wordt beschreven, en de tweede tekenreeks is de filterpatroon van de geselecteerd door de gebruiker. De eerste keer die de toepassing het dialoogvenster maakt, geeft u de eerste tekenreeks, waarin elke niet-lege tekenreeks kan worden. Wanneer de gebruiker een bestand selecteert, kopieert het dialoogvenster het huidige filterpatroon naar de tweede tekenreeks. De bewaarde filterpatroon kan een van de patronen in de buffer lpstrFilter opgegeven kan, of het een door de gebruiker getypt filterpatroon. Het systeem gebruikt de tekenreeksen om te initialiseren het bestandsfilter gebruiker gedefinieerd de volgende keer die het dialoogvenster is gemaakt. Als lid van de nFilterIndex nul is, het dialoogvenster maakt gebruik van het aangepaste filter.

Als dit lid NULL is, behouden het dialoogvenster gebruiker gedefinieerde filter patronen niet.

Als dit lid niet nul is, moet de waarde van het lid nMaxCustFilter de grootte, in bytes (ANSI-versie) of 16-bits tekens (Unicode versie), opgeven van de buffer lpstrCustomFilter.

nMaxCustFilter
Geeft de grootte, in bytes of tekens, van de buffer geïdentificeerd door lpstrCustomFilter. Deze buffer moet ten minste 40 tekens lang zijn. Dit lid wordt genegeerd als lpstrCustomFilter NULL of punten is op een NULL-tekenreeks.
nFilterIndex
Hiermee geeft u de index van de momenteel geselecteerde filter in het besturingselement bestandstypen. De buffer waarnaar wordt verwezen door lpstrFilter bevat paren van tekenreeksen die de filters definiëren. Het eerste paar van tekenreeksen heeft een de indexwaarde 1, het tweede paar 2, enzovoort. Een index nul geeft aan dat het aangepaste filter dat is opgegeven door lpstrCustomFilter. U kunt een index op input om aan te geven van de initiële beschrijving en filter filterpatroon voor het dialoogvenster opgeven. Wanneer de gebruiker een bestand selecteert, geeft nFilterIndex de index van de momenteel weergegeven filter.

Als nFilterIndex nul is en lpstrCustomFilter NULL is, gebruikt het systeem de eerste filter in de buffer lpstrFilter . Als alle drie leden nul of NULL zijn, het systeem maakt geen gebruik van filters en toont niet alle bestanden in het besturingselement voor de lijst van het dialoogvenster.

lpstrFile
Pointer naar een buffer die een bestandsnaam gebruikt bevat voor het initialiseren van de naam van het besturingselement voor bewerking. Het eerste teken van deze buffer moet NULL als initialisatie niet nodig is. Wanneer de GetOpenFileName of GetSaveFileName functie met succes retourneert, bevat deze buffer de aanduiding van het station, pad, bestandsnaam en extensie van het geselecteerde bestand.

Als de vlag OFN_ALLOWMULTISELECT is ingesteld en de gebruiker meerdere bestanden selecteert, bevat de buffer de huidige directory, gevolgd door de bestandsnamen van de geselecteerde bestanden. Voor dialoogvensters Verkenner-stijl zijn de directory en bestandsnaam tekenreeksen gescheiden, met een extra NULL-teken na de laatste bestandsnaam NULL. Voor oude-stijl dialoogvensters, de snaren zijn ruimte gescheiden en de functie worden korte bestandsnamen gebruikt voor bestandsnamen met spaties. U kunt de FindFirstFile functie om te converteren tussen lange en korte bestandsnamen.

Als de buffer te klein is, retourneert de functie onwaar en retourneert de functie CommDlgExtendedError FNERR_BUFFERTOOSMALL. In dit geval, bevatten de eerste twee bytes van de buffer lpstrFile de vereiste grootte, in bytes of tekens.

nMaxFile
Hiermee geeft u de grootte in bytes (ANSI-versie) of 16-bits tekens (Unicode versie), van de buffer waarnaar wordt verwezen door lpstrFile. De functies GetOpenFileName en GetSaveFileName terug FALSE als de buffer te klein is om het bestandsinformatie bevatten. De buffer moet ten minste 256 tekens lang.
lpstrFileTitle
Aanwijzer naar een buffer die de bestandsnaam en de extensie (zonder padinformatie) van het geselecteerde bestand ontvangt. Dit lid kan worden NULL.
nMaxFileTitle
Hiermee geeft u de grootte in bytes (ANSI-versie) of 16-bits tekens (Unicode versie), van de buffer waarnaar wordt verwezen door lpstrFileTitle. Dit lid wordt genegeerd als lpstrFileTitle NULL is.
lpstrInitialDir
Aanwijzer naar een tekenreeks die aangeeft van het eerste bestand directory.

Windows NT 5.0 en hoger; Windows 98 en hoger:

Als lpstrInitalDir NULL is en de huidige map alle bestanden van de opgegeven filtertypen bevat, is de eerste map de huidige map.

Als lpstrInitalDir NULL is en de huidige map niet alle bestanden van de opgegeven filtertypen bevat, is de eerste directory de persoonlijke map van de huidige gebruiker. Als u persoonlijke bestanden map van de huidige gebruiker als de eerste map, lpstrInitialDir ingesteld op het pad geretourneerd door het aanroepen van de SHGetSpecialFolderLocation functie met de vlag CSIDL_PERSONAL.

Eerdere versies van Windows en Windows NT:

Als lpstrInitalDir NULL is, is de eerste map de huidige map.

lpstrTitle
Aanwijzer naar een tekenreeks moet worden geplaatst in de titelbalk van het dialoogvenster. Als dit lid NULL is, het systeem maakt gebruik van de standaardtitel (dat wil zeggen, opslaan als of Open).
Vlaggen
Een set van bits vlaggen die u kunt gebruiken voor het initialiseren van het dialoogvenster. Als u in het dialoogvenster als resultaat geeft, wordt deze vlaggen om aan te geven de invoer van de gebruiker. Dit lid kan bestaan uit een combinatie van de volgende vlaggen:
Vlag Betekenis
OFN_ALLOWMULTISELECT
Hiermee geeft u aan dat de keuzelijstnaam bestandmeerdere selecties mogelijk maakt. Als u ook de vlag OFN_EXPLORER is ingesteld, de Verkenner-stijl gebruikersinterface; wordt gebruikt in het dialoogvenster anders, het maakt gebruik van de oude-stijl gebruikersinterface .

Als de gebruiker meer dan één bestand wordt geselecteerd, de lpstrFile buffer als resultaat het pad naar de huidige directory, gevolgd door de bestandsnamen van de geselecteerde bestanden. De nFileOffset lid is de verschuiving, in bytes of tekens, aan de eerste filename, en lid van de nFileExtension wordt niet gebruikt. Voor dialoogvensters Verkenner-stijl zijn de directory en bestandsnaam tekenreeksen gescheiden, met een extra NULL-teken na de laatste bestandsnaam NULL. Deze indeling maakt het mogelijk de Verkenner-stijl dialoogvensters om terug te keren lange bestandsnamen die spaties bevatten. Voor oude-stijl dialoogvensters, de directory en bestandsnaam tekenreeksen worden gescheiden door spaties en de functie worden korte bestandsnamen gebruikt voor bestandsnamen met spaties. U kunt de FindFirstFile functie om te converteren tussen lange en korte bestandsnamen.

Als u een aangepaste sjabloon voor een oude-stijl dialoogvenster opgeeft, moet de definitie van de keuzelijst met invoervak Bestandsnaam de LBS_EXTENDEDSEL-waarde bevatten.

OFN_CREATEPROMPT
Als de gebruiker Hiermee geeft u een bestand dat niet bestaat, wordt deze vlag het dialoogvenster aan de gebruiker om toestemming om het bestand te maken. Als de gebruiker ervoor kiest om het bestand te maken, het dialoogvenster wordt gesloten en de functie als resultaat de opgegeven naam; anders blijft het dialoogvenster geopend. Als u deze vlag niet met de vlag OFN_ALLOWMULTISELECT gebruiken, kan het dialoogvenster de gebruiker slechts één niet-bestaand bestand opgeven.
OFN_ENABLEHOOK
Laat de haak functie die is opgegeven in de lpfnHook lid.
OFN_ENABLESIZING
Windows NT 5.0, Windows 98:Laat het dialoogvenster Verkenner-stijl worden aangepast met de muis of het toetsenbord. Standaard toegestaan de dialoogvensters Verkenner-stijl Open en Opslaan als in het dialoogvenster to be resized ongeacht of deze vlag is ingesteld. Deze vlag is alleen nodig als u een haak procedure of een aangepaste sjabloon bieden. De oude-stijl dialoogvenster niet mogelijk vergroten/verkleinen.
OFN_ENABLETEMPLATE
Geeft aan dat de lpTemplateName lid naar de naam van een resource dialoogvenster sjabloon in de module geïdentificeerd door de hInstance lid verwijst.

Als de vlag OFN_EXPLORER is ingesteld, gebruikt het systeem de opgegeven sjabloon te maken een dialoogvenster dat is een kind van het dialoogvenster standaard Verkenner-stijl. Als de vlag OFN_EXPLORER is niet ingesteld, het systeem de sjabloon gebruikt om een oude-stijl dialoogvenster maken waarin het dialoogvenster standaard vervangt.

OFN_ENABLETEMPLATEHANDLE
Geeft aan dat de hInstance lid identificeert een gegevensblok dat een voorgeladen dialoogvenster vak sjabloon bevat. Het systeem negeert de lpTemplateName als deze vlag is opgegeven.

Als de vlag OFN_EXPLORER is ingesteld, gebruikt het systeem de opgegeven sjabloon te maken een dialoogvenster dat is een kind van het dialoogvenster standaard Verkenner-stijl. Als de vlag OFN_EXPLORER is niet ingesteld, het systeem de sjabloon gebruikt om een oude-stijl dialoogvenster maken waarin het dialoogvenster standaard vervangt.

OFN_EXPLORER
Geeft aan dat alle aanpassingen in het dialoogvenster openen of Opslaan als nieuwe Verkenner-stijl aanpassen methoden gebruiken. Voor meer informatie, Zie Verkenner-stijl haak Procedures en Verkenner-stijl aangepaste sjablonen.

De dialoogvensters openen en Opslaan als gebruiken standaard de Verkenner-stijl gebruikersinterface ongeacht of deze vlag is ingesteld. Deze vlag is nodig, alleen als u een haak procedure of aangepaste sjabloon bieden, of stel de vlag OFN_ALLOWMULTISELECT.

Als u de oude-stijl gebruikersinterface wilt, de vlag OFN_EXPLORER weglaat en bieden een vervanging oude-stijl sjabloon of haak procedure. Als u wilt dat de oude stijl maar niet nodig een aangepaste sjabloon of haak procedure, eenvoudigweg een haak procedure die altijd FALSE retourneert.

OFN_EXTENSIONDIFFERENT
Hiermee geeft u aan dat de gebruiker getypte een extensie van de bestandsnaam die van de extensie opgegeven door lpstrDefExt verschilt. De functie maakt geen gebruik van deze vlag als lpstrDefExt NULL is.
OFN_FILEMUSTEXIST
Hiermee geeft u aan dat de gebruiker alleen de namen van bestaande bestanden in het invoerveld bestand naam kunt typen. Als deze vlag is opgegeven en de gebruiker een ongeldige naam invoert, wordt het dialoogvenster vak procedure een waarschuwing weergegeven in een berichtvenster. Als deze vlag is opgegeven, wordt ook de OFN_PATHMUSTEXIST vlag gebruikt.
OFN_HIDEREADONLY
Leeshet selectievakjealleen verbergt .
OFN_LONGNAMES
Voor oude-stijl dialoogvensters veroorzaakt deze vlag het dialoogvenster gebruik van lange bestandsnamen. Als deze vlag niet is opgegeven, of als de vlag OFN_ALLOWMULTISELECT is ook ingesteld, oude-stijl dialoogvensters gebruiken korte bestandsnamen (8.3-indeling) voor bestandsnamen met spaties.

Verkenner-stijl dialoogvensters negeren deze vlag en altijd lange bestandsnamen weergeven.

OFN_NOCHANGEDIR
Herstelt de huidige map op de oorspronkelijke waarde als de gebruiker de map gewijzigd tijdens het zoeken naar bestanden.
OFN_NODEREFERENCELINKS
Hiermee geeft u het dialoogvenster om terug te keren het pad en de bestandsnaam van de geselecteerde sneltoets (.LNK) bestand. Als deze waarde niet is opgegeven, retourneert het dialoogvenster het pad en de bestandsnaam van het bestand waarnaar wordt verwezen door de snelkoppeling
OFN_NOLONGNAMES
Deze markering voor oude-stijl dialoogvensters, zorgt ervoor dat het dialoogvenster gebruiken korte bestandsnamen (8.3-indeling).

Verkenner-stijl dialoogvensters negeren deze vlag en altijd lange bestandsnamen weergeven.

OFN_NONETWORKBUTTON
Wordt verborgen en wordt de knop netwerk uitgeschakeld.
OFN_NOREADONLYRETURN
Hiermee geeft u aan dat het resulterende bestand geen lezen alleen het selectievakje gecontroleerd heeft en zich niet in een map schrijven-beschermd.
OFN_NOTESTFILECREATE
Hiermee geeft u aan dat het bestand niet is gemaakt voordat het dialoogvenster wordt gesloten. Deze vlag moet worden opgegeven als de toepassing het bestand op een netwerkshare maken-nonmodify slaat. Wanneer een toepassing deze vlag is aangegeven, controleert de bibliotheek niet voor schrijven bescherming, een volledige schijf, een deur open station of netwerk bescherming. Toepassingen met behulp van deze vlag moeten uitvoeren bestandsbewerkingen zorgvuldig, omdat een bestand kan niet opnieuw worden geopend nadat het is gesloten.
OFN_NOVALIDATE
Geeft aan dat de algemene dialoogvensters in de geretourneerde bestandsnaam ongeldige tekens toestaan. Typisch, de aanroepende toepassing gebruikt een haak procedure controleert het bestandsnaam met behulp van het FILEOKSTRING bericht. Als het tekstvak in het invoervak leeg is of alleen maar spaties bevat, worden de lijsten van bestanden en mappen bijgewerkt. Als het tekstvak in het besturingselement bewerken iets anders bevat, zijn nFileOffset en nFileExtension ingesteld op de waarden die zijn gegenereerd door de tekst te parseren. Geen standaardextensie is toegevoegd aan de tekst, noch is tekst gekopieerd naar de buffer opgegeven door lpstrFileTitle.
Als de waarde die is opgegeven door de nFileOffset kleiner is dan nul, is de bestandsnaam ongeldig. Anders, de bestandsnaam is geldig, en nFileExtension en nFileOffset kunnen worden gebruikt als de OFN_NOVALIDATE vlag had niet is opgegeven.
OFN_OVERWRITEPROMPT
Veroorzaaktals het dialoogvenster Opslaanvoor het genereren van een berichtvenster weergegeven als de geselecteerde bestand al bestaat. De gebruiker moet bevestigen of het bestand wilt overschrijven .
OFN_PATHMUSTEXIST
Hiermee geeft u aan dat de gebruiker alleen geldige paden en bestandsnamen kunt typen. Als deze vlag wordt gebruikt en de gebruiker een ongeldig pad en de bestandsnaam in het invoerveld bestand naam typt , de functie vak dialoogvenster wordt een waarschuwing weergegeven in een berichtvenster.
OFN_READONLY
Veroorzaakt lezenhet selectievakjealleen in eerste instantie worden gecontroleerd wanneer het dialoogvenster is gemaakt. Deze vlag geeft de status van lezenhet selectievakjealleen wanneer het dialoogvenster is gesloten .
OFN_SHAREAWARE
Hiermee geeft u aan dat als een aanroep naar de OPENFILE, functie mislukt vanwege een netwerk delen schending, de fout wordt genegeerd en het dialoogvenster geeft de geselecteerde bestandsnaam.

Als deze vlag niet is ingesteld, bericht in het dialoogvenster uw haak procedure wanneer een netwerk delen schending voor de door de gebruiker opgegeven bestandsnaam plaatsvindt. Als u de vlag OFN_EXPLORER instellen, signaal het dialoogvenster de CDN_SHAREVIOLATION aan de haak-procedure. Als u OFN_EXPLORER niet instelt, stuurt het dialoogvenster de SHAREVISTRING geregistreerde bericht aan de haak-procedure.

OFN_SHOWHELP
Het dialoogvenster weergeven op de knop Help wordt. De hwndOwner lid moet opgeven het venster voor het ontvangen van de HELPMSGSTRING geregistreerd berichten die in het dialoogvenster worden verzonden wanneer de gebruiker op de knop Help.

Een Explorer-stijl in het dialoogvenster een meldingstekst CDN_HELP naar uw haak procedure gestuurd wanneer de gebruiker op de knop Help.


nFileOffset
Geeft de op nul gebaseerde verschuiving, in bytes (ANSI-versie) of 16-bits tekens (Unicode versie), vanaf het begin van het pad naar de bestandsnaam in de tekenreeks waarnaar wordt verwezen door lpstrFile. Bijvoorbeeld, als lpstrFile naar de volgende tekenreeks verwijst, bevat "c:\dir1\dir2\file.ext", dit lid de waarde 13 om aan te geven de offset van de tekenreeks "file.ext".

Als de gebruiker meer dan één bestand wordt geselecteerd, is nFileOffset de verschuiving naar de eerste bestandsnaam.

nFileExtension
Geeft de op nul gebaseerde verschuiving, in bytes (ANSI-versie) of 16-bits tekens (Unicode versie), vanaf het begin van het pad naar de extensie van de bestandsnaam in de tekenreeks waarnaar wordt verwezen door lpstrFile. Bijvoorbeeld, als lpstrFile naar de volgende tekenreeks verwijst, bevat "c:\dir1\dir2\file.ext", dit lid de waarde 18. Als de gebruiker niet u een extensie typt heeft en lpstrDefExt NULL is, geeft dit lid een verschuiving naar het afsluitende null-teken. Als de gebruiker getypte "." als het laatste teken in de bestandsnaam, geeft dit lid nul.
lpstrDefExt
Punten aan een buffer waarin de standaardextensie. GetOpenFileName en GetSaveFileName deze extensie wordt toegevoegd aan de bestandsnaam als de gebruiker niet om een extensie te typen. Deze tekenreeks kan elke lengte, maar alleen de eerste drie tekens worden toegevoegd. De tekenreeks moet niet een punt (.) bevatten. Als de gebruiker niet een extensie dit lid is NULL, is geen extensie toegevoegd.
lCustData
Hiermee geeft u de toepassing gedefinieerde gegevens het systeem doorgeeft aan de haak procedure geïdentificeerd door het lid lpfnHook . Wanneer het systeem het bericht WM_INITDIALOG naar de haak procedure verzendt, is van het bericht lParam parameter dat een aanwijzer naar de structuur NAAMOPENBESTAND opgegeven toen het dialoogvenster werd gemaakt. De haak procedure kunt deze aanwijzer gebruiken om de waarde van lCustData.
lpfnHook
Aanwijzer naar een haak procedure. Dit lid wordt genegeerd, tenzij de vlaggen lid de vlag OFN_ENABLEHOOK omvat.

Als de vlag OFN_EXPLORER is niet ingesteld in de vlaggen lid, is lpfnHook een aanwijzer naar een OFNHookProcOldStyle haak procedure die berichten die bestemd zijn voor het dialoogvenster ontvangt. De haak procedure retourneert FALSE om een boodschap doorgeven aan de standaard dialoogvenster vak procedure of trouw aan negeren het bericht.

Als OFN_EXPLORER is ingesteld, is lpfnHook een aanwijzer naar een OFNHookProc haak procedure. De haak procedure ontvangt meldingen verzonden vanuit het dialoogvenster. De haak procedure ontvangt ook berichten voor extra besturingselementen die u hebt gedefinieerd door een kind dialoogvenster sjabloon op te geven. De haak procedure ontvangt niet berichten die bestemd zijn voor de standaard besturingselementen van het dialoogvenster standaard.

lpTemplateName
Aanwijzer naar een op null eindigende tekenreeks that names een dialoogvenster sjabloon resource in de module geïdentificeerd door het lid hInstance . Voor genummerde dialoogvenster vak resources, kan dit een waarde die wordt geretourneerd door de MAKEINTRESOURCE macro worden. Dit lid wordt genegeerd, tenzij de OFN_ENABLETEMPLATE vlag is ingesteld in de vlaggen lid.

Als de vlag OFN_EXPLORER is ingesteld, gebruikt het systeem de opgegeven sjabloon te maken een dialoogvenster dat is een kind van het dialoogvenster standaard Verkenner-stijl. Als de vlag OFN_EXPLORER is niet ingesteld, het systeem de sjabloon gebruikt om een oude-stijl dialoogvenster maken waarin het dialoogvenster standaard vervangt.

Syntaxisinfo

nbsp; Windows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Versie 1.0 of hoger vereist.
Header:Verklaard in commdlg.h.
Unicode:Gedefinieerd als Unicode en ANSI structuren.

Zie ook

Overzicht van bibliotheek het gemeenschappelijk dialoogvenster, gemeenschappelijke dialoogvenster vak structuren, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation

Index