Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

594 lines
19 KiB

  1. /****
  2. *
  3. *
  4. *
  5. * DocHost2 - second attempt at the WAB Doc Host interface
  6. *
  7. *
  8. * Purpose:
  9. * basic implementation of a docobject host. Used by the body class to
  10. * host Trident and/or MSHTML - when we do LDAP searches, LDAP providers
  11. - are allowed to return URLs in the LDAPURI attribute. WAB then addds
  12. - a "general" property tab that hosts trident and shows the contents
  13. - of the URL within the WAB. This allows the providers to add ADs and
  14. - branding to their data to diffrentiate themselves from each other.
  15. - Oh, the things we do for business relationships ...
  16. *
  17. * History
  18. * August '96: brettm - created
  19. * Ported to WAB - vikramm 4/97
  20. *
  21. * Copyright (C) Microsoft Corp. 1995, 1996, 1997.
  22. ****/
  23. #ifndef _DOCHOST_H
  24. #define _DOCHOST_H
  25. #define RECYCLE_TRIDENT
  26. //#define ASYNC_LOADING
  27. // DocHost border sytles
  28. enum
  29. {
  30. dhbNone =0x0, // no border
  31. dhbHost =0x01, // dochost paints border
  32. dhbObject =0x02 // docobj paints border
  33. };
  34. /* IWABDocHost Interface ---------------------------------------------------- */
  35. struct _IWABDOCHOST;
  36. typedef struct _IWABDOCHOST *LPIWABDOCHOST;
  37. /* IWDH_OLEWINDOW ------------------------------------------------------ */
  38. #define CBIWDH_OLEWINDOW sizeof(IWDH_OLEWINDOW)
  39. /* This contains these interfaces ...
  40. // *** IOleWindow methods ***
  41. virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *);
  42. virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL);
  43. */
  44. #define IWDH_OLEWINDOW_METHODS(IPURE) \
  45. MAPIMETHOD(GetWindow) \
  46. (THIS_ HWND * phWnd) IPURE; \
  47. MAPIMETHOD(ContextSensitiveHelp) \
  48. (THIS_ BOOL fEnterMode) IPURE; \
  49. #undef INTERFACE
  50. #define INTERFACE IWDH_OleWindow
  51. DECLARE_MAPI_INTERFACE_(IWDH_OleWindow, IUnknown)
  52. {
  53. BEGIN_INTERFACE
  54. MAPI_IUNKNOWN_METHODS(PURE)
  55. IWDH_OLEWINDOW_METHODS(PURE)
  56. };
  57. #undef INTERFACE
  58. #define INTERFACE struct _IWDH_OLEWINDOW
  59. #undef METHOD_PREFIX
  60. #define METHOD_PREFIX IWDH_OLEWINDOW_
  61. #undef LPVTBL_ELEM
  62. #define LPVTBL_ELEM lpvtbl
  63. #undef MAPIMETHOD_
  64. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, IWDH_OLEWINDOW_)
  65. MAPI_IUNKNOWN_METHODS(IMPL)
  66. IWDH_OLEWINDOW_METHODS(IMPL)
  67. #undef MAPIMETHOD_
  68. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, IWDH_OLEWINDOW_)
  69. MAPI_IUNKNOWN_METHODS(IMPL)
  70. IWDH_OLEWINDOW_METHODS(IMPL)
  71. #undef MAPIMETHOD_
  72. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  73. DECLARE_MAPI_INTERFACE(IWDH_OLEWINDOW_)
  74. {
  75. BEGIN_INTERFACE
  76. MAPI_IUNKNOWN_METHODS(IMPL)
  77. IWDH_OLEWINDOW_METHODS(IMPL)
  78. };
  79. typedef struct _IWDH_OLEWINDOW
  80. {
  81. MAPIX_BASE_MEMBERS(IWDH_OLEWINDOW)
  82. LPIWABDOCHOST lpIWDH;
  83. } IWABDOCHOST_OLEWINDOW, * LPIWABDOCHOST_OLEWINDOW;
  84. /* ----------------------------------------------------------------------------------------------*/
  85. /* IWDH_OLEINPLACEFRAME ------------------------------------------------------ */
  86. #define CBIWDH_OLEINPLACEFRAME sizeof(IWDH_OLEINPLACEFRAME)
  87. /* This contains these interfaces ...
  88. // *** IOleInPlaceUIWindow methods ***
  89. virtual HRESULT STDMETHODCALLTYPE GetBorder(LPRECT);
  90. virtual HRESULT STDMETHODCALLTYPE RequestBorderSpace(LPCBORDERWIDTHS);
  91. virtual HRESULT STDMETHODCALLTYPE SetBorderSpace(LPCBORDERWIDTHS);
  92. virtual HRESULT STDMETHODCALLTYPE SetActiveObject(IOleInPlaceActiveObject *, LPCOLESTR);
  93. // *** IOleInPlaceFrame methods ***
  94. virtual HRESULT STDMETHODCALLTYPE InsertMenus(HMENU, LPOLEMENUGROUPWIDTHS);
  95. virtual HRESULT STDMETHODCALLTYPE SetMenu(HMENU, HOLEMENU, HWND);
  96. virtual HRESULT STDMETHODCALLTYPE RemoveMenus(HMENU);
  97. virtual HRESULT STDMETHODCALLTYPE SetStatusText(LPCOLESTR);
  98. virtual HRESULT STDMETHODCALLTYPE EnableModeless(BOOL);
  99. virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG, WORD);
  100. */
  101. #undef TranslateAccelerator
  102. #define IWDH_OLEINPLACEFRAME_METHODS(IPURE) \
  103. MAPIMETHOD(GetBorder) \
  104. (THIS_ LPRECT lprc) IPURE; \
  105. MAPIMETHOD(RequestBorderSpace) \
  106. (THIS_ LPCBORDERWIDTHS pborderwidths) IPURE; \
  107. MAPIMETHOD(SetBorderSpace) \
  108. (THIS_ LPCBORDERWIDTHS pborderwidths) IPURE; \
  109. MAPIMETHOD(SetActiveObject) \
  110. (THIS_ IOleInPlaceActiveObject * pActiveObject, \
  111. LPCOLESTR lpszObjName) IPURE; \
  112. MAPIMETHOD(InsertMenus) \
  113. (THIS_ HMENU hMenu, \
  114. LPOLEMENUGROUPWIDTHS lpMenuWidths) IPURE; \
  115. MAPIMETHOD(SetMenu) \
  116. (THIS_ HMENU hMenu, \
  117. HOLEMENU hOleMenu, \
  118. HWND hWnd) IPURE; \
  119. MAPIMETHOD(RemoveMenus) \
  120. (THIS_ HMENU hMenu) IPURE; \
  121. MAPIMETHOD(SetStatusText) \
  122. (THIS_ LPCOLESTR pszStatusText) IPURE; \
  123. MAPIMETHOD(EnableModeless) \
  124. (THIS_ BOOL fEnable) IPURE; \
  125. MAPIMETHOD(TranslateAccelerator) \
  126. (THIS_ MSG * lpmsg, \
  127. WORD wID) IPURE; \
  128. #undef INTERFACE
  129. #define INTERFACE IWDH_OleInPlaceFrame
  130. DECLARE_MAPI_INTERFACE_(IWDH_OleInPlaceFrame, IUnknown)
  131. {
  132. BEGIN_INTERFACE
  133. MAPI_IUNKNOWN_METHODS(PURE)
  134. IWDH_OLEWINDOW_METHODS(PURE)
  135. IWDH_OLEINPLACEFRAME_METHODS(PURE)
  136. };
  137. #undef INTERFACE
  138. #define INTERFACE struct _IWDH_OLEINPLACEFRAME
  139. #undef METHOD_PREFIX
  140. #define METHOD_PREFIX IWDH_OLEINPLACEFRAME_
  141. #undef LPVTBL_ELEM
  142. #define LPVTBL_ELEM lpvtbl
  143. #undef MAPIMETHOD_
  144. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, IWDH_OLEINPLACEFRAME_)
  145. MAPI_IUNKNOWN_METHODS(IMPL)
  146. IWDH_OLEWINDOW_METHODS(IMPL)
  147. IWDH_OLEINPLACEFRAME_METHODS(IMPL)
  148. #undef MAPIMETHOD_
  149. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, IWDH_OLEINPLACEFRAME_)
  150. MAPI_IUNKNOWN_METHODS(IMPL)
  151. IWDH_OLEWINDOW_METHODS(IMPL)
  152. IWDH_OLEINPLACEFRAME_METHODS(IMPL)
  153. #undef MAPIMETHOD_
  154. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  155. DECLARE_MAPI_INTERFACE(IWDH_OLEINPLACEFRAME_)
  156. {
  157. BEGIN_INTERFACE
  158. MAPI_IUNKNOWN_METHODS(IMPL)
  159. IWDH_OLEWINDOW_METHODS(IMPL)
  160. IWDH_OLEINPLACEFRAME_METHODS(IMPL)
  161. };
  162. typedef struct _IWDH_OLEINPLACEFRAME
  163. {
  164. MAPIX_BASE_MEMBERS(IWDH_OLEINPLACEFRAME)
  165. LPIWABDOCHOST lpIWDH;
  166. } IWABDOCHOST_OLEINPLACEFRAME, * LPIWABDOCHOST_OLEINPLACEFRAME;
  167. /* ----------------------------------------------------------------------------------------------*/
  168. /* IWDH_OLEINPLACESITE ------------------------------------------------------ */
  169. #define CBIWDH_OLEINPLACESITE sizeof(IWDH_OLEINPLACESITE)
  170. /* This contains these interfaces ...
  171. // IOleInPlaceSite methods.
  172. virtual HRESULT STDMETHODCALLTYPE CanInPlaceActivate();
  173. virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivate();
  174. virtual HRESULT STDMETHODCALLTYPE OnUIActivate();
  175. virtual HRESULT STDMETHODCALLTYPE GetWindowContext(LPOLEINPLACEFRAME *, LPOLEINPLACEUIWINDOW *, LPRECT, LPRECT, LPOLEINPLACEFRAMEINFO);
  176. virtual HRESULT STDMETHODCALLTYPE Scroll(SIZE);
  177. virtual HRESULT STDMETHODCALLTYPE OnUIDeactivate(BOOL);
  178. virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate();
  179. virtual HRESULT STDMETHODCALLTYPE DiscardUndoState();
  180. virtual HRESULT STDMETHODCALLTYPE DeactivateAndUndo();
  181. virtual HRESULT STDMETHODCALLTYPE OnPosRectChange(LPCRECT);
  182. */
  183. #define IWDH_OLEINPLACESITE_METHODS(IPURE) \
  184. MAPIMETHOD(CanInPlaceActivate) \
  185. (THIS) IPURE; \
  186. MAPIMETHOD(OnInPlaceActivate) \
  187. (THIS) IPURE; \
  188. MAPIMETHOD(OnUIActivate) \
  189. (THIS) IPURE; \
  190. MAPIMETHOD(GetWindowContext) \
  191. (THIS_ LPOLEINPLACEFRAME * ppFrame, \
  192. LPOLEINPLACEUIWINDOW * ppDoc, \
  193. LPRECT lprcPosRect, \
  194. LPRECT lprcClipRect, \
  195. LPOLEINPLACEFRAMEINFO lpFrameInfo) IPURE; \
  196. MAPIMETHOD(Scroll) \
  197. (THIS_ SIZE scrollExtent) IPURE; \
  198. MAPIMETHOD(OnUIDeactivate) \
  199. (THIS_ BOOL fUndoable) IPURE; \
  200. MAPIMETHOD(OnInPlaceDeactivate) \
  201. (THIS) IPURE; \
  202. MAPIMETHOD(DiscardUndoState) \
  203. (THIS) IPURE; \
  204. MAPIMETHOD(DeactivateAndUndo) \
  205. (THIS) IPURE; \
  206. MAPIMETHOD(OnPosRectChange) \
  207. (THIS_ LPCRECT lprcPosRect) IPURE; \
  208. #undef INTERFACE
  209. #define INTERFACE IWDH_OleInPlaceSite
  210. DECLARE_MAPI_INTERFACE_(IWDH_OleInPlaceSite, IUnknown)
  211. {
  212. BEGIN_INTERFACE
  213. MAPI_IUNKNOWN_METHODS(PURE)
  214. IWDH_OLEWINDOW_METHODS(PURE)
  215. IWDH_OLEINPLACESITE_METHODS(PURE)
  216. };
  217. #undef INTERFACE
  218. #define INTERFACE struct _IWDH_OLEINPLACESITE
  219. #undef METHOD_PREFIX
  220. #define METHOD_PREFIX IWDH_OLEINPLACESITE_
  221. #undef LPVTBL_ELEM
  222. #define LPVTBL_ELEM lpvtbl
  223. #undef MAPIMETHOD_
  224. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, IWDH_OLEINPLACESITE_)
  225. MAPI_IUNKNOWN_METHODS(IMPL)
  226. IWDH_OLEWINDOW_METHODS(IMPL)
  227. IWDH_OLEINPLACESITE_METHODS(IMPL)
  228. #undef MAPIMETHOD_
  229. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, IWDH_OLEINPLACESITE_)
  230. MAPI_IUNKNOWN_METHODS(IMPL)
  231. IWDH_OLEWINDOW_METHODS(IMPL)
  232. IWDH_OLEINPLACESITE_METHODS(IMPL)
  233. #undef MAPIMETHOD_
  234. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  235. DECLARE_MAPI_INTERFACE(IWDH_OLEINPLACESITE_)
  236. {
  237. BEGIN_INTERFACE
  238. MAPI_IUNKNOWN_METHODS(IMPL)
  239. IWDH_OLEWINDOW_METHODS(IMPL)
  240. IWDH_OLEINPLACESITE_METHODS(IMPL)
  241. };
  242. typedef struct _IWDH_OLEINPLACESITE
  243. {
  244. MAPIX_BASE_MEMBERS(IWDH_OLEINPLACESITE)
  245. LPIWABDOCHOST lpIWDH;
  246. } IWABDOCHOST_OLEINPLACESITE, * LPIWABDOCHOST_OLEINPLACESITE;
  247. /* ----------------------------------------------------------------------------------------------*/
  248. /* IWDH_OLECLIENTSITE ------------------------------------------------------ */
  249. #define CBIWDH_OLECLIENTSITE sizeof(IWDH_OLECLIENTSITE)
  250. /* This contains these interfaces ...
  251. // IOleClientSite methods.
  252. virtual HRESULT STDMETHODCALLTYPE SaveObject();
  253. virtual HRESULT STDMETHODCALLTYPE GetMoniker(DWORD, DWORD, LPMONIKER *);
  254. virtual HRESULT STDMETHODCALLTYPE GetContainer(LPOLECONTAINER *);
  255. virtual HRESULT STDMETHODCALLTYPE ShowObject();
  256. virtual HRESULT STDMETHODCALLTYPE OnShowWindow(BOOL);
  257. virtual HRESULT STDMETHODCALLTYPE RequestNewObjectLayout();
  258. */
  259. #define IWDH_OLECLIENTSITE_METHODS(IPURE) \
  260. MAPIMETHOD(SaveObject) \
  261. (THIS) IPURE; \
  262. MAPIMETHOD(GetMoniker) \
  263. (THIS_ DWORD dwAssign, \
  264. DWORD dwWhichMoniker, \
  265. LPMONIKER * ppmnk) IPURE; \
  266. MAPIMETHOD(GetContainer) \
  267. (THIS_ LPOLECONTAINER * ppCont) IPURE; \
  268. MAPIMETHOD(ShowObject) \
  269. (THIS) IPURE; \
  270. MAPIMETHOD(OnShowWindow) \
  271. (THIS_ BOOL fShow) IPURE; \
  272. MAPIMETHOD(RequestNewObjectLayout) \
  273. (THIS) IPURE; \
  274. #undef INTERFACE
  275. #define INTERFACE IWDH_OleClientSite
  276. DECLARE_MAPI_INTERFACE_(IWDH_OleClientSite, IUnknown)
  277. {
  278. BEGIN_INTERFACE
  279. MAPI_IUNKNOWN_METHODS(PURE)
  280. IWDH_OLECLIENTSITE_METHODS(PURE)
  281. };
  282. #undef INTERFACE
  283. #define INTERFACE struct _IWDH_OLECLIENTSITE
  284. #undef METHOD_PREFIX
  285. #define METHOD_PREFIX IWDH_OLECLIENTSITE_
  286. #undef LPVTBL_ELEM
  287. #define LPVTBL_ELEM lpvtbl
  288. #undef MAPIMETHOD_
  289. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, IWDH_OLECLIENTSITE_)
  290. MAPI_IUNKNOWN_METHODS(IMPL)
  291. IWDH_OLECLIENTSITE_METHODS(IMPL)
  292. #undef MAPIMETHOD_
  293. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, IWDH_OLECLIENTSITE_)
  294. MAPI_IUNKNOWN_METHODS(IMPL)
  295. IWDH_OLECLIENTSITE_METHODS(IMPL)
  296. #undef MAPIMETHOD_
  297. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  298. DECLARE_MAPI_INTERFACE(IWDH_OLECLIENTSITE_)
  299. {
  300. BEGIN_INTERFACE
  301. MAPI_IUNKNOWN_METHODS(IMPL)
  302. IWDH_OLECLIENTSITE_METHODS(IMPL)
  303. };
  304. typedef struct _IWDH_OLECLIENTSITE
  305. {
  306. MAPIX_BASE_MEMBERS(IWDH_OLECLIENTSITE)
  307. LPIWABDOCHOST lpIWDH;
  308. } IWABDOCHOST_OLECLIENTSITE, * LPIWABDOCHOST_OLECLIENTSITE;
  309. /* ----------------------------------------------------------------------------------------------*/
  310. /* IWDH_OLEDOCUMENTSITE ------------------------------------------------------ */
  311. #define CBIWDH_OLEDOCUMENTSITE sizeof(IWDH_OLEDOCUMENTSITE)
  312. /* This contains these interfaces ...
  313. // IOleDocumentSite
  314. virtual HRESULT STDMETHODCALLTYPE ActivateMe(LPOLEDOCUMENTVIEW);
  315. */
  316. #define IWDH_OLEDOCUMENTSITE_METHODS(IPURE) \
  317. MAPIMETHOD(ActivateMe) \
  318. (THIS_ LPOLEDOCUMENTVIEW pViewToActivate)IPURE; \
  319. #undef INTERFACE
  320. #define INTERFACE IWDH_OleDocumentSite
  321. DECLARE_MAPI_INTERFACE_(IWDH_OleDocumentSite, IUnknown)
  322. {
  323. BEGIN_INTERFACE
  324. MAPI_IUNKNOWN_METHODS(PURE)
  325. IWDH_OLEDOCUMENTSITE_METHODS(PURE)
  326. };
  327. #undef INTERFACE
  328. #define INTERFACE struct _IWDH_OLEDOCUMENTSITE
  329. #undef METHOD_PREFIX
  330. #define METHOD_PREFIX IWDH_OLEDOCUMENTSITE_
  331. #undef LPVTBL_ELEM
  332. #define LPVTBL_ELEM lpvtbl
  333. #undef MAPIMETHOD_
  334. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, IWDH_OLEDOCUMENTSITE_)
  335. MAPI_IUNKNOWN_METHODS(IMPL)
  336. IWDH_OLEDOCUMENTSITE_METHODS(IMPL)
  337. #undef MAPIMETHOD_
  338. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, IWDH_OLEDOCUMENTSITE_)
  339. MAPI_IUNKNOWN_METHODS(IMPL)
  340. IWDH_OLEDOCUMENTSITE_METHODS(IMPL)
  341. #undef MAPIMETHOD_
  342. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  343. DECLARE_MAPI_INTERFACE(IWDH_OLEDOCUMENTSITE_)
  344. {
  345. BEGIN_INTERFACE
  346. MAPI_IUNKNOWN_METHODS(IMPL)
  347. IWDH_OLEDOCUMENTSITE_METHODS(IMPL)
  348. };
  349. typedef struct _IWDH_OLEDOCUMENTSITE
  350. {
  351. MAPIX_BASE_MEMBERS(IWDH_OLEDOCUMENTSITE)
  352. LPIWABDOCHOST lpIWDH;
  353. } IWABDOCHOST_OLEDOCUMENTSITE, * LPIWABDOCHOST_OLEDOCUMENTSITE;
  354. /* ----------------------------------------------------------------------------------------------*/
  355. /*********************************************/
  356. #undef INTERFACE
  357. #define INTERFACE IWABDocHost
  358. DECLARE_MAPI_INTERFACE_(IWABDocHost, IUnknown)
  359. {
  360. BEGIN_INTERFACE
  361. MAPI_IUNKNOWN_METHODS(PURE)
  362. };
  363. #undef INTERFACE
  364. #define INTERFACE struct _IWABDOCHOST
  365. #undef METHOD_PREFIX
  366. #define METHOD_PREFIX IWABDOCHOST_
  367. #undef LPVTBL_ELEM
  368. #define LPVTBL_ELEM lpvtbl
  369. #undef MAPIMETHOD_
  370. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, IWABDOCHOST_)
  371. MAPI_IUNKNOWN_METHODS(IMPL)
  372. #undef MAPIMETHOD_
  373. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, IWABDOCHOST_)
  374. MAPI_IUNKNOWN_METHODS(IMPL)
  375. #undef MAPIMETHOD_
  376. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  377. DECLARE_MAPI_INTERFACE(IWABDOCHOST_)
  378. {
  379. BEGIN_INTERFACE
  380. MAPI_IUNKNOWN_METHODS(IMPL)
  381. };
  382. typedef struct _IWABDOCHOST
  383. {
  384. MAPIX_BASE_MEMBERS(IWABDOCHOST)
  385. // Pointer to self ...
  386. LPIWABDOCHOST lpIWDH;
  387. LPIWABDOCHOST_OLEWINDOW lpIWDH_OleWindow;
  388. LPIWABDOCHOST_OLEINPLACEFRAME lpIWDH_OleInPlaceFrame;
  389. LPIWABDOCHOST_OLEINPLACESITE lpIWDH_OleInPlaceSite;
  390. LPIWABDOCHOST_OLECLIENTSITE lpIWDH_OleClientSite;
  391. LPIWABDOCHOST_OLEDOCUMENTSITE lpIWDH_OleDocumentSite;
  392. //protected
  393. HWND m_hwnd;
  394. HWND m_hwndDocObj;
  395. LPOLEOBJECT m_lpOleObj;
  396. LPOLEDOCUMENTVIEW m_pDocView;
  397. BOOL m_fInPlaceActive;
  398. BOOL m_fUIActive;
  399. LPOLEINPLACEACTIVEOBJECT m_pInPlaceActiveObj;
  400. //LPOLEINPLACEACTIVEOBJECT m_pIPObj;
  401. LPOLEINPLACEOBJECT m_pIPObj;
  402. } IWABDOCHOST, * LPIWABDOCHOST;
  403. // Exposed functions
  404. // Create a new WAB DocHost object
  405. HRESULT HrNewWABDocHostObject(LPVOID * lppIWABDOCHOST);
  406. void ReleaseDocHostObject(LPIWABDOCHOST lpIWABDocHost);
  407. void UninitTrident();
  408. // Loads the URL from the URL string
  409. HRESULT HrLoadURL(LPIWABDOCHOST lpIWABDocHost, LPTSTR lpszURL);
  410. // Initialization
  411. HRESULT HrInit(LPIWABDOCHOST lpIWABDocHost, HWND hwndParent, int idDlgItem, DWORD dhbBorder);
  412. /////////////////
  413. typedef HRESULT (STDMETHODCALLTYPE CREATEURLMONIKER)
  414. (
  415. LPMONIKER pMkCtx,
  416. LPCWSTR szURL,
  417. LPMONIKER FAR * ppmk
  418. );
  419. typedef CREATEURLMONIKER FAR * LPCREATEURLMONIKER;
  420. // statics
  421. //static LRESULT CALLBACK ExtWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  422. // Not ported over ...
  423. //
  424. // BOOL WMNotify(int idFrom, NMHDR *pnmh) PURE;
  425. // BOOL WMCommand(HWND, int, WORD) PURE;
  426. // void OnDownloadComplete();
  427. // HWND Hwnd();
  428. //
  429. // The caller should always GetProcAddress("DllGetVersion"), not
  430. // implicitly link to it.
  431. //
  432. typedef HRESULT (STDMETHODCALLTYPE DLLGETVERSIONPROCOE)(DLLVERSIONINFO *);
  433. typedef DLLGETVERSIONPROCOE FAR * LPDLLGETVERSIONPROCOE;
  434. #endif //_DOCHOST_H