home *** CD-ROM | disk | FTP | other *** search
/ Chip Special: HTML & Java / Chip-Special_1997-01_HTML-a-Java.bin / actvx31.sdk / coresdk / inetsdk / include / hlink.idl < prev    next >
Encoding:
Text File  |  1996-10-16  |  25.9 KB  |  791 lines

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