IltmmCapture::GetSubObjectDispatch Example for C

// This function determines if the Lens effect filter is available
// and turns off the effect area (cropping feature) 
void TurnOffLensCropping(IltmmCapture *pCapture) 
{
   HRESULT hr; 
   IDispatch *pDisp = NULL; 
   ILMVLens *pLens = NULL; 
   
   // call the Capture object to retrieve the FilterGraph
   hr = IltmmCapture__getSubObjectDispatch(pCapture, ltmmCapture_Object_SelVideoProcessor, &pDisp); 
   if(SUCCEEDED(hr)) 
   {
      hr = IDispatch_QueryInterface(pDisp, &IID_ILMVLens, (void**)&pLens); 
      if(SUCCEEDED(hr)) 
      {
         ILMVLens__put_EffectAreaEnabled(pLens, VARIANT_FALSE); 
         ILMVLens_Release(pLens); 
      }

      IDispatch_Release(pDisp); 
   }
}

L_MULTIMEDIATEX_API void IltmmCapture_GetSubObjectDispatch_Example (IltmmCapture *pCapture) 
{
   HRESULT hr; 
   IDispatch *pDisp = NULL; 
   ILMVLens *pLens = NULL; 

   // call the Capture object to retrieve the FilterGraph
   hr = IltmmCapture_GetSubObjectDispatch(pCapture, ltmmCapture_Object_SelVideoProcessor, &pDisp); 

   if(SUCCEEDED(hr)) 
   {
      hr = IDispatch_QueryInterface(pDisp, &IID_ILMVLens, (void**)&pLens); 

      if(SUCCEEDED(hr)) 
      {
         ILMVLens_put_EffectAreaEnabled(pLens, VARIANT_FALSE); 

         ILMVLens_Release(pLens); 
      }

      IDispatch_Release(pDisp); 
   }
}