45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
|
#ifndef __DSPSPRT_H__
|
||
|
#define __DSPSPRT_H__
|
||
|
|
||
|
// get ITypeInfo uuid/lcid out of type library
|
||
|
STDAPI GetTypeInfoFromLibId(LCID lcid, REFGUID libid,
|
||
|
USHORT wVerMajor, USHORT wVerMinor,
|
||
|
REFGUID uuid, ITypeInfo **ppITypeInfo);
|
||
|
|
||
|
//
|
||
|
// Helper C++ class used to share code for the IDispatch implementations
|
||
|
//
|
||
|
// Inherit from this class passing this IDispatch's IID to the ctor
|
||
|
//
|
||
|
class CImpIDispatch
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
// We need access to the virtual QI -- define it PURE here
|
||
|
virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj) PURE;
|
||
|
|
||
|
protected:
|
||
|
CImpIDispatch(REFGUID libid, USHORT wVerMajor, USHORT wVerMinor, REFIID riid);
|
||
|
virtual ~CImpIDispatch(void);
|
||
|
|
||
|
// For raising exceptions
|
||
|
void Exception(WORD);
|
||
|
|
||
|
// IDispatch members
|
||
|
STDMETHODIMP GetTypeInfoCount(UINT *);
|
||
|
STDMETHODIMP GetTypeInfo(UINT, LCID, ITypeInfo **);
|
||
|
STDMETHODIMP GetIDsOfNames(REFIID, OLECHAR **, UINT, LCID, DISPID *);
|
||
|
STDMETHODIMP Invoke(DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
|
||
|
|
||
|
private:
|
||
|
REFIID m_riid;
|
||
|
REFGUID m_libid;
|
||
|
USHORT m_wVerMajor;
|
||
|
USHORT m_wVerMinor;
|
||
|
|
||
|
ITypeInfo *m_pITINeutral; // Cached Type information
|
||
|
};
|
||
|
|
||
|
#endif // __DSPSPRT_H__
|
||
|
|