OSDN Git Service

4d2f13afaf69ed9542f2fd7e95e3317e81a70b7d
[mingw/mingw-org-wsl.git] / include / shobjidl.h
1 /**
2  * @file shobjidl.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _SHLOBJIDL_H
25 #define _SHLOBJIDL_H
26 #pragma GCC system_header
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #include <ole2.h>
33 #include <shlguid.h>
34 #include <shellapi.h>
35 #pragma pack(push,1)
36 #include <commctrl.h>
37
38 extern const IID IID_ITaskbarList3;
39 extern const GUID CLSID_ITaskbarList;
40
41 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd562322%28v=vs.85%29.aspx */
42 typedef enum THUMBBUTTONMASK {
43   THB_BITMAP    = 0x00000001,
44   THB_ICON      = 0x00000002,
45   THB_TOOLTIP   = 0x00000004,
46   THB_FLAGS     = 0x00000008 
47 } THUMBBUTTONMASK;
48
49 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd562321%28v=vs.85%29.aspx */
50 typedef enum THUMBBUTTONFLAGS {
51   THBF_ENABLED          = 0x00000000,
52   THBF_DISABLED         = 0x00000001,
53   THBF_DISMISSONCLICK   = 0x00000002,
54   THBF_NOBACKGROUND     = 0x00000004,
55   THBF_HIDDEN           = 0x00000008,
56   THBF_NONINTERACTIVE   = 0x00000010 
57 } THUMBBUTTONFLAGS;
58
59 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391559%28v=vs.85%29.aspx */
60 typedef struct THUMBBUTTON {
61   THUMBBUTTONMASK  dwMask;
62   UINT             iId;
63   UINT             iBitmap;
64   HICON            hIcon;
65   WCHAR            szTip[260];
66   THUMBBUTTONFLAGS dwFlags;
67 } THUMBBUTTON, *LPTHUMBBUTTON;
68
69 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391697%28v=vs.85%29.aspx */
70 typedef enum TBPFLAG {
71     TBPF_NOPROGRESS    = 0x00000000,
72     TBPF_INDETERMINATE = 0x00000001,
73     TBPF_NORMAL        = 0x00000002,
74     TBPF_ERROR         = 0x00000004,
75     TBPF_PAUSED        = 0x00000008
76 } TBPFLAG;
77
78 /* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774652%28v=vs.85%29.aspx */
79 #define INTERFACE ITaskbarList
80 DECLARE_INTERFACE_(ITaskbarList, IUnknown)
81 {
82         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
83         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
84         STDMETHOD_(ULONG,Release)(THIS) PURE;
85 /* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774650%28v=vs.85%29.aspx */
86         STDMETHOD(HrInit)(THIS) PURE;
87 /* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774646%28v=vs.85%29.aspx */
88         STDMETHOD(AddTab)(THIS_ HWND) PURE;
89 /* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774648%28v=vs.85%29.aspx */
90         STDMETHOD(DeleteTab)(THIS_ HWND) PURE;
91 /* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774644%28v=vs.85%29.aspx */
92         STDMETHOD(ActivateTab)(THIS_ HWND) PURE;
93 /* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774655%28v=vs.85%29.aspx */
94         STDMETHOD(SetActiveAlt)(THIS_ HWND) PURE;
95 };
96 #undef INTERFACE
97 typedef ITaskbarList *LPTASKBARLIST;
98
99 /* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774638%28v=vs.85%29.aspx */
100 #define INTERFACE ITaskbarList2
101 DECLARE_INTERFACE_(ITaskbarList2, ITaskbarList)
102 {
103         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
104         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
105         STDMETHOD_(ULONG,Release)(THIS) PURE;
106         STDMETHOD(HrInit)(THIS) PURE;
107         STDMETHOD(AddTab)(THIS_ HWND) PURE;
108         STDMETHOD(DeleteTab)(THIS_ HWND) PURE;
109         STDMETHOD(ActivateTab)(THIS_ HWND) PURE;
110         STDMETHOD(SetActiveAlt)(THIS_ HWND) PURE;
111 /* http://msdn.microsoft.com/en-us/library/windows/desktop/bb774640%28v=vs.85%29.aspx */
112         STDMETHOD(MarkFullscreenWindow)(THIS_ HWND,BOOL) PURE;
113 };
114 #undef INTERFACE
115 typedef ITaskbarList2 *LPTASKBARLIST2;
116
117 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391692%28v=vs.85%29.aspx */
118 #define INTERFACE ITaskbarList3
119 DECLARE_INTERFACE_(ITaskbarList3, ITaskbarList2)
120 {
121         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
122         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
123         STDMETHOD_(ULONG,Release)(THIS) PURE;
124         STDMETHOD(HrInit)(THIS) PURE;
125         STDMETHOD(AddTab)(THIS_ HWND) PURE;
126         STDMETHOD(DeleteTab)(THIS_ HWND) PURE;
127         STDMETHOD(ActivateTab)(THIS_ HWND) PURE;
128         STDMETHOD(SetActiveAlt)(THIS_ HWND) PURE;
129         STDMETHOD(MarkFullscreenWindow)(THIS_ HWND,BOOL) PURE;
130 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391698%28v=vs.85%29.aspx */
131         STDMETHOD(SetProgressValue)(THIS_ ULONGLONG,ULONGLONG) PURE;
132 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391697%28v=vs.85%29.aspx */
133         STDMETHOD(SetProgressState)(THIS_ HWND,TBPFLAG) PURE;
134 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391694%28v=vs.85%29.aspx */
135         STDMETHOD(RegisterTab)(THIS_ HWND,HWND) PURE;
136 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391706%28v=vs.85%29.aspx */
137         STDMETHOD(UnregisterTab)(THIS_ HWND) PURE;
138 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391700%28v=vs.85%29.aspx */
139         STDMETHOD(SetTabOrder)(THIS_ HWND,HWND) PURE;
140 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391699%28v=vs.85%29.aspx */
141         STDMETHOD(SetTabActive)(THIS_ HWND,HWND,DWORD) PURE;
142 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391703%28v=vs.85%29.aspx */
143         STDMETHOD(ThumbBarAddButtons)(THIS_ HWND,UINT,LPTHUMBBUTTON) PURE;
144 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391705%28v=vs.85%29.aspx */
145         STDMETHOD(ThumbBarUpdateButtons)(THIS_ HWND,UINT,LPTHUMBBUTTON) PURE;
146 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391704%28v=vs.85%29.aspx */
147         STDMETHOD(ThumbBarSetImageList)(THIS_ HWND,HIMAGELIST) PURE;
148 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391696%28v=vs.85%29.aspx */
149         STDMETHOD(SetOverlayIcon)(THIS_ HWND,HICON,LPCWSTR) PURE;
150 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391702%28v=vs.85%29.aspx */
151         STDMETHOD(SetThumbnailTooltip)(THIS_ HWND,LPCWSTR) PURE;
152 /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd391701%28v=vs.85%29.aspx */
153         STDMETHOD(SetThumbnailClip)(THIS_ HWND,RECT*) PURE;
154 };
155 #undef INTERFACE
156 typedef ITaskbarList3 *LPTASKBARLIST3;
157
158 #pragma pack(pop)
159 #ifdef __cplusplus
160 }
161 #endif
162
163
164 #endif /* _SHLOBJIDL_H */