}
+/*****************************************************************************
+ * IPersistIDList interface
+ */
+[
+ object,
+ uuid(1079acfc-29bd-11d3-8e0d-00c04f6837d5),
+ pointer_default(unique)
+]
+interface IPersistIDList : IPersist
+{
+ HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
+ HRESULT GetIDList( [out] LPITEMIDLIST *ppidl );
+}
+
+
/*****************************************************************************
* IEnumIDList interface
*/
[
object,
uuid(000214E9-0000-0000-C000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IShellPropSheetExt : IUnknown
{
typedef DWORD SHCONTF;
- cpp_quote("#define SHCIDS_ALLFIELDS 0x80000000L")
- cpp_quote("#define SHCIDS_CANONICALONLY 0x10000000L")
- cpp_quote("#define SHCIDS_BITMASK 0xFFFF0000L")
- cpp_quote("#define SHCIDS_COLUMNMASK 0x0000FFFFL")
cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY")
cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE")
cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK")
]
interface IShellFolder2 : IShellFolder
{
- typedef enum
- {
- SHCOLSTATE_TYPE_STR = 0x00000001,
- SHCOLSTATE_TYPE_INT = 0x00000002,
- SHCOLSTATE_TYPE_DATE = 0x00000003,
- SHCOLSTATE_TYPEMASK = 0x0000000f,
- SHCOLSTATE_ONBYDEFAULT = 0x00000010,
- SHCOLSTATE_SLOW = 0x00000020,
- SHCOLSTATE_EXTENDED = 0x00000040,
- SHCOLSTATE_SECONDARYUI = 0x00000080,
- SHCOLSTATE_HIDDEN = 0x00000100,
- SHCOLSTATE_PREFER_VARCMP = 0x00000200
- } SHCOLSTATE;
-
- typedef DWORD SHCOLSTATEF;
-
typedef struct
{
GUID fmtid;
HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid );
}
+/*****************************************************************************
+ * IShellItem interface
+ */
+[
+ object,
+ uuid(43826d1e-e718-42ee-bc55-a1e261c37bfe),
+ pointer_default(unique)
+]
+interface IShellItem : IUnknown
+{
+ typedef DWORD SIGDN;
+
+ typedef DWORD SICHINTF;
+
+ HRESULT BindToHandler(
+ [in] IBindCtx *pbc,
+ [in] REFGUID rbhid,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppvOut);
+
+ HRESULT GetParent( [out] IShellItem **ppsi );
+
+ HRESULT GetDisplayName(
+ [in] SIGDN sigdnName,
+ [out] LPWSTR *ppszName);
+
+ HRESULT GetAttributes(
+ [in] SFGAOF sfgaoMask,
+ [out] SFGAOF *psfgaoAttribs);
+
+ HRESULT Compare(
+ [in] IShellItem *psi,
+ [in] SICHINTF hint,
+ [out] int *piOrder);
+}
+
+typedef enum tagNWMF {
+ NWMF_UNLOADING = 0x0001,
+ NWMF_USERINITED = 0x0002,
+ NWMF_FIRST = 0x0004,
+ NWMF_OVERRIDEKEY = 0x0008,
+ NWMF_SHOWHELP = 0x0010,
+ NWMF_HTMLDIALOG = 0x0020,
+ NWMF_FROMDIALOGCHILD = 0x0040,
+ NWMF_USERREQUESTED = 0x0080,
+ NWMF_USERALLOWED = 0x0100
+} NWMF;
+
+[
+ uuid(d2bc4c84-3f72-4a52-a604-7bcbf3982cbb),
+ object,
+ pointer_default(unique)
+]
+interface INewWindowManager : IUnknown
+{
+ HRESULT EvaluateNewWindow(
+ [in, string] LPCWSTR pszUrl,
+ [in, string] LPCWSTR pszName,
+ [in, string] LPCWSTR pszUrlContext,
+ [in, string] LPCWSTR pszFeatures,
+ [in] BOOL fReplace,
+ [in] DWORD dwFlags,
+ [in] DWORD dwUserActionTime);
+}
+cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager")
/*****************************************************************************
* FOLDERSETTINGS
FWF_SINGLECLICKACTIVATE = 0x00008000,
FWF_NOWEBVIEW = 0x00010000,
FWF_HIDEFILENAMES = 0x00020000,
- FWF_CHECKSELECT = 0x00040000
+ FWF_CHECKSELECT = 0x00040000,
+ FWF_NOENUMREFRESH = 0x00080000,
+ FWF_NOGROUPING = 0x00100000,
+ FWF_FULLROWSELECT = 0x00200000,
+ FWF_NOFILTERS = 0x00400000,
+ FWF_NOCOLUMNHEADER = 0x00800000,
+ FWF_NOHEADERINALLVIEWS = 0x01000000,
+ FWF_EXTENDEDTILES = 0x02000000,
+ FWF_TRICHECKSELECT = 0x04000000,
+ FWF_AUTOCHECKSELECT = 0x08000000,
+ FWF_NOBROWSERVIEWSTATE = 0x10000000,
+ FWF_SUBSETGROUPS = 0x20000000,
+ FWF_USESEARCHFOLDER = 0x40000000,
+ FWF_ALLOWRTLREADING = 0x80000000
} FOLDERFLAGS;
typedef enum
{
+ FVM_AUTO =-1,
FVM_ICON = 1,
FVM_FIRST = FVM_ICON,
FVM_SMALLICON = 2,
FVM_THUMBNAIL = 5,
FVM_TILE = 6,
FVM_THUMBSTRIP = 7,
- FVM_LAST = FVM_THUMBSTRIP
+ FVM_CONTENT = 8,
+ FVM_LAST = FVM_CONTENT
} FOLDERVIEWMODE;
typedef struct
} FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
+/*****************************************************************************
+ * IShellIcon interface
+ */
+[
+ uuid(000214e5-0000-0000-c000-000000000046),
+ object,
+ pointer_default(unique)
+]
+interface IShellIcon : IUnknown
+{
+ HRESULT GetIconOf(
+ [in] PCUITEMID_CHILD pidl,
+ [in] UINT flags,
+ [out] int *pIconIndex);
+}
/*****************************************************************************
* IShellView interface
[out, iid_is(riid)] void **ppv);
}
-
[
- uuid(88E39E80-3578-11CF-AE69-08002B2E1262),
object,
+ uuid(88e39e80-3578-11cf-ae69-08002b2e1262),
pointer_default(unique)
]
-interface IShellView2 : IShellView
+interface IShellView2 : IShellView
{
typedef GUID SHELLVIEWID;
-
- cpp_quote("#define SV2GV_CURRENTVIEW ((UINT)-1)")
- cpp_quote("#define SV2GV_DEFAULTVIEW ((UINT)-2)")
-
- cpp_quote("#include <pshpack8.h>")
+cpp_quote("#include <pshpack8.h>")
typedef struct _SV2CVW2_PARAMS
{
DWORD cbSize;
-
IShellView *psvPrev;
LPCFOLDERSETTINGS pfs;
IShellBrowser *psbOwner;
RECT *prcView;
SHELLVIEWID const *pvid;
HWND hwndView;
-
} SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS;
-
- cpp_quote("#include <poppack.h>")
+cpp_quote("#include <poppack.h>")
HRESULT GetView(
- [in, out] SHELLVIEWID* pvid,
- [in] ULONG uView);
-
+ [in, out] SHELLVIEWID *view_guid,
+ [in] ULONG view_type
+ );
HRESULT CreateViewWindow2(
- [in] LPSV2CVW2_PARAMS lpParams);
-
+ [in] LPSV2CVW2_PARAMS view_params
+ );
HRESULT HandleRename(
- [in, unique] PCUITEMID_CHILD pidlNew);
-
+ [in] LPCITEMIDLIST new_pidl
+ );
HRESULT SelectAndPositionItem(
- [in] PCUITEMID_CHILD pidlItem,
- [in] UINT uFlags,
- [in, unique] POINT *ppt);
+ [in] LPCITEMIDLIST item,
+ [in] UINT flags,
+ [in] POINT *point
+ );
}
-
+/*****************************************************************************
+ * IFolderView interface
+ */
[
- uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
+ uuid(cde725b0-ccc9-4519-917e-325d72fab4ce),
object,
pointer_default(unique)
]
-interface IShellView3 : IShellView2
+interface IFolderView : IUnknown
{
- enum tagSV3CVW3
- {
- SV3CVW3_DEFAULT = 0x00000000,
- SV3CVW3_NONINTERACTIVE = 0x00000001,
- SV3CVW3_FORCEVIEWMODE = 0x00000002,
- SV3CVW3_FORCEFOLDERFLAGS = 0x00000004,
- };
- typedef DWORD SV3CVW3_FLAGS;
-
- HRESULT CreateViewWindow3(
- [in] IShellBrowser *psbOwner,
- [in, unique] IShellView *psvPrev,
- [in] SV3CVW3_FLAGS dwViewFlags,
- [in] FOLDERFLAGS dwMask,
- [in] FOLDERFLAGS dwFlags,
- [in] FOLDERVIEWMODE fvMode,
- [in, unique] const SHELLVIEWID *pvid,
- [in] const RECT *prcView,
- [out] HWND *phwndView);
+ HRESULT GetCurrentViewMode( [out] UINT *mode );
+ HRESULT SetCurrentViewMode( [in] UINT mode );
+ HRESULT GetFolder( [in] REFIID riid, [out, iid_is(riid)] void **ppv );
+ HRESULT Item(
+ [in] int index,
+ [out] PITEMID_CHILD *ppidl
+ );
+ HRESULT ItemCount(
+ [in] UINT flags,
+ [out] int *items
+ );
+ HRESULT Items(
+ [in] UINT flags,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv
+ );
+ HRESULT GetSelectionMarkedItem( [out] int *item );
+ HRESULT GetFocusedItem( [out] int *item );
+ HRESULT GetItemPosition(
+ [in] PCUITEMID_CHILD pidl,
+ [out] POINT* ppt
+ );
+ HRESULT GetSpacing( [in, out, unique] POINT* pt );
+ HRESULT GetDefaultSpacing( [out] POINT* pt );
+ HRESULT GetAutoArrange();
+ HRESULT SelectItem(
+ [in] int item,
+ [in] DWORD flags
+ );
+ HRESULT SelectAndPositionItems(
+ [in] UINT cidl,
+ [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
+ [in, unique, size_is(cidl)] POINT* apt,
+ [in] DWORD flags
+ );
}
-
/*****************************************************************************
* IShellBrowser interface
*/
cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000")
cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000")
cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000")
+cpp_quote("#define SBSP_KEEPSAMETEMPLATE 0x00020000")
+cpp_quote("#define SBSP_KEEPWORDWHEELTEXT 0x00040000")
+cpp_quote("#define SBSP_ACTIVATE_NOFOCUS 0x00080000")
+cpp_quote("#define SBSP_CREATENOHISTORY 0x00100000")
+cpp_quote("#define SBSP_PLAYNOSOUND 0x00200000")
+cpp_quote("#define SBSP_CALLERUNTURUSTED 0x00800000")
+cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000")
+cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000")
cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000")
cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000")
+cpp_quote("#define SBSP_TRUSTEDFORACTIVEX 0x10000000")
+cpp_quote("#define SBSP_FEEDNAVIGATION 0x20000000")
cpp_quote("#define SBSP_REDIRECT 0x40000000")
cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000")
HRESULT GetPath(
[out, size_is(cch)] LPSTR pszFile,
[in] int cch,
- [in, out] WIN32_FIND_DATAA *pfd,
+ [in, out, unique] WIN32_FIND_DATAA *pfd,
[in] DWORD fFlags);
HRESULT GetIDList( [out] LPITEMIDLIST * ppidl );
[
object,
uuid(000214eb-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IExtractIconA : IUnknown
{
[
object,
uuid(000214fa-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IExtractIconW : IUnknown
{
}
+/*****************************************************************************
+ * ICommDlgBrowser2 interface
+ */
+[
+ object,
+ uuid(10339516-2894-11D2-9039-00C04F8EEB3E),
+ pointer_default(unique)
+]
+interface ICommDlgBrowser2 : ICommDlgBrowser
+{
+
+ HRESULT Notify(
+ [in] IShellView *ppshv,
+ [in] DWORD dwNotifyType);
+
+ HRESULT GetDefaultMenuText(
+ [in] IShellView *ppshv,
+ [out, string, size_is(cchMax)] LPWSTR pszText,
+ [in] int cchMax);
+
+ HRESULT GetViewFlags(
+ [out] DWORD *pdwFlags);
+}
+
+
+/*****************************************************************************
+ * ICommDlgBrowser3 interface
+ */
+[
+ object,
+ uuid(C8AD25A1-3294-41EE-8165-71174BD01C57),
+ pointer_default(unique)
+]
+interface ICommDlgBrowser3 : ICommDlgBrowser2
+{
+
+ HRESULT OnColumnClicked(
+ [in] IShellView *ppshv,
+ [in] int iColumn);
+
+ HRESULT GetCurrentFilter(
+ [out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec,
+ [in] int cchFileSpec);
+
+ HRESULT OnPreviewCreated(
+ [in] IShellView *ppshv);
+}
+
+
/*****************************************************************************
* IDockingWindowFrame interface
*/
[
object,
uuid(de5bf786-477a-11d2-839d-00c04fd918d0),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IDragSourceHelper : IUnknown
{
[
object,
uuid(4657278b-411b-11d2-839a-00c04fd918d0),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IDropTargetHelper : IUnknown
{
[
object,
uuid(000214f4-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IContextMenu2 : IContextMenu
{
[
object,
uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IContextMenu3 : IContextMenu2
{
[
object,
uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IURLSearchHook : IUnknown
{
[
object,
uuid(09f656a2-41af-480c-88f7-16cc0d164615),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface ISearchContext : IUnknown
{
[
object,
uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IURLSearchHook2 : IURLSearchHook
{
[
object,
uuid(000214e1-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface INewShortcutHookA : IUnknown
{
[in] LPCSTR pcszReferent,
[in] HWND hwnd);
HRESULT GetReferent(
- [out] LPCSTR pcszReferent,
+ [out] LPSTR pcszReferent,
[in] int cchReferent);
HRESULT SetFolder(
[in] LPCSTR pcszReferent);
[
object,
uuid(000214f7-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface INewShortcutHookW : IUnknown
{
[in] LPCWSTR pcszReferent,
[in] HWND hwnd);
HRESULT GetReferent(
- [out] LPCWSTR pcszReferent,
+ [out] LPWSTR pcszReferent,
[in] int cchReferent);
HRESULT SetFolder(
[in] LPCWSTR pcszReferent);
[
object,
uuid(85788d00-6807-11d0-b810-00c04fd706ec),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IRunnableTask : IUnknown
{
[
object,
uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IShellChangeNotify : IUnknown
{
[
object,
uuid(01e18d10-4d8b-11d2-855d-006008059367),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IFileSystemBindData : IUnknown
{
[out] WIN32_FIND_DATAW *pfd);
}
+/*****************************************************************************
+ * ITaskbarList interface
+ */
+[
+ object,
+ uuid(56FDF342-FD6D-11d0-958A-006097C9A090),
+ pointer_default(unique)
+]
+interface ITaskbarList : IUnknown
+{
+ HRESULT HrInit();
+
+ HRESULT AddTab(
+ [in] HWND hwnd);
+
+ HRESULT DeleteTab(
+ [in] HWND hwnd);
+
+ HRESULT ActivateTab(
+ [in] HWND hwnd);
+
+ HRESULT SetActiveAlt(
+ [in] HWND hwnd);
+}
+
+cpp_quote("EXTERN_C const CLSID CLSID_TaskbarList;")
+
/*****************************************************************************
* IContextMenuCB interface
*/
[in, out] DESKBANDINFO* pdbi);
}
-cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)")
-
-/*****************************************************************************
- * IDeskBandInfo interface
- */
-[
- uuid(77E425FC-CBF9-4307-BA6A-BB5727745661),
- object,
-]
-interface IDeskBandInfo : IUnknown
-{
- HRESULT GetDefaultBandWidth(
- [in] DWORD dwBandID,
- [in] DWORD dwViewMode,
- [out] int *pnWidth);
-}
-
-
-/*****************************************************************************
- * IDeskBand2 interface
- */
-[
- uuid(79D16DE4-ABEE-4021-8D9D-9169B261D657),
- object,
-]
-interface IDeskBand2 : IDeskBand
-{
- HRESULT CanRenderComposited([out] BOOL *pfCanRenderComposited);
-
- HRESULT SetCompositionState([in] BOOL fCompositionEnabled);
-
- HRESULT GetCompositionState([out] BOOL *pfCompositionEnabled);
-}
-
-cpp_quote("#endif // NTDDI_LONGHORN")
-
-
-
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")
[
[out] LRESULT* plRet);
}
+/*****************************************************************************
+ * IProfferService interface
+ */
+[
+ uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IProfferService : IUnknown
+{
+ HRESULT ProfferService(
+ [in] REFGUID service,
+ [in] IServiceProvider *pService,
+ [out] DWORD *pCookie);
+
+ HRESULT RevokeService([in] DWORD cookie);
+}
+/*****************************************************************************
+ * IShellMenuCallback interface
+ */
+cpp_quote("#include <pshpack8.h>")
+
+typedef struct tagSMDATA
+{
+ DWORD dwMask;
+ DWORD dwFlags;
+ HMENU hmenu;
+ HWND hwnd;
+ UINT uId;
+ UINT uIdParent;
+ UINT uIdAncestor;
+ IUnknown *punk;
+ LPITEMIDLIST pidlFolder;
+ LPITEMIDLIST pidlItem;
+ IShellFolder *psf;
+ void *pvUserData;
+} SMDATA, *LPSMDATA;
+
+cpp_quote("#define SMDM_SHELLFOLDER 0x00000001")
+cpp_quote("#define SMDM_HMENU 0x00000002")
+cpp_quote("#define SMDM_TOOLBAR 0x00000004")
+
+typedef struct tagSMINFO
+{
+ DWORD dwMask;
+ DWORD dwType;
+ DWORD dwFlags;
+ int iIcon;
+} SMINFO, *PSMINFO;
+
+typedef struct tagSHCSCHANGENOTIFYSTRUCT
+{
+ LONG lEvent;
+ LPCITEMIDLIST pidl1;
+ LPCITEMIDLIST pidl2;
+} SMCSHCHANGENOTIFYSTRUCT, *PSMCSHCHANGENOTIFYSTRUCT;
+
+cpp_quote("#include <poppack.h>")
+
+enum
+{
+ SMIM_TYPE = 0x00000001,
+ SMIM_FLAGS = 0x00000002,
+ SMIM_ICON = 0x00000004
+};
+
+enum
+{
+ SMIT_SEPARATOR = 0x00000001,
+ SMIT_STRING = 0x00000002
+};
+
+enum
+{
+ SMIF_ICON = 0x00000001,
+ SMIF_ACCELERATOR = 0x00000002,
+ SMIF_DROPTARGET = 0x00000004,
+ SMIF_SUBMENU = 0x00000008,
+ SMIF_CHECKED = 0x00000020,
+ SMIF_DROPCASCADE = 0x00000040,
+ SMIF_HIDDEN = 0x00000080,
+ SMIF_DISABLED = 0x00000100,
+ SMIF_TRACKPOPUP = 0x00000200,
+ SMIF_DEMOTED = 0x00000400,
+ SMIF_ALTSTATE = 0x00000800,
+ SMIF_DRAGNDROP = 0x00001000,
+ SMIF_NEW = 0x00002000,
+};
+
+
+cpp_quote("#define SMC_INITMENU 0x00000001")
+cpp_quote("#define SMC_CREATE 0x00000002")
+cpp_quote("#define SMC_EXITMENU 0x00000003")
+cpp_quote("#define SMC_GETINFO 0x00000005")
+cpp_quote("#define SMC_GETSFINFO 0x00000006")
+cpp_quote("#define SMC_GETOBJECT 0x00000007")
+cpp_quote("#define SMC_GETSFOBJECT 0x00000008")
+cpp_quote("#define SMC_SFEXEC 0x00000009")
+cpp_quote("#define SMC_SFSELECTITEM 0x0000000A")
+cpp_quote("#define SMC_REFRESH 0x00000010")
+cpp_quote("#define SMC_DEMOTE 0x00000011")
+cpp_quote("#define SMC_PROMOTE 0x00000012")
+cpp_quote("#define SMC_DEFAULTICON 0x00000016")
+cpp_quote("#define SMC_NEWITEM 0x00000017")
+cpp_quote("#define SMC_CHEVRONEXPAND 0x00000019")
+cpp_quote("#define SMC_DISPLAYCHEVRONTIP 0x0000002A")
+cpp_quote("#define SMC_SETSFOBJECT 0x0000002D")
+cpp_quote("#define SMC_SHCHANGENOTIFY 0x0000002E")
+cpp_quote("#define SMC_CHEVRONGETTIP 0x0000002F")
+cpp_quote("#define SMC_SFDDRESTRICTED 0x00000030")
+
+[
+ uuid(4CA300A1-9B8D-11d1-8B22-00C04FD918D0),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IShellMenuCallback : IUnknown
+{
+ HRESULT CallbackSM(
+ [in, out] LPSMDATA psmd,
+ [in] UINT uMsg,
+ [in] WPARAM wParam,
+ [in] LPARAM lParam);
+}
+
+
+/*****************************************************************************
+ * IShellMenu interface
+ */
+
+cpp_quote("#define SMINIT_DEFAULT 0x00000000")
+cpp_quote("#define SMINIT_RESTRICT_DRAGDROP 0x00000002")
+cpp_quote("#define SMINIT_TOPLEVEL 0x00000004")
+cpp_quote("#define SMINIT_CACHED 0x00000010")
+cpp_quote("#define SMINIT_VERTICAL 0x10000000")
+cpp_quote("#define SMINIT_HORIZONTAL 0x20000000")
+cpp_quote("")
+cpp_quote("#define ANCESTORDEFAULT (UINT)-1")
+cpp_quote("")
+cpp_quote("#define SMSET_TOP 0x10000000")
+cpp_quote("#define SMSET_BOTTOM 0x20000000")
+cpp_quote("#define SMSET_DONTOWN 0x00000001")
+cpp_quote("")
+cpp_quote("#define SMINV_REFRESH 0x00000001")
+cpp_quote("#define SMINV_ID 0x00000008")
+
+[
+ uuid(EE1F7637-E138-11d1-8379-00C04FD918D0),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IShellMenu : IUnknown
+{
+ HRESULT Initialize(
+ [in] IShellMenuCallback *psmc,
+ [in] UINT uId,
+ [in] UINT uIdAncestor,
+ [in] DWORD dwFlags);
+
+ HRESULT GetMenuInfo(
+ [out] IShellMenuCallback **ppsmc,
+ [out] UINT *puId,
+ [out] UINT *puIdAncestor,
+ [out] DWORD *pdwFlags);
+
+ HRESULT SetShellFolder(
+ [in] IShellFolder *psf,
+ [in] LPCITEMIDLIST pidlFolder,
+ [in] HKEY hKey,
+ [in] DWORD dwFlags);
+
+ HRESULT GetShellFolder(
+ [out] DWORD *pdwFlags,
+ [out] LPITEMIDLIST *ppidl,
+ [in] REFIID riid,
+ [out] void **ppv);
+
+ HRESULT SetMenu(
+ [in] HMENU hmenu,
+ [in] HWND hwnd,
+ [in] DWORD dwFlags);
+
+ HRESULT GetMenu(
+ [out] HMENU *phmenu,
+ [out] HWND *phwnd,
+ [out] DWORD *pdwFlags);
+
+ HRESULT InvalidateItem(
+ [in] LPSMDATA psmd,
+ [in] DWORD dwFlags);
+
+ HRESULT GetState(
+ [out] LPSMDATA psmd);
+
+ HRESULT SetMenuToolbar(
+ [in] IUnknown *punk,
+ [in] DWORD dwFlags);
+}
+
+
+typedef struct _WINDOWDATA
+{
+ DWORD dwWindowID;
+ UINT uiCP;
+ LPITEMIDLIST pidl;
+ [string] LPWSTR lpszUrl;
+ [string] LPWSTR lpszUrlLocation;
+ [string] LPWSTR lpszTitle;
+} WINDOWDATA;
+
+typedef WINDOWDATA *LPWINDOWDATA;
+typedef const WINDOWDATA *LPCWINDOWDATA;
+
+
+/*****************************************************************************
+ * ITravelEntry interface
+ */
+[
+ uuid(F46EDB3B-BC2F-11d0-9412-00AA00A3EBD3),
+ object,
+ pointer_default(unique),
+ local
+]
+interface ITravelEntry : IUnknown
+{
+ HRESULT Invoke(
+ [in] IUnknown *punk);
+
+ HRESULT Update(
+ [in] IUnknown *punk,
+ BOOL fIsLocalAnchor);
+
+ HRESULT GetPidl(
+ [in] LPITEMIDLIST *ppidl);
+};
+
+
+/*****************************************************************************
+ * ITravelLogClient interface
+ */
+[
+ uuid(241c033e-e659-43da-aa4d-4086dbc4758d),
+ object,
+ pointer_default(unique),
+ local
+]
+interface ITravelLogClient : IUnknown
+{
+ HRESULT FindWindowByIndex(
+ [in] DWORD dwID,
+ [out] IUnknown **ppunk);
+
+ HRESULT GetWindowData(
+ [out] LPWINDOWDATA pWinData);
+
+ HRESULT LoadHistoryPosition(
+ [in] LPWSTR pszUrlLocation,
+ [in] DWORD dwPosition);
+};
+
+
+/*****************************************************************************
+ * ITravelLog interface
+ */
+[
+ uuid(66A9CB08-4802-11d2-A561-00A0C92DBFE8),
+ object,
+ pointer_default(unique),
+ local
+]
+interface ITravelLog : IUnknown
+{
+ enum tagTLENUMF
+ {
+ TLEF_RELATIVE_INCLUDE_CURRENT = 0x00000001,
+ TLEF_RELATIVE_BACK = 0x00000010,
+ TLEF_RELATIVE_FORE = 0x00000020,
+ TLEF_INCLUDE_UNINVOKEABLE = 0x00000040,
+ TLEF_ABSOLUTE = 0x00000031,
+ };
+ typedef DWORD TLENUMF;
+
+ HRESULT AddEntry(
+ [in] IUnknown *punk,
+ BOOL fIsLocalAnchor);
+
+ HRESULT UpdateEntry(
+ [in] IUnknown *punk,
+ BOOL fIsLocalAnchor);
+
+ HRESULT UpdateExternal(
+ [in] IUnknown *punk,
+ [in] IUnknown *punkHLBrowseContext);
+
+ HRESULT Travel(
+ [in] IUnknown *punk,
+ int iOffset);
+
+ HRESULT GetTravelEntry(
+ [in] IUnknown *punk,
+ int iOffset,
+ [out] ITravelEntry **ppte);
+
+ HRESULT FindTravelEntry(
+ [in] IUnknown *punk,
+ [in] LPCITEMIDLIST pidl,
+ [out] ITravelEntry **ppte);
+
+ HRESULT GetToolTipText(
+ [in] IUnknown *punk,
+ int iOffset,
+ int idsTemplate,
+ [out] LPWSTR pwzText,
+ DWORD cchText);
+
+ HRESULT InsertMenuEntries(
+ [in] IUnknown *punk,
+ [in, out] HMENU hmenu,
+ int nPos,
+ int idFirst,
+ int idLast,
+ DWORD dwFlags);
+
+ HRESULT Clone(
+ [out] ITravelLog **pptl);
+
+ DWORD CountEntries(
+ [in] IUnknown *punk);
+
+ HRESULT Revert();
+};
+
+/*****************************************************************************
+ * IShellService interface
+ */
+[
+ object,
+ uuid(5836FB00-8187-11CF-A12B-00AA004AE837),
+ pointer_default(unique),
+ local
+]
+interface IShellService : IUnknown
+{
+ HRESULT SetOwner(
+ [in] IUnknown *owner);
+};
+
+/*****************************************************************************
+ * IShellBrowser interface
+ */
+[
+ object,
+ uuid(02BA3B52-0547-11D1-B833-00C04FC9B31F),
+ pointer_default(unique),
+ local
+]
+interface IBrowserService : IUnknown
+{
+ typedef enum tagBNSTATE
+ {
+ BNS_NORMAL = 0,
+ BNS_BEGIN_NAVIGATE = 1,
+ BNS_NAVIGATE = 2
+ } BNSTATE;
+
+ cpp_quote("#include <pshpack8.h>")
+ typedef struct basebrowserdataxp
+ {
+ HWND _hwnd;
+ ITravelLog *_ptl;
+ IUnknown *_phlf;
+ IUnknown *_pautoWB2;
+ IUnknown *_pautoEDS;
+ IShellService *_pautoSS;
+ int _eSecureLockIcon;
+ DWORD _fCreatingViewWindow;
+ UINT _uActivateState;
+ LPITEMIDLIST _pidlViewState;
+ IOleCommandTarget *_pctView;
+ LPITEMIDLIST _pidlCur;
+ IShellView *_psv;
+ IShellFolder *_psf;
+ HWND _hwndView;
+ LPWSTR _pszTitleCur;
+ LPITEMIDLIST _pidlPending;
+ IShellView *_psvPending;
+ IShellFolder *_psfPending;
+ HWND _hwndViewPending;
+ LPWSTR _pszTitlePending;
+ BOOL _fIsViewMSHTML;
+ BOOL _fPrivacyImpacted;
+ CLSID _clsidView;
+ CLSID _clsidViewPending;
+ HWND _hwndFrame;
+ } BASEBROWSERDATAXP;
+ typedef struct basebrowserdataxp *LPBASEBROWSERDATAXP;
+
+ typedef struct basebrowserdatalh
+ {
+ HWND _hwnd;
+ ITravelLog *_ptl;
+ IUnknown *_phlf;
+ IUnknown *_pautoWB2;
+ IUnknown *_pautoEDS;
+ IShellService *_pautoSS;
+ int _eSecureLockIcon;
+ DWORD _fCreatingViewWindow;
+ UINT _uActivateState;
+ LPITEMIDLIST _pidlViewState;
+ IOleCommandTarget *_pctView;
+ LPITEMIDLIST _pidlCur;
+ IShellView *_psv;
+ IShellFolder *_psf;
+ HWND _hwndView;
+ LPWSTR _pszTitleCur;
+ LPITEMIDLIST _pidlPending;
+ IShellView *_psvPending;
+ IShellFolder *_psfPending;
+ HWND _hwndViewPending;
+ LPWSTR _pszTitlePending;
+ BOOL _fIsViewMSHTML;
+ BOOL _fPrivacyImpacted;
+ CLSID _clsidView;
+ CLSID _clsidViewPending;
+ HWND _hwndFrame;
+ LONG _lPhishingFilterStatus;
+ } BASEBROWSERDATALH;
+ cpp_quote("#include <poppack.h>")
+ typedef struct basebrowserdatalh *LPBASEBROWSERDATALH;
+
+ typedef BASEBROWSERDATAXP BASEBROWSERDATA;
+
+ typedef const BASEBROWSERDATA *LPCBASEBROWSERDATA;
+
+ typedef BASEBROWSERDATA *LPBASEBROWSERDATA;
+
+cpp_quote("#if 0")
+typedef HANDLE HMONITOR;
+cpp_quote("#endif /* 0 */")
+
+ typedef struct SToolbarItem
+ {
+ IDockingWindow *ptbar;
+ BORDERWIDTHS rcBorderTool;
+ LPWSTR pwszItem;
+ BOOL fShow;
+ HMONITOR hMon;
+ } TOOLBARITEM;
+
+ typedef struct SToolbarItem *LPTOOLBARITEM;
+
+ HRESULT GetParentSite(
+ [out] IOleInPlaceSite **ppipsite);
+
+ HRESULT SetTitle(
+ [in] IShellView *psv,
+ [in] LPCWSTR pszName);
+
+ HRESULT GetTitle(
+ [in] IShellView *psv,
+ [out] LPWSTR pszName,
+ DWORD cchName);
+
+ HRESULT GetOleObject(
+ [out] IOleObject **ppobjv);
+
+ HRESULT GetTravelLog(
+ [out] ITravelLog **pptl);
+
+ HRESULT ShowControlWindow(
+ UINT id,
+ BOOL fShow);
+
+ HRESULT IsControlWindowShown(
+ UINT id,
+ [out] BOOL *pfShown);
+
+ HRESULT IEGetDisplayName(
+ [in] LPCITEMIDLIST pidl,
+ [out] LPWSTR pwszName,
+ UINT uFlags);
+
+ HRESULT IEParseDisplayName(
+ UINT uiCP,
+ [in] LPCWSTR pwszPath,
+ [out] LPCITEMIDLIST *ppidlOut);
+
+ HRESULT DisplayParseError(
+ HRESULT hres,
+ [in] LPCWSTR pwszPath);
+
+ HRESULT NavigateToPidl(
+ [in] LPCITEMIDLIST pidl,
+ DWORD grfHLNF);
+
+ HRESULT SetNavigateState(
+ BNSTATE bnstate);
+
+ HRESULT GetNavigateState(
+ [out] BNSTATE *pbnstate);
+
+ HRESULT NotifyRedirect(
+ [in] IShellView *psv,
+ [in] LPCITEMIDLIST pidl,
+ [out] BOOL *pfDidBrowse);
+
+ HRESULT UpdateWindowList();
+
+ HRESULT UpdateBackForwardState();
+
+ HRESULT SetFlags(
+ DWORD dwFlags,
+ DWORD dwFlagMask);
+
+ HRESULT GetFlags(
+ [out] DWORD *pdwFlags);
+
+ HRESULT CanNavigateNow();
+
+ HRESULT GetPidl(
+ [out] LPCITEMIDLIST *ppidl);
+
+ HRESULT SetReferrer(
+ [in] LPCITEMIDLIST pidl);
+
+ DWORD GetBrowserIndex();
+
+ HRESULT GetBrowserByIndex(
+ DWORD dwID,
+ [out] IUnknown **ppunk);
+
+ HRESULT GetHistoryObject(
+ [out] IOleObject **ppole,
+ [out] IStream **pstm,
+ [out] IBindCtx **ppbc);
+
+ HRESULT SetHistoryObject(
+ [in] IOleObject *pole,
+ BOOL fIsLocalAnchor);
+
+ HRESULT CacheOLEServer(
+ [in] IOleObject *pole);
+
+ HRESULT GetSetCodePage(
+ [in] VARIANT *pvarIn,
+ [out] VARIANT *pvarOut);
+
+ HRESULT OnHttpEquiv(
+ [in] IShellView *psv,
+ BOOL fDone,
+ [in] VARIANT *pvarargIn,
+ [out] VARIANT *pvarargOut);
+
+ HRESULT GetPalette(
+ [out] HPALETTE *hpal);
+
+ HRESULT RegisterWindow(
+ BOOL fForceRegister,
+ int swc);
+}
+
+
+/*****************************************************************************
+ * IShellBrowser2 interface
+ */
+[
+ uuid(68BD21CC-438B-11D2-A560-00A0C92DBFE8),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IBrowserService2 : IBrowserService
+{
+ typedef struct tagFolderSetData
+ {
+ FOLDERSETTINGS _fs;
+ SHELLVIEWID _vidRestore;
+ DWORD _dwViewPriority;
+ } FOLDERSETDATA;
+
+ typedef struct tagFolderSetData *LPFOLDERSETDATA;
+
+ LRESULT WndProcBS(
+ [in] HWND hwnd,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+ HRESULT SetAsDefFolderSettings();
+
+ HRESULT GetViewRect(
+ [out] RECT *prc);
+
+ HRESULT OnSize(
+ WPARAM wParam);
+
+ HRESULT OnCreate(
+ [in] struct tagCREATESTRUCTW *pcs);
+
+ LRESULT OnCommand(
+ WPARAM wParam,
+ LPARAM lParam);
+
+ HRESULT OnDestroy();
+
+ LRESULT OnNotify(
+ [in] struct tagNMHDR *pnm);
+
+ HRESULT OnSetFocus();
+
+ HRESULT OnFrameWindowActivateBS(
+ BOOL fActive);
+
+ HRESULT ReleaseShellView();
+
+ HRESULT ActivatePendingView();
+
+ HRESULT CreateViewWindow(
+ [in] IShellView *psvNew,
+ [in] IShellView *psvOld,
+ [in] LPRECT prcView,
+ [out] HWND *phwnd);
+
+ HRESULT CreateBrowserPropSheetExt(
+ [in] REFIID riid,
+ [out] void **ppv);
+
+ HRESULT GetViewWindow(
+ [out] HWND *phwndView);
+
+ HRESULT GetBaseBrowserData(
+ [out] LPCBASEBROWSERDATA *pbbd);
+
+ LPBASEBROWSERDATA PutBaseBrowserData();
+
+ HRESULT InitializeTravelLog(
+ [in] ITravelLog *ptl,
+ DWORD dw);
+
+ HRESULT SetTopBrowser();
+
+ HRESULT Offline(
+ int iCmd);
+
+ HRESULT AllowViewResize(
+ BOOL f);
+
+ HRESULT SetActivateState(
+ UINT u);
+
+ HRESULT UpdateSecureLockIcon(
+ int eSecureLock);
+
+ HRESULT InitializeDownloadManager();
+
+ HRESULT InitializeTransitionSite();
+
+ HRESULT _Initialize(
+ [in] HWND hwnd,
+ [in] IUnknown *pauto);
+
+ HRESULT _CancelPendingNavigationAsync();
+
+ HRESULT _CancelPendingView();
+
+ HRESULT _MaySaveChanges();
+
+ HRESULT _PauseOrResumeView(
+ BOOL fPaused);
+
+ HRESULT _DisableModeless();
+
+ HRESULT _NavigateToPidl(
+ [in] LPCITEMIDLIST pidl,
+ DWORD grfHLNF,
+ DWORD dwFlags);
+
+ HRESULT _TryShell2Rename(
+ [in] IShellView *psv,
+ [in] LPCITEMIDLIST pidlNew);
+
+ HRESULT _SwitchActivationNow();
+
+ HRESULT _ExecChildren(
+ [in] IUnknown *punkBar,
+ BOOL fBroadcast,
+ [in] const GUID *pguidCmdGroup,
+ DWORD nCmdID,
+ DWORD nCmdexecopt,
+ [in] VARIANTARG *pvarargIn,
+ [in, out] VARIANTARG *pvarargOut);
+
+ HRESULT _SendChildren(
+ [in] HWND hwndBar,
+ BOOL fBroadcast,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+ HRESULT GetFolderSetData(
+ [out] struct tagFolderSetData *pfsd);
+
+ HRESULT _OnFocusChange(
+ UINT itb);
+
+ HRESULT v_ShowHideChildWindows(
+ BOOL fChildOnly);
+
+ UINT _get_itbLastFocus();
+
+ HRESULT _put_itbLastFocus(
+ UINT itbLastFocus);
+
+ HRESULT _UIActivateView(
+ UINT uState);
+
+ HRESULT _GetViewBorderRect(
+ [out] RECT *prc);
+
+ HRESULT _UpdateViewRectSize();
+
+ HRESULT _ResizeNextBorder(
+ UINT itb);
+
+ HRESULT _ResizeView();
+
+ HRESULT _GetEffectiveClientArea(
+ [out] LPRECT lprectBorder,
+ [in] HMONITOR hmon);
+
+ IStream *v_GetViewStream(
+ [in] LPCITEMIDLIST pidl,
+ DWORD grfMode,
+ [in] LPCWSTR pwszName);
+
+ LRESULT ForwardViewMsg(
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+ HRESULT SetAcceleratorMenu(
+ [in] HACCEL hacc);
+
+ int _GetToolbarCount();
+
+ LPTOOLBARITEM _GetToolbarItem(
+ int itb);
+
+ HRESULT _SaveToolbars(
+ [in] IStream *pstm);
+
+ HRESULT _LoadToolbars(
+ [in] IStream *pstm);
+
+ HRESULT _CloseAndReleaseToolbars(
+ BOOL fClose);
+
+ HRESULT v_MayGetNextToolbarFocus(
+ [in] LPMSG lpMsg,
+ UINT itbNext,
+ int citb,
+ [out] LPTOOLBARITEM *pptbi,
+ [out] HWND *phwnd);
+
+ HRESULT _ResizeNextBorderHelper(
+ UINT itb,
+ BOOL bUseHmonitor);
+
+ UINT _FindTBar(
+ [in] IUnknown *punkSrc);
+
+ HRESULT _SetFocus(
+ [in] LPTOOLBARITEM ptbi,
+ [in] HWND hwnd,
+ [in] LPMSG lpMsg);
+
+ HRESULT v_MayTranslateAccelerator(
+ [in] MSG *pmsg);
+
+ HRESULT _GetBorderDWHelper(
+ [in] IUnknown *punkSrc,
+ [out] LPRECT lprectBorder,
+ BOOL bUseHmonitor);
+
+ HRESULT v_CheckZoneCrossing(
+ [in] LPCITEMIDLIST pidl);
+}
+
+
+/*****************************************************************************
+ * IShellBrowser3 interface
+ */
+[
+ uuid(27D7CE21-762D-48F3-86F3-40E2FD3749C4),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IBrowserService3 : IBrowserService2
+{
+ HRESULT _PositionViewWindow(
+ [in] HWND hwnd,
+ [in] LPRECT prc);
+
+ HRESULT IEParseDisplayNameEx(
+ UINT uiCP,
+ [in] LPCWSTR pwszPath,
+ DWORD dwFlags,
+ [out] LPITEMIDLIST *ppidlOut);
+}
+
+
+/*****************************************************************************
+ * IShellBrowser4 interface
+ */
+[
+ uuid(639f1bff-e135-4096-abd8-e0f504d649a4),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IBrowserService4 : IBrowserService3
+{
+ HRESULT ActivateView(
+ BOOL fPendingView);
+
+ HRESULT SaveViewState();
+
+ HRESULT _ResizeAllBorders();
+}
+
+cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")
+
+/*****************************************************************************
+ * ITrackShellMenu interface
+ */
+[
+ uuid(8278F932-2A3E-11d2-838F-00C04FD918D0),
+ object,
+ pointer_default(unique),
+ local
+]
+interface ITrackShellMenu : IShellMenu
+{
+ HRESULT SetObscured(
+ [in] HWND hwndTB,
+ [in] IUnknown *punkBand,
+ DWORD dwSMSetFlags);
+
+ HRESULT Popup(
+ [in] HWND hwnd,
+ [in] POINTL *ppt,
+ [in] RECTL *prcExclude,
+ MP_POPUPFLAGS dwFlags);
+};
+
+cpp_quote("#endif /* _WIN32_IE_IE60 */")
+
+/*****************************************************************************
+ * IAutoCompleteDropDown interface
+ */
+[
+ object,
+ uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB),
+ pointer_default(unique)
+]
+interface IAutoCompleteDropDown : IUnknown
+{
+cpp_quote("#define ACDD_VISIBLE 0x0001")
+
+ HRESULT GetDropDownStatus(
+ [out] DWORD *pdwFlags,
+ [out, string] LPWSTR *ppwszString);
+
+ HRESULT ResetEnumerator();
+}
+
+/*****************************************************************************
+ * IExplorerBrowserEvents interface
+ */
+[
+ object,
+ uuid(361BBDC7-E6EE-4E13-BE58-58E2240C810F)
+]
+interface IExplorerBrowserEvents : IUnknown
+{
+ HRESULT OnNavigationPending(
+ [in] PCIDLIST_ABSOLUTE pidlFolder);
+
+ HRESULT OnViewCreated(
+ [in] IShellView *psv);
+
+ HRESULT OnNavigationComplete(
+ [in] PCIDLIST_ABSOLUTE pidlFolder);
+
+ HRESULT OnNavigationFailed(
+ [in] PCIDLIST_ABSOLUTE pidlFolder);
+}
+
+typedef GUID EXPLORERPANE;
+typedef EXPLORERPANE *REFEXPLORERPANE;
+
+cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility")
+
+/*****************************************************************************
+ * IExplorerPaneVisibility interface
+ */
+[
+ object,
+ uuid(E07010EC-BC17-44C0-97B0-46C7C95B9EDC)
+]
+interface IExplorerPaneVisibility : IUnknown
+{
+ typedef enum tagEXPLORERPANESTATE {
+ EPS_DONTCARE = 0x0,
+ EPS_DEFAULT_ON = 0x1,
+ EPS_DEFAULT_OFF = 0x2,
+ EPS_STATE_MASK = 0xffff,
+ EPS_INITIALSTATE = 0x10000,
+ EPS_FORCE = 0x20000
+ } EXPLORERPANESTATE;
+
+ HRESULT GetPaneState(
+ [in] REFEXPLORERPANE ep,
+ [out] EXPLORERPANESTATE *peps);
+}
+
+typedef [v1_enum] enum tagEXPLORER_BROWSER_FILL_FLAGS {
+ EBF_NONE = 0,
+ EBF_SELECTFROMDATAOBJECT = 0x100,
+ EBF_NODROPTARGET = 0x200
+} EXPLORER_BROWSER_FILL_FLAGS;
+
+typedef [v1_enum] enum tagEXPLORER_BROWSER_OPTIONS {
+ EBO_NONE = 0x00,
+ EBO_NAVIGATEONCE = 0x01,
+ EBO_SHOWFRAMES = 0x02,
+ EBO_ALWAYSNAVIGATE = 0x04,
+ EBO_NOTRAVELLOG = 0x08,
+ EBO_NOWRAPPERWINDOW = 0x10,
+ EBO_HTMLSHAREPOINTVIEW = 0x20
+} EXPLORER_BROWSER_OPTIONS;
+
+cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser")
+
+/*****************************************************************************
+ * IExplorerBrowser interface
+ */
+[
+ object,
+ uuid(DFD3B6B5-C10C-4BE9-85F6-A66969F402F6),
+ pointer_default(unique)
+]
+interface IExplorerBrowser : IUnknown
+{
+
+ [local] HRESULT Initialize(
+ [in] HWND hwndParent,
+ [in] const RECT *prc,
+ [in, unique] const FOLDERSETTINGS *pfs);
+
+ HRESULT Destroy();
+
+ [local] HRESULT SetRect(
+ [in,out,unique] HDWP *phdwp,
+ [in] RECT rcBrowser);
+
+ HRESULT SetPropertyBag(
+ [in, string] LPCWSTR pszPropertyBag);
+
+ HRESULT SetEmptyText(
+ [in, string] LPCWSTR pszEmptyText);
+
+ HRESULT SetFolderSettings(
+ [in] const FOLDERSETTINGS *pfs);
+
+ HRESULT Advise(
+ [in] IExplorerBrowserEvents *psbe,
+ [out] DWORD *pdwCookie);
+
+ HRESULT Unadvise(
+ [in] DWORD dwCookie);
+
+ HRESULT SetOptions(
+ [in] EXPLORER_BROWSER_OPTIONS dwFlag);
+
+ HRESULT GetOptions(
+ [out] EXPLORER_BROWSER_OPTIONS *pdwFlag);
+
+ HRESULT BrowseToIDList(
+ [in] PCUIDLIST_RELATIVE pidl,
+ [in] UINT uFlags);
+
+ HRESULT BrowseToObject(
+ [in] IUnknown *punk,
+ [in] UINT uFlags);
+
+ HRESULT FillFromObject(
+ [in] IUnknown *punk,
+ [in] EXPLORER_BROWSER_FILL_FLAGS dwFlags);
+
+ HRESULT RemoveAll();
+
+ HRESULT GetCurrentView(
+ [in] REFIID riid,
+ [out, iid_is(riid)] IUnknown **ppv);
+}