2208 lines
70 KiB
C++
2208 lines
70 KiB
C++
#ifndef _WIN7FILEDIALOG_H
|
|
#define _WIN7FILEDIALOG_H
|
|
|
|
#ifdef _WIN32
|
|
|
|
#include <comdef.h>
|
|
#include "wdlstring.h"
|
|
|
|
#ifndef __RPC__in_opt
|
|
//defines for msvc6
|
|
#define __RPC__in_opt
|
|
#define __RPC__in
|
|
#define __RPC__out
|
|
#define __RPC__deref_out_opt
|
|
#define __RPC__deref_out_opt_string
|
|
#define __RPC__in_ecount_full(x)
|
|
#define __RPC__out_ecount_part(x,y)
|
|
#ifndef __in
|
|
#define __in
|
|
#endif
|
|
|
|
typedef ULONG SFGAOF;
|
|
|
|
typedef /* [v1_enum] */
|
|
enum tagFDE_OVERWRITE_RESPONSE
|
|
{ FDEOR_DEFAULT = 0,
|
|
FDEOR_ACCEPT = 0x1,
|
|
FDEOR_REFUSE = 0x2
|
|
} FDE_OVERWRITE_RESPONSE;
|
|
|
|
typedef /* [v1_enum] */
|
|
enum tagFDE_SHAREVIOLATION_RESPONSE
|
|
{ FDESVR_DEFAULT = 0,
|
|
FDESVR_ACCEPT = 0x1,
|
|
FDESVR_REFUSE = 0x2
|
|
} FDE_SHAREVIOLATION_RESPONSE;
|
|
|
|
typedef /* [v1_enum] */
|
|
enum tagFDAP
|
|
{ FDAP_BOTTOM = 0,
|
|
FDAP_TOP = 0x1
|
|
} FDAP;
|
|
|
|
typedef struct _COMDLG_FILTERSPEC
|
|
{
|
|
LPCWSTR pszName;
|
|
LPCWSTR pszSpec;
|
|
} COMDLG_FILTERSPEC;
|
|
|
|
typedef
|
|
enum tagSHCONTF
|
|
{ SHCONTF_FOLDERS = 0x20,
|
|
SHCONTF_NONFOLDERS = 0x40,
|
|
SHCONTF_INCLUDEHIDDEN = 0x80,
|
|
SHCONTF_INIT_ON_FIRST_NEXT = 0x100,
|
|
SHCONTF_NETPRINTERSRCH = 0x200,
|
|
SHCONTF_SHAREABLE = 0x400,
|
|
SHCONTF_STORAGE = 0x800,
|
|
SHCONTF_FASTITEMS = 0x2000,
|
|
SHCONTF_FLATLIST = 0x4000,
|
|
SHCONTF_ENABLE_ASYNC = 0x8000
|
|
} SHCONT;
|
|
|
|
typedef DWORD SHCONTF;
|
|
|
|
enum tagGETPROPERTYSTOREFLAGS
|
|
{ GPS_DEFAULT = 0,
|
|
GPS_HANDLERPROPERTIESONLY = 0x1,
|
|
GPS_READWRITE = 0x2,
|
|
GPS_TEMPORARY = 0x4,
|
|
GPS_FASTPROPERTIESONLY = 0x8,
|
|
GPS_OPENSLOWITEM = 0x10,
|
|
GPS_DELAYCREATION = 0x20,
|
|
GPS_BESTEFFORT = 0x40,
|
|
GPS_MASK_VALID = 0x7f
|
|
} ;
|
|
typedef int GETPROPERTYSTOREFLAGS;
|
|
|
|
typedef /* [v1_enum] */
|
|
enum tagCDCONTROLSTATE
|
|
{ CDCS_INACTIVE = 0,
|
|
CDCS_ENABLED = 0x1,
|
|
CDCS_VISIBLE = 0x2
|
|
} CDCONTROLSTATE;
|
|
|
|
typedef DWORD CDCONTROLSTATEF;
|
|
|
|
typedef void *REFPROPERTYKEY;
|
|
|
|
class IPropertyStore;
|
|
class IPropertyDescriptionList;
|
|
class IFileOperationProgressSink;
|
|
//msvc6
|
|
#else
|
|
#if defined(_MSC_VER) && _MSC_VER >= 1600
|
|
#include <shobjidl.h>
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef __IFileDialog_FWD_DEFINED__
|
|
#define __IFileDialog_FWD_DEFINED__
|
|
typedef interface IFileDialog IFileDialog;
|
|
#endif /* __IFileDialog_FWD_DEFINED__ */
|
|
|
|
|
|
|
|
|
|
#ifndef __IShellItem_INTERFACE_DEFINED__
|
|
#define __IShellItem_INTERFACE_DEFINED__
|
|
|
|
/* interface IShellItem */
|
|
/* [unique][object][uuid][helpstring] */
|
|
|
|
typedef /* [v1_enum] */
|
|
enum tagSIGDN
|
|
{ SIGDN_NORMALDISPLAY = 0,
|
|
SIGDN_PARENTRELATIVEPARSING = ( int )0x80018001,
|
|
SIGDN_DESKTOPABSOLUTEPARSING = ( int )0x80028000,
|
|
SIGDN_PARENTRELATIVEEDITING = ( int )0x80031001,
|
|
SIGDN_DESKTOPABSOLUTEEDITING = ( int )0x8004c000,
|
|
SIGDN_FILESYSPATH = ( int )0x80058000,
|
|
SIGDN_URL = ( int )0x80068000,
|
|
SIGDN_PARENTRELATIVEFORADDRESSBAR = ( int )0x8007c001,
|
|
SIGDN_PARENTRELATIVE = ( int )0x80080001
|
|
} SIGDN;
|
|
|
|
/* [v1_enum] */
|
|
enum tagSHELLITEMCOMPAREHINTF
|
|
{ SICHINT_DISPLAY = 0,
|
|
SICHINT_ALLFIELDS = ( int )0x80000000,
|
|
SICHINT_CANONICAL = 0x10000000
|
|
} ;
|
|
typedef DWORD SICHINTF;
|
|
|
|
|
|
EXTERN_C const IID IID_IShellItem;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("43826d1e-e718-42ee-bc55-a1e261c37bfe")
|
|
IShellItem : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE BindToHandler(
|
|
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
|
|
/* [in] */ __RPC__in REFGUID bhid,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetParent(
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
|
|
/* [in] */ SIGDN sigdnName,
|
|
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetAttributes(
|
|
/* [in] */ SFGAOF sfgaoMask,
|
|
/* [out] */ __RPC__out SFGAOF *psfgaoAttribs) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Compare(
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [in] */ SICHINTF hint,
|
|
/* [out] */ __RPC__out int *piOrder) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IShellItemVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IShellItem * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IShellItem * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IShellItem * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *BindToHandler )(
|
|
IShellItem * This,
|
|
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
|
|
/* [in] */ __RPC__in REFGUID bhid,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetParent )(
|
|
IShellItem * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
|
|
IShellItem * This,
|
|
/* [in] */ SIGDN sigdnName,
|
|
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
|
|
IShellItem * This,
|
|
/* [in] */ SFGAOF sfgaoMask,
|
|
/* [out] */ __RPC__out SFGAOF *psfgaoAttribs);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Compare )(
|
|
IShellItem * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [in] */ SICHINTF hint,
|
|
/* [out] */ __RPC__out int *piOrder);
|
|
|
|
END_INTERFACE
|
|
} IShellItemVtbl;
|
|
|
|
interface IShellItem
|
|
{
|
|
CONST_VTBL struct IShellItemVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IShellItem_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IShellItem_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IShellItem_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IShellItem_BindToHandler(This,pbc,bhid,riid,ppv) \
|
|
( (This)->lpVtbl -> BindToHandler(This,pbc,bhid,riid,ppv) )
|
|
|
|
#define IShellItem_GetParent(This,ppsi) \
|
|
( (This)->lpVtbl -> GetParent(This,ppsi) )
|
|
|
|
#define IShellItem_GetDisplayName(This,sigdnName,ppszName) \
|
|
( (This)->lpVtbl -> GetDisplayName(This,sigdnName,ppszName) )
|
|
|
|
#define IShellItem_GetAttributes(This,sfgaoMask,psfgaoAttribs) \
|
|
( (This)->lpVtbl -> GetAttributes(This,sfgaoMask,psfgaoAttribs) )
|
|
|
|
#define IShellItem_Compare(This,psi,hint,piOrder) \
|
|
( (This)->lpVtbl -> Compare(This,psi,hint,piOrder) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
|
|
#endif /* __IShellItem_INTERFACE_DEFINED__ */
|
|
|
|
#ifndef __IFileDialogEvents_INTERFACE_DEFINED__
|
|
#define __IFileDialogEvents_INTERFACE_DEFINED__
|
|
|
|
/* interface IFileDialogEvents */
|
|
/* [unique][object][uuid] */
|
|
|
|
EXTERN_C const IID IID_IFileDialogEvents;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("973510db-7d7f-452b-8975-74a85828d354")
|
|
IFileDialogEvents : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE OnFileOk(
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE OnFolderChanging(
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd,
|
|
/* [in] */ __RPC__in_opt IShellItem *psiFolder) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE OnFolderChange(
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE OnShareViolation(
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [out] */ __RPC__out FDE_SHAREVIOLATION_RESPONSE *pResponse) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE OnTypeChange(
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE OnOverwrite(
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [out] */ __RPC__out FDE_OVERWRITE_RESPONSE *pResponse) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IFileDialogEventsVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IFileDialogEvents * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IFileDialogEvents * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IFileDialogEvents * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *OnFileOk )(
|
|
IFileDialogEvents * This,
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *OnFolderChanging )(
|
|
IFileDialogEvents * This,
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd,
|
|
/* [in] */ __RPC__in_opt IShellItem *psiFolder);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *OnFolderChange )(
|
|
IFileDialogEvents * This,
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *OnSelectionChange )(
|
|
IFileDialogEvents * This,
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *OnShareViolation )(
|
|
IFileDialogEvents * This,
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [out] */ __RPC__out FDE_SHAREVIOLATION_RESPONSE *pResponse);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *OnTypeChange )(
|
|
IFileDialogEvents * This,
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *OnOverwrite )(
|
|
IFileDialogEvents * This,
|
|
/* [in] */ __RPC__in_opt IFileDialog *pfd,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [out] */ __RPC__out FDE_OVERWRITE_RESPONSE *pResponse);
|
|
|
|
END_INTERFACE
|
|
} IFileDialogEventsVtbl;
|
|
|
|
interface IFileDialogEvents
|
|
{
|
|
CONST_VTBL struct IFileDialogEventsVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IFileDialogEvents_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IFileDialogEvents_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IFileDialogEvents_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IFileDialogEvents_OnFileOk(This,pfd) \
|
|
( (This)->lpVtbl -> OnFileOk(This,pfd) )
|
|
|
|
#define IFileDialogEvents_OnFolderChanging(This,pfd,psiFolder) \
|
|
( (This)->lpVtbl -> OnFolderChanging(This,pfd,psiFolder) )
|
|
|
|
#define IFileDialogEvents_OnFolderChange(This,pfd) \
|
|
( (This)->lpVtbl -> OnFolderChange(This,pfd) )
|
|
|
|
#define IFileDialogEvents_OnSelectionChange(This,pfd) \
|
|
( (This)->lpVtbl -> OnSelectionChange(This,pfd) )
|
|
|
|
#define IFileDialogEvents_OnShareViolation(This,pfd,psi,pResponse) \
|
|
( (This)->lpVtbl -> OnShareViolation(This,pfd,psi,pResponse) )
|
|
|
|
#define IFileDialogEvents_OnTypeChange(This,pfd) \
|
|
( (This)->lpVtbl -> OnTypeChange(This,pfd) )
|
|
|
|
#define IFileDialogEvents_OnOverwrite(This,pfd,psi,pResponse) \
|
|
( (This)->lpVtbl -> OnOverwrite(This,pfd,psi,pResponse) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
|
|
#endif /* __IFileDialogEvents_INTERFACE_DEFINED__ */
|
|
|
|
|
|
#ifndef __IModalWindow_INTERFACE_DEFINED__
|
|
#define __IModalWindow_INTERFACE_DEFINED__
|
|
|
|
/* interface IModalWindow */
|
|
/* [unique][object][uuid][helpstring] */
|
|
|
|
|
|
EXTERN_C const IID IID_IModalWindow;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("b4db1657-70d7-485e-8e3e-6fcb5a5c1802")
|
|
IModalWindow : public IUnknown
|
|
{
|
|
public:
|
|
virtual /* [local] */ HRESULT STDMETHODCALLTYPE Show(
|
|
/* [in] */
|
|
__in HWND hwndParent) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IModalWindowVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IModalWindow * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IModalWindow * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IModalWindow * This);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Show )(
|
|
IModalWindow * This,
|
|
/* [in] */
|
|
__in HWND hwndParent);
|
|
|
|
END_INTERFACE
|
|
} IModalWindowVtbl;
|
|
|
|
interface IModalWindow
|
|
{
|
|
CONST_VTBL struct IModalWindowVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IModalWindow_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IModalWindow_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IModalWindow_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IModalWindow_Show(This,hwndParent) \
|
|
( (This)->lpVtbl -> Show(This,hwndParent) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
/* [call_as] */ HRESULT STDMETHODCALLTYPE IModalWindow_RemoteShow_Proxy(
|
|
IModalWindow * This,
|
|
/* [in] */ __RPC__in HWND hwndParent);
|
|
|
|
|
|
void __RPC_STUB IModalWindow_RemoteShow_Stub(
|
|
IRpcStubBuffer *This,
|
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
|
PRPC_MESSAGE _pRpcMessage,
|
|
DWORD *_pdwStubPhase);
|
|
|
|
|
|
|
|
#endif /* __IModalWindow_INTERFACE_DEFINED__ */
|
|
|
|
#ifndef __IShellItemFilter_INTERFACE_DEFINED__
|
|
#define __IShellItemFilter_INTERFACE_DEFINED__
|
|
|
|
/* interface IShellItemFilter */
|
|
/* [unique][uuid][object] */
|
|
|
|
|
|
EXTERN_C const IID IID_IShellItemFilter;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("2659B475-EEB8-48b7-8F07-B378810F48CF")
|
|
IShellItemFilter : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE IncludeItem(
|
|
/* [in] */ __RPC__in_opt IShellItem *psi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetEnumFlagsForItem(
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [out] */ __RPC__out SHCONTF *pgrfFlags) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IShellItemFilterVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IShellItemFilter * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IShellItemFilter * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IShellItemFilter * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *IncludeItem )(
|
|
IShellItemFilter * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetEnumFlagsForItem )(
|
|
IShellItemFilter * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [out] */ __RPC__out SHCONTF *pgrfFlags);
|
|
|
|
END_INTERFACE
|
|
} IShellItemFilterVtbl;
|
|
|
|
interface IShellItemFilter
|
|
{
|
|
CONST_VTBL struct IShellItemFilterVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IShellItemFilter_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IShellItemFilter_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IShellItemFilter_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IShellItemFilter_IncludeItem(This,psi) \
|
|
( (This)->lpVtbl -> IncludeItem(This,psi) )
|
|
|
|
#define IShellItemFilter_GetEnumFlagsForItem(This,psi,pgrfFlags) \
|
|
( (This)->lpVtbl -> GetEnumFlagsForItem(This,psi,pgrfFlags) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
|
|
#endif /* __IShellItemFilter_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
|
|
#ifndef __IFileDialog_INTERFACE_DEFINED__
|
|
#define __IFileDialog_INTERFACE_DEFINED__
|
|
|
|
/* interface IFileDialog */
|
|
/* [unique][object][uuid] */
|
|
|
|
|
|
enum tagFILEOPENDIALOGOPTIONS
|
|
{ FOS_OVERWRITEPROMPT = 0x2,
|
|
FOS_STRICTFILETYPES = 0x4,
|
|
FOS_NOCHANGEDIR = 0x8,
|
|
FOS_PICKFOLDERS = 0x20,
|
|
FOS_FORCEFILESYSTEM = 0x40,
|
|
FOS_ALLNONSTORAGEITEMS = 0x80,
|
|
FOS_NOVALIDATE = 0x100,
|
|
FOS_ALLOWMULTISELECT = 0x200,
|
|
FOS_PATHMUSTEXIST = 0x800,
|
|
FOS_FILEMUSTEXIST = 0x1000,
|
|
FOS_CREATEPROMPT = 0x2000,
|
|
FOS_SHAREAWARE = 0x4000,
|
|
FOS_NOREADONLYRETURN = 0x8000,
|
|
FOS_NOTESTFILECREATE = 0x10000,
|
|
FOS_HIDEMRUPLACES = 0x20000,
|
|
FOS_HIDEPINNEDPLACES = 0x40000,
|
|
FOS_NODEREFERENCELINKS = 0x100000,
|
|
FOS_DONTADDTORECENT = 0x2000000,
|
|
FOS_FORCESHOWHIDDEN = 0x10000000,
|
|
FOS_DEFAULTNOMINIMODE = 0x20000000,
|
|
FOS_FORCEPREVIEWPANEON = 0x40000000
|
|
} ;
|
|
|
|
EXTERN_C const IID IID_IFileDialog;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("42f85136-db7e-439c-85f1-e4075d135fc8")
|
|
IFileDialog : public IModalWindow
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE SetFileTypes(
|
|
/* [in] */ UINT cFileTypes,
|
|
/* [size_is][in] */ __RPC__in_ecount_full(cFileTypes) const COMDLG_FILTERSPEC *rgFilterSpec) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetFileTypeIndex(
|
|
/* [in] */ UINT iFileType) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetFileTypeIndex(
|
|
/* [out] */ __RPC__out UINT *piFileType) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Advise(
|
|
/* [in] */ __RPC__in_opt IFileDialogEvents *pfde,
|
|
/* [out] */ __RPC__out DWORD *pdwCookie) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Unadvise(
|
|
/* [in] */ DWORD dwCookie) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetOptions(
|
|
/* [in] */ DWORD fos) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetOptions(
|
|
/* [out] */ __RPC__out DWORD *pfos) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetDefaultFolder(
|
|
/* [in] */ __RPC__in_opt IShellItem *psi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetFolder(
|
|
/* [in] */ __RPC__in_opt IShellItem *psi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetFolder(
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetFileName(
|
|
/* [string][in] */ __RPC__in LPCWSTR pszName) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetFileName(
|
|
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *pszName) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetTitle(
|
|
/* [string][in] */ __RPC__in LPCWSTR pszTitle) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetOkButtonLabel(
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetFileNameLabel(
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetResult(
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddPlace(
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [in] */ FDAP fdap) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetDefaultExtension(
|
|
/* [string][in] */ __RPC__in LPCWSTR pszDefaultExtension) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Close(
|
|
/* [in] */ HRESULT hr) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
|
|
/* [in] */ __RPC__in REFGUID guid) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE ClearClientData( void) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetFilter(
|
|
/* [in] */ __RPC__in_opt IShellItemFilter *pFilter) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IFileDialogVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IFileDialog * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IFileDialog * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IFileDialog * This);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Show )(
|
|
IFileDialog * This,
|
|
/* [in] */
|
|
__in HWND hwndParent);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileTypes )(
|
|
IFileDialog * This,
|
|
/* [in] */ UINT cFileTypes,
|
|
/* [size_is][in] */ __RPC__in_ecount_full(cFileTypes) const COMDLG_FILTERSPEC *rgFilterSpec);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileTypeIndex )(
|
|
IFileDialog * This,
|
|
/* [in] */ UINT iFileType);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFileTypeIndex )(
|
|
IFileDialog * This,
|
|
/* [out] */ __RPC__out UINT *piFileType);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Advise )(
|
|
IFileDialog * This,
|
|
/* [in] */ __RPC__in_opt IFileDialogEvents *pfde,
|
|
/* [out] */ __RPC__out DWORD *pdwCookie);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Unadvise )(
|
|
IFileDialog * This,
|
|
/* [in] */ DWORD dwCookie);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetOptions )(
|
|
IFileDialog * This,
|
|
/* [in] */ DWORD fos);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetOptions )(
|
|
IFileDialog * This,
|
|
/* [out] */ __RPC__out DWORD *pfos);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetDefaultFolder )(
|
|
IFileDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFolder )(
|
|
IFileDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFolder )(
|
|
IFileDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetCurrentSelection )(
|
|
IFileDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileName )(
|
|
IFileDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszName);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFileName )(
|
|
IFileDialog * This,
|
|
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *pszName);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetTitle )(
|
|
IFileDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszTitle);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetOkButtonLabel )(
|
|
IFileDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileNameLabel )(
|
|
IFileDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetResult )(
|
|
IFileDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddPlace )(
|
|
IFileDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [in] */ FDAP fdap);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetDefaultExtension )(
|
|
IFileDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszDefaultExtension);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Close )(
|
|
IFileDialog * This,
|
|
/* [in] */ HRESULT hr);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetClientGuid )(
|
|
IFileDialog * This,
|
|
/* [in] */ __RPC__in REFGUID guid);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *ClearClientData )(
|
|
IFileDialog * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFilter )(
|
|
IFileDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItemFilter *pFilter);
|
|
|
|
END_INTERFACE
|
|
} IFileDialogVtbl;
|
|
|
|
interface IFileDialog
|
|
{
|
|
CONST_VTBL struct IFileDialogVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IFileDialog_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IFileDialog_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IFileDialog_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IFileDialog_Show(This,hwndParent) \
|
|
( (This)->lpVtbl -> Show(This,hwndParent) )
|
|
|
|
|
|
#define IFileDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) \
|
|
( (This)->lpVtbl -> SetFileTypes(This,cFileTypes,rgFilterSpec) )
|
|
|
|
#define IFileDialog_SetFileTypeIndex(This,iFileType) \
|
|
( (This)->lpVtbl -> SetFileTypeIndex(This,iFileType) )
|
|
|
|
#define IFileDialog_GetFileTypeIndex(This,piFileType) \
|
|
( (This)->lpVtbl -> GetFileTypeIndex(This,piFileType) )
|
|
|
|
#define IFileDialog_Advise(This,pfde,pdwCookie) \
|
|
( (This)->lpVtbl -> Advise(This,pfde,pdwCookie) )
|
|
|
|
#define IFileDialog_Unadvise(This,dwCookie) \
|
|
( (This)->lpVtbl -> Unadvise(This,dwCookie) )
|
|
|
|
#define IFileDialog_SetOptions(This,fos) \
|
|
( (This)->lpVtbl -> SetOptions(This,fos) )
|
|
|
|
#define IFileDialog_GetOptions(This,pfos) \
|
|
( (This)->lpVtbl -> GetOptions(This,pfos) )
|
|
|
|
#define IFileDialog_SetDefaultFolder(This,psi) \
|
|
( (This)->lpVtbl -> SetDefaultFolder(This,psi) )
|
|
|
|
#define IFileDialog_SetFolder(This,psi) \
|
|
( (This)->lpVtbl -> SetFolder(This,psi) )
|
|
|
|
#define IFileDialog_GetFolder(This,ppsi) \
|
|
( (This)->lpVtbl -> GetFolder(This,ppsi) )
|
|
|
|
#define IFileDialog_GetCurrentSelection(This,ppsi) \
|
|
( (This)->lpVtbl -> GetCurrentSelection(This,ppsi) )
|
|
|
|
#define IFileDialog_SetFileName(This,pszName) \
|
|
( (This)->lpVtbl -> SetFileName(This,pszName) )
|
|
|
|
#define IFileDialog_GetFileName(This,pszName) \
|
|
( (This)->lpVtbl -> GetFileName(This,pszName) )
|
|
|
|
#define IFileDialog_SetTitle(This,pszTitle) \
|
|
( (This)->lpVtbl -> SetTitle(This,pszTitle) )
|
|
|
|
#define IFileDialog_SetOkButtonLabel(This,pszText) \
|
|
( (This)->lpVtbl -> SetOkButtonLabel(This,pszText) )
|
|
|
|
#define IFileDialog_SetFileNameLabel(This,pszLabel) \
|
|
( (This)->lpVtbl -> SetFileNameLabel(This,pszLabel) )
|
|
|
|
#define IFileDialog_GetResult(This,ppsi) \
|
|
( (This)->lpVtbl -> GetResult(This,ppsi) )
|
|
|
|
#define IFileDialog_AddPlace(This,psi,fdap) \
|
|
( (This)->lpVtbl -> AddPlace(This,psi,fdap) )
|
|
|
|
#define IFileDialog_SetDefaultExtension(This,pszDefaultExtension) \
|
|
( (This)->lpVtbl -> SetDefaultExtension(This,pszDefaultExtension) )
|
|
|
|
#define IFileDialog_Close(This,hr) \
|
|
( (This)->lpVtbl -> Close(This,hr) )
|
|
|
|
#define IFileDialog_SetClientGuid(This,guid) \
|
|
( (This)->lpVtbl -> SetClientGuid(This,guid) )
|
|
|
|
#define IFileDialog_ClearClientData(This) \
|
|
( (This)->lpVtbl -> ClearClientData(This) )
|
|
|
|
#define IFileDialog_SetFilter(This,pFilter) \
|
|
( (This)->lpVtbl -> SetFilter(This,pFilter) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
#ifndef __IEnumShellItems_INTERFACE_DEFINED__
|
|
#define __IEnumShellItems_INTERFACE_DEFINED__
|
|
|
|
/* interface IEnumShellItems */
|
|
/* [unique][object][uuid][helpstring] */
|
|
|
|
|
|
EXTERN_C const IID IID_IEnumShellItems;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("70629033-e363-4a28-a567-0db78006e6d7")
|
|
IEnumShellItems : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE Next(
|
|
/* [in] */ ULONG celt,
|
|
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IShellItem **rgelt,
|
|
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Skip(
|
|
/* [in] */ ULONG celt) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Clone(
|
|
/* [out] */ __RPC__deref_out_opt IEnumShellItems **ppenum) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IEnumShellItemsVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IEnumShellItems * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IEnumShellItems * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IEnumShellItems * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Next )(
|
|
IEnumShellItems * This,
|
|
/* [in] */ ULONG celt,
|
|
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IShellItem **rgelt,
|
|
/* [out] */ __RPC__out ULONG *pceltFetched);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Skip )(
|
|
IEnumShellItems * This,
|
|
/* [in] */ ULONG celt);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Reset )(
|
|
IEnumShellItems * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Clone )(
|
|
IEnumShellItems * This,
|
|
/* [out] */ __RPC__deref_out_opt IEnumShellItems **ppenum);
|
|
|
|
END_INTERFACE
|
|
} IEnumShellItemsVtbl;
|
|
|
|
interface IEnumShellItems
|
|
{
|
|
CONST_VTBL struct IEnumShellItemsVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IEnumShellItems_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IEnumShellItems_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IEnumShellItems_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IEnumShellItems_Next(This,celt,rgelt,pceltFetched) \
|
|
( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) )
|
|
|
|
#define IEnumShellItems_Skip(This,celt) \
|
|
( (This)->lpVtbl -> Skip(This,celt) )
|
|
|
|
#define IEnumShellItems_Reset(This) \
|
|
( (This)->lpVtbl -> Reset(This) )
|
|
|
|
#define IEnumShellItems_Clone(This,ppenum) \
|
|
( (This)->lpVtbl -> Clone(This,ppenum) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
|
|
#endif /* __IEnumShellItems_INTERFACE_DEFINED__ */
|
|
|
|
|
|
#ifndef __IShellItemArray_INTERFACE_DEFINED__
|
|
#define __IShellItemArray_INTERFACE_DEFINED__
|
|
|
|
/* interface IShellItemArray */
|
|
/* [unique][object][uuid][helpstring] */
|
|
|
|
typedef /* [v1_enum] */
|
|
enum tagSIATTRIBFLAGS
|
|
{ SIATTRIBFLAGS_AND = 0x1,
|
|
SIATTRIBFLAGS_OR = 0x2,
|
|
SIATTRIBFLAGS_APPCOMPAT = 0x3,
|
|
SIATTRIBFLAGS_MASK = 0x3
|
|
} SIATTRIBFLAGS;
|
|
|
|
|
|
EXTERN_C const IID IID_IShellItemArray;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("b63ea76d-1f85-456f-a19c-48159efa858b")
|
|
IShellItemArray : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE BindToHandler(
|
|
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
|
|
/* [in] */ __RPC__in REFGUID rbhid,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */ __RPC__deref_out_opt void **ppvOut) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
|
|
/* [in] */ GETPROPERTYSTOREFLAGS flags,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
|
|
/* [in] */ __RPC__in REFPROPERTYKEY keyType,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetAttributes(
|
|
/* [in] */ SIATTRIBFLAGS dwAttribFlags,
|
|
/* [in] */ SFGAOF sfgaoMask,
|
|
/* [out] */ __RPC__out SFGAOF *psfgaoAttribs) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetCount(
|
|
/* [out] */ __RPC__out DWORD *pdwNumItems) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetItemAt(
|
|
/* [in] */ DWORD dwIndex,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE EnumItems(
|
|
/* [out] */ __RPC__deref_out_opt IEnumShellItems **ppenumShellItems) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IShellItemArrayVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IShellItemArray * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IShellItemArray * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IShellItemArray * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *BindToHandler )(
|
|
IShellItemArray * This,
|
|
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
|
|
/* [in] */ __RPC__in REFGUID rbhid,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */ __RPC__deref_out_opt void **ppvOut);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetPropertyStore )(
|
|
IShellItemArray * This,
|
|
/* [in] */ GETPROPERTYSTOREFLAGS flags,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetPropertyDescriptionList )(
|
|
IShellItemArray * This,
|
|
/* [in] */ __RPC__in REFPROPERTYKEY keyType,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
|
|
IShellItemArray * This,
|
|
/* [in] */ SIATTRIBFLAGS dwAttribFlags,
|
|
/* [in] */ SFGAOF sfgaoMask,
|
|
/* [out] */ __RPC__out SFGAOF *psfgaoAttribs);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetCount )(
|
|
IShellItemArray * This,
|
|
/* [out] */ __RPC__out DWORD *pdwNumItems);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetItemAt )(
|
|
IShellItemArray * This,
|
|
/* [in] */ DWORD dwIndex,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *EnumItems )(
|
|
IShellItemArray * This,
|
|
/* [out] */ __RPC__deref_out_opt IEnumShellItems **ppenumShellItems);
|
|
|
|
END_INTERFACE
|
|
} IShellItemArrayVtbl;
|
|
|
|
interface IShellItemArray
|
|
{
|
|
CONST_VTBL struct IShellItemArrayVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IShellItemArray_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IShellItemArray_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IShellItemArray_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IShellItemArray_BindToHandler(This,pbc,rbhid,riid,ppvOut) \
|
|
( (This)->lpVtbl -> BindToHandler(This,pbc,rbhid,riid,ppvOut) )
|
|
|
|
#define IShellItemArray_GetPropertyStore(This,flags,riid,ppv) \
|
|
( (This)->lpVtbl -> GetPropertyStore(This,flags,riid,ppv) )
|
|
|
|
#define IShellItemArray_GetPropertyDescriptionList(This,keyType,riid,ppv) \
|
|
( (This)->lpVtbl -> GetPropertyDescriptionList(This,keyType,riid,ppv) )
|
|
|
|
#define IShellItemArray_GetAttributes(This,dwAttribFlags,sfgaoMask,psfgaoAttribs) \
|
|
( (This)->lpVtbl -> GetAttributes(This,dwAttribFlags,sfgaoMask,psfgaoAttribs) )
|
|
|
|
#define IShellItemArray_GetCount(This,pdwNumItems) \
|
|
( (This)->lpVtbl -> GetCount(This,pdwNumItems) )
|
|
|
|
#define IShellItemArray_GetItemAt(This,dwIndex,ppsi) \
|
|
( (This)->lpVtbl -> GetItemAt(This,dwIndex,ppsi) )
|
|
|
|
#define IShellItemArray_EnumItems(This,ppenumShellItems) \
|
|
( (This)->lpVtbl -> EnumItems(This,ppenumShellItems) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
|
|
#endif /* __IShellItemArray_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IFileDialog_INTERFACE_DEFINED__ */
|
|
|
|
#ifndef __IFileOpenDialog_INTERFACE_DEFINED__
|
|
#define __IFileOpenDialog_INTERFACE_DEFINED__
|
|
|
|
/* interface IFileOpenDialog */
|
|
/* [unique][object][uuid] */
|
|
|
|
|
|
EXTERN_C const IID IID_IFileOpenDialog;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("d57c7288-d4ad-4768-be02-9d969532d960")
|
|
IFileOpenDialog : public IFileDialog
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE GetResults(
|
|
/* [out] */ __RPC__deref_out_opt IShellItemArray **ppenum) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
|
|
/* [out] */ __RPC__deref_out_opt IShellItemArray **ppsai) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IFileOpenDialogVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IFileOpenDialog * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IFileOpenDialog * This);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Show )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */
|
|
__in HWND hwndParent);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileTypes )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ UINT cFileTypes,
|
|
/* [size_is][in] */ __RPC__in_ecount_full(cFileTypes) const COMDLG_FILTERSPEC *rgFilterSpec);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileTypeIndex )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ UINT iFileType);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFileTypeIndex )(
|
|
IFileOpenDialog * This,
|
|
/* [out] */ __RPC__out UINT *piFileType);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Advise )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ __RPC__in_opt IFileDialogEvents *pfde,
|
|
/* [out] */ __RPC__out DWORD *pdwCookie);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Unadvise )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ DWORD dwCookie);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetOptions )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ DWORD fos);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetOptions )(
|
|
IFileOpenDialog * This,
|
|
/* [out] */ __RPC__out DWORD *pfos);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetDefaultFolder )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFolder )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFolder )(
|
|
IFileOpenDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetCurrentSelection )(
|
|
IFileOpenDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileName )(
|
|
IFileOpenDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszName);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFileName )(
|
|
IFileOpenDialog * This,
|
|
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *pszName);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetTitle )(
|
|
IFileOpenDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszTitle);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetOkButtonLabel )(
|
|
IFileOpenDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileNameLabel )(
|
|
IFileOpenDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetResult )(
|
|
IFileOpenDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddPlace )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [in] */ FDAP fdap);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetDefaultExtension )(
|
|
IFileOpenDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszDefaultExtension);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Close )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ HRESULT hr);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetClientGuid )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ __RPC__in REFGUID guid);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *ClearClientData )(
|
|
IFileOpenDialog * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFilter )(
|
|
IFileOpenDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItemFilter *pFilter);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetResults )(
|
|
IFileOpenDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItemArray **ppenum);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetSelectedItems )(
|
|
IFileOpenDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItemArray **ppsai);
|
|
|
|
END_INTERFACE
|
|
} IFileOpenDialogVtbl;
|
|
|
|
interface IFileOpenDialog
|
|
{
|
|
CONST_VTBL struct IFileOpenDialogVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IFileOpenDialog_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IFileOpenDialog_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IFileOpenDialog_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IFileOpenDialog_Show(This,hwndParent) \
|
|
( (This)->lpVtbl -> Show(This,hwndParent) )
|
|
|
|
|
|
#define IFileOpenDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) \
|
|
( (This)->lpVtbl -> SetFileTypes(This,cFileTypes,rgFilterSpec) )
|
|
|
|
#define IFileOpenDialog_SetFileTypeIndex(This,iFileType) \
|
|
( (This)->lpVtbl -> SetFileTypeIndex(This,iFileType) )
|
|
|
|
#define IFileOpenDialog_GetFileTypeIndex(This,piFileType) \
|
|
( (This)->lpVtbl -> GetFileTypeIndex(This,piFileType) )
|
|
|
|
#define IFileOpenDialog_Advise(This,pfde,pdwCookie) \
|
|
( (This)->lpVtbl -> Advise(This,pfde,pdwCookie) )
|
|
|
|
#define IFileOpenDialog_Unadvise(This,dwCookie) \
|
|
( (This)->lpVtbl -> Unadvise(This,dwCookie) )
|
|
|
|
#define IFileOpenDialog_SetOptions(This,fos) \
|
|
( (This)->lpVtbl -> SetOptions(This,fos) )
|
|
|
|
#define IFileOpenDialog_GetOptions(This,pfos) \
|
|
( (This)->lpVtbl -> GetOptions(This,pfos) )
|
|
|
|
#define IFileOpenDialog_SetDefaultFolder(This,psi) \
|
|
( (This)->lpVtbl -> SetDefaultFolder(This,psi) )
|
|
|
|
#define IFileOpenDialog_SetFolder(This,psi) \
|
|
( (This)->lpVtbl -> SetFolder(This,psi) )
|
|
|
|
#define IFileOpenDialog_GetFolder(This,ppsi) \
|
|
( (This)->lpVtbl -> GetFolder(This,ppsi) )
|
|
|
|
#define IFileOpenDialog_GetCurrentSelection(This,ppsi) \
|
|
( (This)->lpVtbl -> GetCurrentSelection(This,ppsi) )
|
|
|
|
#define IFileOpenDialog_SetFileName(This,pszName) \
|
|
( (This)->lpVtbl -> SetFileName(This,pszName) )
|
|
|
|
#define IFileOpenDialog_GetFileName(This,pszName) \
|
|
( (This)->lpVtbl -> GetFileName(This,pszName) )
|
|
|
|
#define IFileOpenDialog_SetTitle(This,pszTitle) \
|
|
( (This)->lpVtbl -> SetTitle(This,pszTitle) )
|
|
|
|
#define IFileOpenDialog_SetOkButtonLabel(This,pszText) \
|
|
( (This)->lpVtbl -> SetOkButtonLabel(This,pszText) )
|
|
|
|
#define IFileOpenDialog_SetFileNameLabel(This,pszLabel) \
|
|
( (This)->lpVtbl -> SetFileNameLabel(This,pszLabel) )
|
|
|
|
#define IFileOpenDialog_GetResult(This,ppsi) \
|
|
( (This)->lpVtbl -> GetResult(This,ppsi) )
|
|
|
|
#define IFileOpenDialog_AddPlace(This,psi,fdap) \
|
|
( (This)->lpVtbl -> AddPlace(This,psi,fdap) )
|
|
|
|
#define IFileOpenDialog_SetDefaultExtension(This,pszDefaultExtension) \
|
|
( (This)->lpVtbl -> SetDefaultExtension(This,pszDefaultExtension) )
|
|
|
|
#define IFileOpenDialog_Close(This,hr) \
|
|
( (This)->lpVtbl -> Close(This,hr) )
|
|
|
|
#define IFileOpenDialog_SetClientGuid(This,guid) \
|
|
( (This)->lpVtbl -> SetClientGuid(This,guid) )
|
|
|
|
#define IFileOpenDialog_ClearClientData(This) \
|
|
( (This)->lpVtbl -> ClearClientData(This) )
|
|
|
|
#define IFileOpenDialog_SetFilter(This,pFilter) \
|
|
( (This)->lpVtbl -> SetFilter(This,pFilter) )
|
|
|
|
|
|
#define IFileOpenDialog_GetResults(This,ppenum) \
|
|
( (This)->lpVtbl -> GetResults(This,ppenum) )
|
|
|
|
#define IFileOpenDialog_GetSelectedItems(This,ppsai) \
|
|
( (This)->lpVtbl -> GetSelectedItems(This,ppsai) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
|
|
#endif /* __IFileOpenDialog_INTERFACE_DEFINED__ */
|
|
|
|
|
|
#ifndef __IFileDialogCustomize_INTERFACE_DEFINED__
|
|
#define __IFileDialogCustomize_INTERFACE_DEFINED__
|
|
|
|
/* interface IFileDialogCustomize */
|
|
/* [unique][object][uuid] */
|
|
|
|
|
|
EXTERN_C const IID IID_IFileDialogCustomize;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("e6fdd21a-163f-4975-9c8c-a69f1ba37034")
|
|
IFileDialogCustomize : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE EnableOpenDropDown(
|
|
/* [in] */ DWORD dwIDCtl) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddMenu(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddPushButton(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddComboBox(
|
|
/* [in] */ DWORD dwIDCtl) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddRadioButtonList(
|
|
/* [in] */ DWORD dwIDCtl) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddCheckButton(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel,
|
|
/* [in] */ BOOL bChecked) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddEditBox(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddSeparator(
|
|
/* [in] */ DWORD dwIDCtl) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddText(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetControlLabel(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetControlState(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [out] */ __RPC__out CDCONTROLSTATEF *pdwState) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetControlState(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ CDCONTROLSTATEF dwState) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetEditBoxText(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][out] */ __RPC__deref_out_opt_string WCHAR **ppszText) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetEditBoxText(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetCheckButtonState(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [out] */ __RPC__out BOOL *pbChecked) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetCheckButtonState(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ BOOL bChecked) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AddControlItem(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem,
|
|
/* [in] */ __RPC__in LPCWSTR pszLabel) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE RemoveControlItem(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE RemoveAllControlItems(
|
|
/* [in] */ DWORD dwIDCtl) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetControlItemState(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem,
|
|
/* [out] */ __RPC__out CDCONTROLSTATEF *pdwState) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetControlItemState(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem,
|
|
/* [in] */ CDCONTROLSTATEF dwState) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetSelectedControlItem(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [out] */ __RPC__out DWORD *pdwIDItem) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetSelectedControlItem(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE StartVisualGroup(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE EndVisualGroup( void) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE MakeProminent(
|
|
/* [in] */ DWORD dwIDCtl) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetControlItemText(
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IFileDialogCustomizeVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IFileDialogCustomize * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IFileDialogCustomize * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *EnableOpenDropDown )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddMenu )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddPushButton )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddComboBox )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddRadioButtonList )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddCheckButton )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel,
|
|
/* [in] */ BOOL bChecked);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddEditBox )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddSeparator )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddText )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetControlLabel )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetControlState )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [out] */ __RPC__out CDCONTROLSTATEF *pdwState);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetControlState )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ CDCONTROLSTATEF dwState);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetEditBoxText )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][out] */ __RPC__deref_out_opt_string WCHAR **ppszText);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetEditBoxText )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetCheckButtonState )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [out] */ __RPC__out BOOL *pbChecked);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetCheckButtonState )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ BOOL bChecked);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddControlItem )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem,
|
|
/* [in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *RemoveControlItem )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *RemoveAllControlItems )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetControlItemState )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem,
|
|
/* [out] */ __RPC__out CDCONTROLSTATEF *pdwState);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetControlItemState )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem,
|
|
/* [in] */ CDCONTROLSTATEF dwState);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetSelectedControlItem )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [out] */ __RPC__out DWORD *pdwIDItem);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetSelectedControlItem )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *StartVisualGroup )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *EndVisualGroup )(
|
|
IFileDialogCustomize * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *MakeProminent )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetControlItemText )(
|
|
IFileDialogCustomize * This,
|
|
/* [in] */ DWORD dwIDCtl,
|
|
/* [in] */ DWORD dwIDItem,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
END_INTERFACE
|
|
} IFileDialogCustomizeVtbl;
|
|
|
|
interface IFileDialogCustomize
|
|
{
|
|
CONST_VTBL struct IFileDialogCustomizeVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IFileDialogCustomize_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IFileDialogCustomize_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IFileDialogCustomize_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IFileDialogCustomize_EnableOpenDropDown(This,dwIDCtl) \
|
|
( (This)->lpVtbl -> EnableOpenDropDown(This,dwIDCtl) )
|
|
|
|
#define IFileDialogCustomize_AddMenu(This,dwIDCtl,pszLabel) \
|
|
( (This)->lpVtbl -> AddMenu(This,dwIDCtl,pszLabel) )
|
|
|
|
#define IFileDialogCustomize_AddPushButton(This,dwIDCtl,pszLabel) \
|
|
( (This)->lpVtbl -> AddPushButton(This,dwIDCtl,pszLabel) )
|
|
|
|
#define IFileDialogCustomize_AddComboBox(This,dwIDCtl) \
|
|
( (This)->lpVtbl -> AddComboBox(This,dwIDCtl) )
|
|
|
|
#define IFileDialogCustomize_AddRadioButtonList(This,dwIDCtl) \
|
|
( (This)->lpVtbl -> AddRadioButtonList(This,dwIDCtl) )
|
|
|
|
#define IFileDialogCustomize_AddCheckButton(This,dwIDCtl,pszLabel,bChecked) \
|
|
( (This)->lpVtbl -> AddCheckButton(This,dwIDCtl,pszLabel,bChecked) )
|
|
|
|
#define IFileDialogCustomize_AddEditBox(This,dwIDCtl,pszText) \
|
|
( (This)->lpVtbl -> AddEditBox(This,dwIDCtl,pszText) )
|
|
|
|
#define IFileDialogCustomize_AddSeparator(This,dwIDCtl) \
|
|
( (This)->lpVtbl -> AddSeparator(This,dwIDCtl) )
|
|
|
|
#define IFileDialogCustomize_AddText(This,dwIDCtl,pszText) \
|
|
( (This)->lpVtbl -> AddText(This,dwIDCtl,pszText) )
|
|
|
|
#define IFileDialogCustomize_SetControlLabel(This,dwIDCtl,pszLabel) \
|
|
( (This)->lpVtbl -> SetControlLabel(This,dwIDCtl,pszLabel) )
|
|
|
|
#define IFileDialogCustomize_GetControlState(This,dwIDCtl,pdwState) \
|
|
( (This)->lpVtbl -> GetControlState(This,dwIDCtl,pdwState) )
|
|
|
|
#define IFileDialogCustomize_SetControlState(This,dwIDCtl,dwState) \
|
|
( (This)->lpVtbl -> SetControlState(This,dwIDCtl,dwState) )
|
|
|
|
#define IFileDialogCustomize_GetEditBoxText(This,dwIDCtl,ppszText) \
|
|
( (This)->lpVtbl -> GetEditBoxText(This,dwIDCtl,ppszText) )
|
|
|
|
#define IFileDialogCustomize_SetEditBoxText(This,dwIDCtl,pszText) \
|
|
( (This)->lpVtbl -> SetEditBoxText(This,dwIDCtl,pszText) )
|
|
|
|
#define IFileDialogCustomize_GetCheckButtonState(This,dwIDCtl,pbChecked) \
|
|
( (This)->lpVtbl -> GetCheckButtonState(This,dwIDCtl,pbChecked) )
|
|
|
|
#define IFileDialogCustomize_SetCheckButtonState(This,dwIDCtl,bChecked) \
|
|
( (This)->lpVtbl -> SetCheckButtonState(This,dwIDCtl,bChecked) )
|
|
|
|
#define IFileDialogCustomize_AddControlItem(This,dwIDCtl,dwIDItem,pszLabel) \
|
|
( (This)->lpVtbl -> AddControlItem(This,dwIDCtl,dwIDItem,pszLabel) )
|
|
|
|
#define IFileDialogCustomize_RemoveControlItem(This,dwIDCtl,dwIDItem) \
|
|
( (This)->lpVtbl -> RemoveControlItem(This,dwIDCtl,dwIDItem) )
|
|
|
|
#define IFileDialogCustomize_RemoveAllControlItems(This,dwIDCtl) \
|
|
( (This)->lpVtbl -> RemoveAllControlItems(This,dwIDCtl) )
|
|
|
|
#define IFileDialogCustomize_GetControlItemState(This,dwIDCtl,dwIDItem,pdwState) \
|
|
( (This)->lpVtbl -> GetControlItemState(This,dwIDCtl,dwIDItem,pdwState) )
|
|
|
|
#define IFileDialogCustomize_SetControlItemState(This,dwIDCtl,dwIDItem,dwState) \
|
|
( (This)->lpVtbl -> SetControlItemState(This,dwIDCtl,dwIDItem,dwState) )
|
|
|
|
#define IFileDialogCustomize_GetSelectedControlItem(This,dwIDCtl,pdwIDItem) \
|
|
( (This)->lpVtbl -> GetSelectedControlItem(This,dwIDCtl,pdwIDItem) )
|
|
|
|
#define IFileDialogCustomize_SetSelectedControlItem(This,dwIDCtl,dwIDItem) \
|
|
( (This)->lpVtbl -> SetSelectedControlItem(This,dwIDCtl,dwIDItem) )
|
|
|
|
#define IFileDialogCustomize_StartVisualGroup(This,dwIDCtl,pszLabel) \
|
|
( (This)->lpVtbl -> StartVisualGroup(This,dwIDCtl,pszLabel) )
|
|
|
|
#define IFileDialogCustomize_EndVisualGroup(This) \
|
|
( (This)->lpVtbl -> EndVisualGroup(This) )
|
|
|
|
#define IFileDialogCustomize_MakeProminent(This,dwIDCtl) \
|
|
( (This)->lpVtbl -> MakeProminent(This,dwIDCtl) )
|
|
|
|
#define IFileDialogCustomize_SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel) \
|
|
( (This)->lpVtbl -> SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
|
|
#endif /* __IFileDialogCustomize_INTERFACE_DEFINED__ */
|
|
|
|
|
|
#ifndef __IFileSaveDialog_INTERFACE_DEFINED__
|
|
#define __IFileSaveDialog_INTERFACE_DEFINED__
|
|
|
|
/* interface IFileSaveDialog */
|
|
/* [unique][object][uuid] */
|
|
|
|
|
|
EXTERN_C const IID IID_IFileSaveDialog;
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
|
|
MIDL_INTERFACE("84bccd23-5fde-4cdb-aea4-af64b83d78ab")
|
|
IFileSaveDialog : public IFileDialog
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE SetSaveAsItem(
|
|
/* [in] */ __RPC__in_opt IShellItem *psi) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetProperties(
|
|
/* [in] */ __RPC__in_opt IPropertyStore *pStore) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetCollectedProperties(
|
|
/* [in] */ __RPC__in_opt IPropertyDescriptionList *pList,
|
|
/* [in] */ BOOL fAppendDefault) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetProperties(
|
|
/* [out] */ __RPC__deref_out_opt IPropertyStore **ppStore) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE ApplyProperties(
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [in] */ __RPC__in_opt IPropertyStore *pStore,
|
|
/* [unique][in] */ __RPC__in_opt HWND hwnd,
|
|
/* [unique][in] */ __RPC__in_opt IFileOperationProgressSink *pSink) = 0;
|
|
|
|
};
|
|
|
|
#else /* C style interface */
|
|
|
|
typedef struct IFileSaveDialogVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in REFIID riid,
|
|
/* [iid_is][out] */
|
|
__RPC__deref_out void **ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
|
IFileSaveDialog * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
|
IFileSaveDialog * This);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Show )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */
|
|
__in HWND hwndParent);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileTypes )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ UINT cFileTypes,
|
|
/* [size_is][in] */ __RPC__in_ecount_full(cFileTypes) const COMDLG_FILTERSPEC *rgFilterSpec);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileTypeIndex )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ UINT iFileType);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFileTypeIndex )(
|
|
IFileSaveDialog * This,
|
|
/* [out] */ __RPC__out UINT *piFileType);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Advise )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IFileDialogEvents *pfde,
|
|
/* [out] */ __RPC__out DWORD *pdwCookie);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Unadvise )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ DWORD dwCookie);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetOptions )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ DWORD fos);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetOptions )(
|
|
IFileSaveDialog * This,
|
|
/* [out] */ __RPC__out DWORD *pfos);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetDefaultFolder )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFolder )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFolder )(
|
|
IFileSaveDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetCurrentSelection )(
|
|
IFileSaveDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileName )(
|
|
IFileSaveDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszName);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetFileName )(
|
|
IFileSaveDialog * This,
|
|
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *pszName);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetTitle )(
|
|
IFileSaveDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszTitle);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetOkButtonLabel )(
|
|
IFileSaveDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszText);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFileNameLabel )(
|
|
IFileSaveDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszLabel);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetResult )(
|
|
IFileSaveDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *AddPlace )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [in] */ FDAP fdap);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetDefaultExtension )(
|
|
IFileSaveDialog * This,
|
|
/* [string][in] */ __RPC__in LPCWSTR pszDefaultExtension);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *Close )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ HRESULT hr);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetClientGuid )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in REFGUID guid);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *ClearClientData )(
|
|
IFileSaveDialog * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetFilter )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItemFilter *pFilter);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetSaveAsItem )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetProperties )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IPropertyStore *pStore);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *SetCollectedProperties )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IPropertyDescriptionList *pList,
|
|
/* [in] */ BOOL fAppendDefault);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *GetProperties )(
|
|
IFileSaveDialog * This,
|
|
/* [out] */ __RPC__deref_out_opt IPropertyStore **ppStore);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE *ApplyProperties )(
|
|
IFileSaveDialog * This,
|
|
/* [in] */ __RPC__in_opt IShellItem *psi,
|
|
/* [in] */ __RPC__in_opt IPropertyStore *pStore,
|
|
/* [unique][in] */ __RPC__in_opt HWND hwnd,
|
|
/* [unique][in] */ __RPC__in_opt IFileOperationProgressSink *pSink);
|
|
|
|
END_INTERFACE
|
|
} IFileSaveDialogVtbl;
|
|
|
|
interface IFileSaveDialog
|
|
{
|
|
CONST_VTBL struct IFileSaveDialogVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
|
|
|
|
|
#define IFileSaveDialog_QueryInterface(This,riid,ppvObject) \
|
|
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
|
|
|
#define IFileSaveDialog_AddRef(This) \
|
|
( (This)->lpVtbl -> AddRef(This) )
|
|
|
|
#define IFileSaveDialog_Release(This) \
|
|
( (This)->lpVtbl -> Release(This) )
|
|
|
|
|
|
#define IFileSaveDialog_Show(This,hwndParent) \
|
|
( (This)->lpVtbl -> Show(This,hwndParent) )
|
|
|
|
|
|
#define IFileSaveDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) \
|
|
( (This)->lpVtbl -> SetFileTypes(This,cFileTypes,rgFilterSpec) )
|
|
|
|
#define IFileSaveDialog_SetFileTypeIndex(This,iFileType) \
|
|
( (This)->lpVtbl -> SetFileTypeIndex(This,iFileType) )
|
|
|
|
#define IFileSaveDialog_GetFileTypeIndex(This,piFileType) \
|
|
( (This)->lpVtbl -> GetFileTypeIndex(This,piFileType) )
|
|
|
|
#define IFileSaveDialog_Advise(This,pfde,pdwCookie) \
|
|
( (This)->lpVtbl -> Advise(This,pfde,pdwCookie) )
|
|
|
|
#define IFileSaveDialog_Unadvise(This,dwCookie) \
|
|
( (This)->lpVtbl -> Unadvise(This,dwCookie) )
|
|
|
|
#define IFileSaveDialog_SetOptions(This,fos) \
|
|
( (This)->lpVtbl -> SetOptions(This,fos) )
|
|
|
|
#define IFileSaveDialog_GetOptions(This,pfos) \
|
|
( (This)->lpVtbl -> GetOptions(This,pfos) )
|
|
|
|
#define IFileSaveDialog_SetDefaultFolder(This,psi) \
|
|
( (This)->lpVtbl -> SetDefaultFolder(This,psi) )
|
|
|
|
#define IFileSaveDialog_SetFolder(This,psi) \
|
|
( (This)->lpVtbl -> SetFolder(This,psi) )
|
|
|
|
#define IFileSaveDialog_GetFolder(This,ppsi) \
|
|
( (This)->lpVtbl -> GetFolder(This,ppsi) )
|
|
|
|
#define IFileSaveDialog_GetCurrentSelection(This,ppsi) \
|
|
( (This)->lpVtbl -> GetCurrentSelection(This,ppsi) )
|
|
|
|
#define IFileSaveDialog_SetFileName(This,pszName) \
|
|
( (This)->lpVtbl -> SetFileName(This,pszName) )
|
|
|
|
#define IFileSaveDialog_GetFileName(This,pszName) \
|
|
( (This)->lpVtbl -> GetFileName(This,pszName) )
|
|
|
|
#define IFileSaveDialog_SetTitle(This,pszTitle) \
|
|
( (This)->lpVtbl -> SetTitle(This,pszTitle) )
|
|
|
|
#define IFileSaveDialog_SetOkButtonLabel(This,pszText) \
|
|
( (This)->lpVtbl -> SetOkButtonLabel(This,pszText) )
|
|
|
|
#define IFileSaveDialog_SetFileNameLabel(This,pszLabel) \
|
|
( (This)->lpVtbl -> SetFileNameLabel(This,pszLabel) )
|
|
|
|
#define IFileSaveDialog_GetResult(This,ppsi) \
|
|
( (This)->lpVtbl -> GetResult(This,ppsi) )
|
|
|
|
#define IFileSaveDialog_AddPlace(This,psi,fdap) \
|
|
( (This)->lpVtbl -> AddPlace(This,psi,fdap) )
|
|
|
|
#define IFileSaveDialog_SetDefaultExtension(This,pszDefaultExtension) \
|
|
( (This)->lpVtbl -> SetDefaultExtension(This,pszDefaultExtension) )
|
|
|
|
#define IFileSaveDialog_Close(This,hr) \
|
|
( (This)->lpVtbl -> Close(This,hr) )
|
|
|
|
#define IFileSaveDialog_SetClientGuid(This,guid) \
|
|
( (This)->lpVtbl -> SetClientGuid(This,guid) )
|
|
|
|
#define IFileSaveDialog_ClearClientData(This) \
|
|
( (This)->lpVtbl -> ClearClientData(This) )
|
|
|
|
#define IFileSaveDialog_SetFilter(This,pFilter) \
|
|
( (This)->lpVtbl -> SetFilter(This,pFilter) )
|
|
|
|
|
|
#define IFileSaveDialog_SetSaveAsItem(This,psi) \
|
|
( (This)->lpVtbl -> SetSaveAsItem(This,psi) )
|
|
|
|
#define IFileSaveDialog_SetProperties(This,pStore) \
|
|
( (This)->lpVtbl -> SetProperties(This,pStore) )
|
|
|
|
#define IFileSaveDialog_SetCollectedProperties(This,pList,fAppendDefault) \
|
|
( (This)->lpVtbl -> SetCollectedProperties(This,pList,fAppendDefault) )
|
|
|
|
#define IFileSaveDialog_GetProperties(This,ppStore) \
|
|
( (This)->lpVtbl -> GetProperties(This,ppStore) )
|
|
|
|
#define IFileSaveDialog_ApplyProperties(This,psi,pStore,hwnd,pSink) \
|
|
( (This)->lpVtbl -> ApplyProperties(This,psi,pStore,hwnd,pSink) )
|
|
|
|
#endif /* COBJMACROS */
|
|
|
|
|
|
#endif /* C style interface */
|
|
|
|
|
|
|
|
|
|
#endif /* __IFileSaveDialog_INTERFACE_DEFINED__ */
|
|
|
|
|
|
class DECLSPEC_UUID("DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7") FileOpenDialog;
|
|
class DECLSPEC_UUID("C0B4E2F3-BA21-4773-8DBA-335EC946EB8B") FileSaveDialog;
|
|
|
|
_COM_SMARTPTR_TYPEDEF(IFileDialog, __uuidof(IFileDialog));
|
|
_COM_SMARTPTR_TYPEDEF(IFileOpenDialog, __uuidof(IFileOpenDialog));
|
|
_COM_SMARTPTR_TYPEDEF(IShellItem, __uuidof(IShellItem));
|
|
_COM_SMARTPTR_TYPEDEF(IFileDialogCustomize, __uuidof(IFileDialogCustomize));
|
|
_COM_SMARTPTR_TYPEDEF(IShellItemArray, __uuidof(IShellItemArray));
|
|
|
|
//helper class
|
|
class Win7FileDialog
|
|
{
|
|
public:
|
|
Win7FileDialog(const char *name, int issave=0);
|
|
~Win7FileDialog();
|
|
|
|
int inited() { return m_fod != NULL; }
|
|
int show(HWND parent);
|
|
|
|
void setFilterList(const char *list);
|
|
void setDefaultExtension(const char *ext);
|
|
void setFileTypeIndex(int i); //1-based
|
|
void setFolder(const char *folder, int def=1); //def is for default folder
|
|
void setFilename(const char *fn);
|
|
void setTemplate(HINSTANCE inst, const char *dlgid, LPOFNHOOKPROC proc);
|
|
|
|
void addOptions(DWORD o);
|
|
|
|
void startGroup(DWORD id, char *label);
|
|
void addText(DWORD id, char *txt);
|
|
void addCheckbox(char *name, DWORD id, int defval);
|
|
void endGroup();
|
|
|
|
int getState(DWORD id);
|
|
void getResult(char *fn, int maxlen);
|
|
int getResult(int i, char *fn, int maxlen); // returns the number of written bytes, including ending null-character
|
|
int getResultCount();
|
|
|
|
private:
|
|
IFileDialogPtr m_fod;
|
|
IFileDialogCustomizePtr m_fdc;
|
|
|
|
HINSTANCE m_inst;
|
|
const char *m_dlgid;
|
|
LPOFNHOOKPROC m_proc;
|
|
|
|
WDL_String m_statictxt;
|
|
};
|
|
#endif
|
|
|
|
#endif
|