diff --git a/src/Config.h b/src/Config.h index 8388e6a6..635c082e 100644 --- a/src/Config.h +++ b/src/Config.h @@ -34,7 +34,7 @@ #define VER_LAMEXP_MINOR_LO 9 #define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_PATCH 1 -#define VER_LAMEXP_BUILD 1350 +#define VER_LAMEXP_BUILD 1357 #define VER_LAMEXP_CONFG 1348 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/Decoder_Wave.cpp b/src/Decoder_Wave.cpp index 2cb4967d..a1adc24d 100644 --- a/src/Decoder_Wave.cpp +++ b/src/Decoder_Wave.cpp @@ -26,6 +26,11 @@ #include #include #include + +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include #include #define FIX_SEPARATORS(STR) for(int i = 0; STR[i]; i++) { if(STR[i] == L'/') STR[i] = L'\\'; } diff --git a/src/Dialog_About.cpp b/src/Dialog_About.cpp index e8bdf81d..35312f27 100644 --- a/src/Dialog_About.cpp +++ b/src/Dialog_About.cpp @@ -27,6 +27,8 @@ #include "Resource.h" #include "Model_Settings.h" +#include + #include #include #include @@ -45,9 +47,12 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include #include #include -#include //Helper macros #define LINK(URL) QString("%2").arg(URL).arg(QString(URL).replace("-", "−")) diff --git a/src/Dialog_LogView.cpp b/src/Dialog_LogView.cpp index 81765c0d..ec70fdf6 100644 --- a/src/Dialog_LogView.cpp +++ b/src/Dialog_LogView.cpp @@ -33,6 +33,11 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + LogViewDialog::LogViewDialog(QWidget *parent) : QDialog(parent), diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp index b41fda45..295fede9 100644 --- a/src/Dialog_MainWindow.cpp +++ b/src/Dialog_MainWindow.cpp @@ -73,7 +73,10 @@ #include #include -//System includes +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include #include #include diff --git a/src/Dialog_Processing.cpp b/src/Dialog_Processing.cpp index 696ecf70..3ddb4c7b 100644 --- a/src/Dialog_Processing.cpp +++ b/src/Dialog_Processing.cpp @@ -61,7 +61,12 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include #include + #include #include diff --git a/src/Dialog_SplashScreen.cpp b/src/Dialog_SplashScreen.cpp index c1b02ee3..e79af7af 100644 --- a/src/Dialog_SplashScreen.cpp +++ b/src/Dialog_SplashScreen.cpp @@ -28,6 +28,11 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + #include "WinSevenTaskbar.h" #define FADE_DELAY 16 diff --git a/src/Dialog_Update.cpp b/src/Dialog_Update.cpp index 615f53ca..403e4a05 100644 --- a/src/Dialog_Update.cpp +++ b/src/Dialog_Update.cpp @@ -44,7 +44,10 @@ #include #include -//Win32 includes +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include #include #include diff --git a/src/Encoder_Wave.cpp b/src/Encoder_Wave.cpp index bb44673b..0a9c85da 100644 --- a/src/Encoder_Wave.cpp +++ b/src/Encoder_Wave.cpp @@ -25,6 +25,11 @@ #include "Model_Settings.h" #include + +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include #include #define FIX_SEPARATORS(STR) for(int i = 0; STR[i]; i++) { if(STR[i] == L'/') STR[i] = L'\\'; } diff --git a/src/Global.cpp b/src/Global.cpp index e761a328..7ad88cbb 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -21,6 +21,11 @@ #include "Global.h" +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + //Qt includes #include #include @@ -2635,7 +2640,7 @@ static const HANDLE g_debug_thread = LAMEXP_DEBUG ? NULL : lamexp_debug_thread_i /* * Get number private bytes [debug only] */ -SIZE_T lamexp_dbg_private_bytes(void) +unsigned long lamexp_dbg_private_bytes(void) { #if LAMEXP_DEBUG for(int i = 0; i < 8; i++) _heapmin(); diff --git a/src/Global.h b/src/Global.h index d0f22c7a..d9f04321 100644 --- a/src/Global.h +++ b/src/Global.h @@ -29,11 +29,6 @@ #include #include -//Windows includes -#define NOMINMAX -#define WIN32_LEAN_AND_MEAN -#include - //Visual Leaks Detector #include @@ -118,7 +113,6 @@ bool lamexp_detect_wine(void); void lamexp_init_console(const QStringList &argv); bool lamexp_init_qt(int argc, char* argv[]); int lamexp_init_ipc(void); -LONG WINAPI lamexp_exception_handler(__in struct _EXCEPTION_POINTERS *ExceptionInfo); void lamexp_invalid_param_handler(const wchar_t*, const wchar_t*, const wchar_t*, unsigned int, uintptr_t); void lamexp_message_handler(QtMsgType type, const char *msg); void lamexp_register_tool(const QString &toolName, LockedFile *file, unsigned int version = 0, const QString *tag = NULL); @@ -166,7 +160,7 @@ void lamexp_natural_string_sort(QStringList &list, const bool bIgnoreCase); void lamexp_fatal_exit(const wchar_t* exitMessage, const wchar_t* errorBoxMessage = NULL); //Debug-only functions -SIZE_T lamexp_dbg_private_bytes(void); +unsigned long lamexp_dbg_private_bytes(void); //Helper macros #define LAMEXP_DELETE(PTR) do { if(PTR) { delete PTR; PTR = NULL; } } while(0) @@ -184,13 +178,6 @@ SIZE_T lamexp_dbg_private_bytes(void); #define LAMEXP_COMPILER_WARNING(TXT) __pragma(message(__FILE__ "(" LAMEXP_MAKE_STRING(__LINE__) ") : warning: " TXT)) #define NOBR(STR) (QString("%1").arg((STR)).replace("-", "−")) -//Output Qt debug message (Unicode-safe versions) -/* -#define qDebug64(FORMAT, ...) qDebug("@BASE64@%s", QString(FORMAT).arg(__VA_ARGS__).toUtf8().toBase64().constData()); -#define qWarning64(FORMAT, ...) qWarning("@BASE64@%s", QString(FORMAT).arg(__VA_ARGS__).toUtf8().toBase64().constData()); -#define qFatal64(FORMAT, ...) qFatal("@BASE64@%s", QString(FORMAT).arg(__VA_ARGS__).toUtf8().toBase64().constData()); -*/ - //Check for debug build #if defined(_DEBUG) && defined(QT_DEBUG) && !defined(NDEBUG) && !defined(QT_NO_DEBUG) #define LAMEXP_DEBUG (1) diff --git a/src/LockedFile.cpp b/src/LockedFile.cpp index 23603ab9..588f07bc 100644 --- a/src/LockedFile.cpp +++ b/src/LockedFile.cpp @@ -33,6 +33,11 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + /////////////////////////////////////////////////////////////////////////////// #define THROW(STR) \ diff --git a/src/Main.cpp b/src/Main.cpp index 0151b4d1..4e92a620 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -39,6 +39,11 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + /////////////////////////////////////////////////////////////////////////////// // Main function /////////////////////////////////////////////////////////////////////////////// @@ -216,6 +221,8 @@ static int lamexp_main(int argc, char* argv[]) // Applicaton entry point /////////////////////////////////////////////////////////////////////////////// +LONG WINAPI lamexp_exception_handler(__in struct _EXCEPTION_POINTERS *ExceptionInfo); + static int _main(int argc, char* argv[]) { if(LAMEXP_DEBUG) diff --git a/src/Model_CueSheet.cpp b/src/Model_CueSheet.cpp index c2e18d00..ee204ff0 100644 --- a/src/Model_CueSheet.cpp +++ b/src/Model_CueSheet.cpp @@ -31,6 +31,11 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + #include #include diff --git a/src/Model_FileSystem.cpp b/src/Model_FileSystem.cpp index 704af99c..3f138830 100644 --- a/src/Model_FileSystem.cpp +++ b/src/Model_FileSystem.cpp @@ -27,6 +27,11 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + #define IS_DIR(ATTR) (((ATTR) & FILE_ATTRIBUTE_DIRECTORY) && (!((ATTR) & FILE_ATTRIBUTE_HIDDEN))) #define NO_DOT_OR_DOTDOT(STR) (wcscmp((STR), L".") && wcscmp((STR), L"..")) diff --git a/src/Model_Settings.cpp b/src/Model_Settings.cpp index 226e2fa5..ada5a767 100644 --- a/src/Model_Settings.cpp +++ b/src/Model_Settings.cpp @@ -39,6 +39,11 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + //////////////////////////////////////////////////////////// // SettingsCache Class //////////////////////////////////////////////////////////// diff --git a/src/PlaylistImporter.cpp b/src/PlaylistImporter.cpp index 3d661f10..f8bab664 100644 --- a/src/PlaylistImporter.cpp +++ b/src/PlaylistImporter.cpp @@ -62,12 +62,6 @@ bool PlaylistImporter::importPlaylist(QStringList &fileList, const QString &play QDir rootDir(baseDir); while(rootDir.cdUp()); - - //Sanity check - if(file.size() < 3 || file.size() > 512000) - { - return false; - } //Detect playlist type playlist_t playlistType = isPlaylist(file.canonicalFilePath()); @@ -87,7 +81,7 @@ bool PlaylistImporter::importPlaylist(QStringList &fileList, const QString &play } //Skip very large files (parsing could take very long) - if(data.size() >= 10485760i64) + if((file.size() < 3) || (file.size() > 524288)) { qWarning("File is very big. Probably not a Playlist. Rejecting..."); return false; @@ -222,7 +216,7 @@ bool PlaylistImporter::parsePlaylist_m3u(QFile &data, QStringList &fileList, con } } - return true; + return foundAtLeastOneFile; } bool PlaylistImporter::parsePlaylist_pls(QFile &data, QStringList &fileList, const QDir &baseDir, const QDir &rootDir) @@ -306,11 +300,13 @@ bool PlaylistImporter::parsePlaylist_pls(QFile &data, QStringList &fileList, con } } - return true; + return foundAtLeastOneFile; } bool PlaylistImporter::parsePlaylist_wpl(QFile &data, QStringList &fileList, const QDir &baseDir, const QDir &rootDir) { + bool foundAtLeastOneFile = false; + QRegExp skipData("", Qt::CaseInsensitive); QRegExp wplEntry("<(media|ref)[^<>]*(src|href)=\"([^\"]+)\"[^<>]*>", Qt::CaseInsensitive); @@ -340,11 +336,12 @@ bool PlaylistImporter::parsePlaylist_wpl(QFile &data, QStringList &fileList, con if(isPlaylist(filename.canonicalFilePath()) == notPlaylist) { fileList << filename.canonicalFilePath(); + foundAtLeastOneFile = true; } } } - return true; + return foundAtLeastOneFile; } void PlaylistImporter::fixFilePath(QFileInfo &filename, const QDir &baseDir, const QDir &rootDir) diff --git a/src/Thread_CPUObserver.cpp b/src/Thread_CPUObserver.cpp index 61ff6676..f4a11ba0 100644 --- a/src/Thread_CPUObserver.cpp +++ b/src/Thread_CPUObserver.cpp @@ -25,6 +25,11 @@ #include #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + //////////////////////////////////////////////////////////// typedef enum { SystemProcInfo = 8 } SYSTEM_INFO_CLASS; diff --git a/src/Thread_MessageHandler.cpp b/src/Thread_MessageHandler.cpp index 7662d2bf..3f0e8d3d 100644 --- a/src/Thread_MessageHandler.cpp +++ b/src/Thread_MessageHandler.cpp @@ -29,6 +29,11 @@ #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + //////////////////////////////////////////////////////////// // Constructor //////////////////////////////////////////////////////////// diff --git a/src/Thread_RAMObserver.cpp b/src/Thread_RAMObserver.cpp index 8aecb83b..0bbb1520 100644 --- a/src/Thread_RAMObserver.cpp +++ b/src/Thread_RAMObserver.cpp @@ -24,6 +24,11 @@ #include +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include + //////////////////////////////////////////////////////////// // Constructor & Destructor //////////////////////////////////////////////////////////// diff --git a/src/Tool_Abstract.cpp b/src/Tool_Abstract.cpp index 2d157b3e..bc6748c2 100644 --- a/src/Tool_Abstract.cpp +++ b/src/Tool_Abstract.cpp @@ -30,12 +30,10 @@ #include #include -/* - * Win32 API definitions - */ -typedef HANDLE (WINAPI *CreateJobObjectFun)(__in_opt LPSECURITY_ATTRIBUTES lpJobAttributes, __in_opt LPCSTR lpName); -typedef BOOL (WINAPI *SetInformationJobObjectFun)(__in HANDLE hJob, __in JOBOBJECTINFOCLASS JobObjectInformationClass, __in_bcount(cbJobObjectInformationLength) LPVOID lpJobObjectInformation, __in DWORD cbJobObjectInformationLength); -typedef BOOL (WINAPI *AssignProcessToJobObjectFun)(__in HANDLE hJob, __in HANDLE hProcess); +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include /* * Static vars @@ -56,48 +54,32 @@ static const quint64 START_DELAY_NANO = START_DELAY * 1000 * 10; //in 100-nanose */ AbstractTool::AbstractTool(void) { - static CreateJobObjectFun CreateJobObjectPtr = NULL; - static SetInformationJobObjectFun SetInformationJobObjectPtr = NULL; - QMutexLocker lock(&s_mutex_startProcess); if(s_jobObjRefCount < 1U) { - const lamexp_os_version_t *osVersionNo = lamexp_get_os_version(); - if(LAMEXP_MIN_OS_VER(osVersionNo, 5, 1)) + HANDLE jobObject = CreateJobObject(NULL, NULL); + if((jobObject != NULL) && (jobObject != INVALID_HANDLE_VALUE)) { - if((!CreateJobObjectPtr) || (!SetInformationJobObjectPtr)) + JOBOBJECT_EXTENDED_LIMIT_INFORMATION jobExtendedLimitInfo; + memset(&jobExtendedLimitInfo, 0, sizeof(JOBOBJECT_EXTENDED_LIMIT_INFORMATION)); + memset(&jobExtendedLimitInfo.BasicLimitInformation, 0, sizeof(JOBOBJECT_BASIC_LIMIT_INFORMATION)); + jobExtendedLimitInfo.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE | JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION; + if(SetInformationJobObject(jobObject, JobObjectExtendedLimitInformation, &jobExtendedLimitInfo, sizeof(JOBOBJECT_EXTENDED_LIMIT_INFORMATION))) { - QLibrary Kernel32Lib("kernel32.dll"); - CreateJobObjectPtr = (CreateJobObjectFun) Kernel32Lib.resolve("CreateJobObjectA"); - SetInformationJobObjectPtr = (SetInformationJobObjectFun) Kernel32Lib.resolve("SetInformationJobObject"); - } - } - if(CreateJobObjectPtr && SetInformationJobObjectPtr) - { - HANDLE jobObject = CreateJobObjectPtr(NULL, NULL); - if((jobObject != NULL) && (jobObject != INVALID_HANDLE_VALUE)) - { - JOBOBJECT_EXTENDED_LIMIT_INFORMATION jobExtendedLimitInfo; - memset(&jobExtendedLimitInfo, 0, sizeof(JOBOBJECT_EXTENDED_LIMIT_INFORMATION)); - memset(&jobExtendedLimitInfo.BasicLimitInformation, 0, sizeof(JOBOBJECT_BASIC_LIMIT_INFORMATION)); - jobExtendedLimitInfo.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE | JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION; - if(SetInformationJobObjectPtr(jobObject, JobObjectExtendedLimitInformation, &jobExtendedLimitInfo, sizeof(JOBOBJECT_EXTENDED_LIMIT_INFORMATION))) - { - s_handle_jobObject = jobObject; - s_jobObjRefCount = 1U; - } - else - { - qWarning("Failed to set job object information!"); - CloseHandle(jobObject); - } + s_handle_jobObject = jobObject; + s_jobObjRefCount = 1U; } else { - qWarning("Failed to create the job object!"); + qWarning("Failed to set job object information!"); + CloseHandle(jobObject); } } + else + { + qWarning("Failed to create the job object!"); + } } else { @@ -130,8 +112,6 @@ AbstractTool::~AbstractTool(void) */ bool AbstractTool::startProcess(QProcess &process, const QString &program, const QStringList &args) { - static AssignProcessToJobObjectFun AssignProcessToJobObjectPtr = NULL; - QMutexLocker lock(&s_mutex_startProcess); if(currentTime() <= s_lastLaunchTime) @@ -146,22 +126,16 @@ bool AbstractTool::startProcess(QProcess &process, const QString &program, const env.insert("TEMP", QDir::toNativeSeparators(lamexp_temp_folder2())); env.insert("TMP", QDir::toNativeSeparators(lamexp_temp_folder2())); process.setProcessEnvironment(env); - - if(!AssignProcessToJobObjectPtr) - { - QLibrary Kernel32Lib("kernel32.dll"); - AssignProcessToJobObjectPtr = (AssignProcessToJobObjectFun) Kernel32Lib.resolve("AssignProcessToJobObject"); - } - + process.setProcessChannelMode(QProcess::MergedChannels); process.setReadChannel(QProcess::StandardOutput); process.start(program, args); if(process.waitForStarted()) { - if(AssignProcessToJobObjectPtr && s_handle_jobObject) + if(s_handle_jobObject) { - if(!AssignProcessToJobObjectPtr(s_handle_jobObject, process.pid()->hProcess)) + if(!AssignProcessToJobObject(s_handle_jobObject, process.pid()->hProcess)) { qWarning("Failed to assign process to job object!"); } diff --git a/src/WinSevenTaskbar.cpp b/src/WinSevenTaskbar.cpp index 5ffebafe..363aa0a6 100644 --- a/src/WinSevenTaskbar.cpp +++ b/src/WinSevenTaskbar.cpp @@ -23,10 +23,15 @@ #include #include + +//Windows includes +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include #include -UINT WinSevenTaskbar::m_winMsg = 0; -ITaskbarList3 *WinSevenTaskbar::m_ptbl = NULL; +static UINT s_winMsg = 0; +static ITaskbarList3 *s_ptbl = NULL; WinSevenTaskbar::WinSevenTaskbar(void) { @@ -43,27 +48,27 @@ WinSevenTaskbar::~WinSevenTaskbar(void) void WinSevenTaskbar::init(void) { - m_winMsg = RegisterWindowMessageW(L"TaskbarButtonCreated"); - m_ptbl = NULL; + s_winMsg = RegisterWindowMessageW(L"TaskbarButtonCreated"); + s_ptbl = NULL; } void WinSevenTaskbar::uninit(void) { - if(m_ptbl) + if(s_ptbl) { - m_ptbl->Release(); - m_ptbl = NULL; + s_ptbl->Release(); + s_ptbl = NULL; } } -bool WinSevenTaskbar::handleWinEvent(MSG *message, long *result) +bool WinSevenTaskbar::handleWinEvent(void *message, long *result) { bool stopEvent = false; - if(message->message == m_winMsg) + if(((MSG*)message)->message == s_winMsg) { - if(!m_ptbl) createInterface(); - *result = (m_ptbl) ? S_OK : S_FALSE; + if(!s_ptbl) createInterface(); + *result = (s_ptbl) ? S_OK : S_FALSE; stopEvent = true; } @@ -72,7 +77,7 @@ bool WinSevenTaskbar::handleWinEvent(MSG *message, long *result) void WinSevenTaskbar::createInterface(void) { - if(!m_ptbl) + if(!s_ptbl) { ITaskbarList3 *ptbl = NULL; HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&ptbl)); @@ -82,7 +87,7 @@ void WinSevenTaskbar::createInterface(void) HRESULT hr2 = ptbl->HrInit(); if(SUCCEEDED(hr2)) { - m_ptbl = ptbl; + s_ptbl = ptbl; /*qDebug("ITaskbarList3::HrInit() succeeded.");*/ } else @@ -102,26 +107,26 @@ bool WinSevenTaskbar::setTaskbarState(QWidget *window, WinSevenTaskbarState stat { bool result = false; - if(m_ptbl && window) + if(s_ptbl && window) { HRESULT hr = HRESULT(-1); switch(state) { case WinSevenTaskbarNoState: - hr = m_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_NOPROGRESS); + hr = s_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_NOPROGRESS); break; case WinSevenTaskbarNormalState: - hr = m_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_NORMAL); + hr = s_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_NORMAL); break; case WinSevenTaskbarIndeterminateState: - hr = m_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_INDETERMINATE); + hr = s_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_INDETERMINATE); break; case WinSevenTaskbarErrorState: - hr = m_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_ERROR); + hr = s_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_ERROR); break; case WinSevenTaskbarPausedState: - hr = m_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_PAUSED); + hr = s_ptbl->SetProgressState(reinterpret_cast(window->winId()), TBPF_PAUSED); break; } @@ -133,18 +138,18 @@ bool WinSevenTaskbar::setTaskbarState(QWidget *window, WinSevenTaskbarState stat void WinSevenTaskbar::setTaskbarProgress(QWidget *window, unsigned __int64 currentValue, unsigned __int64 maximumValue) { - if(m_ptbl && window) + if(s_ptbl && window) { - m_ptbl->SetProgressValue(reinterpret_cast(window->winId()), currentValue, maximumValue); + s_ptbl->SetProgressValue(reinterpret_cast(window->winId()), currentValue, maximumValue); } } void WinSevenTaskbar::setOverlayIcon(QWidget *window, QIcon *icon) { #if QT_VERSION < QT_VERSION_CHECK(5,0,0) - if(m_ptbl && window) + if(s_ptbl && window) { - m_ptbl->SetOverlayIcon(window->winId(), (icon ? icon->pixmap(16,16).toWinHICON() : NULL), L"LameXP"); + s_ptbl->SetOverlayIcon(window->winId(), (icon ? icon->pixmap(16,16).toWinHICON() : NULL), L"LameXP"); } #endif } diff --git a/src/WinSevenTaskbar.h b/src/WinSevenTaskbar.h index 8d377e0e..ffdcac6b 100644 --- a/src/WinSevenTaskbar.h +++ b/src/WinSevenTaskbar.h @@ -25,7 +25,6 @@ class QWidget; class QIcon; -struct ITaskbarList3; class WinSevenTaskbar { @@ -44,7 +43,7 @@ public: }; //Public interface - static bool handleWinEvent(MSG *message, long *result); + static bool handleWinEvent(void *message, long *result); static bool setTaskbarState(QWidget *window, WinSevenTaskbarState state); static void setTaskbarProgress(QWidget *window, unsigned __int64 currentValue, unsigned __int64 maximumValue); static void setOverlayIcon(QWidget *window, QIcon *icon); @@ -53,7 +52,5 @@ public: static void uninit(void); private: - static ITaskbarList3 *m_ptbl; - static UINT m_winMsg; static void createInterface(void); };