} u;
enum ITEMDLG_TYPE dlg_type;
LONG ref;
+
+ FILEOPENDIALOGOPTIONS options;
} FileDialogImpl;
/**************************************************************************
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)
{
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);
}
/* 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),
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