IltmmConvert::get_EnableStillCapture Example for C++

#define MAKE_MEDIA_PATH(pFileName) (TEXT("C:\\LEADTOOLS 17.5\\Media\\")TEXT(pFileName))


// This function would be called before start the conversion process
void BeforeConversion(IltmmConvert *pConvert)
{
   long lWnd = 0; 
   ltmmSizeMode lSizeMode; 
   long lLimit, lVideoH, lVideoW, lWndLeft, lWndTop, lWndW, lWndH; 
   VARIANT_BOOL vb; 
   BSTR bstrLog; 

   pConvert->get_VideoWindowHandle(&lWnd); 
   if (lWnd) 
   {
      // get video dimensions
      pConvert->get_VideoWidth(&lVideoW); 
      pConvert->get_VideoHeight(&lVideoH);

      // get window size and pos
      pConvert->get_VideoWindowWidth(&lWndW); 
      pConvert->get_VideoWindowHeight(&lWndH);  
      pConvert->get_VideoWindowLeft(&lWndLeft); 
      pConvert->get_VideoWindowTop(&lWndTop); 
      
      // set the desired video window size mode
      pConvert->get_VideoWindowSizeMode(&lSizeMode); 
      if (lSizeMode != ltmmFit && lVideoW > lWndW && lVideoH > lWndH) 
         pConvert->put_VideoWindowSizeMode(ltmmFit); 
      else if (lVideoW < lWndW && lVideoH < lWndH) 
         pConvert->put_VideoWindowSizeMode(ltmmStretch); 
      
      // we could change the window size and position here
      pConvert->SetVideoWindowPos(lWndLeft, lWndTop, lWndW, lWndH); 
   }

   // enable still capture
   pConvert->put_EnableStillCapture(VARIANT_TRUE); 
   pConvert->get_StillCaptureLimit(&lLimit); 

   // set the limit if less than 1 sec
   if (lLimit <= 1000) 
      pConvert->put_StillCaptureLimit(1000); 

   // get full screen mode
   pConvert->get_FullScreenMode(&vb); 
   if (vb == VARIANT_TRUE) 
   {
      // Just to show how to use put_FullScreenMode
      pConvert->ToggleFullScreenMode();

      // Use put_FullScreenMode(VARIANT_FALSE) to turn off the full screen mode
      pConvert->put_FullScreenMode(VARIANT_FALSE); 
   }

   // start logging
   bstrLog = SysAllocString(MAKE_MEDIA_PATH("convert.log"));
   pConvert->OpenLogFile(bstrLog, ltmmLogFile_GeneralInfo); 
   SysFreeString(bstrLog); 
} 

// This function would be called to save a snapshot from the running conversion to a file
void TakeSnapShots(IltmmConvert *pConvert)
{
   static int i = 0; 
   VARIANT_BOOL vb; 
   pConvert->get_EnableStillCapture(&vb); 
   if (vb == VARIANT_TRUE) 
   {
      WCHAR szFileName[100]; 

      wsprintf(szFileName, MAKE_MEDIA_PATH("SnapShot%d.cmp"), i++);
      USES_CONVERSION; 
      BSTR bstFileName = SysAllocString(szFileName); 
      pConvert->SaveStillBitmap(bstFileName, ltmmConvert_StillFormat_CMP, 2, 0, -1); 
   }
}

// This function would be called after the conversion process is finished. 
void EndConversion(IltmmConvert *pConvert)
{
   pConvert->CloseLogFile();
}