70 EXCEPINFO *pexcepinfo,
75 return ITypeInfo_Invoke(ptinfo, _this, dispidMember,
wFlags,
76 pparams, pvarResult, pexcepinfo, puArgErr);
98 return ITypeInfo_GetIDsOfNames(ptinfo, rgszNames, cNames, rgdispid);
117 DISPPARAMS *pdispparams,
127 TRACE(
"position=%d, cArgs=%d, cNamedArgs=%d\n",
128 position, pdispparams->cArgs, pdispparams->cNamedArgs);
130 if (position < pdispparams->cArgs)
133 pos = pdispparams->cArgs - position - 1;
138 for (
pos=0;
pos<pdispparams->cNamedArgs;
pos++)
139 if (pdispparams->rgdispidNamedArgs[
pos] == position)
break;
141 if (
pos==pdispparams->cNamedArgs)
145 if (pdispparams->cArgs > 0 && !pdispparams->rgvarg)
158 &pdispparams->rgvarg[
pos],
235 IDispatch_AddRef(iface);
251 TRACE(
"(%p)->(ref before=%u)\n",
This, refCount - 1);
266 TRACE(
"(%p)->(ref before=%u)\n",
This, refCount + 1);
270 ITypeInfo_Release(
This->pTypeInfo);
296 TRACE(
"(%p)\n", pctinfo);
322 TRACE(
"(%d, %x, %p)\n", iTInfo, lcid, ppTInfo);
328 *ppTInfo =
This->pTypeInfo;
329 ITypeInfo_AddRef(*ppTInfo);
367 FIXME(
" expected riid == IID_NULL\n");
398 EXCEPINFO * pExcepInfo,
UINT * puArgErr)
401 TRACE(
"(%d, %s, 0x%x, 0x%x, %p, %p, %p, %p)\n", dispIdMember,
debugstr_guid(
riid), lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
405 FIXME(
" expected riid == IID_NULL\n");
408 return DispInvoke(
This->pvThis,
This->pTypeInfo, dispIdMember,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
442 TRACE(
"(%p, %p, %p, %p)\n", punkOuter, pvThis, ptinfo, stddisp);
444 if (!pvThis || !ptinfo || !stddisp)
452 pStdDispatch->
pvThis = pvThis;
454 pStdDispatch->
ref = 1;
458 ITypeInfo_AddRef(ptinfo);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HRESULT WINAPI DispInvoke(VOID *_this, ITypeInfo *ptinfo, DISPID dispidMember, USHORT wFlags, DISPPARAMS *pparams, VARIANT *pvarResult, EXCEPINFO *pexcepinfo, UINT *puArgErr)
static HRESULT WINAPI StdDispatch_GetTypeInfoCount(LPDISPATCH iface, UINT *pctinfo)
static ULONG WINAPI StdDispatch_AddRef(LPDISPATCH iface)
static const IDispatchVtbl StdDispatch_VTable
static HRESULT WINAPI StdDispatch_Invoke(LPDISPATCH iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static StdDispatch * impl_from_IDispatch(IDispatch *iface)
HRESULT WINAPI DispGetIDsOfNames(ITypeInfo *ptinfo, OLECHAR **rgszNames, UINT cNames, DISPID *rgdispid)
static HRESULT WINAPI StdDispatch_QueryInterface(LPDISPATCH iface, REFIID riid, void **ppvObject)
static ULONG WINAPI StdDispatch_Release(LPDISPATCH iface)
static HRESULT WINAPI StdDispatch_GetIDsOfNames(LPDISPATCH iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
HRESULT WINAPI DispGetParam(DISPPARAMS *pdispparams, UINT position, VARTYPE vtTarg, VARIANT *pvarResult, UINT *puArgErr)
static HRESULT WINAPI StdDispatch_GetTypeInfo(LPDISPATCH iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
HRESULT WINAPI CreateStdDispatch(IUnknown *punkOuter, void *pvThis, ITypeInfo *ptinfo, IUnknown **stddisp)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
static VARIANTARG static DISPID
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
IDispatch IDispatch_iface
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
_In_ DWORD _Out_ _In_ WORD wFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define DISP_E_PARAMNOTFOUND