Const CSIDL_DESKTOP = &H0 ' デスクトップ
Const MAX_PATH = 260
Declare Function SHGetSpecialFolderLocation Lib "shell32" _
(ByVal hwndOwner As Long, ByVal nFolder As Long, _
ByRef pIdl As Long) As Long
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, _
ByVal pszPath As String) As Long
Dim w_ret As Long ' 戻り値
Dim w_pidl As Long ' パスID値
Dim w_buff As String * MAX_PATH ' パス名格納バッファ
' デスクトップのパスを取得する
w_ret = SHGetSpecialFolderLocation(Form1.hWnd, CSIDL_DESKTOP, w_pidl)
' 正常に取得できた場合
If w_ret = 0 Then
' パス名格納バッファを初期化
w_buff = String$(MAX_PATH, vbNullChar)
' 返却されたID値をパス名に変換する
w_ret = SHGetPathFromIDList(w_pidl, w_buff)
End If
|