This commit is contained in:
Simon Lindholm 2022-06-29 17:33:41 +02:00
parent 916c10543d
commit f11759cc71
5 changed files with 10 additions and 9 deletions

View File

@ -20,7 +20,7 @@ namespace wibo {
void *resolveUser32(const char *name); void *resolveUser32(const char *name);
void *resolveOle32(const char *name); void *resolveOle32(const char *name);
void *resolveAdvApi32(const char *name); void *resolveAdvApi32(const char *name);
void *resolveLmgr11(uint16_t ordinal); void *resolveLmgr(uint16_t ordinal);
void *resolveStubByName(const char *dllName, const char *funcName); void *resolveStubByName(const char *dllName, const char *funcName);
void *resolveStubByOrdinal(const char *dllName, uint16_t ordinal); void *resolveStubByOrdinal(const char *dllName, uint16_t ordinal);

View File

@ -1,6 +1,6 @@
#include "common.h" #include "common.h"
namespace lmgr11 { namespace lmgr {
int lp_checkout(int a, int b, const char* c, const char* d, int e, const char* f, int* out) { int lp_checkout(int a, int b, const char* c, const char* d, int e, const char* f, int* out) {
DEBUG_LOG("lp_checkout %d %d %s %s %d %s\n", a, b, c, d, e, f); DEBUG_LOG("lp_checkout %d %d %s %s %d %s\n", a, b, c, d, e, f);
*out = 1234; *out = 1234;
@ -13,12 +13,12 @@ namespace lmgr11 {
} }
} }
void *wibo::resolveLmgr11(uint16_t ordinal) { void *wibo::resolveLmgr(uint16_t ordinal) {
switch (ordinal) { switch (ordinal) {
case 189: case 189:
return (void*)lmgr11::lp_checkin; return (void*)lmgr::lp_checkin;
case 190: case 190:
return (void*)lmgr11::lp_checkout; return (void*)lmgr::lp_checkout;
} }
return 0; return 0;
} }

View File

@ -82,8 +82,10 @@ void *wibo::resolveStubByName(const char *dllName, const char *funcName) {
} }
void *wibo::resolveStubByOrdinal(const char *dllName, uint16_t ordinal) { void *wibo::resolveStubByOrdinal(const char *dllName, uint16_t ordinal) {
if (strcmp(dllName, "LMGR11.dll") == 0 || strcmp(dllName, "LMGR326B.dll") == 0) { if (strcmp(dllName, "LMGR11.dll") == 0 ||
void* func = wibo::resolveLmgr11(ordinal); strcmp(dllName, "LMGR326B.dll") == 0 ||
strcmp(dllName, "LMGR8C.dll") == 0) {
void* func = wibo::resolveLmgr(ordinal);
if (func) if (func)
return func; return func;
} }

View File

@ -20,7 +20,7 @@ namespace ole32 {
const GUID *riid, const GUID *riid,
void **ppv void **ppv
) { ) {
// for mwcc_41_60126: // when license.dat is missing:
// rclsid = CLSID_ShellLink (0x21401), riid = IID_IShellLinkA (0x214ee) // rclsid = CLSID_ShellLink (0x21401), riid = IID_IShellLinkA (0x214ee)
// and then it crashes with a null pointer deref // and then it crashes with a null pointer deref
DEBUG_LOG("CoCreateInstance 0x%x %p %d 0x%x %p\n", rclsid->Data1, pUnkOuter, dwClsContext, riid->Data1, *ppv); DEBUG_LOG("CoCreateInstance 0x%x %p %d 0x%x %p\n", rclsid->Data1, pUnkOuter, dwClsContext, riid->Data1, *ppv);

View File

@ -4,7 +4,6 @@ namespace version {
unsigned int WIN_FUNC GetFileVersionInfoSizeA(const char* lptstrFilename, unsigned int* outZero) { unsigned int WIN_FUNC GetFileVersionInfoSizeA(const char* lptstrFilename, unsigned int* outZero) {
DEBUG_LOG("GetFileVersionInfoSizeA %s\n", lptstrFilename); DEBUG_LOG("GetFileVersionInfoSizeA %s\n", lptstrFilename);
*outZero = 0; *outZero = 0;
// stub: signal an error
wibo::lastError = 0; wibo::lastError = 0;
return 0; return 0;
} }