Re: (try 5) comdlg32/tests: Windows XP+ cannot do a CreateViewWindow2 twice in rapid seccesion. handle this error.

2008-11-17 Thread Paul Vriens
Alexandre Julliard wrote:
> Aric Stewart <[EMAIL PROTECTED]> writes:
> 
>> @@ -182,19 +182,26 @@ static UINT CALLBACK create_view_window2_hook(HWND 
>> dlg, UINT msg, WPARAM wParam,
>>  
>>  hr = IShellView2_GetCurrentInfo(shell_view2, &folder_settings);
>>  ok(SUCCEEDED(hr), "GetCurrentInfo returned %#x\n", hr);
>> -ok(folder_settings.ViewMode == FVM_LIST, "view mode is %d, 
>> expected %d\n", folder_settings.ViewMode, FVM_LIST);
>> +ok(folder_settings.ViewMode == FVM_DETAILS, "view mode is %d, 
>> expected %d\n", folder_settings.ViewMode, FVM_DETAILS);
>>  
>>  hr = IShellView2_DestroyViewWindow(shell_view2);
>>  ok(SUCCEEDED(hr), "DestroyViewWindow returned %#x\n", hr);
>>  
>> -view_params.pvid = &VID_Details;
>> +folder_settings.ViewMode = FVM_LIST;
>> +folder_settings.fFlags = 0;
>> +view_params.pvid = NULL;
>>  hr = IShellView2_CreateViewWindow2(shell_view2, &view_params);
>> -ok(SUCCEEDED(hr), "CreateViewWindow2 returned %#x\n", hr);
>> +/*
>> + * Windows XP is unable to recreate the ViewWindow2 returning
>> + * A Catastrophic failure error
>> + */
> 
> So why can't it recreate it?  Do you need to clean up something else 
> beforehand?
> 
Hi,

In an effort to squash the last test failures (W2K3), I had a go at this one.

When I add a DestroyWindow() the tests succeed on my W2K3. I'm however not sure 
it's the correct way or if I'm even close:

  hr = IShellView2_DestroyViewWindow(shell_view2);
  ok(SUCCEEDED(hr), "DestroyViewWindow returned %#x\n", hr);

+DestroyWindow(view_params.hwndView);
+
  view_params.pvid = &VID_Details;
  hr = IShellView2_CreateViewWindow2(shell_view2, &view_params);
  ok(SUCCEEDED(hr), "CreateViewWindow2 returned %#x\n", hr);

The DestroyWindow() succeeds on W2K3 and Vista but fails 
(ERROR_INVALID_WINDOW_HANDLE) on W2K.

(Even though DestroyWindow() succeeds on Vista is doesn't fix the failure on 
that platform).

-- 
Cheers,

Paul.




Re: (try 5) comdlg32/tests: Windows XP+ cannot do a CreateViewWindow2 twice in rapid seccesion. handle this error.

2008-11-04 Thread Alexandre Julliard
Aric Stewart <[EMAIL PROTECTED]> writes:

> @@ -182,19 +182,26 @@ static UINT CALLBACK create_view_window2_hook(HWND dlg, 
> UINT msg, WPARAM wParam,
>  
>  hr = IShellView2_GetCurrentInfo(shell_view2, &folder_settings);
>  ok(SUCCEEDED(hr), "GetCurrentInfo returned %#x\n", hr);
> -ok(folder_settings.ViewMode == FVM_LIST, "view mode is %d, 
> expected %d\n", folder_settings.ViewMode, FVM_LIST);
> +ok(folder_settings.ViewMode == FVM_DETAILS, "view mode is %d, 
> expected %d\n", folder_settings.ViewMode, FVM_DETAILS);
>  
>  hr = IShellView2_DestroyViewWindow(shell_view2);
>  ok(SUCCEEDED(hr), "DestroyViewWindow returned %#x\n", hr);
>  
> -view_params.pvid = &VID_Details;
> +folder_settings.ViewMode = FVM_LIST;
> +folder_settings.fFlags = 0;
> +view_params.pvid = NULL;
>  hr = IShellView2_CreateViewWindow2(shell_view2, &view_params);
> -ok(SUCCEEDED(hr), "CreateViewWindow2 returned %#x\n", hr);
> +/*
> + * Windows XP is unable to recreate the ViewWindow2 returning
> + * A Catastrophic failure error
> + */

So why can't it recreate it?  Do you need to clean up something else beforehand?

-- 
Alexandre Julliard
[EMAIL PROTECTED]