|
|
/*--------------------------------------------------------------------------*
* * Microsoft Windows * Copyright (C) Microsoft Corporation, 1992 - 1999 * * File: wrapper.cpp * * Contents: Implementation file for simple wrapper classes * * History: 02-Feb-98 jeffro Created * *--------------------------------------------------------------------------*/
#include "stdafx.h"
#include "wrapper.h"
/*+-------------------------------------------------------------------------*
* CAccel::CAccel * * *--------------------------------------------------------------------------*/
CAccel::CAccel (HACCEL hAccel /* =NULL */) : m_hAccel (hAccel) { }
CAccel::CAccel (LPACCEL paccl, int cEntries) : m_hAccel (::CreateAcceleratorTable (paccl, cEntries)) { }
/*+-------------------------------------------------------------------------*
* CAccel::~CAccel * * *--------------------------------------------------------------------------*/
CAccel::~CAccel () { DestroyAcceleratorTable (); }
/*+-------------------------------------------------------------------------*
* CAccel::CreateAcceleratorTable * * *--------------------------------------------------------------------------*/
bool CAccel::CreateAcceleratorTable (LPACCEL paccl, int cEntries) { DestroyAcceleratorTable (); ASSERT (m_hAccel == NULL); if(paccl != NULL) m_hAccel = ::CreateAcceleratorTable (paccl, cEntries);
return (m_hAccel != NULL); }
/*+-------------------------------------------------------------------------*
* CAccel::CopyAcceleratorTable * * *--------------------------------------------------------------------------*/
int CAccel::CopyAcceleratorTable (LPACCEL paccl, int cEntries) const { return (::CopyAcceleratorTable (m_hAccel, paccl, cEntries)); }
/*+-------------------------------------------------------------------------*
* CAccel::DestroyAcceleratorTable * * *--------------------------------------------------------------------------*/
void CAccel::DestroyAcceleratorTable () { if (m_hAccel != NULL) { ::DestroyAcceleratorTable (m_hAccel); m_hAccel = NULL; } }
/*+-------------------------------------------------------------------------*
* CAccel::LoadAccelerators * * *--------------------------------------------------------------------------*/
bool CAccel::LoadAccelerators (int nAccelID) { return (LoadAccelerators (MAKEINTRESOURCE (nAccelID))); }
/*+-------------------------------------------------------------------------*
* CAccel::LoadAccelerators * * *--------------------------------------------------------------------------*/
bool CAccel::LoadAccelerators (LPCTSTR pszAccelName) { HINSTANCE hInst = AfxFindResourceHandle (pszAccelName, RT_ACCELERATOR); return (LoadAccelerators (hInst, pszAccelName)); }
/*+-------------------------------------------------------------------------*
* CAccel::LoadAccelerators * * *--------------------------------------------------------------------------*/
bool CAccel::LoadAccelerators (HINSTANCE hInst, LPCTSTR pszAccelName) { DestroyAcceleratorTable (); ASSERT (m_hAccel == NULL); m_hAccel = ::LoadAccelerators (hInst, pszAccelName);
return (m_hAccel != NULL); }
/*+-------------------------------------------------------------------------*
* CAccel::TranslateAccelerator * * *--------------------------------------------------------------------------*/
bool CAccel::TranslateAccelerator (HWND hwnd, LPMSG pmsg) const { return ((m_hAccel != NULL) && ::TranslateAccelerator (hwnd, m_hAccel, pmsg)); }
/*+-------------------------------------------------------------------------*
* CDeferWindowPos::CDeferWindowPos * * *--------------------------------------------------------------------------*/
CDeferWindowPos::CDeferWindowPos ( int cWindows, bool fSynchronousPositioningForDebugging) : m_hdwp (NULL), m_fSynchronousPositioningForDebugging (fSynchronousPositioningForDebugging) { Begin (cWindows); }
/*+-------------------------------------------------------------------------*
* CDeferWindowPos::~CDeferWindowPos * * *--------------------------------------------------------------------------*/
CDeferWindowPos::~CDeferWindowPos () { if (m_hdwp) End(); }
/*+-------------------------------------------------------------------------*
* CDeferWindowPos::Begin * * *--------------------------------------------------------------------------*/
bool CDeferWindowPos::Begin (int cWindows) { ASSERT (m_hdwp == NULL); ASSERT (cWindows > 0);
m_hdwp = ::BeginDeferWindowPos (cWindows); return (m_hdwp != NULL); }
/*+-------------------------------------------------------------------------*
* CDeferWindowPos::End * * *--------------------------------------------------------------------------*/
bool CDeferWindowPos::End () { ASSERT (m_hdwp != NULL); HDWP hdwp = m_hdwp; m_hdwp = NULL;
if ( hdwp == NULL ) return false;
return (::EndDeferWindowPos (hdwp) != 0); }
/*+-------------------------------------------------------------------------*
* CDeferWindowPos::AddWindow * * *--------------------------------------------------------------------------*/
bool CDeferWindowPos::AddWindow ( const CWnd* pwnd, const CRect& rect, DWORD dwFlags, const CWnd* pwndInsertAfter /* =NULL */) { ASSERT (IsWindow (pwnd->GetSafeHwnd()));
if (pwndInsertAfter == NULL) dwFlags |= SWP_NOZORDER;
if ( m_hdwp == NULL ) return false;
m_hdwp = ::DeferWindowPos (m_hdwp, pwnd->GetSafeHwnd(), pwndInsertAfter->GetSafeHwnd(), rect.left, rect.top, rect.Width(), rect.Height(), dwFlags);
#ifdef DBG
if (m_fSynchronousPositioningForDebugging) { End (); Begin (1); } #endif
return (m_hdwp != NULL); }
|