Partager via


SHGetKnownFolderPath, fonction (shlobj_core.h)

Récupère le chemin complet d’un dossier connu identifié par le KNOWNFOLDERID du dossier.

Syntaxe

HRESULT SHGetKnownFolderPath(
  [in]           REFKNOWNFOLDERID rfid,
  [in]           DWORD            dwFlags,
  [in, optional] HANDLE           hToken,
  [out]          PWSTR            *ppszPath
);

Paramètres

[in] rfid

Type : REFKNOWNFOLDERID

Référence au KNOWNFOLDERID qui identifie le dossier.

[in] dwFlags

Type : DWORD

Indicateurs qui spécifient des options de récupération spéciales. Cette valeur peut être 0 ; sinon, une ou plusieurs valeurs KNOWN_FOLDER_FLAG .

[in, optional] hToken

Type : HANDLE

Jeton d’accès qui représente un utilisateur particulier. Si ce paramètre est NULL, qui est l’utilisation la plus courante, la fonction demande le dossier connu pour l’utilisateur actuel.

Demandez le dossier d’un utilisateur spécifique en passant le hToken de cet utilisateur. Cela est généralement effectué dans le contexte d’un service disposant de privilèges suffisants pour récupérer le jeton d’un utilisateur donné. Ce jeton doit être ouvert avec des droits de TOKEN_QUERY et de TOKEN_IMPERSONATE . Dans certains cas, vous devez également inclure TOKEN_DUPLICATE. En plus de passer le hToken de l’utilisateur, la ruche de Registre de cet utilisateur spécifique doit être montée. Pour plus d’informations sur les problèmes de contrôle d’accès, consultez Contrôle d’accès.

L’affectation du paramètre hToken à une valeur de -1 indique l’utilisateur par défaut. Cela permet aux clients de SHGetKnownFolderPath de rechercher des emplacements de dossier (tels que le dossier Bureau ) pour l’utilisateur par défaut. Le profil utilisateur par défaut est dupliqué lorsque tout nouveau compte d’utilisateur est créé et inclut des dossiers spéciaux tels que Documents et Bureau. Tous les éléments ajoutés au dossier Utilisateur par défaut apparaissent également dans n’importe quel nouveau compte d’utilisateur. Notez que l’accès aux dossiers utilisateur par défaut nécessite des privilèges d’administrateur.

[out] ppszPath

Type : PWSTR*

Lorsque cette méthode est retournée, contient l’adresse d’un pointeur vers une chaîne Unicode terminée par null qui spécifie le chemin d’accès du dossier connu. Le processus appelant est chargé de libérer cette ressource une fois qu’elle n’est plus nécessaire en appelant CoTaskMemFree, que SHGetKnownFolderPath réussisse ou non. Le chemin retourné n’inclut pas de barre oblique inverse de fin. Par exemple, « C :\Users » est retourné plutôt que « C :\Users\ ».

Valeur retournée

Type : HRESULT

Retourne S_OK si elle réussit ou une valeur d’erreur sinon, y compris les éléments suivants :

Code de retour Descriptif
E_FAIL
Entre autres choses, cette valeur peut indiquer que le paramètre rfid fait référence à un KNOWNFOLDERID qui n’a pas de chemin d’accès (tel qu’un dossier marqué comme KF_CATEGORY_VIRTUAL).
E_INVALIDARG
Entre autres choses, cette valeur peut indiquer que le paramètre rfid fait référence à un KNOWNFOLDERID qui n’est pas présent sur le système. Toutes les valeurs KNOWNFOLDERID ne sont pas présentes sur tous les systèmes. Utilisez IKnownFolderManager ::GetFolderIds pour récupérer l’ensemble de valeurs KNOWNFOLDERID pour le système actuel.

Remarques

Cette fonction remplace SHGetFolderPath. Cette fonction plus ancienne est désormais simplement un wrapper pour SHGetKnownFolderPath.

Spécifications

Requirement Valeur
Client minimum requis Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
plateforme cible Fenêtres
Header shlobj_core.h (include Shlobj.h)
Library OneCore.Lib
DLL Shell32.dll (version 6.0.6000 ou ultérieure)

Voir aussi

IKnownFolder ::GetPath

Exemple de dossiers connus

SHGetKnownFolderIDList

SHSetKnownFolderPath