windows-nt/Source/XPSP1/NT/windows/winstate/cobra/app/migwiz/cowsite.h
2020-09-26 16:20:57 +08:00

32 lines
646 B
C++

#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