exdisp.idl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. /*
  2. * Defines the COM interfaces and APIs related to the IE Web browser
  3. *
  4. * Copyright (C) 2001 John R. Sheets (for CodeWeavers)
  5. * Copyright (C) 2003 Alexandre Julliard
  6. * Copuright (C) 2004 Jacek Caban
  7. *
  8. * This library is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU Lesser General Public
  10. * License as published by the Free Software Foundation; either
  11. * version 2.1 of the License, or (at your option) any later version.
  12. *
  13. * This library is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. * Lesser General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU Lesser General Public
  19. * License along with this library; if not, write to the Free Software
  20. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  21. */
  22. import "ocidl.idl";
  23. import "docobj.idl";
  24. #include <exdispid.h>
  25. /*****************************************************************************
  26. * IWebBrowser interface
  27. */
  28. [
  29. object,
  30. oleautomation,
  31. uuid(eab22ac1-30c1-11cf-a7eb-0000c05bae0b)
  32. ]
  33. interface IWebBrowser : IDispatch
  34. {
  35. typedef enum BrowserNavConstants
  36. {
  37. navOpenInNewWindow = 0x1,
  38. navNoHistory = 0x2,
  39. navNoReadFromCache = 0x4,
  40. navNoWriteToCache = 0x8,
  41. navAllowAutosearch = 0x10,
  42. navBrowserBar = 0x20,
  43. navHyperlink = 0x40,
  44. navEnforceRestricted = 0x80
  45. } BrowserNavConstants;
  46. typedef enum RefreshConstants
  47. {
  48. REFRESH_NORMAL = 0,
  49. REFRESH_IFEXPIRED = 1,
  50. REFRESH_COMPLETELY = 3
  51. } RefreshConstants;
  52. HRESULT GoBack();
  53. HRESULT GoForward();
  54. HRESULT GoHome();
  55. HRESULT GoSearch();
  56. HRESULT Navigate(
  57. [in] BSTR URL,
  58. [in] VARIANT *Flags,
  59. [in] VARIANT *TargetFrameName,
  60. [in] VARIANT *PostData,
  61. [in] VARIANT *Headers);
  62. HRESULT Refresh();
  63. HRESULT Refresh2( [in] VARIANT *Level );
  64. HRESULT Stop();
  65. [propget] HRESULT Application([out] IDispatch** ppDisp);
  66. [propget] HRESULT Parent([out] IDispatch** ppDisp);
  67. [propget] HRESULT Container([out] IDispatch** ppDisp);
  68. [propget] HRESULT Document([out] IDispatch** ppDisp);
  69. [propget] HRESULT TopLevelContainer([out] VARIANT_BOOL* pBool);
  70. [propget] HRESULT Type([out] BSTR* Type);
  71. [propget] HRESULT Left([out] long *pl);
  72. [propput] HRESULT Left([in] long Left);
  73. [propget] HRESULT Top([out] long *pl);
  74. [propput] HRESULT Top([in] long Top);
  75. [propget] HRESULT Width([out] long *pl);
  76. [propput] HRESULT Width([in] long Width);
  77. [propget] HRESULT Height([out] long *pl);
  78. [propput] HRESULT Height([in] long Height);
  79. [propget] HRESULT LocationName([out] BSTR *LocationName);
  80. [propget] HRESULT LocationURL([out] BSTR * LocationURL);
  81. [propget] HRESULT Busy([out] VARIANT_BOOL *pBool);
  82. }
  83. /*****************************************************************************
  84. * IWebBrowserApp interface
  85. */
  86. [
  87. object,
  88. oleautomation,
  89. uuid(0002df05-0000-0000-c000-000000000046)
  90. ]
  91. interface IWebBrowserApp : IWebBrowser
  92. {
  93. HRESULT Quit();
  94. HRESULT ClientToWindow([in,out] int* pcx, [in,out] int* pcy);
  95. HRESULT PutProperty([in] BSTR szProperty, [in] VARIANT vtValue);
  96. HRESULT GetProperty([in] BSTR szProperty, [out] VARIANT *pvtValue);
  97. [propget] HRESULT Name([out] BSTR* Name);
  98. [propget] HRESULT HWND([out] long *pHWND);
  99. [propget] HRESULT FullName([out] BSTR* FullName);
  100. [propget] HRESULT Path([out] BSTR* Path);
  101. [propget] HRESULT Visible([out] VARIANT_BOOL* pBool);
  102. [propput] HRESULT Visible([in] VARIANT_BOOL Value);
  103. [propget] HRESULT StatusBar([out] VARIANT_BOOL* pBool);
  104. [propput] HRESULT StatusBar([in] VARIANT_BOOL Value);
  105. [propget] HRESULT StatusText([out] BSTR *StatusText);
  106. [propput] HRESULT StatusText([in] BSTR StatusText);
  107. [propget] HRESULT ToolBar([out] int * Value);
  108. [propput] HRESULT ToolBar([in] int Value);
  109. [propget] HRESULT MenuBar([out] VARIANT_BOOL * Value);
  110. [propput] HRESULT MenuBar([in] VARIANT_BOOL Value);
  111. [propget] HRESULT FullScreen([out] VARIANT_BOOL * pbFullScreen);
  112. [propput] HRESULT FullScreen([in] VARIANT_BOOL bFullScreen);
  113. }
  114. /*****************************************************************************
  115. * IWebBrowser2 interface
  116. */
  117. [
  118. object,
  119. oleautomation,
  120. uuid(d30c1661-cdaf-11d0-8a3e-00c04fc9e26e)
  121. ]
  122. interface IWebBrowser2 : IWebBrowserApp
  123. {
  124. HRESULT Navigate2(
  125. [in] VARIANT *URL,
  126. [in] VARIANT *Flags,
  127. [in] VARIANT *TargetFrameName,
  128. [in] VARIANT *PostData,
  129. [in] VARIANT *Headers);
  130. HRESULT QueryStatusWB([in] OLECMDID cmdID, [out] OLECMDF *pcmdf);
  131. HRESULT ExecWB([in] OLECMDID cmdID, [in] OLECMDEXECOPT cmdexecopt, [in] VARIANT *pvaIn, [out, in] VARIANT *pvaOut);
  132. HRESULT ShowBrowserBar([in] VARIANT *pvaClsid, [in] VARIANT *pvarShow, [in] VARIANT *pvarSize);
  133. [propget] HRESULT ReadyState([out] READYSTATE *plReadyState);
  134. [propget] HRESULT Offline([out] VARIANT_BOOL *pbOffline);
  135. [propput] HRESULT Offline([in] VARIANT_BOOL bOffline);
  136. [propget] HRESULT Silent([out] VARIANT_BOOL *pbSilent);
  137. [propput] HRESULT Silent([in] VARIANT_BOOL bSilent);
  138. [propget] HRESULT RegisterAsBrowser([out] VARIANT_BOOL *pbRegister);
  139. [propput] HRESULT RegisterAsBrowser([in] VARIANT_BOOL bRegister);
  140. [propget] HRESULT RegisterAsDropTarget([out] VARIANT_BOOL *pbRegister);
  141. [propput] HRESULT RegisterAsDropTarget([in] VARIANT_BOOL bRegister);
  142. [propget] HRESULT TheaterMode([out] VARIANT_BOOL *pbRegister);
  143. [propput] HRESULT TheaterMode([in] VARIANT_BOOL bRegister);
  144. [propget] HRESULT AddressBar([out] VARIANT_BOOL *Value);
  145. [propput] HRESULT AddressBar([in] VARIANT_BOOL Value);
  146. [propget] HRESULT Resizable([out] VARIANT_BOOL *Value);
  147. [propput] HRESULT Resizable([in] VARIANT_BOOL Value);
  148. }
  149. [
  150. uuid(eab22ac2-30c1-11CF-a7eb-0000C05bae0b)
  151. ]
  152. dispinterface DWebBrowserEvents
  153. {
  154. properties:
  155. methods:
  156. [id(DISPID_BEFORENAVIGATE)]
  157. void BeforeNavigate(
  158. [in] BSTR URL,
  159. [in] long Flags,
  160. [in] BSTR TargetFrameName,
  161. [in] VARIANT *PostData,
  162. [in] BSTR Headers,
  163. [in, out] VARIANT_BOOL *Cancel);
  164. [id(DISPID_NAVIGATECOMPLETE)]
  165. void NavigateComplete([in] BSTR URL);
  166. [id(DISPID_STATUSTEXTCHANGE)]
  167. void StatusTextChange([in] BSTR Text);
  168. [id(DISPID_PROGRESSCHANGE)]
  169. void ProgressChange([in] long Progress, [in] long ProgressMax);
  170. [id(DISPID_DOWNLOADCOMPLETE)]
  171. void DownloadComplete();
  172. [id(DISPID_COMMANDSTATECHANGE)]
  173. void CommandStateChange([in] long Command, [in]VARIANT_BOOL Enable);
  174. [id(DISPID_DOWNLOADBEGIN)]
  175. void DownloadBegin();
  176. [id(DISPID_NEWWINDOW)]
  177. void NewWindow(
  178. [in] BSTR URL,
  179. [in] long Flags,
  180. [in] BSTR TargetFrameName,
  181. [in] VARIANT *PostData,
  182. [in] BSTR Headers,
  183. [in,out] VARIANT_BOOL *Processed);
  184. [id(DISPID_TITLECHANGE)]
  185. void TitleChange([in] BSTR Text);
  186. [id(DISPID_FRAMEBEFORENAVIGATE)]
  187. void FrameBeforeNavigate(
  188. [in] BSTR URL,
  189. [in] long Flags,
  190. [in] BSTR TargetFrameName,
  191. [in] VARIANT *PostData,
  192. [in] BSTR Headers,
  193. [in, out]VARIANT_BOOL *Cancel);
  194. [id(DISPID_FRAMENAVIGATECOMPLETE)]
  195. void FrameNavigateComplete([in] BSTR URL);
  196. [id(DISPID_FRAMENEWWINDOW)]
  197. void FrameNewWindow(
  198. [in] BSTR URL,
  199. [in] long Flags,
  200. [in] BSTR TargetFrameName,
  201. [in] VARIANT *PostData,
  202. [in] BSTR Headers,
  203. [in,out] VARIANT_BOOL *Processed);
  204. [id(DISPID_QUIT)]
  205. void Quit([in, out] VARIANT_BOOL *Cancel);
  206. [id(DISPID_WINDOWMOVE)]
  207. void WindowMove();
  208. [id(DISPID_WINDOWRESIZE)]
  209. void WindowResize();
  210. [id(DISPID_WINDOWACTIVATE)]
  211. void WindowActivate();
  212. [id(DISPID_PROPERTYCHANGE)]
  213. void PropertyChange([in] BSTR Property);
  214. }
  215. [
  216. uuid(34a715a0-6587-11d0-924a-0020afc7ac4d)
  217. ]
  218. dispinterface DWebBrowserEvents2
  219. {
  220. properties:
  221. methods:
  222. [id(DISPID_STATUSTEXTCHANGE)]
  223. void StatusTextChange([in] BSTR Text);
  224. [id(DISPID_PROGRESSCHANGE)]
  225. void ProgressChange([in] long Progress, [in] long ProgressMax);
  226. [id(DISPID_COMMANDSTATECHANGE)]
  227. void CommandStateChange([in] long Command, [in] VARIANT_BOOL Enable);
  228. [id(DISPID_DOWNLOADBEGIN)]
  229. void DownloadBegin();
  230. [id(DISPID_DOWNLOADCOMPLETE)]
  231. void DownloadComplete();
  232. [id(DISPID_TITLECHANGE)]
  233. void TitleChange([in] BSTR szProperty);
  234. [id(DISPID_PROPERTYCHANGE)]
  235. void PropertyChange([in] BSTR szProperty);
  236. [id(DISPID_BEFORENAVIGATE2)]
  237. void BeforeNavigate2(
  238. [in] IDispatch *pDisp,
  239. [in] VARIANT *URL,
  240. [in] VARIANT *Flags,
  241. [in] VARIANT *TargetFrameName,
  242. [in] VARIANT *PostData,
  243. [in] VARIANT *Headers,
  244. [in, out] VARIANT_BOOL *Cancel);
  245. [id(DISPID_NEWWINDOW2)]
  246. void NewWindow2([in, out] IDispatch **ppDisp, [in, out] VARIANT_BOOL *Cancel);
  247. [id(DISPID_NAVIGATECOMPLETE2)]
  248. void NavigateComplete2([in] IDispatch *pDisp, [in] VARIANT *URL);
  249. [id(DISPID_DOCUMENTCOMPLETE)]
  250. void DocumentComplete([in] IDispatch *pDisp, [in] VARIANT *URL);
  251. [id(DISPID_ONQUIT)]
  252. void OnQuit();
  253. [id(DISPID_ONVISIBLE)]
  254. void OnVisible([in] VARIANT_BOOL Visible);
  255. [id(DISPID_ONTOOLBAR)]
  256. void OnToolBar([in] VARIANT_BOOL ToolBar);
  257. [id(DISPID_ONMENUBAR)]
  258. void OnMenuBar([in] VARIANT_BOOL MenuBar);
  259. [id(DISPID_ONSTATUSBAR)]
  260. void OnStatusBar([in] VARIANT_BOOL StatusBar);
  261. [id(DISPID_ONFULLSCREEN)]
  262. void OnFullScreen([in] VARIANT_BOOL FullScreen);
  263. [id(DISPID_ONTHEATERMODE)]
  264. void OnTheaterMode([in] VARIANT_BOOL TheaterMode);
  265. }
  266. [
  267. uuid(8856f961-340a-11d0-a96b-00c04fd705a2)
  268. ]
  269. coclass WebBrowser
  270. {
  271. [default] interface IWebBrowser2;
  272. interface IWebBrowser;
  273. [default, source] dispinterface DWebBrowserEvents2;
  274. [source] dispinterface DWebBrowserEvents;
  275. }
  276. [
  277. object,
  278. oleautomation,
  279. uuid(85cb6900-4d95-11cf-960c-0080c7f4ee85)
  280. ]
  281. interface IShellWindows : IDispatch
  282. {
  283. [propget] HRESULT Count( [out] long *Count );
  284. HRESULT Item( [in] VARIANT index, [out] IDispatch **Folder );
  285. HRESULT _NewEnum( [out] IUnknown **ppunk );
  286. HRESULT Register( [in] IDispatch *pid, [in] long hWnd, [in] int swClass,
  287. [out] long *plCookie );
  288. HRESULT RegisterPending( [in] long lThread, [in] VARIANT *pvarloc,
  289. [in] VARIANT *varlocRoot, [in] int swClass, [out] long *plCookie );
  290. HRESULT Revoke( [in] long Cookie );
  291. HRESULT OnNavigate( [in] long Cookie, [out] VARIANT *pvarLoc );
  292. HRESULT OnActivated( [in] long Cookie, [in] VARIANT fActive );
  293. HRESULT FindWindowSW( [in] VARIANT *pvarLoc, [in] VARIANT *pvarLocRoot,
  294. [in] int swClass, [out] long *phwnd, int swfwOptions,
  295. IDispatch **ppdispOut );
  296. HRESULT OnCreated( [in] long lCookie, [in] IUnknown *punk );
  297. HRESULT ProcessAttachDetach( [in] VARIANT_BOOL fAttach );
  298. }