IltmmCapture::get_WMProfile Example for C

This function displays the currently associated WM Profile for the specified capture object.

LPTSTR OLE2T(LPCOLESTR lpw)
{
   static TCHAR lpt[512];
   if(!lpw)
      return NULL;
   lpt[0] = _T('\0');
   WideCharToMultiByte(CP_ACP, 0, lpw, -1, lpt, 512, NULL, NULL);
   return lpt;
}

void IltmmCapture_get_WMProfile_Example (IltmmCapture *pCapture) 
{
   IltmmWMProfile *pCurrentProfile = NULL; 
   BSTR bstrStringName; 
   HRESULT hr; 

   hr = IltmmCapture_get_WMProfile(pCapture, &pCurrentProfile); 
   
   if(FAILED(hr)) 
   {
      return; 
   }

   if(pCurrentProfile) 
   {
      hr = IltmmWMProfile_get_Name(pCurrentProfile, &bstrStringName); 
      
      if(FAILED(hr)) 
      {
         IltmmWMProfile_Release(pCurrentProfile); 

         return; 
      }

      MessageBox(NULL, OLE2T(bstrStringName), "Profile selected", MB_ICONINFORMATION); 

      IltmmWMProfile_Release(pCurrentProfile); 
   }
   else
   {
      MessageBox(NULL, "There is no profile currently selected", "Profile selected", MB_ICONINFORMATION); 
   }
}