[in] LPBC pbcReserved,
[in, string] LPOLESTR lpszDisplayName,
[out] ULONG *pchEaten,
- [out] LPITEMIDLIST *ppidl,
+ [out] PIDLIST_RELATIVE *ppidl,
[in, out, unique] ULONG *pdwAttributes);
HRESULT EnumObjects(
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 );
}
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);")
/*****************************************************************************
);
}
+[
+ 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
*/
);
}
+[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
*/
[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
*/
[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
*/
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);
}
/*****************************************************************************
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")
typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE
{
FDEOR_DEFAULT = 0,
- FDEOR_ACCCEP = 1,
+ FDEOR_ACCEPT = 1,
FDEOR_REFUSE = 2
} FDE_OVERWRITE_RESPONSE;
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,
[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
*/
interface ICustomDestinationList;
}
+ [
+ uuid(2d3468c1-36a7-43b6-ac24-d3f02fd9607a)
+ ]
+ coclass EnumerableObjectCollection
+ {
+ interface IEnumObjects;
+ }
+
[
uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a)
]
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);
}