SHSetFolderPathA-Funktion (shlobj_core.h)
Veraltet. Weist einem systemordner, der durch die CSIDL identifiziert wird, einen neuen Pfad zu.
Syntax
HRESULT SHSetFolderPathA(
[in] int csidl,
[in] HANDLE hToken,
[in] DWORD dwFlags,
[in] LPCSTR pszPath
);
Parameter
[in] csidl
Typ: int
Ein CSIDL- Wert, der den Ordner identifiziert, dessen Pfad festgelegt werden soll. Nur physische Ordner sind gültig. Wenn ein virtueller Ordner angegeben ist, schlägt diese Funktion fehl.
Fügen Sie den CSIDL_FLAG_DONT_UNEXPAND Wert zur CSIDL hinzu, um sicherzustellen, dass die Zeichenfolge genau wie angegeben in die Registrierung geschrieben wird. Wenn das CSIDL_FLAG_DONT_UNEXPAND Flag nicht enthalten ist, können Teile des Pfads durch Umgebungszeichenfolgen wie %USERPROFILE%ersetzt werden.
[in] hToken
Typ: HANDLE
Ein Zugriffstoken, das verwendet werden kann, um einen bestimmten Benutzer darzustellen. Dieser Parameter wird in der Regel auf NULL-festgelegt. In diesem Fall versucht die Funktion, auf die Instanz des ordners des aktuellen Benutzers zuzugreifen. Sie müssen jedoch möglicherweise einen Wert hToken- für ordner zuweisen, die mehrere Benutzer haben können, aber als Zugehörigkeit zu einem einzelnen Benutzer behandelt werden. Der am häufigsten verwendete Ordner dieses Typs ist Documents.
Die aufrufende Anwendung ist für den korrekten Identitätswechsel verantwortlich, wenn hToken- ungleich NULL ist. Sie muss über geeignete Sicherheitsberechtigungen für den jeweiligen Benutzer verfügen, einschließlich TOKEN_QUERY und TOKEN_IMPERSONATE, und die Registrierungsstruktur des Benutzers muss zurzeit bereitgestellt werden. Weitere Informationen zu Zugriffssteuerungsproblemen finden Sie .
[in] dwFlags
Typ: DWORD-
Reserviert. Muss auf 0 festgelegt sein.
[in] pszPath
Typ: LPCTSTR-
Ein Zeiger auf eine mit Null beendete Zeichenfolge MAX_PATH, die den neuen Pfad des Ordners enthält. Dieser Wert kann nicht NULL-sein, und die Zeichenfolge darf keine Länge null haben.
Rückgabewert
Typ: HRESULT-
Gibt standardmäßige HRESULT--Codes zurück, einschließlich der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Der Pfad des Ordners wurde erfolgreich aktualisiert. |
|
Mehrere Fehlerbedingungen verursachen die Rückgabe dieses Werts, einschließlich der folgenden:
|
Bemerkungen
Es wird empfohlen, die Pfade als Unicode-Zeichenfolgen ausgedrückt zu werden, da Ordnernamen unicode-Zeichen enthalten können, die in ANSI nicht ausgedrückt werden können.
Anmerkung
Der header shlobj_core.h definiert SHSetFolderPath als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | shlobj_core.h (einschließlich Shlobj.h, Shlobj_core.h) |
Library | Shell32.lib |
DLL- | Shell32.dll (Version 5.0 oder höher) |