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