IltmmWMProfile::get_Version Example for C++

For complete code, refer to the CNVWM demo.

BOOL DisplaySystemProfiles()
{
   // ATL Macro
   USES_CONVERSION;   

   long count = 0; 
   long streamCount = 0; 
   long versionNum = 0; 
   long lVersion; 
   char data[10]; 
   IltmmWMProfile *pProfile = NULL; 
   IltmmWMProfileManager *pProfileManager = NULL; 
   BSTR bstrString; 

   // Create a profile manager
   HRESULT hr = CoCreateInstance(CLSID_ltmmWMProfileManager, 
                                                             NULL, 
                                                             CLSCTX_INPROC_SERVER, 
                                                             IID_IltmmWMProfileManager, 
                                                             (void**) &pProfileManager); 

   if(FAILED(hr)) 
   {
      return TRUE; 
   }

   // show only system profiles for version ltmmWMT_VER_4_0
   pProfileManager->get_SystemProfileVersion (&lVersion); 

   if(lVersion != ltmmWMT_VER_4_0) 
   {
      pProfileManager->Release();
      return TRUE; 
   }

   hr = pProfileManager->get_SystemProfileCount (&count); 
   if(FAILED(hr)) 
   {
      pProfileManager->Release();
      return TRUE; 
   }

   for(int i = 0; i < count; i++)
   {
      hr = pProfileManager->LoadSystemProfile (i, &pProfile); 
      if(FAILED(hr)) 
      {
         pProfileManager->Release();
         return TRUE; 
      }

      // Display the name... 
      pProfile->get_Name (&bstrString); 
      cout << OLE2A(bstrString); 
      SysFreeString(bstrString); 

      // Add the description, version and the stream count
      pProfile->get_Description (&bstrString); 
      cout << OLE2A(bstrString); 
      SysFreeString(bstrString); 

      pProfile->get_Version(&versionNum); 
      switch(versionNum) 
      {
         case ltmmWMT_VER_4_0: 
            cout << "ltmmWMT_VER_4_0";
         break; 
         case ltmmWMT_VER_7_0: 
            cout << "ltmmWMT_VER_7_0";
         break; 
         case ltmmWMT_VER_8_0: 
            cout << "ltmmWMT_VER_8_0";
         break; 
         case ltmmWMT_VER_9_0: 
            cout << "ltmmWMT_VER_9_0";
         break; 
         default: 
            cout << "UNKNOWN";
         break; 
      };

      // Display the number of streams
      pProfile->get_StreamCount (&streamCount); 
      cout << ltoa(streamCount, data, 10); 

      pProfile->Release();
      pProfile = NULL; 
   }

   pProfileManager->Release();
   pProfileManager = NULL; 

   return TRUE; 
}