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
677 B
31 lines
677 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
|