リファレンス/Shell API
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*シェルの基本 [#d2803a21]
**参考リンク [#hcfc5b0d]
http://msdn.microsoft.com/library/windows/desktop/bb77317...
**ファイル/フォルダの表現種類 [#x30341c6]
-パス~
通常使用されるファイルパス。\ または / 区切りの文字列でフ...
-PIDL~
アイテムIDリスト。以下で詳細を述べる。~
-CSIDL~
OSによって特殊な用途を与えられているフォルダ(マイコンピ...
**名前空間とPIDL [#s951309d]
通常、ファイルやフォルダなど1つのオブジェクトを表すために...
シェル名前空間では、最上位に位置する項目はドライブではな...
PIDLを扱うデータ型はLPITEMIDLIST型である。LPITEMIDLISTはI...
typedef struct _ITEMIDLIST {
SHITEMID mkid;
} ITEMIDLIST;
ITEMIDLIST型は、1つのSHITEMID型の変数を持つ。~
typedef struct _SHITEMID {
USHORT cb;
BYTE abID[1];
} SHITEMID;
SHITEMIDが1つのオブジェクトを表現することになるが、通常の...
具体的には、abIDが1バイトではなく複数バイトを表現する。cb...
PIDLの構造
[SHITEMID...][SHITEMID...][SHITEMID...][NULL(2Byte)]
|<---cb---->|
**PIDLの種類 [#w3222e90]
絶対パスや相対パスがあるように、PIDLにも表現方法の種類が...
なお、以下はこのページ内での便宜上の呼称であり、正式な用...
-絶対PIDL~
最上位であるデスクトップからの絶対位置をあらわしたPIDL。...
例)「C:\hoge\hoge2\a.txt」のPIDL
[マイコンピュータ][C:][hoge][hoge2][a.txt][NULL(2Byte)]
↑ここがデスクトップ
-相対PIDL~
あるフォルダからの相対位置をあらわしたPIDL。~
例)「hoge」フォルダを基点とした「.\hoge2\a.txt」のPIDL
[hoge2][a.txt][NULL(2Byte)]
↑ここが「hoge」
-単一PIDL~
あるフォルダの直下のオブジェクトをあらわした単一のPIDL。~
例)「hoge」フォルダ内の「hoge2」フォルダのPIDL
[hoge2][NULL(2Byte)]
↑ここが「hoge」 ↑終端の2バイトのNULLは必要
**仮想フォルダ [#kf9d47b6]
名前空間では「デスクトップ」のようにPCによって実際のパス...
これらの特殊なフォルダは仮想フォルダと呼ばれ、PIDLやCSIDL...
*構造体 [#n9778310]
**BROWSEINFO [#fad3a3d2]
typedef struct _browseinfo {
HWND hwndOwner;
PCIDLIST_ABSOLUTE pidlRoot;
LPTSTR pszDisplayName;
LPCTSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
} BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO;
-''概要''~
[[SHBrowseForFolder>#y6450278]]で使用するパラメータを含み...
-''メンバ''~
: hwndOwner | ダイアログの親ウィンドウのハンドル。~
: pidlRoot | ルートフォルダのPIDL。ダイアログには、ルート...
NULLを指定した場合、デスクトップがルートフォルダとして扱...
: pszDisplayName | 選択されたフォルダの表示名称を受け取る...
: lpszTitle | ツリー上部に表示するユーザに対する説明文。~
: ulFlags | ダイアログに対するオプションを指定するフラグ...
:: BIF_RETURNONLYFSDIRS | ファイルシステムディレクトリの...
:: BIF_DONTGOBELOWDOMAIN | ドメインレベルより下のネットワ...
:: BIF_STATUSTEXT | ダイアログにステータスエリアを表示す...
BIF_NEWDIALOGSTYLEフラグが指定されている場合、このフラグ...
:: BIF_RETURNFSANCESTORS | デスクトップフォルダの直下にあ...
:: BIF_EDITBOX | 項目名を入力するためのエディットボックス...
:: BIF_VALIDATE | 項目名に無効な文字列が入力された場合、...
BIF_EDITBOXフラグが指定されていない場合、このフラグは無視...
:: BIF_NEWDIALOGSTYLE | 新しいスタイルのダイアログを使用...
新しいスタイルのダイアログは、再整理、削除、ショートカッ...
:: BIF_BROWSEINCLUDEURLS | URLを表示する。BIF_USENEWUIとB...
項目の属性を問い合わせるためにフォルダのIShellFolder::Get...
:: BIF_USENEWUI | エディットボックスを持つ新しいスタイル...
このフラグは、BIF_EDITBOX | BIF_NEWDIALOGSTYLE と等しい。~
あらかじめCoInitializeEx()にCOINIT_MULTITHREADEDを指定し...
:: BIF_UAHINT | BIF_NEWDIALOGSTYLEフラグとともに指定する...
BIF_EDITBOXフラグが指定されると、このフラグは無効化される...
:: BIF_NONEWFOLDERBUTTON | 「新しいフォルダ」ボタンを表示...
:: BIF_NOTRANSLATETARGETS | ショートカットを選択した場合...
:: BIF_BROWSEFORCOMPUTER | コンピュータのみを許可。それ以...
:: BIF_BROWSEFORPRINTER | プリンタのみを許可。それ以外の...
Windows XP以降では、ルートフォルダを「プリンタとFAX」(CSI...
:: BIF_BROWSEINCLUDEFILES | ファイルを表示する。~
:: BIF_SHAREABLE | リモートシステム上にある共有リソースを...
BIF_NEWDIALOGSTYLEフラグが指定されている必要がある。~
:: BIF_BROWSEFILEJUNCTIONS | 圧縮ファイルの内容を表示。(W...
: lpfn | コールバック関数。詳細はBrowseCallbackProcを参照...
: lParam | コールバック関数に渡されるパラメータ。~
: iImage | 選択されたフォルダの、システムアイコンリスト中...
-''備考''~
なし~
*関数 [#o5d2decc]
**CoTaskMemAlloc [#h1e2443c]
LPVOID CoTaskMemAlloc(
__in SIZE_T cb
);
-''概要''~
メモリを確保する。~
-''パラメータ''~
: cb | [in] 割り当てるメモリのバイト単位のサイズ。~
-''戻り値''~
正常終了した場合は割り当てられたメモリのアドレスを返す。...
-''備考''~
IMalloc::Allocと同じ方法でメモリを割り当てる。~
割り当てられたメモリの内容は未定義。保守情報を付与するた...
cbに0を指定した場合、本関数は長さ0のメモリを割り当ててそ...
**CoTaskMemRealloc [#h92743ab]
LPVOID CoTaskMemRealloc(
__in_opt LPVOID pv,
__in SIZE_T cb
);
-''概要''~
前もって確保されているメモリのサイズを変更する。~
-''パラメータ''~
: pv | [in] 再確保するメモリのアドレス。NULLを指定できる。~
: cb | [in] 再確保するメモリのバイト単位のサイズ。0を指定...
-''戻り値''~
正常終了した場合は割り当てられたメモリのアドレスを返す。...
-''備考''~
IMalloc::Reallocと同じ方法でメモリを割り当てる。~
pvには、以前にCoTaskMemAllocによって返されたアドレスを指...
メモリは別の場所に割り当てられることもあるが、新旧のメモ...
cbが0でpvがNULL以外の場合、pvのメモリが解放される。再割り...
**CoTaskMemFree [#d6cc4a00]
void CoTaskMemFree(
LPVOID pv
);
-''概要''~
前もって確保されているメモリを解放する。~
-''パラメータ''~
: pv | [in] 解放するメモリのアドレス。~
-''戻り値''~
なし。~
-''備考''~
解放されるサイズは、割り当てられていたサイズと同じとなる。~
**SHGetMalloc [#d132733b]
HRESULT SHGetMalloc(
LPMALLOC *ppMalloc
);
-''概要''~
IMallocインタフェースを取得する。
-''パラメータ''~
: ppMalloc | [out] IMallocインタフェースのポインタ。~
-''戻り値''~
正常終了した場合はS_OKを返す。それ以外の場合はHRESULT型の...
-''備考''~
現在(正確にはWindows2000以降のOS)では使用する必要がなく...
使用後にIUnknown::ReleaseをコールしてIMallocインタフェー...
**SHGetDesktopFolder [#c6890885]
HRESULT SHGetDesktopFolder(
__out IShellFolder **ppshf
);
-''概要''~
シェル名前空間の最上位をあらわすデスクトップフォルダのISh...
-''パラメータ''~
: ppshf | [out] デスクトップフォルダのIShellFolderインタ...
-''戻り値''~
正常終了した場合はS_OKを返す。それ以外の場合はHRESULT型の...
-''備考''~
使用後にIUnknown::ReleaseをコールしてIShellFolderインタフ...
**SHGetPathFromIDList [#i9f0dd6e]
BOOL SHGetPathFromIDList(
__in PCIDLIST_ABSOLUTE pidl,
__out LPTSTR pszPath
);
-''概要''~
PIDLからパスを取得する。
-''パラメータ''~
: pidl | [in] 対象とするファイルやフォルダの絶対PIDL。~
: pszPath | [out] パスを受け取るバッファ。少なくともMAX_P...
-''戻り値''~
正常終了した場合はTRUEを返す。それ以外の場合はFALSEを返す...
-''備考''~
pidlによって指定された位置がファイルシステムの一部ではな...
pidlがショートカットファイルを指している場合、取得される...
**SHGetDataFromIDList [#d225cf7e]
HRESULT SHGetDataFromIDList(
__in IShellFolder *psf,
__in PCUITEMID_CHILD pidl,
int nFormat,
__out void *pv,
int cb
);
-''概要''~
PIDLから拡張プロパティデータを取得する。
-''パラメータ''~
: psf | [in] 基準となるフォルダのISHellFolderインタフェー...
: pidl | [in] 対象とするファイルやフォルダの、基準フォル...
: nFormat | [in] 取得するデータの形式。~
:: SHGDFIL_FINDDATA | ファイルシステムオブジェクトに使用...
:: SHGDFIL_NETRESOURCE | ネットワークリソースに使用される...
:: SHGDFIL_DESCRIPTIONID | ネットワークリソースに使用され...
: pv | [out] データを受け取るバッファへのポインタ。データ...
nFormatがSHGDFIL_NETRESOURCEの場合、2つのケースに分けられ...
: cb | [in] pvのバイト単位のサイズ。~
-''戻り値''~
正常終了した場合はS_OKを返す。それ以外の場合はE_INVALIDAR...
-''備考''~
本関数が呼び出された時点での状態を返すため、最新の状態と...
バッファにはPIDLに存在する情報のみ返される。それはPIDLを...
**SHGetFolderLocation [#nc21d8d2]
HRESULT SHGetFolderLocation(
__in HWND hwndOwner,
__in int nFolder,
__in HANDLE hToken,
__reserved DWORD dwReserved,
__out PIDLIST_ABSOLUTE *ppidl
);
-''概要''~
CLSIDからPIDLを取得する。
-''パラメータ''~
: hwndOwner | [in] 予約。~
: nFolder | [in] フォルダの配置を識別するCLSID。CLSIDに関...
: hToken | [in] 特定のユーザを表すアクセストークン。~
通常はNULLでよいが、特定のユーザによって使用されるフォル...
: dwReserved | [in] 予約。~
: ppidl | [out] 絶対PIDL。本関数が失敗した場合はNULLとな...
-''戻り値''~
正常終了した場合はS_OKを返す。それ以外の場合はE_INVALIDAR...
-''備考''~
使用後にILFreeをコールしてppidlを解放すること。
**SHGetFolderPath [#n8d8c9dd]
HRESULT SHGetFolderPath(
__in HWND hwndOwner,
__in int nFolder,
__in HANDLE hToken,
__in DWORD dwFlags,
__out LPTSTR pszPath
);
-''概要''~
CSIDLからパスを取得する。
-''パラメータ''~
: hwndOwner | [in] 予約。~
: nFolder | [in] フォルダの配置を識別するCSIDL。システム...
CSIDL_FLAG_CREATEをOR指定することで、フォルダの作成を強制...
: hToken | [in] 特定のユーザを表すアクセストークン。~
通常はNULLでよいが、特定のユーザによって使用されるフォル...
: dwFlags | [in] 返されるパスを指定するフラグ?~
:: SHGFP_TYPE_CURRENT | フォルダの現在のパス。~
:: SHGFP_TYPE_DEFAULT | フォルダのデフォルトのパス。~
: pszPath | [out] 返されるパス。本関数がエラーの場合は空...
返される文字列には末尾に「\」が含まれない。たとえば、「C:...
-''戻り値''~
正常終了した場合はS_OKを返す。~
CSIDLは有効だがフォルダが存在しない場合、S_FALSE(ANSI版)...
-''備考''~
なし。
**SHGetFileInfo [#c227592c]
DWORD_PTR SHGetFileInfo(
__in LPCTSTR pszPath,
DWORD dwFileAttributes,
__inout SHFILEINFO *psfi,
UINT cbFileInfo,
UINT uFlags
);
-''概要''~
ファイル、フォルダ、ドライブなど、ファイルシステム中のオ...
-''パラメータ''~
: pszPath | [in] 対象オブジェクトを、相対パスまたは絶対パ...
uFlagsがSHGFI_PIDLを含む場合、このパラメータには対象オブ...
uFlagsがSHGFI_USEFILEATTRIBUTESを含む場合、このパラメータ...
: dwFileAttributes | [in] ファイル属性フラグ(Winnt.hに定...
uFlagsがSHGFI_USEFILEATTRIBUTESフラグを含んでいない場合、...
: psfi | [in, out] ファイル情報を受け取るSHFILEINFO構造体...
: cbFileInfo | [in] psfiで指定されるSHFILEINFO構造体のバ...
: uFlags | [in] 取得するファイル情報を指定するフラグ。次...
:: SHGFI_ADDOVERLAYS | SHGFI_ICONフラグで取得されるアイコ...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_ATTR_SPECIFIED | SHGFI_ATTRIBUTESフラグの取得対...
このフラグはSHGFI_ICONフラグとともに指定することはできな...
:: SHGFI_ATTRIBUTES | 属性情報。SHFILEINFO構造体のdwAttri...
:: SHGFI_DISPLAYNAME | 表示名称(ロングファイル名)。SHFI...
:: SHGFI_EXETYPE | 実行ファイルのタイプ。pszPathで実行フ...
:: SHGFI_ICON | システムイメージリスト内のアイコンを表わ...
:: SHGFI_ICONLOCATION | 項目のアイコンを含むファイルパス...
:: SHGFI_LARGEICON | SHGFI_ICONフラグで取得されるアイコン...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_LINKOVERLAY | SHGFI_ICONフラグで取得されるアイコ...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_OPENICON | SHGFI_ICONフラグで取得されるアイコン...
このフラグはSHGFI_ICONフラグとSHGFI_SYSICONINDEXフラグの...
:: SHGFI_OVERLAYINDEX | オーバーレイアイコンのインデック...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_PIDL | pszPathがファイルパスではなくPIDLであるこ...
:: SHGFI_SELECTED | SHGFI_ICONフラグで取得されるアイコン...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_SHELLICONSIZE | SHGFI_ICONフラグで取得されるアイ...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_SMALLICON | SHGFI_ICONフラグで取得されるアイコン...
このフラグはSHGFI_ICONフラグとSHGFI_SYSICONINDEXフラグの...
:: SHGFI_SYSICONINDEX | システムイメージリスト内のアイコ...
:: SHGFI_TYPENAME | ファイルタイプの文字列。SHFILEINFO構...
:: SHGFI_USEFILEATTRIBUTES | pszPathで指定されたファイル...
このフラグは、SHGFI_ATTRIBUTES、SHGFI_EXETYPE、SHGFI_PIDL...
-''戻り値''~
uFlagに依存する値を返す。~
uFlagsがSHGFI_EXETYPEまたはSHGFI_SYSICONINDEXを含んでいな...
uFlagsがSHGFI_EXETYPEフラグを含んでいる場合、実行ファイル...
0の場合、実行ファイルではないかエラー。~
下位ワードがNEまたはPEで上位ワードがWindowsのバージョン(1...
下位ワードがMZで上位ワードが0の場合、MS-DOSの*.exeファイ...
下位ワードがPEで上位ワードが0の場合、コンソールアプリケー...
-''備考''~
本関数はバックグラウンドのスレッドからコールされるべき。...
SHFILEINFO構造体のhIconにアイコンハンドルが返された場合、...
取得したシステムイメージリストの情報は、読み取り専用とし...
本関数を呼ぶ前にCoInitialize()かOleInitialize()でCOMを初...
**SHBindToParent [#f646515f]
HRESULT SHBindToParent(
__in PCIDLIST_ABSOLUTE pidl,
__in REFIID riid,
__out VOID **ppv,
__out PCUITEMID_CHILD *ppidlLast
);
-''概要''~
絶対PIDLから、その親フォルダの指定されたインタフェースを...
-''パラメータ''~
: pidl | [in] 対象オブジェクトの絶対PIDL。~
: riid | [in] 対象オブジェクトの親フォルダによって公開さ...
: ppv | [out] riidで指定されたインタフェースのポインタ。...
: ppidlLast | [out] 対象オブジェクトの親フォルダのPIDL。...
本関数はこの引数のために新たにメモリ確保することはしない...
-''戻り値''~
成功した場合はS_OK、それ以外の場合はHRESULTエラーコードを...
-''備考''~
なし~
**SHBrowseForFolder [#y6450278]
PIDLIST_ABSOLUTE SHBrowseForFolder(
__in LPBROWSEINFO lpbi
);
-''概要''~
フォルダ選択ダイアログを表示。~
-''パラメータ''~
: lpbi | [in] ダイアログを表示するための情報を含んだ、[[B...
-''戻り値''~
選択されたフォルダを表わす絶対PIDLを返す。キャンセルボタ...
返されるPIDLがフォルダショートカットの可能性がある。~
-''備考''~
Windows Vista以降のOSでは、FOS_PICKFOLDERSオプションを指...
~
本関数を呼ぶ前、CoInitialize()、CoInitializeEx()、OleInit...
CoInitializeEx()を用いる場合、dwCoInitにCOINIT_APARTMENTT...
ドラッグ&ドロップ機能も必要であれば、OleInitialize()を用...
~
CoInitializeEx()でCOINIT_MULTITHREADEDフラグを指定してCOM...
~
返されたPIDLは、使用後にCoTaskMemFree()を用いて開放する必...
~
利用可能なフォルダ選択ダイアログは2種類存在する。~
古いスタイルのダイアログは、サイズを変更することができな...
新しいスタイルのダイアログは、再整理、削除、ショートカッ...
新しいスタイルのダイアログを使用する場合は、[[BROWSEINFO>...
~
[[BROWSEINFO>#fad3a3d2]]構造体のulFlagsに、BIF_RETURNONLY...
サーバー上の項目のPIDLが返された場合、それをSHGetPathFrom...
~
(一部省略)
SHFileOperation // 各種ファイル操作。ゴミ箱へ移動な...
StrRetToBuf // STRRET構造体->文字列。
StrRetToStr // STRRET構造体->文字列。関数内でメ...
SHChangeNotify
SHAddToRecentDocs
ExtractIcon
FindExecutable
SHFileOperation
StrFormatByteSize64
ILAppendID
ILFree
ILClone
ILCloneFirst
ILCombine
*インタフェース [#x0828520]
**IMalloc [#df2ab2cd]
シェルのメモリ管理用インタフェース。~
現在(正確にはWindows2000以降のOS)は使用する必要はなく、...
IShellFolder フォルダオブジェクトが必ず備えている基礎...
そのフォルダの他のインタフェースもこれを...
IEnumIDList サブフォルダの列挙
IContextMenu コンテキストメニュー(エクスプローラ上の...
IContextMenu2
IContextMenu3
IExtractIcon
IShellLink ショートカットに使用?
IPersistFile ショートカットに使用?
IShellFolder::BindToObject // サブフォルダの1段階PI...
IShellFolder::CompareIDs // PIDL同士を比較
IShellFolder::CreateViewObject //
IShellFolder::EnumObjects // サブフォルダ列挙用のI...
IShellFolder::GetAttributesOf // フォルダ属性の取得
IShellFolder::GetDisplayNameOf // 表示名称をSTRRET構造...
IShellFolder::GetUIObjectOf // 別のインタフェースを...
IShellFolder::ParseDisplayName // パス->PIDL
IShellFolder::SetNameOf // リネーム
IEnumIDList::Clone // 現在の列挙状態を複製...
IEnumIDList::Next // 順番にサブフォルダの1...
IEnumIDList::Reset // 列挙状態を初期化する。
IEnumIDList::Skip // 指定した数だけ列挙状...
終了行:
#contents
*シェルの基本 [#d2803a21]
**参考リンク [#hcfc5b0d]
http://msdn.microsoft.com/library/windows/desktop/bb77317...
**ファイル/フォルダの表現種類 [#x30341c6]
-パス~
通常使用されるファイルパス。\ または / 区切りの文字列でフ...
-PIDL~
アイテムIDリスト。以下で詳細を述べる。~
-CSIDL~
OSによって特殊な用途を与えられているフォルダ(マイコンピ...
**名前空間とPIDL [#s951309d]
通常、ファイルやフォルダなど1つのオブジェクトを表すために...
シェル名前空間では、最上位に位置する項目はドライブではな...
PIDLを扱うデータ型はLPITEMIDLIST型である。LPITEMIDLISTはI...
typedef struct _ITEMIDLIST {
SHITEMID mkid;
} ITEMIDLIST;
ITEMIDLIST型は、1つのSHITEMID型の変数を持つ。~
typedef struct _SHITEMID {
USHORT cb;
BYTE abID[1];
} SHITEMID;
SHITEMIDが1つのオブジェクトを表現することになるが、通常の...
具体的には、abIDが1バイトではなく複数バイトを表現する。cb...
PIDLの構造
[SHITEMID...][SHITEMID...][SHITEMID...][NULL(2Byte)]
|<---cb---->|
**PIDLの種類 [#w3222e90]
絶対パスや相対パスがあるように、PIDLにも表現方法の種類が...
なお、以下はこのページ内での便宜上の呼称であり、正式な用...
-絶対PIDL~
最上位であるデスクトップからの絶対位置をあらわしたPIDL。...
例)「C:\hoge\hoge2\a.txt」のPIDL
[マイコンピュータ][C:][hoge][hoge2][a.txt][NULL(2Byte)]
↑ここがデスクトップ
-相対PIDL~
あるフォルダからの相対位置をあらわしたPIDL。~
例)「hoge」フォルダを基点とした「.\hoge2\a.txt」のPIDL
[hoge2][a.txt][NULL(2Byte)]
↑ここが「hoge」
-単一PIDL~
あるフォルダの直下のオブジェクトをあらわした単一のPIDL。~
例)「hoge」フォルダ内の「hoge2」フォルダのPIDL
[hoge2][NULL(2Byte)]
↑ここが「hoge」 ↑終端の2バイトのNULLは必要
**仮想フォルダ [#kf9d47b6]
名前空間では「デスクトップ」のようにPCによって実際のパス...
これらの特殊なフォルダは仮想フォルダと呼ばれ、PIDLやCSIDL...
*構造体 [#n9778310]
**BROWSEINFO [#fad3a3d2]
typedef struct _browseinfo {
HWND hwndOwner;
PCIDLIST_ABSOLUTE pidlRoot;
LPTSTR pszDisplayName;
LPCTSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
} BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO;
-''概要''~
[[SHBrowseForFolder>#y6450278]]で使用するパラメータを含み...
-''メンバ''~
: hwndOwner | ダイアログの親ウィンドウのハンドル。~
: pidlRoot | ルートフォルダのPIDL。ダイアログには、ルート...
NULLを指定した場合、デスクトップがルートフォルダとして扱...
: pszDisplayName | 選択されたフォルダの表示名称を受け取る...
: lpszTitle | ツリー上部に表示するユーザに対する説明文。~
: ulFlags | ダイアログに対するオプションを指定するフラグ...
:: BIF_RETURNONLYFSDIRS | ファイルシステムディレクトリの...
:: BIF_DONTGOBELOWDOMAIN | ドメインレベルより下のネットワ...
:: BIF_STATUSTEXT | ダイアログにステータスエリアを表示す...
BIF_NEWDIALOGSTYLEフラグが指定されている場合、このフラグ...
:: BIF_RETURNFSANCESTORS | デスクトップフォルダの直下にあ...
:: BIF_EDITBOX | 項目名を入力するためのエディットボックス...
:: BIF_VALIDATE | 項目名に無効な文字列が入力された場合、...
BIF_EDITBOXフラグが指定されていない場合、このフラグは無視...
:: BIF_NEWDIALOGSTYLE | 新しいスタイルのダイアログを使用...
新しいスタイルのダイアログは、再整理、削除、ショートカッ...
:: BIF_BROWSEINCLUDEURLS | URLを表示する。BIF_USENEWUIとB...
項目の属性を問い合わせるためにフォルダのIShellFolder::Get...
:: BIF_USENEWUI | エディットボックスを持つ新しいスタイル...
このフラグは、BIF_EDITBOX | BIF_NEWDIALOGSTYLE と等しい。~
あらかじめCoInitializeEx()にCOINIT_MULTITHREADEDを指定し...
:: BIF_UAHINT | BIF_NEWDIALOGSTYLEフラグとともに指定する...
BIF_EDITBOXフラグが指定されると、このフラグは無効化される...
:: BIF_NONEWFOLDERBUTTON | 「新しいフォルダ」ボタンを表示...
:: BIF_NOTRANSLATETARGETS | ショートカットを選択した場合...
:: BIF_BROWSEFORCOMPUTER | コンピュータのみを許可。それ以...
:: BIF_BROWSEFORPRINTER | プリンタのみを許可。それ以外の...
Windows XP以降では、ルートフォルダを「プリンタとFAX」(CSI...
:: BIF_BROWSEINCLUDEFILES | ファイルを表示する。~
:: BIF_SHAREABLE | リモートシステム上にある共有リソースを...
BIF_NEWDIALOGSTYLEフラグが指定されている必要がある。~
:: BIF_BROWSEFILEJUNCTIONS | 圧縮ファイルの内容を表示。(W...
: lpfn | コールバック関数。詳細はBrowseCallbackProcを参照...
: lParam | コールバック関数に渡されるパラメータ。~
: iImage | 選択されたフォルダの、システムアイコンリスト中...
-''備考''~
なし~
*関数 [#o5d2decc]
**CoTaskMemAlloc [#h1e2443c]
LPVOID CoTaskMemAlloc(
__in SIZE_T cb
);
-''概要''~
メモリを確保する。~
-''パラメータ''~
: cb | [in] 割り当てるメモリのバイト単位のサイズ。~
-''戻り値''~
正常終了した場合は割り当てられたメモリのアドレスを返す。...
-''備考''~
IMalloc::Allocと同じ方法でメモリを割り当てる。~
割り当てられたメモリの内容は未定義。保守情報を付与するた...
cbに0を指定した場合、本関数は長さ0のメモリを割り当ててそ...
**CoTaskMemRealloc [#h92743ab]
LPVOID CoTaskMemRealloc(
__in_opt LPVOID pv,
__in SIZE_T cb
);
-''概要''~
前もって確保されているメモリのサイズを変更する。~
-''パラメータ''~
: pv | [in] 再確保するメモリのアドレス。NULLを指定できる。~
: cb | [in] 再確保するメモリのバイト単位のサイズ。0を指定...
-''戻り値''~
正常終了した場合は割り当てられたメモリのアドレスを返す。...
-''備考''~
IMalloc::Reallocと同じ方法でメモリを割り当てる。~
pvには、以前にCoTaskMemAllocによって返されたアドレスを指...
メモリは別の場所に割り当てられることもあるが、新旧のメモ...
cbが0でpvがNULL以外の場合、pvのメモリが解放される。再割り...
**CoTaskMemFree [#d6cc4a00]
void CoTaskMemFree(
LPVOID pv
);
-''概要''~
前もって確保されているメモリを解放する。~
-''パラメータ''~
: pv | [in] 解放するメモリのアドレス。~
-''戻り値''~
なし。~
-''備考''~
解放されるサイズは、割り当てられていたサイズと同じとなる。~
**SHGetMalloc [#d132733b]
HRESULT SHGetMalloc(
LPMALLOC *ppMalloc
);
-''概要''~
IMallocインタフェースを取得する。
-''パラメータ''~
: ppMalloc | [out] IMallocインタフェースのポインタ。~
-''戻り値''~
正常終了した場合はS_OKを返す。それ以外の場合はHRESULT型の...
-''備考''~
現在(正確にはWindows2000以降のOS)では使用する必要がなく...
使用後にIUnknown::ReleaseをコールしてIMallocインタフェー...
**SHGetDesktopFolder [#c6890885]
HRESULT SHGetDesktopFolder(
__out IShellFolder **ppshf
);
-''概要''~
シェル名前空間の最上位をあらわすデスクトップフォルダのISh...
-''パラメータ''~
: ppshf | [out] デスクトップフォルダのIShellFolderインタ...
-''戻り値''~
正常終了した場合はS_OKを返す。それ以外の場合はHRESULT型の...
-''備考''~
使用後にIUnknown::ReleaseをコールしてIShellFolderインタフ...
**SHGetPathFromIDList [#i9f0dd6e]
BOOL SHGetPathFromIDList(
__in PCIDLIST_ABSOLUTE pidl,
__out LPTSTR pszPath
);
-''概要''~
PIDLからパスを取得する。
-''パラメータ''~
: pidl | [in] 対象とするファイルやフォルダの絶対PIDL。~
: pszPath | [out] パスを受け取るバッファ。少なくともMAX_P...
-''戻り値''~
正常終了した場合はTRUEを返す。それ以外の場合はFALSEを返す...
-''備考''~
pidlによって指定された位置がファイルシステムの一部ではな...
pidlがショートカットファイルを指している場合、取得される...
**SHGetDataFromIDList [#d225cf7e]
HRESULT SHGetDataFromIDList(
__in IShellFolder *psf,
__in PCUITEMID_CHILD pidl,
int nFormat,
__out void *pv,
int cb
);
-''概要''~
PIDLから拡張プロパティデータを取得する。
-''パラメータ''~
: psf | [in] 基準となるフォルダのISHellFolderインタフェー...
: pidl | [in] 対象とするファイルやフォルダの、基準フォル...
: nFormat | [in] 取得するデータの形式。~
:: SHGDFIL_FINDDATA | ファイルシステムオブジェクトに使用...
:: SHGDFIL_NETRESOURCE | ネットワークリソースに使用される...
:: SHGDFIL_DESCRIPTIONID | ネットワークリソースに使用され...
: pv | [out] データを受け取るバッファへのポインタ。データ...
nFormatがSHGDFIL_NETRESOURCEの場合、2つのケースに分けられ...
: cb | [in] pvのバイト単位のサイズ。~
-''戻り値''~
正常終了した場合はS_OKを返す。それ以外の場合はE_INVALIDAR...
-''備考''~
本関数が呼び出された時点での状態を返すため、最新の状態と...
バッファにはPIDLに存在する情報のみ返される。それはPIDLを...
**SHGetFolderLocation [#nc21d8d2]
HRESULT SHGetFolderLocation(
__in HWND hwndOwner,
__in int nFolder,
__in HANDLE hToken,
__reserved DWORD dwReserved,
__out PIDLIST_ABSOLUTE *ppidl
);
-''概要''~
CLSIDからPIDLを取得する。
-''パラメータ''~
: hwndOwner | [in] 予約。~
: nFolder | [in] フォルダの配置を識別するCLSID。CLSIDに関...
: hToken | [in] 特定のユーザを表すアクセストークン。~
通常はNULLでよいが、特定のユーザによって使用されるフォル...
: dwReserved | [in] 予約。~
: ppidl | [out] 絶対PIDL。本関数が失敗した場合はNULLとな...
-''戻り値''~
正常終了した場合はS_OKを返す。それ以外の場合はE_INVALIDAR...
-''備考''~
使用後にILFreeをコールしてppidlを解放すること。
**SHGetFolderPath [#n8d8c9dd]
HRESULT SHGetFolderPath(
__in HWND hwndOwner,
__in int nFolder,
__in HANDLE hToken,
__in DWORD dwFlags,
__out LPTSTR pszPath
);
-''概要''~
CSIDLからパスを取得する。
-''パラメータ''~
: hwndOwner | [in] 予約。~
: nFolder | [in] フォルダの配置を識別するCSIDL。システム...
CSIDL_FLAG_CREATEをOR指定することで、フォルダの作成を強制...
: hToken | [in] 特定のユーザを表すアクセストークン。~
通常はNULLでよいが、特定のユーザによって使用されるフォル...
: dwFlags | [in] 返されるパスを指定するフラグ?~
:: SHGFP_TYPE_CURRENT | フォルダの現在のパス。~
:: SHGFP_TYPE_DEFAULT | フォルダのデフォルトのパス。~
: pszPath | [out] 返されるパス。本関数がエラーの場合は空...
返される文字列には末尾に「\」が含まれない。たとえば、「C:...
-''戻り値''~
正常終了した場合はS_OKを返す。~
CSIDLは有効だがフォルダが存在しない場合、S_FALSE(ANSI版)...
-''備考''~
なし。
**SHGetFileInfo [#c227592c]
DWORD_PTR SHGetFileInfo(
__in LPCTSTR pszPath,
DWORD dwFileAttributes,
__inout SHFILEINFO *psfi,
UINT cbFileInfo,
UINT uFlags
);
-''概要''~
ファイル、フォルダ、ドライブなど、ファイルシステム中のオ...
-''パラメータ''~
: pszPath | [in] 対象オブジェクトを、相対パスまたは絶対パ...
uFlagsがSHGFI_PIDLを含む場合、このパラメータには対象オブ...
uFlagsがSHGFI_USEFILEATTRIBUTESを含む場合、このパラメータ...
: dwFileAttributes | [in] ファイル属性フラグ(Winnt.hに定...
uFlagsがSHGFI_USEFILEATTRIBUTESフラグを含んでいない場合、...
: psfi | [in, out] ファイル情報を受け取るSHFILEINFO構造体...
: cbFileInfo | [in] psfiで指定されるSHFILEINFO構造体のバ...
: uFlags | [in] 取得するファイル情報を指定するフラグ。次...
:: SHGFI_ADDOVERLAYS | SHGFI_ICONフラグで取得されるアイコ...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_ATTR_SPECIFIED | SHGFI_ATTRIBUTESフラグの取得対...
このフラグはSHGFI_ICONフラグとともに指定することはできな...
:: SHGFI_ATTRIBUTES | 属性情報。SHFILEINFO構造体のdwAttri...
:: SHGFI_DISPLAYNAME | 表示名称(ロングファイル名)。SHFI...
:: SHGFI_EXETYPE | 実行ファイルのタイプ。pszPathで実行フ...
:: SHGFI_ICON | システムイメージリスト内のアイコンを表わ...
:: SHGFI_ICONLOCATION | 項目のアイコンを含むファイルパス...
:: SHGFI_LARGEICON | SHGFI_ICONフラグで取得されるアイコン...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_LINKOVERLAY | SHGFI_ICONフラグで取得されるアイコ...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_OPENICON | SHGFI_ICONフラグで取得されるアイコン...
このフラグはSHGFI_ICONフラグとSHGFI_SYSICONINDEXフラグの...
:: SHGFI_OVERLAYINDEX | オーバーレイアイコンのインデック...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_PIDL | pszPathがファイルパスではなくPIDLであるこ...
:: SHGFI_SELECTED | SHGFI_ICONフラグで取得されるアイコン...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_SHELLICONSIZE | SHGFI_ICONフラグで取得されるアイ...
このフラグはSHGFI_ICONフラグとともに指定する必要がある。~
:: SHGFI_SMALLICON | SHGFI_ICONフラグで取得されるアイコン...
このフラグはSHGFI_ICONフラグとSHGFI_SYSICONINDEXフラグの...
:: SHGFI_SYSICONINDEX | システムイメージリスト内のアイコ...
:: SHGFI_TYPENAME | ファイルタイプの文字列。SHFILEINFO構...
:: SHGFI_USEFILEATTRIBUTES | pszPathで指定されたファイル...
このフラグは、SHGFI_ATTRIBUTES、SHGFI_EXETYPE、SHGFI_PIDL...
-''戻り値''~
uFlagに依存する値を返す。~
uFlagsがSHGFI_EXETYPEまたはSHGFI_SYSICONINDEXを含んでいな...
uFlagsがSHGFI_EXETYPEフラグを含んでいる場合、実行ファイル...
0の場合、実行ファイルではないかエラー。~
下位ワードがNEまたはPEで上位ワードがWindowsのバージョン(1...
下位ワードがMZで上位ワードが0の場合、MS-DOSの*.exeファイ...
下位ワードがPEで上位ワードが0の場合、コンソールアプリケー...
-''備考''~
本関数はバックグラウンドのスレッドからコールされるべき。...
SHFILEINFO構造体のhIconにアイコンハンドルが返された場合、...
取得したシステムイメージリストの情報は、読み取り専用とし...
本関数を呼ぶ前にCoInitialize()かOleInitialize()でCOMを初...
**SHBindToParent [#f646515f]
HRESULT SHBindToParent(
__in PCIDLIST_ABSOLUTE pidl,
__in REFIID riid,
__out VOID **ppv,
__out PCUITEMID_CHILD *ppidlLast
);
-''概要''~
絶対PIDLから、その親フォルダの指定されたインタフェースを...
-''パラメータ''~
: pidl | [in] 対象オブジェクトの絶対PIDL。~
: riid | [in] 対象オブジェクトの親フォルダによって公開さ...
: ppv | [out] riidで指定されたインタフェースのポインタ。...
: ppidlLast | [out] 対象オブジェクトの親フォルダのPIDL。...
本関数はこの引数のために新たにメモリ確保することはしない...
-''戻り値''~
成功した場合はS_OK、それ以外の場合はHRESULTエラーコードを...
-''備考''~
なし~
**SHBrowseForFolder [#y6450278]
PIDLIST_ABSOLUTE SHBrowseForFolder(
__in LPBROWSEINFO lpbi
);
-''概要''~
フォルダ選択ダイアログを表示。~
-''パラメータ''~
: lpbi | [in] ダイアログを表示するための情報を含んだ、[[B...
-''戻り値''~
選択されたフォルダを表わす絶対PIDLを返す。キャンセルボタ...
返されるPIDLがフォルダショートカットの可能性がある。~
-''備考''~
Windows Vista以降のOSでは、FOS_PICKFOLDERSオプションを指...
~
本関数を呼ぶ前、CoInitialize()、CoInitializeEx()、OleInit...
CoInitializeEx()を用いる場合、dwCoInitにCOINIT_APARTMENTT...
ドラッグ&ドロップ機能も必要であれば、OleInitialize()を用...
~
CoInitializeEx()でCOINIT_MULTITHREADEDフラグを指定してCOM...
~
返されたPIDLは、使用後にCoTaskMemFree()を用いて開放する必...
~
利用可能なフォルダ選択ダイアログは2種類存在する。~
古いスタイルのダイアログは、サイズを変更することができな...
新しいスタイルのダイアログは、再整理、削除、ショートカッ...
新しいスタイルのダイアログを使用する場合は、[[BROWSEINFO>...
~
[[BROWSEINFO>#fad3a3d2]]構造体のulFlagsに、BIF_RETURNONLY...
サーバー上の項目のPIDLが返された場合、それをSHGetPathFrom...
~
(一部省略)
SHFileOperation // 各種ファイル操作。ゴミ箱へ移動な...
StrRetToBuf // STRRET構造体->文字列。
StrRetToStr // STRRET構造体->文字列。関数内でメ...
SHChangeNotify
SHAddToRecentDocs
ExtractIcon
FindExecutable
SHFileOperation
StrFormatByteSize64
ILAppendID
ILFree
ILClone
ILCloneFirst
ILCombine
*インタフェース [#x0828520]
**IMalloc [#df2ab2cd]
シェルのメモリ管理用インタフェース。~
現在(正確にはWindows2000以降のOS)は使用する必要はなく、...
IShellFolder フォルダオブジェクトが必ず備えている基礎...
そのフォルダの他のインタフェースもこれを...
IEnumIDList サブフォルダの列挙
IContextMenu コンテキストメニュー(エクスプローラ上の...
IContextMenu2
IContextMenu3
IExtractIcon
IShellLink ショートカットに使用?
IPersistFile ショートカットに使用?
IShellFolder::BindToObject // サブフォルダの1段階PI...
IShellFolder::CompareIDs // PIDL同士を比較
IShellFolder::CreateViewObject //
IShellFolder::EnumObjects // サブフォルダ列挙用のI...
IShellFolder::GetAttributesOf // フォルダ属性の取得
IShellFolder::GetDisplayNameOf // 表示名称をSTRRET構造...
IShellFolder::GetUIObjectOf // 別のインタフェースを...
IShellFolder::ParseDisplayName // パス->PIDL
IShellFolder::SetNameOf // リネーム
IEnumIDList::Clone // 現在の列挙状態を複製...
IEnumIDList::Next // 順番にサブフォルダの1...
IEnumIDList::Reset // 列挙状態を初期化する。
IEnumIDList::Skip // 指定した数だけ列挙状...
ページ名: