blob: 25737346289d373d5b48869f02fceb0a95bd7276 [file] [log] [blame]
[email protected]f7817822009-09-24 05:11:581// 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]b22ef282009-12-11 19:31:5611#include <mshtml.h>
[email protected]4da216d2010-01-20 01:42:2912#include <shdeprecated.h>
[email protected]b22ef282009-12-11 19:31:5613
[email protected]f7817822009-09-24 05:11:5814// 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.
18class __declspec(uuid("54A8F188-9EBD-4795-AD16-9B4945119636"))
19IWebBrowserEventsService : public IUnknown {
20 public:
[email protected]a1800e82009-11-19 00:53:2321 STDMETHOD(FireBeforeNavigate2Event)(VARIANT_BOOL* cancel) = 0;
[email protected]f7817822009-09-24 05:11:5822 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.
34class __declspec(uuid("{87CC5D04-EAFA-4833-9820-8F986530CC00}"))
35IWebBrowserEventsUrlService : public IUnknown {
36 public:
[email protected]a1800e82009-11-19 00:53:2337 STDMETHOD(GetUrlForEvents)(BSTR* url) = 0;
38};
39
[email protected]62bb18dc12009-11-25 01:34:0840// Web browser methods that are used by MSHTML when navigating or
41// initiating downloads. IE6.
42class __declspec(uuid("{3050F804-98B5-11CF-BB82-00AA00BDCE0B}"))
43IWebBrowserPriv : 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]5843d2a2010-01-12 14:38:1452// 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.
55class IWebBrowserPriv2Common : public IUnknown {
[email protected]62bb18dc12009-11-25 01:34:0856 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]62bb18dc12009-11-25 01:34:0861};
62
[email protected]7694e6e2011-01-15 01:40:2063// The IWebBrowserPriv2Common interface flavor for IE9 preview 2
64// (9.0.8073.6003)
65class 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]a1800e82009-11-19 00:53:2373// 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.
79interface __declspec(uuid("3050f801-98b5-11cf-bb82-00aa00bdce0b"))
80IDocObjectService : 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]f7817822009-09-24 05:11:5895};
96
[email protected]80b5a8d2010-03-19 16:50:4397// This interface is used to notify the shellbrowser about events.
98interface __declspec(uuid("f62d9369-75ef-4578-8856-232802c76468"))
99ITridentService2 : 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]4da216d2010-01-20 01:42:29128// 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]f7817822009-09-24 05:11:58133#endif // CHROME_FRAME_EXTRA_SYSTEM_APIS_H_