enumerazione _SHGDNF (shobjidl_core.h)
Definisce i valori usati con i metodi IShellFolder::GetDisplayNameOf e IShellFolder::SetNameOf per specificare il tipo di nomi di file o cartelle utilizzati da tali metodi.
Sintassi
typedef enum _SHGDNF {
SHGDN_NORMAL = 0,
SHGDN_INFOLDER = 0x1,
SHGDN_FOREDITING = 0x1000,
SHGDN_FORADDRESSBAR = 0x4000,
SHGDN_FORPARSING = 0x8000
} ;
Costanti
SHGDN_NORMAL Valore: 0 Quando non viene combinato con un altro flag, restituisce il nome relativo padre che identifica l'elemento, adatto per la visualizzazione all'utente. Questo nome spesso non include informazioni aggiuntive, ad esempio l'estensione del nome file e non deve essere univoco. Questo nome può includere informazioni che identificano la cartella che contiene l'elemento. Ad esempio, questo flag potrebbe causare la restituzione della stringa "username (in Machine)" di IShellFolder::GetDisplayNameOf per una determinata cartella dell'utente. |
SHGDN_INFOLDER Valore: 0x1 Il nome è relativo alla cartella da cui è stata effettuata la richiesta. Questo è il nome visualizzato all'utente quando viene usato nel contesto della cartella. Ad esempio, viene usato nella visualizzazione e nel segmento del percorso della barra degli indirizzi per la cartella. Questo nome non deve includere informazioni di ambiguità, ad esempio "nome utente" anziché "nome utente (nel computer)" per una cartella specifica dell'utente. Usare questo flag in combinazioni con SHGDN_FORPARSING e SHGDN_FOREDITING. |
SHGDN_FOREDITING Valore: 0x1000 Il nome viene usato per la modifica sul posto quando l'utente rinomina l'elemento. |
SHGDN_FORADDRESSBAR Valore: 0x4000 Il nome viene visualizzato in una casella combinata della barra degli indirizzi. |
SHGDN_FORPARSING Valore: 0x8000 Il nome viene usato per l'analisi. In altre parole, può essere passato a IShellFolder::P arseDisplayName per recuperare il PIDL dell'oggetto. Il formato che assume questo nome dipende dall'oggetto specifico. Quando SHGDN_FORPARSING viene usato da solo, il nome è relativo al desktop. In combinazione con SHGDN_INFOLDER, il nome è relativo alla cartella da cui è stata effettuata la richiesta. |
Commenti
Il tipo SHGDNF è definito in Shobjidl.h, come illustrato di seguito.
typedef DWORD SHGDNF;
Questa enumerazione è costituita da due gruppi di valori. Il primo gruppo, SHGDN_NORMAL e SHGDN_INFOLDER, specifica il tipo del nome. Il secondo gruppo, SHGDN_FOREDITING, SHGDN_FORADDRESSBAR e SHGDN_FORPARSING, è costituito da modificatori per il primo gruppo che specificano le opzioni di recupero dei nomi.
Se SHGDN_FORPARSING è impostato e SHGDN_INFOLDER non è impostato, IShellFolder::GetDisplayNameOf può accettare un PIDL contenente più di una struttura SHITEMID . In caso contrario, è possibile passare solo un FILE PIDL a livello singolo.
Nota Mentre il nome di analisi restituito dagli oggetti del file system è il percorso completo dell'oggetto, le cartelle virtuali potrebbero usare qualcosa di molto diverso. Ad esempio, alcune cartelle virtuali usano un GUID come nome di analisi e restituiscono una stringa del formato "::{GUID}". Per verificare se l'oggetto fa parte del file system, chiamare IShellFolder::GetAttributesOf e verificare se il flag SFGAO_FILESYSTEM è impostato. Gli sviluppatori che implementano IShellFolder::GetDisplayNameOf sono invitati a restituire nomi di analisi più vicini possibile ai nomi visualizzati, perché l'utente finale spesso deve digitare o modificare questi nomi.
Il valore numerico di SHGDN_NORMAL è zero, pertanto non è possibile verificare la presenza di questo bit. Si consideri SHGDN_NORMAL un'impostazione predefinita usata se non è impostato alcun altro flag in tale gruppo.
Esempio
Le tabelle seguenti illustrano un esempio di possibili valori restituiti per cinque diverse opzioni di flag e tre tipi di elemento diversi.
Queste sono le opzioni del flag.
Numero | Flags | Descrizione |
---|---|---|
1 | SHGDN_FORPARSING | Restituisce il nome completo dell'analisi. |
2 | SHGDN_INFOLDER | SHGDN_FORPARSING | Restituisce il nome di analisi relativo alla cartella padre. |
3 | SHGDN_INFOLDER | SHGDN_FOREDITING | Restituisce il nome di modifica relativo alla cartella padre. |
4 | SHGDN_INFOLDER | Restituisce il nome visualizzato relativo alla cartella padre. |
5 | SHGDN_NORMAL | Restituisce il nome visualizzato relativo al desktop e non a una cartella specifica. |
Questi sono i tipi di elemento di esempio.
Letter | Descrizione |
---|---|
A | Unità C: nel computer locale, la cui etichetta del volume è C_DRIVE. |
B | Stampante denominata Laser in un computer denominato Mailroom. |
C | Il file C:\Directory\File.txt (quando le estensioni del nome file sono nascoste). |
Nella tabella seguente vengono descritti i nomi visualizzati che verrebbero restituiti.
Una | B | C | |
---|---|---|---|
1 | C:\ | \\Mailroom\Laser | C:\Directory\File.txt |
2 | C:\ | Laser | File.txt |
3 | C_DRIVE | Laser | File |
4 | C_DRIVE (C:) | Laser | File |
5 | C_DRIVE (C:) | Laser su Mailroom | File |
Osservazioni sugli esempi
- A3: L'unità C: presenta il nome del volume per la modifica, anziché l'intera stringa "C_DRIVE (C:)".
- B1-B5: il nome visualizzato della stampante remota cambia a seconda che venga visualizzato rispetto al padre. Quando viene visualizzato rispetto al padre, ha bisogno solo del nome della stampante, ma quando viene visualizzato all'esterno del padre, visualizza sia il nome della stampante che il nome del computer.
- C3: File.txt presenta solo il nome di base per la modifica anziché il nome completo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP, Windows 7 [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | shobjidl_core.h (include Shobjidl.h) |