96 lines
2.0 KiB
C++
96 lines
2.0 KiB
C++
// HandleProcessor.cpp: implementation of the CHandleProcessor class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "geomative.h"
|
|
#include "HandleProcessor.h"
|
|
#include "Constant.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[]=__FILE__;
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CHandleProcessor::CHandleProcessor()
|
|
{
|
|
|
|
}
|
|
|
|
CHandleProcessor::~CHandleProcessor()
|
|
{
|
|
|
|
}
|
|
|
|
DWORD CHandleProcessor::GenerateHandle(DWORD dwID, UINT uStyle)
|
|
{
|
|
DWORD dwtempHandle = (DWORD)VAL_ZERO;
|
|
DWORD dwTempID = (DWORD)VAL_ZERO;
|
|
DWORD dwTempStyle = (DWORD)VAL_ZERO;
|
|
|
|
dwTempID = (DWORD)dwID;
|
|
dwTempStyle = (DWORD)uStyle;
|
|
|
|
dwTempStyle <<= HANDLE_OFFSET;
|
|
dwtempHandle = dwTempID | dwTempStyle;
|
|
|
|
return dwtempHandle;
|
|
}
|
|
|
|
DWORD CHandleProcessor::GenerateNewHandle(DWORD dwID, UINT uStyle)
|
|
{
|
|
DWORD dwtempHandle = (DWORD)VAL_ZERO;
|
|
DWORD dwTempID = (DWORD)VAL_ZERO;
|
|
DWORD dwTempStyle = (DWORD)VAL_ZERO;
|
|
|
|
dwTempID = dwID&0x07FFFFFF;
|
|
dwTempStyle = (DWORD)uStyle;
|
|
|
|
dwTempStyle <<= HANDLE_OFFSET;
|
|
dwtempHandle = dwTempID | dwTempStyle;
|
|
|
|
return dwtempHandle;
|
|
}
|
|
|
|
void CHandleProcessor::AnalyseHandle(DWORD dwHandle, DWORD& dwID, UINT& uStyle)
|
|
{
|
|
DWORD dwTempHandle = VAL_ZERO;
|
|
DWORD dwTempID = VAL_ZERO;
|
|
DWORD dwTempStyle = VAL_ZERO;
|
|
|
|
dwTempHandle = dwHandle;
|
|
dwTempID = dwTempHandle & 0x7FFFFFF;
|
|
dwTempStyle = dwTempHandle & 0xF8000000;
|
|
dwTempStyle >>= HANDLE_OFFSET;
|
|
|
|
dwID = dwTempID;
|
|
uStyle = (UINT)dwTempStyle;
|
|
}
|
|
|
|
DWORD CHandleProcessor::GetIDFromHandle(DWORD dwHandle)
|
|
{
|
|
DWORD dwTempHandle = VAL_ZERO;
|
|
DWORD dwTempID = VAL_ZERO;
|
|
|
|
dwTempHandle = dwHandle;
|
|
dwTempID = dwTempHandle & 0x7FFFFFF;
|
|
|
|
return dwTempID;
|
|
}
|
|
|
|
UINT CHandleProcessor::GetStyleFromHandle(DWORD dwHandle)
|
|
{
|
|
DWORD dwTempHandle = VAL_ZERO;
|
|
DWORD dwTempStyle = VAL_ZERO;
|
|
|
|
dwTempHandle = dwHandle;
|
|
dwTempStyle = dwTempHandle & 0xF8000000;
|
|
dwTempStyle >>= HANDLE_OFFSET;
|
|
|
|
return (UINT)dwTempStyle;
|
|
}
|