#ifndef _COMMON_INSTANCEDATA_HPP_ #define _COMMON_INSTANCEDATA_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif class InstanceData { public: InstanceData(void); ~InstanceData(); static void FAR *getInstanceData(HWND hPropertyWnd); static void setInstanceData(HWND hPropertyWnd,void FAR *lpPointer); static void removeInstanceData(HWND hPropertyWnd); private: InstanceData(const InstanceData &someInstanceData); }; inline InstanceData::InstanceData(void) { return; } inline InstanceData::InstanceData(const InstanceData &/*someProperty*/) { return; } inline InstanceData::~InstanceData() { return; } #ifdef __FLAT__ inline void FAR *InstanceData::getInstanceData(HWND hPropertyWnd) { if(!::IsWindow(hPropertyWnd))return (void FAR*)0; return (void FAR*)::GetProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@NEARPTR"); } inline void InstanceData::setInstanceData(HWND hPropertyWnd,void FAR *lpPointer) { if(!::IsWindow(hPropertyWnd))return; ::SetProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@NEARPTR",(HANDLE)lpPointer); return; } inline void InstanceData::removeInstanceData(HWND hPropertyWnd) { if(!::IsWindow(hPropertyWnd))return; ::RemoveProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@NEARPTR"); return; } #else inline void FAR *InstanceData::getInstanceData(HWND hPropertyWnd) { HANDLE handleSegment; HANDLE handleOffset; if(!::IsWindow(hPropertyWnd))return (void FAR*)0; handleSegment=::GetProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@HIWORD"); handleOffset=::GetProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@LOWORD"); return (void FAR*)(MK_FP(handleSegment,handleOffset)); } inline void InstanceData::setInstanceData(HWND hPropertyWnd,void FAR *lpPointer) { if(!::IsWindow(hPropertyWnd))return; ::SetProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@HIWORD",(HANDLE)FP_SEG(lpPointer)); ::SetProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@LOWORD",(HANDLE)FP_OFF(lpPointer)); return; } inline void InstanceData::removeInstanceData(HWND hPropertyWnd) { if(!::IsWindow(hPropertyWnd))return; ::RemoveProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@HIWORD"); ::RemoveProp(hPropertyWnd,(LPSTR)"INSTANCEDATA@@LOWORD"); return; } #endif #endif