voiceroid_readonly_sdic.zip/dllmain.cpp
struct IUnknown;
#include <windows.h>
#include <Shlwapi.h>
#pragma comment(lib, "Shlwapi.lib")
void main();
FARPROC p_makeda_embedinfo = NULL;
FARPROC p_makeda_makeda = NULL;
FARPROC p_makeda_setoutput = NULL;
__declspec(naked) void WINAPI d_makeda_embedinfo() { _asm { jmp p_makeda_embedinfo } }
__declspec(naked) void WINAPI d_makeda_makeda() { _asm { jmp p_makeda_makeda } }
__declspec(naked) void WINAPI d_makeda_setoutput() { _asm { jmp p_makeda_setoutput } }
BOOL APIENTRY DllMain(HANDLE, DWORD ul_reason_for_call, LPVOID) {
static HMODULE h_original = NULL;
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH: {
h_original = ::LoadLibraryW(L"libmakeda.dll.orig");
if (h_original == NULL) {
return FALSE;
}
p_makeda_embedinfo = ::GetProcAddress(h_original, "makeda_embedinfo");
p_makeda_makeda = ::GetProcAddress(h_original, "makeda_makeda");
p_makeda_setoutput = ::GetProcAddress(h_original, "makeda_setoutput");
main();
break;
}
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
if (h_original != NULL) {
::FreeLibrary(h_original);
}
break;
}
return TRUE;
}