| 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 |