[vlc-devel] commit: Win32: get rid of calls to GetVersion ( CoCreateInstance will fail anyway if the feature is not present) ( Geoffroy Couprie )

git version control git at videolan.org
Sun Jan 24 20:05:46 CET 2010


vlc | branch: master | Geoffroy Couprie <geal at videolan.org> | Tue Jan 19 15:13:33 2010 +0100| [dcce03505b2f15d5e513db4636ee82984e487a8d] | committer: Geoffroy Couprie 

Win32: get rid of calls to GetVersion (CoCreateInstance will fail anyway if the feature is not present)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=dcce03505b2f15d5e513db4636ee82984e487a8d
---

 modules/gui/qt4/components/interface_widgets.cpp  |   33 ++++----
 modules/gui/qt4/components/simple_preferences.cpp |   33 ++++-----
 modules/gui/qt4/main_interface.cpp                |   87 ++++++++++-----------
 3 files changed, 71 insertions(+), 82 deletions(-)

diff --git a/modules/gui/qt4/components/interface_widgets.cpp b/modules/gui/qt4/components/interface_widgets.cpp
index 930b6de..50c1647 100644
--- a/modules/gui/qt4/components/interface_widgets.cpp
+++ b/modules/gui/qt4/components/interface_widgets.cpp
@@ -239,28 +239,25 @@ void VideoWidget::release( void )
 #ifdef WIN32
     /* Come back to default thumbnail for Windows 7 taskbar */
     LPTASKBARLIST3 p_taskbl;
-    OSVERSIONINFO winVer;
-    winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-    if( GetVersionEx(&winVer) && winVer.dwMajorVersion > 5 )
-    {
-        CoInitialize( 0 );
 
-        if( S_OK == CoCreateInstance( &clsid_ITaskbarList,
-                    NULL, CLSCTX_INPROC_SERVER,
-                    &IID_ITaskbarList3,
-                    (void **)&p_taskbl) )
-        {
-            p_taskbl->vt->HrInit(p_taskbl);
+    CoInitialize( 0 );
+
+    if( S_OK == CoCreateInstance( &clsid_ITaskbarList,
+                NULL, CLSCTX_INPROC_SERVER,
+                &IID_ITaskbarList3,
+                (void **)&p_taskbl) )
+    {
+        p_taskbl->vt->HrInit(p_taskbl);
 
-            HWND hroot = GetAncestor(reparentable->winId(),GA_ROOT);
+        HWND hroot = GetAncestor(reparentable->winId(),GA_ROOT);
 
-            if (S_OK != p_taskbl->vt->SetThumbnailClip(p_taskbl, hroot, NULL))
-                msg_Err(p_intf, "SetThumbNailClip failed");
-            msg_Err(p_intf, "Releasing taskbar | root handle = %08x", hroot);
-            p_taskbl->vt->Release(p_taskbl);
-        }
-        CoUninitialize();
+        if (S_OK != p_taskbl->vt->SetThumbnailClip(p_taskbl, hroot, NULL))
+            msg_Err(p_intf, "SetThumbNailClip failed");
+        msg_Err(p_intf, "Releasing taskbar | root handle = %08x", hroot);
+        p_taskbl->vt->Release(p_taskbl);
     }
+    CoUninitialize();
+
 #endif
 
     delete reparentable;
diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp
index e8542da..8927cf0 100644
--- a/modules/gui/qt4/components/simple_preferences.cpp
+++ b/modules/gui/qt4/components/simple_preferences.cpp
@@ -859,28 +859,23 @@ bool SPrefsPanel::addType( const char * psz_ext, QTreeWidgetItem* current,
 
 void SPrefsPanel::assoDialog()
 {
-    OSVERSIONINFO winVer;
-    winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-    //Vista specific file associations
-    if( GetVersionEx(&winVer) && winVer.dwMajorVersion > 5 )
-    {
-            LPAPPASSOCREGUI p_appassoc;
-            CoInitialize( 0 );
-
-            if( S_OK == CoCreateInstance( &clsid_IApplication2,
-                        NULL, CLSCTX_INPROC_SERVER,
-                        &IID_IApplicationAssociationRegistrationUI,
-                        (void **)&p_appassoc) )
-            {
-                if(S_OK == p_appassoc->vt->LaunchAdvancedAssociationUI(p_appassoc, L"VLC" ) )
-                {
-                    CoUninitialize();
-                    return;
-                }
-            }
+    LPAPPASSOCREGUI p_appassoc;
+    CoInitialize( 0 );
 
+    if( S_OK == CoCreateInstance( &clsid_IApplication2,
+                NULL, CLSCTX_INPROC_SERVER,
+                &IID_IApplicationAssociationRegistrationUI,
+                (void **)&p_appassoc) )
+    {
+        if(S_OK == p_appassoc->vt->LaunchAdvancedAssociationUI(p_appassoc, L"VLC" ) )
+        {
             CoUninitialize();
+            return;
+        }
     }
+
+    CoUninitialize();
+
     QDialog *d = new QDialog( this );
     QGridLayout *assoLayout = new QGridLayout( d );
 
diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp
index 8b6530c..763d760 100644
--- a/modules/gui/qt4/main_interface.cpp
+++ b/modules/gui/qt4/main_interface.cpp
@@ -519,16 +519,22 @@ void MainInterface::createTaskBarButtons()
     FIXME:We need pretty buttons in 16x16 px that are handled correctly by masks in Qt
     FIXME:the play button's picture doesn't changed to pause when clicked
     */
-    OSVERSIONINFO winVer;
-    winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-    if( GetVersionEx(&winVer) && winVer.dwMajorVersion > 5 )
+
+    CoInitialize( 0 );
+
+    if( S_OK == CoCreateInstance( &clsid_ITaskbarList,
+                NULL, CLSCTX_INPROC_SERVER,
+                &IID_ITaskbarList3,
+                (void **)&p_taskbl) )
     {
+        p_taskbl->vt->HrInit(p_taskbl);
+
         if(himl = ImageList_Create( 15, //cx
-                                    18, //cy
-                                    ILC_COLOR,//flags
-                                    4,//initial nb of images
-                                    0//nb of images that can be added
-                                    ))
+                        18, //cy
+                        ILC_COLOR,//flags
+                        4,//initial nb of images
+                        0//nb of images that can be added
+                        ))
         {
             QPixmap img   = QPixmap(":/toolbar/previous_b");
             QPixmap img2  = QPixmap(":/toolbar/pause_b");
@@ -549,52 +555,43 @@ void MainInterface::createTaskBarButtons()
                 msg_Err( p_intf, "ImageList_Add failed" );
         }
 
-        CoInitialize( 0 );
-
-        if( S_OK == CoCreateInstance( &clsid_ITaskbarList,
-                    NULL, CLSCTX_INPROC_SERVER,
-                    &IID_ITaskbarList3,
-                    (void **)&p_taskbl) )
+        // Define an array of two buttons. These buttons provide images through an
+        // image list and also provide tooltips.
+        DWORD dwMask = THB_BITMAP | THB_FLAGS;
+
+        THUMBBUTTON thbButtons[3];
+        thbButtons[0].dwMask = dwMask;
+        thbButtons[0].iId = 0;
+        thbButtons[0].iBitmap = 0;
+        thbButtons[0].dwFlags = THBF_HIDDEN;
+
+        thbButtons[1].dwMask = dwMask;
+        thbButtons[1].iId = 1;
+        thbButtons[1].iBitmap = 2;
+        thbButtons[1].dwFlags = THBF_HIDDEN;
+
+        thbButtons[2].dwMask = dwMask;
+        thbButtons[2].iId = 2;
+        thbButtons[2].iBitmap = 3;
+        thbButtons[2].dwFlags = THBF_HIDDEN;
+
+        HRESULT hr = p_taskbl->vt->ThumbBarSetImageList(p_taskbl, winId(), himl );
+        if(S_OK != hr)
+            msg_Err( p_intf, "ThumbBarSetImageList failed with error %08x", hr );
+        else
         {
-            p_taskbl->vt->HrInit(p_taskbl);
-
-            // Define an array of two buttons. These buttons provide images through an
-            // image list and also provide tooltips.
-            DWORD dwMask = THB_BITMAP | THB_FLAGS;
-
-            THUMBBUTTON thbButtons[3];
-            thbButtons[0].dwMask = dwMask;
-            thbButtons[0].iId = 0;
-            thbButtons[0].iBitmap = 0;
-            thbButtons[0].dwFlags = THBF_HIDDEN;
-
-            thbButtons[1].dwMask = dwMask;
-            thbButtons[1].iId = 1;
-            thbButtons[1].iBitmap = 2;
-            thbButtons[1].dwFlags = THBF_HIDDEN;
-
-            thbButtons[2].dwMask = dwMask;
-            thbButtons[2].iId = 2;
-            thbButtons[2].iBitmap = 3;
-            thbButtons[2].dwFlags = THBF_HIDDEN;
-
-            HRESULT hr = p_taskbl->vt->ThumbBarSetImageList(p_taskbl, winId(), himl );
+            hr = p_taskbl->vt->ThumbBarAddButtons(p_taskbl, winId(), 3, thbButtons);
             if(S_OK != hr)
-                msg_Err( p_intf, "ThumbBarSetImageList failed with error %08x", hr );
-            else
-            {
-                hr = p_taskbl->vt->ThumbBarAddButtons(p_taskbl, winId(), 3, thbButtons);
-                if(S_OK != hr)
-                    msg_Err( p_intf, "ThumbBarAddButtons failed with error %08x", hr );
-            }
-            CONNECT( THEMIM->getIM(), statusChanged( int ), this, changeThumbbarButtons( int ) );
+                msg_Err( p_intf, "ThumbBarAddButtons failed with error %08x", hr );
         }
+        CONNECT( THEMIM->getIM(), statusChanged( int ), this, changeThumbbarButtons( int ) );
     }
     else
     {
         himl = NULL;
         p_taskbl = NULL;
     }
+
 }
 
 bool MainInterface::winEvent ( MSG * msg, long * result )




More information about the vlc-devel mailing list