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 |
---|---|
|
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) |