On Mittwoch, 30. Mai 2001 07:46, Marcus Meissner wrote:
On Wed, May 30, 2001 at 04:32:19AM +0200, Malte Starostik wrote:
Well, that was just the first thing that came to mind. Assembler was the second. I somehow didn't even think of a plain function pointer - well yes, I am more used to C++ than C :) Of course it's kinda hard to initialize a C++ method pointer from a vtable offset. Anyway, it should be implemented in winelib and not in my app, so it's not feasible after all. But that doesn't matter now that I realized a full implementation will probably need assembler as the number of arguments is virtually unlimited. So an array of parameters that is copied to the stack via inline assembler is IMHO the way to go. Will give it a try.
?
Why can't you use the WINE supplied macros INTERFACE_FUNCTION?
IDispatch_Invoke(ptr,arg1,arg2,.......);
They should be defined to the correct C++ method calls.
Because all I have is an IDispatch pointer and a vtable offset to the method. Calling Invoke itself is not a problem at all. The method to be called by Invoke isn't known at compile time. -Malte