Funzione SHGetKnownFolderIDList (shlobj_core.h)

Recupera il percorso di una cartella nota come struttura ITEMIDLIST .

Sintassi

HRESULT SHGetKnownFolderIDList(
  [in]  REFKNOWNFOLDERID rfid,
  [in]  DWORD            dwFlags,
  [in]  HANDLE           hToken,
  [out] PIDLIST_ABSOLUTE *ppidl
);

Parametri

[in] rfid

Tipo: REFKNOWNFOLDERID

Riferimento alla cartella KNOWNFOLDERID che identifica la cartella. Le cartelle associate agli ID delle cartelle note potrebbero non esistere in un determinato sistema.

[in] dwFlags

Tipo: DWORD

Flag che specificano opzioni di recupero speciali. Questo valore può essere 0; in caso contrario, è uno o più dei valori KNOWN_FOLDER_FLAG .

[in] hToken

Tipo: HANDLE

Token di accesso usato per rappresentare un determinato utente. Questo parametro è in genere impostato su NULL, nel qual caso la funzione tenta di accedere all'istanza dell'utente corrente della cartella. Tuttavia, potrebbe essere necessario assegnare un valore a hToken per tali cartelle che possono avere più utenti, ma vengono considerati appartenenti a un singolo utente. La cartella più comunemente usata di questo tipo è Documents.

L'applicazione chiamante è responsabile della rappresentazione corretta quando hToken non è null. Deve avere privilegi di sicurezza appropriati per l'utente specifico, tra cui TOKEN_QUERY e TOKEN_IMPERSONATE 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 SHGetKnownFolderIDList di trovare posizioni 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 e Desktop. Tutti gli elementi aggiunti alla cartella Utente predefinito vengono visualizzati anche in qualsiasi nuovo account utente. Si noti che l'accesso alle cartelle utente predefinite richiede privilegi di amministratore.

[out] ppidl

Tipo: PIDLIST_ABSOLUTE*

Quando questo metodo restituisce, contiene un puntatore al PIDL della cartella. Questo parametro viene passato non inizializzato. Il chiamante è responsabile della liberazione del PIDL restituito quando non è più necessario 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
E_INVALIDARG
Tra le altre cose, questo valore può indicare che il parametro rfid fa riferimento a un KNOWNFOLDERID che non è presente nel sistema. Non tutti i valori KNOWNFOLDERID sono presenti in tutti i sistemi. Usare IKnownFolderManager::GetFolderIds per recuperare il set di valori KNOWNFOLDERID per il sistema corrente.

Commenti

Questa funzione sostituisce SHGetFolderLocation. Questa funzione precedente è ora semplicemente un wrapper per SHGetKnownFolderIDList.

I chiamanti che usano questa funzione devono avere almeno privilegi utente.

Alcune cartelle note, ad esempio la cartella Documenti , sono per utente. Ogni utente ha un percorso diverso per la cartella Documents . Se hToken è NULL, l'API tenta di accedere all'istanza dell'utente corrente della cartella. Se hToken è un token utente valido, l'API tenta di rappresentare l'utente usando questo token e tenta di accedere all'istanza dell'utente della cartella.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlobj_core.h (include Shlobj.h)
Libreria Shell32.lib
DLL Shell32.dll (versione 6.0.6000 o successiva)

Vedi anche

IKnownFolder::GetPath

Esempio di cartelle note

SHGetKnownFolderPath

SHSetKnownFolderPath