2.2 拡張シェルオブジェクト用インターフェイス
なお、拡張シェルオブジェクトの具体的な例に関しましては次章にて解説する予定としていますのでそちらを参照して下さい。 |
2.2.1 IContextMenuインターフェイス
シェルは以下の3ケースにおいてIContextMenuインターフェイスを使用します。
[メンバー関数](全3関数)
QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst, idCmdLast, uFlags: UINT)
{ 返値 }
関数が成功すれば、HRESULTを返します。ただし、そのCODEメンバ(low word)は追加したメニュー項目のIDの最大値(idCmdFirst - 1)からのオフセットを表しています。
InvokeCommand( var lpici: TCMInvokeCommandInfo)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetCommandString(idCmd, uType: UINT; pwReserved: PUINT; pszName: LPSTR; cchMax: UINT)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
|
2.2.2 IShellExtInitインターフェイス
以下に IShellExtInitインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全1関数) Initialize(pidlFolder: PItemIDList; lpdobj: IDataObject; hKeyProgID: HKEY)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
|
2.2.3 IShellPropSheetExtインターフェイス
以下に IShellPropSheetExtインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全2関数) AddPages(lpfnAddPage: TFNAddPropSheetPage; lParam: LPARAM)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
ReplacePage( uPageID: UINT; lpfnReplaceWith: TFNAddPropSheetPage; lParam: LPARAM)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
|
2.2.4 IPersistFolderインターフェイス
以下に IPersistFolderインターフェイスの Delphiでの宣言を示します。 各種パーシステントストレージ(ファイル等の永続的記憶クラス)の基本クラス IPersistインターフェイス( In Delphi, ActiveX.pas. In C++, ActiveX.hにて宣言)を継承しています。
[メンバー関数](全2関数) Initialize(pidl: PItemIDList)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetClassID(out classID: TCLSID)
{ 返値 } 以下のいずれかを返します。
・S_OK.....成功
|
2.2.6 IShellIconインターフェイス
以下に IShellIconインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全1関数) GetIconOf(pidl: PItemIDList; flags: UINT; out IconIndex: Integer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はS_FALSEを返します。 |
2.2.7 IShellLinkインターフェイス
以下に IShellLinkインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全18関数) GetPath(pszFile: PAnsiChar; cchMaxPath: Integer; var pfd: TWin32FindData; fFlags: DWORD)
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetIDList(var ppidl: PItemIDList)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetIDList(pidl: PItemIDList)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetDescription(pszName: PAnsiChar; cchMaxName: Integer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetDescription(pszName: PAnsiChar)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetWorkingDirectory(pszDir: PAnsiChar; cchMaxPath: Integer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetWorkingDirectory(pszDir: PAnsiChar)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetArguments(pszArgs: PAnsiChar; cchMaxPath: Integer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetArguments(pszArgs: PAnsiChar)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetHotkey(var pwHotkey: Word)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetHotkey(wHotkey: Word)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetShowCmd(out piShowCmd: Integer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetShowCmd(iShowCmd: Integer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetIconLocation(pszIconPath: PAnsiChar; cchIconPath: Integer; out piIcon: Integer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetIconLocation(pszIconPath: PAnsiChar; iIcon: Integer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetRelativePath(pszPathRel: PAnsiChar; dwReserved: DWORD)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
Resolve(Wnd: HWND; fFlags: DWORD)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetPath(pszFile: PAnsiChar)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
|
2.2.8 IShellExecuteHookインターフェイス
以下に IShellExecuteHookインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全1関数) Execute(var ShellExecuteInfo: TShellExecuteInfo)
{ 返値 }
フックが実装されていればNOERRORを、実装されていなければS_FALSEが返されます。これら以外のエラーの場合はOLEで定義されたエラーコードを返します。 |
2.2.9 ICopyHookインターフェイス
以下に ICopyHookインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全1関数) CopyCallback(Wnd: HWND; wFunc, wFlags: UINT; pszSrcFile: PAnsiChar; dwSrcAttribs: DWORD; pszDestFile: PAnsiChar; dwDestAttribs: DWORD)
{ 返値 }
シェルによる操作の可否を返します。(以下のどれか1つ) |
2.2.10 IFileViewerSiteインターフェイス
以下に IFileViewerSiteインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全2関数) SetPinnedWindow(Wnd: HWND)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetPinnedWindow(var Wnd: HWND)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。 |
2.2.11 IFileViewerインターフェイス
以下に IFileViewerインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全3関数) ShowInitialize(fsi: IFileViewerSite)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
Show(var pvsi: TFVShowInfo)
{ 返値 }
関数が成功すればNOERRORを返します。IFileViewer.ShowInitialize関数があらかじめ呼出されていない場合はE_UNEXPECTEDを返します。
PrintTo(pszDriver: PAnsiChar; fSuppressUI: BOOL)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。 |
2.2.12 IShellBrowserインターフェイス
以下に IShellBrowserインターフェイスの Delphiでの宣言を示します。
アプリケーションがインプレースに動作するウィンドウのハンドルを取得したり状況感知ヘルプモードから出入りすることを可能にするインターフェイス IOleWindowインターフェイス( In Delphi, ActiveX.pas. In C++, ActiveX.hにて宣言)を継承しています。
[メンバー関数](全15関数) InsertMenusSB(hMenuShared: HMENU; out MenuWidths: TOleMenuGroupWidths)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetMenuSB(hMenuShared: HMENU; hOleMenuReserved: HOLEMENU; hwndActiveObject: HWND)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
RemoveMenusSB(hMenuShared: HMENU)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetStatusTextSB(StatusText: POleStr)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
EnableModelessSB(Enable: BOOL)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
TranslateAcceleratorSB(Msg: PMsg; ID: Word)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
BrowseObject(pidl: PItemIDList; flags: UINT)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetViewStateStream(Mode: DWORD; out Stream: IStream)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetControlWindow(ID: UINT; out Wnd: HWND)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SendControlMsg(ID, Msg: UINT; wParm: WPARAM; lParm: LPARAM; Result: LResult)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
QueryActiveShellView(var ShellView: IShellView)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
OnViewWindowActive(var ShellView: IShellView)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetToolbarItems(TBButton: PTBButton; nButtons, uFlags: UINT)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetWindow(out wnd: HWnd)
{ 返値 }
以下のいずれかの値を返します。
ContextSensitiveHelp(fEnterMode: BOOL)
{ 返値 }
以下のいずれかの値を返します。 |
2.2.13 ICommDlgBrowserインターフェイス
以下に ICommDlgBrowserインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全3関数) OnDefaultCommand(var ShellView: IShellView)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
OnStateChange(var ShellView: IShellView; Change: ULONG)
{ 返値 }
無し
IncludeObject(var ShellView: IShellView; pidl: PItemIDList)
{ 返値 }
ビューにオブジェクトを含める(表示する)場合にはS_OKを、含めない場合にはS_FALSEを返します。 |
2.2.14 IShellViewインターフェイス
以下に IShellViewインターフェイスの Delphiでの宣言を示します。
アプリケーションがインプレースに動作するウィンドウのハンドルを取得したり状況感知ヘルプモードから出入りすることを可能にするインターフェイス IOleWindowインターフェイス( In Delphi, ActiveX.pas. In C++, ActiveX.hにて宣言)を継承しています。
[メンバー関数](全11関数) TranslateAccelerator(var Msg: TMsg)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
EnableModeless(Enable: Boolean)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
UIActivate(State: UINT)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
Refresh: HResult
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
CreateViewWindow(PrevView: IShellView; var FolderSettings: TFolderSettings; ShellBrowser: IShellBrowser; var Rect: TRect; out Wnd: HWND)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
DestroyViewWindow
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetCurrentInfo(out FolderSettings: TFolderSettings)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
AddPropertySheetPages(Reseved: DWORD; lpfnAddPage: TFNAddPropSheetPage; lParam: LPARAM)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SaveViewState
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SelectItem(pidl: PItemIDList; flags: UINT)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetItemObject(Item: UINT; iid: TIID; IPtr: Pointer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。 |
2.2.15 IEnumIDListインターフェイス
以下に IEnumIDListインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全4関数) Next(celt: Longint; out elt; pceltFetched: PLongint)
{ 返値 }
以下のいずれかの値を返します。
Skip(celt: Longint)
{ 返値 }
以下のいずれかの値を返します。
Reset
{ 返値 }
以下のいずれかの値を返します。
Clone(out enum: IEnumFormatEtc)
{ 返値 }
以下のいずれかの値を返します。 |
2.2.16 IShellFolderインターフェイス
以下に IShellFolderインターフェイスの Delphiでの宣言を示します。
[メンバー関数](全10関数) ParseDisplayName(hwndOwner: HWND; pbcReserved: Pointer; lpszDisplayName: POLESTR; out pchEaten: ULONG; out ppidl: PItemIDList; var dwAttributes: ULONG)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
EnumObjects(hwndOwner: HWND; grfFlags: DWORD; out EnumIDList: IEnumIDList)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
BindToObject(pidl: PItemIDList; pbcReserved: Pointer; const riid: TIID; out ppvOut: Pointer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
BindToStorage(pidl: PItemIDList; pbcReserved: Pointer; const riid: TIID; out ppvObj: Pointer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
CompareIDs(lParam: LPARAM; pidl1, pidl2: PItemIDList)
{ 返値 }
関数が成功した場合、HRESULTのCODEは以下のいずれかの値をとります。
CreateViewObject(hwndOwner: HWND; const riid: TIID; out ppvOut: Pointer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetAttributesOf(cidl: UINT; var apidl: PItemIDList; var rgfInOut: UINT)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetUIObjectOf(hwndOwner: HWND; cidl: UINT; var apidl: PItemIDList; const riid: TIID; prgfInOut: Pointer; out ppvOut: Pointer)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
GetDisplayNameOf(pidl: PItemIDList; uFlags: DWORD; var lpName: TStrRet)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
SetNameOf(hwndOwner: HWND; pidl: PItemIDList; lpszName: POLEStr; uFlags: DWORD; var ppidlOut: PItemIDList)
{ 返値 }
関数が成功すれば、NOERRORを返します。失敗した場合はOLEで定義されたエラーコードを返します。
|
トップページに戻る |