Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

31 lines
646 B

#ifndef _COWSITE_H_
#define _COWSITE_H_
#include <ocidl.h>
#define ATOMICRELEASE(p) \
{ \
IUnknown *pFoo = (IUnknown *)p; \
p = NULL; \
if (pFoo) \
pFoo->Release(); \
}
class CObjectWithSite : public IObjectWithSite
{
public:
CObjectWithSite() {_punkSite = NULL;};
virtual ~CObjectWithSite() {ATOMICRELEASE(_punkSite);}
//*** IUnknown ****
// (client must provide!)
//*** IObjectWithSite ***
STDMETHOD(SetSite)(IUnknown *punkSite);
STDMETHOD(GetSite)(REFIID riid, void **ppvSite);
protected:
IUnknown* _punkSite;
};
#endif