Source code of Windows XP (NT5)
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.

840 lines
38 KiB

  1. //------------------------------------------------------------------------------------------
  2. //
  3. // Copyright (C) Microsoft Corporation, 1995-1998.
  4. //
  5. // Contents: Hyperlinking interfaces
  6. //
  7. //------------------------------------------------------------------------------------------
  8. cpp_quote("//=--------------------------------------------------------------------------=")
  9. cpp_quote("// HLInk.h")
  10. cpp_quote("//=--------------------------------------------------------------------------=")
  11. cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.")
  12. cpp_quote("//")
  13. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
  14. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  15. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  16. cpp_quote("// PARTICULAR PURPOSE.")
  17. cpp_quote("//=--------------------------------------------------------------------------=")
  18. cpp_quote("")
  19. cpp_quote("#pragma comment(lib,\"uuid.lib\")")
  20. cpp_quote("")
  21. cpp_quote("//--------------------------------------------------------------------------")
  22. cpp_quote("// OLE Hyperlinking Interfaces.")
  23. cpp_quote(" ")
  24. cpp_quote("#ifndef HLINK_H ")
  25. cpp_quote("#define HLINK_H ")
  26. cpp_quote(" ")
  27. import "urlmon.idl";
  28. interface IHlinkSite;
  29. interface IHlink;
  30. interface IHlinkTarget;
  31. interface IHlinkFrame;
  32. interface IEnumHLITEM;
  33. interface IHlinkBrowseContext;
  34. cpp_quote("#define SID_SHlinkFrame IID_IHlinkFrame")
  35. cpp_quote("#define IID_IHlinkSource IID_IHlinkTarget ")
  36. cpp_quote("#define IHlinkSource IHlinkTarget ")
  37. cpp_quote("#define IHlinkSourceVtbl IHlinkTargetVtbl ")
  38. cpp_quote("#define LPHLINKSOURCE LPHLINKTARGET ")
  39. cpp_quote(" ")
  40. cpp_quote("/****************************************************************************/")
  41. cpp_quote("/**** Error codes ****/")
  42. cpp_quote("/****************************************************************************/")
  43. cpp_quote("#ifndef _HLINK_ERRORS_DEFINED ")
  44. cpp_quote("#define _HLINK_ERRORS_DEFINED ")
  45. cpp_quote("#define HLINK_E_FIRST (OLE_E_LAST+1) ")
  46. cpp_quote("#define HLINK_S_FIRST (OLE_S_LAST+1) ")
  47. cpp_quote("#define HLINK_S_DONTHIDE (HLINK_S_FIRST) ")
  48. cpp_quote("#endif //_HLINK_ERRORS_DEFINED ")
  49. cpp_quote(" ")
  50. cpp_quote(" ")
  51. cpp_quote("/****************************************************************************/")
  52. cpp_quote("/**** Hyperlink APIs ****/")
  53. cpp_quote("/****************************************************************************/")
  54. cpp_quote(" ")
  55. // Hyperlink Clipboard Format: On MAC it is 'HLNK', and on windows it is the
  56. // the value returned from RegisterClipboardFormat(CFSTR_HYPERLINK).
  57. cpp_quote("#if MAC || defined(_MAC) ")
  58. cpp_quote("#define cfHyperlink 'HLNK' ")
  59. cpp_quote("#else ")
  60. cpp_quote("#define CFSTR_HYPERLINK (TEXT(\"Hyperlink\")) ")
  61. cpp_quote("#endif ")
  62. cpp_quote(" ")
  63. cpp_quote(" ")
  64. cpp_quote("STDAPI HlinkCreateFromMoniker( ")
  65. cpp_quote(" IMoniker * pimkTrgt, ")
  66. cpp_quote(" LPCWSTR pwzLocation, ")
  67. cpp_quote(" LPCWSTR pwzFriendlyName, ")
  68. cpp_quote(" IHlinkSite * pihlsite, ")
  69. cpp_quote(" DWORD dwSiteData, ")
  70. cpp_quote(" IUnknown * piunkOuter, ")
  71. cpp_quote(" REFIID riid, ")
  72. cpp_quote(" void ** ppvObj); ")
  73. cpp_quote(" ")
  74. cpp_quote("STDAPI HlinkCreateFromString( ")
  75. cpp_quote(" LPCWSTR pwzTarget, ")
  76. cpp_quote(" LPCWSTR pwzLocation, ")
  77. cpp_quote(" LPCWSTR pwzFriendlyName, ")
  78. cpp_quote(" IHlinkSite * pihlsite, ")
  79. cpp_quote(" DWORD dwSiteData, ")
  80. cpp_quote(" IUnknown * piunkOuter, ")
  81. cpp_quote(" REFIID riid, ")
  82. cpp_quote(" void ** ppvObj); ")
  83. cpp_quote(" ")
  84. cpp_quote("STDAPI HlinkCreateFromData( ")
  85. cpp_quote(" IDataObject *piDataObj, ")
  86. cpp_quote(" IHlinkSite * pihlsite, ")
  87. cpp_quote(" DWORD dwSiteData, ")
  88. cpp_quote(" IUnknown * piunkOuter, ")
  89. cpp_quote(" REFIID riid, ")
  90. cpp_quote(" void ** ppvObj); ")
  91. cpp_quote(" ")
  92. // Returns S_OK if a hyperlink can be created from piDataObj, S_FALSE if not.
  93. cpp_quote("STDAPI HlinkQueryCreateFromData(IDataObject *piDataObj); ")
  94. cpp_quote(" ")
  95. cpp_quote("STDAPI HlinkClone( ")
  96. cpp_quote(" IHlink * pihl, ")
  97. cpp_quote(" REFIID riid, ")
  98. cpp_quote(" IHlinkSite * pihlsiteForClone, ")
  99. cpp_quote(" DWORD dwSiteData, ")
  100. cpp_quote(" void ** ppvObj); ")
  101. cpp_quote(" ")
  102. cpp_quote("STDAPI HlinkCreateBrowseContext( ")
  103. cpp_quote(" IUnknown * piunkOuter, ")
  104. cpp_quote(" REFIID riid, ")
  105. cpp_quote(" void ** ppvObj); ")
  106. cpp_quote(" ")
  107. cpp_quote("STDAPI HlinkNavigateToStringReference( ")
  108. cpp_quote(" LPCWSTR pwzTarget, ")
  109. cpp_quote(" LPCWSTR pwzLocation, ")
  110. cpp_quote(" IHlinkSite * pihlsite, ")
  111. cpp_quote(" DWORD dwSiteData, ")
  112. cpp_quote(" IHlinkFrame *pihlframe, ")
  113. cpp_quote(" DWORD grfHLNF, ")
  114. cpp_quote(" LPBC pibc, ")
  115. cpp_quote(" IBindStatusCallback * pibsc, ")
  116. cpp_quote(" IHlinkBrowseContext *pihlbc); ")
  117. cpp_quote(" ")
  118. cpp_quote("STDAPI HlinkNavigate( ")
  119. cpp_quote(" IHlink * pihl, ")
  120. cpp_quote(" IHlinkFrame * pihlframe, ")
  121. cpp_quote(" DWORD grfHLNF, ")
  122. cpp_quote(" LPBC pbc, ")
  123. cpp_quote(" IBindStatusCallback * pibsc, ")
  124. cpp_quote(" IHlinkBrowseContext *pihlbc); ")
  125. cpp_quote(" ")
  126. cpp_quote("STDAPI HlinkOnNavigate( ")
  127. cpp_quote(" IHlinkFrame * pihlframe, ")
  128. cpp_quote(" IHlinkBrowseContext * pihlbc, ")
  129. cpp_quote(" DWORD grfHLNF, ")
  130. cpp_quote(" IMoniker * pimkTarget, ")
  131. cpp_quote(" LPCWSTR pwzLocation, ")
  132. cpp_quote(" LPCWSTR pwzFriendlyName, ")
  133. cpp_quote(" ULONG * puHLID); ")
  134. cpp_quote(" ")
  135. cpp_quote("STDAPI HlinkUpdateStackItem( ")
  136. cpp_quote(" IHlinkFrame * pihlframe, ")
  137. cpp_quote(" IHlinkBrowseContext * pihlbc, ")
  138. cpp_quote(" ULONG uHLID, ")
  139. cpp_quote(" IMoniker * pimkTrgt, ")
  140. cpp_quote(" LPCWSTR pwzLocation, ")
  141. cpp_quote(" LPCWSTR pwzFriendlyName); ")
  142. cpp_quote(" ")
  143. cpp_quote("STDAPI HlinkOnRenameDocument( ")
  144. cpp_quote(" DWORD dwReserved, ")
  145. cpp_quote(" IHlinkBrowseContext * pihlbc, ")
  146. cpp_quote(" IMoniker * pimkOld, ")
  147. cpp_quote(" IMoniker * pimkNew); ")
  148. cpp_quote(" ")
  149. cpp_quote("STDAPI HlinkResolveMonikerForData( ")
  150. cpp_quote(" LPMONIKER pimkReference, ")
  151. cpp_quote(" DWORD reserved, ")
  152. cpp_quote(" LPBC pibc, ")
  153. cpp_quote(" ULONG cFmtetc, ")
  154. cpp_quote(" FORMATETC * rgFmtetc, ")
  155. cpp_quote(" IBindStatusCallback * pibsc, ")
  156. cpp_quote(" LPMONIKER pimkBase); ")
  157. cpp_quote(" ")
  158. cpp_quote("STDAPI HlinkResolveStringForData( ")
  159. cpp_quote(" LPCWSTR pwzReference, ")
  160. cpp_quote(" DWORD reserved, ")
  161. cpp_quote(" LPBC pibc, ")
  162. cpp_quote(" ULONG cFmtetc, ")
  163. cpp_quote(" FORMATETC * rgFmtetc, ")
  164. cpp_quote(" IBindStatusCallback * pibsc, ")
  165. cpp_quote(" LPMONIKER pimkBase); ")
  166. cpp_quote(" ")
  167. cpp_quote("STDAPI HlinkParseDisplayName( ")
  168. cpp_quote(" LPBC pibc, ")
  169. cpp_quote(" LPCWSTR pwzDisplayName, ")
  170. cpp_quote(" BOOL fNoForceAbs, ")
  171. cpp_quote(" ULONG * pcchEaten, ")
  172. cpp_quote(" IMoniker ** ppimk); ")
  173. cpp_quote(" ")
  174. cpp_quote("STDAPI HlinkCreateExtensionServices( ")
  175. cpp_quote(" LPCWSTR pwzAdditionalHeaders, ")
  176. cpp_quote(" HWND phwnd, ")
  177. cpp_quote(" LPCWSTR pszUsername, ")
  178. cpp_quote(" LPCWSTR pszPassword, ")
  179. cpp_quote(" IUnknown * piunkOuter, ")
  180. cpp_quote(" REFIID riid, ")
  181. cpp_quote(" void ** ppvObj); ")
  182. cpp_quote(" ")
  183. cpp_quote("STDAPI HlinkPreprocessMoniker( ")
  184. cpp_quote(" LPBC pibc, ")
  185. cpp_quote(" IMoniker *pimkIn, ")
  186. cpp_quote(" IMoniker **ppimkOut); ")
  187. cpp_quote(" ")
  188. cpp_quote("STDAPI OleSaveToStreamEx( ")
  189. cpp_quote(" IUnknown * piunk, ")
  190. cpp_quote(" IStream * pistm, ")
  191. cpp_quote(" BOOL fClearDirty); ")
  192. cpp_quote(" ")
  193. // hlink special reference ids used in HlinkSetSpecialReference and HlinkGetSpecialReference
  194. typedef enum _HLSR_NOREDEF10
  195. {
  196. HLSR_HOME = 0,
  197. HLSR_SEARCHPAGE = 1,
  198. HLSR_HISTORYFOLDER = 2,
  199. } HLSR;
  200. cpp_quote(" ")
  201. cpp_quote("STDAPI HlinkSetSpecialReference( ")
  202. cpp_quote(" ULONG uReference, ")
  203. cpp_quote(" LPCWSTR pwzReference); ")
  204. cpp_quote(" ")
  205. cpp_quote("STDAPI HlinkGetSpecialReference( ")
  206. cpp_quote(" ULONG uReference, ")
  207. cpp_quote(" LPWSTR *ppwzReference); ")
  208. cpp_quote(" ")
  209. typedef enum _HLSHORTCUTF__NOREDEF10
  210. {
  211. HLSHORTCUTF_DEFAULT = 0x00000000,
  212. HLSHORTCUTF_DONTACTUALLYCREATE = 0x00000001,
  213. HLSHORTCUTF_USEFILENAMEFROMFRIENDLYNAME = 0x00000002,
  214. HLSHORTCUTF_USEUNIQUEFILENAME = 0x00000004,
  215. HLSHORTCUTF_MAYUSEEXISTINGSHORTCUT = 0x00000008,
  216. } HLSHORTCUTF;
  217. cpp_quote(" ")
  218. cpp_quote("STDAPI HlinkCreateShortcut( ")
  219. cpp_quote(" DWORD grfHLSHORTCUTF, ")
  220. cpp_quote(" IHlink *pihl, ")
  221. cpp_quote(" LPCWSTR pwzDir, ")
  222. cpp_quote(" LPCWSTR pwzFileName, ")
  223. cpp_quote(" LPWSTR *ppwzShortcutFile, ")
  224. cpp_quote(" DWORD dwReserved); ")
  225. cpp_quote(" ")
  226. cpp_quote("STDAPI HlinkCreateShortcutFromMoniker( ")
  227. cpp_quote(" DWORD grfHLSHORTCUTF, ")
  228. cpp_quote(" IMoniker *pimkTarget, ")
  229. cpp_quote(" LPCWSTR pwzLocation, ")
  230. cpp_quote(" LPCWSTR pwzDir, ")
  231. cpp_quote(" LPCWSTR pwzFileName, ")
  232. cpp_quote(" LPWSTR *ppwzShortcutFile, ")
  233. cpp_quote(" DWORD dwReserved); ")
  234. cpp_quote(" ")
  235. cpp_quote("STDAPI HlinkCreateShortcutFromString( ")
  236. cpp_quote(" DWORD grfHLSHORTCUTF, ")
  237. cpp_quote(" LPCWSTR pwzTarget, ")
  238. cpp_quote(" LPCWSTR pwzLocation, ")
  239. cpp_quote(" LPCWSTR pwzDir, ")
  240. cpp_quote(" LPCWSTR pwzFileName, ")
  241. cpp_quote(" LPWSTR *ppwzShortcutFile, ")
  242. cpp_quote(" DWORD dwReserved); ")
  243. cpp_quote(" ")
  244. cpp_quote("STDAPI HlinkResolveShortcut( ")
  245. cpp_quote(" LPCWSTR pwzShortcutFileName, ")
  246. cpp_quote(" IHlinkSite * pihlsite, ")
  247. cpp_quote(" DWORD dwSiteData, ")
  248. cpp_quote(" IUnknown * piunkOuter, ")
  249. cpp_quote(" REFIID riid, ")
  250. cpp_quote(" void ** ppvObj); ")
  251. cpp_quote(" ")
  252. cpp_quote("STDAPI HlinkResolveShortcutToMoniker( ")
  253. cpp_quote(" LPCWSTR pwzShortcutFileName, ")
  254. cpp_quote(" IMoniker **ppimkTarget, ")
  255. cpp_quote(" LPWSTR *ppwzLocation); ")
  256. cpp_quote(" ")
  257. cpp_quote("STDAPI HlinkResolveShortcutToString( ")
  258. cpp_quote(" LPCWSTR pwzShortcutFileName, ")
  259. cpp_quote(" LPWSTR *ppwzTarget, ")
  260. cpp_quote(" LPWSTR *ppwzLocation); ")
  261. cpp_quote(" ")
  262. // Returns S_OK if pwzFileName is a hlink shortcut file.
  263. // Currently, this succeeds for Internet Shortcut (.url) files.
  264. cpp_quote(" ")
  265. cpp_quote(" STDAPI HlinkIsShortcut(LPCWSTR pwzFileName); ")
  266. cpp_quote(" ")
  267. // Find pwzName within pwzParams and return the associated value.
  268. // The syntax of pwzParams is < ID1 = "value1" > < ID2 = "value2" > with
  269. // all whitespace outside the quoted strings being ignored.
  270. // If the pwzName is found, allocate and fill in *ppwzValue with the
  271. // associated value and return S_OK.
  272. // If pwzName is not found, return S_FALSE.
  273. cpp_quote(" ")
  274. cpp_quote("STDAPI HlinkGetValueFromParams( ")
  275. cpp_quote(" LPCWSTR pwzParams, ")
  276. cpp_quote(" LPCWSTR pwzName, ")
  277. cpp_quote(" LPWSTR *ppwzValue); ")
  278. cpp_quote(" ")
  279. cpp_quote(" ")
  280. typedef enum _HLTRANSLATEF_NOREDEF10
  281. {
  282. HLTRANSLATEF_DEFAULT = 0x00000000,
  283. HLTRANSLATEF_DONTAPPLYDEFAULTPREFIX = 0x00000001
  284. } HLTRANSLATEF;
  285. cpp_quote(" ")
  286. cpp_quote("STDAPI HlinkTranslateURL( ")
  287. cpp_quote(" LPCWSTR pwzURL, ")
  288. cpp_quote(" DWORD grfFlags, ")
  289. cpp_quote(" LPWSTR *ppwzTranslatedURL); ")
  290. cpp_quote(" ")
  291. cpp_quote(" ")
  292. cpp_quote(" ")
  293. cpp_quote("/****************************************************************************/")
  294. cpp_quote("/**** Hyperlink interface definitions ****/")
  295. cpp_quote("/****************************************************************************/")
  296. cpp_quote(" ")
  297. /****************************************************************************/
  298. /* THIS MUST BE THE FIRST INTERFACE DEFINITION IN THIS IDL. DO NOT MOVE IT */
  299. /****************************************************************************/
  300. //----------------------------------------------------------------------------
  301. //
  302. // Copyright (C) Microsoft Corporation, 1995-1998.
  303. //
  304. // Contents: IHlink interface definition
  305. //
  306. //----------------------------------------------------------------------------
  307. cpp_quote("#ifndef _LPHLINK_DEFINED")
  308. cpp_quote("#define _LPHLINK_DEFINED")
  309. [
  310. object,
  311. uuid(79eac9c3-baf9-11ce-8c82-00aa004ba90b),
  312. pointer_default(unique)
  313. ]
  314. interface IHlink: IUnknown
  315. {
  316. typedef [unique] IHlink *LPHLINK;
  317. // Navigation flags
  318. typedef enum
  319. {
  320. HLNF_INTERNALJUMP = 0x00000001,
  321. HLNF_OPENINNEWWINDOW = 0x00000002,
  322. HLNF_NAVIGATINGBACK = 0x00000004,
  323. HLNF_NAVIGATINGFORWARD = 0x00000008,
  324. HLNF_NAVIGATINGTOSTACKITEM = 0x00000010,
  325. HLNF_CREATENOHISTORY = 0x00000020,
  326. } HLNF;
  327. // GetXXXReference values indicating reference to be retrieved
  328. typedef enum
  329. {
  330. HLINKGETREF_DEFAULT = 0,
  331. HLINKGETREF_ABSOLUTE = 1,
  332. HLINKGETREF_RELATIVE = 2,
  333. } HLINKGETREF;
  334. // GetFriendlyName flags
  335. typedef enum
  336. {
  337. HLFNAMEF_DEFAULT = 0x00000000,
  338. HLFNAMEF_TRYCACHE = 0x00000001,
  339. HLFNAMEF_TRYPRETTYTARGET = 0x00000002,
  340. HLFNAMEF_TRYFULLTARGET = 0x00000004,
  341. HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008,
  342. } HLFNAMEF;
  343. // Status flags
  344. typedef enum
  345. {
  346. HLINKMISC_RELATIVE = 0x00000001,
  347. } HLINKMISC;
  348. // SetXXXReference flags, indicating which part of the reference
  349. // need to be updated
  350. typedef enum
  351. {
  352. HLINKSETF_TARGET = 0x00000001,
  353. HLINKSETF_LOCATION = 0x00000002,
  354. } HLINKSETF;
  355. HRESULT SetHlinkSite(
  356. [in, unique] IHlinkSite * pihlSite,
  357. [in] DWORD dwSiteData);
  358. HRESULT GetHlinkSite(
  359. [out] IHlinkSite ** ppihlSite,
  360. [out] DWORD * pdwSiteData);
  361. HRESULT SetMonikerReference(
  362. [in] DWORD grfHLSETF,
  363. [in, unique] IMoniker * pimkTarget,
  364. [in, unique] LPCWSTR pwzLocation);
  365. HRESULT GetMonikerReference(
  366. [in] DWORD dwWhichRef,
  367. [out] IMoniker ** ppimkTarget,
  368. [out] LPWSTR * ppwzLocation);
  369. HRESULT SetStringReference(
  370. [in] DWORD grfHLSETF,
  371. [in, unique] LPCWSTR pwzTarget,
  372. [in, unique] LPCWSTR pwzLocation);
  373. HRESULT GetStringReference(
  374. [in] DWORD dwWhichRef,
  375. [out] LPWSTR * ppwzTarget,
  376. [out] LPWSTR * ppwzLocation);
  377. HRESULT SetFriendlyName(
  378. [in, unique] LPCWSTR pwzFriendlyName);
  379. HRESULT GetFriendlyName(
  380. [in] DWORD grfHLFNAMEF,
  381. [out] LPWSTR * ppwzFriendlyName);
  382. HRESULT SetTargetFrameName(
  383. [in, unique] LPCWSTR pwzTargetFrameName);
  384. HRESULT GetTargetFrameName(
  385. [out] LPWSTR *ppwzTargetFrameName);
  386. HRESULT GetMiscStatus(
  387. [out] DWORD *pdwStatus);
  388. HRESULT Navigate(
  389. [in] DWORD grfHLNF,
  390. [in, unique] LPBC pibc,
  391. [in, unique] IBindStatusCallback * pibsc,
  392. [in, unique] IHlinkBrowseContext * pihlbc);
  393. HRESULT SetAdditionalParams(
  394. [in, unique] LPCWSTR pwzAdditionalParams);
  395. HRESULT GetAdditionalParams(
  396. [out] LPWSTR *ppwzAdditionalParams);
  397. }
  398. cpp_quote("#endif")
  399. //+---------------------------------------------------------------------------
  400. //
  401. // Copyright (C) Microsoft Corporation, 1995-1998.
  402. //
  403. // Contents: IHlinkSite interface definition
  404. //
  405. //----------------------------------------------------------------------------
  406. cpp_quote("#ifndef _LPHLINKSITE_DEFINED")
  407. cpp_quote("#define _LPHLINKSITE_DEFINED")
  408. cpp_quote("EXTERN_C const GUID SID_SContainer;")
  409. [
  410. object,
  411. uuid(79eac9c2-baf9-11ce-8c82-00aa004ba90b),
  412. pointer_default(unique)
  413. ]
  414. interface IHlinkSite: IUnknown
  415. {
  416. typedef [unique] IHlinkSite *LPHLINKSITE;
  417. // values indicating the moniker to be retrieved
  418. typedef enum
  419. {
  420. HLINKWHICHMK_CONTAINER = 1,
  421. HLINKWHICHMK_BASE = 2,
  422. } HLINKWHICHMK;
  423. HRESULT QueryService(
  424. [in] DWORD dwSiteData,
  425. #ifdef _MAC
  426. [in] GUID * guidService,
  427. #else
  428. [in] REFGUID guidService,
  429. #endif // _MAC
  430. [in] REFIID riid,
  431. [out, iid_is(riid)] IUnknown ** ppiunk);
  432. HRESULT GetMoniker(
  433. [in] DWORD dwSiteData,
  434. [in] DWORD dwAssign,
  435. [in] DWORD dwWhich,
  436. [out] IMoniker ** ppimk);
  437. HRESULT ReadyToNavigate(
  438. [in] DWORD dwSiteData,
  439. [in] DWORD dwReserved);
  440. HRESULT OnNavigationComplete(
  441. [in] DWORD dwSiteData,
  442. [in] DWORD dwreserved,
  443. [in] HRESULT hrError,
  444. [in, unique] LPCWSTR pwzError);
  445. }
  446. cpp_quote("#endif")
  447. //+---------------------------------------------------------------------------
  448. //
  449. // Copyright (C) Microsoft Corporation, 1995-1998.
  450. //
  451. // Contents: IHlinkTarget interface definition
  452. //
  453. //----------------------------------------------------------------------------
  454. cpp_quote("#ifndef _LPHLINKTARGET_DEFINED")
  455. cpp_quote("#define _LPHLINKTARGET_DEFINED")
  456. [
  457. object,
  458. uuid(79eac9c4-baf9-11ce-8c82-00aa004ba90b),
  459. pointer_default(unique)
  460. ]
  461. interface IHlinkTarget : IUnknown
  462. {
  463. typedef [unique] IHlinkTarget *LPHLINKTARGET;
  464. HRESULT SetBrowseContext(
  465. [in, unique] IHlinkBrowseContext * pihlbc);
  466. HRESULT GetBrowseContext(
  467. [out] IHlinkBrowseContext ** ppihlbc);
  468. HRESULT Navigate(
  469. [in] DWORD grfHLNF,
  470. [in, unique] LPCWSTR pwzJumpLocation);
  471. HRESULT GetMoniker(
  472. [in,unique] LPCWSTR pwzLocation,
  473. [in] DWORD dwAssign,
  474. [out] IMoniker ** ppimkLocation);
  475. HRESULT GetFriendlyName(
  476. [in,unique] LPCWSTR pwzLocation,
  477. [out] LPWSTR * ppwzFriendlyName);
  478. }
  479. cpp_quote("#endif")
  480. //+---------------------------------------------------------------------------
  481. //
  482. // Copyright (C) Microsoft Corporation, 1995-1998.
  483. //
  484. // Contents: IHlinkFrame interface definition
  485. //
  486. //----------------------------------------------------------------------------
  487. cpp_quote("#ifndef _LPHLINKFRAME_DEFINED")
  488. cpp_quote("#define _LPHLINKFRAME_DEFINED")
  489. cpp_quote("EXTERN_C const GUID SID_SHlinkFrame;")
  490. [
  491. object,
  492. uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b),
  493. pointer_default(unique)
  494. ]
  495. interface IHlinkFrame : IUnknown
  496. {
  497. typedef [unique] IHlinkFrame *LPHLINKFRAME;
  498. HRESULT SetBrowseContext(
  499. [in, unique] IHlinkBrowseContext * pihlbc);
  500. HRESULT GetBrowseContext(
  501. [out] IHlinkBrowseContext ** ppihlbc);
  502. HRESULT Navigate(
  503. [in] DWORD grfHLNF,
  504. [in, unique] LPBC pbc,
  505. [in, unique] IBindStatusCallback * pibsc,
  506. [in, unique] IHlink * pihlNavigate);
  507. HRESULT OnNavigate(
  508. [in] DWORD grfHLNF,
  509. [in, unique] IMoniker * pimkTarget,
  510. [in, unique] LPCWSTR pwzLocation,
  511. [in, unique] LPCWSTR pwzFriendlyName,
  512. [in] DWORD dwreserved);
  513. HRESULT UpdateHlink(
  514. [in] ULONG uHLID,
  515. [in, unique] IMoniker * pimkTarget,
  516. [in, unique] LPCWSTR pwzLocation,
  517. [in, unique] LPCWSTR pwzFriendlyName);
  518. }
  519. cpp_quote("#endif")
  520. //+---------------------------------------------------------------------------
  521. //
  522. // Copyright (C) Microsoft Corporation, 1995-1998.
  523. //
  524. // Contents: IEnumHLITEM interface definition
  525. //
  526. //----------------------------------------------------------------------------
  527. cpp_quote("#ifndef _LPENUMHLITEM_DEFINED")
  528. cpp_quote("#define _LPENUMHLITEM_DEFINED")
  529. [
  530. local,
  531. object,
  532. uuid(79eac9c6-baf9-11ce-8c82-00aa004ba90b),
  533. pointer_default(unique)
  534. ]
  535. interface IEnumHLITEM : IUnknown
  536. {
  537. typedef [unique] IEnumHLITEM *LPENUMHLITEM;
  538. typedef struct tagHLITEM
  539. {
  540. ULONG uHLID;
  541. LPWSTR pwzFriendlyName;
  542. } HLITEM;
  543. typedef [unique] HLITEM *LPHLITEM;
  544. //[local]
  545. HRESULT __stdcall Next(
  546. [in] ULONG celt,
  547. [out] HLITEM * rgelt,
  548. [out] ULONG * pceltFetched);
  549. #ifdef NOTUSED
  550. [call_as(Next)]
  551. HRESULT __stdcall RemoteNext(
  552. [in] ULONG celt,
  553. [out, size_is(celt), length_is(*pceltFetched)]
  554. HLITEM * rgelt,
  555. [out] ULONG *pceltFetched);
  556. #endif
  557. HRESULT Skip(
  558. [in] ULONG celt);
  559. HRESULT Reset();
  560. HRESULT Clone(
  561. [out] IEnumHLITEM ** ppienumhlitem);
  562. }
  563. cpp_quote("#endif")
  564. //+---------------------------------------------------------------------------
  565. //
  566. // Copyright (C) Microsoft Corporation, 1995-1998.
  567. //
  568. // Contents: IHlinkBrowseContext interface definition
  569. //
  570. //----------------------------------------------------------------------------
  571. cpp_quote("#ifndef _LPHLINKBROWSECONTEXT_DEFINED")
  572. cpp_quote("#define _LPHLINKBROWSECONTEXT_DEFINED")
  573. [
  574. local,
  575. object,
  576. uuid(79eac9c7-baf9-11ce-8c82-00aa004ba90b),
  577. pointer_default(unique)
  578. ]
  579. interface IHlinkBrowseContext : IUnknown
  580. {
  581. typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
  582. // Information about the toolbars
  583. enum
  584. {
  585. HLTB_DOCKEDLEFT = 0,
  586. HLTB_DOCKEDTOP = 1,
  587. HLTB_DOCKEDRIGHT = 2,
  588. HLTB_DOCKEDBOTTOM = 3,
  589. HLTB_FLOATING = 4,
  590. };
  591. typedef struct _tagHLTBINFO
  592. {
  593. ULONG uDockType;
  594. RECT rcTbPos;
  595. } HLTBINFO;
  596. // information about the browse window
  597. enum
  598. {
  599. HLBWIF_HASFRAMEWNDINFO = 0x00000001,
  600. HLBWIF_HASDOCWNDINFO = 0x00000002,
  601. HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004,
  602. HLBWIF_DOCWNDMAXIMIZED = 0x00000008,
  603. HLBWIF_HASWEBTOOLBARINFO = 0x00000010,
  604. HLBWIF_WEBTOOLBARHIDDEN = 0x00000020
  605. };
  606. typedef struct _tagHLBWINFO
  607. {
  608. ULONG cbSize;
  609. DWORD grfHLBWIF;
  610. RECT rcFramePos;
  611. RECT rcDocPos;
  612. HLTBINFO hltbinfo;
  613. } HLBWINFO;
  614. typedef [unique] HLBWINFO *LPHLBWINFO;
  615. enum
  616. {
  617. HLID_INVALID = 0x0,
  618. HLID_PREVIOUS = 0xFFFFFFFF,
  619. HLID_NEXT = 0xFFFFFFFE,
  620. HLID_CURRENT = 0xFFFFFFFD,
  621. HLID_STACKBOTTOM = 0xFFFFFFFC,
  622. HLID_STACKTOP = 0xFFFFFFFB,
  623. };
  624. enum
  625. {
  626. HLQF_ISVALID = 0x00000001,
  627. HLQF_ISCURRENT = 0x00000002
  628. };
  629. HRESULT Register(
  630. [in] DWORD reserved,
  631. [in, unique] IUnknown * piunk,
  632. [in, unique] IMoniker * pimk,
  633. [out] DWORD * pdwRegister);
  634. HRESULT GetObject(
  635. [in, unique] IMoniker * pimk,
  636. [in] BOOL fBindIfRootRegistered,
  637. [out] IUnknown ** ppiunk);
  638. HRESULT Revoke(
  639. [in] DWORD dwRegister);
  640. HRESULT SetBrowseWindowInfo(
  641. [in, unique] HLBWINFO * phlbwi);
  642. HRESULT GetBrowseWindowInfo(
  643. [out] HLBWINFO * phlbwi);
  644. HRESULT SetInitialHlink(
  645. [in, unique] IMoniker * pimkTarget,
  646. [in, unique] LPCWSTR pwzLocation,
  647. [in, unique] LPCWSTR pwzFriendlyName);
  648. HRESULT OnNavigateHlink(
  649. [in] DWORD grfHLNF,
  650. [in, unique] IMoniker * pimkTarget,
  651. [in, unique] LPCWSTR pwzLocation,
  652. [in, unique] LPCWSTR pwzFriendlyName,
  653. [out] ULONG * puHLID);
  654. HRESULT UpdateHlink(
  655. [in] ULONG uHLID,
  656. [in, unique] IMoniker * pimkTarget,
  657. [in, unique] LPCWSTR pwzLocation,
  658. [in, unique] LPCWSTR pwzFriendlyName);
  659. HRESULT EnumNavigationStack(
  660. [in] DWORD dwReserved,
  661. [in] DWORD grfHLFNAMEF,
  662. [out] IEnumHLITEM ** ppienumhlitem);
  663. HRESULT QueryHlink(
  664. [in] DWORD grfHLQF,
  665. [in] ULONG uHLID);
  666. HRESULT GetHlink(
  667. [in] ULONG uHLID,
  668. [out] IHlink ** ppihl);
  669. HRESULT SetCurrentHlink(
  670. [in] ULONG uHLID);
  671. HRESULT Clone(
  672. [in, unique] IUnknown * piunkOuter,
  673. [in] REFIID riid,
  674. [out, iid_is(riid)] IUnknown ** ppiunkObj);
  675. HRESULT Close(
  676. [in] DWORD reserved);
  677. }
  678. cpp_quote("#endif")
  679. //+---------------------------------------------------------------------------
  680. //
  681. // Copyright (C) Microsoft Corporation, 1995-1998.
  682. //
  683. // Contents: IExtensionServices interface definition
  684. //
  685. //----------------------------------------------------------------------------
  686. cpp_quote("#ifndef _LPEXTENSIONSERVICES_DEFINED")
  687. cpp_quote("#define _LPEXTENSIONSERVICES_DEFINED")
  688. [
  689. local,
  690. object,
  691. uuid(79eac9cb-baf9-11ce-8c82-00aa004ba90b),
  692. pointer_default(unique)
  693. ]
  694. interface IExtensionServices : IUnknown
  695. {
  696. typedef [unique] IExtensionServices *LPEXTENSIONSERVICES;
  697. HRESULT SetAdditionalHeaders(
  698. [in] LPCWSTR pwzAdditionalHeaders);
  699. HRESULT SetAuthenticateData(
  700. [in] HWND phwnd,
  701. [in] LPCWSTR pwzUsername,
  702. [in] LPCWSTR pwzPassword);
  703. }
  704. cpp_quote("#endif")
  705. cpp_quote(" ")
  706. cpp_quote("#endif // !HLINK_H ")