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.
57 lines
2.2 KiB
57 lines
2.2 KiB
// --------------------------------------------------------------------------------
|
|
// basedisp.h
|
|
// Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
|
|
// --------------------------------------------------------------------------------
|
|
#ifndef __BASEDISP_H
|
|
#define __BASEDISP_H
|
|
|
|
#include "privunk.h"
|
|
//class CPrivateUnknown;
|
|
|
|
// --------------------------------------------------------------------------------
|
|
// CPrivateUnknown
|
|
// --------------------------------------------------------------------------------
|
|
class CBaseDisp :
|
|
public IDispatch,
|
|
public ISupportErrorInfo,
|
|
public CPrivateUnknown
|
|
{
|
|
protected:
|
|
LPTYPEINFO m_pTypeInfo;
|
|
LPVOID *m_pUnkInvoke;
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Construction
|
|
// ----------------------------------------------------------------------------
|
|
CBaseDisp(IUnknown *pUnkOuter=NULL);
|
|
virtual ~CBaseDisp();
|
|
|
|
virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj)
|
|
{ return CPrivateUnknown::QueryInterface(riid, ppvObj); };
|
|
virtual STDMETHODIMP_(ULONG) AddRef(void)
|
|
{ return CPrivateUnknown::AddRef();};
|
|
virtual STDMETHODIMP_(ULONG) Release(void)
|
|
{ return CPrivateUnknown::Release(); };
|
|
|
|
// *** IDispatch ***
|
|
virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
|
|
virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo **pptinfo);
|
|
virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgdispid);
|
|
virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pdispparams, VARIANT *pvarResult, EXCEPINFO *pexcepinfo, UINT *puArgErr);
|
|
|
|
// *** ISupportErrorInfo ***
|
|
virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(REFIID riid);
|
|
|
|
|
|
virtual HRESULT EnsureTypeLibrary(LPVOID *pUnkInvoke, REFIID riid);
|
|
|
|
protected:
|
|
virtual HRESULT PrivateQueryInterface(REFIID riid, LPVOID *lplpObj);
|
|
|
|
virtual HRESULT ReportError(REFCLSID rclsid, LONG ids);
|
|
|
|
};
|
|
|
|
#endif // __BASEDISP_H
|