CGdiObject* PASCAL CGdiObject::FromHandle(HGDIOBJ h) { CHandleMap* pMap = afxMapHGDIOBJ(TRUE); //create map if not exist ASSERT(pMap != NULL); CGdiObject* pObject = (CGdiObject*)pMap->FromHandle(h); ASSERT(pObject == NULL || pObject->m_hObject == h); return pObject; }
BOOL CGdiObject::Attach(HGDIOBJ hObject) { ASSERT(m_hObject == NULL); // only attach once, detach on destroy if (hObject == NULL) return FALSE; CHandleMap* pMap = afxMapHGDIOBJ(TRUE); // create map if not exist ASSERT(pMap != NULL); pMap->SetPermanent(m_hObject = hObject, this); return TRUE; }
HGDIOBJ CGdiObject::Detach() { HGDIOBJ hObject = m_hObject; if (hObject != NULL) { CHandleMap* pMap = afxMapHGDIOBJ(); // don't create if not exist if (pMap != NULL) pMap->RemoveHandle(m_hObject); } m_hObject = NULL; return hObject; }
void PASCAL CGdiObject::DeleteTempMap() { CHandleMap* pMap = afxMapHGDIOBJ(); if (pMap != NULL) pMap->DeleteTemp(); }