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);
ULONG(__stdcall *_RegisterTraceGuids)(__in IN WMIDPREQUEST RequestAddress
INonDelegatingUnknown * PNDUNKNOWN
STDAPI GetInterface(LPUNKNOWN pUnk, __out void **ppv)
#define ValidateReadWritePtr(p, cb)
STDMETHODIMP_(ULONG) CUnknown
BOOL WINAPI IsEqualObject(IUnknown *pFirst, IUnknown *pSecond)
static T ourmax(const T &a, const T &b)
STDMETHODIMP NonDelegatingQueryInterface(REFIID, __deref_out void **)
#define CheckPointer(p, ret)
CUnknown(__in_opt LPCTSTR pName, __in_opt LPUNKNOWN pUnk)
static const TCHAR szOle32Aut[]
#define DbgRegisterObjectDestruction(dwCookie)
#define DbgRegisterObjectCreation(pObjectName)