SaveQFactor Example for C++ 5.0 and later
ILEADRasterDlgFile * m_pRasterFileDlg;
ILEADRasterDlgKrn * m_pRasterKrnDlg;
ILEADRasterIO * m_pRasterIO;
BOOL CAllowMulDlg::OnInitDialog()
{
   .
   .
   .
   // TODO: Add extra initialization here
   m_pRasterIO = NULL;
   CoCreateInstance(CLSID_LEADRasterIO, NULL, CLSCTX_ALL, 
 IID_ILEADRasterIO, (void**)&m_pRasterIO);
   m_pRasterIO->Load (m_RasterView.GetRaster(),TEXT("c:\\parrots.jpg"),0,0,1);
   m_pRasterKrnDlg = NULL;
   CoCreateInstance(CLSID_LEADRasterDlgKrn, NULL, CLSCTX_ALL, 
 IID_ILEADRasterDlgKrn, (void**)&m_pRasterKrnDlg);
   m_pRasterKrnDlg->InitDlg(INIT_WITHOUT_COLOR); 
   m_pRasterFileDlg=NULL;
   CoCreateInstance(CLSID_LEADRasterDlgFile, NULL, CLSCTX_ALL, 
 IID_ILEADRasterDlgFile, (void**)&m_pRasterFileDlg);
   return TRUE; // return TRUE unless you set the focus 
 to a control
}
void CDialogs::OnShowSaveDlg() 
{
   int nRet;
   m_pRasterFileDlg->DialogTitle = "Save 
 a File";
   m_pRasterFileDlg->FileDlgFlags = 0;
   m_pRasterFileDlg->InitialDir = "C:\\";
   m_pRasterFileDlg->SaveMulti = MULTIPAGE_OVERWRITE;
   m_pRasterFileDlg->UIFlags = SAVE_SHOW_FILEOPTIONS_PROGRESSIVE 
 |
         SAVE_SHOW_FILEOPTIONS_MULTIPAGE 
 |
         SAVE_SHOW_FILEOPTIONS_STAMP 
 |
         SAVE_SHOW_FILEOPTIONS_QFACTOR 
 |
         SAVE_SHOW_FILEOPTIONS_J2KOPTIONS 
 |
         SAVE_SHOW_FILEOPTIONS_BASICJ2KOPTIONS;
   m_pRasterFileDlg->Bitmap = m_RasterView.GetRaster().GetBitmap();
   nRet = m_pRasterFileDlg->ShowSaveDlg((long)this->m_hWnd);
   if (nRet = 0 && m_pRasterFileDlg->DialogStatus 
 == DLG_OK) 
   {
      if ((m_pRasterFileDlg->SaveFormat == FILE_J2K) || 
 (m_pRasterFileDlg->SaveFormat 
 == FILE_JP2))
      {
         m_pRasterIO->J2KUseColorTransform = m_pRasterFileDlg->SaveJ2KUseColorTransform;
         m_pRasterIO->J2KDerivedQuantization = m_pRasterFileDlg->SaveJ2KDerivedQuantization;
         m_pRasterIO->PutJ2KCompressionControl (m_pRasterFileDlg->GetSaveJ2KCompressionControl());
         m_pRasterIO->J2KCompressionRatio 
 = m_pRasterFileDlg->SaveJ2KCompressionRatio;
         m_pRasterIO->J2KTargetFileSize 
 = m_pRasterFileDlg->SaveJ2KTargetFileSize;
         m_pRasterIO->J2KXOsiz 
 = m_pRasterFileDlg->SaveJ2KXOsiz;
         m_pRasterIO->J2KYOsiz 
 = m_pRasterFileDlg->SaveJ2KYOsiz;
         m_pRasterIO->J2KXTsiz 
 = m_pRasterFileDlg->SaveJ2KXTsiz;
         m_pRasterIO->J2KYTsiz 
 = m_pRasterFileDlg->SaveJ2KYTsiz;
         m_pRasterIO->J2KXTOsiz 
 = m_pRasterFileDlg->SaveJ2KXTOsiz;
         m_pRasterIO->J2KYTOsiz 
 = m_pRasterFileDlg->SaveJ2KYTOsiz;
         m_pRasterIO->J2KDecompLevel 
 = m_pRasterFileDlg->SaveJ2KDecompLevel;
         m_pRasterIO->PutJ2KProgressOrder 
 (m_pRasterFileDlg->GetSaveJ2KProgressOrder());
         m_pRasterIO->J2KCodBlockWidth 
 = m_pRasterFileDlg->SaveJ2KCodBlockWidth;
         m_pRasterIO->J2KCodBlockHeight 
 = m_pRasterFileDlg->SaveJ2KCodBlockHeight;
         m_pRasterIO->J2KCBS_SelectiveACBypass = m_pRasterFileDlg->SaveJ2KCBS_SelectiveACBypass;
         m_pRasterIO->J2KCBS_ResetContextOnBoundaries 
 = m_pRasterFileDlg->SaveJ2KCBS_ResetContextOnBoundaries;
         m_pRasterIO->J2KCBS_TerminationOnEachPass = m_pRasterFileDlg->SaveJ2KCBS_TerminationOnEachPass;
         m_pRasterIO->J2KCBS_VerticallyCausalContext = 
 m_pRasterFileDlg->SaveJ2KCBS_VerticallyCausalContext;
         m_pRasterIO->J2KCBS_PredictableTermination = 
 m_pRasterFileDlg->SaveJ2KCBS_PredictableTermination;
         m_pRasterIO->J2KCBS_ErrorResilienceSymbol = m_pRasterFileDlg->SaveJ2KCBS_ErrorResilienceSymbol;
         m_pRasterIO->J2KGuardBits 
 = m_pRasterFileDlg->SaveJ2KGuardBits;
         m_pRasterIO->J2KDerivedBaseMantissa = m_pRasterFileDlg->SaveJ2KDerivedBaseMantissa;
         m_pRasterIO->J2KDerivedBaseExponent = m_pRasterFileDlg->SaveJ2KDerivedBaseExponent;
         m_pRasterIO->J2KUseSOPMarker 
 = m_pRasterFileDlg->SaveJ2KUseSOPMarker;
         m_pRasterIO->J2KUseEPHMarker 
 = m_pRasterFileDlg->SaveJ2KUseEPHMarker;
         m_pRasterIO->Save 
 (m_RasterView.GetRaster(), m_pRasterFileDlg->FileName, 
 (RasterFileConstants)m_pRasterFileDlg->SaveFormat, 
 m_pRasterFileDlg->SaveBitsPerPixel, 
 (QFactorConstants)m_pRasterFileDlg->SaveQFactor, 
 m_pRasterFileDlg->SaveMulti);
      }
   }
}