OPENFILENAME

La struttura OPENFILENAME contiene informazioni che le funzioni di GetSaveFileName e GetOpenFileName utilizzano per inizializzare un aprire o salvarecome dialogo comune. Dopo che l'utente chiude la finestra di dialogo, il sistema restituisce informazioni sulla selezione dell'utente in questa struttura .

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 Flags; 
    WORD nFileOffset; 
    WORD nFileExtension; 
    LPCTSTR lpstrDefExt; 
    DWORD lCustData; 
    LPOFNHOOKPROC lpfnHook; 
    LPCTSTR lpTemplateName; 
} OPENFILENAME 
 

Membri

lStructSize
Specifica la lunghezza in byte, della struttura.
hwndOwner
Identifica la finestra che possiede la finestra di dialogo. Questo membro pu essere alcun handle di finestra valido, oppure pu essere NULL se la finestra di dialogo non ha alcun proprietario.
hInstance
Se nel membro flag impostato il flag OFN_ENABLETEMPLATEHANDLE, hInstance l'handle di un oggetto di memoria contenente un modello di finestra di dialogo. Se impostato il flag OFN_ENABLETEMPLATE, hInstance identifica un modulo che contiene un modello di finestra di dialogo denominato dal membro lpTemplateName . Se nessuna delle due flag impostato, questo membro viene ignorato.

Se impostato il flag OFN_EXPLORER, il sistema utilizza il modello specificato per creare una finestra di dialogo che figlio della finestra di dialogo tipo Esplora risorse predefinite. Se non impostato il flag OFN_EXPLORER, il sistema utilizza il modello per creare un vecchio stile dialogo che sostituisce la finestra di dialogo predefinita.

lpstrFilter
Puntatore a un buffer contenente le coppie di stringhe di filtro con terminazione null. L'ultima stringa nel buffer deve essere terminato da due caratteri NULL.

La prima stringa in ogni coppia una stringa di visualizzazione che descrive il filtro (ad esempio, "file di testo") e la seconda stringa specifica il modello di filtro (ad esempio, "*.TXT"). Per specificare pi modelli di filtro per una visualizzazione singola stringa, utilizzare un punto e virgola per separare i modelli (ad esempio, "*.TXT; *.DOC; *.BAK"). Una stringa modello pu essere una combinazione di caratteri del nome di file valido e il carattere jolly asterisco. Non contengono spazi nella stringa di modello.

Il sistema non cambia l'ordine dei filtri. Li visualizza nella casella combinata atipi di Filenell'ordine specificato in lpstrFilter .

Se lpstrFilter NULL, nella finestra di dialogo non verranno visualizzati tutti i filtri.

lpstrCustomFilter
Puntatore a un buffer statico che contiene una coppia di stringhe con terminazione null filtro per conservare il modello di filtro scelto dall'utente. La prima stringa vostra stringa di visualizzazione che descrive il filtro personalizzato, e la seconda stringa il modello di filtro selezionato dall'utente. La prima volta che l'applicazione crea la finestra di dialogo, specificare la prima stringa, che pu essere qualsiasi stringa non vuota. Quando l'utente seleziona un file, nella finestra di dialogo copia la stringa seconda l'attuale modello di filtro. Il modello di filtro conservato pu essere una ai modelli specificati nel buffer di lpstrFilter , o pu essere un modello di filtro digitato dall'utente. Il sistema utilizza le stringhe per inizializzare il filtro di file definito dall'utente, la prossima volta che viene creata la finestra di dialogo. Se il membro nFilterIndex zero, la finestra di dialogo utilizza il filtro personalizzato.

Se questo membro NULL, nella finestra di dialogo non verranno conservate modelli definiti dall'utente di filtro.

Se questo membro non NULL, il valore del membro nMaxCustFilter deve specificare la dimensione in byte (versione ANSI) o in caratteri (versione Unicode), a 16-bit del buffer lpstrCustomFilter.

nMaxCustFilter
Specifica la dimensione in byte o caratteri, del buffer identificato da lpstrCustomFilter. Questo buffer deve essere lunga almeno 40 caratteri. Questo membro viene ignorato se lpstrCustomFilter NULL o punti in una stringa NULL.
nFilterIndex
Specifica l'indice del filtro attualmente selezionato nel controllo dei tipi di File. Il buffer a cui puntato lpstrFilter contiene coppie di stringhe che definiscono i filtri. La prima coppia di stringhe ha un valore di indice 1, la seconda coppia 2 e cos via. Un indice pari a zero indica il filtro personalizzato specificato da lpstrCustomFilter. possibile specificare un indice all'input per indicare il modello di descrizione e filtro filtro iniziale per la finestra di dialogo. Quando l'utente seleziona un file, nFilterIndex restituisce l'indice del filtro correntemente visualizzato.

Se nFilterIndex uguale a zero e lpstrCustomFilter NULL, il sistema utilizza il primo filtro nel buffer di lpstrFilter . Se tutti e tre i membri sono zero o NULL, il sistema non utilizza tutti i filtri e non mostra tutti i file nel controllo elenco file della finestra di dialogo.

lpstrFile
Puntatore a un buffer contenente un nome di file utilizzato per inizializzare il nome del File di controllo di modifica. Il primo carattere di questo buffer deve essere NULL se l'inizializzazione non necessario. Quando la funzione GetOpenFileName o GetSaveFileName termina con successo, questo buffer contiene il designatore di unit, percorso, filename e l'estensione del file selezionato.

Se impostato il flag OFN_ALLOWMULTISELECT e l'utente seleziona file multipli, il buffer contiene la directory corrente, seguita dai nomi dei file dei file selezionati. Per finestre di dialogo di tipo Esplora risorse, le stringhe di directory e filename sono NULL separati, con un carattere NULL supplementare dopo l'ultimo filename. Per finestre di dialogo di vecchio stile, le stringhe sono lo spazio separato e la funzione utilizza i nomi di file brevi per nomi di file con spazi. possibile utilizzare la FindFirstFile funzione per convertire tra i nomi di file lunghi e brevi.

Se il buffer troppo piccolo, la funzione restituisce FALSE e la funzione CommDlgExtendedError restituisce FNERR_BUFFERTOOSMALL. In questo caso, i primi due byte del buffer lpstrFile contengono la necessaria dimensione in byte o in caratteri.

nMaxFile
Specifica la dimensione in byte (versione ANSI) o in caratteri (versione Unicode), a 16-bit del buffer a cui puntato lpstrFile. Le funzioni GetOpenFileName e GetSaveFileName restituiscono FALSE se il buffer troppo piccolo per contenere le informazioni del file. Il buffer deve essere lunga almeno 256 caratteri.
lpstrFileTitle
Puntatore a un buffer che riceve il nome del file e l'estensione (senza informazioni di percorso) del file selezionato. Questo membro pu essere NULL.
nMaxFileTitle
Specifica la dimensione in byte (versione ANSI) o in caratteri (versione Unicode), a 16-bit del buffer a cui puntato lpstrFileTitle. Questo membro viene ignorato se lpstrFileTitle NULL.
lpstrInitialDir
Puntatore a una stringa che specifica la directory iniziale file.

Windows NT 5.0 e versioni successive; Windows 98 e successive:

Se lpstrInitalDir NULL e la directory corrente contiene tutti i file dei tipi di filtro specificato, la directory iniziale la directory corrente.

Se lpstrInitalDir NULL e la directory corrente non contiene tutti i file dei tipi di filtro specificato, la directory iniziale la directory di file personali dell'utente corrente. Per specificare la directory di file personali dell'utente corrente come directory iniziale, impostare lpstrInitialDir percorso restituito chiamando il SHGetSpecialFolderLocation funzione con il flag CSIDL_PERSONAL.

Versioni precedenti di Windows e Windows NT:

Se lpstrInitalDir NULL, la directory iniziale la directory corrente.

lpstrTitle
Puntatore a una stringa da collocare nella barra del titolo della finestra di dialogo. Se questo membro NULL, il sistema utilizza il titolo predefinito (cio, Salva come o aperto).
Bandiere
Un insieme di flag di bit, che possibile utilizzare per inizializzare la finestra di dialogo. Quando ritorna nella finestra di dialogo, imposta questi flag per indicare l'input dell'utente. Questo membro pu essere una combinazione dei seguenti flag:
Bandiera Significato
OFN_ALLOWMULTISELECT
Specifica che la casella di riepilogo File nome consente selezioni multiple. Se si imposta anche la bandiera OFN_EXPLORER, nella finestra di dialogo utilizza l'interfaccia utente di tipo Esplora risorse; in caso contrario, utilizza l'interfaccia utente di vecchio stile.

Se l'utente seleziona pi file, il buffer lpstrFile restituisce il percorso della directory corrente seguita dai nomi dei file dei file selezionati. Il membro nFileOffset l'offset, in byte o caratteri, al primo nome file, e non viene utilizzato il membro nFileExtension . Per finestre di dialogo di tipo Esplora risorse, le stringhe di directory e filename sono NULL separati, con un carattere NULL supplementare dopo l'ultimo filename. Questo formato consente le finestre di dialogo di tipo Esplora risorse restituire i nomi di file lunghi che contengono spazi. Per finestre di dialogo di vecchio stile, le stringhe di directory e il nome del file sono separate da spazi e la funzione utilizza i nomi di file brevi per nomi di file con spazi. possibile utilizzare la FindFirstFile funzione per convertire tra i nomi di file lunghi e brevi.

Se si specifica un modello personalizzato per un vecchio stile di dialogo, la definizione della casella di riepilogo Nome File deve contenere il valore LBS_EXTENDEDSEL.

OFN_CREATEPROMPT
Se l'utente specifica un file che non esiste, questo flag provoca la finestra di dialogo richiedere all'utente per l'autorizzazione a creare il file. Se l'utente sceglie di creare il file, si chiude la finestra di dialogo e la funzione restituisce il nome specificato; in caso contrario, la finestra di dialogo rimane aperta. Se si utilizza questo flag con il flag OFN_ALLOWMULTISELECT, finestra di dialogo consente all'utente di specificare un solo file inesistente.
OFN_ENABLEHOOK
Attiva la funzione di hook specificata nel membro lpfnHook.
OFN_ENABLESIZING
Windows NT 5.0, Windows 98:Attiva la finestra di dialogo tipo Esplora risorse essere ridimensionata utilizzando il mouse o la tastiera. Per impostazione predefinita, le finestre di dialogo di tipo Esplora risorse aperte e Salva come consentono il dialogo per essere ridimensionato indipendentemente se questo flag impostato. Questo flag necessario solo se si fornisce una routine di hook o un modello personalizzato. Nella finestra di dialogo di vecchio stile non consente il ridimensionamento.
OFN_ENABLETEMPLATE
Indica che il membro lpTemplateName indica il nome di una risorsa modello di finestra di dialogo nel modulo identificato dal membro hInstance.

Se impostato il flag OFN_EXPLORER, il sistema utilizza il modello specificato per creare una finestra di dialogo che figlio della finestra di dialogo tipo Esplora risorse predefinite. Se non impostato il flag OFN_EXPLORER, il sistema utilizza il modello per creare un vecchio stile dialogo che sostituisce la finestra di dialogo predefinita.

OFN_ENABLETEMPLATEHANDLE
Indica che il membro hInstance identifica un blocco di dati che contiene un modello di finestra di dialogo precaricati. Il sistema ignora il lpTemplateName se questo flag viene specificato.

Se impostato il flag OFN_EXPLORER, il sistema utilizza il modello specificato per creare una finestra di dialogo che figlio della finestra di dialogo tipo Esplora risorse predefinite. Se non impostato il flag OFN_EXPLORER, il sistema utilizza il modello per creare un vecchio stile dialogo che sostituisce la finestra di dialogo predefinita.

OFN_EXPLORER
Indica che tutte le personalizzazioni apportate nella finestra di dialogo Apri o Salva come utilizzano i nuovi metodi di personalizzazione di tipo Esplora risorse. Per ulteriori informazioni, vedere Procedure gancio di tipo Esplora risorse e Modelli personalizzati di tipo Esplora risorse.

Per impostazione predefinita, le finestre di dialogo Apri e Salva come utilizzano l'interfaccia utente di tipo Esplora risorse indipendentemente se questo flag impostato. Questo flag necessario solo se si fornisce una routine di hook o modello personalizzato, o impostare il flag OFN_ALLOWMULTISELECT.

Se si desidera che l'interfaccia utente di vecchio stile, omettere la bandiera OFN_EXPLORER e fornire un modello di vecchio stile di sostituzione o agganciare la procedura. Se si desidera che il vecchio stile, ma non hanno bisogno di un modello personalizzato o agganciare la procedura, semplicemente fornire una routine di hook che restituisce sempre FALSE.

OFN_EXTENSIONDIFFERENT
Specifica che l'utente digitato un estensione che si differenzia dall'estensione specificato da lpstrDefExt. La funzione non utilizza questo flag se lpstrDefExt NULL.
OFN_FILEMUSTEXIST
Specifica che l'utente pu digitare solo nomi di file esistenti nel campo di immissione delnome del File. Se questo flag viene specificato e l'utente immette un nome non valido, la procedura di finestra di dialogo viene visualizzato un avviso in una finestra di messaggio. Se questo flag viene specificato, la bandiera OFN_PATHMUSTEXIST viene inoltre utilizzata .
OFN_HIDEREADONLY
Nasconde la lettura solo casella di controllo.
OFN_LONGNAMES
Per le finestre di dialogo di vecchio stile, questo flag provoca la finestra di dialogo di utilizzare nomi di file lunghi. Se questo flag non specificato, o se anche impostato il flag OFN_ALLOWMULTISELECT, finestre di dialogo di vecchio stile utilizzano nomi brevi dei file (formato 8.3) per nomi di file con spazi.

Finestre di dialogo di tipo Esplora risorse ignorano questo flag e sempre visualizzare nomi lunghi.

OFN_NOCHANGEDIR
Ripristina la directory corrente al valore originale se l'utente ha modificato la directory durante la ricerca di file.
OFN_NODEREFERENCELINKS
Dirige la finestra di dialogo per restituire il percorso e il nome del collegamento selezionato (.File LNK). Se questo valore non fornito, nella finestra di dialogo restituisce il percorso e il nome di file del file cui si fa riferimento dalla scorciatoia
OFN_NOLONGNAMES
Per finestre di dialogo di vecchio stile, questo flag determina un dialogo per utilizzare nomi brevi dei file (formato 8.3).

Finestre di dialogo di tipo Esplora risorse ignorano questo flag e sempre visualizzare nomi lunghi.

OFN_NONETWORKBUTTON
Nasconde e disabilita il pulsante rete.
OFN_NOREADONLYRETURN
Specifica che il file restituito non ha letto solo casella di controllo selezionata e non si trova in una directory protetta da scrittura.
OFN_NOTESTFILECREATE
Specifica che il file non creato prima finestra di dialogo chiuso. Questo flag deve essere specificato se l'applicazione salva il file su una condivisione di rete crea-nonmodify. Quando un'applicazione specifica di questo flag, la libreria non verifica per protezione scrittura, un disco completo, una porta aperta in auto o protezione di rete. Le applicazioni che utilizzano questa bandiera devono eseguire operazioni sui file con attenzione, perch un file non pu essere riaperto una volta che si chiuso.
OFN_NOVALIDATE
Specifica che le finestre di dialogo comuni consentono caratteri non validi nel nome del file restituito. In genere, l'applicazione chiamante utilizza una routine di hook che controlla il nome del file utilizzando il messaggio FILEOKSTRING. Se la casella di testo nel controllo di modifica vuota o non contiene nulla, ma gli spazi, vengono aggiornati gli elenchi di file e directory. Se la casella di testo nel controllo di modifica contiene altri elementi, nFileOffset e nFileExtension sono impostate su valori generati mediante l'analisi del testo. Nessuna estensione predefinita viene aggiunto al testo, n testo copiato nel buffer specificato da lpstrFileTitle.
Se il valore specificato da nFileOffset minore di zero, il nome del file non valido. In caso contrario, il nome del file valida, e nFileExtension e nFileOffset pu essere utilizzati come se il flag OFN_NOVALIDATE non era stato specificato.
OFN_OVERWRITEPROMPT
Provoca salvare come nella finestra di dialogo generare una finestra di messaggio se esiste gi il file selezionato. L'utente deve confermare se sovrascrivere il file.
OFN_PATHMUSTEXIST
Specifica che l'utente pu digitare solo validi percorsi e nomi file. Se questo flag viene utilizzato e l'utente digita un valido percorso e il nome nel camponome Filedi ingresso, la funzione della finestra di dialogo viene visualizzato un avviso in una finestra di messaggio .
OFN_READONLY
Provoca la lettura solo casella di controllo essere controllati inizialmente quando viene creata la finestra di dialogo. Questo flag indica lo stato della lettura solo casella di controllo quando viene chiusa la finestra di dialogo.
OFN_SHAREAWARE
Specifica che se una chiamata alla funzione OpenFile non riesce a causa di una violazione di condivisione in rete, l'errore viene ignorato e nella finestra di dialogo restituisce il nome del file selezionato.

Se questo flag non impostato, finestra di dialogo notifica vostra routine di hook quando una violazione di condivisione in rete si verifica per il nome file specificato dall'utente. Se si imposta il flag OFN_EXPLORER, finestra di dialogo Invia il messaggio CDN_SHAREVIOLATION la routine di hook. Se non si imposta OFN_EXPLORER, finestra di dialogo Invia il messaggio registrato di SHAREVISTRING alla routine di hook.

OFN_SHOWHELP
Provoca la finestra di dialogo visualizzare il pulsante Help . Il membro hwndOwner deve specificare la finestra per ricevere il HELPMSGSTRING registrati messaggi inviati nella finestra di dialogo quando l'utente fa clic sul pulsante Guida.

Una finestra di dialogo stile Explorer invia un messaggio di notifica CDN_HELP alla vostra routine di hook quando l'utente fa clic sul pulsante Guida.


nFileOffset
Specifica l'offset in base zero, in byte (versione ANSI) o caratteri a 16-bit (versione Unicode), dall'inizio del percorso al nome file nella stringa a cui puntata lpstrFile. Ad esempio, se la stringa seguente indica lpstrFile , "c:\dir1\dir2\file.ext", questo membro contiene il valore 13 per indicare l'offset della stringa "file.ext".

Se l'utente seleziona pi file, nFileOffset l'offset per il nome del primo file.

nFileExtension
Specifica l'offset in base zero, in byte (versione ANSI) o caratteri a 16-bit (versione Unicode), dall'inizio del percorso per l'estensione della stringa a cui puntata lpstrFile. Ad esempio, se la stringa seguente indica lpstrFile , "c:\dir1\dir2\file.ext", questo membro contiene il valore di 18. Se l'utente non ha fatto digitare un'estensione e lpstrDefExt NULL, questo membro specifica un offset per il carattere di terminazione null. Se l'utente digitato "." come l'ultimo carattere del nome del file, questo membro specifica zero.
lpstrDefExt
Punti a un buffer contenente l'estensione predefinita. GetOpenFileName e GetSaveFileName accodare quest'estensione per il nome del file, se l'utente non riesce a digitare un'estensione. Questa stringa pu essere di qualsiasi lunghezza, ma solo i primi tre caratteri vengono aggiunti. La stringa non deve contenere un punto (.). Se questo membro NULL e l'utente non riesce a digitare un'estensione, non viene aggiunto il estensione.
lCustData
Specifica i dati definiti dall'applicazione che il sistema passa alla routine di hook identificata dal membro lpfnHook . Quando il sistema invia il messaggio WM_INITDIALOG per la routine di hook, parametro lParam del messaggio che un puntatore alla struttura OPENFILENAME specificato quando fu creata la finestra di dialogo. La routine di hook pu utilizzare questo puntatore per ottenere il valore di lCustData.
lpfnHook
Puntatore a una routine di hook. Questo membro viene ignorato a meno che il membro Flags include il flag OFN_ENABLEHOOK.

Se il flag OFN_EXPLORER non impostato nel membro flag , lpfnHook un puntatore a una procedura di gancio OFNHookProcOldStyle che riceve i messaggi destinati a nella finestra di dialogo. La routine di hook restituisce FALSE per passare un messaggio alla procedura di casella di dialogo predefinita o TRUE per scartare il messaggio.

Se OFN_EXPLORER impostato, il lpfnHook un puntatore a una routine di hook OFNHookProc . La routine di hook riceve i messaggi di notifica inviati nella finestra di dialogo. La routine di hook anche riceve i messaggi per tutti i controlli aggiuntivi definiti specificando un modello di finestra di dialogo del bambino. La routine di hook non riceve i messaggi destinati a controlli standard della finestra di dialogo predefinita.

lpTemplateName
Puntatore a una stringa con terminazione null che assegna una risorsa modello di finestra di dialogo nel modulo identificato dal membro hInstance . Per le risorse di casella di dialogo numerati, questo pu essere un valore restituito dalla macro MAKEINTRESOURCE . Questo membro viene ignorato a meno che il flag OFN_ENABLETEMPLATE impostato nel membro flag.

Se impostato il flag OFN_EXPLORER, il sistema utilizza il modello specificato per creare una finestra di dialogo che figlio della finestra di dialogo tipo Esplora risorse predefinite. Se non impostato il flag OFN_EXPLORER, il sistema utilizza il modello per creare un vecchio stile dialogo che sostituisce la finestra di dialogo predefinita.

Descrizione

nbsp;Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Richiede la versione 1.0 o successiva.
Intestazione:Dichiarati in commdlg.h.
Unicode:Definito come strutture di Unicode e ANSI.

Vedi anche

Comuni Dialog Box Library panoramica, strutture di Box di dialogo comuni, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index