1 /*****************************************************************************
2 * vlc_windows_interfaces.h : Replacement for incomplete MinGW headers
3 ****************************************************************************
5 * Copyright (C) 2009-2010 VideoLAN
7 * Authors: Geoffroy Couprie <geal@videolan.org>
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU Lesser General Public License as published by
11 * the Free Software Foundation; either version 2.1 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with this program; if not, write to the Free Software Foundation,
21 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22 *****************************************************************************/
24 #ifndef MINGW_WORKAROUNDS_H
25 #define MINGW_WORKAROUNDS_H
31 #ifdef __MINGW64_VERSION_MAJOR /* mingw.org lacks this header */
32 # include <shobjidl.h>
39 /* rpcndr.h defines small not only for idl */
42 /* mingw.org fails to define this */
43 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
44 #define __ITaskbarList3_INTERFACE_DEFINED__
45 const GUID CLSID_TaskbarList
={ 0x56FDF344,0xFD6D,0x11d0,{0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90}};
46 const GUID IID_ITaskbarList3
= { 0xea1afb91,0x9e28,0x4b86,{0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}};
52 TBPF_INDETERMINATE
= 0x1,
58 typedef struct tagTHUMBBUTTON
64 // WCHAR pszTip[ 260 ];
65 wchar_t pszTip
[ 260 ];
69 typedef struct tagTHUMBBUTTON
*LPTHUMBBUTTON
;
71 typedef enum THUMBBUTTONMASK
{
78 typedef enum THUMBBUTTONFLAGS
{
81 THBF_DISMISSONCLICK
= 0x2,
82 THBF_NOBACKGROUND
= 0x4,
84 THBF_NONINTERACTIVE
= 0x10
88 interface ITaskbarList
: public IUnknown
{
90 virtual HRESULT WINAPI
HrInit(void) = 0;
91 virtual HRESULT WINAPI
AddTab(HWND hwnd
) = 0;
92 virtual HRESULT WINAPI
DeleteTab(HWND hwnd
) = 0;
93 virtual HRESULT WINAPI
ActivateTab(HWND hwnd
) = 0;
94 virtual HRESULT WINAPI
SetActiveAlt(HWND hwnd
) = 0;
97 interface ITaskbarList2
: public ITaskbarList
{
99 virtual HRESULT WINAPI
MarkFullscreenWindow(HWND hwnd
,WINBOOL fFullscreen
) = 0;
102 interface ITaskbarList3
: public ITaskbarList2
104 virtual HRESULT STDMETHODCALLTYPE
SetProgressValue(
106 ULONGLONG ullCompleted
,
107 ULONGLONG ullTotal
) = 0;
109 virtual HRESULT STDMETHODCALLTYPE
SetProgressState(
111 TBPFLAG tbpFlags
) = 0;
113 virtual HRESULT STDMETHODCALLTYPE
RegisterTab(
117 virtual HRESULT STDMETHODCALLTYPE
UnregisterTab(
120 virtual HRESULT STDMETHODCALLTYPE
SetTabOrder(
122 HWND hwndInsertBefore
) = 0;
124 virtual HRESULT STDMETHODCALLTYPE
SetTabActive(
127 DWORD dwReserved
) = 0;
129 virtual HRESULT STDMETHODCALLTYPE
ThumbBarAddButtons(
132 LPTHUMBBUTTON pButton
) = 0;
134 virtual HRESULT STDMETHODCALLTYPE
ThumbBarUpdateButtons(
137 LPTHUMBBUTTON pButton
) = 0;
139 virtual HRESULT STDMETHODCALLTYPE
ThumbBarSetImageList(
141 HIMAGELIST himl
) = 0;
143 virtual HRESULT STDMETHODCALLTYPE
SetOverlayIcon(
146 LPCWSTR pszDescription
) = 0;
148 virtual HRESULT STDMETHODCALLTYPE
SetThumbnailTooltip(
152 virtual HRESULT STDMETHODCALLTYPE
SetThumbnailClip(
158 #else /* !__cplusplus */
160 struct ITaskbarList3Vtbl
;
161 struct ITaskbarList3
{ struct ITaskbarList3Vtbl
* lpVtbl
; };
162 typedef struct ITaskbarList3 ITaskbarList3
;
164 struct ITaskbarList3Vtbl
167 long ( WINAPI
*QueryInterface
)(ITaskbarList3
* This
, REFIID riid
, void **ppvObject
);
169 long ( WINAPI
*AddRef
)(ITaskbarList3
*This
);
171 long ( WINAPI
*Release
)(ITaskbarList3
*This
);
173 long ( WINAPI
*HrInit
)(ITaskbarList3
*This
);
175 long ( WINAPI
*AddTab
)(ITaskbarList3
*This
, HWND hwnd
);
177 long ( WINAPI
*DeleteTab
)(ITaskbarList3
*This
, HWND hwnd
);
179 long ( WINAPI
*ActivateTab
)(ITaskbarList3
*This
, HWND hwnd
);
181 long ( WINAPI
*SetActiveAlt
)(ITaskbarList3
*This
, HWND hwnd
);
183 long ( WINAPI
*MarkFullscreenWindow
)(ITaskbarList3
*This
, HWND hwnd
,
186 long ( WINAPI
*SetProgressValue
)(ITaskbarList3
*This
, HWND hwnd
,
187 ULONGLONG ullCompleted
, ULONGLONG ullTotal
);
189 long ( WINAPI
*SetProgressState
)(ITaskbarList3
*This
, HWND hwnd
,
192 long ( WINAPI
*RegisterTab
)( ITaskbarList3
*This
, HWND hwndTab
, HWND hwndMDI
);
194 long ( WINAPI
*UnregisterTab
)(ITaskbarList3
*This
, HWND hwndTab
);
196 long ( WINAPI
*SetTabOrder
)(ITaskbarList3
*This
, HWND hwndTab
,
197 HWND hwndInsertBefore
);
199 long ( WINAPI
*SetTabActive
)(ITaskbarList3
*This
, HWND hwndTab
,
200 HWND hwndMDI
, DWORD dwReserved
);
202 long ( WINAPI
*ThumbBarAddButtons
)(ITaskbarList3
*This
, HWND hwnd
,
203 UINT cButtons
, LPTHUMBBUTTON pButton
);
205 long ( WINAPI
*ThumbBarUpdateButtons
)(ITaskbarList3
*This
, HWND hwnd
,
206 UINT cButtons
, LPTHUMBBUTTON pButton
);
208 long ( WINAPI
*ThumbBarSetImageList
)(ITaskbarList3
*This
, HWND hwnd
,
211 long ( WINAPI
*SetOverlayIcon
)(ITaskbarList3
*This
, HWND hwnd
,
212 HICON hIcon
, LPCWSTR pszDescription
);
214 long ( WINAPI
*SetThumbnailTooltip
)(ITaskbarList3
*This
, HWND hwnd
,
217 long ( WINAPI
*SetThumbnailClip
)(ITaskbarList3
*This
, HWND hwnd
,
222 #endif /* __cplusplus */
223 #endif /* __ITaskbarList3_INTERFACE_DEFINED__ */
225 /* mingw-w64 also fails to define these as of 2.0.1 */
228 # define THBN_CLICKED 0x1800
231 #ifndef __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
232 #define __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
233 const GUID IID_IApplicationAssociationRegistrationUI
= {0x1f76a169,0xf994,0x40ac, {0x8f,0xc8,0x09,0x59,0xe8,0x87,0x47,0x10}};
234 const GUID CLSID_ApplicationAssociationRegistrationUI
= { 0x1968106d,0xf3b5,0x44cf,{0x89,0x0e,0x11,0x6f,0xcb,0x9e,0xce,0xf1}};
237 interface IApplicationAssociationRegistrationUI
: public IUnknown
239 virtual HRESULT STDMETHODCALLTYPE
LaunchAdvancedAssociationUI(
240 LPCWSTR pszAppRegName
) = 0;
242 #endif /* __cplusplus */
243 #endif /* __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__ */
245 #endif //MINGW_WORKAROUNDS_H