From 047d6ae751e3bc39485da6a6b42907a892255cbe Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Miko=C5=82aj_Zalewski?= Date: Wed, 3 Oct 2007 15:13:26 -0700 Subject: [PATCH] include: add IProgressDialog definitions --- include/shlguid.h | 9 +++++++-- include/shlobj.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/include/shlguid.h b/include/shlguid.h index be80199..503f4fc 100644 --- a/include/shlguid.h +++ b/include/shlguid.h @@ -54,6 +54,9 @@ DEFINE_GUID(IID_IACList, 0x77A130B0L,0x94FD,0x11D0,0xA5,0x44,0x00,0xC0,0x4F,0x DEFINE_GUID(IID_IACList2, 0x470141A0L,0x5186,0x11D2,0xBB,0xB6,0x00,0x60,0x97,0x7B,0x46,0x4C); DEFINE_GUID(IID_IObjMgr, 0x00BB2761L,0x6A77,0x11D0,0xA5,0x35,0x00,0xC0,0x4F,0xD7,0xD0,0x62); +DEFINE_GUID(IID_IProgressDialog, 0xEBBC7C04,0x315E,0x11D2,0xB6,0x2F,0x00,0x60,0x97,0xDF,0x5B,0xD4); + + /* avoid duplicate definitions with shobjidl.h (FIXME) */ /* DEFINE_OLEGUID(IID_IShellPropSheetExt, 0x000214E9L, 0, 0); */ /* DEFINE_OLEGUID(IID_IExtractIconA, 0x000214EBL, 0, 0); */ @@ -122,8 +125,10 @@ DEFINE_GUID(IID_IQueryAssociations, 0xc46ca590, 0x3c3f, 0x11d2, 0xbe, 0xe6, 0x00 DEFINE_GUID(CLSID_DragDropHelper, 0x4657278a, 0x411b, 0x11d2, 0x83, 0x9a, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0xd0); -DEFINE_GUID(CLSID_AutoComplete, 0x00bb2763, 0x6a77, 0x11d0, 0xa5, 0x35, 0x00, 0xc0, 0x4f, 0xd7, 0xd0, 0x62); -DEFINE_GUID(CLSID_ACLMulti, 0x00bb2765, 0x6a77, 0x11d0, 0xa5, 0x35, 0x00, 0xc0, 0x4f, 0xd7, 0xd0, 0x62); +DEFINE_GUID(CLSID_AutoComplete, 0x00bb2763, 0x6a77, 0x11d0, 0xa5, 0x35, 0x00, 0xc0, 0x4f, 0xd7, 0xd0, 0x62); +DEFINE_GUID(CLSID_ACLMulti, 0x00bb2765, 0x6a77, 0x11d0, 0xa5, 0x35, 0x00, 0xc0, 0x4f, 0xd7, 0xd0, 0x62); + +DEFINE_GUID(CLSID_ProgressDialog, 0xf8383852, 0xfcd3, 0x11d1, 0xa6, 0xb9, 0x0, 0x60, 0x97, 0xdf, 0x5b, 0xd4); #define PSGUID_SHELLDETAILS {0x28636aa6, 0x953d, 0x11d2, 0xb5, 0xd6, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0} DEFINE_GUID(FMTID_ShellDetails, 0x28636aa6, 0x953d, 0x11d2, 0xb5, 0xd6, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0); diff --git a/include/shlobj.h b/include/shlobj.h index d93a69d..bd531c8 100644 --- a/include/shlobj.h +++ b/include/shlobj.h @@ -359,6 +359,59 @@ DECLARE_INTERFACE_(IACList,IUnknown) #define IACList_Expand(p,a) (p)->lpVtbl->Expand(p,a) #endif +/* IProgressDialog interface */ +#define PROGDLG_NORMAL 0x00000000 +#define PROGDLG_MODAL 0x00000001 +#define PROGDLG_AUTOTIME 0x00000002 +#define PROGDLG_NOTIME 0x00000004 +#define PROGDLG_NOMINIMIZE 0x00000008 +#define PROGDLG_NOPROGRESSBAR 0x00000010 +#define PROGDLG_MARQUEEPROGRESS 0x00000020 +#define PROGDLG_NOCANCEL 0x00000040 + +#define PDTIMER_RESET 0x00000001 +#define PDTIMER_PAUSE 0x00000002 +#define PDTIMER_RESUME 0x00000003 + +#define INTERFACE IProgressDialog +DECLARE_INTERFACE_(IProgressDialog,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + /*** IProgressDialog methods ***/ + STDMETHOD(StartProgressDialog)(THIS_ HWND hwndParent, IUnknown *punkEnableModeless, DWORD dwFlags, LPCVOID reserved) PURE; + STDMETHOD(StopProgressDialog)(THIS) PURE; + STDMETHOD(SetTitle)(THIS_ LPCWSTR pwzTitle) PURE; + STDMETHOD(SetAnimation)(THIS_ HINSTANCE hInstance, UINT uiResourceId) PURE; + STDMETHOD_(BOOL,HasUserCancelled)(THIS) PURE; + STDMETHOD(SetProgress)(THIS_ DWORD dwCompleted, DWORD dwTotal) PURE; + STDMETHOD(SetProgress64)(THIS_ ULONGLONG ullCompleted, ULONGLONG ullTotal) PURE; + STDMETHOD(SetLine)(THIS_ DWORD dwLineNum, LPCWSTR pwzString, BOOL bPath, LPCVOID reserved) PURE; + STDMETHOD(SetCancelMsg)(THIS_ LPCWSTR pwzCancelMsg, LPCVOID reserved) PURE; + STDMETHOD(Timer)(THIS_ DWORD dwTimerAction, LPCVOID reserved) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IProgressDialog_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IProgressDialog_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IProgressDialog_Release(p) (p)->lpVtbl->Release(p) +/*** IProgressDialog methods ***/ +#define IProgressDialog_StartProgressDialog(p,a,b,c,d) (p)->lpVtbl->StartProgressDialog(p,a,b,c,d) +#define IProgressDialog_StopProgressDialog(p) (p)->lpVtbl->StopProgressDialog(p) +#define IProgressDialog_SetTitle(p,a) (p)->lpVtbl->SetTitle(p,a) +#define IProgressDialog_SetAnimation(p,a,b) (p)->lpVtbl->SetAnimation(p,a,b) +#define IProgressDialog_HasUserCancelled(p) (p)->lpVtbl->HasUserCancelled(p) +#define IProgressDialog_SetProgress(p,a,b) (p)->lpVtbl->SetProgress(p,a,b) +#define IProgressDialog_SetProgress64(p,a,b) (p)->lpVtbl->SetProgress64(p,a,b) +#define IProgressDialog_SetLine(p,a,b,c,d) (p)->lpVtbl->SetLine(p,a,b,c,d) +#define IProgressDialog_SetCancelMsg(p,a,b) (p)->lpVtbl->SetCancelMsg(p,a,b) +#define IProgressDialog_Timer(p,a,b) (p)->lpVtbl->Timer(p,a,b) +#endif + /**************************************************************************** * SHAddToRecentDocs API -- 1.4.4.2