aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/Scintilla.h3
-rw-r--r--win32/ScintillaWin.cxx13
2 files changed, 16 insertions, 0 deletions
diff --git a/include/Scintilla.h b/include/Scintilla.h
index 4a812fc0e..7a7ee8c05 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -520,6 +520,9 @@ struct SCNotification {
#define SCI_PASTE 5026
#define SCI_SETTEXT 5027
+#define SCI_GETDIRECTFUNCTION 5040
+#define SCI_GETDIRECTPOINTER 5041
+
#define SCFIND_MATCHCASE 4
#define SCFIND_WHOLEWORD 2
#define SCFIND_DOWN 1
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index bd4254830..8d4d8f8cf 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -114,6 +114,8 @@ class ScintillaWin :
virtual void Initialise();
virtual void Finalise();
+ static LRESULT DirectFunction(
+ ScintillaWin *sci, UINT iMessage, WPARAM wParam, LPARAM lParam);
static LRESULT PASCAL SWndProc(
HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam);
static LRESULT PASCAL CTWndProc(
@@ -556,6 +558,12 @@ LRESULT ScintillaWin::WndProc(unsigned int iMessage, unsigned long wParam, long
case WM_WINDOWPOSCHANGED:
return ::DefWindowProc(wMain.GetID(), iMessage, wParam, lParam);
+ case SCI_GETDIRECTFUNCTION:
+ return reinterpret_cast<LRESULT>(DirectFunction);
+
+ case SCI_GETDIRECTPOINTER:
+ return reinterpret_cast<LRESULT>(this);
+
default:
return ScintillaBase::WndProc(iMessage, wParam, lParam);
}
@@ -1528,6 +1536,11 @@ LRESULT PASCAL ScintillaWin::CTWndProc(
}
}
+LRESULT ScintillaWin::DirectFunction(
+ ScintillaWin *sci, UINT iMessage, WPARAM wParam, LPARAM 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);