CImageList* PASCAL CImageList::FromHandle(HIMAGELIST h) { CHandleMap* pMap = afxMapHIMAGELIST(TRUE); ASSERT(pMap != NULL); CImageList* pImageList = (CImageList*)pMap->FromHandle(h); ASSERT(pImageList == NULL || pImageList->m_hImageList == h); return pImageList; }
CDC* PASCAL CDC::FromHandle(HDC hDC) { CHandleMap* pMap = afxMapHDC(TRUE); //create map if not exist ASSERT(pMap != NULL); CDC* pDC = (CDC*)pMap->FromHandle(hDC); ASSERT(pDC == NULL || pDC->m_hDC == hDC); return pDC; }
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; }
CMenu* PASCAL CMenu::FromHandle(HMENU hMenu) { CHandleMap* pMap = afxMapHMENU(TRUE); // create map if not exist ASSERT(pMap != NULL); CMenu* pMenu = (CMenu*)pMap->FromHandle(hMenu); ASSERT(pMenu == NULL || pMenu->m_hMenu == hMenu); return pMenu; }
CImageList * PASCAL CImageList::FromHandlePermanent( HIMAGELIST hImageList ) /**************************************************************************/ { AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHIMAGELIST; ASSERT( pHandleMap != NULL ); return( (CImageList *)pHandleMap->LookupPermanent( hImageList ) ); }
void PASCAL CMenu::DeleteTempMap() /********************************/ { AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHMENU; ASSERT( pHandleMap != NULL ); pHandleMap->DeleteTemp(); }
CMenu * PASCAL CMenu::FromHandlePermanent( HMENU hMenu ) /******************************************************/ { AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHMENU; ASSERT( pHandleMap != NULL ); return( (CMenu *)pHandleMap->LookupPermanent( hMenu ) ); }
CDC * PASCAL CDC::FromHandle( HDC hDC ) /*************************************/ { AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHDC; ASSERT( pHandleMap != NULL ); return( (CDC *)pHandleMap->FromHandle( hDC ) ); }
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; }
void CDC::SetOutputDC(HDC hDC) // Set the Output DC { #ifdef _DEBUG CHandleMap* pMap = afxMapHDC(); if (pMap != NULL && pMap->LookupPermanent(m_hDC) == this) { TRACE0("Cannot Set Output hDC on Attached CDC.\n"); ASSERT(FALSE); } #endif m_hDC = hDC; }
CImageList* PASCAL CImageList::FromHandlePermanent(HIMAGELIST h) { CHandleMap* pMap = afxMapHIMAGELIST(); CImageList* pImageList = NULL; if (pMap != NULL) { // only look in the permanent map - does no allocations pMap->LookupPermanent(h, (CObject*&)pImageList); ASSERT(pImageList == NULL || pImageList->m_hImageList == h); } return pImageList; }
HMENU CMenu::Detach() { HMENU hMenu; if ((hMenu = m_hMenu) != NULL) { CHandleMap* pMap = afxMapHMENU(); // don't create if not exist if (pMap != NULL) pMap->RemoveHandle(m_hMenu); } m_hMenu = NULL; return hMenu; }
CMenu* PASCAL CMenu::FromHandlePermanent(HMENU hMenu) { CHandleMap* pMap = afxMapHMENU(); CMenu* pMenu = NULL; if (pMap != NULL) { // only look in the permanent map - does no allocations pMenu = (CMenu*)pMap->LookupPermanent(hMenu); ASSERT(pMenu == NULL || pMenu->m_hMenu == hMenu); } return pMenu; }
void CDC::ReleaseOutputDC() // Release the Output DC { #ifdef _DEBUG CHandleMap* pMap = afxMapHDC(); if (pMap != NULL && pMap->LookupPermanent(m_hDC) == this) { TRACE(traceAppMsg, 0, "Cannot Release Output hDC on Attached CDC.\n"); ASSERT(FALSE); } #endif m_hDC = NULL; }
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; }
HIMAGELIST CImageList::Detach() { HIMAGELIST hImageList = m_hImageList; if (hImageList != NULL) { CHandleMap* pMap = afxMapHIMAGELIST(); if (pMap != NULL) pMap->RemoveHandle(m_hImageList); } m_hImageList = NULL; return hImageList; }
HDC CDC::Detach() { HDC hDC = m_hDC; if (hDC != NULL) { CHandleMap* pMap = afxMapHDC(); // don't create if not exist if (pMap != NULL) pMap->RemoveHandle(m_hDC); } ReleaseAttribDC(); m_hDC = NULL; return hDC; }
BOOL CDC::Attach(HDC hDC) { ASSERT(m_hDC == NULL); // only attach once, detach on destroy ASSERT(m_hAttribDC == NULL); // only attach to an empty DC if (hDC == NULL) return FALSE; CHandleMap* pMap = afxMapHDC(TRUE); // create map if not exist ASSERT(pMap != NULL); pMap->SetPermanent(m_hDC = hDC, this); SetAttribDC(m_hDC); // Default to same as output return TRUE; }
BOOL CImageList::Attach(HIMAGELIST hImageList) { ASSERT(m_hImageList == NULL); // only attach once, detach on destroy ASSERT(FromHandlePermanent(hImageList) == NULL); if (hImageList == NULL) return FALSE; CHandleMap* pMap = afxMapHIMAGELIST(TRUE); ASSERT(pMap != NULL); pMap->SetPermanent(m_hImageList = hImageList, this); return TRUE; }
BOOL CMenu::Attach( HMENU hMenu ) /*******************************/ { ASSERT( m_hMenu == NULL ); if( hMenu == NULL ) { return( FALSE ); } m_hMenu = hMenu; AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHMENU; ASSERT( pHandleMap != NULL ); pHandleMap->SetPermanent( hMenu, this ); return( TRUE ); }
void CImageList::AssertValid() const { CObject::AssertValid(); if (m_hImageList == NULL) return; // should also be in the permanent or temporary handle map CObject* p; CHandleMap* pMap = afxMapHIMAGELIST(); ASSERT(pMap != NULL); ASSERT(pMap->LookupPermanent(m_hImageList, p) || pMap->LookupTemporary(m_hImageList, p)); ASSERT((CImageList*)p == this); // must be us }
BOOL CImageList::Attach( HIMAGELIST hImageList ) /**********************************************/ { ASSERT( m_hImageList == NULL ); if( hImageList == NULL ) { return( FALSE ); } m_hImageList = hImageList; AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHIMAGELIST; ASSERT( pHandleMap != NULL ); pHandleMap->SetPermanent( hImageList, this ); return( TRUE ); }
HMENU CMenu::Detach() /*******************/ { if( m_hMenu == NULL ) { return( NULL ); } HMENU hMenu = m_hMenu; m_hMenu = NULL; AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHMENU; ASSERT( pHandleMap != NULL ); pHandleMap->RemoveHandle( hMenu ); return( hMenu ); }
HIMAGELIST CImageList::Detach() /*****************************/ { if( m_hImageList == NULL ) { return( NULL ); } HIMAGELIST hImageList = m_hImageList; m_hImageList = NULL; AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHIMAGELIST; ASSERT( pHandleMap != NULL ); pHandleMap->RemoveHandle( hImageList ); return( hImageList ); }
BOOL CMenu::Attach(HMENU hMenu) { ASSERT(m_hMenu == NULL); // only attach once, detach on destroy if (hMenu == NULL) { return FALSE; } // Capture menu in object first to ensure it does not leak if the map cannot be allocated/expanded m_hMenu=hMenu; CHandleMap* pMap = afxMapHMENU(TRUE); // create map if not exist ASSERT(pMap != NULL); pMap->SetPermanent(m_hMenu, this); return TRUE; }
HDC CDC::Detach() /***************/ { if( m_hDC == NULL ) { return( NULL ); } HDC hDC = m_hDC; m_hDC = NULL; m_hAttribDC = NULL; AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHDC; ASSERT( pHandleMap != NULL ); pHandleMap->RemoveHandle( hDC ); return( hDC ); }
BOOL CDC::Attach( HDC hDC ) /*************************/ { ASSERT( m_hDC == NULL ); ASSERT( m_hAttribDC == NULL ); if( hDC == NULL ) { return( FALSE ); } m_hDC = hDC; m_hAttribDC = hDC; AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHDC; ASSERT( pHandleMap != NULL ); pHandleMap->SetPermanent( hDC, this ); return( TRUE ); }
BOOL CDC::DeleteDC() /******************/ { HDC hDC = m_hDC; if( m_hDC == NULL || !::DeleteDC( m_hDC ) ) { return( FALSE ); } AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState(); ASSERT( pState != NULL ); CHandleMap *pHandleMap = pState->m_pmapHDC; ASSERT( pHandleMap != NULL ); pHandleMap->RemoveHandle( m_hDC ); m_hDC = NULL; if( m_hAttribDC != hDC && m_hAttribDC != NULL && !::DeleteDC( m_hAttribDC ) ) { return( FALSE ); } m_hAttribDC = NULL; return( TRUE ); }
void PASCAL CImageList::DeleteTempMap() { CHandleMap* pMap = afxMapHIMAGELIST(); if (pMap != NULL) pMap->DeleteTemp(); }
void PASCAL CDC::DeleteTempMap() { CHandleMap* pMap = afxMapHDC(); if (pMap != NULL) pMap->DeleteTemp(); }