示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#4
0
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;
}
示例#5
0
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 ) );
}
示例#6
0
void PASCAL CMenu::DeleteTempMap()
/********************************/
{
    AFX_MODULE_THREAD_STATE *pState = AfxGetModuleThreadState();
    ASSERT( pState != NULL );
    CHandleMap *pHandleMap = pState->m_pmapHMENU;
    ASSERT( pHandleMap != NULL );
    pHandleMap->DeleteTemp();
}
示例#7
0
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 ) );
}
示例#8
0
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 ) );
}
示例#9
0
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;
}
示例#10
0
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;
}
示例#11
0
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;
}
示例#12
0
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;
}
示例#13
0
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;
}
示例#14
0
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;
}
示例#15
0
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;
}
示例#16
0
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;
}
示例#17
0
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;
}
示例#18
0
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;
}
示例#19
0
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;
}
示例#20
0
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 );
}
示例#21
0
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
}
示例#22
0
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 );
}
示例#23
0
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 );
}
示例#24
0
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 );
}
示例#25
0
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;
}
示例#26
0
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 );
}
示例#27
0
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 );
}
示例#28
0
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 );
}
示例#29
0
void PASCAL CImageList::DeleteTempMap()
{
        CHandleMap* pMap = afxMapHIMAGELIST();
        if (pMap != NULL)
                pMap->DeleteTemp();
}
示例#30
0
void PASCAL CDC::DeleteTempMap()
{
	CHandleMap* pMap = afxMapHDC();
	if (pMap != NULL)
		pMap->DeleteTemp();
}