<Return[S]><Top>

SHGetFolderPath

Declare Function Api_SHGetFolderPath& Lib "ShFolder" Alias "SHGetFolderPathA" (ByVal hwndOwner&, ByVal nFolder&, ByVal hToken&, ByVal dwFlags&, ByVal pszPath$)

Declare Function SHGetFolderPath Lib "shell32" Alias "SHGetFolderPathA" (ByVal hwndOwner As Long, ByVal nFolder As Long, ByVal hToken As Long, ByVal dwFlags As Long, ByVal lpszPath As String) As Long

CSIDLからパスを取得する。

パラメータ
hwndOwner
    オーナーウィンドウのハンドルを指定する。通常、このパラメータには 0 (NULL) が指定される。

    このパラメータが 0 (NULL) でなく、かつ、フォルダへアクセスするのにダイアルアップ接続が必要な場合に、このウィンドウに対してユーザー

    インターフェースプロンプトが表示される。
nFolder
    パス名を取得するフォルダを識別する CSIDL 値を指定する。

    実フォルダのみが有効であり、仮想フォルダを指定した場合には関数は失敗する。

    フォルダの CSIDL 値に CSIDL_FLAG_CREATE を結合して指定することで、フォルダが存在しない場合に、自動的に対応するフォルダが

    作成される。
hToken
    特定のユーザーを表すのに使用されるアクセストークンを指定する。

    Windows 2000 より前のシステムでは、このパラメータに 0 (NULL) を指定するべきである。

    それ以降のシステムにおいても、一般にこのパラメータには 0 (NULL) が指定される。
dwFlags
    どちらのパスが返されるかを指定するフラグを指定する。

    このパラメータは、 CSIDL 値に割り当てられているフォルダがユーザーによって移動されたり、名前を変更されるかもしれない場合に使用さ

    れる。

    値     

意味                                                                                      

    0

(SHGFP_TYPE_CURRENT) フォルダの現在のパス名を返す。

    1

(SHGFP_TYPE_DEFAULT) フォルダのデフォルトのパス名を返す。

pszPath
    パス名を表わすヌル終端文字列を格納するバッファのアドレスを指定する。

    このバッファのサイズは少なくとも 260 (MAX_PATH) バイト(Unicode 版の場合は 260 (MAX_PATH) 文字)以上でなくてはならない。

    関数が失敗するか、 (S_FALSE) を返した場合は、空文字列になる。

戻り値
    HRESULT 型のコード(エラーの場合に最上位ビットがセットされる)が返る。

    (ANSI版の場合は関数が失敗したときに、最上位ビットがセットされていない値 S_FALSE を返す場合があるので注意。)

    このコードは以下の値になる場合がある。

    値                      

意味                                                                                                                                                

    S_FALSE

 

SHGetFolderPathA (ANSI版関数)のみ: nFolder パラメータの CSIDL 値は有効であるが、そのフォルダが存在

しない。

    E_FAIL

 

SHGetFolderPathW (Unicode版関数)のみ: nFolder パラメータの CSIDL 値は有効であるが、そのフォルダが

存在しない。

    E_INVALIDARG

nFolder パラメータに CSIDL 値として無効な値が指定された。