[PATCH 7/9] include: Add a few IFileDialog related interface declarations.
David Hedberg
david.hedberg at gmail.com
Sat Jul 17 10:22:04 CDT 2010
---
dlls/actxprxy/usrmarshal.c | 16 ++
include/shobjidl.idl | 341 ++++++++++++++++++++++++++++++++++++++++++++
include/shtypes.idl | 6 +
3 files changed, 363 insertions(+), 0 deletions(-)
diff --git a/dlls/actxprxy/usrmarshal.c b/dlls/actxprxy/usrmarshal.c
index b9f4f2d..1683f2c 100644
--- a/dlls/actxprxy/usrmarshal.c
+++ b/dlls/actxprxy/usrmarshal.c
@@ -195,3 +195,19 @@ HRESULT __RPC_STUB IEnumShellItems_Next_Stub(
if (hr == S_OK) *pceltFetched = celt;
return hr;
}
+
+HRESULT CALLBACK IModalWindow_Show_Proxy(
+ IModalWindow *This,
+ HWND hwndOwner)
+{
+ TRACE("(%p)->(%p)\n", This, hwndOwner);
+ return IModalWindow_RemoteShow_Proxy(This, hwndOwner);
+}
+
+HRESULT __RPC_STUB IModalWindow_Show_Stub(
+ IModalWindow *This,
+ HWND hwndOwner)
+{
+ TRACE("(%p)->(%p)\n", This, hwndOwner);
+ return IModalWindow_Show(This, hwndOwner);
+}
diff --git a/include/shobjidl.idl b/include/shobjidl.idl
index cbb9700..13e57b4 100644
--- a/include/shobjidl.idl
+++ b/include/shobjidl.idl
@@ -2278,3 +2278,344 @@ interface INameSpaceTreeControlDropHandler : IUnknown
[in, unique, annotation("__in_opt")] IShellItem *psiOver);
}
cpp_quote("#define NSTCDHPOS_ONTOP -1")
+
+interface IFileDialog;
+
+typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE
+{
+ FDEOR_DEFAULT = 0,
+ FDEOR_ACCCEP = 1,
+ FDEOR_REFUSE = 2
+} FDE_OVERWRITE_RESPONSE;
+
+typedef [v1_enum] enum FDE_SHAREVIOLATION_RESPONSE
+{
+ FDESVR_DEFAULT = 0,
+ FDESVR_ACCEPT = 1,
+ FDESVR_REFUSE = 2
+} FDE_SHAREVIOLATION_RESPONSE;
+
+/*****************************************************************************
+ * IFileDialogEvents interface
+ */
+[
+ object,
+ uuid(973510DB-7D7F-452B-8975-74A85828D354),
+ pointer_default(unique)
+]
+interface IFileDialogEvents : IUnknown
+{
+ HRESULT OnFileOk(
+ [in] IFileDialog *pfd);
+
+ HRESULT OnFolderChanging(
+ [in] IFileDialog *pfd,
+ [in] IShellItem *psiFolder);
+
+ HRESULT OnFolderChange(
+ [in] IFileDialog *pfd);
+
+ HRESULT OnSelectionChange(
+ [in] IFileDialog *pfd);
+
+ HRESULT OnShareViolation(
+ [in] IFileDialog *pfd,
+ [in] IShellItem *psi,
+ [out] FDE_SHAREVIOLATION_RESPONSE *pResponse);
+
+ HRESULT OnTypeChange(
+ [in] IFileDialog *pfd);
+
+ HRESULT OnOverwrite(
+ [in] IFileDialog *pfd,
+ [in] IShellItem *psi,
+ [out] FDE_OVERWRITE_RESPONSE *pResponse);
+}
+
+/*****************************************************************************
+ * IModalWindow interface
+ */
+[
+ object,
+ uuid(B4DB1657-70D7-485E-8E3E-6FCB5A5C1802),
+ pointer_default(unique)
+]
+interface IModalWindow : IUnknown
+{
+ [local]
+ HRESULT Show(
+ [in, unique, annotation("__in_opt")] HWND hwndOwner);
+
+ [call_as(Show)]
+ HRESULT RemoteShow(
+ [in, unique] HWND hwndOwner);
+}
+
+typedef [v1_enum] enum FDAP
+{
+ FDAP_BOTTOM = 0,
+ FDAP_TOP = 1
+} FDAP;
+
+/*****************************************************************************
+ * IFileDialog interface
+ */
+[
+ object,
+ uuid(42F85136-DB7E-439C-85F1-E4075D135FC8),
+ pointer_default(unique)
+]
+interface IFileDialog : IModalWindow
+{
+ [v1_enum] enum _FILEOPENDIALOGOPTIONS
+ {
+ FOS_OVERWRITEPROMPT = 0x00000002,
+ FOS_STRICTFILETYPES = 0x00000004,
+ FOS_NOCHANGEDIR = 0x00000008,
+ FOS_PICKFOLDERS = 0x00000020,
+ FOS_FORCEFILESYSTEM = 0x00000040,
+ FOS_ALLNONSTORAGEITEMS = 0x00000080,
+ FOS_NOVALIDATE = 0x00000100,
+ FOS_ALLOWMULTISELECT = 0x00000200,
+ FOS_PATHMUSTEXIST = 0x00000800,
+ FOS_FILEMUSTEXIST = 0x00001000,
+ FOS_CREATEPROMPT = 0x00002000,
+ FOS_SHAREAWARE = 0x00004000,
+ FOS_NOREADONLYRETURN = 0x00008000,
+ FOS_NOTESTFILECREATE = 0x00010000,
+ FOS_HIDEMRUPLACES = 0x00020000,
+ FOS_HIDEPINNEDPLACES = 0x00040000,
+ FOS_NODEREFERENCELINKS = 0x00100000,
+ FOS_DONTADDTORECENT = 0x02000000,
+ FOS_FORCESHOWHIDDEN = 0x10000000,
+ FOS_DEFAULTNOMINIMODE = 0x20000000,
+ FOS_FORCEPREVIEWPANEON = 0x40000000
+ };
+ typedef DWORD FILEOPENDIALOGOPTIONS;
+
+ HRESULT SetFileTypes(
+ [in] UINT cFileTypes,
+ [in, size_is(cFileTypes)] const COMDLG_FILTERSPEC *rgFilterSpec);
+
+ HRESULT SetFileTypeIndex(
+ [in] UINT iFileType);
+
+ HRESULT GetFileTypeIndex(
+ [out] UINT *piFileType);
+
+ HRESULT Advise(
+ [in] IFileDialogEvents *pfde,
+ [out] DWORD *pdwCookie);
+
+ HRESULT Unadvise(
+ [in] DWORD dwCookie);
+
+ HRESULT SetOptions(
+ [in] FILEOPENDIALOGOPTIONS fos);
+
+ HRESULT GetOptions(
+ [in] FILEOPENDIALOGOPTIONS *pfos);
+
+ HRESULT SetDefaultFolder(
+ [in] IShellItem *psi);
+
+ HRESULT SetFolder(
+ [in] IShellItem *psi);
+
+ HRESULT GetFolder(
+ [out] IShellItem **ppsi);
+
+ HRESULT GetCurrentSelection(
+ [out] IShellItem **ppsi);
+
+ HRESULT SetFileName(
+ [in, string] LPCWSTR pszName);
+
+ HRESULT GetFileName(
+ [out, string] LPWSTR *pszName);
+
+ HRESULT SetTitle(
+ [in, string] LPCWSTR pszTitle);
+
+ HRESULT SetOkButtonLabel(
+ [in, string] LPCWSTR pszText);
+
+ HRESULT SetFileNameLabel(
+ [in, string] LPCWSTR pszLabel);
+
+ HRESULT GetResult(
+ [out] IShellItem **ppsi);
+
+ HRESULT AddPlace(
+ [in] IShellItem *psi,
+ [in] FDAP fdap);
+
+ HRESULT SetDefaultExtension(
+ [in, string] LPCWSTR pszDefaultExtension);
+
+ HRESULT Close(
+ [in] HRESULT hr);
+
+ HRESULT SetClientGuid(
+ [in] REFGUID guid);
+
+ HRESULT ClearClientData();
+
+ HRESULT SetFilter(
+ [in] IShellItemFilter *pFilter);
+}
+
+/*****************************************************************************
+ * IFileDialog2 interface
+ */
+[
+ object,
+ uuid(61744FC7-85B5-4791-A9B0-272276309B13),
+ pointer_default(unique)
+]
+interface IFileDialog2 : IFileDialog
+{
+ HRESULT SetCancelButtonLabel(
+ [in] LPCWSTR pszLabel);
+
+ HRESULT SetNavigationRoot(
+ [in] IShellItem *psi);
+}
+
+/*****************************************************************************
+ * IFileOperationProgressSink interface
+ */
+[
+ object,
+ uuid(04B0F1A7-9490-44BC-96E1-4296A31252E2),
+ pointer_default(unique)
+]
+interface IFileOperationProgressSink : IUnknown
+{
+ HRESULT StartOperations();
+
+ HRESULT FinishOperations(
+ [in] HRESULT hrResult);
+
+ HRESULT PreRenameItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in, unique, string] LPCWSTR pszNewName);
+
+ HRESULT PostRenameItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in, string] LPCWSTR pszNewName,
+ [in] HRESULT hrRename,
+ [in] IShellItem *psiNewlyCreated);
+
+ HRESULT PreMoveItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName);
+
+ HRESULT PostMoveItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName,
+ [in] HRESULT hrMove,
+ [in] IShellItem *psiNewlyCreated);
+
+ HRESULT PreCopyItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName);
+
+ HRESULT PostCopyItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName,
+ [in] HRESULT hrCopy,
+ [in] IShellItem *psiNewlyCreated);
+
+ HRESULT PreDeleteItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem);
+
+ HRESULT PostDeleteItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] HRESULT hrDelete,
+ [in] IShellItem *psiNewlyCreated);
+
+ HRESULT PreNewItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName);
+
+ HRESULT PostNewItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName,
+ [in, unique, string] LPCWSTR pszTemplateName,
+ [in] DWORD dwFileAttributes,
+ [in] HRESULT hrNew,
+ [in] IShellItem *psiNewItem);
+
+ HRESULT UpdateProgress(
+ [in] UINT iWorkTotal,
+ [in] UINT iWorkSoFar);
+
+ HRESULT ResetTimer();
+
+ HRESULT PauseTimer();
+
+ HRESULT ResumeTimer();
+}
+
+/*****************************************************************************
+ * IFileSaveDialog interface
+ */
+[
+ object,
+ uuid(84BCCD23-5FDE-4CDB-AEA4-AF64B83D78AB),
+ pointer_default(unique)
+]
+interface IFileSaveDialog : IFileDialog
+{
+ HRESULT SetSaveAsItem(
+ [in] IShellItem *psi);
+
+ HRESULT SetProperties(
+ [in] IPropertyStore *pStore);
+
+ HRESULT SetCollectedProperties(
+ [in] IPropertyDescriptionList *pList,
+ [in] BOOL fAppendDefault);
+
+ HRESULT GetProperties(
+ [in] IPropertyStore **ppStore);
+
+ HRESULT ApplyProperties(
+ [in] IShellItem *psi,
+ [in] IPropertyStore *pStore,
+ [in, unique] HWND hwnd,
+ [in, unique] IFileOperationProgressSink *pSink);
+}
+
+
+/*****************************************************************************
+ * IFileOpenDialog interface
+ */
+[
+ object,
+ uuid(D57C7288-D4AD-4768-BE02-9D969532D960),
+ pointer_default(unique)
+]
+interface IFileOpenDialog : IFileDialog
+{
+ HRESULT GetResults(
+ [out] IShellItemArray **ppenum);
+
+ HRESULT GetSelectedItems(
+ [out] IShellItemArray **ppsai);
+}
diff --git a/include/shtypes.idl b/include/shtypes.idl
index 41aa236..dd0c5f6 100644
--- a/include/shtypes.idl
+++ b/include/shtypes.idl
@@ -80,6 +80,12 @@ typedef struct
} SHELLDETAILS, *LPSHELLDETAILS;
cpp_quote("#include <poppack.h>")
+typedef struct _COMDLG_FILTERSPEC
+{
+ [string] LPCWSTR pszName;
+ [string] LPCWSTR pszSpec;
+} COMDLG_FILTERSPEC;
+
typedef [v1_enum] enum tagSHCOLSTATE
{
SHCOLSTATE_DEFAULT = 0,
--
1.7.1.1
More information about the wine-patches
mailing list