SHSetFolderPathA-Funktion (shlobj_core.h)
Veraltet. Weist einem Systemordner, der durch seine 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 wird, schlägt diese Funktion fehl.
Fügen Sie der CSIDL den wert CSIDL_FLAG_DONT_UNEXPAND 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 ersetzt werden, z. B. %USERPROFILE%.
[in] hToken
Typ: HANDLE
Ein Zugriffstoken , das verwendet werden kann, um einen bestimmten Benutzer darzustellen. Dieser Parameter wird normalerweise auf NULL festgelegt. In diesem Fall versucht die Funktion, auf die instance des aktuellen Benutzers des Ordners zuzugreifen. Möglicherweise müssen Sie hToken jedoch einen Wert für die Ordner zuweisen, die mehrere Benutzer haben können, aber als zu einem einzelnen Benutzer gehören behandelt werden. Der am häufigsten verwendete Ordner dieses Typs ist Dokumente.
Die aufrufende Anwendung ist für den korrekten Identitätswechsel verantwortlich, wenn hToken nicht NULL ist. Es muss über geeignete Sicherheitsberechtigungen für den jeweiligen Benutzer verfügen, einschließlich TOKEN_QUERY und TOKEN_IMPERSONATE, und die Registrierungsstruktur des Benutzers muss derzeit eingebunden sein. Weitere Informationen zu Zugriffssteuerungsproblemen finden Sie unter Access Control.
[in] dwFlags
Art: DWORD
Reserviert. Muss auf 0 festgelegt werden.
[in] pszPath
Typ: LPCTSTR
Ein Zeiger auf eine null-beendete Zeichenfolge mit der Länge MAX_PATH, die den neuen Pfad des Ordners enthält. Dieser Wert darf nicht NULL sein, und die Zeichenfolge darf keine Länge von 0 sein.
Rückgabewert
Typ: HRESULT
Gibt HRESULT-Standardcodes zurück, einschließlich der folgenden:
Rückgabecode | BESCHREIBUNG |
---|---|
|
Der Pfad des Ordners wurde erfolgreich aktualisiert. |
|
Mehrere Fehlerbedingungen führen zur Rückgabe dieses Werts, einschließlich der folgenden:
|
Hinweise
Es wird empfohlen, die Pfade als Unicode-Zeichenfolgen auszudrücken, da Ordnernamen unicode-Zeichen enthalten können, die in ANSI nicht expressierbar sind.
Hinweis
Der shlobj_core.h-Header 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 nicht codierungsneutralem Code 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 |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shlobj_core.h (einschließlich Shlobj.h, Shlobj_core.h) |
Bibliothek | Shell32.lib |
DLL | Shell32.dll (Version 5.0 oder höher) |