Funzione SHGetKnownFolderPath (shlobj_core.h)
Recupera il percorso completo di una cartella nota identificata dalla cartella KNOWNFOLDERID della cartella.
Sintassi
HRESULT SHGetKnownFolderPath(
[in] REFKNOWNFOLDERID rfid,
[in] DWORD dwFlags,
[in, optional] HANDLE hToken,
[out] PWSTR *ppszPath
);
Parametri
[in] rfid
Tipo: REFKNOWNFOLDERID
Riferimento a KNOWNFOLDERID che identifica la cartella.
[in] dwFlags
Tipo: DWORD
Flag che specificano opzioni di recupero speciali. Questo valore può essere 0; in caso contrario, uno o più valori KNOWN_FOLDER_FLAG .
[in, optional] hToken
Tipo: HANDLE
Token di accesso che rappresenta un determinato utente. Se questo parametro è NULL, ovvero l'utilizzo più comune, la funzione richiede la cartella nota per l'utente corrente.
Richiedere la cartella di un utente specifico passando l'hToken di tale utente. Questa operazione viene in genere eseguita nel contesto di un servizio con privilegi sufficienti per recuperare il token di un determinato utente. Tale token deve essere aperto con diritti di TOKEN_QUERY e TOKEN_IMPERSONATE . In alcuni casi, è necessario includere anche TOKEN_DUPLICATE. Oltre a passare l'hToken dell'utente, è necessario montare l'hive del Registro di sistema di tale utente specifico. Per altre informazioni sui problemi di controllo di accesso, vedere Controllo di accesso.
Se si assegna il parametro hToken , il valore -1 indica l'utente predefinito. Ciò consente ai client di SHGetKnownFolderPath di trovare i 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 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] ppszPath
Tipo: PWSTR*
Quando termina, questo metodo contiene l'indirizzo di un puntatore a una stringa Unicode con terminazione Null che specifica il percorso della cartella nota. Il processo chiamante è responsabile della liberazione di questa risorsa dopo che non è più necessaria chiamando CoTaskMemFree, indipendentemente dal fatto che SHGetKnownFolderPath abbia esito positivo o negativo. Il percorso restituito non include una barra rovesciata finale. Ad esempio, viene restituito "C:\Users" anziché "C:\Users\".
Valore restituito
Tipo: HRESULT
Restituisce S_OK in caso di esito positivo o un valore di errore, 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 ha un percorso (ad esempio una cartella contrassegnata come KF_CATEGORY_VIRTUAL). |
|
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 SHGetFolderPath. Questa funzione precedente è ora semplicemente un wrapper per SHGetKnownFolderPath.
Requisiti
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 (includere Shlobj.h) |
DLL | Shell32.dll (versione 6.0.6000 o successiva) |