PageRenderTime 63ms CodeModel.GetById 33ms RepoModel.GetById 0ms app.codeStats 0ms

/include/hlink.idl

https://github.com/aragaer/wine
IDL | 440 lines | 327 code | 75 blank | 38 comment | 0 complexity | 10e67bf8ab0f312185db8cfe292d2cbc MD5 | raw file
  1. /*
  2. * Copyright 2005 Jacek Caban
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  17. */
  18. import "urlmon.idl";
  19. interface IHlink;
  20. interface IHlinkSite;
  21. interface IHlinkFrame;
  22. interface IHlinkBrowseContext;
  23. cpp_quote("HRESULT WINAPI HlinkCreateFromMoniker(IMoniker*, LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IUnknown*, REFIID, void**);")
  24. cpp_quote("HRESULT WINAPI HlinkCreateFromString(LPCWSTR, LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IUnknown*, REFIID, void**);")
  25. cpp_quote("HRESULT WINAPI HlinkCreateFromData(IDataObject*, IHlinkSite*, DWORD dwSiteData, IUnknown*, REFIID, void**);")
  26. cpp_quote("HRESULT WINAPI HlinkCreateExtensionServices(LPCWSTR, HWND, LPCWSTR, LPCWSTR, IUnknown*, REFIID, void**);")
  27. cpp_quote("HRESULT WINAPI HlinkQueryCreateFromData(IDataObject*);")
  28. cpp_quote("HRESULT WINAPI HlinkClone(IHlink*, REFIID, IHlinkSite*, DWORD, void **);")
  29. cpp_quote("HRESULT WINAPI HlinkCreateBrowseContext(IUnknown*, REFIID, void **);")
  30. cpp_quote("HRESULT WINAPI HlinkNavigateToStringReference(LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IHlinkFrame*, DWORD, LPBC, IBindStatusCallback*, IHlinkBrowseContext*);")
  31. cpp_quote("HRESULT WINAPI HlinkNavigate(IHlink*, IHlinkFrame*, DWORD, LPBC, IBindStatusCallback*, IHlinkBrowseContext*);")
  32. cpp_quote("HRESULT WINAPI HlinkOnNavigate(IHlinkFrame*, IHlinkBrowseContext*, DWORD, IMoniker*, LPCWSTR, LPCWSTR, ULONG*);")
  33. cpp_quote("HRESULT WINAPI HlinkIsShortcut(LPCWSTR);")
  34. cpp_quote("HRESULT WINAPI HlinkTranslateURL(LPCWSTR,DWORD,LPWSTR*);")
  35. cpp_quote("HRESULT WINAPI HlinkParseDisplayName(LPBC,LPCWSTR,BOOL,ULONG*,IMoniker**);")
  36. cpp_quote("HRESULT WINAPI HlinkResolveMonikerForData(LPMONIKER,DWORD,LPBC,ULONG,FORMATETC*,IBindStatusCallback*,LPMONIKER);")
  37. typedef enum _HLSR_NOREDEF10 {
  38. HLSR_HOME,
  39. HLSR_SEARCHPAGE,
  40. HLSR_HISTORYFOLDER
  41. } HLSR;
  42. cpp_quote("HRESULT WINAPI HlinkSetSpecialReference(ULONG uReference, LPCWSTR pwzReference);")
  43. cpp_quote("HRESULT WINAPI HlinkGetSpecialReference(ULONG uReference, LPWSTR *ppwzReference);")
  44. cpp_quote("#define SID_SHlinkFrame IID_IHlinkFrame")
  45. /*****************************************************************************
  46. * IHlink interface
  47. */
  48. [
  49. object,
  50. uuid(79EAC9C3-BAF9-11CE-8C82-00AA004BA90B),
  51. pointer_default(unique)
  52. ]
  53. interface IHlink: IUnknown
  54. {
  55. typedef [unique] IHlink *LPHLINK;
  56. typedef enum {
  57. HLNF_INTERNALJUMP = 0x00000001,
  58. HLNF_OPENINNEWWINDOW = 0x00000002,
  59. HLNF_NAVIGATINGBACK = 0x00000004,
  60. HLNF_NAVIGATINGFORWARD = 0x00000008,
  61. HLNF_NAVIGATINGTOSTACKITEM = 0x00000010,
  62. HLNF_CREATENOHISTORY = 0x00000020
  63. } HLNF;
  64. typedef enum {
  65. HLINKGETREF_DEFAULT = 0,
  66. HLINKGETREF_ABSOLUTE = 1,
  67. HLINKGETREF_RELATIVE = 2,
  68. } HLINKGETREF;
  69. typedef enum {
  70. HLFNAMEF_DEFAULT = 0x00000000,
  71. HLFNAMEF_TRYCACHE = 0x00000001,
  72. HLFNAMEF_TRYPRETTYTARGET = 0x00000002,
  73. HLFNAMEF_TRYFULLTARGET = 0x00000004,
  74. HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008
  75. } HLFNAMEF;
  76. typedef enum {
  77. HLINKMISC_RELATIVE = 0x00000001,
  78. } HLINKMISC;
  79. typedef enum {
  80. HLINKSETF_TARGET = 0x00000001,
  81. HLINKSETF_LOCATION = 0x00000002
  82. } HLINKSETF;
  83. HRESULT SetHlinkSite(
  84. [in, unique] IHlinkSite *pihlSite,
  85. [in] DWORD dwSiteData);
  86. HRESULT GetHlinkSite(
  87. [out] IHlinkSite **ppihlSite,
  88. [out] DWORD *pdwSiteData);
  89. HRESULT SetMonikerReference(
  90. [in] DWORD grfHLSETF,
  91. [in, unique] IMoniker *pimkTarget,
  92. [in, unique] LPCWSTR pwzLocation);
  93. HRESULT GetMonikerReference(
  94. [in] DWORD dwWhichRef,
  95. [out] IMoniker **ppimkTarget,
  96. [out] LPWSTR *ppwzLocation);
  97. HRESULT SetStringReference(
  98. [in] DWORD grfHLSETF,
  99. [in, unique] LPCWSTR pwzTarget,
  100. [in, unique] LPCWSTR pwzLocation);
  101. HRESULT GetStringReference(
  102. [in] DWORD dwWhichRef,
  103. [out] LPWSTR *ppwzTarget,
  104. [out] LPWSTR *ppwzLocation);
  105. HRESULT SetFriendlyName(
  106. [in, unique] LPCWSTR pwzFriendlyName);
  107. HRESULT GetFriendlyName(
  108. [in] DWORD grfHLFNAMEF,
  109. [out] LPWSTR *ppwzFriendlyName);
  110. HRESULT SetTargetFrameName(
  111. [in, unique] LPCWSTR pwzTargetFrameName);
  112. HRESULT GetTargetFrameName(
  113. [out] LPWSTR *ppwzTargetFrameName);
  114. HRESULT GetMiscStatus(
  115. [out] DWORD *pdwStatus);
  116. HRESULT Navigate(
  117. [in] DWORD grfHLNF,
  118. [in, unique] LPBC pibc,
  119. [in, unique] IBindStatusCallback *pibsc,
  120. [in, unique] IHlinkBrowseContext *pihlbc);
  121. HRESULT SetAdditionalParams(
  122. [in, unique] LPCWSTR pwzAdditionalParams);
  123. HRESULT GetAdditionalParams(
  124. [out] LPWSTR *ppwzAdditionalParams);
  125. }
  126. /*****************************************************************************
  127. * IHlinkSite interface
  128. */
  129. [
  130. object,
  131. uuid(79EAC9C2-BAF9-11CE-8C82-00AA004BA90B),
  132. pointer_default(unique)
  133. ]
  134. interface IHlinkSite: IUnknown
  135. {
  136. typedef [unique] IHlinkSite *LPHLINKSITE;
  137. typedef enum {
  138. HLINKWHICHMK_CONTAINER = 1,
  139. HLINKWHICHMK_BASE = 2,
  140. } HLINKWHICHMK;
  141. HRESULT QueryService(
  142. [in] DWORD dwSiteData,
  143. [in] REFGUID guidService,
  144. [in] REFIID riid,
  145. [out, iid_is(riid)] IUnknown **ppiunk);
  146. HRESULT GetMoniker(
  147. [in] DWORD dwSiteData,
  148. [in] DWORD dwAssign,
  149. [in] DWORD dwWhich,
  150. [out] IMoniker **ppimk);
  151. HRESULT ReadyToNavigate(
  152. [in] DWORD dwSiteData,
  153. [in] DWORD dwReserved);
  154. HRESULT OnNavigationComplete(
  155. [in] DWORD dwSiteData,
  156. [in] DWORD dwreserved,
  157. [in] HRESULT hrError,
  158. [in, unique] LPCWSTR pwzError);
  159. }
  160. /*****************************************************************************
  161. * IEnumHLITEM interface
  162. */
  163. [
  164. local,
  165. object,
  166. uuid(79EAC9C6-BAF9-11CE-8C82-00AA004BA90B),
  167. pointer_default(unique)
  168. ]
  169. interface IEnumHLITEM : IUnknown
  170. {
  171. typedef [unique] IEnumHLITEM *LPENUMHLITEM;
  172. typedef struct tagHLITEM {
  173. ULONG uHLID;
  174. LPWSTR pwzFriendlyName;
  175. } HLITEM;
  176. typedef [unique] HLITEM *LPHLITEM;
  177. HRESULT Next(
  178. [in] ULONG celt,
  179. [out] HLITEM *rgelt,
  180. [out] ULONG *pceltFetched);
  181. HRESULT Skip(
  182. [in] ULONG celt);
  183. HRESULT Reset();
  184. HRESULT Clone(
  185. [out] IEnumHLITEM **ppienumhlitem);
  186. }
  187. /*****************************************************************************
  188. * IHlinkBrowseContext interface
  189. */
  190. [
  191. local,
  192. object,
  193. uuid(79EAC9C7-BAF9-11CE-8C82-00AA004BA90B),
  194. pointer_default(unique)
  195. ]
  196. interface IHlinkBrowseContext : IUnknown
  197. {
  198. typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
  199. enum {
  200. HLTB_DOCKEDLEFT = 0,
  201. HLTB_DOCKEDTOP = 1,
  202. HLTB_DOCKEDRIGHT = 2,
  203. HLTB_DOCKEDBOTTOM = 3,
  204. HLTB_FLOATING = 4
  205. };
  206. typedef struct _tagHLTBINFO {
  207. ULONG uDockType;
  208. RECT rcTbPos;
  209. } HLTBINFO;
  210. enum {
  211. HLBWIF_HASFRAMEWNDINFO = 0x00000001,
  212. HLBWIF_HASDOCWNDINFO = 0x00000002,
  213. HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004,
  214. HLBWIF_DOCWNDMAXIMIZED = 0x00000008,
  215. HLBWIF_HASWEBTOOLBARINFO = 0x00000010,
  216. HLBWIF_WEBTOOLBARHIDDEN = 0x00000020
  217. };
  218. typedef struct _tagHLBWINFO {
  219. ULONG cbSize;
  220. DWORD grfHLBWIF;
  221. RECT rcFramePos;
  222. RECT rcDocPos;
  223. HLTBINFO hltbinfo;
  224. } HLBWINFO;
  225. typedef [unique] HLBWINFO *LPHLBWINFO;
  226. enum {
  227. HLID_INVALID = 0x00000000,
  228. HLID_PREVIOUS = 0xFFFFFFFF,
  229. HLID_NEXT = 0xFFFFFFFE,
  230. HLID_CURRENT = 0xFFFFFFFD,
  231. HLID_STACKBOTTOM = 0xFFFFFFFC,
  232. HLID_STACKTOP = 0xFFFFFFFB
  233. };
  234. enum {
  235. HLQF_ISVALID = 0x00000001,
  236. HLQF_ISCURRENT = 0x00000002
  237. };
  238. HRESULT Register(
  239. [in] DWORD reserved,
  240. [in, unique] IUnknown *piunk,
  241. [in, unique] IMoniker *pimk,
  242. [out] DWORD *pdwRegister);
  243. cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
  244. cpp_quote("#undef GetObject")
  245. cpp_quote("#endif")
  246. HRESULT GetObject(
  247. [in, unique] IMoniker *pimk,
  248. [in] BOOL fBindIfRootRegistered,
  249. [out] IUnknown **ppiunk);
  250. HRESULT Revoke(
  251. [in] DWORD dwRegister);
  252. HRESULT SetBrowseWindowInfo(
  253. [in, unique] HLBWINFO *phlbwi);
  254. HRESULT GetBrowseWindowInfo(
  255. [out] HLBWINFO *phlbwi);
  256. HRESULT SetInitialHlink(
  257. [in, unique] IMoniker * pimkTarget,
  258. [in, unique] LPCWSTR pwzLocation,
  259. [in, unique] LPCWSTR pwzFriendlyName);
  260. HRESULT OnNavigateHlink(
  261. [in] DWORD grfHLNF,
  262. [in, unique] IMoniker *pimkTarget,
  263. [in, unique] LPCWSTR pwzLocation,
  264. [in, unique] LPCWSTR pwzFriendlyName,
  265. [out] ULONG *puHLID);
  266. HRESULT UpdateHlink(
  267. [in] ULONG uHLID,
  268. [in, unique] IMoniker *pimkTarget,
  269. [in, unique] LPCWSTR pwzLocation,
  270. [in, unique] LPCWSTR pwzFriendlyName);
  271. HRESULT EnumNavigationStack(
  272. [in] DWORD dwReserved,
  273. [in] DWORD grfHLFNAMEF,
  274. [out] IEnumHLITEM **ppienumhlitem);
  275. HRESULT QueryHlink(
  276. [in] DWORD grfHLQF,
  277. [in] ULONG uHLID);
  278. HRESULT GetHlink(
  279. [in] ULONG uHLID,
  280. [out] IHlink **ppihl);
  281. HRESULT SetCurrentHlink(
  282. [in] ULONG uHLID);
  283. HRESULT Clone(
  284. [in, unique] IUnknown *piunkOuter,
  285. [in] REFIID riid,
  286. [out, iid_is(riid)] IUnknown **ppiunkObj);
  287. HRESULT Close(
  288. [in] DWORD reserved);
  289. }
  290. /*****************************************************************************
  291. * IHlinkTarget interface
  292. */
  293. [
  294. object,
  295. uuid(79EAC9C4-BAF9-11CE-8C82-00AA004BA90B),
  296. pointer_default(unique)
  297. ]
  298. interface IHlinkTarget : IUnknown
  299. {
  300. typedef [unique] IHlinkTarget *LPHLINKTARGET;
  301. HRESULT SetBrowseContext(
  302. [in, unique] IHlinkBrowseContext *pihlbc);
  303. HRESULT GetBrowseContext(
  304. [out] IHlinkBrowseContext **ppihlbc);
  305. HRESULT Navigate(
  306. [in] DWORD grfHLNF,
  307. [in, unique] LPCWSTR pwzJumpLocation);
  308. HRESULT GetMoniker(
  309. [in,unique] LPCWSTR pwzLocation,
  310. [in] DWORD dwAssign,
  311. [out] IMoniker **ppimkLocation);
  312. HRESULT GetFriendlyName(
  313. [in,unique] LPCWSTR pwzLocation,
  314. [out] LPWSTR *ppwzFriendlyName);
  315. }
  316. /*****************************************************************************
  317. * IHlinkFrame interface
  318. */
  319. [
  320. object,
  321. uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b),
  322. pointer_default(unique)
  323. ]
  324. interface IHlinkFrame : IUnknown
  325. {
  326. typedef IHlinkFrame *LPHLINKFRAME;
  327. HRESULT SetBrowseContext(
  328. [in, unique] IHlinkBrowseContext * pihlbc);
  329. HRESULT GetBrowseContext(
  330. [out] IHlinkBrowseContext ** ppihlbc);
  331. HRESULT Navigate(
  332. [in] DWORD grfHLNF,
  333. [in, unique] LPBC pbc,
  334. [in, unique] IBindStatusCallback *pibsc,
  335. [in, unique] IHlink *pihlNavigate);
  336. HRESULT OnNavigate(
  337. [in] DWORD grfHLNF,
  338. [in, unique] IMoniker *pimkTarget,
  339. [in, unique] LPCWSTR pwzLocation,
  340. [in, unique] LPCWSTR pwzFriendlyName,
  341. [in] DWORD dwreserved);
  342. HRESULT UpdateHlink(
  343. [in] ULONG uHLID,
  344. [in, unique] IMoniker *pimkTarget,
  345. [in, unique] LPCWSTR pwzLocation,
  346. [in, unique] LPCWSTR pwzFriendlyName);
  347. }
  348. /*****************************************************************************
  349. * IExtensionServices interface
  350. */
  351. [
  352. object,
  353. uuid(79eac9cb-baf9-11ce-8c82-00aa004ba90b),
  354. pointer_default(unique)
  355. ]
  356. interface IExtensionServices: IUnknown
  357. {
  358. typedef IExtensionServices *LPEXTENSIONSERVICES;
  359. HRESULT SetAdditionalHeaders(
  360. [in] LPCWSTR pwzAdditionalHeaders);
  361. HRESULT SetAuthenticateData(
  362. [in] HWND phwnd,
  363. [in] LPCWSTR pwzUsername,
  364. [in] LPCWSTR pwzPassword);
  365. }