David Hedberg : comdlg32: Implement SetOptions/ GetOptions for the Item Dialog.
Alexandre Julliard
julliard at winehq.org
Wed Mar 30 13:15:36 CDT 2011
Module: wine
Branch: master
Commit: f9a95150f3cc3a6c3c1aa3f7bfa9d0726c594955
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f9a95150f3cc3a6c3c1aa3f7bfa9d0726c594955
Author: David Hedberg <david.hedberg at gmail.com>
Date: Tue Mar 29 21:13:20 2011 +0200
comdlg32: Implement SetOptions/GetOptions for the Item Dialog.
---
dlls/comdlg32/itemdlg.c | 21 +++++++++++++++++----
dlls/comdlg32/tests/itemdlg.c | 6 ------
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/dlls/comdlg32/itemdlg.c b/dlls/comdlg32/itemdlg.c
index 4e49081..27f57cd 100644
--- a/dlls/comdlg32/itemdlg.c
+++ b/dlls/comdlg32/itemdlg.c
@@ -49,6 +49,8 @@ typedef struct FileDialogImpl {
} u;
enum ITEMDLG_TYPE dlg_type;
LONG ref;
+
+ FILEOPENDIALOGOPTIONS options;
} FileDialogImpl;
/**************************************************************************
@@ -160,15 +162,24 @@ static HRESULT WINAPI IFileDialog2_fnUnadvise(IFileDialog2 *iface, DWORD dwCooki
static HRESULT WINAPI IFileDialog2_fnSetOptions(IFileDialog2 *iface, FILEOPENDIALOGOPTIONS fos)
{
FileDialogImpl *This = impl_from_IFileDialog2(iface);
- FIXME("stub - %p (0x%x)\n", This, fos);
- return E_NOTIMPL;
+ TRACE("%p (0x%x)\n", This, fos);
+
+ This->options = fos;
+
+ return S_OK;
}
static HRESULT WINAPI IFileDialog2_fnGetOptions(IFileDialog2 *iface, FILEOPENDIALOGOPTIONS *pfos)
{
FileDialogImpl *This = impl_from_IFileDialog2(iface);
- FIXME("stub - %p\n", This);
- return E_NOTIMPL;
+ TRACE("%p (%p)\n", This, pfos);
+
+ if(!pfos)
+ return E_INVALIDARG;
+
+ *pfos = This->options;
+
+ return S_OK;
}
static HRESULT WINAPI IFileDialog2_fnSetDefaultFolder(IFileDialog2 *iface, IShellItem *psi)
@@ -822,11 +833,13 @@ static HRESULT FileDialog_constructor(IUnknown *pUnkOuter, REFIID riid, void **p
{
fdimpl->dlg_type = ITEMDLG_TYPE_OPEN;
fdimpl->u.IFileOpenDialog_iface.lpVtbl = &vt_IFileOpenDialog;
+ fdimpl->options = FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_NOCHANGEDIR;
}
else
{
fdimpl->dlg_type = ITEMDLG_TYPE_SAVE;
fdimpl->u.IFileSaveDialog_iface.lpVtbl = &vt_IFileSaveDialog;
+ fdimpl->options = FOS_OVERWRITEPROMPT | FOS_NOREADONLYRETURN | FOS_PATHMUSTEXIST | FOS_NOCHANGEDIR;
}
hr = IUnknown_QueryInterface((IUnknown*)fdimpl, riid, ppv);
diff --git a/dlls/comdlg32/tests/itemdlg.c b/dlls/comdlg32/tests/itemdlg.c
index c345498..f67ef31 100644
--- a/dlls/comdlg32/tests/itemdlg.c
+++ b/dlls/comdlg32/tests/itemdlg.c
@@ -207,17 +207,12 @@ static void test_basics(void)
}
/* GetOptions */
- todo_wine
- {
hr = IFileOpenDialog_GetOptions(pfod, NULL);
ok(hr == E_INVALIDARG, "got 0x%08x.\n", hr);
hr = IFileSaveDialog_GetOptions(pfsd, NULL);
ok(hr == E_INVALIDARG, "got 0x%08x.\n", hr);
- }
/* Check default options */
- todo_wine
- {
hr = IFileOpenDialog_GetOptions(pfod, &fdoptions);
ok(hr == S_OK, "got 0x%08x.\n", hr);
ok(fdoptions == (FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_NOCHANGEDIR),
@@ -226,7 +221,6 @@ static void test_basics(void)
ok(hr == S_OK, "got 0x%08x.\n", hr);
ok(fdoptions == (FOS_OVERWRITEPROMPT | FOS_NOREADONLYRETURN | FOS_PATHMUSTEXIST | FOS_NOCHANGEDIR),
"Unexpected default options: 0x%08x\n", fdoptions);
- }
/* GetResult */
todo_wine
More information about the wine-cvs
mailing list