12 #pragma warning( disable : 4514 ) // Disable warnings re unused inline functions
17 LONG CBaseObject::m_cObjects = 0;
22 CBaseObject::CBaseObject(__in_opt LPCTSTR
pName)
25 InterlockedIncrement(&m_cObjects);
39 CBaseObject::CBaseObject(
const char *
pName)
42 InterlockedIncrement(&m_cObjects);
57 if (InterlockedDecrement(&m_cObjects) == 0) {
87 #pragma warning( disable : 4355 4100 )
99 , m_pUnknown( pUnk != 0 ? pUnk : reinterpret_cast<LPUNKNOWN>( static_cast<
PNDUNKNOWN>(this) ) )
113 m_pUnknown( pUnk != 0 ? pUnk : reinterpret_cast<LPUNKNOWN>( static_cast<
PNDUNKNOWN>(this) ) )
120 m_pUnknown( pUnk != 0 ? pUnk : reinterpret_cast<LPUNKNOWN>( static_cast<
PNDUNKNOWN>(this) ) )
125 m_pUnknown( pUnk != 0 ? pUnk : reinterpret_cast<LPUNKNOWN>( static_cast<
PNDUNKNOWN>(this) ) )
130 #pragma warning( default : 4355 4100 )
142 if (
riid == IID_IUnknown) {
147 return E_NOINTERFACE;
156 template<
class T>
inline static T
ourmax(
const T & a,
const T & b )
158 return a > b ? a : b;
165 LONG lRef = InterlockedIncrement( &
m_cRef );
179 LONG lRef = InterlockedDecrement( &
m_cRef );
229 if (pFirst == pSecond) {
244 hr = pFirst->QueryInterface(IID_IUnknown,(
void **) &pUnknown1);
252 pUnknown1->Release();
254 hr = pSecond->QueryInterface(IID_IUnknown,(
void **) &pUnknown2);
262 pUnknown2->Release();
263 return (pUnknown1 == pUnknown2);