diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 5d82ae21d..3a04ede27 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,14 @@ +2005-08-17 Martin Fuchs + + * include/shlobj.h (IContextMenu3): Define. + * include/shlguid.h (IID_IContextMenu3): Declare. + * lib/shell32.c (IID_IContextMenu3): Define. + +2005-08-17 Martin Fuchs + + * include/shlobj.h (SHFormatDrive): Declaration of function + and associated constants. + 2005-08-12 Danny Smith * include/ddk/hidsdi.h: New file. diff --git a/winsup/w32api/include/shlguid.h b/winsup/w32api/include/shlguid.h index 2a37a3ca5..3583e324b 100644 --- a/winsup/w32api/include/shlguid.h +++ b/winsup/w32api/include/shlguid.h @@ -36,6 +36,7 @@ extern const GUID IID_ICommDlgBrowser; extern const GUID IID_IEnumIDList; extern const GUID IID_IFileViewerSite; extern const GUID IID_IContextMenu2; +extern const GUID IID_IContextMenu3; extern const GUID IID_IShellExecuteHookA; extern const GUID IID_IPropSheetPage; extern const GUID IID_INewShortcutHookW; diff --git a/winsup/w32api/include/shlobj.h b/winsup/w32api/include/shlobj.h index 07f4bdae4..138d08d6f 100644 --- a/winsup/w32api/include/shlobj.h +++ b/winsup/w32api/include/shlobj.h @@ -601,6 +601,21 @@ DECLARE_INTERFACE_(IContextMenu2,IContextMenu) }; typedef IContextMenu2 *LPCONTEXTMENU2; +#undef INTERFACE +#define INTERFACE IContextMenu3 +DECLARE_INTERFACE_(IContextMenu3,IContextMenu2) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; + STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; + STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE; + STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE; + STDMETHOD(HandleMenuMsg2)(THIS_ UINT,WPARAM,LPARAM,LRESULT*) PURE; +}; +typedef IContextMenu3 *LPCONTEXTMENU3; + #if (_WIN32_IE >= 0x0500) #pragma pack(push,8) typedef struct { @@ -658,6 +673,17 @@ typedef enum { #define IContextMenu2_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c) #endif +#ifdef COBJMACROS +#define IContextMenu3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) +#define IContextMenu3_AddRef(T) (T)->lpVtbl->AddRef(T) +#define IContextMenu3_Release(T) (T)->lpVtbl->Release(T) +#define IContextMenu3_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e) +#define IContextMenu3_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a) +#define IContextMenu3_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e) +#define IContextMenu3_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c) +#define IContextMenu3_HandleMenuMsg2(T,a,b,c,d) (T)->lpVtbl->HandleMenuMsg(T,a,b,c,d) +#endif + #undef INTERFACE #define INTERFACE IColumnProvider DECLARE_INTERFACE_(IColumnProvider,IUnknown) @@ -1474,6 +1500,15 @@ typedef BROWSEINFOA BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO; #define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORA #endif /* UNICODE */ +DWORD WINAPI SHFormatDrive(HWND,UINT,UINT,UINT); + +#define SHFMT_ID_DEFAULT 0xFFFF +#define SHFMT_OPT_FULL 1 +#define SHFMT_OPT_SYSONLY 2 +#define SHFMT_ERROR 0xFFFFFFFF +#define SHFMT_CANCEL 0xFFFFFFFE +#define SHFMT_NOFORMAT 0xFFFFFFFD + #pragma pack(pop) #ifdef __cplusplus } diff --git a/winsup/w32api/lib/shell32.c b/winsup/w32api/lib/shell32.c index 0b703fba9..d36ef7e8b 100644 --- a/winsup/w32api/lib/shell32.c +++ b/winsup/w32api/lib/shell32.c @@ -27,6 +27,7 @@ DEFINE_SHLGUID(IID_ICommDlgBrowser,0x000214F1L,0,0); DEFINE_SHLGUID(IID_IEnumIDList,0x000214F2L,0,0); DEFINE_SHLGUID(IID_IFileViewerSite,0x000214F3L,0,0); DEFINE_SHLGUID(IID_IContextMenu2,0x000214F4L,0,0); +DEFINE_GUID(IID_IContextMenu3,0xBCFCE0A0,0xEC17,0x11D0,0x8D,0x10,0x0,0xA0,0xC9,0xF,0x27,0x19); DEFINE_SHLGUID(IID_IShellExecuteHookA,0x000214F5L,0,0); DEFINE_SHLGUID(IID_IPropSheetPage,0x000214F6L,0,0); DEFINE_SHLGUID(IID_INewShortcutHookW,0x000214F7L,0,0);