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);
      wprintf(TEXT("%s\n"), bstrString);
      SysFreeString(bstrString);
      
      // Add the description, version and the stream count
      pProfile->get_Description(&bstrString);
      wprintf(TEXT("%s\n"), bstrString);
      SysFreeString(bstrString);
      
      pProfile->get_Version(&versionNum);
      switch (versionNum)
      {
      case ltmmWMT_VER_4_0:
         wprintf(TEXT("ltmmWMT_VER_4_0\n"));
         break;
      case ltmmWMT_VER_7_0:
         wprintf(TEXT("ltmmWMT_VER_7_0\n"));
         break;
      case ltmmWMT_VER_8_0:
         wprintf(TEXT("ltmmWMT_VER_8_0\n"));
         break;
      case ltmmWMT_VER_9_0:
         wprintf(TEXT("ltmmWMT_VER_9_0\n"));
         break;
      default:
         wprintf(TEXT("UNKNOWN\n"));
         break;
      };

      // Display the number of streams
      pProfile->get_StreamCount(&streamCount);
      wprintf(TEXT("%s\n"), ltoa(streamCount, data, 10));
      
      pProfile->Release();
      pProfile = NULL;
   }
   
   pProfileManager->Release();
   pProfileManager = NULL;
   
   return TRUE;
}