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 file will be processed by the MIDL tool to | |
6 // produce the type library (chrome_tab.tlb) and marshalling code. | |
7 | |
8 #include "olectl.h" | |
9 import "oaidl.idl"; | |
10 import "ocidl.idl"; | |
11 | |
12 [ | |
13 object, | |
14 uuid(FB243E4B-8AC2-4840-95F2-91B9AF9CFF10), | |
15 dual, | |
16 nonextensible, | |
17 helpstring("IChromeFrame Interface"), | |
18 pointer_default(unique) | |
19 ] | |
20 interface IChromeFrame : IDispatch { | |
21 [propget, id(1)] | |
22 HRESULT src([out, retval] BSTR* src); | |
23 [propput, id(1)] | |
24 HRESULT src([in] BSTR src); | |
25 | |
26 [id(3)] | |
27 HRESULT postMessage([in] BSTR message, [in, optional] VARIANT target); | |
28 | |
29 [id(4), propget] | |
30 HRESULT onload([out, retval] VARIANT* onload_handler); | |
31 [id(4), propput] | |
32 HRESULT onload([in] VARIANT onload_handler); | |
33 | |
34 [propget, id(5)] | |
35 HRESULT onloaderror([out, retval] VARIANT* onerror_handler); | |
36 [propput, id(5)] | |
37 HRESULT onloaderror([in] VARIANT onerror_handler); | |
38 | |
39 [propget, id(6)] | |
40 HRESULT onmessage([out, retval] VARIANT* onmessage_handler); | |
41 [propput, id(6)] | |
42 HRESULT onmessage([in] VARIANT onmessage_handler); | |
43 | |
44 [propget, id(DISPID_READYSTATE)] | |
45 HRESULT readyState([out, retval] long* ready_state); | |
46 | |
47 [id(7)] | |
48 HRESULT addEventListener([in] BSTR event_type, [in] IDispatch* listener, | |
49 [in, optional] VARIANT use_capture); | |
50 | |
51 [id(8)] | |
52 HRESULT removeEventListener([in] BSTR event_type, [in] IDispatch* listener, | |
53 [in, optional] VARIANT use_capture); | |
54 | |
55 [propget, id(9)] | |
56 HRESULT version([out, retval] BSTR* version); | |
57 | |
58 [id(10), hidden] | |
59 // This method is available only when the control is in privileged mode. | |
60 HRESULT postPrivateMessage([in] BSTR message, | |
61 [in] BSTR origin, | |
62 [in] BSTR target); | |
63 | |
64 [propget, id(11)] | |
65 HRESULT useChromeNetwork([out, retval] VARIANT_BOOL* pVal); | |
66 [propput, id(11)] | |
67 HRESULT useChromeNetwork([in] VARIANT_BOOL newVal); | |
68 | |
69 [id(12), hidden] | |
70 // Deprecated. Returns E_NOTIMPL. | |
71 HRESULT installExtension([in] BSTR crx_path); | |
72 | |
73 [id(13), hidden] | |
74 // Deprecated. Returns E_NOTIMPL. | |
75 HRESULT loadExtension([in] BSTR extension_path); | |
76 | |
77 [id(14), hidden] | |
78 // Deprecated. Returns E_NOTIMPL. | |
79 HRESULT getEnabledExtensions(); | |
80 | |
81 [id(15)] | |
82 // This method bootstraps the BHO if it is not already loaded. | |
83 HRESULT registerBhoIfNeeded(); | |
84 }; | |
85 | |
86 [ | |
87 object, | |
88 uuid(E98FDFD9-312B-444a-A640-8E88F3CC08B8), | |
89 oleautomation, | |
90 nonextensible, | |
91 hidden | |
92 ] | |
93 // Internal implementation interface. Not intended as an API. May change | |
94 // frequently, don't treat this as frozen. | |
95 interface IChromeFramePrivileged : IUnknown { | |
96 // If the host returns false for wants_privileged, the control | |
97 // won't enable privileged mode. | |
98 HRESULT GetWantsPrivileged([out] boolean *wants_privileged); | |
99 // The profile name we want to use. | |
100 HRESULT GetChromeProfileName([out] BSTR *profile_name); | |
101 // Called when an automation version mismatch occurs. Returns S_OK if | |
102 // a dialog should be showed to the user by this CF instance, S_FALSE if | |
103 // not. | |
104 HRESULT ShouldShowVersionMismatchDialog(); | |
105 // Allows the host to return the navigation url during the creation of the | |
106 // ChromeFrameActiveX instance. | |
107 HRESULT GetNavigationUrl([out] BSTR* url); | |
108 }; | |
109 | |
110 // Expose this service to the ChromeFrame control to trigger privileged | |
111 // mode. If the control is in privileged mode, it will forward messages | |
112 // to the onmessage handler irrespective of origin. | |
113 cpp_quote("#define SID_ChromeFramePrivileged __uuidof(IChromeFramePrivileged)") | |
114 | |
115 typedef enum { | |
116 CF_EVENT_DISPID_ONLOAD = 1, | |
117 CF_EVENT_DISPID_ONLOADERROR, | |
118 CF_EVENT_DISPID_ONMESSAGE, | |
119 CF_EVENT_DISPID_ONPRIVATEMESSAGE, | |
120 CF_EVENT_DISPID_ONCHANNELERROR, | |
121 CF_EVENT_DISPID_ONCLOSE, | |
122 CF_EVENT_DISPID_ONREADYSTATECHANGED = DISPID_READYSTATECHANGE, | |
123 } ChromeFrameEventDispId; | |
124 | |
125 [ | |
126 uuid(6F2664E1-FF6E-488A-BCD1-F4CA6001DFCC), | |
127 version(1.0), | |
128 helpstring("ChromeTab 1.0 Type Library") | |
129 ] | |
130 library ChromeTabLib { | |
131 importlib("stdole2.tlb"); | |
132 | |
133 [uuid(388B5D64-CE67-415b-9B0F-745C56E868E7)] | |
134 dispinterface DIChromeFrameEvents { | |
135 properties: | |
136 // None. | |
137 | |
138 methods: | |
139 [id(CF_EVENT_DISPID_ONLOAD)] | |
140 void onload(); | |
141 | |
142 [id(CF_EVENT_DISPID_ONLOADERROR)] | |
143 void onloaderror(); | |
144 | |
145 [id(CF_EVENT_DISPID_ONMESSAGE)] | |
146 void onmessage([in] IDispatch* event); | |
147 | |
148 [id(CF_EVENT_DISPID_ONREADYSTATECHANGED)] | |
149 void onreadystatechanged(); | |
150 | |
151 [id(CF_EVENT_DISPID_ONPRIVATEMESSAGE)] | |
152 // This event is only fired when the control is in privileged mode. | |
153 void onprivatemessage([in] IDispatch* event, [in] BSTR target); | |
154 | |
155 [id(CF_EVENT_DISPID_ONCHANNELERROR)] | |
156 // This event is fired when there is an error in communication channel with | |
157 // Chrome and Automation must be reconnected to continue. | |
158 void onchannelerror(); | |
159 | |
160 [id(CF_EVENT_DISPID_ONCLOSE)] | |
161 // This event is fired when the script inside the page wants to close it. | |
162 // This is just a notification, there is no way to prevent the script from | |
163 // closing. | |
164 void onclose(); | |
165 }; | |
166 | |
167 [uuid(BB1176EE-20DD-41DC-9D1E-AC1335C7BBB0)] | |
168 coclass HtmlFilter { | |
169 [default] interface IUnknown; | |
170 }; | |
171 | |
172 [uuid(9875BFAF-B04D-445E-8A69-BE36838CDE3E)] | |
173 coclass ChromeProtocol { | |
174 [default] interface IUnknown; | |
175 }; | |
176 | |
177 [uuid(3E1D0E7F-F5E3-44CC-AA6A-C0A637619AB8), control] | |
178 coclass ChromeActiveDocument { | |
179 [default] interface IChromeFrame; | |
180 }; | |
181 | |
182 [uuid(E0A900DF-9611-4446-86BD-4B1D47E7DB2A), control] | |
183 coclass ChromeFrame { | |
184 [default] interface IChromeFrame; | |
185 [default, source] dispinterface DIChromeFrameEvents; | |
186 }; | |
187 | |
188 [uuid(ECB3C477-1A0A-44bd-BB57-78F9EFE34FA7)] | |
189 coclass ChromeFrameBHO { | |
190 [default] interface IUnknown; | |
191 }; | |
192 }; | |
OLD | NEW |