Nikolay Sivov : ole32/tests: Added a test for OleRun().
Alexandre Julliard
julliard at wine.codeweavers.com
Fri May 8 05:21:28 CDT 2015
Module: wine
Branch: master
Commit: 26a9f62db7a09f0e5478c536793ce31ecdb92f99
URL: http://source.winehq.org/git/wine.git/?a=commit;h=26a9f62db7a09f0e5478c536793ce31ecdb92f99
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu May 7 18:56:58 2015 +0300
ole32/tests: Added a test for OleRun().
---
dlls/ole32/tests/ole2.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
diff --git a/dlls/ole32/tests/ole2.c b/dlls/ole32/tests/ole2.c
index 0c27bd1..b590d3d 100644
--- a/dlls/ole32/tests/ole2.c
+++ b/dlls/ole32/tests/ole2.c
@@ -2074,14 +2074,90 @@ static const IUnknownVtbl UnknownVtbl =
Unknown_Release
};
+static HRESULT WINAPI OleRun_QueryInterface(IRunnableObject *iface, REFIID riid, void **ppv)
+{
+ *ppv = NULL;
+
+ if (IsEqualIID(riid, &IID_IUnknown) ||
+ IsEqualIID(riid, &IID_IRunnableObject)) {
+ *ppv = iface;
+ }
+
+ if (*ppv)
+ {
+ IUnknown_AddRef((IUnknown *)*ppv);
+ return S_OK;
+ }
+
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI OleRun_AddRef(IRunnableObject *iface)
+{
+ return 2;
+}
+
+static ULONG WINAPI OleRun_Release(IRunnableObject *iface)
+{
+ return 1;
+}
+
+static HRESULT WINAPI OleRun_GetRunningClass(IRunnableObject *iface, CLSID *clsid)
+{
+ ok(0, "unxpected\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleRun_Run(IRunnableObject *iface, LPBINDCTX ctx)
+{
+ ok(ctx == NULL, "got %p\n", ctx);
+ return 0xdeadc0de;
+}
+
+static BOOL WINAPI OleRun_IsRunning(IRunnableObject *iface)
+{
+ ok(0, "unxpected\n");
+ return FALSE;
+}
+
+static HRESULT WINAPI OleRun_LockRunning(IRunnableObject *iface, BOOL lock,
+ BOOL last_unlock_closes)
+{
+ ok(0, "unxpected\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleRun_SetContainedObject(IRunnableObject *iface, BOOL contained)
+{
+ ok(0, "unxpected\n");
+ return E_NOTIMPL;
+}
+
+static const IRunnableObjectVtbl oleruntestvtbl =
+{
+ OleRun_QueryInterface,
+ OleRun_AddRef,
+ OleRun_Release,
+ OleRun_GetRunningClass,
+ OleRun_Run,
+ OleRun_IsRunning,
+ OleRun_LockRunning,
+ OleRun_SetContainedObject
+};
+
static IUnknown unknown = { &UnknownVtbl };
+static IRunnableObject testrunnable = { &oleruntestvtbl };
static void test_OleRun(void)
{
HRESULT hr;
+ /* doesn't support IRunnableObject */
hr = OleRun(&unknown);
ok(hr == S_OK, "OleRun failed 0x%08x\n", hr);
+
+ hr = OleRun((IUnknown*)&testrunnable);
+ ok(hr == 0xdeadc0de, "got 0x%08x\n", hr);
}
static void test_OleLockRunning(void)
More information about the wine-cvs
mailing list