* Sync to trunk HEAD (r53298).
[reactos.git] / dll / win32 / rpcrt4 / msvc.S
index b3d655c..81a589b 100644 (file)
@@ -3,16 +3,30 @@
 
 .code32
 
-EXTERN _ObjectStubless@4:PROC
+EXTERN _ndr_client_call:PROC
 
 PUBLIC _call_stubless_func
 _call_stubless_func:
 
-    push esp        /* pointer to index */
-    call _ObjectStubless@4
-    pop edx         /* args size */
-    mov ecx, [esp]  /* return address */
+    mov ecx,[esp+4]        /* This Pointer */
+    mov ecx,[ecx]          /* This->lpVtbl */
+    mov ecx,[ecx-8]        /* MIDL_STUBLESS_PROXY_INFO */
+    mov edx,[ecx+8]        /* Info->FormatStringOffset */
+    mov edx,[edx+eax*2]    /* FormatStringOffset[index] */
+    and edx, 0000FFFFh
+    add edx,[ecx+4]        /* info->ProcFormatString + offset */
+    mov eax, [edx+8]       /* arguments size */
+    and eax, 0000FFFFh
+    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 */
     add esp, edx
     jmp ecx
 
-END
+END
\ No newline at end of file