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.

841 lines
39 KiB

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