diff --git a/dlls/riched20/tests/Makefile.in b/dlls/riched20/tests/Makefile.in index 74a5686bf38..0993609213b 100644 --- a/dlls/riched20/tests/Makefile.in +++ b/dlls/riched20/tests/Makefile.in @@ -6,7 +6,8 @@ TESTDLL = riched20.dll IMPORTS = ole32 user32 gdi32 kernel32 CTESTS = \ - editor.c + editor.c \ + richole.c @MAKE_TEST_RULES@ diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c new file mode 100644 index 00000000000..ba9ce558dc8 --- /dev/null +++ b/dlls/riched20/tests/richole.c @@ -0,0 +1,75 @@ +/* + * Tests for IRichEditOle and friends. + * + * Copyright 2008 Google (Dan Hipschman) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define COBJMACROS + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static HMODULE hmoduleRichEdit; + +static HWND new_window(LPCTSTR lpClassName, DWORD dwStyle, HWND parent) +{ + HWND hwnd + = CreateWindow(lpClassName, NULL, + dwStyle | WS_POPUP | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE, + 0, 0, 200, 60, parent, NULL, hmoduleRichEdit, NULL); + ok(hwnd != NULL, "class: %s, error: %d\n", lpClassName, (int) GetLastError()); + return hwnd; +} + +static HWND new_richedit(HWND parent) +{ + return new_window(RICHEDIT_CLASS, ES_MULTILINE, parent); +} + + +START_TEST(richole) +{ + IRichEditOle *reOle = NULL; + LRESULT res; + HWND w; + + /* Must explicitly LoadLibrary(). The test has no references to functions in + * RICHED20.DLL, so the linker doesn't actually link to it. */ + hmoduleRichEdit = LoadLibrary("RICHED20.DLL"); + ok(hmoduleRichEdit != NULL, "error: %d\n", (int) GetLastError()); + + w = new_richedit(NULL); + if (!w) { + skip("Couldn't create window\n"); + return; + } + + res = SendMessage(w, EM_GETOLEINTERFACE, 0, (LPARAM) &reOle); + ok(res, "SendMessage\n"); + ok(reOle != NULL, "EM_GETOLEINTERFACE\n"); + + IUnknown_Release(reOle); + DestroyWindow(w); +}