Files
Work/common/INSTANCE.HPP
2024-08-07 09:09:36 -04:00

93 lines
2.1 KiB
C++

#ifndef _COMMON_INSTANCEDATA_HPP_
#define _COMMON_INSTANCEDATA_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#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