comdlg32: Add a basic test for IShellView2_CreateViewWindow2.
Henri Verbeet
hverbeet at codeweavers.com
Tue Oct 14 02:01:08 CDT 2008
---
dlls/comdlg32/tests/filedlg.c | 90 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 89 insertions(+), 1 deletions(-)
diff --git a/dlls/comdlg32/tests/filedlg.c b/dlls/comdlg32/tests/filedlg.c
index ea999f3..de01f0e 100644
--- a/dlls/comdlg32/tests/filedlg.c
+++ b/dlls/comdlg32/tests/filedlg.c
@@ -22,6 +22,10 @@
#include <windows.h>
#include <wine/test.h>
+#include "initguid.h"
+#include "shlguid.h"
+#define COBJMACROS
+#include "shobjidl.h"
/* ##### */
@@ -131,9 +135,93 @@ static void test_DialogCancel(void)
}
}
+static UINT CALLBACK create_view_window2_hook(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ if (msg == WM_NOTIFY)
+ {
+ if (((LPNMHDR)lParam)->code == CDN_FOLDERCHANGE)
+ {
+ IShellBrowser *shell_browser = (IShellBrowser *)SendMessage(GetParent(dlg), WM_USER + 7 /* WM_GETISHELLBROWSER */, 0, 0);
+ IShellView *shell_view = NULL;
+ IShellView2 *shell_view2 = NULL;
+ SV2CVW2_PARAMS view_params;
+ FOLDERSETTINGS folder_settings;
+ HRESULT hr;
+ RECT rect = {0, 0, 0, 0};
+
+ hr = IShellBrowser_QueryActiveShellView(shell_browser, &shell_view);
+ ok(SUCCEEDED(hr), "QueryActiveShellView returned %#x\n", hr);
+ if (FAILED(hr)) goto cleanup;
+
+ hr = IShellView_QueryInterface(shell_view, &IID_IShellView2, (void **)&shell_view2);
+ if (hr == E_NOINTERFACE)
+ {
+ skip("IShellView2 not supported\n");
+ goto cleanup;
+ }
+ ok(SUCCEEDED(hr), "QueryInterface returned %#x\n", hr);
+ if (FAILED(hr)) goto cleanup;
+
+ IShellView2_DestroyViewWindow(shell_view2);
+ ok(SUCCEEDED(hr), "DestroyViewWindow returned %#x\n", hr);
+
+ folder_settings.ViewMode = FVM_LIST;
+ folder_settings.fFlags = 0;
+
+ view_params.cbSize = sizeof(view_params);
+ view_params.psvPrev = NULL;
+ view_params.pfs = &folder_settings;
+ view_params.psbOwner = shell_browser;
+ view_params.prcView = ▭
+ view_params.pvid = NULL;
+ view_params.hwndView = NULL;
+
+ hr = IShellView2_CreateViewWindow2(shell_view2, &view_params);
+ ok(SUCCEEDED(hr), "CreateViewWindow2 returned %#x\n", hr);
+ if (FAILED(hr)) goto cleanup;
+
+ IShellView2_GetCurrentInfo(shell_view2, &folder_settings);
+ ok(folder_settings.ViewMode == FVM_LIST, "view mode is %d, expected %d\n", folder_settings.ViewMode, FVM_LIST);
+
+ IShellView2_DestroyViewWindow(shell_view2);
+ ok(SUCCEEDED(hr), "DestroyViewWindow returned %#x\n", hr);
+
+ view_params.pvid = &VID_Details;
+ hr = IShellView2_CreateViewWindow2(shell_view2, &view_params);
+ ok(SUCCEEDED(hr), "CreateViewWindow2 returned %#x\n", hr);
+ if (FAILED(hr)) goto cleanup;
+
+ IShellView2_GetCurrentInfo(shell_view2, &folder_settings);
+ ok(folder_settings.ViewMode == FVM_DETAILS, "view mode is %d, expected %d\n", folder_settings.ViewMode, FVM_DETAILS);
+
+cleanup:
+ if (shell_view2) IShellView2_Release(shell_view2);
+ if (shell_view) IShellView_Release(shell_view);
+ PostMessage(GetParent(dlg), WM_COMMAND, IDCANCEL, 0);
+ }
+ }
+ return 0;
+}
+
+static void test_create_view_window2(void)
+{
+ OPENFILENAMEA ofn = {0};
+ char filename[1024] = {0};
+ DWORD ret;
+
+ ofn.lStructSize = sizeof(ofn);
+ ofn.lpstrFile = filename;
+ ofn.nMaxFile = 1042;
+ ofn.lpfnHook = create_view_window2_hook;
+ ofn.Flags = OFN_ENABLEHOOK | OFN_EXPLORER;
+ ret = GetOpenFileNameA(&ofn);
+ ok(!ret, "GetOpenFileNameA returned %#x\n", ret);
+ ret = CommDlgExtendedError();
+ ok(!ret, "CommDlgExtendedError returned %#x\n", ret);
+}
START_TEST(filedlg)
{
test_DialogCancel();
-
+ test_create_view_window2();
}
--
1.5.6.4
--------------070306070503050808040503--
More information about the wine-patches
mailing list