windows-nt/Source/XPSP1/NT/public/sdk/inc/mfc42/afxmt.inl
2020-09-26 16:20:57 +08:00

51 lines
1.7 KiB
C++

// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
// Inlines for AFXMT.H
#ifdef _AFXMT_INLINE
_AFXMT_INLINE CSyncObject::operator HANDLE() const
{ return m_hObject;}
_AFXMT_INLINE BOOL CSemaphore::Unlock()
{ return Unlock(1, NULL); }
_AFXMT_INLINE BOOL CEvent::SetEvent()
{ ASSERT(m_hObject != NULL); return ::SetEvent(m_hObject); }
_AFXMT_INLINE BOOL CEvent::PulseEvent()
{ ASSERT(m_hObject != NULL); return ::PulseEvent(m_hObject); }
_AFXMT_INLINE BOOL CEvent::ResetEvent()
{ ASSERT(m_hObject != NULL); return ::ResetEvent(m_hObject); }
_AFXMT_INLINE CSingleLock::~CSingleLock()
{ Unlock(); }
_AFXMT_INLINE BOOL CSingleLock::IsLocked()
{ return m_bAcquired; }
_AFXMT_INLINE BOOL CMultiLock::IsLocked(DWORD dwObject)
{ ASSERT(dwObject < m_dwCount);
return m_bLockedArray[dwObject]; }
_AFXMT_INLINE CCriticalSection::CCriticalSection() : CSyncObject(NULL)
{ ::InitializeCriticalSection(&m_sect); }
_AFXMT_INLINE CCriticalSection::operator CRITICAL_SECTION*()
{ return (CRITICAL_SECTION*) &m_sect; }
_AFXMT_INLINE CCriticalSection::~CCriticalSection()
{ ::DeleteCriticalSection(&m_sect); }
_AFXMT_INLINE BOOL CCriticalSection::Lock()
{ ::EnterCriticalSection(&m_sect); return TRUE; }
_AFXMT_INLINE BOOL CCriticalSection::Lock(DWORD /* dwTimeout */)
{ return Lock(); }
_AFXMT_INLINE BOOL CCriticalSection::Unlock()
{ ::LeaveCriticalSection(&m_sect); return TRUE; }
#endif //_AFXMT_INLINE