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