|
@@ -18,8 +18,8 @@ unit shlobj;
|
|
|
|
|
|
interface
|
|
|
|
|
|
- uses
|
|
|
- windows,activex,shellapi;
|
|
|
+uses
|
|
|
+ windows,activex,shellapi,commctrl;
|
|
|
|
|
|
Const
|
|
|
IID_IShellFolder : TGUID ='{000214E6-0000-0000-C000-000000000046}';
|
|
@@ -35,7 +35,40 @@ Const
|
|
|
IID_IEnumExtraSearch: TGUID ='{0E700BE1-9DB6-11d1-A1CE-00C04FD75D13}';
|
|
|
IID_IShellFolder2 : TGUID ='{93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}';
|
|
|
|
|
|
+Const
|
|
|
+ SV2GV_CURRENTVIEW = DWORD(-1);
|
|
|
+ SV2GV_DEFAULTVIEW = DWORD(-2);
|
|
|
+
|
|
|
Type
|
|
|
+ IShellView = Interface;
|
|
|
+ IShellBrowser = Interface;
|
|
|
+
|
|
|
+ LPTBBUTTONSB = LPTBBUTTON;
|
|
|
+ SVSIF = UINT;
|
|
|
+ TSVSIF = SVSIF;
|
|
|
+ SHELLVIEWID = TGUID;
|
|
|
+ TSHELLVIEWID = TGUID;
|
|
|
+ PSHELLVIEWID = ^TGUID;
|
|
|
+ LPVIEWSETTINGS = Pchar;
|
|
|
+ FOLDERSettings = Packed Record
|
|
|
+ ViewMode : UINT; // View mode (FOLDERVIEWMODE values)
|
|
|
+ fFlags : UINT; // View options (FOLDERFLAGS bits)
|
|
|
+ end;
|
|
|
+ TFOLDERSettings = FOLDERSettings;
|
|
|
+ PFOLDERSettings = ^FOLDERSettings;
|
|
|
+ LPFOLDERSettings= PFOLDERSettings;
|
|
|
+ LPCFOLDERSettings= LPFOLDERSettings;
|
|
|
+ PSV2CVW2_PARAMS = ^TSV2CVW2_PARAMS;
|
|
|
+ TSV2CVW2_PARAMS = packed record // actually <pshpack8.h>")
|
|
|
+ cbSize : DWORD;
|
|
|
+ psvPrev : IShellView;
|
|
|
+ pfs : LPCFOLDERSETTINGS;
|
|
|
+ psbOwner : IShellBrowser;
|
|
|
+ prcView : PRECT;
|
|
|
+ pvid : PSHELLVIEWID;
|
|
|
+ hwndView : HWND;
|
|
|
+ end;
|
|
|
+ LPSV2CVW2_PARAMS = PSV2CVW2_PARAMS;
|
|
|
_SHELLDETAILS = record
|
|
|
fmt,
|
|
|
cxChar : longint;
|
|
@@ -133,6 +166,76 @@ Type
|
|
|
function Enable(fEnable: BOOL): HRESULT; stdcall;
|
|
|
end;
|
|
|
|
|
|
+ IShellView = Interface(IOleWindow)
|
|
|
+ ['{000214E3-0000-0000-C000-000000000046}']
|
|
|
+ function TranslateAccelerator( pm :PMSG):HResult; StdCall;
|
|
|
+ function EnableModeless(fEnable : BOOL):HResult; StdCall;
|
|
|
+ function UIActivate(uState:UINT):HResult; StdCall;
|
|
|
+ function Refresh:HResult; StdCall;
|
|
|
+ function CreateViewWindow(psvPrevious:IShellView;pfs:LPCFOLDERSETTINGS;psb:IShellBrowser;prcview:prect;var ph:HWND):HResult;StdCall;
|
|
|
+ function DestroyViewWindow:HResult; StdCall;
|
|
|
+ function GetCurrentInfo(pfs: LPFOLDERSETTINGS):HResult; StdCall;
|
|
|
+ function AddPropertySheetPages(dwreserved : DWORD;pfn:pointer{LPFNSVADDPROPSHEETPAGE};lp:lparam):HResult; StdCall;
|
|
|
+ function SaveViewState:HResult; StdCall;
|
|
|
+ function SelectItem( pidlItem: LPCITEMIDLIST;uflags:TSVSIF):HResult; StdCall;
|
|
|
+ function GetItemObject(uitem:UINT;const riid:TGUID;out ppv :PPOinter):HResult;StdCall;
|
|
|
+ end;
|
|
|
+
|
|
|
+ IShellView2 = Interface(IShellView)
|
|
|
+ ['{88E39E80-3578-11CF-AE69-08002B2E1262}']
|
|
|
+ function GetView(var pvid:TSHELLVIEWID ;uview:ULONG):HResult;StdCall;
|
|
|
+ function CreateViewWindow2(lpParams:LPSV2CVW2_PARAMS):HResult;StdCall;
|
|
|
+ function HandleRename(pidlNew: LPCITEMIDLIST ):HResult;StdCall;
|
|
|
+ function SelectAndPositionItem(pidlItem:LPCITEMIDLIST ;uflags:UINT;ppt:PPOINT):HRESULT;STDCALL;
|
|
|
+ end;
|
|
|
+
|
|
|
+ IFolderView = Interface(IUnknown)
|
|
|
+ ['{cde725b0-ccc9-4519-917e-325d72fab4ce}']
|
|
|
+ function GetCurrentViewMode(pViewMode:PUINT):HResult; StdCall;
|
|
|
+ function SetCurrentViewMode(ViewMode:UINT):HResult; StdCall;
|
|
|
+ function GetFolder(const riid:TGUID;ppv:pointer):HResult; StdCall;
|
|
|
+ function Item(iItemIndex:longint;ppidl:LPITEMIDLIST):HResult; StdCall;
|
|
|
+ function ItemCount(uflags:uint;pcitems:plongint):HResult; StdCall;
|
|
|
+ function Items (uflags:uint;const id :TGUID;out ppv: pointer):HResult; StdCall;
|
|
|
+ function GetSelectionMarkedItem(piItem:pint):HResult; StdCall;
|
|
|
+ function GetFocussedItem(piItem:pint):HResult; StdCall;
|
|
|
+ function GetItemPosition(pidl:LPCITEMIDLIST;ppt:PPOINT):HResult; StdCall;
|
|
|
+ function GetSpacing(ppt:ppoint):HResult; StdCall;
|
|
|
+ function GetDefaultSpacing(ppt:ppoint):HResult; StdCall;
|
|
|
+ function GetAutoArrange:HResult; StdCall;
|
|
|
+ function SelectItem(iItem : longint;dwflags:Dword) :HResult; StdCall;
|
|
|
+ function SelectAndPositionItems(cild:uint;var apid: LPCITEMIDLIST ;apt:PPOINT;dwflags:DWord):HResult; StdCall;
|
|
|
+ end;
|
|
|
+ IFolderFilterSite = Interface(IUnknown)
|
|
|
+ ['{C0A651F5-B48B-11d2-B5ED-006097C686F6}']
|
|
|
+ function SetFilter(punk:IUnknown):HResult; StdCall;
|
|
|
+ end;
|
|
|
+ IFolderFilter = Interface(IUnknown)
|
|
|
+ ['{9CC22886-DC8E-11d2-B1D0-00C04F8EEB3E}']
|
|
|
+ function ShouldShow(Psf:IShellFolder;pidlfolder:LPCITEMIDLIST;pidlItem:LPCITEMIDLIST):HResult; StdCall;
|
|
|
+ function GetEnumFlags(Psf:IShellFolder;pidlfolder:LPCITEMIDLIST;var hwnd: hwnd;out pgrfflags:DWORD):HResult; StdCall;
|
|
|
+ end;
|
|
|
+
|
|
|
+//cpp_quote("#include <commctrl.h>")
|
|
|
+//cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;")
|
|
|
+
|
|
|
+ IShellBrowser = interface(IOleWindow)
|
|
|
+ ['{000214E2-0000-0000-C000-000000000046}']
|
|
|
+ function InsertMenusSB(hmenuShared: HMenu; var menuWidths: TOleMenuGroupWidths): HResult;StdCall;
|
|
|
+ function SetMenuSB(hmenuShared: HMenu; holemenu: HOLEMenu; hwndActiveObject: HWnd): HResult;StdCall;
|
|
|
+ function RemoveMenusSB(hmenuShared: HMenu): HResult;StdCall;
|
|
|
+ function SetStatusTextSB(pszStatusText: POleStr): HResult;StdCall;
|
|
|
+ function EnableModelessSB(fEnable: BOOL): HResult;StdCall;
|
|
|
+ function TranslateAcceleratorSB(var msg: TMsg; wID: Word): HResult;StdCall;
|
|
|
+ function BrowseObject(pidl:LPCITEMIDLIST;wFlags:UINT): HResult;StdCall;
|
|
|
+ function GetViewStateStream(grfMode :DWORD; out ppstrm :IStream): HResult;StdCall;
|
|
|
+ function GetControlWindow(id:UINT;var h:HWND): HResult;StdCall;
|
|
|
+ function SendCOntrolMsg(id:uint;umsg:UINT;wparam:wparam;lparam:lparam;pret:PLRESULT): HResult;StdCall;
|
|
|
+ function QueryActiveShellView(out ppsh :IShellView): HResult;StdCall;
|
|
|
+ function OnViewWindowActive(psh :IShellView): HResult;StdCall;
|
|
|
+ function SetToolBarItems(lpButtons:LPTBBUTTONSB;nButtons:UINT;uFlags:uint): HResult;StdCall;
|
|
|
+ end;
|
|
|
+
|
|
|
const
|
|
|
CLSID_AutoComplete: TGUID = '{00BB2763-6A77-11D0-A535-00C04FD7D062}';
|
|
|
|