[ object, uuid(00020400-0000-0000-C000-000000000046), //IDispatch接口的IID =IID_IDispatch pointer_default(unique) ] interface IDispatch : IUnknown { typedef [unique] IDispatch * LPDISPATCH; // 转定义 IDispatch * 为 LPDISPATCH HRESULT GetTypeInfoCount([out] UINT * pctinfo); HRESULT GetTypeInfo([in] UINT iTInfo,[in] LCID lcid, [out] ITypeInfo ** ppTInfo); HRESULT GetIDsOfNames( // 根据函数名字,取得函数序号(DISPID) [in] REFIID riid, [in, size_is(cNames)] LPOLESTR * rgszNames, [in] UINT cNames, [in] LCID lcid, [out, size_is(cNames)] DISPID * rgDispId ); [local] //本地版函数 HRESULT Invoke( [in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] WORD wFlags, [in, out] DISPPARAMS * pDispParams, [out] VARIANT * pVarResult, [out] EXCEPINFO * pExcepInfo, [out] UINT * puArgErr ); [call_as(Invoke)] //远程版函数 HRESULT RemoteInvoke( [in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] DWORD dwFlags, [in] DISPPARAMS * pDispParams, [out] VARIANT * pVarResult, [out] EXCEPINFO * pExcepInfo, [out] UINT * pArgErr, [in] UINT cVarRef, [in, size_is(cVarRef)] UINT * rgVarRefIdx, [in, out, size_is(cVarRef)] VARIANTARG * rgVarRef ); } |