ImageResolution Example for C++ 5.0 and later
void TestTwainImageRes(HWND hWnd)
{
   ILEADRasterTwain * pRasterTwain;
   HRESULT hr = ::CoCreateInstance(CLSID_LEADRasterTwain, NULL, CLSCTX_ALL, IID_ILEADRasterTwain, (void **)&pRasterTwain);
   if (FAILED(hr) || !pRasterTwain)
   {
      ::MessageBox (NULL, _TEXT("Failed to create a Raster Twain Object"), _TEXT("Error"), MB_OK);
      return;
   }
   pRasterTwain->EnableMethodErrors = FALSE;
   pRasterTwain->InitSession((long)hWnd);
   pRasterTwain->GetProperties();
   pRasterTwain->ImageResolution->Unit = L_TWUN_INCHES;
   pRasterTwain->ImageResolution->BitsPerPixel = 1;
   pRasterTwain->ImageResolution->HorizontalResolution = 150;
   pRasterTwain->ImageResolution->VerticalResolution = 150;
   pRasterTwain->ImageResolution->XScaling = 1;
   pRasterTwain->ImageResolution->YScaling = 1;
   pRasterTwain->ImageResolution->RotationAngle = 90;
   pRasterTwain->LeftMargin = 0;
   pRasterTwain->RightMargin = 0;
   pRasterTwain->TopMargin = 200;
   pRasterTwain->BottomMargin = 200;
   pRasterTwain->EnableAutoFeed = TRUE;
   pRasterTwain->MaxPagesNumber = -1;
   char buf[256];
   memset(buf, 0, strlen(buf));
   wsprintf(buf, TEXT("Duplex state = %d"), pRasterTwain->DuplexScanning);
   ::MessageBox(NULL, buf, "Duplex", MB_OK);
   pRasterTwain->SetProperties();
   pRasterTwain->EndSession();
}