diff options
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/node-gyp/src')
-rw-r--r-- | sandbox/testAppNevena/Front/node_modules/node-gyp/src/win_delay_load_hook.cc | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/node-gyp/src/win_delay_load_hook.cc b/sandbox/testAppNevena/Front/node_modules/node-gyp/src/win_delay_load_hook.cc new file mode 100644 index 00000000..169f8029 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/node-gyp/src/win_delay_load_hook.cc @@ -0,0 +1,39 @@ +/* + * When this file is linked to a DLL, it sets up a delay-load hook that + * intervenes when the DLL is trying to load the host executable + * dynamically. Instead of trying to locate the .exe file it'll just + * return a handle to the process image. + * + * This allows compiled addons to work when the host executable is renamed. + */ + +#ifdef _MSC_VER + +#pragma managed(push, off) + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif + +#include <windows.h> + +#include <delayimp.h> +#include <string.h> + +static FARPROC WINAPI load_exe_hook(unsigned int event, DelayLoadInfo* info) { + HMODULE m; + if (event != dliNotePreLoadLibrary) + return NULL; + + if (_stricmp(info->szDll, HOST_BINARY) != 0) + return NULL; + + m = GetModuleHandle(NULL); + return (FARPROC) m; +} + +decltype(__pfnDliNotifyHook2) __pfnDliNotifyHook2 = load_exe_hook; + +#pragma managed(pop) + +#endif |