Diff

Not logged in

Differences From Artifact [8bbe4efdd1d3598d]:

To Artifact [1c734ac63ab48040]:


1 import core.sys.windows.dll; < 2 import win32.windows; 1 import win32.windows; 3 import win32.winuser; < 4 import std.string; 2 import std.string; 5 import std.file; 3 import std.file; 6 import util; 4 import util; 7 import windll; 5 import windll; 8 import bga_melter; 6 import bga_melter; 9 import qbga_gui; 7 import qbga_gui; 10 8 11 //---------------------------------------------------------------- 9 //---------------------------------------------------------------- 12 // おきまりのDLL初期化ルーチン | 10 // API転送処理 13 //---------------------------------------------------------------- 11 //---------------------------------------------------------------- 14 12 15 __gshared HINSTANCE g_hinst; < 16 < 17 extern (Windows) < 18 BOOL DllMain( HINSTANCE inst, ULONG reason, void* reserved ) < 19 { < 20 switch( reason ) < 21 { < 22 case DLL_PROCESS_ATTACH: < 23 g_hinst = inst; < 24 dll_process_attach( inst, true ); < 25 if( g_orig_dll is null ) < 26 return false; < 27 break; < 28 < 29 case DLL_PROCESS_DETACH: < 30 dll_process_detach( inst, true ); < 31 break; < 32 < 33 case DLL_THREAD_ATTACH: < 34 dll_thread_attach( true, true ); < 35 break; < 36 < 37 case DLL_THREAD_DETACH: < 38 dll_thread_detach( true, true ); < 39 break; < 40 < 41 default: < 42 } < 43 return true; < 44 } < 45 < 46 //---------------------------------------------------------------- < 47 // API転送処理 < 48 //---------------------------------------------------------------- < 49 < 50 __gshared WinDLL g_orig_dll = null; | 13 WinDLL g_orig_dll = null; 51 __gshared UINT WM_ARCEXTRACT; | 14 UINT WM_ARCEXTRACT; 52 15 53 static this() 16 static this() 54 { 17 { 55 g_orig_dll = WinDLL.load( "_Bga32.DLL" ); 18 g_orig_dll = WinDLL.load( "_Bga32.DLL" ); 56 WM_ARCEXTRACT = RegisterWindowMessage("wm_arcextract"); 19 WM_ARCEXTRACT = RegisterWindowMessage("wm_arcextract"); 57 } 20 } 58 21