[PATCH v8 3/3] shell32: Implement FolderItems_get_Count.

Sebastian Lackner sebastian at fds-team.de
Mon Aug 22 05:16:37 CDT 2016


On 19.08.2016 11:43, Alex Henrie wrote:
> Cc: Sebastian Lackner <sebastian at fds-team.de>
> 
> Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
> ---
>  dlls/shell32/shelldispatch.c       | 10 ++++++++--
>  dlls/shell32/tests/shelldispatch.c |  6 ------
>  2 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/dlls/shell32/shelldispatch.c b/dlls/shell32/shelldispatch.c
> index a456ad4..86b77d6 100644
> --- a/dlls/shell32/shelldispatch.c
> +++ b/dlls/shell32/shelldispatch.c
> @@ -1061,9 +1061,15 @@ static HRESULT WINAPI FolderItemsImpl_Invoke(FolderItems3 *iface,
>  
>  static HRESULT WINAPI FolderItemsImpl_get_Count(FolderItems3 *iface, LONG *count)
>  {
> -    FIXME("(%p,%p)\n", iface, count);
> +    FolderItemsImpl *This = impl_from_FolderItems(iface);
>  
> -    return E_NOTIMPL;
> +    TRACE("(%p,%p)\n", iface, count);
> +
> +    if (!count)
> +        return E_INVALIDARG;

The tests contain a comment which suggests that Windows does not do such checks.
If this is true I would suggest to simplify it also here in your implementation.

> +
> +    *count = This->item_count;
> +    return S_OK;
>  }
>  
>  static HRESULT WINAPI FolderItemsImpl_get_Application(FolderItems3 *iface, IDispatch **ppid)
> diff --git a/dlls/shell32/tests/shelldispatch.c b/dlls/shell32/tests/shelldispatch.c
> index dc4fda4..42cfbf7 100644
> --- a/dlls/shell32/tests/shelldispatch.c
> +++ b/dlls/shell32/tests/shelldispatch.c
> @@ -378,9 +378,7 @@ static void test_items(void)
>          r = FolderItems_get_Count(items, NULL);
>  
>      r = FolderItems_get_Count(items, &lcount);
> -todo_wine
>      ok(r == S_OK, "FolderItems::get_Count failed: %08x\n", r);
> -todo_wine
>      ok(!lcount, "expected 0 files, got %d\n", lcount);
>  
>      V_VT(&var) = VT_I4;
> @@ -435,9 +433,7 @@ todo_wine
>  
>      lcount = -1;
>      r = FolderItems_get_Count(items, &lcount);
> -todo_wine
>      ok(r == S_OK, "FolderItems::get_Count failed: %08x\n", r);
> -todo_wine
>      ok(!lcount, "expected 0 files, got %d\n", lcount);
>      FolderItems_Release(items);
>  
> @@ -455,9 +451,7 @@ todo_wine
>  
>      lcount = -1;
>      r = FolderItems_get_Count(items, &lcount);
> -todo_wine
>      ok(r == S_OK, "FolderItems::get_Count failed: %08x\n", r);
> -todo_wine
>      ok(lcount == sizeof(file_defs)/sizeof(file_defs[0]),
>         "expected %d files, got %d\n", sizeof(file_defs)/sizeof(file_defs[0]), lcount);
>  
> 




More information about the wine-devel mailing list