import "objidl.idl";
import "oleidl.idl";
import "oaidl.idl";
+import "docobj.idl";
import "shtypes.idl";
import "servprov.idl";
import "comcat.idl";
import "propidl.idl";
-/*import "prsht.idl";*/
-/*import "msxml.idl";*/
+/* FIXME: import "prsht.idl";*/
+import "msxml.idl";
+import "wtypes.idl";
+/* FIXME: import "propsys.idl"; */
+/* FIXME: import "structuredquery.idl"; */
+
+cpp_quote("/* FIXME: #include <sherrors.h> */")
/*****************************************************************************
}
+/*****************************************************************************
+ * 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
*/
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);
+}
/*****************************************************************************
* FOLDERSETTINGS
}
+[
+ uuid(88E39E80-3578-11CF-AE69-08002B2E1262),
+ object,
+ pointer_default(unique)
+]
+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>")
+ 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>")
+
+ HRESULT GetView(
+ [in, out] SHELLVIEWID* pvid,
+ [in] ULONG uView);
+
+ HRESULT CreateViewWindow2(
+ [in] LPSV2CVW2_PARAMS lpParams);
+
+ HRESULT HandleRename(
+ [in, unique] PCUITEMID_CHILD pidlNew);
+
+ HRESULT SelectAndPositionItem(
+ [in] PCUITEMID_CHILD pidlItem,
+ [in] UINT uFlags,
+ [in, unique] POINT *ppt);
+}
+
+
+[
+ uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
+ object,
+ pointer_default(unique)
+]
+interface IShellView3 : IShellView2
+{
+ 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);
+}
+
+
/*****************************************************************************
* IShellBrowser interface
*/
[
object,
uuid(000214e8-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IShellExtInit : IUnknown
{
[
object,
uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IDockingWindowFrame : IOleWindow
{
[
object,
uuid(000214e4-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IContextMenu : IUnknown
{
[
object,
uuid(000214f5-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IShellExecuteHookA : IUnknown
{
[
object,
uuid(000214fb-0000-0000-c000-000000000046),
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IShellExecuteHookW : IUnknown
{
]
interface IShellLinkDataList : IUnknown
{
- HRESULT AddDataBlock(
+ [local] HRESULT AddDataBlock(
[in] void *pDataBlock);
- HRESULT CopyDataBlock(
+ [local] HRESULT CopyDataBlock(
[in] DWORD dwSig,
[out] void **ppDataBlock);
HRESULT RemoveDataBlock(
HRESULT GetExtension(
[out] LPSTR pszExtension,
[in] int cchExtension);
-}
+}
/*****************************************************************************
HRESULT GetExtension(
[out] LPWSTR pszExtension,
[in] int cchExtension);
-}
+}
+/*****************************************************************************
+ * IRunnableTask interface
+ */
+[
+ object,
+ uuid(85788d00-6807-11d0-b810-00c04fd706ec),
+ pointer_default(unique)
+]
+interface IRunnableTask : IUnknown
+{
+ HRESULT Run();
+ HRESULT Kill([in] BOOL fWait);
+ HRESULT Suspend();
+ HRESULT Resume();
+ ULONG IsRunning();
+}
/*****************************************************************************
* IShellChangeNotify interface
[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
*/
[
object,
uuid(800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9), /* FIXME: wrong value! */
- pointer_default(unique)
+ pointer_default(unique),
+ local
]
interface IDefaultExtractIconInit : IUnknown
{
[in] LPCWSTR pszFile,
[in] int iIcon);
}
+
+
+/*****************************************************************************
+ * IDockingWindow interface
+ */
+[
+ uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8),
+ object
+]
+interface IDockingWindow : IOleWindow
+{
+ HRESULT ShowDW([in] BOOL fShow);
+
+ HRESULT CloseDW([in] DWORD dwReserved);
+
+ HRESULT ResizeBorderDW(
+ [in] LPCRECT prcBorder,
+ [in] IUnknown* punkToolbarSite,
+ [in] BOOL fReserved);
+}
+
+
+/*****************************************************************************
+ * IDeskBand interface
+ */
+cpp_quote("#define DBIM_MINSIZE 0x0001")
+cpp_quote("#define DBIM_MAXSIZE 0x0002")
+cpp_quote("#define DBIM_INTEGRAL 0x0004")
+cpp_quote("#define DBIM_ACTUAL 0x0008")
+cpp_quote("#define DBIM_TITLE 0x0010")
+cpp_quote("#define DBIM_MODEFLAGS 0x0020")
+cpp_quote("#define DBIM_BKCOLOR 0x0040")
+
+cpp_quote("#include <pshpack8.h>")
+
+typedef struct tagDESKBANDINFO
+{
+ DWORD dwMask;
+ POINTL ptMinSize;
+ POINTL ptMaxSize;
+ POINTL ptIntegral;
+ POINTL ptActual;
+ WCHAR wszTitle[256];
+ DWORD dwModeFlags;
+ COLORREF crBkgnd;
+} DESKBANDINFO;
+
+cpp_quote("#include <poppack.h>")
+
+cpp_quote("#define DBIMF_NORMAL 0x0000")
+cpp_quote("#define DBIMF_FIXED 0x0001")
+cpp_quote("#define DBIMF_FIXEDBMP 0x0004 // a fixed background bitmap (if supported)")
+cpp_quote("#define DBIMF_VARIABLEHEIGHT 0x0008")
+cpp_quote("#define DBIMF_UNDELETEABLE 0x0010")
+cpp_quote("#define DBIMF_DEBOSSED 0x0020")
+cpp_quote("#define DBIMF_BKCOLOR 0x0040")
+cpp_quote("#define DBIMF_USECHEVRON 0x0080")
+cpp_quote("#define DBIMF_BREAK 0x0100")
+cpp_quote("#define DBIMF_ADDTOFRONT 0x0200")
+cpp_quote("#define DBIMF_TOPALIGN 0x0400")
+cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)")
+cpp_quote("#define DBIMF_NOGRIPPER 0x0800")
+cpp_quote("#define DBIMF_ALWAYSGRIPPER 0x1000")
+cpp_quote("#define DBIMF_NOMARGINS 0x2000")
+cpp_quote("#endif // NTDDI_LONGHORN")
+
+cpp_quote("#define DBIF_VIEWMODE_NORMAL 0x0000")
+cpp_quote("#define DBIF_VIEWMODE_VERTICAL 0x0001")
+cpp_quote("#define DBIF_VIEWMODE_FLOATING 0x0002")
+cpp_quote("#define DBIF_VIEWMODE_TRANSPARENT 0x0004")
+
+enum tagDESKBANDCID {
+ DBID_BANDINFOCHANGED = 0,
+ DBID_SHOWONLY = 1,
+ DBID_MAXIMIZEBAND = 2,
+ DBID_PUSHCHEVRON = 3,
+ DBID_DELAYINIT = 4,
+ DBID_FINISHINIT = 5,
+ DBID_SETWINDOWTHEME = 6,
+ DBID_PERMITAUTOHIDE = 7,
+};
+
+cpp_quote("#define DBPC_SELECTFIRST (DWORD)-1")
+cpp_quote("#define DBPC_SELECTLAST (DWORD)-2")
+
+cpp_quote("#define CGID_DeskBand IID_IDeskBand")
+
+[
+ uuid(EB0FE172-1A3A-11D0-89B3-00A0C90A90AC),
+ object,
+]
+interface IDeskBand : IDockingWindow
+{
+ HRESULT GetBandInfo(
+ [in] DWORD dwBandID,
+ [in] DWORD dwViewMode,
+ [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)")
+
+[
+ uuid(EB0FE173-1A3A-11D0-89B3-00A0C90A90AC),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IDeskBar : IOleWindow
+{
+ HRESULT SetClient([in] IUnknown* punkClient);
+
+ HRESULT GetClient([out] IUnknown** ppunkClient);
+
+ HRESULT OnPosRectChangeDB([in] RECT *prc);
+}
+
+
+/*****************************************************************************
+ * IMenuPopup interface
+ */
+[
+ uuid(D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IMenuPopup : IDeskBar
+{
+ enum tagMENUPOPUPSELECT
+ {
+ MPOS_EXECUTE = 0,
+ MPOS_FULLCANCEL,
+ MPOS_CANCELLEVEL,
+ MPOS_SELECTLEFT,
+ MPOS_SELECTRIGHT,
+ MPOS_CHILDTRACKING
+ };
+
+ enum tagMENUPOPUPPOPUPFLAGS
+ {
+ MPPF_SETFOCUS = 0x00000001,
+ MPPF_INITIALSELECT = 0x00000002,
+ MPPF_NOANIMATE = 0x00000004,
+ MPPF_KEYBOARD = 0x00000010,
+ MPPF_REPOSITION = 0x00000020,
+ MPPF_FORCEZORDER = 0x00000040,
+ MPPF_FINALSELECT = 0x00000080,
+ MPPF_TOP = 0x20000000,
+ MPPF_LEFT = 0x40000000,
+ MPPF_RIGHT = 0x60000000,
+ MPPF_BOTTOM = 0x80000000,
+ MPPF_POS_MASK = 0xE0000000,
+ MPPF_ALIGN_LEFT = 0x02000000,
+ MPPF_ALIGN_RIGHT = 0x04000000
+ };
+ typedef int MP_POPUPFLAGS;
+
+ HRESULT Popup(
+ [in] POINTL *ppt,
+ [in] RECTL *prcExclude,
+ [in] MP_POPUPFLAGS dwFlags);
+
+ HRESULT OnSelect([in] DWORD dwSelectType);
+
+ HRESULT SetSubMenu(
+ [in] IMenuPopup* pmp,
+ [in] BOOL fSet);
+}
+
+cpp_quote("#endif /* _WIN32_IE_IE60 */")
+
+cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE40)")
+
+/*****************************************************************************
+ * IBandSite interface
+ */
+cpp_quote("#include <pshpack8.h>")
+
+typedef struct tagBANDSITEINFO
+{
+ DWORD dwMask;
+ DWORD dwState;
+ DWORD dwStyle;
+} BANDSITEINFO;
+
+cpp_quote("#include <poppack.h>")
+
+
+enum tagBANDSITECID {
+ BSID_BANDADDED,
+ BSID_BANDREMOVED,
+};
+
+cpp_quote("#define BSIM_STATE 0x00000001")
+cpp_quote("#define BSIM_STYLE 0x00000002")
+
+cpp_quote("#define BSSF_VISIBLE 0x00000001")
+cpp_quote("#define BSSF_NOTITLE 0x00000002")
+cpp_quote("#define BSSF_UNDELETEABLE 0x00001000")
+
+cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000")
+cpp_quote("#define BSIS_NOGRIPPER 0x00000001")
+cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002")
+cpp_quote("#define BSIS_LEFTALIGN 0x00000004")
+cpp_quote("#define BSIS_SINGLECLICK 0x00000008")
+cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010")
+cpp_quote("#define BSIS_NODROPTARGET 0x00000020")
+cpp_quote("#define BSIS_NOCAPTION 0x00000040")
+cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080")
+cpp_quote("#define BSIS_LOCKED 0x00000100")
+cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
+cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200")
+cpp_quote("#endif /* _WIN32_IE_IE70 */")
+
+cpp_quote("#define SID_SBandSite IID_IBandSite")
+cpp_quote("#define CGID_BandSite IID_IBandSite")
+
+[
+ object,
+ uuid(4CF504B0-DE96-11D0-8B3F-00A0C911E8E5)
+]
+interface IBandSite : IUnknown
+{
+ HRESULT AddBand([in] IUnknown* punk);
+
+ HRESULT EnumBands(
+ [in] UINT uBand,
+ [out] DWORD* pdwBandID);
+
+ HRESULT QueryBand(
+ [in] DWORD dwBandID,
+ [out] IDeskBand** ppstb,
+ [out] DWORD* pdwState,
+ [out, string, size_is(cchName)] LPWSTR pszName,
+ [in] int cchName);
+
+ HRESULT SetBandState(
+ [in] DWORD dwBandID,
+ [in] DWORD dwMask,
+ [in] DWORD dwState);
+
+ HRESULT RemoveBand([in] DWORD dwBandID);
+
+ HRESULT GetBandObject(
+ [in] DWORD dwBandID,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT SetBandSiteInfo([in] const BANDSITEINFO *pbsinfo);
+
+ HRESULT GetBandSiteInfo([in, out] BANDSITEINFO *pbsinfo);
+}
+
+cpp_quote("#endif /* _WIN32_IE_IE40 */")
+
+/*****************************************************************************
+ * IMenuBand interface
+ */
+[
+ uuid(568804CD-CBD7-11d0-9816-00C04FD91972),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IMenuBand : IUnknown
+{
+ enum tagMENUBANDHANDLERCID {
+ MBHANDCID_PIDLSELECT = 0,
+ };
+
+ HRESULT IsMenuMessage([in] MSG* pmsg);
+
+ HRESULT TranslateMenuMessage(
+ [in, out] MSG* pmsg,
+ [out] LRESULT* plRet);
+}
+
+/*****************************************************************************
+ * IProfferService interface
+ */
+[
+ uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0),
+ object,
+ pointer_default(unique),
+ local
+]
+interface IProfferService : IUnknown
+{
+ HRESULT ProfferService(
+ [in] REFGUID rguidService,
+ [in] IServiceProvider *psp,
+ [out] DWORD *pdwCookie);
+
+ HRESULT RevokeService(
+ [in] DWORD dwCookie);
+}
+
+/*****************************************************************************
+ * 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(02BA3B52-0547-11D1-B833-00C04FC9B31F),
+ 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;
+
+ 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 */")