1 IDispatch接口

  1. IDispatch : public IUnknown
  2. {
  3. public:
  4. virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
  5. /* [out] */ __RPC__out UINT *pctinfo) = 0;
  6. virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
  7. /* [in] */ UINT iTInfo,
  8. /* [in] */ LCID lcid,
  9. /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo) = 0;
  10. virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
  11. /* [in] */ __RPC__in REFIID riid,
  12. /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
  13. /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
  14. /* [in] */ LCID lcid,
  15. /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId) = 0;
  16. virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke(
  17. /* [annotation][in] */
  18. _In_ DISPID dispIdMember,
  19. /* [annotation][in] */
  20. _In_ REFIID riid,
  21. /* [annotation][in] */
  22. _In_ LCID lcid,
  23. /* [annotation][in] */
  24. _In_ WORD wFlags,
  25. /* [annotation][out][in] */
  26. _In_ DISPPARAMS *pDispParams,
  27. /* [annotation][out] */
  28. _Out_opt_ VARIANT *pVarResult,
  29. /* [annotation][out] */
  30. _Out_opt_ EXCEPINFO *pExcepInfo,
  31. /* [annotation][out] */
  32. _Out_opt_ UINT *puArgErr) = 0;
  33. };

2 IDispatchEx接口

  • 派生于IDispatch
  • 最主要的特性是增加了对成员的管理,尤其是动态增加和删除成员的特性