AxibugEmuOnline/References/virtuanessrc097-master/Com.cpp

36 lines
1.2 KiB
C++
Raw Normal View History

<EFBFBD><EFBFBD>//
// COM)R(u<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//
#include <objbase.h>
#include "DebugOut.h"
#include "Com.h"
INT COM::m_nRefCount = 0;
LRESULT COM::AddRef()
{
if( !m_nRefCount ) {
HRESULT hr;
if( (hr = ::CoInitialize( NULL )) != S_OK ) {
DEBUGOUT( "COM::AddRef() CoInitialize failed.\n" );
return hr;
}
DEBUGOUT( "COM::AddRef() CoInitialize.\n" );
}
m_nRefCount++;
return 0L;
}
void COM::Release()
{
if( !m_nRefCount ) {
DEBUGOUT( "COM::Release() too many released.\n" );
return;
}
if( !(--m_nRefCount) ) {
::CoUninitialize();
DEBUGOUT( "COM::AddRef() CoUninitialize.\n" );
}
}