// 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; }