Post by Alexander NickolovIDispatch doesn't have a method called DispCallFunc, perhaps you
confuse it with the global undocumented function you and Igor
discussed?
Yes, I was confused.
There's no IDispatch::DispCallFunc().
Post by Alexander NickolovAs for ITypeInfo::Invoke, it's very possible it has a one
line implementaiton calling this undocumented function. Do I have
to explain you the difference between a documented and an
undocumented API?
Do you mean by this that ITypeInfo::Invoke() have to call
the "undocumented API function DispCallFunc()" internally
or, ITypeInfo::Invoke can be implemented with DispCallFunc()?
Anyway, Yes, Please.
"Alexander Nickolov" <***@mvps.org> wrote in message news:***@TK2MSFTNGP10.phx.gbl...
IDispatch doesn't have a method called DispCallFunc, perhaps you
confuse it with the global undocumented function you and Igor
discussed? As for ITypeInfo::Invoke, it's very possible it has a one
line implementaiton calling this undocumented function. Do I have
to explain you the difference between a documented and an
undocumented API?
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: ***@mvps.org
MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================
Post by Alexander NickolovThanks Igor.
Then, one more question I have is
what differences between the ITypeInfo::Invoke() and the
IDispatch::DispCallFunc()
are.
Both of them do the same things and using the same stuffs, aren't they?
Thank you very much, in advance.
Post by Igor TandetnikPost by David K. KimI saw the above "DispCallFunc()" called
at IDispEventSimpleImpl::InvokeFromFuncInfo() in <ATLCOM.h>.
But I don't know how it works.
What's that function?
It's an undocumented function from oleaut32.dll that can invoke a method
on a dual interface, given a description of the method's signature and
parameters passed to IDispatch::Invoke. It handles all the details of
parsing parameters from DISPPARAMS structure, coercing them to
appropriate types, building a stack frame, calling the method, and
packing the result into the variant.
--
With best wishes,
Igor Tandetnik
"For every complex problem, there is a solution that is simple, neat,
and wrong." H.L. Mencken