38 lines
1,007 B
C
38 lines
1,007 B
C
|
/*
|
||
|
** _StdClassImplementations
|
||
|
** Defines the standard implementations for a class object.
|
||
|
*/
|
||
|
|
||
|
#define _StdClassImplementations(Impl) \
|
||
|
STDMETHODIMP QueryInterface(const IID FAR& riid, void FAR* FAR* ppv); \
|
||
|
STDMETHODIMP_(ULONG) AddRef(); \
|
||
|
STDMETHODIMP_(ULONG) Release()
|
||
|
|
||
|
|
||
|
/* - - - - - - - - */
|
||
|
|
||
|
class FAR CAppCF : IClassFactory {
|
||
|
public:
|
||
|
static HRESULT MakeInst(const CLSID FAR& rclsid, const IID FAR& riid, void FAR* FAR* ppv);
|
||
|
private:
|
||
|
CAppCF(const CLSID FAR& rclsid, IUnknown FAR* FAR* ppUnknown);
|
||
|
ULONG m_refs;
|
||
|
|
||
|
public:
|
||
|
_StdClassImplementations(CAppCF);
|
||
|
STDMETHODIMP CreateInstance(IUnknown FAR* pUnknownOuter, const IID FAR& riid, void FAR* FAR* ppv);
|
||
|
STDMETHODIMP LockServer(BOOL fLock);
|
||
|
public:
|
||
|
CLSID m_clsid;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
** The usage counter keeps track of the overall usage of objects based on
|
||
|
** implementations provided by the component. This allows one to determine
|
||
|
** when the implementation is no longer in use.
|
||
|
*/
|
||
|
|
||
|
extern UINT uUseCount;
|
||
|
extern BOOL fLocked;
|
||
|
|