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 *resolveOle32(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 *resolveStubByOrdinal(const char *dllName, uint16_t ordinal);

View File

@ -1,6 +1,6 @@
#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) {
DEBUG_LOG("lp_checkout %d %d %s %s %d %s\n", a, b, c, d, e, f);
*out = 1234;
@ -13,12 +13,12 @@ namespace lmgr11 {
}
}
void *wibo::resolveLmgr11(uint16_t ordinal) {
void *wibo::resolveLmgr(uint16_t ordinal) {
switch (ordinal) {
case 189:
return (void*)lmgr11::lp_checkin;
return (void*)lmgr::lp_checkin;
case 190:
return (void*)lmgr11::lp_checkout;
return (void*)lmgr::lp_checkout;
}
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) {
if (strcmp(dllName, "LMGR11.dll") == 0 || strcmp(dllName, "LMGR326B.dll") == 0) {
void* func = wibo::resolveLmgr11(ordinal);
if (strcmp(dllName, "LMGR11.dll") == 0 ||
strcmp(dllName, "LMGR326B.dll") == 0 ||
strcmp(dllName, "LMGR8C.dll") == 0) {
void* func = wibo::resolveLmgr(ordinal);
if (func)
return func;
}

View File

@ -20,7 +20,7 @@ namespace ole32 {
const GUID *riid,
void **ppv
) {
// for mwcc_41_60126:
// when license.dat is missing:
// rclsid = CLSID_ShellLink (0x21401), riid = IID_IShellLinkA (0x214ee)
// 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);

View File

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