aboutsummaryrefslogtreecommitdiffhomepage
path: root/win32/ScintillaDLL.cxx
blob: ca2c91addbc706ab16eb9525cf67005de530ff13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Scintilla source code edit control
/** @file ScintillaDLL.cxx
 ** DLL entry point for Scintilla.
 **/
// Copyright 1998-2018 by Neil Hodgson <neilh@scintilla.org>
// The License.txt file describes the conditions under which this software may be distributed.

#include <cstdint>

#undef _WIN32_WINNT
#define _WIN32_WINNT 0x0500
#undef WINVER
#define WINVER 0x0500
#include <windows.h>

#include "ScintillaTypes.h"
#include "ScintillaWin.h"

using namespace Scintilla;

extern "C"
__declspec(dllexport)
sptr_t __stdcall Scintilla_DirectFunction(
    Internal::ScintillaWin *sci, UINT iMessage, uptr_t wParam, sptr_t lParam) {
	return Internal::DirectFunction(sci, iMessage, wParam, lParam);
}

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 (!Internal::RegisterClasses(hInstance))
			return FALSE;
	} else if (dwReason == DLL_PROCESS_DETACH) {
		if (lpvReserved == NULL) {
			Internal::ResourcesRelease(true);
		}
	}
	return TRUE;
}