aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-11-08 10:47:09 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-08 13:49:53 +0100
commit7317f4440a9af01feac7758afff8f98e9150dd62 (patch)
treea2b6101c2b9996e753dd1b8d489607958b9e5284
parentb6ca71cfb9889a784d3d9ee998974e89faf60bec (diff)
Prefix the various CLSID/IID symbols by 'q'.
Avoid clashes with the various MinGW libraries. Task-number: QTBUG-34638 Change-Id: I1fe0e1b79b52f887522c1c19a15bbdcb256fd917 Reviewed-by: Ivan Vizir <define-true-false@yandex.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
-rw-r--r--src/winextras/qwinfunctions.cpp5
-rw-r--r--src/winextras/qwinjumplist.cpp32
-rw-r--r--src/winextras/qwinjumplistcategory.cpp7
-rw-r--r--src/winextras/qwintaskbarbutton.cpp7
-rw-r--r--src/winextras/qwinthumbnailtoolbar.cpp7
-rw-r--r--src/winextras/windowsguidsdefs.cpp58
-rw-r--r--src/winextras/windowsguidsdefs_p.h82
-rw-r--r--src/winextras/winextras.pro3
-rw-r--r--src/winextras/winpropkey_p.h21
-rw-r--r--src/winextras/winshobjidl_p.h22
10 files changed, 162 insertions, 82 deletions
diff --git a/src/winextras/qwinfunctions.cpp b/src/winextras/qwinfunctions.cpp
index 8c6db87..3e62aff 100644
--- a/src/winextras/qwinfunctions.cpp
+++ b/src/winextras/qwinfunctions.cpp
@@ -43,6 +43,7 @@
#include "qwinfunctions.h"
#include "qwinfunctions_p.h"
#include "qwineventfilter_p.h"
+#include "windowsguidsdefs_p.h"
#include <QGuiApplication>
#include <QWindow>
@@ -1833,7 +1834,7 @@ void QtWin::setCurrentProcessExplicitAppUserModelID(const QString &id)
ITaskbarList3 *qt_createITaskbarList3()
{
ITaskbarList3 *pTbList = 0;
- HRESULT result = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, IID_ITaskbarList3, reinterpret_cast<void **>(&pTbList));
+ HRESULT result = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, qIID_ITaskbarList3, reinterpret_cast<void **>(&pTbList));
if (SUCCEEDED(result)) {
if (FAILED(pTbList->HrInit())) {
pTbList->Release();
@@ -1849,7 +1850,7 @@ ITaskbarList3 *qt_createITaskbarList3()
ITaskbarList2 *qt_createITaskbarList2()
{
ITaskbarList3 *pTbList = 0;
- HRESULT result = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, IID_ITaskbarList2, reinterpret_cast<void **>(&pTbList));
+ HRESULT result = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, qIID_ITaskbarList2, reinterpret_cast<void **>(&pTbList));
if (SUCCEEDED(result)) {
if (FAILED(pTbList->HrInit())) {
pTbList->Release();
diff --git a/src/winextras/qwinjumplist.cpp b/src/winextras/qwinjumplist.cpp
index 5d2020e..fa233a2 100644
--- a/src/winextras/qwinjumplist.cpp
+++ b/src/winextras/qwinjumplist.cpp
@@ -45,6 +45,8 @@
#include "qwinjumplistitem.h"
#include "qwinjumplistcategory.h"
#include "qwinjumplistcategory_p.h"
+#include "windowsguidsdefs_p.h"
+#include "winpropkey_p.h"
#include <QDir>
#include <QCoreApplication>
@@ -180,7 +182,7 @@ bool QWinJumpListPrivate::beginList()
if (SUCCEEDED(hresult)) {
UINT maxSlots = 0;
IUnknown *array = 0;
- hresult = pDestList->BeginList(&maxSlots, IID_IUnknown, reinterpret_cast<void **>(&array));
+ hresult = pDestList->BeginList(&maxSlots, qIID_IUnknown, reinterpret_cast<void **>(&array));
if (array)
array->Release();
}
@@ -235,7 +237,7 @@ QList<QWinJumpListItem *> QWinJumpListPrivate::fromComCollection(IObjectArray *a
array->GetCount(&count);
for (UINT i = 0; i < count; ++i) {
IUnknown *collectionItem = 0;
- HRESULT hresult = array->GetAt(i, IID_IUnknown, reinterpret_cast<void **>(&collectionItem));
+ HRESULT hresult = array->GetAt(i, qIID_IUnknown, reinterpret_cast<void **>(&collectionItem));
if (FAILED(hresult)) {
QWinJumpListPrivate::warning("GetAt", hresult);
continue;
@@ -243,10 +245,10 @@ QList<QWinJumpListItem *> QWinJumpListPrivate::fromComCollection(IObjectArray *a
IShellItem2 *shellItem = 0;
IShellLinkW *shellLink = 0;
QWinJumpListItem *jumplistItem = 0;
- if (SUCCEEDED(collectionItem->QueryInterface(IID_IShellItem2, reinterpret_cast<void **>(&shellItem)))) {
+ if (SUCCEEDED(collectionItem->QueryInterface(qIID_IShellItem2, reinterpret_cast<void **>(&shellItem)))) {
jumplistItem = fromIShellItem(shellItem);
shellItem->Release();
- } else if (SUCCEEDED(collectionItem->QueryInterface(IID_IShellLinkW, reinterpret_cast<void **>(&shellLink)))) {
+ } else if (SUCCEEDED(collectionItem->QueryInterface(qIID_IShellLinkW, reinterpret_cast<void **>(&shellLink)))) {
jumplistItem = fromIShellLink(shellLink);
shellLink->Release();
} else {
@@ -264,7 +266,7 @@ IObjectCollection *QWinJumpListPrivate::toComCollection(const QList<QWinJumpList
if (list.isEmpty())
return 0;
IObjectCollection *collection = 0;
- HRESULT hresult = CoCreateInstance(CLSID_EnumerableObjectCollection, 0, CLSCTX_INPROC_SERVER, IID_IObjectCollection, reinterpret_cast<void **>(&collection));
+ HRESULT hresult = CoCreateInstance(qCLSID_EnumerableObjectCollection, 0, CLSCTX_INPROC_SERVER, qIID_IObjectCollection, reinterpret_cast<void **>(&collection));
if (FAILED(hresult)) {
QWinJumpListPrivate::warning("QWinJumpList: failed to instantiate IObjectCollection", hresult);
return 0;
@@ -284,9 +286,9 @@ QWinJumpListItem *QWinJumpListPrivate::fromIShellLink(IShellLinkW *link)
QWinJumpListItem *item = new QWinJumpListItem(QWinJumpListItem::Link);
IPropertyStore *linkProps;
- link->QueryInterface(IID_IPropertyStore, reinterpret_cast<void **>(&linkProps));
+ link->QueryInterface(qIID_IPropertyStore, reinterpret_cast<void **>(&linkProps));
PROPVARIANT var;
- linkProps->GetValue(PKEY_Link_Arguments, &var);
+ linkProps->GetValue(qPKEY_Link_Arguments, &var);
item->setArguments(QStringList(QString::fromWCharArray(var.pwszVal)));
PropVariantClear(&var);
linkProps->Release();
@@ -334,7 +336,7 @@ IUnknown *QWinJumpListPrivate::toICustomDestinationListItem(const QWinJumpListIt
IShellLinkW *QWinJumpListPrivate::toIShellLink(const QWinJumpListItem *item)
{
IShellLinkW *link = 0;
- HRESULT hresult = CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER, IID_IShellLinkW, reinterpret_cast<void **>(&link));
+ HRESULT hresult = CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER, qIID_IShellLinkW, reinterpret_cast<void **>(&link));
if (FAILED(hresult)) {
QWinJumpListPrivate::warning("QWinJumpList: failed to instantiate IShellLinkW", hresult);
return 0;
@@ -372,7 +374,7 @@ IShellLinkW *QWinJumpListPrivate::toIShellLink(const QWinJumpListItem *item)
IPropertyStore *properties;
PROPVARIANT titlepv;
- hresult = link->QueryInterface(IID_IPropertyStore, reinterpret_cast<void **>(&properties));
+ hresult = link->QueryInterface(qIID_IPropertyStore, reinterpret_cast<void **>(&properties));
if (FAILED(hresult)) {
link->Release();
return 0;
@@ -380,7 +382,7 @@ IShellLinkW *QWinJumpListPrivate::toIShellLink(const QWinJumpListItem *item)
qt_qstringToNullTerminated(item->title(), buffer);
InitPropVariantFromString(buffer, &titlepv);
- properties->SetValue(PKEY_Title, titlepv);
+ properties->SetValue(qPKEY_Title, titlepv);
properties->Commit();
properties->Release();
PropVariantClear(&titlepv);
@@ -393,7 +395,7 @@ IShellItem2 *QWinJumpListPrivate::toIShellItem(const QWinJumpListItem *item)
{
IShellItem2 *shellitem = 0;
wchar_t *buffer = qt_qstringToNullTerminated(item->filePath());
- qt_SHCreateItemFromParsingName(buffer, 0, IID_IShellItem2, reinterpret_cast<void **>(&shellitem));
+ qt_SHCreateItemFromParsingName(buffer, 0, qIID_IShellItem2, reinterpret_cast<void **>(&shellitem));
delete[] buffer;
return shellitem;
}
@@ -401,12 +403,12 @@ IShellItem2 *QWinJumpListPrivate::toIShellItem(const QWinJumpListItem *item)
IShellLinkW *QWinJumpListPrivate::makeSeparatorShellItem()
{
IShellLinkW *separator;
- HRESULT res = CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER, IID_IShellLinkW, reinterpret_cast<void **>(&separator));
+ HRESULT res = CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER, qIID_IShellLinkW, reinterpret_cast<void **>(&separator));
if (FAILED(res))
return 0;
IPropertyStore *properties;
- res = separator->QueryInterface(IID_IPropertyStore, reinterpret_cast<void **>(&properties));
+ res = separator->QueryInterface(qIID_IPropertyStore, reinterpret_cast<void **>(&properties));
if (FAILED(res)) {
separator->Release();
return 0;
@@ -414,7 +416,7 @@ IShellLinkW *QWinJumpListPrivate::makeSeparatorShellItem()
PROPVARIANT isSeparator;
InitPropVariantFromBoolean(TRUE, &isSeparator);
- properties->SetValue(PKEY_AppUserModel_IsDestListSeparator, isSeparator);
+ properties->SetValue(qPKEY_AppUserModel_IsDestListSeparator, isSeparator);
properties->Commit();
properties->Release();
PropVariantClear(&isSeparator);
@@ -430,7 +432,7 @@ QWinJumpList::QWinJumpList(QObject *parent) :
{
Q_D(QWinJumpList);
d->q_ptr = this;
- HRESULT hresult = CoCreateInstance(CLSID_DestinationList, 0, CLSCTX_INPROC_SERVER, IID_ICustomDestinationList, reinterpret_cast<void **>(&d_ptr->pDestList));
+ HRESULT hresult = CoCreateInstance(qCLSID_DestinationList, 0, CLSCTX_INPROC_SERVER, qIID_ICustomDestinationList, reinterpret_cast<void **>(&d_ptr->pDestList));
if (FAILED(hresult))
QWinJumpListPrivate::warning("CoCreateInstance", hresult);
setIdentifier(defaultIdentifier());
diff --git a/src/winextras/qwinjumplistcategory.cpp b/src/winextras/qwinjumplistcategory.cpp
index 25b10a2..4ca815e 100644
--- a/src/winextras/qwinjumplistcategory.cpp
+++ b/src/winextras/qwinjumplistcategory.cpp
@@ -46,6 +46,7 @@
#include "qwinfunctions_p.h"
#include "qwinjumplist_p.h"
#include "winshobjidl_p.h"
+#include "windowsguidsdefs_p.h"
#include <shlobj.h>
@@ -98,7 +99,7 @@ void QWinJumpListCategoryPrivate::loadRecents()
{
Q_ASSERT(jumpList);
IApplicationDocumentLists *pDocList = 0;
- HRESULT hresult = CoCreateInstance(CLSID_ApplicationDocumentLists, 0, CLSCTX_INPROC_SERVER, IID_IApplicationDocumentLists, reinterpret_cast<void **>(&pDocList));
+ HRESULT hresult = CoCreateInstance(qCLSID_ApplicationDocumentLists, 0, CLSCTX_INPROC_SERVER, qIID_IApplicationDocumentLists, reinterpret_cast<void **>(&pDocList));
if (SUCCEEDED(hresult)) {
if (!jumpList->identifier().isEmpty()) {
wchar_t *id = qt_qstringToNullTerminated(jumpList->identifier());
@@ -108,7 +109,7 @@ void QWinJumpListCategoryPrivate::loadRecents()
if (SUCCEEDED(hresult)) {
IObjectArray *array = 0;
hresult = pDocList->GetList(type == QWinJumpListCategory::Recent ? ADLT_RECENT : ADLT_FREQUENT,
- 0, IID_IObjectArray, reinterpret_cast<void **>(&array));
+ 0, qIID_IObjectArray, reinterpret_cast<void **>(&array));
if (SUCCEEDED(hresult)) {
items = QWinJumpListPrivate::fromComCollection(array);
array->Release();
@@ -139,7 +140,7 @@ void QWinJumpListCategoryPrivate::addRecent(QWinJumpListItem *item)
void QWinJumpListCategoryPrivate::clearRecents()
{
IApplicationDestinations *pDest = 0;
- HRESULT hresult = CoCreateInstance(CLSID_ApplicationDestinations, 0, CLSCTX_INPROC_SERVER, IID_IApplicationDestinations, reinterpret_cast<void **>(&pDest));
+ HRESULT hresult = CoCreateInstance(qCLSID_ApplicationDestinations, 0, CLSCTX_INPROC_SERVER, qIID_IApplicationDestinations, reinterpret_cast<void **>(&pDest));
if (SUCCEEDED(hresult)) {
const QString identifier = jumpList ? jumpList->identifier() : QString();
if (!identifier.isEmpty()) {
diff --git a/src/winextras/qwintaskbarbutton.cpp b/src/winextras/qwintaskbarbutton.cpp
index 48a6bbc..27cbd43 100644
--- a/src/winextras/qwintaskbarbutton.cpp
+++ b/src/winextras/qwintaskbarbutton.cpp
@@ -48,6 +48,7 @@
#include "qwineventfilter_p.h"
#include "qwinevent.h"
#include "winshobjidl_p.h"
+#include "windowsguidsdefs_p.h"
#include <QWindow>
#include <QIcon>
@@ -96,16 +97,16 @@ static TBPFLAG nativeProgressState(QWinTaskbarProgress *progress)
QWinTaskbarButtonPrivate::QWinTaskbarButtonPrivate() : progressBar(0), pTbList(0), window(0)
{
- HRESULT hresult = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, IID_ITaskbarList4, reinterpret_cast<void **>(&pTbList));
+ HRESULT hresult = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, qIID_ITaskbarList4, reinterpret_cast<void **>(&pTbList));
if (FAILED(hresult)) {
pTbList = 0;
const QString err = QtWin::errorStringFromHresult(hresult);
- qWarning("QWinTaskbarButton: IID_ITaskbarList4 was not created: %#010x, %s.", (unsigned)hresult, qPrintable(err));
+ qWarning("QWinTaskbarButton: qIID_ITaskbarList4 was not created: %#010x, %s.", (unsigned)hresult, qPrintable(err));
} else if (FAILED(pTbList->HrInit())) {
pTbList->Release();
pTbList = 0;
const QString err = QtWin::errorStringFromHresult(hresult);
- qWarning("QWinTaskbarButton: IID_ITaskbarList4 was not initialized: %#010x, %s.", (unsigned)hresult, qPrintable(err));
+ qWarning("QWinTaskbarButton: qIID_ITaskbarList4 was not initialized: %#010x, %s.", (unsigned)hresult, qPrintable(err));
}
}
diff --git a/src/winextras/qwinthumbnailtoolbar.cpp b/src/winextras/qwinthumbnailtoolbar.cpp
index cc85b9c..c1f0f2c 100644
--- a/src/winextras/qwinthumbnailtoolbar.cpp
+++ b/src/winextras/qwinthumbnailtoolbar.cpp
@@ -44,6 +44,7 @@
#include "qwinthumbnailtoolbar_p.h"
#include "qwinthumbnailtoolbutton.h"
#include "qwinthumbnailtoolbutton_p.h"
+#include "windowsguidsdefs_p.h"
#include <QWindow>
#include <QCoreApplication>
@@ -215,10 +216,10 @@ void QWinThumbnailToolBar::clear()
static inline ITaskbarList4 *createTaskbarList()
{
ITaskbarList4 *result = 0;
- HRESULT hresult = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, IID_ITaskbarList4, reinterpret_cast<void **>(&result));
+ HRESULT hresult = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, qIID_ITaskbarList4, reinterpret_cast<void **>(&result));
if (FAILED(hresult)) {
const QString err = QtWin::errorStringFromHresult(hresult);
- qWarning("QWinThumbnailToolBar: IID_ITaskbarList4 was not created: %#010x, %s.",
+ qWarning("QWinThumbnailToolBar: qIID_ITaskbarList4 was not created: %#010x, %s.",
(unsigned)hresult, qPrintable(err));
return 0;
}
@@ -226,7 +227,7 @@ static inline ITaskbarList4 *createTaskbarList()
if (FAILED(hresult)) {
result->Release();
const QString err = QtWin::errorStringFromHresult(hresult);
- qWarning("QWinThumbnailToolBar: IID_ITaskbarList4 was not initialized: %#010x, %s.",
+ qWarning("QWinThumbnailToolBar: qIID_ITaskbarList4 was not initialized: %#010x, %s.",
(unsigned)hresult, qPrintable(err));
return 0;
}
diff --git a/src/winextras/windowsguidsdefs.cpp b/src/winextras/windowsguidsdefs.cpp
index 740cb84..73d9ec0 100644
--- a/src/winextras/windowsguidsdefs.cpp
+++ b/src/winextras/windowsguidsdefs.cpp
@@ -39,36 +39,36 @@
**
****************************************************************************/
-#include <QtGlobal>
-
-#include <qt_windows.h>
+#include "windowsguidsdefs_p.h"
#include "winpropkey_p.h"
#include "winshobjidl_p.h"
-// shobjidl.h from MinGW 4.7, shipped with Qt 5.0, does provide many of those, but is unable to link with them
-#if defined(Q_CC_MINGW) || _MSC_VER < 1600
-const GUID CLSID_DestinationList = {0x77f10cf0, 0x3db5, 0x4966, {0xb5,0x20,0xb7,0xc5,0x4f,0xd3,0x5e,0xd6}};
-const GUID CLSID_EnumerableObjectCollection = {0x2d3468c1, 0x36a7, 0x43b6, {0xac,0x24,0xd3,0xf0,0x2f,0xd9,0x60,0x7a}};
-const GUID IID_ICustomDestinationList = {0x6332debf, 0x87b5, 0x4670, {0x90,0xc0,0x5e,0x57,0xb4,0x08,0xa4,0x9e}};
-const GUID IID_IApplicationDestinations = {0x12337d35, 0x94c6, 0x48a0, {0xbc,0xe7,0x6a,0x9c,0x69,0xd4,0xd6,0x00}};
-const GUID CLSID_ApplicationDestinations = {0x86c14003, 0x4d6b, 0x4ef3, {0xa7,0xb4,0x05,0x06,0x66,0x3b,0x2e,0x68}};
-const GUID IID_IApplicationDocumentLists = {0x3c594f9f, 0x9f30, 0x47a1, {0x97,0x9a,0xc9,0xe8,0x3d,0x3d,0x0a,0x06}};
-const GUID CLSID_ApplicationDocumentLists = {0x86bec222, 0x30f2, 0x47e0, {0x9f,0x25,0x60,0xd1,0x1c,0xd7,0x5c,0x28}};
-const GUID IID_IObjectArray = {0x92ca9dcd, 0x5622, 0x4bba, {0xa8,0x05,0x5e,0x9f,0x54,0x1b,0xd8,0xc9}};
-const GUID IID_IObjectCollection = {0x5632b1a4, 0xe38a, 0x400a, {0x92,0x8a,0xd4,0xcd,0x63,0x23,0x02,0x95}};
-const GUID IID_IPropertyStore = {0x886d8eeb, 0x8cf2, 0x4446, {0x8d,0x02,0xcd,0xba,0x1d,0xbd,0xcf,0x99}};
-const GUID IID_ITaskbarList3 = {0xea1afb91, 0x9e28, 0x4b86, {0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}};
-const GUID IID_ITaskbarList4 = {0xc43dc798, 0x95d1, 0x4bea, {0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a}};
-const PROPERTYKEY PKEY_Title = {{0xf29f85e0, 0x4ff9, 0x1068, {0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9}}, 2};
-const PROPERTYKEY PKEY_Link_Arguments = {{0x436f2667, 0x14e2, 0x4feb, {0xb3,0x0a,0x14,0x6c,0x53,0xb5,0xb6,0x74}}, 100};
-const PROPERTYKEY PKEY_AppUserModel_IsDestListSeparator = {{0x9f4c2855, 0x9f79, 0x4b39, {0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3}}, 6};
-#endif
+QT_BEGIN_NAMESPACE
+
+// Some of these symbols are defined to varying extents in the various
+// MinGW versions. To avoid potential conflicts, we provide them prefixed with
+// 'q' in Qt's namespace.
+
+const GUID qCLSID_DestinationList = {0x77f10cf0, 0x3db5, 0x4966, {0xb5,0x20,0xb7,0xc5,0x4f,0xd3,0x5e,0xd6}};
+const GUID qCLSID_EnumerableObjectCollection = {0x2d3468c1, 0x36a7, 0x43b6, {0xac,0x24,0xd3,0xf0,0x2f,0xd9,0x60,0x7a}};
+const GUID qIID_ICustomDestinationList = {0x6332debf, 0x87b5, 0x4670, {0x90,0xc0,0x5e,0x57,0xb4,0x08,0xa4,0x9e}};
+const GUID qIID_IApplicationDestinations = {0x12337d35, 0x94c6, 0x48a0, {0xbc,0xe7,0x6a,0x9c,0x69,0xd4,0xd6,0x00}};
+const GUID qCLSID_ApplicationDestinations = {0x86c14003, 0x4d6b, 0x4ef3, {0xa7,0xb4,0x05,0x06,0x66,0x3b,0x2e,0x68}};
+const GUID qIID_IApplicationDocumentLists = {0x3c594f9f, 0x9f30, 0x47a1, {0x97,0x9a,0xc9,0xe8,0x3d,0x3d,0x0a,0x06}};
+const GUID qCLSID_ApplicationDocumentLists = {0x86bec222, 0x30f2, 0x47e0, {0x9f,0x25,0x60,0xd1,0x1c,0xd7,0x5c,0x28}};
+const GUID qIID_IObjectArray = {0x92ca9dcd, 0x5622, 0x4bba, {0xa8,0x05,0x5e,0x9f,0x54,0x1b,0xd8,0xc9}};
+const GUID qIID_IObjectCollection = {0x5632b1a4, 0xe38a, 0x400a, {0x92,0x8a,0xd4,0xcd,0x63,0x23,0x02,0x95}};
+const GUID qIID_IPropertyStore = {0x886d8eeb, 0x8cf2, 0x4446, {0x8d,0x02,0xcd,0xba,0x1d,0xbd,0xcf,0x99}};
+const GUID qIID_ITaskbarList3 = {0xea1afb91, 0x9e28, 0x4b86, {0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}};
+const GUID qIID_ITaskbarList4 = {0xc43dc798, 0x95d1, 0x4bea, {0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a}};
+const PROPERTYKEY qPKEY_Title = {{0xf29f85e0, 0x4ff9, 0x1068, {0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9}}, 2};
+const PROPERTYKEY qPKEY_Link_Arguments = {{0x436f2667, 0x14e2, 0x4feb, {0xb3,0x0a,0x14,0x6c,0x53,0xb5,0xb6,0x74}}, 100};
+const PROPERTYKEY qPKEY_AppUserModel_IsDestListSeparator = {{0x9f4c2855, 0x9f79, 0x4b39, {0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3}}, 6};
+const GUID qIID_IShellItem2 = {0x7e9fb0d3, 0x919f, 0x4307, {0xab,0x2e,0x9b,0x18,0x60,0x31,0x0c,0x93}};
+const GUID qIID_IShellLinkW = {0x000214f9, 0x0000, 0x0000, {0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};
+const GUID qIID_ITaskbarList = {0xea1afb91, 0x9e28, 0x4b86, {0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}};
+const GUID qIID_ITaskbarList2 = {0x602d4995, 0xb13a, 0x429b, {0xa6,0x6e,0x19,0x35,0xe4,0x4f,0x43,0x17}};
+const GUID qIID_IUnknown = {0x00000000, 0x0000, 0x0000, {0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};
+const GUID qGUID_NULL = {0x00000000, 0x0000, 0x0000, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
-#if defined(Q_CC_MINGW)
-const GUID IID_IShellItem2 = {0x7e9fb0d3, 0x919f, 0x4307, {0xab,0x2e,0x9b,0x18,0x60,0x31,0x0c,0x93}};
-const GUID IID_IShellLinkW = {0x000214f9, 0x0000, 0x0000, {0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};
-const GUID IID_ITaskbarList = {0xea1afb91, 0x9e28, 0x4b86, {0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}};
-const GUID IID_ITaskbarList2 = {0x602d4995, 0xb13a, 0x429b, {0xa6,0x6e,0x19,0x35,0xe4,0x4f,0x43,0x17}};
-const GUID IID_IUnknown = {0x00000000, 0x0000, 0x0000, {0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};
-const GUID GUID_NULL = {0x00000000, 0x0000, 0x0000, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
-#endif
+QT_END_NAMESPACE
diff --git a/src/winextras/windowsguidsdefs_p.h b/src/winextras/windowsguidsdefs_p.h
new file mode 100644
index 0000000..e66df96
--- /dev/null
+++ b/src/winextras/windowsguidsdefs_p.h
@@ -0,0 +1,82 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
+ ** Contact: http://www.qt-project.org/legal
+ **
+ ** This file is part of the QtWinExtras module of 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 WINDOWSGUIDSDEFS_P_H
+#define WINDOWSGUIDSDEFS_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of QtWinExtras. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtGlobal>
+#include <qt_windows.h>
+
+QT_BEGIN_NAMESPACE
+
+extern const GUID qCLSID_DestinationList;
+extern const GUID qCLSID_EnumerableObjectCollection;
+extern const GUID qIID_ICustomDestinationList;
+extern const GUID qIID_IApplicationDestinations;
+extern const GUID qCLSID_ApplicationDestinations;
+extern const GUID qIID_IApplicationDocumentLists;
+extern const GUID qCLSID_ApplicationDocumentLists;
+extern const GUID qIID_IObjectArray;
+extern const GUID qIID_IObjectCollection;
+extern const GUID qIID_IPropertyStore;
+extern const GUID qIID_ITaskbarList3;
+extern const GUID qIID_ITaskbarList4;
+extern const GUID qIID_IShellItem2;
+extern const GUID qIID_IShellLinkW;
+extern const GUID qIID_ITaskbarList;
+extern const GUID qIID_ITaskbarList2;
+extern const GUID qIID_IUnknown;
+extern const GUID qGUID_NULL;
+
+QT_END_NAMESPACE
+
+#endif // WINDOWSGUIDSDEFS_P_H
diff --git a/src/winextras/winextras.pro b/src/winextras/winextras.pro
index b43700f..5b9bbe7 100644
--- a/src/winextras/winextras.pro
+++ b/src/winextras/winextras.pro
@@ -36,7 +36,8 @@ HEADERS += \
qwinthumbnailtoolbar_p.h \
qwinthumbnailtoolbutton.h \
qwinthumbnailtoolbutton_p.h \
- qwinevent.h
+ qwinevent.h \
+ windowsguidsdefs_p.h
QMAKE_DOCS = $$PWD/doc/qtwinextras.qdocconf
diff --git a/src/winextras/winpropkey_p.h b/src/winextras/winpropkey_p.h
index 12e40a1..b58960d 100644
--- a/src/winextras/winpropkey_p.h
+++ b/src/winextras/winpropkey_p.h
@@ -42,13 +42,26 @@
#ifndef WINPROPKEY_P_H
#define WINPROPKEY_P_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of QtWinExtras. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtGlobal>
#include <propkey.h>
-#if _MSC_VER < 1600 || defined(Q_CC_MINGW)
+QT_BEGIN_NAMESPACE
-extern const PROPERTYKEY PKEY_AppUserModel_IsDestListSeparator;
-extern const PROPERTYKEY PKEY_Link_Arguments;
+extern const PROPERTYKEY qPKEY_Title;
+extern const PROPERTYKEY qPKEY_AppUserModel_IsDestListSeparator;
+extern const PROPERTYKEY qPKEY_Link_Arguments;
-#endif
+QT_END_NAMESPACE
#endif // WINPROPKEY_P_H
diff --git a/src/winextras/winshobjidl_p.h b/src/winextras/winshobjidl_p.h
index 7d1085d..91faed5 100644
--- a/src/winextras/winshobjidl_p.h
+++ b/src/winextras/winshobjidl_p.h
@@ -47,8 +47,6 @@
#ifndef __ITaskbarList_INTERFACE_DEFINED__
#define __ITaskbarList_INTERFACE_DEFINED__
-extern const GUID IID_ITaskbarList;
-
struct ITaskbarList : IUnknown
{
virtual HRESULT STDMETHODCALLTYPE HrInit() = 0;
@@ -63,8 +61,6 @@ struct ITaskbarList : IUnknown
#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;
@@ -75,8 +71,6 @@ struct ITaskbarList2 : ITaskbarList
#ifndef __ITaskbarList3_INTERFACE_DEFINED__
#define __ITaskbarList3_INTERFACE_DEFINED__
-extern const GUID IID_ITaskbarList3;
-
enum THUMBBUTTONMASK {
THB_BITMAP = 0x00000001,
THB_ICON = 0x00000002,
@@ -140,8 +134,6 @@ struct ITaskbarList3 : ITaskbarList2
#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;
@@ -152,9 +144,6 @@ struct ITaskbarList4 : ITaskbarList3
#ifndef __IObjectArray_INTERFACE_DEFINED__
#define __IObjectArray_INTERFACE_DEFINED__
-extern const GUID CLSID_EnumerableObjectCollection;
-extern const GUID IID_IObjectArray;
-
struct IObjectArray : IUnknown
{
public:
@@ -167,8 +156,6 @@ public:
#ifndef __IObjectCollection_INTERFACE_DEFINED__
#define __IObjectCollection_INTERFACE_DEFINED__
-extern const GUID IID_IObjectCollection;
-
struct IObjectCollection : IObjectArray
{
public:
@@ -188,9 +175,6 @@ enum KNOWNDESTCATEGORY {
KDC_RECENT
};
-extern const GUID IID_ICustomDestinationList;
-extern const GUID CLSID_DestinationList;
-
struct ICustomDestinationList : IUnknown
{
public:
@@ -215,9 +199,6 @@ enum APPDOCLISTTYPE {
ADLT_FREQUENT
};
-extern const GUID IID_IApplicationDocumentLists;
-extern const GUID CLSID_ApplicationDocumentLists;
-
struct IApplicationDocumentLists : public IUnknown
{
public:
@@ -229,9 +210,6 @@ public:
#ifndef __IApplicationDestinations_INTERFACE_DEFINED__
#define __IApplicationDestinations_INTERFACE_DEFINED__
-extern const GUID IID_IApplicationDestinations;
-extern const GUID CLSID_ApplicationDestinations;
-
struct IApplicationDestinations : public IUnknown
{
public: