home *** CD-ROM | disk | FTP | other *** search
- /*++
-
- Copyright (c) 1996 Microsoft Corporation
-
- Module Name:
-
- CDispMgr.h
-
- Abstract:
-
- Author:
-
- Environment:
-
- User mode
-
- Revision History :
-
- --*/
- #ifndef _CDISPMGR_H_
- #define _CDISPMGR_H_
-
- typedef struct _typeinfoentry
- {
- LONG TypeInfoId;
- void FAR *ptypeinfo;
- void * pInterfacePointer;
- struct _typeinfoentry *pNext;
- } TYPEINFOENTRY, *PTYPEINFOENTRY;
-
- class CDispatchMgr;
-
- class CDispatchMgr
- {
- public:
-
- DECLARE_IDispatch_METHODS
-
- CDispatchMgr::CDispatchMgr();
-
- CDispatchMgr::~CDispatchMgr();
-
- DISPID
- CDispatchMgr::getDISPID(DISPID InputDispId);
-
- DISPID
- CDispatchMgr::getTypeinfoID(DISPID InputDispId);
-
- void *
- CDispatchMgr::getInterfacePtr(DISPID TypeinfoID
- );
- void
- CDispatchMgr::generate_newids(LONG TypeInfoId,
- DISPID FAR* rgdispid, unsigned int cNames);
-
- PTYPEINFOENTRY
- CDispatchMgr::FindTypeInfoEntry(LONG TypeInfoId);
-
- HRESULT
- CDispatchMgr::AddTypeInfo(void FAR *ptypeinfo, void * pIntfptr);
-
-
- STDMETHODIMP
- CDispatchMgr::TypeInfoInvoke(DISPID dispidMember, REFIID iid, LCID lcid,
- unsigned short wFlags, DISPPARAMS FAR* pdispparams,
- VARIANT FAR* pvarResult, EXCEPINFO FAR* pexcepinfo,
- unsigned int FAR* puArgErr);
-
- HRESULT
- CDispatchMgr::getTypeInfo(DISPID typeinfoid, ITypeInfo FAR * FAR * ppTypeInfo) ;
-
- HRESULT
- CDispatchMgr::MarkAsNewEnum(void *pTypeInfo);
-
- PTYPEINFOENTRY
- CDispatchMgr::FindTypeInfo(void *pTypeInfo);
-
- LONG
- CDispatchMgr::gentypeinfoid();
-
- protected:
-
- LONG _dwTypeInfoId;
- PTYPEINFOENTRY _pTypeInfoEntry;
- PTYPEINFOENTRY _pDispidNewEnum;
- };
-
- #define BAIL_IF_ERROR(hr) \
- if (FAILED(hr)) { \
- goto cleanup; \
- }
- #endif
-