aboutsummaryrefslogtreecommitdiffstats
path: root/src/winextras/winshobjidl_p.h
diff options
context:
space:
mode:
authorIvan Vizir <define-true-false@yandex.com>2013-03-10 13:16:46 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-01 15:56:14 +0200
commit8f3d85814ac5df01a4b633955d1f7f317248fdca (patch)
treea6fe11a1abad2d68d2558d8c440570f081652f4d /src/winextras/winshobjidl_p.h
parent447815121b25c2de61eba8446ad5db57ae739b50 (diff)
Jump Lists, overlay icon, progress indicator, DWM.
Implemented the most widely used features and QML wrappers for them. Change-Id: I0ac1b174b7f4eb355d097e71255e8d123141b369 Reviewed-by: Ivan Vizir <define-true-false@yandex.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'src/winextras/winshobjidl_p.h')
-rw-r--r--src/winextras/winshobjidl_p.h210
1 files changed, 210 insertions, 0 deletions
diff --git a/src/winextras/winshobjidl_p.h b/src/winextras/winshobjidl_p.h
new file mode 100644
index 0000000..2e8a2d1
--- /dev/null
+++ b/src/winextras/winshobjidl_p.h
@@ -0,0 +1,210 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
+ ** Contact: http://www.qt-project.org/legal
+ **
+ ** This file is part of QtWinExtras in the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** Commercial License Usage
+ ** Licensees holding valid commercial Qt licenses may use this file in
+ ** accordance with the commercial license agreement provided with the
+ ** Software or, alternatively, in accordance with the terms contained in
+ ** a written agreement between you and Digia. For licensing terms and
+ ** conditions see http://qt.digia.com/licensing. For further information
+ ** use the contact form at http://qt.digia.com/contact-us.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Digia gives you certain additional
+ ** rights. These rights are described in the Digia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** GNU General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU
+ ** General Public License version 3.0 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.GPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU General Public License version 3.0 requirements will be
+ ** met: http://www.gnu.org/copyleft/gpl.html.
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#ifndef ITASKBARLIST_H
+#define ITASKBARLIST_H
+
+#include <shobjidl.h>
+
+#ifndef __ITaskbarList_INTERFACE_DEFINED__
+#define __ITaskbarList_INTERFACE_DEFINED__
+
+extern const GUID IID_ITaskbarList;
+
+struct ITaskbarList : IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE HrInit() = 0;
+ virtual HRESULT STDMETHODCALLTYPE AddTab(HWND hwnd) = 0;
+ virtual HRESULT STDMETHODCALLTYPE DeleteTab(HWND hwnd) = 0;
+ virtual HRESULT STDMETHODCALLTYPE ActivateTab(HWND hwnd) = 0;
+ virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(HWND hwnd) = 0;
+};
+
+#endif
+
+#ifndef __ITaskbarList2_INTERFACE_DEFINED__
+#define __ITaskbarList2_INTERFACE_DEFINED__
+
+extern const GUID IID_ITaskbarList2;
+
+struct ITaskbarList2 : ITaskbarList
+{
+ virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(HWND hwnd, BOOL fullscreen) = 0;
+};
+
+#endif
+
+#ifndef __ITaskbarList3_INTERFACE_DEFINED__
+#define __ITaskbarList3_INTERFACE_DEFINED__
+
+extern const GUID IID_ITaskbarList3;
+
+enum THUMBBUTTONMASK {
+ THB_BITMAP = 0x00000001,
+ THB_ICON = 0x00000002,
+ THB_TOOLTIP = 0x00000004,
+ THB_FLAGS = 0x00000008
+};
+
+enum THUMBBUTTONFLAGS {
+ THBF_ENABLED = 0x00000000,
+ THBF_DISABLED = 0x00000001,
+ THBF_DISMISSONCLICK = 0x00000002,
+ THBF_NOBACKGROUND = 0x00000004,
+ THBF_HIDDEN = 0x00000008,
+ THBF_NONINTERACTIVE = 0x00000010
+};
+
+enum TBPFLAG {
+ TBPF_NOPROGRESS = 0x00000000,
+ TBPF_INDETERMINATE = 0x00000001,
+ TBPF_NORMAL = 0x00000002,
+ TBPF_ERROR = 0x00000004,
+ TBPF_PAUSED = 0x00000008
+};
+
+enum STPFLAG {
+ STPF_NONE = 0x00000000,
+ STPF_USEAPPTHUMBNAILALWAYS = 0x00000001,
+ STPF_USEAPPTHUMBNAILWHENACTIVE = 0x00000002,
+ STPF_USEAPPPEEKALWAYS = 0x00000004,
+ STPF_USEAPPPEEKWHENACTIVE = 0x00000008
+};
+
+struct THUMBBUTTON
+{
+ THUMBBUTTONMASK dwMask;
+ UINT iId;
+ UINT iBitmap;
+ HICON hIcon;
+ WCHAR szTip[260];
+ THUMBBUTTONFLAGS dwFlags;
+};
+
+struct ITaskbarList3 : ITaskbarList2
+{
+ virtual HRESULT STDMETHODCALLTYPE SetProgressValue(HWND hwnd, ULONGLONG completed, ULONGLONG total) = 0;
+ virtual HRESULT STDMETHODCALLTYPE SetProgressState(HWND hwnd, TBPFLAG tbpFlags) = 0;
+ virtual HRESULT STDMETHODCALLTYPE RegisterTab(HWND tab, HWND window) = 0;
+ virtual HRESULT STDMETHODCALLTYPE UnregisterTab(HWND tab) = 0;
+ virtual HRESULT STDMETHODCALLTYPE SetTabOrder(HWND tab, HWND insertBefore) = 0;
+ virtual HRESULT STDMETHODCALLTYPE SetTabActive(HWND tab, HWND window, DWORD reserved = 0) = 0;
+ virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(HWND hwnd, UINT count, THUMBBUTTON buttons) = 0;
+ virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(HWND hwnd, UINT count, THUMBBUTTON *buttons) = 0;
+ virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(HWND hwnd, HIMAGELIST imglist) = 0;
+ virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(HWND hwnd, HICON icon, LPCWSTR description) = 0;
+ virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(HWND hwnd, LPCWSTR tooltip) = 0;
+ virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(HWND hwnd, RECT *clip) = 0;
+};
+
+#endif
+
+#ifndef __ITaskbarList4_INTERFACE_DEFINED__
+#define __ITaskbarList4_INTERFACE_DEFINED__
+
+extern const GUID IID_ITaskbarList4;
+
+struct ITaskbarList4 : ITaskbarList3
+{
+ virtual HRESULT STDMETHODCALLTYPE SetTabProperties(HWND tab, STPFLAG flags) = 0;
+};
+
+#endif
+
+#ifndef __IObjectArray_INTERFACE_DEFINED__
+#define __IObjectArray_INTERFACE_DEFINED__
+
+extern const GUID CLSID_EnumerableObjectCollection;
+extern const GUID IID_IObjectArray;
+
+struct IObjectArray : IUnknown
+{
+public:
+ virtual HRESULT STDMETHODCALLTYPE GetCount(UINT *count) = 0;
+ virtual HRESULT STDMETHODCALLTYPE GetAt(UINT index, REFIID iid, void **ppv) = 0;
+};
+
+#endif
+
+#ifndef __IObjectCollection_INTERFACE_DEFINED__
+#define __IObjectCollection_INTERFACE_DEFINED__
+
+extern const GUID IID_IObjectCollection;
+
+struct IObjectCollection : IObjectArray
+{
+public:
+ virtual HRESULT STDMETHODCALLTYPE AddObject(IUnknown *punk) = 0;
+ virtual HRESULT STDMETHODCALLTYPE AddFromArray(IObjectArray *poaSource) = 0;
+ virtual HRESULT STDMETHODCALLTYPE RemoveObjectAt(UINT uiIndex) = 0;
+ virtual HRESULT STDMETHODCALLTYPE Clear() = 0;
+};
+
+#endif
+
+#ifndef __ICustomDestinationList_INTERFACE_DEFINED__
+#define __ICustomDestinationList_INTERFACE_DEFINED__
+
+enum KNOWNDESTCATEGORY {
+ KDC_FREQUENT = 1,
+ KDC_RECENT
+};
+
+extern const GUID IID_ICustomDestinationList;
+extern const GUID CLSID_DestinationList;
+
+struct ICustomDestinationList : IUnknown
+{
+public:
+ virtual HRESULT STDMETHODCALLTYPE SetAppID(LPCWSTR pszAppID) = 0;
+ virtual HRESULT STDMETHODCALLTYPE BeginList(UINT *pcMinSlots, REFIID riid, void **ppv) = 0;
+ virtual HRESULT STDMETHODCALLTYPE AppendCategory(LPCWSTR pszCategory, IObjectArray *poa) = 0;
+ virtual HRESULT STDMETHODCALLTYPE AppendKnownCategory(KNOWNDESTCATEGORY category) = 0;
+ virtual HRESULT STDMETHODCALLTYPE AddUserTasks(IObjectArray *poa) = 0;
+ virtual HRESULT STDMETHODCALLTYPE CommitList() = 0;
+ virtual HRESULT STDMETHODCALLTYPE GetRemovedDestinations(REFIID riid, void **ppv) = 0;
+ virtual HRESULT STDMETHODCALLTYPE DeleteList(LPCWSTR pszAppID) = 0;
+ virtual HRESULT STDMETHODCALLTYPE AbortList() = 0;
+};
+
+#endif
+
+#endif // ITASKBARLIST_H