Function Reference


_WinAPI_ShellGetKnownFolderPath

Retrieves the full path of a known folder identified

#include <WinAPIShellEx.au3>
_WinAPI_ShellGetKnownFolderPath ( $sGUID [, $iFlags = 0 [, $hToken = 0]] )

Parameters

$sGUID The GUID ($FOLDERID_*) that identifies the standard folders registered with the system.
$iFlags [optional] The flags that specify special retrieval options. This parameter can be one or more of the following values.
    $KF_FLAG_CREATE
    $KF_FLAG_DONT_VERIFY
    $KF_FLAG_DONT_UNEXPAND
    $KF_FLAG_NO_ALIAS
    $KF_FLAG_INIT
    $KF_FLAG_DEFAULT_PATH
    $KF_FLAG_NOT_PARENT_RELATIVE
    $KF_FLAG_SIMPLE_IDLIST

Windows 7 or later
    $KF_FLAG_ALIAS_ONLY
$hToken [optional] The access token that represents a particular user. If this parameter is 0, the function requests
the known folder for the current user. Assigning the $hToken parameter a value of (-1) indicates the
Default User. Note that access to the Default User folders requires administrator privileges.

Return Value

Success: The path of the known folder.
Failure: Empty string and sets the @error flag to non-zero, @extended flag may contain the HRESULT error code.

Remarks

This function requires Windows Vista or later.

See Also

Search SHGetKnownFolderPath in MSDN Library.

Example

#include <APIShellExConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIShellEx.au3>
#include <WinAPISYs.au3>

If _WinAPI_GetVersion() < '6.0' Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', 'Require Windows Vista or later.')
    Exit
EndIf

ConsoleWrite(_WinAPI_ShellGetKnownFolderPath($FOLDERID_SendTo, 0, -1) & @CRLF)
ConsoleWrite(_WinAPI_ShellGetKnownFolderPath($FOLDERID_SendTo) & @CRLF)

Local Const $sFOLDERID_wrong = '{8983036C-27C0-404B-8F08-102D10DCFD75}'
ConsoleWrite('"' & _WinAPI_ShellGetKnownFolderPath($sFOLDERID_wrong) & '" @error = ' & @error & ' @extended = 0x' & Hex(@extended) & @CRLF)