00001 // Copyright (c) 1998-2014 by Tech Soft 3D, Inc. 00002 // 00003 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., 00004 // and considered a trade secret as defined under civil and criminal statutes. 00005 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of 00006 // unauthorized use or misappropriation of its trade secrets. Use of this information 00007 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under 00008 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use. 00009 00010 #ifndef _HIOUTILITYHSF_H 00011 #define _HIOUTILITYHSF_H 00012 00013 #ifdef H_PACK_8 00014 #pragma pack(push) 00015 #pragma pack(8) 00016 #endif 00017 00018 #include "HTools.h" 00019 #include "HIOManager.h" 00020 00024 class MVO_API HIOUtilityHsf: public HInputHandler, public HOutputHandler 00025 { 00026 00027 public: 00028 00030 HIOUtilityHsf() { 00031 SetInputOps(HInputOpFileInputByKey); 00032 SetOutputOps(HOutputOpFileOutputByKey); 00033 }; 00034 00035 virtual ~HIOUtilityHsf() {;}; 00036 00039 const char * GetOutputName() { return "HIOUtilityHsf"; } 00040 const char * GetInputName() { return "HIOUtilityHsf"; } 00041 00043 void RegisterInputHandlerTypes(); 00044 00046 const char * GetInputTypesString(); 00047 00049 HInputHandlerStyle GetInputStyle() {return HInputHandlerStyleModel;}; 00050 00060 HFileInputResult FileInputByKey(const __wchar_t * FileName, HC_KEY key, HInputHandlerOptions * options); 00061 00062 HFileInputResult FileInputByKey(const char * FileName, HC_KEY key, HInputHandlerOptions * options){ 00063 return FileInputByKey(H_WCS(FileName).encodedText(), key, options); 00064 }; 00065 00066 HFileInputResult FileInputByKey(const unsigned short * FileName, HC_KEY key, HInputHandlerOptions * options){ 00067 H_UTF16 utf16; 00068 utf16.encodedText((utf16_char const*) FileName); 00069 return FileInputByKey(H_WCS(utf16).encodedText(), key, options); 00070 }; 00071 00073 void RegisterOutputHandlerTypes(); 00074 00076 const char * GetOutputTypesString(); 00077 00079 HOutputHandlerStyle GetOutputStyle() {return HOutputHandlerStyleModel;}; 00080 00090 HFileOutputResult FileOutputByKey(const __wchar_t * filename, HC_KEY key, HOutputHandlerOptions * options); 00091 00092 HFileOutputResult FileOutputByKey(const unsigned short * filename, HC_KEY key, HOutputHandlerOptions * options){ 00093 H_UTF16 utf16; 00094 utf16.encodedText((utf16_char const*) filename); 00095 return FileOutputByKey(H_WCS(utf16).encodedText(), key, options); 00096 } 00097 00098 HFileOutputResult FileOutputByKey(const char * filename, HC_KEY key, HOutputHandlerOptions * options){ 00099 return FileOutputByKey(H_WCS(filename).encodedText(), key, options); 00100 } 00101 00102 private: 00103 HFileOutputResult FileOutputCommon(const __wchar_t * FileName, HC_KEY key, HOutputHandlerOptions * options); 00104 00105 00106 }; 00107 00108 00109 #ifdef H_PACK_8 00110 #pragma pack(pop) 00111 #endif 00112 00113 #endif