////////////////////////////////////////////////////////////////////////////////
//
// Converter -   -  
//
////////////////////////////////////////////////////////////////////////////////
#ifndef __CONVERTER_H
#define __CONVERTER_H

class KompasConverter;
class LibConverterParam;


///////////////////////////////////////////////////////////////////////////////
//
//   -  
//
///////////////////////////////////////////////////////////////////////////////
class LibConverter 
{

protected :
  // true -   
  // false -    
  bool lineStyle;
  
  //    
  KompasConverter  * m_pConverter;
  //     
  LibConverterParam * m_pConverterParam; 

public:  
                     LibConverter ();
                     ~LibConverter();
  
  //     
  KompasConverter *  GetKompasConverter ();
  void               InterfaceNull      () { m_pConverter      = NULL; }
  void               InterfaceParamNull () { m_pConverterParam = NULL; }

  //      
  BOOL               VisualEditConvertParam( OLE_HANDLE parentHwnd, long command );    
  // 
  long               Convert            ( LPCTSTR inputFile, LPCTSTR outFile, long command, BOOL showParam );
  //       
  BOOL               GetCanUnLoadLibrary();
  //   
  void               ExecuteCommand     ( unsigned int com );
  //      
  LibConverterParam * GetConvertParam   ( long command );
  //         
  BSTR               GetFilter          ( long docType, BOOL saveAs, long * command );
  //         
  BSTR               GetFilter          ( LPCTSTR ext, BOOL saveAs, long * command );
  
  //    
  void               SetSaveLineStyle   ( bool val);
  bool               GetSaveLineStyle   ();
};

LibConverter & GetLibConverter();      //    
void          ConverterDestroy();      //  

#endif // __CONVERTER_H
