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: c8f74d2da8fcdb906b34bd3cc3f71dead4896d40 $ 00013 // 00014 00016 00020 #ifndef _HIM_MANAGER_H 00021 #define _HIM_MANAGER_H 00022 00023 #ifdef H_PACK_8 00024 #pragma pack(push) 00025 #pragma pack(8) 00026 #endif 00027 00028 #include "HTools.h" 00029 00030 00031 00032 00037 #define HImRegisterCallback(callback_name, callback_function) \ 00038 do{ (HImManager::GetCurrentHImManager())->RegisterOneCallback( \ 00039 (const char *)callback_name, (void*)callback_function); }while(0); 00040 00044 #define HImSetCallback(callback_type, callback_name) \ 00045 do{ (HImManager::GetCurrentHImManager())->SetCallback( \ 00046 (const char *)callback_type, (const char *)callback_name); }while(0); 00047 00051 #define HImSetCallbackByKey(segment_key, callback_type, callback_name) \ 00052 do{ (HImManager::GetCurrentHImManager())->SetCallback( \ 00053 segment_key, (const char *)callback_type, (const char *)callback_name); }while(0); 00054 00058 #define HImUnSetOneCallback(callback_type) \ 00059 do{ (HImManager::GetCurrentHImManager())->UnSetOneCallback( \ 00060 callback_type); }while(0); 00061 00066 #define HImUnSetOneCallbackByKey(segment_key, callback_type) \ 00067 do{ (HImManager::GetCurrentHImManager())->UnSetOneCallback( \ 00068 segment_key, (const char *)callback_type); }while(0); 00069 00075 #define HImShowCallback(callback_name, callback_type) \ 00076 do{ (HImManager::GetCurrentHImManager())->ShowCallback( \ 00077 (const char *)callback_name, (char *)callback_type); }while(0); 00078 00079 00080 00081 00082 00084 00095 class MVO_API HImManager 00096 { 00097 00098 public: 00099 00100 HImManager(); 00101 virtual ~HImManager(); 00102 00104 virtual void RegisterCallbacks(); 00105 00113 virtual void RegisterOneCallback(const char * callback_name, void * callback); 00114 00123 virtual void SetCallback(HC_KEY segment_key, const char * callback_type, const char * callback_name); 00124 00133 virtual void SetCallback(const char * callback_type, const char * callback_name); 00134 00142 virtual void UnSetOneCallback(HC_KEY segment_key, const char * callback_type); 00143 00150 virtual void UnSetOneCallback(const char * callback_type); 00151 00159 virtual void ShowCallback(const char *callback_type, char * callback); 00160 00166 static HImManager *GetCurrentHImManager(); 00167 00168 }; 00169 00170 00171 #ifdef H_PACK_8 00172 #pragma pack(pop) 00173 #endif 00174 00175 #endif 00176 00177 00178 00179 00180 00181 00182