Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HIOUtilityExchange.h
00001 //
00002 // Copyright (c) 2000 by Tech Soft 3D, LLC.
00003 // The information contained herein is confidential and proprietary to
00004 // Tech Soft 3D, LLC., and considered a trade secret as defined under
00005 // civil and criminal statutes.  Tech Soft 3D shall pursue its civil
00006 // and criminal remedies in the event of unauthorized use or misappropriation
00007 // of its trade secrets.  Use of this information by anyone other than
00008 // authorized employees of Tech Soft 3D, LLC. is granted only under a
00009 // written non-disclosure agreement, expressly prescribing the scope and
00010 // manner of such use.
00011 //
00012 // $Id: de24ca347e113cc53de9675eafcd3b4f57618a83 $
00013 //
00014 
00015 #ifndef _HIOUTILITYEXCHANGE_H
00016 #define _HIOUTILITYEXCHANGE_H
00017 
00018 #ifdef H_PACK_8
00019 #pragma pack(push)
00020 #pragma pack(8)
00021 #endif
00022 
00023 #include "HTools.h"
00024 #include "HIOManager.h"
00025 #include "vlist.h"
00026 
00027 #if defined(HIO_EXCHANGE) && defined(_MSC_VER)
00028 #define HIO_API __declspec (dllexport)
00029 #else
00030 #define HIO_API
00031 #endif
00032 
00033 class HPDFLayoutManager;
00034 class HPDFOptions;
00039 class HIO_API HIOUtilityExchange: public HInputHandler, public HOutputHandler
00040 {
00041 
00042 public:
00043 
00045     HIOUtilityExchange();
00046     virtual ~HIOUtilityExchange() {};
00047 
00049     void RegisterInputHandlerTypes();
00052     const char * GetOutputName() { return "HIOUtilityExchange"; }
00053     const char * GetInputName() { return "HIOUtilityExchange"; }
00054 
00056     const char * GetInputTypesString() {return "prc;prd;x_t;x_b;step;stp;igs;iges;CATPart;CATProduct;"
00057         "cgr;session;model;3dxml;CADDS;PD;XV3;XV0;prt;asm;xpr;xas;neu;asm.1;prt.1;jt;SLDPRT;SLDASM;mf1;"    
00058     "arc;unv;pkg;sdp;sdpc;sdw;sdwc;sda;sdac;sds;sdsc;ses;bdl;psm;pwd;par;asm;sat;sab;ipt;iam;ifc;dae"; }
00059  
00060         
00061 
00063     HInputHandlerStyle GetInputStyle() {return HInputHandlerStyleModel;};
00064 
00072     HFileInputResult FileInputByKey(const wchar_t * FileName, HC_KEY key, HInputHandlerOptions * options);
00073 
00074     HFileInputResult FileInputByKey(const char * FileName, HC_KEY key, HInputHandlerOptions * options){
00075         return FileInputByKey(H_WCS(FileName).encodedText(), key, options);
00076     };
00077 
00078     HFileInputResult FileInputByKey(const unsigned short * FileName, HC_KEY key, HInputHandlerOptions * options){
00079         H_UTF16 utf16;
00080         utf16.encodedText((utf16_char const*) FileName);
00081         return FileInputByKey(H_WCS(utf16).encodedText(), key, options);
00082     };
00083 
00084     HFileOutputResult FileOutputByKey(const wchar_t * filename, HC_KEY key, HOutputHandlerOptions * options);
00085 
00086     HFileOutputResult FileOutputByKey(const unsigned short * filename, HC_KEY key, HOutputHandlerOptions * options){
00087         H_UTF16 utf16;
00088         utf16.encodedText((utf16_char const*) filename);
00089         return FileOutputByKey(H_WCS(utf16).encodedText(), key, options);
00090     }
00091 
00092     HFileOutputResult FileOutputByKey(const char * filename, HC_KEY key, HOutputHandlerOptions * options){
00093         return FileOutputByKey(H_WCS(filename).encodedText(), key, options);
00094     }
00095 
00096     void RegisterOutputHandlerTypes();
00097     
00104     virtual void *BuildPRCModel(HOutputHandlerOptions * options, HC_KEY key);
00105  
00106 
00107     const char *  GetOutputTypesString() {
00108         return "prc;iges;step;x_t;stl";
00109     }
00110 
00111     HOutputHandlerStyle GetOutputStyle() {
00112         return HOutputHandlerStyleModel;
00113     }
00114 };
00115 
00116 
00117 
00118 #ifdef HIO_EXCHANGE
00119 extern "C" {
00120     HIO_API void * CreateInput(HIOManager *manager);
00121     HIO_API void * CreateOutput(HIOManager *manager);
00122     HIO_API void * CreateConnector(void * unused);
00123     HIO_API void Free(HIOUtilityExchange *);
00124  }
00125 
00126 
00127 #endif
00128 
00129 #ifdef H_PACK_8
00130 #pragma pack(pop)
00131 #endif
00132 
00133 #endif