Adding Windows Media Support to the ltmmCapture Object for C

The following code demonstrates how to add Windows Media support to the ltmmCapture Object.

// declare the windows media certificate creation function
HRESULT STDMETHODCALLTYPE WMCreateCertificate( IUnknown** pUnkCert ); 

// you need to link the stub library
#pragma comment(lib, "wmstub.lib")

void AddWindowsMediaSupportCaptureObjectExample ( void ) 
{
   HRESULT hr; 
   IltmmCapture* pCapture = NULL;
   IUnknown* punkCert = NULL;


   // initialize COM library
   hr = CoInitialize(NULL); 
   if(FAILED(hr)) 
      goto error; 

   // create the capture object
   hr = CoCreateInstance(&CLSID_ltmmCapture, NULL, CLSCTX_INPROC_SERVER, &IID_IltmmCapture, (void**) &pCapture); 
   if(FAILED(hr)) 
      goto error; 

   // create windows media certificate   
   hr = WMCreateCertificate(&punkCert); 
   if(SUCCEEDED(hr)) 
   {
      // assign the certificate to the capture object
      IltmmCapture_put_WMCertificate (pCapture, punkCert); 
      IUnknown_Release(punkCert); 
   }   

error: // cleanup
   
   if(pCapture) 
      IUnknown_Release(pCapture); 

   CoUninitialize();
}