Windows2003-3790/inetcore/outlookexpress/mailnews/om/basedisp.h
2020-09-30 16:53:55 +02:00

58 lines
2.2 KiB
C++

// --------------------------------------------------------------------------------
// 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