OLD | NEW |
| (Empty) |
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 | |
11 #include <mshtml.h> | |
12 #include <shdeprecated.h> | |
13 | |
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: | |
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; | |
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: | |
37 STDMETHOD(GetUrlForEvents)(BSTR* url) = 0; | |
38 }; | |
39 | |
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 | |
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 { | |
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); | |
61 }; | |
62 | |
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 | |
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; | |
95 }; | |
96 | |
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 | |
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 | |
133 #endif // CHROME_FRAME_EXTRA_SYSTEM_APIS_H_ | |
OLD | NEW |