IltmmAnalogVideoDecoder::get_AvailableTVFormats Example for C++

   HRESULT        hr; 
   long           lSupportFormats, lTVFormat, lLines; 
   VARIANT_BOOL   vLocked, vVCRLocked, vEnable; 
   IltmmAnalogVideoDecoder* pAnVidDec = NULL; 

   hr = m_capture->get_AnalogVideoDecoder(&pAnVidDec); 
   if (FAILED(hr)) 
      return hr; 

   hr = pAnVidDec->get_AvailableTVFormats(&lSupportFormats); 
   if (FAILED(hr)) 
   {
      pAnVidDec->Release();
      pAnVidDec = NULL; 
      return hr; 
   }

   hr = pAnVidDec->get_TVFormat(&lTVFormat); 
   if (FAILED(hr)) 
   {
      pAnVidDec->Release();
      pAnVidDec = NULL; 
      return hr; 
   }

   if ((lTVFormat != AnalogVideo_NTSC_M ) && (lSupportFormats & AnalogVideo_NTSC_M)) 
   {
      hr = pAnVidDec->put_TVFormat (AnalogVideo_NTSC_M); 
      if (FAILED(hr)) 
      {
         pAnVidDec->Release();
         pAnVidDec = NULL; 
         return hr; 
      }
   }
   hr = pAnVidDec->get_HorizontalLocked (&vLocked); 
   if (FAILED(hr)) 
   {
      pAnVidDec->Release();
      pAnVidDec = NULL; 
      return hr; 
   }

   hr = pAnVidDec->get_VCRHorizontalLocking (&vVCRLocked); 
   if (FAILED(hr)) 
   {
      pAnVidDec->Release();
      pAnVidDec = NULL; 
      return hr; 
   }
   if (vVCRLocked == VARIANT_FALSE) 
   {
      hr = pAnVidDec->put_VCRHorizontalLocking (VARIANT_TRUE); 
      if (FAILED(hr)) 
      {
         pAnVidDec->Release();
         pAnVidDec = NULL; 
         return hr; 
      }
   }

   hr = pAnVidDec->get_NumberOfLines (&lLines); 
   if (FAILED(hr)) 
   {
      pAnVidDec->Release();
      pAnVidDec = NULL; 
      return hr; 
   }

   hr = pAnVidDec->get_OutputEnable (&vEnable); 
   if (FAILED(hr)) 
   {
      pAnVidDec->Release();
      pAnVidDec = NULL; 
      return hr; 
   }
   if (vEnable == VARIANT_FALSE) 
   {
      hr = pAnVidDec->put_OutputEnable (VARIANT_TRUE); 
      if (FAILED(hr)) 
      {
         pAnVidDec->Release();
         pAnVidDec = NULL; 
         return hr; 
      }
   }

   pAnVidDec->Release();
   pAnVidDec = NULL;