diff --git a/src/winextras/qjumplist.cpp b/src/winextras/qjumplist.cpp index f92f40d374f146d7ee776f8c32360800cc40359f..f211ccaff16ffed6af7808444e7f04e9cc1faa5f 100644 --- a/src/winextras/qjumplist.cpp +++ b/src/winextras/qjumplist.cpp @@ -251,8 +251,8 @@ public: static void warning(const char *function, HRESULT hresult) { - QByteArray err = QWinExtras::errorStringFromHresult(hresult).toLocal8Bit(); - qWarning("QJumpList: %s() failed: %#010x, %s.", function, (unsigned)hresult, err.data()); + const QString err = QWinExtras::errorStringFromHresult(hresult); + qWarning("QJumpList: %s() failed: %#010x, %s.", function, (unsigned)hresult, qPrintable(err)); } static QString iconsDirPath() @@ -330,8 +330,8 @@ public: IObjectCollection *collection = 0; HRESULT hresult = CoCreateInstance(CLSID_EnumerableObjectCollection, 0, CLSCTX_INPROC_SERVER, IID_IObjectCollection, reinterpret_cast<void **>(&collection)); if (FAILED(hresult)) { - QByteArray err = QWinExtras::errorStringFromHresult(hresult).toLocal8Bit(); - qWarning("QJumpList: failed to instantiate IObjectCollection: %#010x, %s.", (unsigned)hresult, err.data()); + const QString err = QWinExtras::errorStringFromHresult(hresult); + qWarning("QJumpList: failed to instantiate IObjectCollection: %#010x, %s.", (unsigned)hresult, qPrintable(err)); return 0; } Q_FOREACH (QJumpListItem *item, list) { @@ -426,8 +426,8 @@ public: IShellLinkW *link = 0; HRESULT hresult = CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER, IID_IShellLinkW, reinterpret_cast<void **>(&link)); if (FAILED(hresult)) { - QByteArray err = QWinExtras::errorStringFromHresult(hresult).toLocal8Bit(); - qWarning("QJumpList: failed to instantiate IShellLinkW: %#010x, %s.", (unsigned)hresult, err.data()); + const QString err = QWinExtras::errorStringFromHresult(hresult); + qWarning("QJumpList: failed to instantiate IShellLinkW: %#010x, %s.", (unsigned)hresult, qPrintable(err)); return 0; } diff --git a/src/winextras/qwintaskbarbutton.cpp b/src/winextras/qwintaskbarbutton.cpp index e7e1db15c0a27a5a9e5cc320a7abf84ad7554e0d..55cd3ae46184a94e392549dc7d6e18bf2057a4b9 100644 --- a/src/winextras/qwintaskbarbutton.cpp +++ b/src/winextras/qwintaskbarbutton.cpp @@ -287,13 +287,13 @@ QWinTaskbarButtonPrivate::QWinTaskbarButtonPrivate(QWinTaskbarButton *parent) : HRESULT hresult = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, IID_ITaskbarList4, reinterpret_cast<void **>(&pTbList)); if (FAILED(hresult)) { pTbList = 0; - QByteArray err = QWinExtras::errorStringFromHresult(hresult).toLocal8Bit(); - qWarning("QWinTaskbarButton: IID_ITaskbarList4 was not created: %#010x, %s.", (unsigned)hresult, err.data()); + const QString err = QWinExtras::errorStringFromHresult(hresult); + qWarning("QWinTaskbarButton: IID_ITaskbarList4 was not created: %#010x, %s.", (unsigned)hresult, qPrintable(err)); } else if (FAILED(pTbList->HrInit())) { pTbList->Release(); pTbList = 0; - QByteArray err = QWinExtras::errorStringFromHresult(hresult).toLocal8Bit(); - qWarning("QWinTaskbarButton: IID_ITaskbarList4 was not initialized: %#010x, %s.", (unsigned)hresult, err.data()); + const QString err = QWinExtras::errorStringFromHresult(hresult); + qWarning("QWinTaskbarButton: IID_ITaskbarList4 was not initialized: %#010x, %s.", (unsigned)hresult, qPrintable(err)); } } @@ -309,7 +309,7 @@ HWND QWinTaskbarButtonPrivate::handle() int QWinTaskbarButtonPrivate::iconSize() const { - return GetSystemMetrics(SM_CXICON); + return GetSystemMetrics(SM_CXSMICON); } TBPFLAG QWinTaskbarButtonPrivate::nativeProgressState(QWinTaskbarButton::ProgressState state) @@ -337,11 +337,13 @@ void QWinTaskbarButtonPrivate::updateOverlayIcon() descrPtr = new wchar_t[overlayIconDescription.length() + 1]; descrPtr[overlayIconDescription.toWCharArray(descrPtr)] = 0; } - if (!overlayIcon.isNull()) { + if (!overlayIcon.isNull()) hicon = QWinExtras::toHICON(overlayIcon.pixmap(iconSize())); - } - pTbList->SetOverlayIcon(handle(), hicon, descrPtr); + if (hicon) + pTbList->SetOverlayIcon(handle(), hicon, descrPtr); + else if (!hicon && !overlayIcon.isNull()) + pTbList->SetOverlayIcon(handle(), (HICON)LoadImage(0, IDI_APPLICATION, IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, LR_SHARED), descrPtr); if (hicon) DeleteObject(hicon);