SHGetSpecialFolderLocation

機能
特殊フォルダのPIDLを取得する
Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _
Alias "SHGetSpecialFolderLocation" _
(ByVal hwndOwner As Long, ByVal nFolder As Long, ppidl As Long) As Long
Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _
Alias "SHGetSpecialFolderLocation" _
(ByVal hwndOwner As Integer, ByVal nFolder As Integer, ppidl As Integer) As Integer
引数
hwndOwner
ダイアログボックスの親ウィンドウのハンドル
nFolder
フォルダの位置を指定する定数
ppidl
(戻り値)PIDL(ITEMIDリストへのポインタ)
戻り値
正常終了のとき     NOERROR(=0)
エラーのとき       内容を示すOLEエラーコード
備考
取得した関数はCoTaskMemFree()関数によって解放しなければならない
サンプル
ダウンロード(SHGetSpecialFolderLocation.lzh 2.47KB)

nFolderの定数

CSIDL_ALTSTARTUP = &H1D                スタートアッププログラムグループ内の
                                        特定ユーザー向けのスタートアップディレクトリ
CSIDL_APPDATA = &H1A                   アプリケーション定義データ用共通ディレクトリ
CSIDL_BITBUCKET = &HA                  ごみ箱
CSIDL_COMMON_ALTSTARTUP = &H1E         スタートアッププログラムグループ内の
                                        全ユーザー向けのスタートアップディレクトリ
CSIDL_COMMON_DESKTOPDIRECTORY = &H19   全ユーザ向けデスクトップディレクトリ
CSIDL_COMMON_FAVORITES = &H1F          同、お気に入り
CSIDL_COMMON_PROGRAMS = &H17           同、スタートメニューに表示される
                                        プログラムグループのディレクトリ
CSIDL_COMMON_STARTMENU = &H16          同、スタートメニューに表示される
                                        プログラムとフォルダを含むのディレクトリ
CSIDL_COMMON_STARTUP = &H18            同、スタートアップフォルダに含まれる
                                        プログラムを含むのディレクトリ
CSIDL_CONTROLS = &H3                   コントロールパネル
CSIDL_DESKTOP = &H0                    デスクトップ
CSIDL_DESKTOPDIRECTORY = &H10          Windows\デスクトップ
CSIDL_DRIVES = &H11                    マイコンピュータ
CSIDL_FAVORITIES = &H6                 Favorities
CSIDL_FONTS = &H14                     Windows\Font
CSIDL_HISTORY = &H22                   インターネット履歴ディレクトリ
CSIDL_INTERNET = &H1                   インターネットフォルダ
CSIDL_INTERNET_CACHE = &H20            インターネットキャッシュのディレクトリ
CSIDL_NETHOOD = &H13                   NetHoodディレクトリ
CSIDL_NETWORK = &H12                   NETWORKフォルダ
CSIDL_PERSONAL = &H5                   My Document
CSIDL_PRINTERS = &H4                   プリンタフォルダ
CSIDL_PRINTERHOOD = &H1B               プリンタディレクトリ
CSIDL_PROGRAMS = &H2                   \windows\プログラム
CSIDL_RECENT = &H8                     Recent
CSIDL_SENDTO = &H9                     SendTo
CSIDL_STARTMENU = &HB                  スタートメニュー
CSIDL_STARTUP = &H7                    スタートアップ
CSIDL_TEMPLATES = &H15                 Windows\ShellNew
戻り値の定数
E_ABORT = &H80004004
E_ACCESSDENIED = &H80070005
E_FAIL = &H80004005
E_HANDLE = &H80070006
E_INVALIDARG = &H80070057
E_NOINTERFACE = &H80004002
E_NOTIMPL = &H80004001
E_OUTOFMEMORY=  &H8007000E
E_POINTER = &H80004003
E_UNEXPENCTED = &H8000FFFF