[PSDK]
[reactos.git] / reactos / include / psdk / shobjidl.idl
index 55fa6e3..5590163 100644 (file)
@@ -215,7 +215,7 @@ interface IShellFolder : IUnknown
         [in] LPBC pbcReserved,
         [in, string] LPOLESTR lpszDisplayName,
         [out] ULONG *pchEaten,
-        [out] LPITEMIDLIST *ppidl,
+        [out] PIDLIST_RELATIVE *ppidl,
         [in, out, unique] ULONG *pdwAttributes);
 
     HRESULT EnumObjects(
@@ -332,8 +332,8 @@ interface IShellFolder2 : IShellFolder
     HRESULT EnumSearches( [out] IEnumExtraSearch **ppenum );
     HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay );
     HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags );
-    HRESULT GetDetailsEx( [in] LPCITEMIDLIST pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv);
-    HRESULT GetDetailsOf( [in] LPCITEMIDLIST pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd);
+    HRESULT GetDetailsEx( [in] PCUITEMID_CHILD pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv);
+    HRESULT GetDetailsOf( [in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd);
     HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid );
 }
 
@@ -589,6 +589,7 @@ cpp_quote("HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE
 cpp_quote("HRESULT WINAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);")
 cpp_quote("HRESULT WINAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder* psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);")
 cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);")
+cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY pidl_array, IShellItemArray **psia);")
 cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);")
 
 /*****************************************************************************
@@ -800,6 +801,35 @@ cpp_quote("#include <poppack.h>")
     );
 }
 
+[
+    object,
+    uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
+    pointer_default(unique)
+]
+interface IShellView3 : IShellView2
+{
+    [v1_enum] enum _SV3CVW3_FLAGS
+    {
+        SV3CVW3_DEFAULT          = 0x00000000,
+        SV3CVW3_NONINTERACTIVE   = 0x00000001,
+        SV3CVW3_FORCEVIEWMODE    = 0x00000002,
+        SV3CVW3_FORCEFOLDERFLAGS = 0x00000004
+    };
+
+    typedef DWORD SV3CVW3_FLAGS;
+
+    HRESULT CreateViewWindow3(
+        [in] IShellBrowser *owner,
+        [in, unique] IShellView *prev_view,
+        [in] SV3CVW3_FLAGS view_flags,
+        [in] FOLDERFLAGS mask,
+        [in] FOLDERFLAGS flags,
+        [in] FOLDERVIEWMODE mode,
+        [in, unique] const SHELLVIEWID *view_id,
+        [in] const RECT *rect,
+        [out] HWND *hwnd);
+}
+
 /*****************************************************************************
  * IFolderView interface
  */
@@ -847,6 +877,126 @@ interface IFolderView : IUnknown
     );
 }
 
+[v1_enum] enum tagSORTDIRECTION
+{
+    SORT_DESCENDING = -1,
+    SORT_ASCENDING = 1
+};
+typedef int SORTDIRECTION;
+
+typedef struct SORTCOLUMN
+{
+    PROPERTYKEY propkey;
+    SORTDIRECTION direction;
+} SORTCOLUMN;
+
+typedef [v1_enum] enum FVTEXTTYPE
+{
+    FVST_EMPTYTEXT = 0
+} FVTEXTTYPE;
+
+[
+    uuid(1af3a467-214f-4298-908e-06b03e0b39f9),
+    object,
+    pointer_default(unique)
+]
+interface IFolderView2 : IFolderView
+{
+    HRESULT SetGroupBy(
+        [in] REFPROPERTYKEY key,
+        [in] BOOL ascending);
+
+    [local]
+    HRESULT GetGroupBy(
+        [out] PROPERTYKEY *pkey,
+        [out] BOOL *ascending);
+
+    [call_as(GetGroupBy)]
+    HRESULT RemoteGetGroupBy(
+        [out] PROPERTYKEY *pkey,
+        [out] BOOL *ascending);
+
+    HRESULT SetViewProperty(
+        [in] PCUITEMID_CHILD pidl,
+        [in] REFPROPERTYKEY propkey,
+        [in] REFPROPVARIANT propvar);
+
+    HRESULT GetViewProperty(
+        [in] PCUITEMID_CHILD pidl,
+        [in] REFPROPERTYKEY propkey,
+        [out] PROPVARIANT *propvar);
+
+    HRESULT SetTileViewProperties(
+        [in] PCUITEMID_CHILD pidl,
+        [in, string] LPCWSTR prop_list);
+
+    HRESULT SetExtendedTileViewProperties(
+        [in] PCUITEMID_CHILD pidl,
+        [in, string] LPCWSTR prop_list);
+
+    HRESULT SetText(
+        [in] FVTEXTTYPE type,
+        [in] LPCWSTR text);
+
+    HRESULT SetCurrentFolderFlags(
+        [in] DWORD mask,
+        [in] DWORD flags);
+
+    HRESULT GetCurrentFolderFlags([out] DWORD *flags);
+
+    HRESULT GetSortColumnCount([out] int *columns);
+
+    HRESULT SetSortColumns(
+        [in, size_is(count)] const SORTCOLUMN *columns,
+        [in] int count);
+
+    HRESULT GetSortColumns(
+        [out, size_is(count)] SORTCOLUMN *columns,
+        [in] int count);
+
+    HRESULT GetItem(
+        [in] int ittem,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppv);
+
+    HRESULT GetVisibleItem(
+        [in] int start,
+        [in] BOOL previous,
+        [out] int *item);
+
+    HRESULT GetSelectedItem(
+        [in] int start,
+        [out] int *item);
+
+    HRESULT GetSelection(
+        [in] BOOL none_implies_folder,
+        [out] IShellItemArray **array);
+
+    HRESULT GetSelectionState(
+        [in] PCUITEMID_CHILD pidl,
+        [out] DWORD *flags);
+
+    HRESULT InvokeVerbOnSelection([in, unique, string] LPCSTR verb);
+
+    HRESULT SetViewModeAndIconSize(
+        [in] FOLDERVIEWMODE mode,
+        [in] int size);
+
+    HRESULT GetViewModeAndIconSize(
+        [out] FOLDERVIEWMODE *mode,
+        [out] int *size);
+
+    HRESULT SetGroupSubsetCount([in] UINT visible_rows);
+
+    HRESULT GetGroupSubsetCount([out] UINT *visible_rows);
+
+    HRESULT SetRedraw([in] BOOL redraw);
+
+    HRESULT IsMoveInSameFolder();
+
+    HRESULT DoRename();
+}
+
 /*****************************************************************************
  * IShellBrowser interface
  */
@@ -1877,6 +2027,145 @@ interface ITaskbarList : IUnknown
         [in] HWND hwnd);
 }
 
+/*****************************************************************************
+ *    ITaskbarList2 interface
+ */
+[
+    object,
+    uuid(602D4995-B13A-429B-A66E-1935E44F4317),
+    pointer_default(unique)
+]
+interface ITaskbarList2 : ITaskbarList
+{
+    HRESULT MarkFullscreenWindow(
+        [in] HWND hwnd,
+        [in] BOOL fullscreen);
+}
+
+cpp_quote("#ifdef MIDL_PASS")
+typedef IUnknown* HIMAGELIST;
+cpp_quote("#endif")
+
+typedef [v1_enum] enum THUMBBUTTONFLAGS {
+    THBF_ENABLED         = 0x0000,
+    THBF_DISABLED        = 0x0001,
+    THBF_DISMISSONCLICK  = 0x0002,
+    THBF_NOBACKGROUND    = 0x0004,
+    THBF_HIDDEN          = 0x0008,
+    THBF_NONINTERACTIVE  = 0x0010
+} THUMBBUTTONFLAGS;
+
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)")
+
+typedef [v1_enum] enum THUMBBUTTONMASK {
+    THB_BITMAP   = 0x0001,
+    THB_ICON     = 0x0002,
+    THB_TOOLTIP  = 0x0004,
+    THB_FLAGS    = 0x0008
+} THUMBBUTTONMASK;
+
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)")
+
+cpp_quote("#include <pshpack8.h>")
+typedef struct THUMBBUTTON {
+    THUMBBUTTONMASK dwMask;
+    UINT iId;
+    UINT iBitmap;
+    HICON hIcon;
+    WCHAR szTip[260];
+    THUMBBUTTONFLAGS dwFlags;
+} THUMBBUTTON, *LPTHUMBBUTTON;
+cpp_quote("#include <poppack.h>")
+
+[
+    uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf),
+    object
+]
+interface ITaskbarList3 : ITaskbarList2
+{
+    typedef [v1_enum] enum TBPFLAG {
+        TBPF_NOPROGRESS     = 0x0000,
+        TBPF_INDETERMINATE  = 0x0001,
+        TBPF_NORMAL         = 0x0002,
+        TBPF_ERROR          = 0x0004,
+        TBPF_PAUSED         = 0x0008
+    } TBPFLAG;
+
+    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)")
+
+    HRESULT SetProgressValue(
+            [in] HWND hwnd,
+            [in] ULONGLONG ullCompleted,
+            [in] ULONGLONG ullTotal);
+
+    HRESULT SetProgressState(
+            [in] HWND hwnd,
+            [in] TBPFLAG tbpFlags);
+
+    HRESULT RegisterTab(
+            [in] HWND hwndTab,
+            [in] HWND hwndMDI);
+
+    HRESULT UnregisterTab([in] HWND hwndTab);
+
+    HRESULT SetTabOrder(
+            [in] HWND hwndTab,
+            [in] HWND hwndInsertBefore);
+
+    HRESULT SetTabActive(
+            [in] HWND hwndTab,
+            [in] HWND hwndMDI,
+            [in] DWORD dwReserved);
+
+    HRESULT ThumbBarAddButtons(
+            [in] HWND hwnd,
+            [in] UINT cButtons,
+            [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
+
+    HRESULT ThumbBarUpdateButtons(
+            [in] HWND hwnd,
+            [in] UINT cButtons,
+            [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
+
+    HRESULT ThumbBarSetImageList(
+            [in] HWND hwnd,
+            [in] HIMAGELIST himl);
+
+    HRESULT SetOverlayIcon(
+            [in] HWND hwnd,
+            [in] HICON hIcon,
+            [in, unique, string] LPCWSTR pszDescription);
+
+    HRESULT SetThumbnailTooltip(
+            [in] HWND hwnd,
+            [in, unique, string] LPCWSTR pszTip);
+
+    HRESULT SetThumbnailClip(
+            [in] HWND hwnd,
+            [in] RECT *prcClip);
+}
+
+[
+    uuid(c43dc798-95d1-4bea-9030-bb99e2983a1a),
+    object
+]
+interface ITaskbarList4 : ITaskbarList3
+{
+    typedef [v1_enum] enum STPFLAG {
+        STPF_NONE                       = 0x0000,
+        STPF_USEAPPTHUMBNAILALWAYS      = 0x0001,
+        STPF_USEAPPTHUMBNAILWHENACTIVE  = 0x0002,
+        STPF_USEAPPPEEKALWAYS           = 0x0004,
+        STPF_USEAPPPEEKWHENACTIVE       = 0x0008
+    } STPFLAG;
+
+    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)")
+
+    HRESULT SetTabProperties(
+            [in] HWND hwndTab,
+            [in] STPFLAG stpFlags);
+}
+
 /*****************************************************************************
  * IDefaultExtractIconInit interface
  */
@@ -2162,25 +2451,6 @@ interface IMenuBand : IUnknown
         [out] LRESULT* plRet);
 }
 
-/*****************************************************************************
- * IProfferService interface
- */
-[
-    uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0),
-    object,
-    pointer_default(unique),
-    local
-]
-interface IProfferService : IUnknown
-{
-    HRESULT ProfferService(
-        [in] REFGUID service,
-        [in] IServiceProvider *pService,
-        [out] DWORD *pCookie);
-
-    HRESULT RevokeService([in] DWORD cookie);
-}
-
 /*****************************************************************************
  * IShellMenuCallback interface
  */
@@ -2392,162 +2662,41 @@ interface ITrackShellMenu : IShellMenu
 
 cpp_quote("#endif /* _WIN32_IE_IE60 */")
 
-cpp_quote("#ifdef MIDL_PASS")
-typedef IUnknown* HIMAGELIST;
-cpp_quote("#endif")
-
-typedef [v1_enum] enum THUMBBUTTONFLAGS {
-    THBF_ENABLED         = 0x0000,
-    THBF_DISABLED        = 0x0001,
-    THBF_DISMISSONCLICK  = 0x0002,
-    THBF_NOBACKGROUND    = 0x0004,
-    THBF_HIDDEN          = 0x0008,
-    THBF_NONINTERACTIVE  = 0x0010
-} THUMBBUTTONFLAGS;
-
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)")
-
-typedef [v1_enum] enum THUMBBUTTONMASK {
-    THB_BITMAP   = 0x0001,
-    THB_ICON     = 0x0002,
-    THB_TOOLTIP  = 0x0004,
-    THB_FLAGS    = 0x0008
-} THUMBBUTTONMASK;
-
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)")
-
-cpp_quote("#include <pshpack8.h>")
-typedef struct THUMBBUTTON {
-    THUMBBUTTONMASK dwMask;
-    UINT iId;
-    UINT iBitmap;
-    HICON hIcon;
-    WCHAR szTip[260];
-    THUMBBUTTONFLAGS dwFlags;
-} THUMBBUTTON, *LPTHUMBBUTTON;
-cpp_quote("#include <poppack.h>")
-
 /*****************************************************************************
- *    ITaskbarList2 interface
+ *    IAutoCompleteDropDown interface
  */
 [
     object,
-    uuid(602D4995-B13A-429B-A66E-1935E44F4317),
+    uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB),
     pointer_default(unique)
 ]
-interface ITaskbarList2 : ITaskbarList
-{
-    HRESULT MarkFullscreenWindow(
-        [in] HWND hwnd,
-        [in] BOOL fullscreen);
-}
-
-[
-    uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf),
-    object
-]
-interface ITaskbarList3 : ITaskbarList2
-{
-    typedef [v1_enum] enum TBPFLAG {
-        TBPF_NOPROGRESS     = 0x0000,
-        TBPF_INDETERMINATE  = 0x0001,
-        TBPF_NORMAL         = 0x0002,
-        TBPF_ERROR          = 0x0004,
-        TBPF_PAUSED         = 0x0008
-    } TBPFLAG;
-
-    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)")
-
-    HRESULT SetProgressValue(
-            [in] HWND hwnd,
-            [in] ULONGLONG ullCompleted,
-            [in] ULONGLONG ullTotal);
-
-    HRESULT SetProgressState(
-            [in] HWND hwnd,
-            [in] TBPFLAG tbpFlags);
-
-    HRESULT RegisterTab(
-            [in] HWND hwndTab,
-            [in] HWND hwndMDI);
-
-    HRESULT UnregisterTab([in] HWND hwndTab);
-
-    HRESULT SetTabOrder(
-            [in] HWND hwndTab,
-            [in] HWND hwndInsertBefore);
-
-    HRESULT SetTabActive(
-            [in] HWND hwndTab,
-            [in] HWND hwndMDI,
-            [in] DWORD dwReserved);
-
-    HRESULT ThumbBarAddButtons(
-            [in] HWND hwnd,
-            [in] UINT cButtons,
-            [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
-
-    HRESULT ThumbBarUpdateButtons(
-            [in] HWND hwnd,
-            [in] UINT cButtons,
-            [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
-
-    HRESULT ThumbBarSetImageList(
-            [in] HWND hwnd,
-            [in] HIMAGELIST himl);
-
-    HRESULT SetOverlayIcon(
-            [in] HWND hwnd,
-            [in] HICON hIcon,
-            [in, unique, string] LPCWSTR pszDescription);
-
-    HRESULT SetThumbnailTooltip(
-            [in] HWND hwnd,
-            [in, unique, string] LPCWSTR pszTip);
-
-    HRESULT SetThumbnailClip(
-            [in] HWND hwnd,
-            [in] RECT *prcClip);
-}
-
-[
-    uuid(c43dc798-95d1-4bea-9030-bb99e2983a1a),
-    object
-]
-interface ITaskbarList4 : ITaskbarList3
+interface IAutoCompleteDropDown : IUnknown
 {
-    typedef [v1_enum] enum STPFLAG {
-        STPF_NONE                       = 0x0000,
-        STPF_USEAPPTHUMBNAILALWAYS      = 0x0001,
-        STPF_USEAPPTHUMBNAILWHENACTIVE  = 0x0002,
-        STPF_USEAPPPEEKALWAYS           = 0x0004,
-        STPF_USEAPPPEEKWHENACTIVE       = 0x0008
-    } STPFLAG;
+cpp_quote("#define ACDD_VISIBLE   0x0001")
 
-    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)")
+    HRESULT GetDropDownStatus(
+        [out] DWORD *pdwFlags,
+        [out, string] LPWSTR *ppwszString);
 
-    HRESULT SetTabProperties(
-            [in] HWND hwndTab,
-            [in] STPFLAG stpFlags);
+    HRESULT ResetEnumerator();
 }
 
 /*****************************************************************************
- *    IAutoCompleteDropDown interface
+ * IProfferService interface
  */
 [
     object,
-    uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB),
+    uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0),
     pointer_default(unique)
 ]
-interface IAutoCompleteDropDown : IUnknown
+interface IProfferService : IUnknown
 {
-cpp_quote("#define ACDD_VISIBLE   0x0001")
-
-    HRESULT GetDropDownStatus(
-        [out] DWORD *pdwFlags,
-        [out, string] LPWSTR *ppwszString);
+    HRESULT ProfferService(
+        [in] REFGUID service,
+        [in] IServiceProvider *pService,
+        [out] DWORD *pCookie);
 
-    HRESULT ResetEnumerator();
+    HRESULT RevokeService([in] DWORD cookie);
 }
 
 /*****************************************************************************
@@ -2613,7 +2762,9 @@ typedef [v1_enum] enum tagEXPLORER_BROWSER_OPTIONS {
     EBO_ALWAYSNAVIGATE     = 0x04,
     EBO_NOTRAVELLOG        = 0x08,
     EBO_NOWRAPPERWINDOW    = 0x10,
-    EBO_HTMLSHAREPOINTVIEW = 0x20
+    EBO_HTMLSHAREPOINTVIEW = 0x20,
+    EBO_NOBORDER           = 0x40,
+    EBO_NOPERSISTVIEWSTATE = 0x80,
 } EXPLORER_BROWSER_OPTIONS;
 
 cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser")
@@ -3069,7 +3220,7 @@ interface IFileDialog;
 typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE
 {
     FDEOR_DEFAULT  = 0,
-    FDEOR_ACCCEP   = 1,
+    FDEOR_ACCEPT   = 1,
     FDEOR_REFUSE   = 2
 } FDE_OVERWRITE_RESPONSE;
 
@@ -3855,7 +4006,7 @@ interface ITransferAdviseSink : IUnknown
     HRESULT FileFailure([in] IShellItem *item,
                         [in, unique, string] LPCWSTR itemname,
                         [in] HRESULT hr,
-                        [out, unique, size_is(crename)] LPWSTR rename,
+                        [in, out, unique, size_is(crename)] LPWSTR rename,
                         [in] ULONG crename);
     HRESULT SubStreamFailure([in] IShellItem *item,
                              [in, string] LPCWSTR stream,
@@ -3944,6 +4095,82 @@ interface ITransferDestination : IUnknown
                        [out, iid_is(riid)] void **presources);
 }
 
+[
+    uuid(92218cab-ecaa-4335-8133-807fd234c2ee),
+    object,
+    pointer_default(unique)
+]
+interface IAssocHandlerInvoker : IUnknown
+{
+    HRESULT SupportsSelection();
+    HRESULT Invoke();
+}
+
+[
+    uuid(f04061ac-1659-4a3f-a954-775aa57fc083),
+    object,
+    pointer_default(unique)
+]
+interface IAssocHandler : IUnknown
+{
+    HRESULT GetName([out, string] LPWSTR *name);
+    HRESULT GetUIName([out, string] LPWSTR *uiname);
+    HRESULT GetIconLocation([out, string] LPWSTR *path,
+                            [out] int *index);
+    HRESULT IsRecommended();
+    HRESULT MakeDefault([in, string] LPCWSTR description);
+    HRESULT Invoke([in] IDataObject *object);
+    HRESULT CreateInvoker([in] IDataObject *object,
+                          [out] IAssocHandlerInvoker **invoker);
+}
+
+[
+    uuid(973810ae-9599-4b88-9e4d-6ee98c9552da),
+    object,
+    pointer_default(unique)
+]
+interface IEnumAssocHandlers : IUnknown
+{
+    HRESULT Next([in]  ULONG count,
+                 [out, size_is(count), length_is(*fetched)] IAssocHandler **handlers,
+                 [out] ULONG *fetched);
+}
+
+typedef enum ASSOC_FILTER
+{
+    ASSOC_FILTER_NONE = 0,
+    ASSOC_FILTER_RECOMMENDED
+} ASSOC_FILTER;
+cpp_quote("HRESULT WINAPI SHAssocEnumHandlers(PCWSTR extra, ASSOC_FILTER filter, IEnumAssocHandlers **handlersenum);")
+
+typedef [v1_enum] enum ACTIVATEOPTIONS
+{
+    AO_NONE             = 0x00000000,
+    AO_DESIGNMODE       = 0x00000001,
+    AO_NOERRORUI        = 0x00000002,
+    AO_NOSPLASHSCREEN   = 0x00000004
+} ACTIVATEOPTIONS;
+
+[
+    uuid(2e941141-7f97-4756-ba1d-9decde894a3d),
+    object,
+    pointer_default(unique)
+]
+interface IApplicationActivationManager : IUnknown
+{
+    HRESULT ActivateApplication([in] LPCWSTR appusermodelid,
+                                [in, unique] LPCWSTR arguments,
+                                [in] ACTIVATEOPTIONS options,
+                                [out] DWORD *processid);
+    HRESULT ActivateForFile([in] LPCWSTR appusermodelid,
+                            [in] IShellItemArray *itemarray,
+                            [in, unique] LPCWSTR verb,
+                            [out] DWORD *processid);
+    HRESULT ActivateForProtocol([in] LPCWSTR appusermodelid,
+                                [in] IShellItemArray *itemarray,
+                                [out] DWORD *processid);
+}
+
 /*****************************************************************************
  * ShellObjects typelibrary
  */
@@ -4025,6 +4252,14 @@ library ShellObjects
         interface ICustomDestinationList;
     }
 
+    [
+        uuid(2d3468c1-36a7-43b6-ac24-d3f02fd9607a)
+    ]
+    coclass EnumerableObjectCollection
+    {
+        interface IEnumObjects;
+    }
+
     [
         uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a)
     ]
@@ -4039,4 +4274,187 @@ library ShellObjects
     coclass ShellItem {
         interface IShellItem2;
     }
+
+    [
+        uuid(45ba127d-10a8-46ea-8ab7-56ea9078943c)
+    ]
+    coclass ApplicationActivationManager
+    {
+        interface IApplicationActivationManager;
+    }
+}
+
+enum _OPPROGDLGF
+{
+    OPPROGDLG_DEFAULT = 0,
+    OPPROGDLG_ENABLEPAUSE = 0x80,
+    OPPROGDLG_ALLOWUNDO = 0x100,
+    OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
+    OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
+    OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
+    OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
+};
+typedef DWORD OPPROGDLGF;
+
+enum _PDMODE
+{
+    PDM_DEFAULT = 0,
+    PDM_RUN = 0x1,
+    PDM_PREFLIGHT = 0x2,
+    PDM_UNDOING = 0x4,
+    PDM_ERRORSBLOCKING = 0x8,
+    PDM_INDETERMINATE = 0x10
+};
+typedef DWORD PDMODE;
+
+typedef enum PDOPSTATUS
+{
+    PDOPS_RUNNING = 1,
+    PDOPS_PAUSED = 2,
+    PDOPS_CANCELLED = 3,
+    PDOPS_STOPPED = 4,
+    PDOPS_ERRORS = 5
+}      PDOPSTATUS;
+
+typedef enum _SPACTION
+{
+    SPACTION_NONE = 0,
+    SPACTION_MOVING = 1,
+    SPACTION_COPYING = 2,
+    SPACTION_RECYCLING = 3,
+    SPACTION_APPLYINGATTRIBS = 4,
+    SPACTION_DOWNLOADING = 5,
+    SPACTION_SEARCHING_INTERNET = 6,
+    SPACTION_CALCULATING = 7,
+    SPACTION_UPLOADING = 8,
+    SPACTION_SEARCHING_FILES = 9,
+    SPACTION_DELETING = 10,
+    SPACTION_RENAMING = 11,
+    SPACTION_FORMATTING = 12,
+    SPACTION_COPY_MOVING = 13
+}      SPACTION;
+
+[
+    uuid(0C9FB851-E5C9-43EB-A370-F0677B13874C),
+    object,
+    pointer_default(unique)
+]
+interface IOperationsProgressDialog : IUnknown
+{
+     HRESULT StartProgressDialog(
+         [in] HWND hwndOwner,
+         [in] OPPROGDLGF flags);
+     HRESULT StopProgressDialog();
+     HRESULT SetOperation(
+         [in] SPACTION action);
+     HRESULT SetMode(
+         [in] PDMODE mode);
+     HRESULT UpdateProgress(
+        [in] ULONGLONG ullPointsCurrent,
+        [in] ULONGLONG ullPointsTotal,
+        [in] ULONGLONG ullSizeCurrent,
+        [in] ULONGLONG ullSizeTotal,
+        [in] ULONGLONG ullItemsCurrent,
+        [in] ULONGLONG ullItemsTotal);
+     HRESULT UpdateLocations(
+         [in, optional] IShellItem *psiSource,
+         [in, optional] IShellItem *psiTarget,
+         [in, optional] IShellItem *psiItem);
+     HRESULT ResetTimer();
+     HRESULT PauseTimer();
+     HRESULT ResumeTimer();
+     HRESULT GetMilliseconds(
+         [out] ULONGLONG *pullElapsed, 
+         [out] ULONGLONG *pullRemaining);
+     HRESULT GetOperationStatus(
+         [out] PDOPSTATUS *popstatus);
+};
+
+[
+    uuid(947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8),
+    object,
+    pointer_default(unique)
+]
+interface IFileOperation : IUnknown
+{
+     HRESULT Advise(
+         [in] IFileOperationProgressSink *pfops, 
+         [out] DWORD *pdwCookie);
+     HRESULT Unadvise(
+         [in] DWORD dwCookie);
+     HRESULT SetOperationFlags(
+         [in] DWORD dwOperationFlags);
+     HRESULT SetProgressMessage(
+         [in] LPCWSTR pszMessage);
+     HRESULT SetProgressDialog(
+         [in] IOperationsProgressDialog *popd);
+     HRESULT SetProperties(
+         [in] IPropertyChangeArray *pproparray);
+     HRESULT SetOwnerWindow(
+         [in] HWND hwndOwner);
+     HRESULT ApplyPropertiesToItem(
+         [in] IShellItem *psiItem);
+     HRESULT ApplyPropertiesToItems(
+         [in] IUnknown *punkItems);
+     HRESULT RenameItem(
+         [in] IShellItem *psiItem, 
+         [in] LPCWSTR pszNewName,
+         [in] IFileOperationProgressSink *pfopsItem);
+     HRESULT RenameItems(
+         [in] IUnknown *pUnkItems,
+         [in] LPCWSTR pszNewName);
+     HRESULT MoveItem(
+         [in] IShellItem *psiItem, 
+         [in] IShellItem *psiDestinationFolder, 
+         [in] LPCWSTR pszNewName, 
+         [in] IFileOperationProgressSink *pfopsItem);
+     HRESULT MoveItems(
+         [in] IUnknown *punkItems,
+         [in] IShellItem *psiDestinationFolder);
+     HRESULT CopyItem(
+         [in] IShellItem *psiItem, 
+         [in] IShellItem *psiDestinationFolder, 
+         [in] LPCWSTR pszCopyName, 
+         [in] IFileOperationProgressSink *pfopsItem);
+     HRESULT CopyItems(
+         [in] IUnknown *punkItems, 
+         [in] IShellItem *psiDestinationFolder);
+     HRESULT DeleteItem(
+         [in] IShellItem *psiItem, 
+         [in] IFileOperationProgressSink *pfopsItem);
+     HRESULT DeleteItems(
+         [in] IUnknown *punkItems);
+     HRESULT NewItem(
+         [in] IShellItem *psiDestinationFolder, 
+         [in] DWORD dwFileAttributes, 
+         [in] LPCWSTR pszName, 
+         [in] LPCWSTR pszTemplateName, 
+         [in] IFileOperationProgressSink *pfopsItem);
+     HRESULT PerformOperations();
+     HRESULT GetAnyOperationsAborted(
+         [out] BOOL *pfAnyOperationsAborted);
+};
+
+[
+    uuid(6CCB7BE0-6807-11d0-B810-00C04FD706EC),
+    object,
+    local,
+    pointer_default(unique)
+]
+interface IShellTaskScheduler : IUnknown
+{
+    HRESULT AddTask(
+        [in] IRunnableTask *pTask, 
+        [in] REFGUID rtoid, 
+        [in] DWORD_PTR lParam, 
+        [in] DWORD dwPriority);
+    HRESULT RemoveTasks(
+        [in] REFGUID rtoid, 
+        [in] DWORD_PTR lParam, 
+        [in] BOOL fWaitIfRunning);
+    UINT CountTasks(
+        [in] REFGUID rtoid);
+    HRESULT Status(
+        [in] DWORD dwReleaseStatus, 
+        [in] DWORD dwThreadTimeout);
 }