AxibugEmuOnline/virtuanessrc097-master/Com.cpp

36 lines
1.2 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// COM利用サポートクラス
//
#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" );
}
}