IltmmPlay::GetSubObjectDispatch Example for C

// This function checks if the Lens effect filter is available
// and turns off the effect area (cropping feature) 
void TurnOffLensCropping4(IltmmPlay *pPlay) 
{
   HRESULT hr; 
   IDispatch *pDisp = NULL; 
   ILMVLens *pLens = NULL; 
   
   // call the Capture object to retrieve the FilterGraph
   hr = IltmmPlay__getSubObjectDispatch(pPlay, ltmmPlay_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); 
   }
}

// This function checks if the Lens effect filter is available
// and turns off the effect area (cropping feature) 
L_MULTIMEDIATEX_API void IltmmPlay_GetSubObjectDispatch_Example (IltmmPlay* pPlay)
{
	HRESULT hr; 
	IDispatch *pDisp = NULL; 
	ILMVLens *pLens = NULL; 

	// call the Capture object to retrieve the FilterGraph
	hr = IltmmPlay_GetSubObjectDispatch(pPlay, ltmmPlay_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); 
	}
}