Skip to content

Instantly share code, notes, and snippets.

@timsneath
Created September 22, 2020 05:06
Show Gist options
  • Save timsneath/7eb390c2e5d17ff104a2a1d9b76a797b to your computer and use it in GitHub Desktop.
Save timsneath/7eb390c2e5d17ff104a2a1d9b76a797b to your computer and use it in GitHub Desktop.
#include "windows.h"
#include "Shobjidl.h"
// vtable_start 4
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] */ FILEOPENDIALOGOPTIONS fos) = 0;
virtual HRESULT STDMETHODCALLTYPE GetOptions(
/* [out] */ __RPC__out FILEOPENDIALOGOPTIONS *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_string 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_string LPCWSTR pszTitle) = 0;
virtual HRESULT STDMETHODCALLTYPE SetOkButtonLabel(
/* [string][in] */ __RPC__in_string LPCWSTR pszText) = 0;
virtual HRESULT STDMETHODCALLTYPE SetFileNameLabel(
/* [string][in] */ __RPC__in_string 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_string 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;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment