Funzione SHGetFolderLocation (shlobj_core.h)

Deprecato. Recupera il percorso di una cartella come struttura ITEMIDLIST .

Sintassi

SHSTDAPI SHGetFolderLocation(
  [in]  HWND             hwnd,
  [in]  int              csidl,
  [in]  HANDLE           hToken,
  [in]  DWORD            dwFlags,
  [out] PIDLIST_ABSOLUTE *ppidl
);

Parametri

[in] hwnd

Tipo: HWND

Riservato.

[in] csidl

Tipo: int

Valore CSIDL che identifica la cartella da individuare. Le cartelle associate agli ELENCHI CSID potrebbero non esistere in un determinato sistema.

[in] hToken

Tipo: HANDLE

Token di accesso che può essere usato per rappresentare un determinato utente. In genere è impostato su NULL, ma potrebbe essere necessario quando sono presenti più utenti per tali cartelle considerate come appartenenti a un singolo utente. La cartella più comunemente usata di questo tipo è Documenti personali. L'applicazione chiamante è responsabile della rappresentazione corretta quando hToken non è NULL. Deve avere privilegi di sicurezza appropriati per l'utente specifico e l'hive del Registro di sistema dell'utente deve essere attualmente montato. Per altre discussioni sui problemi di controllo degli accessi, vedere Controllo di accesso.

L'assegnazione del parametro hToken a un valore di -1 indica l'utente predefinito. Ciò consente ai client di SHGetFolderLocation di trovare percorsi delle cartelle (ad esempio la cartella Desktop) per l'utente predefinito. Il profilo utente predefinito viene duplicato quando viene creato un nuovo account utente e include cartelle speciali come Documenti personali e Desktop. Tutti gli elementi aggiunti alla cartella Utente predefinito vengono visualizzati anche in qualsiasi nuovo account utente.

[in] dwFlags

Tipo: DWORD

[out] ppidl

Tipo: PIDLIST_ABSOLUTE*

Indirizzo di un puntatore a una struttura dell'elenco di identificatori di elemento che specifica la posizione della cartella rispetto alla radice dello spazio dei nomi (desktop). Il parametro ppidl è impostato su NULL in caso di errore. L'applicazione chiamante è responsabile della liberazione di questa risorsa chiamando ILFree.

Valore restituito

Tipo: HRESULT

Restituisce S_OK se ha esito positivo o un valore di errore in caso contrario, incluso quanto segue:

Codice restituito Descrizione
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
CSIDL in nFolder è valido, ma la cartella non esiste.
E_INVALIDARG
CSIDL in nFolder non è valido.

Commenti

Nota A partire da Windows Vista, questa funzione è semplicemente un wrapper per SHGetKnownFolderIDList. Il valore CSIDL viene convertito nel nome NOTOFOLDERID associato e SHGetKnownFolderIDList . Le nuove applicazioni devono usare il sistema di cartelle note anziché il sistema CSIDL precedente, supportato solo per la compatibilità con le versioni precedenti.
 
Le funzioni SHGetFolderLocation, SHGetFolderPath, SHGetSpecialFolderLocation e SHGetSpecialFolderPath sono i modi preferiti per ottenere handle alle cartelle nei sistemi precedenti a Windows Vista. Le funzioni come ExpandEnvironmentStrings che usano direttamente i nomi delle variabili di ambiente, nel formato %VariableName%, potrebbero non essere affidabili.

Questa funzione è un superset di SHGetSpecialFolderLocation, incluso nelle versioni precedenti di Shell.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlobj_core.h (include Shlobj.h)
Libreria Shell32.lib
DLL Shell32.dll (versione 5.0 o successiva)

Vedi anche

IKnownFolder::GetIDList