2011-06-21 12:22:47 +00:00
|
|
|
|
|
|
|
#include <asm.inc>
|
|
|
|
|
|
|
|
.code32
|
|
|
|
|
2011-08-07 16:15:10 +00:00
|
|
|
EXTERN _ndr_client_call:PROC
|
2011-06-21 12:22:47 +00:00
|
|
|
|
|
|
|
PUBLIC _call_stubless_func
|
|
|
|
_call_stubless_func:
|
|
|
|
|
2011-08-07 16:15:10 +00:00
|
|
|
mov ecx,[esp+4] /* This Pointer */
|
|
|
|
mov ecx,[ecx] /* This->lpVtbl */
|
|
|
|
mov ecx,[ecx-8] /* MIDL_STUBLESS_PROXY_INFO */
|
2011-08-07 22:42:06 +00:00
|
|
|
mov edx,[ecx+8] /* Info->FormatStringOffset */
|
|
|
|
mov edx,[edx+eax*2] /* FormatStringOffset[index] */
|
|
|
|
and edx, 0000FFFFh
|
2011-08-07 16:15:10 +00:00
|
|
|
add edx,[ecx+4] /* info->ProcFormatString + offset */
|
2011-08-07 22:42:06 +00:00
|
|
|
mov eax, [edx+8] /* arguments size */
|
|
|
|
and eax, 0000FFFFh
|
2011-08-07 16:15:10 +00:00
|
|
|
push eax
|
|
|
|
lea eax, [esp+8] /* &This */
|
|
|
|
push eax
|
|
|
|
push edx /* format string */
|
|
|
|
push [ecx] /* info->pstubdesc */
|
|
|
|
call _ndr_client_call
|
|
|
|
lea esp, [esp+12]
|
|
|
|
pop edx /* arguments size */
|
|
|
|
mov ecx, [esp] /* return address */
|
2011-06-21 12:22:47 +00:00
|
|
|
add esp, edx
|
|
|
|
jmp ecx
|
|
|
|
|
2011-08-07 16:15:10 +00:00
|
|
|
END
|