diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index fb7b4fe93..72f35ee2e 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,9 @@ +2012-04-28 LRN + + * include/shobjidl.h: New file. + * lib/shobjidl-uuid.c: New file. + * lib/Makefile.in: Reference shobjidl-uuid.c. + 2012-03-19 Ben Greear * include/routprot.h (IP_LOCAL_BINDING): Move above IP_ADAPTER_BINDING_INFO diff --git a/winsup/w32api/include/shobjidl.h b/winsup/w32api/include/shobjidl.h new file mode 100644 index 000000000..c69e5cf72 --- /dev/null +++ b/winsup/w32api/include/shobjidl.h @@ -0,0 +1,143 @@ +#ifndef _SHLOBJIDL_H +#define _SHLOBJIDL_H +#if __GNUC__ >= 3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#pragma pack(push,1) +#include + +extern const IID IID_ITaskbarList3; +extern const GUID CLSID_ITaskbarList; + +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd562322%28v=vs.85%29.aspx */ +typedef enum THUMBBUTTONMASK { + THB_BITMAP = 0x00000001, + THB_ICON = 0x00000002, + THB_TOOLTIP = 0x00000004, + THB_FLAGS = 0x00000008 +} THUMBBUTTONMASK; + +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd562321%28v=vs.85%29.aspx */ +typedef enum THUMBBUTTONFLAGS { + THBF_ENABLED = 0x00000000, + THBF_DISABLED = 0x00000001, + THBF_DISMISSONCLICK = 0x00000002, + THBF_NOBACKGROUND = 0x00000004, + THBF_HIDDEN = 0x00000008, + THBF_NONINTERACTIVE = 0x00000010 +} THUMBBUTTONFLAGS; + +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391559%28v=vs.85%29.aspx */ +typedef struct THUMBBUTTON { + THUMBBUTTONMASK dwMask; + UINT iId; + UINT iBitmap; + HICON hIcon; + WCHAR szTip[260]; + THUMBBUTTONFLAGS dwFlags; +} THUMBBUTTON, *LPTHUMBBUTTON; + +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391697%28v=vs.85%29.aspx */ +typedef enum TBPFLAG { + TBPF_NOPROGRESS = 0x00000000, + TBPF_INDETERMINATE = 0x00000001, + TBPF_NORMAL = 0x00000002, + TBPF_ERROR = 0x00000004, + TBPF_PAUSED = 0x00000008 +} TBPFLAG; + +/* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774652%28v=vs.85%29.aspx */ +#define INTERFACE ITaskbarList +DECLARE_INTERFACE_(ITaskbarList, IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774650%28v=vs.85%29.aspx */ + STDMETHOD(HrInit)(THIS) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774646%28v=vs.85%29.aspx */ + STDMETHOD(AddTab)(THIS_ HWND) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774648%28v=vs.85%29.aspx */ + STDMETHOD(DeleteTab)(THIS_ HWND) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774644%28v=vs.85%29.aspx */ + STDMETHOD(ActivateTab)(THIS_ HWND) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774655%28v=vs.85%29.aspx */ + STDMETHOD(SetActiveAlt)(THIS_ HWND) PURE; +}; +#undef INTERFACE +typedef ITaskbarList *LPTASKBARLIST; + +/* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774638%28v=vs.85%29.aspx */ +#define INTERFACE ITaskbarList2 +DECLARE_INTERFACE_(ITaskbarList2, ITaskbarList) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(HrInit)(THIS) PURE; + STDMETHOD(AddTab)(THIS_ HWND) PURE; + STDMETHOD(DeleteTab)(THIS_ HWND) PURE; + STDMETHOD(ActivateTab)(THIS_ HWND) PURE; + STDMETHOD(SetActiveAlt)(THIS_ HWND) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774640%28v=vs.85%29.aspx */ + STDMETHOD(MarkFullscreenWindow)(THIS_ HWND,BOOL) PURE; +}; +#undef INTERFACE +typedef ITaskbarList2 *LPTASKBARLIST2; + +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391692%28v=vs.85%29.aspx */ +#define INTERFACE ITaskbarList3 +DECLARE_INTERFACE_(ITaskbarList3, ITaskbarList2) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(HrInit)(THIS) PURE; + STDMETHOD(AddTab)(THIS_ HWND) PURE; + STDMETHOD(DeleteTab)(THIS_ HWND) PURE; + STDMETHOD(ActivateTab)(THIS_ HWND) PURE; + STDMETHOD(SetActiveAlt)(THIS_ HWND) PURE; + STDMETHOD(MarkFullscreenWindow)(THIS_ HWND,BOOL) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391698%28v=vs.85%29.aspx */ + STDMETHOD(SetProgressValue)(THIS_ ULONGLONG,ULONGLONG) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391697%28v=vs.85%29.aspx */ + STDMETHOD(SetProgressState)(THIS_ HWND,TBPFLAG) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391694%28v=vs.85%29.aspx */ + STDMETHOD(RegisterTab)(THIS_ HWND,HWND) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391706%28v=vs.85%29.aspx */ + STDMETHOD(UnregisterTab)(THIS_ HWND) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391700%28v=vs.85%29.aspx */ + STDMETHOD(SetTabOrder)(THIS_ HWND,HWND) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391699%28v=vs.85%29.aspx */ + STDMETHOD(SetTabActive)(THIS_ HWND,HWND,DWORD) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391703%28v=vs.85%29.aspx */ + STDMETHOD(ThumbBarAddButtons)(THIS_ HWND,UINT,LPTHUMBBUTTON) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391705%28v=vs.85%29.aspx */ + STDMETHOD(ThumbBarUpdateButtons)(THIS_ HWND,UINT,LPTHUMBBUTTON) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391704%28v=vs.85%29.aspx */ + STDMETHOD(ThumbBarSetImageList)(THIS_ HWND,HIMAGELIST) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391696%28v=vs.85%29.aspx */ + STDMETHOD(SetOverlayIcon)(THIS_ HWND,HICON,LPCWSTR) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391702%28v=vs.85%29.aspx */ + STDMETHOD(SetThumbnailTooltip)(THIS_ HWND,LPCWSTR) PURE; +/* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391701%28v=vs.85%29.aspx */ + STDMETHOD(SetThumbnailClip)(THIS_ HWND,RECT*) PURE; +}; +#undef INTERFACE +typedef ITaskbarList3 *LPTASKBARLIST3; + +#pragma pack(pop) +#ifdef __cplusplus +} +#endif + + +#endif /* _SHLOBJIDL_H */ diff --git a/winsup/w32api/lib/Makefile.in b/winsup/w32api/lib/Makefile.in index 63a62e022..97201566a 100644 --- a/winsup/w32api/lib/Makefile.in +++ b/winsup/w32api/lib/Makefile.in @@ -42,7 +42,7 @@ UUID_OBJS = \ objsafe-uuid.o oaidl-uuid.o docobj-uuid.o comcat-uuid.o \ exdisp-uuid.o mlang-uuid.o objidl-uuid.o cguid-uuid.o \ olectlid-uuid.o ativscp-uuid.o urlmon-uuid.o hlink-uuid.o \ - hlguids-uuid.o extras-uuid.o devguid.o power-uuid.o + hlguids-uuid.o extras-uuid.o devguid.o power-uuid.o shobjidl-uuid.o EXTRA_OBJS = \ shell32.o scrnsave.o scrnsavw.o largeint.o gdiplus.o \ @@ -54,7 +54,7 @@ UUID_SOURCES = \ objsafe-uuid.c oaidl-uuid.c docobj-uuid.c comcat-uuid.c \ exdisp-uuid.c mlang-uuid.c objidl-uuid.c cguid-uuid.c \ olectlid-uuid.c ativscp-uuid.c urlmon-uuid.c hlink-uuid.c \ - hlguids-uuid.c extras-uuid.c devguid.c power-uuid.c + hlguids-uuid.c extras-uuid.c devguid.c power-uuid.c shobjidl-uuid.c SOURCES = \ scrnsave.c shell32.c largeint.c gdiplus.c $(UUID_SOURCES) \ diff --git a/winsup/w32api/lib/shobjidl-uuid.c b/winsup/w32api/lib/shobjidl-uuid.c new file mode 100644 index 000000000..47712fbc5 --- /dev/null +++ b/winsup/w32api/lib/shobjidl-uuid.c @@ -0,0 +1,13 @@ +/* shobjidl-uuid.c */ +/* Generate GUIDs for Object IDL interfaces */ + +/* All CLSIDs defined in this file were extracted from + * HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\ */ + +/* All IIDs defined in this file were extracted from + * HKEY_CLASSES_ROOT\Interface\ */ + +#define INITGUID +#include +DEFINE_GUID(IID_ITaskbarList3,0xea1afb91,0x9e28,0x4b86,0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf); +DEFINE_GUID(CLSID_ITaskbarList,0x56FDF342L,0xFD6D,0x11d0,0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90);