Alexandre Julliard : mscoree: Implement a number of interop helpers.

Alexandre Julliard julliard at winehq.org
Tue Mar 25 14:19:46 CDT 2008


Module: wine
Branch: master
Commit: 6e5bc73b8d58c79a39595c20b280d94ec70f0e75
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6e5bc73b8d58c79a39595c20b280d94ec70f0e75

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Mar 25 15:21:18 2008 +0100

mscoree: Implement a number of interop helpers.

---

 dlls/mscoree/mscoree.spec   |   10 ++++++++
 dlls/mscoree/mscoree_main.c |   50 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/dlls/mscoree/mscoree.spec b/dlls/mscoree/mscoree.spec
index 8a1e1f8..34defdc 100644
--- a/dlls/mscoree/mscoree.spec
+++ b/dlls/mscoree/mscoree.spec
@@ -72,6 +72,16 @@
 @ stdcall LoadStringRCEx(long long ptr long long ptr)
 @ stub LockClrVersion
 @ stub MetaDataGetDispenser
+@ stdcall ND_CopyObjDst(ptr ptr long long)
+@ stdcall ND_CopyObjSrc(ptr long ptr long)
+@ stdcall ND_RI2(ptr long)
+@ stdcall ND_RI4(ptr long)
+@ stdcall -ret64 ND_RI8(ptr long)
+@ stdcall ND_RU1(ptr long)
+@ stdcall ND_WI2(ptr long long)
+@ stdcall ND_WI4(ptr long long)
+@ stdcall ND_WI8(ptr long long long)
+@ stdcall ND_WU1(ptr long long)
 @ stub OpenCtrs
 @ stub ReOpenMetaDataWithMemoryEx
 @ stub RunDll at ShimW
diff --git a/dlls/mscoree/mscoree_main.c b/dlls/mscoree/mscoree_main.c
index 7093590..6f850f2 100644
--- a/dlls/mscoree/mscoree_main.c
+++ b/dlls/mscoree/mscoree_main.c
@@ -320,3 +320,53 @@ HRESULT WINAPI DllCanUnloadNow(VOID)
     FIXME("stub\n");
     return S_OK;
 }
+
+INT WINAPI ND_RU1( const void *ptr, INT offset )
+{
+    return *((const BYTE *)ptr + offset);
+}
+
+INT WINAPI ND_RI2( const void *ptr, INT offset )
+{
+    return *(const SHORT *)((const BYTE *)ptr + offset);
+}
+
+INT WINAPI ND_RI4( const void *ptr, INT offset )
+{
+    return *(const INT *)((const BYTE *)ptr + offset);
+}
+
+INT64 WINAPI ND_RI8( const void *ptr, INT offset )
+{
+    return *(const INT64 *)((const BYTE *)ptr + offset);
+}
+
+void WINAPI ND_WU1( void *ptr, INT offset, BYTE val )
+{
+    *((BYTE *)ptr + offset) = val;
+}
+
+void WINAPI ND_WI2( void *ptr, INT offset, SHORT val )
+{
+    *(SHORT *)((BYTE *)ptr + offset) = val;
+}
+
+void WINAPI ND_WI4( void *ptr, INT offset, INT val )
+{
+    *(INT *)((BYTE *)ptr + offset) = val;
+}
+
+void WINAPI ND_WI8( void *ptr, INT offset, INT64 val )
+{
+    *(INT64 *)((BYTE *)ptr + offset) = val;
+}
+
+void WINAPI ND_CopyObjDst( const void *src, void *dst, INT offset, INT size )
+{
+    memcpy( (BYTE *)dst + offset, src, size );
+}
+
+void WINAPI ND_CopyObjSrc( const void *src, INT offset, void *dst, INT size )
+{
+    memcpy( dst, (const BYTE *)src + offset, size );
+}




More information about the wine-cvs mailing list