diff options
author | Neil <nyamatongwe@gmail.com> | 2018-04-04 16:21:09 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2018-04-04 16:21:09 +1000 |
commit | 1cd26e8ee9577099631a72836197afd101aaaff5 (patch) | |
tree | 351f1315f4577970747aa37d273c2f7fd84d1883 /win32/ScintillaWin.cxx | |
parent | 27a277fe4bfeff302b3ad4752e59311ef6426193 (diff) | |
download | scintilla-mirror-1cd26e8ee9577099631a72836197afd101aaaff5.tar.gz |
Backport: Move DLL entry points DllMain and Scintilla_DirectFunction into ScintillaDLL.cxx
to simplify build process by eliminating the compilation of ScintillaWin.cxx
into ScintillaWinS.o|obj.
Backport of changeset 6670:cfe90078d684.
Diffstat (limited to 'win32/ScintillaWin.cxx')
-rw-r--r-- | win32/ScintillaWin.cxx | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index e40f4facd..07ade8edb 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -90,6 +90,7 @@ #include "PlatWin.h" #include "HanjaDic.h" +#include "ScintillaWin.h" #ifndef SPI_GETWHEELSCROLLLINES #define SPI_GETWHEELSCROLLLINES 104 @@ -3372,15 +3373,15 @@ sptr_t ScintillaWin::DirectFunction( return reinterpret_cast<ScintillaWin *>(ptr)->WndProc(iMessage, wParam, lParam); } -extern "C" -#ifndef STATIC_BUILD -__declspec(dllexport) -#endif -sptr_t __stdcall Scintilla_DirectFunction( +namespace Scintilla { + +sptr_t DirectFunction( ScintillaWin *sci, UINT iMessage, uptr_t wParam, sptr_t lParam) { return sci->WndProc(iMessage, wParam, lParam); } +} + LRESULT PASCAL ScintillaWin::SWndProc( HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { //Platform::DebugPrintf("S W:%x M:%x WP:%x L:%x\n", hWnd, iMessage, wParam, lParam); @@ -3425,28 +3426,17 @@ int Scintilla_RegisterClasses(void *hInstance) { return result; } -static int ResourcesRelease(bool fromDllMain) { +namespace Scintilla { + +int ResourcesRelease(bool fromDllMain) { const bool result = ScintillaWin::Unregister(); Platform_Finalise(fromDllMain); return result; } +} + // This function is externally visible so it can be called from container when building statically. int Scintilla_ReleaseResources() { - return ResourcesRelease(false); -} - -#ifndef STATIC_BUILD -extern "C" int APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpvReserved) { - //Platform::DebugPrintf("Scintilla::DllMain %d %d\n", hInstance, dwReason); - if (dwReason == DLL_PROCESS_ATTACH) { - if (!Scintilla_RegisterClasses(hInstance)) - return FALSE; - } else if (dwReason == DLL_PROCESS_DETACH) { - if (lpvReserved == NULL) { - ResourcesRelease(true); - } - } - return TRUE; + return Scintilla::ResourcesRelease(false); } -#endif |