Commit 7f84cc48 authored by Kevin Koltzau's avatar Kevin Koltzau Committed by Alexandre Julliard

riched20: Implement EM_SETOLECALLBACK.

parent f03c86a2
...@@ -223,8 +223,6 @@ ...@@ -223,8 +223,6 @@
#include "editor.h" #include "editor.h"
#include "commdlg.h" #include "commdlg.h"
#include "ole2.h"
#include "richole.h"
#include "winreg.h" #include "winreg.h"
#define NO_SHLWAPI_STREAM #define NO_SHLWAPI_STREAM
#include "shlwapi.h" #include "shlwapi.h"
...@@ -889,6 +887,7 @@ ME_TextEditor *ME_MakeEditor(HWND hWnd) { ...@@ -889,6 +887,7 @@ ME_TextEditor *ME_MakeEditor(HWND hWnd) {
ed->bRedraw = TRUE; ed->bRedraw = TRUE;
ed->nInvalidOfs = -1; ed->nInvalidOfs = -1;
ed->pfnWordBreak = NULL; ed->pfnWordBreak = NULL;
ed->lpOleCallback = NULL;
GetClientRect(hWnd, &ed->rcFormat); GetClientRect(hWnd, &ed->rcFormat);
for (i=0; i<HFONT_CACHE_SIZE; i++) for (i=0; i<HFONT_CACHE_SIZE; i++)
{ {
...@@ -985,6 +984,8 @@ void ME_DestroyEditor(ME_TextEditor *editor) ...@@ -985,6 +984,8 @@ void ME_DestroyEditor(ME_TextEditor *editor)
DeleteObject(editor->pFontCache[i].hFont); DeleteObject(editor->pFontCache[i].hFont);
} }
DeleteObject(editor->hbrBackground); DeleteObject(editor->hbrBackground);
if(editor->lpOleCallback)
IUnknown_Release(editor->lpOleCallback);
FREE_OBJ(editor); FREE_OBJ(editor);
} }
...@@ -1206,7 +1207,6 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP ...@@ -1206,7 +1207,6 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
UNSUPPORTED_MSG(EM_SETEDITSTYLE) UNSUPPORTED_MSG(EM_SETEDITSTYLE)
UNSUPPORTED_MSG(EM_SETFONTSIZE) UNSUPPORTED_MSG(EM_SETFONTSIZE)
UNSUPPORTED_MSG(EM_SETLANGOPTIONS) UNSUPPORTED_MSG(EM_SETLANGOPTIONS)
UNSUPPORTED_MSG(EM_SETOLECALLBACK)
UNSUPPORTED_MSG(EM_SETOPTIONS) UNSUPPORTED_MSG(EM_SETOPTIONS)
UNSUPPORTED_MSG(EM_SETPALETTE) UNSUPPORTED_MSG(EM_SETPALETTE)
UNSUPPORTED_MSG(EM_SETPASSWORDCHAR) UNSUPPORTED_MSG(EM_SETPASSWORDCHAR)
...@@ -2043,6 +2043,13 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP ...@@ -2043,6 +2043,13 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
FIXME("EM_GETOLEINTERFACE %p: stub\n", ppvObj); FIXME("EM_GETOLEINTERFACE %p: stub\n", ppvObj);
return CreateIRichEditOle(ppvObj); return CreateIRichEditOle(ppvObj);
} }
case EM_SETOLECALLBACK:
if(editor->lpOleCallback)
IUnknown_Release(editor->lpOleCallback);
editor->lpOleCallback = (LPRICHEDITOLECALLBACK)lParam;
if(editor->lpOleCallback)
IUnknown_AddRef(editor->lpOleCallback);
return TRUE;
case EM_GETWORDBREAKPROC: case EM_GETWORDBREAKPROC:
return (LRESULT)editor->pfnWordBreak; return (LRESULT)editor->pfnWordBreak;
case EM_SETWORDBREAKPROC: case EM_SETWORDBREAKPROC:
......
...@@ -38,6 +38,9 @@ ...@@ -38,6 +38,9 @@
#include <winuser.h> #include <winuser.h>
#include <richedit.h> #include <richedit.h>
#include <commctrl.h> #include <commctrl.h>
#define COBJMACROS
#include <ole2.h>
#include <richole.h>
#include "wine/debug.h" #include "wine/debug.h"
...@@ -289,6 +292,7 @@ typedef struct tagME_TextEditor ...@@ -289,6 +292,7 @@ typedef struct tagME_TextEditor
BOOL bRedraw; BOOL bRedraw;
int nInvalidOfs; int nInvalidOfs;
EDITWORDBREAKPROCW pfnWordBreak; EDITWORDBREAKPROCW pfnWordBreak;
LPRICHEDITOLECALLBACK lpOleCallback;
} ME_TextEditor; } ME_TextEditor;
typedef struct tagME_Context typedef struct tagME_Context
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment