From: Józef Kucia Subject: [PATCH 6/7] ninput: Add SetInteractionConfigurationInteractionContext() stub. Message-Id: <20180621141946.13340-6-jkucia@codeweavers.com> Date: Thu, 21 Jun 2018 16:19:45 +0200 Signed-off-by: Józef Kucia --- dlls/ninput/main.c | 17 +++++++++++++++++ dlls/ninput/ninput.spec | 2 +- dlls/ninput/tests/ninput.c | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/dlls/ninput/main.c b/dlls/ninput/main.c index 90f9e7e0c4ee..01703749d087 100644 --- a/dlls/ninput/main.c +++ b/dlls/ninput/main.c @@ -131,6 +131,23 @@ HRESULT WINAPI SetPropertyInteractionContext(HINTERACTIONCONTEXT handle, } } +HRESULT WINAPI SetInteractionConfigurationInteractionContext(HINTERACTIONCONTEXT handle, + UINT32 count, const INTERACTION_CONTEXT_CONFIGURATION *configuration) +{ + struct interaction_context *context = context_from_handle(handle); + + FIXME("context %p, count %u, configuration %p: stub!.\n", context, count, configuration); + + if (!context) + return E_HANDLE; + if (!count) + return E_INVALIDARG; + if (!configuration) + return E_POINTER; + + return S_OK; +} + HRESULT WINAPI ProcessInertiaInteractionContext(HINTERACTIONCONTEXT context) { FIXME("context %p: stub!\n", context); diff --git a/dlls/ninput/ninput.spec b/dlls/ninput/ninput.spec index 166e3d1ec8c1..70d296cc597f 100644 --- a/dlls/ninput/ninput.spec +++ b/dlls/ninput/ninput.spec @@ -17,7 +17,7 @@ @ stub ResetInteractionContext @ stub SetCrossSlideParametersInteractionContext @ stub SetInertiaParameterInteractionContext -@ stub SetInteractionConfigurationInteractionContext +@ stdcall SetInteractionConfigurationInteractionContext(ptr long ptr) @ stub SetMouseWheelParameterInteractionContext @ stub SetPivotInteractionContext @ stdcall SetPropertyInteractionContext(ptr long long) diff --git a/dlls/ninput/tests/ninput.c b/dlls/ninput/tests/ninput.c index 156e3e898366..7fd389378b01 100644 --- a/dlls/ninput/tests/ninput.c +++ b/dlls/ninput/tests/ninput.c @@ -82,8 +82,44 @@ static void test_properties(void) ok(hr == S_OK, "Failed to destroy context, hr %#x.\n", hr); } +static void test_configuration(void) +{ + HINTERACTIONCONTEXT context; + HRESULT hr; + + static const INTERACTION_CONTEXT_CONFIGURATION config[] = + { + { + INTERACTION_ID_MANIPULATION, + INTERACTION_CONFIGURATION_FLAG_MANIPULATION | + INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_X | + INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_Y | + INTERACTION_CONFIGURATION_FLAG_MANIPULATION_SCALING | + INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_INERTIA | + INTERACTION_CONFIGURATION_FLAG_MANIPULATION_SCALING_INERTIA + }, + }; + + hr = CreateInteractionContext(&context); + ok(hr == S_OK, "Failed to create context, hr %#x.\n", hr); + + hr = SetInteractionConfigurationInteractionContext(NULL, 0, NULL); + ok(hr == E_HANDLE, "Got hr %#x.\n", hr); + hr = SetInteractionConfigurationInteractionContext(context, 0, NULL); + ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr); + hr = SetInteractionConfigurationInteractionContext(context, 1, NULL); + ok(hr == E_POINTER, "Got hr %#x.\n", hr); + + hr = SetInteractionConfigurationInteractionContext(context, ARRAY_SIZE(config), config); + ok(hr == S_OK, "Failed to set configuration, hr %#x.\n", hr); + + hr = DestroyInteractionContext(context); + ok(hr == S_OK, "Failed to destroy context, hr %#x.\n", hr); +} + START_TEST(ninput) { test_context(); test_properties(); + test_configuration(); } -- 2.16.4