Browse Source

* ishellbrowser + deps

git-svn-id: trunk@10124 -
marco 17 years ago
parent
commit
a37f85793a
1 changed files with 105 additions and 2 deletions
  1. 105 2
      packages/winunits-base/src/shlobj.pp

+ 105 - 2
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  <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}';