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