Skip to content

Commit 59779a0

Browse files
committed
[MSXML3][RPCRT4]
1 parent c75b4c6 commit 59779a0

5 files changed

Lines changed: 39 additions & 3 deletions

File tree

dll/win32/msxml3/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ add_library(msxml3 MODULE
7171

7272
add_idl_headers(xmlparser_idlheader xmlparser.idl)
7373
set_module_type(msxml3 win32dll)
74-
target_link_libraries(msxml3 libxml2 iconv-static uuid wine wine_dll_register zlib)
74+
target_link_libraries(msxml3 libxml2 iconv-static uuid wine zlib)
7575

7676
if(MSVC)
7777
target_compile_options(msxml3 PRIVATE /FIwine/typeof.h /FImsvc.h)

dll/win32/msxml3/main.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,24 @@ HINSTANCE MSXML_hInstance = NULL;
5252

5353
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
5454

55+
#ifdef __REACTOS__
56+
static inline void *image_base(void)
57+
{
58+
#if defined(__MINGW32__) || defined(_MSC_VER)
59+
extern IMAGE_DOS_HEADER __ImageBase;
60+
return (void *)&__ImageBase;
61+
#else
62+
extern IMAGE_NT_HEADERS __wine_spec_nt_header;
63+
return (void *)((__wine_spec_nt_header.OptionalHeader.ImageBase + 0xffff) & ~0xffff);
64+
#endif
65+
}
66+
67+
HRESULT WINAPI DllRegisterServer(void)
68+
{
69+
return __wine_register_resources( image_base() );
70+
}
71+
#endif
72+
5573
void wineXmlCallbackLog(char const* caller, xmlErrorLevel lvl, char const* msg, va_list ap)
5674
{
5775
enum __wine_debug_class dbcl;

dll/win32/msxml3/msxml3.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99
@ stdcall -private DllCanUnloadNow()
1010
@ stdcall DllGetClassObject(ptr ptr ptr)
1111
@ stdcall -private DllRegisterServer()
12-
@ stdcall -private DllUnregisterServer()
12+
@ stdcall -stub -private DllUnregisterServer()

dll/win32/rpcrt4/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ if(MSVC)
6565
endif()
6666

6767
set_module_type(rpcrt4 win32dll)
68-
target_link_libraries(rpcrt4 wine wine_dll_register uuid ${PSEH_LIB} oldnames)
68+
target_link_libraries(rpcrt4 wine uuid ${PSEH_LIB} oldnames)
6969
add_delay_importlibs(rpcrt4 iphlpapi wininet secur32 user32 ole32 oleaut32)
7070
add_importlibs(rpcrt4 advapi32 advapi32_vista kernel32_vista ws2_32 msvcrt kernel32 ntdll)
7171
add_dependencies(rpcrt4 ndr_types_header)

dll/win32/rpcrt4/rpcrt4_main.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,24 @@ struct interface_header
101101
RPC_SYNTAX_IDENTIFIER id;
102102
};
103103

104+
#ifdef __REACTOS__
105+
static inline void *image_base(void)
106+
{
107+
#if defined(__MINGW32__) || defined(_MSC_VER)
108+
extern IMAGE_DOS_HEADER __ImageBase;
109+
return (void *)&__ImageBase;
110+
#else
111+
extern IMAGE_NT_HEADERS __wine_spec_nt_header;
112+
return (void *)((__wine_spec_nt_header.OptionalHeader.ImageBase + 0xffff) & ~0xffff);
113+
#endif
114+
}
115+
116+
HRESULT WINAPI DllRegisterServer(void)
117+
{
118+
return __wine_register_resources( image_base() );
119+
}
120+
#endif
121+
104122
/***********************************************************************
105123
* DllMain
106124
*

0 commit comments

Comments
 (0)