1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // This header file contains declarations for system APIs and interfaces
6 // that are either undocumented or are documented but not included in any
7 // Platform SDK header files.
8 #ifndef CHROME_FRAME_EXTRA_SYSTEM_APIS_H_
9 #define CHROME_FRAME_EXTRA_SYSTEM_APIS_H_
12 #include <shdeprecated.h>
14 // This is an interface provided by the WebBrowser object. It allows us to
15 // notify the browser of navigation events. MSDN documents this interface
16 // (see http://msdn2.microsoft.com/en-us/library/aa752109(VS.85).aspx)
17 // but this is not included in any Platform SDK header file.
18 class __declspec(uuid("54A8F188-9EBD-4795-AD16-9B4945119636"))
19 IWebBrowserEventsService
: public IUnknown
{
21 STDMETHOD(FireBeforeNavigate2Event
)(VARIANT_BOOL
* cancel
) = 0;
22 STDMETHOD(FireNavigateComplete2Event
)(VOID
) = 0;
23 STDMETHOD(FireDownloadBeginEvent
)(VOID
) = 0;
24 STDMETHOD(FireDownloadCompleteEvent
)(VOID
) = 0;
25 STDMETHOD(FireDocumentCompleteEvent
)(VOID
) = 0;
28 // This interface is used in conjunction with the IWebBrowserEventsService
29 // interface. The web browser queries us for this interface when we invoke
30 // one of the IWebBrowserEventsService methods. This interface supplies the
31 // WebBrowser with a URL to use for the events. MSDN documents this interface
32 // (see http://msdn2.microsoft.com/en-us/library/aa752103(VS.85).aspx)
33 // but this is not included in any Platform SDK header file.
34 class __declspec(uuid("{87CC5D04-EAFA-4833-9820-8F986530CC00}"))
35 IWebBrowserEventsUrlService
: public IUnknown
{
37 STDMETHOD(GetUrlForEvents
)(BSTR
* url
) = 0;
40 // Web browser methods that are used by MSHTML when navigating or
41 // initiating downloads. IE6.
42 class __declspec(uuid("{3050F804-98B5-11CF-BB82-00AA00BDCE0B}"))
43 IWebBrowserPriv
: public IUnknown
{
45 STDMETHOD(NavigateWithBindCtx
)(VARIANT
* uri
, VARIANT
* flags
,
46 VARIANT
* target_frame
, VARIANT
* post_data
,
47 VARIANT
* headers
, IBindCtx
* bind_ctx
,
48 LPOLESTR url_fragment
);
52 // The common denominator for IE7 and IE8 versions. There's no specific IID
53 // here since all apply. We use this interface for simplicities sake as all we
54 // want to do is invoke the NavigateWithBindCtx2 method.
55 class IWebBrowserPriv2Common
: public IUnknown
{
57 STDMETHOD(NavigateWithBindCtx2
)(IUri
* uri
, VARIANT
* flags
,
58 VARIANT
* target_frame
, VARIANT
* post_data
,
59 VARIANT
* headers
, IBindCtx
* bind_ctx
,
60 LPOLESTR url_fragment
);
63 // The IWebBrowserPriv2Common interface flavor for IE9 preview 2
65 class IWebBrowserPriv2CommonIE9
: public IUnknown
{
67 STDMETHOD(NavigateWithBindCtx2
)(IUri
* uri
, VARIANT
* flags
,
68 VARIANT
* target_frame
, VARIANT
* post_data
,
69 VARIANT
* headers
, IBindCtx
* bind_ctx
,
70 LPOLESTR url_fragment
, DWORD unused1
);
73 // This interface is used to call FireBeforeNavigate with additional
74 // information like url. Available on IE7 onwards.
76 // MSDN documents this interface see:
77 // http://msdn.microsoft.com/en-us/library/aa770053(VS.85).aspx)
78 // but this is not included in any Platform SDK header file.
79 interface
__declspec(uuid("3050f801-98b5-11cf-bb82-00aa00bdce0b"))
80 IDocObjectService
: public IUnknown
{
81 STDMETHOD(FireBeforeNavigate2
)(IDispatch
* dispatch
,
82 LPCTSTR url
, DWORD flags
, LPCTSTR frame_name
, BYTE
* post_data
,
83 DWORD post_data_len
, LPCTSTR headers
, BOOL play_nav_sound
,
85 STDMETHOD(FireNavigateComplete2
)(IHTMLWindow2
* html_window2
,
87 STDMETHOD(FireDownloadBegin
)() = 0;
88 STDMETHOD(FireDownloadComplete
)() = 0;
89 STDMETHOD(FireDocumentComplete
)(IHTMLWindow2
* html_window2
, DWORD flags
) = 0;
90 STDMETHOD(UpdateDesktopComponent
)(IHTMLWindow2
* html_window2
) = 0;
91 STDMETHOD(GetPendingUrl
)(BSTR
* pending_url
) = 0;
92 STDMETHOD(ActiveElementChanged
)(IHTMLElement
* html_element
) = 0;
93 STDMETHOD(GetUrlSearchComponent
)(BSTR
* search
) = 0;
94 STDMETHOD(IsErrorUrl
)(LPCTSTR url
, BOOL
* is_error
) = 0;
97 // This interface is used to notify the shellbrowser about events.
98 interface
__declspec(uuid("f62d9369-75ef-4578-8856-232802c76468"))
99 ITridentService2
: public IUnknown
{
100 STDMETHOD(FireBeforeNavigate2
)(IDispatch
* dispatch
,
101 LPCTSTR url
, DWORD flags
, LPCTSTR frame_name
, BYTE
* post_data
,
102 DWORD post_data_len
, LPCTSTR headers
, BOOL play_nav_sound
,
104 STDMETHOD(FireNavigateComplete2
)(IHTMLWindow2
*, uint32
);
105 STDMETHOD(FireDownloadBegin
)(VOID
);
106 STDMETHOD(FireDownloadComplete
)(VOID
);
107 STDMETHOD(FireDocumentComplete
)(IHTMLWindow2
*, uint32
);
108 STDMETHOD(UpdateDesktopComponent
)(IHTMLWindow2
*);
109 STDMETHOD(GetPendingUrl
)(uint16
**);
110 STDMETHOD(ActiveElementChanged
)(IHTMLElement
*);
111 STDMETHOD(GetUrlSearchComponent
)(uint16
**);
112 STDMETHOD(IsErrorUrl
)(uint16
const*, int32
*);
113 STDMETHOD(AttachMyPics
)(VOID
*, VOID
**);
114 STDMETHOD(ReleaseMyPics
)(VOID
*);
115 STDMETHOD(IsGalleryMeta
)(int32
, VOID
*);
116 STDMETHOD(EmailPicture
)(uint16
*);
117 STDMETHOD(FireNavigateError
)(IHTMLWindow2
*,
121 STDMETHOD(FirePrintTemplateEvent
)(IHTMLWindow2
*, int32
);
122 STDMETHOD(FireUpdatePageStatus
)(IHTMLWindow2
*, uint32
, int32
);
123 STDMETHOD(FirePrivacyImpactedStateChange
)(int32 privacy_violated
);
124 STDMETHOD(InitAutoImageResize
)(VOID
);
125 STDMETHOD(UnInitAutoImageResize
)(VOID
);
128 // Flags for ITravelLogEx::CountEntryNodes, CreateEnumEntry.
129 #define TLEF_RELATIVE_INCLUDE_CURRENT (0x01) // count the current entry
130 #define TLEF_RELATIVE_BACK (0x10) // count backward entries
131 #define TLEF_RELATIVE_FORE (0x20) // count forward entries
133 #endif // CHROME_FRAME_EXTRA_SYSTEM_APIS_H_