IltmmVideoProcAmp::GetRange Example for C

HRESULT IltmmVideoProcAmp_GetRange_Example (IltmmCapture *pCapture)
{
   HRESULT   hr; 
   long      lMin, lMax, lSteppingDelta, lDefault, lCapsFlags; 
   long      lFlags, lVal; 

   IltmmVideoProcAmp* pVidProcAmp = NULL; 

   hr = IltmmCapture_get_VideoProcAmp (pCapture, &pVidProcAmp); 
   if (FAILED(hr)) 
   {
      IltmmVideoProcAmp_Release(pVidProcAmp); 
      pVidProcAmp = NULL; 
      return hr; 
   }

   hr = IltmmVideoProcAmp_GetRange (pVidProcAmp, ltmmVideoProcAmp_Brightness, 
      &lMin, &lMax, &lSteppingDelta, 
      &lDefault, &lCapsFlags); 
   if (FAILED(hr)) 
   {
      IltmmVideoProcAmp_Release(pVidProcAmp); 
      pVidProcAmp = NULL; 
      return hr; 
   }

   hr = IltmmVideoProcAmp_Get (pVidProcAmp, ltmmVideoProcAmp_Brightness, 
      &lVal, &lFlags); 
   if (FAILED(hr)) 
   {
      IltmmVideoProcAmp_Release(pVidProcAmp); 
      pVidProcAmp = NULL; 
      return hr; 
   }

   lVal = min(lVal + 10, lMax); 

   hr = IltmmVideoProcAmp_Set(pVidProcAmp, ltmmVideoProcAmp_Brightness, 
      lVal, ltmmVideoProcAmp_Flags_Manual); 
   if (FAILED(hr)) 
   {
      IltmmVideoProcAmp_Release(pVidProcAmp); 
      pVidProcAmp = NULL; 
      return hr; 
   }

   IltmmVideoProcAmp_Release(pVidProcAmp); 
   pVidProcAmp = NULL; 

   return S_OK;
}