[email protected] | f781782 | 2009-09-24 05:11:58 | [diff] [blame] | 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. |
| 4 | |
| 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_ |
| 10 | |
[email protected] | b22ef28 | 2009-12-11 19:31:56 | [diff] [blame] | 11 | #include <mshtml.h> |
[email protected] | 4da216d | 2010-01-20 01:42:29 | [diff] [blame] | 12 | #include <shdeprecated.h> |
[email protected] | b22ef28 | 2009-12-11 19:31:56 | [diff] [blame] | 13 | |
[email protected] | f781782 | 2009-09-24 05:11:58 | [diff] [blame] | 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 { |
| 20 | public: |
[email protected] | a1800e8 | 2009-11-19 00:53:23 | [diff] [blame] | 21 | STDMETHOD(FireBeforeNavigate2Event)(VARIANT_BOOL* cancel) = 0; |
[email protected] | f781782 | 2009-09-24 05:11:58 | [diff] [blame] | 22 | STDMETHOD(FireNavigateComplete2Event)(VOID) = 0; |
| 23 | STDMETHOD(FireDownloadBeginEvent)(VOID) = 0; |
| 24 | STDMETHOD(FireDownloadCompleteEvent)(VOID) = 0; |
| 25 | STDMETHOD(FireDocumentCompleteEvent)(VOID) = 0; |
| 26 | }; |
| 27 | |
| 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 { |
| 36 | public: |
[email protected] | a1800e8 | 2009-11-19 00:53:23 | [diff] [blame] | 37 | STDMETHOD(GetUrlForEvents)(BSTR* url) = 0; |
| 38 | }; |
| 39 | |
[email protected] | 62bb18dc1 | 2009-11-25 01:34:08 | [diff] [blame] | 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 { |
| 44 | public: |
| 45 | STDMETHOD(NavigateWithBindCtx)(VARIANT* uri, VARIANT* flags, |
| 46 | VARIANT* target_frame, VARIANT* post_data, |
| 47 | VARIANT* headers, IBindCtx* bind_ctx, |
| 48 | LPOLESTR url_fragment); |
| 49 | STDMETHOD(OnClose)(); |
| 50 | }; |
| 51 | |
[email protected] | 5843d2a | 2010-01-12 14:38:14 | [diff] [blame] | 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 { |
[email protected] | 62bb18dc1 | 2009-11-25 01:34:08 | [diff] [blame] | 56 | public: |
| 57 | STDMETHOD(NavigateWithBindCtx2)(IUri* uri, VARIANT* flags, |
| 58 | VARIANT* target_frame, VARIANT* post_data, |
| 59 | VARIANT* headers, IBindCtx* bind_ctx, |
| 60 | LPOLESTR url_fragment); |
[email protected] | 62bb18dc1 | 2009-11-25 01:34:08 | [diff] [blame] | 61 | }; |
| 62 | |
[email protected] | 7694e6e | 2011-01-15 01:40:20 | [diff] [blame] | 63 | // The IWebBrowserPriv2Common interface flavor for IE9 preview 2 |
| 64 | // (9.0.8073.6003) |
| 65 | class IWebBrowserPriv2CommonIE9 : public IUnknown { |
| 66 | public: |
| 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); |
| 71 | }; |
| 72 | |
[email protected] | a1800e8 | 2009-11-19 00:53:23 | [diff] [blame] | 73 | // This interface is used to call FireBeforeNavigate with additional |
| 74 | // information like url. Available on IE7 onwards. |
| 75 | // |
| 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, |
| 84 | BOOL* cancel) = 0; |
| 85 | STDMETHOD(FireNavigateComplete2)(IHTMLWindow2* html_window2, |
| 86 | DWORD flags) = 0; |
| 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; |
[email protected] | f781782 | 2009-09-24 05:11:58 | [diff] [blame] | 95 | }; |
| 96 | |
[email protected] | 80b5a8d | 2010-03-19 16:50:43 | [diff] [blame] | 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, |
| 103 | BOOL* cancel) = 0; |
| 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*, |
| 118 | uint16*, |
| 119 | uint16*, |
| 120 | uint32, int*); |
| 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); |
| 126 | }; |
| 127 | |
[email protected] | 4da216d | 2010-01-20 01:42:29 | [diff] [blame] | 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 |
| 132 | |
[email protected] | f781782 | 2009-09-24 05:11:58 | [diff] [blame] | 133 | #endif // CHROME_FRAME_EXTRA_SYSTEM_APIS_H_ |