Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1985 - 1999, Microsoft Corporation
Module Name:
atom.cpp
Abstract:
This file implements the CAtomObject class.
Author:
Revision History:
Notes:
--*/
#include "private.h"
#include "atom.h"
#include "globals.h"
//+---------------------------------------------------------------------------
//
// CAtomObject
//
//----------------------------------------------------------------------------
HRESULT CAtomObject::_InitAtom( LPCTSTR lpString ) { HRESULT hr; size_t cch;
if (m_AtomName) return S_OK;
hr = StringCchLength(lpString, 255, &cch); if (hr != S_OK) return hr;
m_AtomName = new TCHAR[cch+1]; if (m_AtomName == NULL) return E_OUTOFMEMORY;
hr = StringCchCopy(m_AtomName, cch+1, lpString); return hr; }
HRESULT CAtomObject::_Activate() { EnterCriticalSection(g_cs);
int ref = ++m_AtomRefCount;
if (ref == 1) { //
// Add AIMM1.2 ATOM
//
m_Atom = AddAtom(m_AtomName); }
LeaveCriticalSection(g_cs);
return S_OK; }
HRESULT CAtomObject::_Deactivate() { EnterCriticalSection(g_cs);
int ref = --m_AtomRefCount;
if (ref == 0) { //
// Delete AIMM1.2 ATOM
//
DeleteAtom(m_Atom); m_Atom = 0; }
LeaveCriticalSection(g_cs);
return S_OK; }
|