diff --git a/packages/winunits-base/src/shlobj.pp b/packages/winunits-base/src/shlobj.pp index 836452ae0e..387bd32a54 100644 --- a/packages/winunits-base/src/shlobj.pp +++ b/packages/winunits-base/src/shlobj.pp @@ -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 ") + 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 ") +//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}';