Metodo IShellFolder::GetDisplayNameOf (shobjidl_core.h)
Recupera il nome visualizzato per l'oggetto file specificato o la sottocartella.
Sintassi
HRESULT GetDisplayNameOf(
[in] PCUITEMID_CHILD pidl,
[in] SHGDNF uFlags,
[out] STRRET *pName
);
Parametri
[in] pidl
Tipo: PCUITEMID_CHILD
PIDL che identifica in modo univoco l'oggetto file o la sottocartella relativa alla cartella padre.
[in] uFlags
Tipo: SHGDNF
Flag usati per richiedere il tipo di nome visualizzato da restituire. Per un elenco di valori possibili, vedere il tipo enumerato SHGDNF .
[out] pName
Tipo: STRRET*
Quando questo metodo restituisce, contiene un puntatore a una struttura STRRET in cui restituire il nome visualizzato. Il tipo di nome restituito in questa struttura può essere il tipo richiesto, ma la cartella Shell potrebbe restituire un tipo diverso.
Valore restituito
Tipo: HRESULT
Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
È responsabilità del chiamante liberare le risorse allocate da questa funzione.
In genere, pidl può fare riferimento solo agli elementi contenuti dalla cartella padre. Il PIDL deve essere a livello singolo e contenere esattamente una struttura SHITEMID seguita da uno zero terminante. Se si vuole recuperare il nome visualizzato di un elemento più profondo di un livello dalla cartella padre, usare SHBindToParent per associare con la cartella padre immediata dell'elemento e quindi passare il PIDL a livello singolo dell'elemento a IShellFolder::GetDisplayNameOf.
Inoltre, se il flag SHGDN_FORPARSING è impostato in uFlags e il flag di SHGDN_INFOLDER non è impostato, pidl può fare riferimento a un oggetto a qualsiasi livello al di sotto della cartella padre nella gerarchia dello spazio dei nomi. In una sola volta, pidl potrebbe essere un PIDL a più livelli, rispetto alla cartella padre e potrebbe contenere più strutture SHITEMID . Tuttavia, questo non è più supportato e pidl dovrebbe ora fare riferimento solo a un singolo elemento figlio.
Il modo più semplice per recuperare il nome visualizzato dalla struttura puntata da pName consiste nel passarlo a StrRetToBuf o StrRetToStr. Queste funzioni accettano una struttura STRRET e restituiscono il nome. È anche possibile esaminare il membro uType della struttura e recuperare il nome dal membro appropriato.
I flag specificati in uFlags sono hint sull'uso previsto del nome. Non garantiscono che IShellFolder restituirà il formato richiesto del nome. Se tale modulo non è disponibile, potrebbe essere restituito un altro modulo. In particolare, non esiste alcuna garanzia che il nome restituito dal flag di SHGDN_FORPARSING verrà analizzato correttamente da IShellFolder::P arseDisplayName. Esistono anche alcune combinazioni di flag che potrebbero causare il round trip GetDisplayNameOf/ParseDisplayName per non restituire l'elenco di identificatori originale. Questa occorrenza è eccezionale, ma dovresti verificare di essere sicura.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shobjidl_core.h (include Shobjidl.h) |
DLL | Shell32.dll (versione 4.0 o successiva) |