BACKENDS: Move Win32TaskbarManager init code to constructor

This commit is contained in:
Littleboy 2011-04-04 16:10:58 -04:00 committed by Julien
parent e1dc9cdc0b
commit 5649ddaf10
3 changed files with 13 additions and 20 deletions

View file

@ -88,7 +88,6 @@ void OSystem_Win32::init() {
#if defined(USE_TASKBAR) #if defined(USE_TASKBAR)
// Initialize taskbar manager // Initialize taskbar manager
_taskbarManager = new Win32TaskbarManager(); _taskbarManager = new Win32TaskbarManager();
((Win32TaskbarManager *)_taskbarManager)->init();
#endif #endif
// Invoke parent implementation of this method // Invoke parent implementation of this method

View file

@ -51,19 +51,7 @@
const PROPERTYKEY PKEY_Title = { /* fmtid = */ { 0xF29F85E0, 0x4FF9, 0x1068, { 0xAB, 0x91, 0x08, 0x00, 0x2B, 0x27, 0xB3, 0xD9 } }, /* propID = */ 2 }; const PROPERTYKEY PKEY_Title = { /* fmtid = */ { 0xF29F85E0, 0x4FF9, 0x1068, { 0xAB, 0x91, 0x08, 0x00, 0x2B, 0x27, 0xB3, 0xD9 } }, /* propID = */ 2 };
Win32TaskbarManager::Win32TaskbarManager() { Win32TaskbarManager::Win32TaskbarManager() {
_taskbar = NULL; // Do nothing if not running on Windows 7 or later
}
Win32TaskbarManager::~Win32TaskbarManager() {
if (_taskbar)
_taskbar->Release();
_taskbar = NULL;
CoUninitialize();
}
void Win32TaskbarManager::init() {
// Do nothing if not running on Windows 7 of later
if (!isWin7OrLater()) if (!isWin7OrLater())
return; return;
@ -71,10 +59,10 @@ void Win32TaskbarManager::init() {
// Try creating instance (on fail, _taskbar will contain NULL) // Try creating instance (on fail, _taskbar will contain NULL)
HRESULT hr = CoCreateInstance(CLSID_TaskbarList, HRESULT hr = CoCreateInstance(CLSID_TaskbarList,
0, 0,
CLSCTX_INPROC_SERVER, CLSCTX_INPROC_SERVER,
IID_ITaskbarList3, IID_ITaskbarList3,
reinterpret_cast<void**> (&(_taskbar))); reinterpret_cast<void**> (&(_taskbar)));
if (SUCCEEDED(hr)) { if (SUCCEEDED(hr)) {
// Initialize taskbar object // Initialize taskbar object
@ -87,6 +75,14 @@ void Win32TaskbarManager::init() {
} }
} }
Win32TaskbarManager::~Win32TaskbarManager() {
if (_taskbar)
_taskbar->Release();
_taskbar = NULL;
CoUninitialize();
}
void Win32TaskbarManager::setOverlayIcon(const Common::String &name, const Common::String &description) { void Win32TaskbarManager::setOverlayIcon(const Common::String &name, const Common::String &description) {
//warning("[Win32TaskbarManager::setOverlayIcon] Setting overlay icon to: %s (%s)", name.c_str(), description.c_str()); //warning("[Win32TaskbarManager::setOverlayIcon] Setting overlay icon to: %s (%s)", name.c_str(), description.c_str());

View file

@ -38,8 +38,6 @@ public:
Win32TaskbarManager(); Win32TaskbarManager();
virtual ~Win32TaskbarManager(); virtual ~Win32TaskbarManager();
void init();
virtual void setOverlayIcon(const Common::String &name, const Common::String &description); virtual void setOverlayIcon(const Common::String &name, const Common::String &description);
virtual void setProgressValue(int completed, int total); virtual void setProgressValue(int completed, int total);
virtual void setProgressState(TaskbarProgressState state); virtual void setProgressState(TaskbarProgressState state);