- m_pAM->QueryInterface(IID_IMediaPlayer, (void**)&m_pMP);
- }
- else
- {
- m_pMP->QueryInterface(IID_IActiveMovie, (void**)&m_pAM);
- }
+ // determine which (if any) media player interface
+ // is available - IMediaPlayer or IActiveMovie
+ if ( ::CoCreateInstance(clsid, NULL,
+ CLSCTX_INPROC_SERVER,
+ IID_IMediaPlayer, (void**)&m_pMP) != 0 )
+ {
+ return false;
+ }
+ else
+ {
+ m_pMP->QueryInterface(IID_IActiveMovie, (void**)&m_pAM);
+ }
+#else
+ // determine which (if any) media player interface
+ // is available - IMediaPlayer or IActiveMovie
+ if ( ::CoCreateInstance(CLSID_MediaPlayer, NULL,
+ CLSCTX_INPROC_SERVER,
+ IID_IMediaPlayer, (void**)&m_pMP) != 0 )
+ {
+ if ( ::CoCreateInstance(CLSID_ActiveMovie, NULL,
+ CLSCTX_INPROC_SERVER,
+ IID_IActiveMovie, (void**)&m_pAM) != 0 )
+ {
+ return false;
+ }
+
+ m_pAM->QueryInterface(IID_IMediaPlayer, (void**)&m_pMP);
+ }
+ else
+ {
+ m_pMP->QueryInterface(IID_IActiveMovie, (void**)&m_pAM);
+ }
+#endif