home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / hlink.idl < prev    next >
Text File  |  1998-04-25  |  40KB  |  842 lines

  1. //------------------------------------------------------------------------------------------
  2. //
  3. //  Copyright (C) Microsoft Corporation, 1995-1997.
  4. //
  5. //  Contents:   Hyperlinking interfaces
  6. //
  7. //------------------------------------------------------------------------------------------
  8.  
  9. cpp_quote("//=--------------------------------------------------------------------------=")
  10. cpp_quote("// HLInk.h")
  11. cpp_quote("//=--------------------------------------------------------------------------=")
  12. cpp_quote("// (C) Copyright 1995 - 1998 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. cpp_quote("                                                                              ")
  28.  
  29. import "urlmon.idl";
  30.  
  31. interface IHlinkSite;
  32. interface IHlink;
  33. interface IHlinkTarget;
  34. interface IHlinkFrame;
  35. interface IEnumHLITEM;
  36. interface IHlinkBrowseContext;
  37.  
  38. cpp_quote("// We temporarily support the old 'source' names                              ")
  39. cpp_quote("#define SID_SHlinkFrame IID_IHlinkFrame")
  40. cpp_quote("#define IID_IHlinkSource IID_IHlinkTarget                                     ")
  41. cpp_quote("#define IHlinkSource IHlinkTarget                                             ")
  42. cpp_quote("#define IHlinkSourceVtbl IHlinkTargetVtbl                                     ")
  43. cpp_quote("#define LPHLINKSOURCE LPHLINKTARGET                                           ")
  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 HlinkOnRenameDocument(                                                 ")
  151. cpp_quote("             DWORD dwReserved,                                                ")
  152. cpp_quote("             IHlinkBrowseContext * pihlbc,                                    ")
  153. cpp_quote("             IMoniker * pimkOld,                                              ")
  154. cpp_quote("             IMoniker * pimkNew);                                             ")
  155. cpp_quote("                                                                              ")
  156. cpp_quote("STDAPI HlinkResolveMonikerForData(                                            ")
  157. cpp_quote("             LPMONIKER pimkReference,                                         ")
  158. cpp_quote("             DWORD reserved,                                                  ")
  159. cpp_quote("             LPBC pibc,                                                       ")
  160. cpp_quote("             ULONG cFmtetc,                                                   ")
  161. cpp_quote("             FORMATETC * rgFmtetc,                                            ")
  162. cpp_quote("             IBindStatusCallback * pibsc,                                     ")
  163. cpp_quote("             LPMONIKER pimkBase);                                             ")
  164. cpp_quote("                                                                              ")
  165. cpp_quote("STDAPI HlinkResolveStringForData(                                             ")
  166. cpp_quote("             LPCWSTR pwzReference,                                            ")
  167. cpp_quote("             DWORD reserved,                                                  ")
  168. cpp_quote("             LPBC pibc,                                                       ")
  169. cpp_quote("             ULONG cFmtetc,                                                   ")
  170. cpp_quote("             FORMATETC * rgFmtetc,                                            ")
  171. cpp_quote("             IBindStatusCallback * pibsc,                                     ")
  172. cpp_quote("             LPMONIKER pimkBase);                                             ")
  173. cpp_quote("                                                                              ")
  174. cpp_quote("STDAPI HlinkParseDisplayName(                                                 ")
  175. cpp_quote("             LPBC pibc,                                                       ")
  176. cpp_quote("             LPCWSTR pwzDisplayName,                                          ")
  177. cpp_quote("             BOOL fNoForceAbs,                                                ")
  178. cpp_quote("             ULONG * pcchEaten,                                               ")
  179. cpp_quote("             IMoniker ** ppimk);                                              ")
  180. cpp_quote("                                                                              ")
  181. cpp_quote("STDAPI HlinkCreateExtensionServices(                                          ")
  182. cpp_quote("             LPCWSTR pwzAdditionalHeaders,                                    ")
  183. cpp_quote("             HWND phwnd,                                                      ")
  184. cpp_quote("             LPCWSTR pszUsername,                                             ")
  185. cpp_quote("             LPCWSTR pszPassword,                                             ")
  186. cpp_quote("             IUnknown * piunkOuter,                                           ")
  187. cpp_quote("             REFIID riid,                                                     ")
  188. cpp_quote("             void ** ppvObj);                                                 ")
  189. cpp_quote("                                                                              ")
  190. cpp_quote("STDAPI HlinkPreprocessMoniker(                                                ")
  191. cpp_quote("             LPBC pibc,                                                       ")
  192. cpp_quote("             IMoniker *pimkIn,                                                ")
  193. cpp_quote("             IMoniker **ppimkOut);                                            ")
  194. cpp_quote("                                                                              ")
  195. cpp_quote("STDAPI OleSaveToStreamEx(                                                     ")
  196. cpp_quote("             IUnknown * piunk,                                                ")
  197. cpp_quote("             IStream * pistm,                                                 ")
  198. cpp_quote("             BOOL fClearDirty);                                               ")
  199. cpp_quote("                                                                              ")
  200.  
  201. // hlink special reference ids used in HlinkSetSpecialReference and HlinkGetSpecialReference
  202. typedef enum _HLSR_NOREDEF10
  203. {
  204.     HLSR_HOME = 0,
  205.     HLSR_SEARCHPAGE = 1,
  206.     HLSR_HISTORYFOLDER = 2,
  207. } HLSR;
  208.  
  209. cpp_quote("                                                                              ")
  210. cpp_quote("STDAPI HlinkSetSpecialReference(                                              ")
  211. cpp_quote("             ULONG uReference,                                                ")
  212. cpp_quote("             LPCWSTR pwzReference);                                           ")
  213. cpp_quote("                                                                              ")
  214. cpp_quote("STDAPI HlinkGetSpecialReference(                                              ")
  215. cpp_quote("             ULONG uReference,                                                ")
  216. cpp_quote("             LPWSTR *ppwzReference);                                          ")
  217. cpp_quote("                                                                              ")
  218.  
  219. typedef enum _HLSHORTCUTF__NOREDEF10
  220. {
  221.     HLSHORTCUTF_DEFAULT             = 0x00000000,
  222.     HLSHORTCUTF_DONTACTUALLYCREATE  = 0x00000001,
  223.     HLSHORTCUTF_USEFILENAMEFROMFRIENDLYNAME = 0x00000002,
  224.     HLSHORTCUTF_USEUNIQUEFILENAME   = 0x00000004,
  225.     HLSHORTCUTF_MAYUSEEXISTINGSHORTCUT = 0x00000008,
  226. } HLSHORTCUTF;
  227.  
  228. cpp_quote("                                                                              ")
  229. cpp_quote("STDAPI HlinkCreateShortcut(                                                   ")
  230. cpp_quote("             DWORD grfHLSHORTCUTF,                                            ")
  231. cpp_quote("             IHlink *pihl,                                                    ")
  232. cpp_quote("             LPCWSTR pwzDir,                                                  ")
  233. cpp_quote("             LPCWSTR pwzFileName,                                             ")
  234. cpp_quote("             LPWSTR *ppwzShortcutFile,                                        ")
  235. cpp_quote("             DWORD dwReserved);                                               ")
  236. cpp_quote("                                                                              ")
  237. cpp_quote("STDAPI HlinkCreateShortcutFromMoniker(                                        ")
  238. cpp_quote("             DWORD grfHLSHORTCUTF,                                            ")
  239. cpp_quote("             IMoniker *pimkTarget,                                            ")
  240. cpp_quote("             LPCWSTR pwzLocation,                                             ")
  241. cpp_quote("             LPCWSTR pwzDir,                                                  ")
  242. cpp_quote("             LPCWSTR pwzFileName,                                             ")
  243. cpp_quote("             LPWSTR *ppwzShortcutFile,                                        ")
  244. cpp_quote("             DWORD dwReserved);                                               ")
  245. cpp_quote("                                                                              ")
  246. cpp_quote("STDAPI HlinkCreateShortcutFromString(                                         ")
  247. cpp_quote("             DWORD grfHLSHORTCUTF,                                            ")
  248. cpp_quote("             LPCWSTR pwzTarget,                                               ")
  249. cpp_quote("             LPCWSTR pwzLocation,                                             ")
  250. cpp_quote("             LPCWSTR pwzDir,                                                  ")
  251. cpp_quote("             LPCWSTR pwzFileName,                                             ")
  252. cpp_quote("             LPWSTR *ppwzShortcutFile,                                        ")
  253. cpp_quote("             DWORD dwReserved);                                               ")
  254. cpp_quote("                                                                              ")
  255. cpp_quote("STDAPI HlinkResolveShortcut(                                                  ")
  256. cpp_quote("             LPCWSTR pwzShortcutFileName,                                     ")
  257. cpp_quote("             IHlinkSite * pihlsite,                                           ")
  258. cpp_quote("             DWORD dwSiteData,                                                ")
  259. cpp_quote("             IUnknown * piunkOuter,                                           ")
  260. cpp_quote("             REFIID riid,                                                     ")
  261. cpp_quote("             void ** ppvObj);                                                 ")
  262. cpp_quote("                                                                              ")
  263. cpp_quote("STDAPI HlinkResolveShortcutToMoniker(                                         ")
  264. cpp_quote("             LPCWSTR pwzShortcutFileName,                                     ")
  265. cpp_quote("             IMoniker **ppimkTarget,                                          ")
  266. cpp_quote("             LPWSTR *ppwzLocation);                                           ")
  267. cpp_quote("                                                                              ")
  268. cpp_quote("STDAPI HlinkResolveShortcutToString(                                          ")
  269. cpp_quote("             LPCWSTR pwzShortcutFileName,                                     ")
  270. cpp_quote("             LPWSTR *ppwzTarget,                                              ")
  271. cpp_quote("             LPWSTR *ppwzLocation);                                           ")
  272. cpp_quote("                                                                              ")
  273.  
  274. // Returns S_OK if pwzFileName is a hlink shortcut file.
  275. // Currently, this succeeds for Internet Shortcut (.url) files.
  276. cpp_quote("                                                                              ")
  277. cpp_quote(" STDAPI HlinkIsShortcut(LPCWSTR pwzFileName);                                 ")
  278. cpp_quote("                                                                              ")
  279.  
  280. //      Find pwzName within pwzParams and return the associated value.
  281. //      The syntax of pwzParams is < ID1 = "value1" > < ID2 = "value2" > with
  282. //      all whitespace outside the quoted strings being ignored.
  283. //      If the pwzName is found, allocate and fill in *ppwzValue with the
  284. //      associated value and return S_OK.
  285. //      If pwzName is not found, return S_FALSE.
  286. cpp_quote("                                                                              ")
  287. cpp_quote("STDAPI HlinkGetValueFromParams(                                               ")
  288. cpp_quote("             LPCWSTR pwzParams,                                               ")
  289. cpp_quote("             LPCWSTR pwzName,                                                 ")
  290. cpp_quote("             LPWSTR *ppwzValue);                                              ")
  291. cpp_quote("                                                                              ")
  292. cpp_quote("                                                                              ")
  293.  
  294. typedef enum _HLTRANSLATEF_NOREDEF10
  295. {
  296.     HLTRANSLATEF_DEFAULT                = 0x00000000,
  297.     HLTRANSLATEF_DONTAPPLYDEFAULTPREFIX = 0x00000001
  298. } HLTRANSLATEF;
  299.  
  300. cpp_quote("                                                                              ")
  301. cpp_quote("STDAPI HlinkTranslateURL(                                                     ")
  302. cpp_quote("             LPCWSTR pwzURL,                                                  ")
  303. cpp_quote("             DWORD grfFlags,                                                  ")
  304. cpp_quote("             LPWSTR *ppwzTranslatedURL);                                      ")
  305. cpp_quote("                                                                              ")
  306. cpp_quote("                                                                              ")
  307.  
  308.  
  309. cpp_quote("                                                                              ")
  310. cpp_quote("/****************************************************************************/")
  311. cpp_quote("/**** Hyperlink interface definitions                                    ****/")
  312. cpp_quote("/****************************************************************************/")
  313. cpp_quote("                                                                              ")
  314.  
  315.  
  316. /****************************************************************************/
  317. /*  THIS MUST BE THE FIRST INTERFACE DEFINITION IN THIS IDL. DO NOT MOVE IT */
  318. /****************************************************************************/
  319.  
  320.  
  321. //----------------------------------------------------------------------------
  322. //
  323. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  324. //
  325. //  Contents:   IHlink interface definition
  326. //
  327. //----------------------------------------------------------------------------
  328.  
  329. cpp_quote("#ifndef _LPHLINK_DEFINED")
  330. cpp_quote("#define _LPHLINK_DEFINED")
  331.  
  332. [
  333.         object,
  334.         uuid(79eac9c3-baf9-11ce-8c82-00aa004ba90b),
  335.         pointer_default(unique)
  336. ]
  337.  
  338.  
  339. interface IHlink: IUnknown
  340. {
  341.         typedef [unique] IHlink *LPHLINK;
  342.  
  343.         // Navigation flags
  344.         typedef enum
  345.         {
  346.             HLNF_INTERNALJUMP           = 0x00000001,
  347.             HLNF_OPENINNEWWINDOW        = 0x00000002,
  348.             HLNF_NAVIGATINGBACK         = 0x00000004,
  349.             HLNF_NAVIGATINGFORWARD      = 0x00000008,
  350.             HLNF_NAVIGATINGTOSTACKITEM  = 0x00000010,
  351.             HLNF_CREATENOHISTORY        = 0x00000020,
  352.         } HLNF;
  353.  
  354.         // GetXXXReference values indicating reference to be retrieved
  355.         typedef enum
  356.         {
  357.             HLINKGETREF_DEFAULT  = 0,
  358.             HLINKGETREF_ABSOLUTE = 1,
  359.             HLINKGETREF_RELATIVE = 2,
  360.         } HLINKGETREF;
  361.  
  362.         // GetFriendlyName flags
  363.         typedef enum
  364.         {
  365.             HLFNAMEF_DEFAULT            = 0x00000000,
  366.             HLFNAMEF_TRYCACHE           = 0x00000001,
  367.             HLFNAMEF_TRYPRETTYTARGET    = 0x00000002,
  368.             HLFNAMEF_TRYFULLTARGET      = 0x00000004,
  369.             HLFNAMEF_TRYWIN95SHORTCUT   = 0x00000008,
  370.         } HLFNAMEF;
  371.  
  372.         // Status flags
  373.         typedef enum
  374.         {
  375.             HLINKMISC_RELATIVE = 0x00000001,
  376.         } HLINKMISC;
  377.  
  378.         // SetXXXReference flags, indicating which part of the reference
  379.         // need to be updated
  380.         typedef enum
  381.         {
  382.             HLINKSETF_TARGET              = 0x00000001,
  383.             HLINKSETF_LOCATION            = 0x00000002,
  384.         } HLINKSETF;
  385.  
  386.         HRESULT SetHlinkSite(
  387.                 [in, unique] IHlinkSite * pihlSite,
  388.                 [in] DWORD dwSiteData);
  389.  
  390.         HRESULT GetHlinkSite(
  391.                 [out] IHlinkSite ** ppihlSite,
  392.                 [out] DWORD * pdwSiteData);
  393.  
  394.         HRESULT SetMonikerReference(
  395.                 [in] DWORD grfHLSETF,
  396.                 [in, unique] IMoniker * pimkTarget,
  397.                 [in, unique] LPCWSTR pwzLocation);
  398.  
  399.         HRESULT GetMonikerReference(
  400.                 [in] DWORD dwWhichRef,
  401.                 [out] IMoniker ** ppimkTarget,
  402.                 [out] LPWSTR * ppwzLocation);
  403.  
  404.         HRESULT SetStringReference(
  405.                 [in] DWORD grfHLSETF,
  406.                 [in, unique] LPCWSTR pwzTarget,
  407.                 [in, unique] LPCWSTR pwzLocation);
  408.  
  409.         HRESULT GetStringReference(
  410.                 [in] DWORD dwWhichRef,
  411.                 [out] LPWSTR * ppwzTarget,
  412.                 [out] LPWSTR * ppwzLocation);
  413.  
  414.         HRESULT SetFriendlyName(
  415.                 [in, unique] LPCWSTR pwzFriendlyName);
  416.  
  417.         HRESULT GetFriendlyName(
  418.                 [in] DWORD grfHLFNAMEF,
  419.                 [out] LPWSTR * ppwzFriendlyName);
  420.  
  421.         HRESULT SetTargetFrameName(
  422.                 [in, unique] LPCWSTR pwzTargetFrameName);
  423.  
  424.         HRESULT GetTargetFrameName(
  425.                 [out] LPWSTR *ppwzTargetFrameName);
  426.  
  427.         HRESULT GetMiscStatus(
  428.                 [out] DWORD *pdwStatus);
  429.  
  430.         HRESULT Navigate(
  431.                 [in] DWORD grfHLNF,
  432.                 [in, unique] LPBC pibc,
  433.                 [in, unique] IBindStatusCallback * pibsc,
  434.                 [in, unique] IHlinkBrowseContext * pihlbc);
  435.  
  436.         HRESULT SetAdditionalParams(
  437.                 [in, unique] LPCWSTR pwzAdditionalParams);
  438.  
  439.         HRESULT GetAdditionalParams(
  440.                 [out] LPWSTR *ppwzAdditionalParams);
  441. }
  442. cpp_quote("#endif")
  443.  
  444.  
  445.  
  446. //+---------------------------------------------------------------------------
  447. //
  448. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  449. //
  450. //  Contents:   IHlinkSite interface definition
  451. //
  452. //----------------------------------------------------------------------------
  453.  
  454. cpp_quote("#ifndef _LPHLINKSITE_DEFINED")
  455. cpp_quote("#define _LPHLINKSITE_DEFINED")
  456. cpp_quote("EXTERN_C const GUID SID_SContainer;")
  457.  
  458. [
  459.         object,
  460.         uuid(79eac9c2-baf9-11ce-8c82-00aa004ba90b),
  461.         pointer_default(unique)
  462. ]
  463.  
  464.  
  465. interface IHlinkSite: IUnknown
  466. {
  467.         typedef [unique] IHlinkSite *LPHLINKSITE;
  468.  
  469.         // values indicating the moniker to be retrieved
  470.         typedef enum
  471.         {
  472.             HLINKWHICHMK_CONTAINER  = 1,
  473.             HLINKWHICHMK_BASE       = 2,
  474.         } HLINKWHICHMK;
  475.  
  476.         HRESULT QueryService(
  477.                 [in] DWORD dwSiteData,
  478. #ifdef _MAC
  479.         [in] GUID * guidService,
  480. #else
  481.         [in] REFGUID guidService,
  482. #endif // _MAC
  483.             [in] REFIID riid,
  484.                 [out, iid_is(riid)] IUnknown ** ppiunk);
  485.  
  486.         HRESULT GetMoniker(
  487.                 [in] DWORD dwSiteData,
  488.                 [in] DWORD dwAssign,
  489.                 [in] DWORD dwWhich,
  490.                 [out] IMoniker ** ppimk);
  491.  
  492.         HRESULT ReadyToNavigate(
  493.                 [in] DWORD dwSiteData,
  494.                 [in] DWORD dwReserved);
  495.  
  496.         HRESULT OnNavigationComplete(
  497.                 [in] DWORD dwSiteData,
  498.                 [in] DWORD dwreserved,
  499.                 [in] HRESULT hrError,
  500.                 [in, unique] LPCWSTR pwzError);
  501. }
  502. cpp_quote("#endif")
  503.  
  504.  
  505.  
  506. //+---------------------------------------------------------------------------
  507. //
  508. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  509. //
  510. //  Contents:   IHlinkTarget interface definition
  511. //
  512. //----------------------------------------------------------------------------
  513.  
  514. cpp_quote("#ifndef _LPHLINKTARGET_DEFINED")
  515. cpp_quote("#define _LPHLINKTARGET_DEFINED")
  516.  
  517. [
  518.         object,
  519.         uuid(79eac9c4-baf9-11ce-8c82-00aa004ba90b),
  520.         pointer_default(unique)
  521. ]
  522.  
  523.  
  524. interface IHlinkTarget : IUnknown
  525. {
  526.         typedef [unique] IHlinkTarget *LPHLINKTARGET;
  527.  
  528.         HRESULT SetBrowseContext(
  529.                 [in, unique] IHlinkBrowseContext * pihlbc);
  530.  
  531.         HRESULT GetBrowseContext(
  532.                 [out] IHlinkBrowseContext ** ppihlbc);
  533.  
  534.         HRESULT Navigate(
  535.                 [in] DWORD grfHLNF,
  536.                 [in, unique] LPCWSTR pwzJumpLocation);
  537.  
  538.         HRESULT GetMoniker(
  539.                 [in,unique]  LPCWSTR pwzLocation,
  540.                 [in] DWORD dwAssign,
  541.                 [out] IMoniker ** ppimkLocation);
  542.  
  543.         HRESULT GetFriendlyName(
  544.                 [in,unique]  LPCWSTR pwzLocation,
  545.                 [out] LPWSTR * ppwzFriendlyName);
  546. }
  547.  
  548. cpp_quote("#endif")
  549.  
  550.  
  551.  
  552. //+---------------------------------------------------------------------------
  553. //
  554. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  555. //
  556. //  Contents:   IHlinkFrame interface definition
  557. //
  558. //----------------------------------------------------------------------------
  559.  
  560. cpp_quote("#ifndef _LPHLINKFRAME_DEFINED")
  561. cpp_quote("#define _LPHLINKFRAME_DEFINED")
  562. cpp_quote("EXTERN_C const GUID SID_SHlinkFrame;")
  563.  
  564. [
  565.         object,
  566.         uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b),
  567.         pointer_default(unique)
  568. ]
  569.  
  570.  
  571. interface IHlinkFrame : IUnknown
  572. {
  573.         typedef [unique] IHlinkFrame *LPHLINKFRAME;
  574.  
  575.         HRESULT SetBrowseContext(
  576.                 [in, unique] IHlinkBrowseContext * pihlbc);
  577.  
  578.         HRESULT GetBrowseContext(
  579.                 [out] IHlinkBrowseContext ** ppihlbc);
  580.  
  581.         HRESULT Navigate(
  582.                 [in] DWORD grfHLNF,
  583.                 [in, unique] LPBC pbc,
  584.                 [in, unique] IBindStatusCallback * pibsc,
  585.                 [in, unique] IHlink * pihlNavigate);
  586.  
  587.         HRESULT OnNavigate(
  588.                 [in] DWORD grfHLNF,
  589.                 [in, unique] IMoniker * pimkTarget,
  590.                 [in, unique] LPCWSTR pwzLocation,
  591.                 [in, unique] LPCWSTR pwzFriendlyName,
  592.                 [in] DWORD dwreserved);
  593.  
  594.         HRESULT UpdateHlink(
  595.                 [in] ULONG uHLID,
  596.                 [in, unique] IMoniker * pimkTarget,
  597.                 [in, unique] LPCWSTR pwzLocation,
  598.                 [in, unique] LPCWSTR pwzFriendlyName);
  599. }
  600.  
  601. cpp_quote("#endif")
  602.  
  603.  
  604.  
  605. //+---------------------------------------------------------------------------
  606. //
  607. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  608. //
  609. //  Contents:  IEnumHLITEM interface definition
  610. //
  611. //----------------------------------------------------------------------------
  612.  
  613. cpp_quote("#ifndef _LPENUMHLITEM_DEFINED")
  614. cpp_quote("#define _LPENUMHLITEM_DEFINED")
  615.  
  616. [
  617.         local,
  618.         object,
  619.         uuid(79eac9c6-baf9-11ce-8c82-00aa004ba90b),
  620.         pointer_default(unique)
  621. ]
  622.  
  623.  
  624. interface IEnumHLITEM : IUnknown
  625. {
  626.         typedef [unique] IEnumHLITEM *LPENUMHLITEM;
  627.  
  628.         typedef struct tagHLITEM
  629.         {
  630.                 ULONG uHLID;
  631.                 LPWSTR pwzFriendlyName;
  632.         } HLITEM;
  633.         typedef [unique] HLITEM *LPHLITEM;
  634.  
  635.         //[local]
  636.         HRESULT __stdcall Next(
  637.                 [in] ULONG celt,
  638.                 [out] HLITEM * rgelt,
  639.                 [out] ULONG * pceltFetched);
  640.  
  641. #ifdef NOTUSED
  642.         [call_as(Next)]
  643.         HRESULT __stdcall RemoteNext(
  644.                 [in] ULONG celt,
  645.                 [out, size_is(celt), length_is(*pceltFetched)]
  646.                 HLITEM * rgelt,
  647.                 [out] ULONG *pceltFetched);
  648. #endif
  649.  
  650.         HRESULT Skip(
  651.                 [in] ULONG celt);
  652.  
  653.         HRESULT Reset();
  654.  
  655.         HRESULT Clone(
  656.                 [out] IEnumHLITEM ** ppienumhlitem);
  657. }
  658.  
  659. cpp_quote("#endif")
  660.  
  661.  
  662. //+---------------------------------------------------------------------------
  663. //
  664. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  665. //
  666. //  Contents:   IHlinkBrowseContext interface definition
  667. //
  668. //----------------------------------------------------------------------------
  669.  
  670. cpp_quote("#ifndef _LPHLINKBROWSECONTEXT_DEFINED")
  671. cpp_quote("#define _LPHLINKBROWSECONTEXT_DEFINED")
  672.  
  673. [
  674.         local,
  675.         object,
  676.         uuid(79eac9c7-baf9-11ce-8c82-00aa004ba90b),
  677.         pointer_default(unique)
  678. ]
  679.  
  680.  
  681. interface IHlinkBrowseContext : IUnknown
  682. {
  683.         typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
  684.  
  685.         // Information about the toolbars
  686.         enum
  687.         {
  688.             HLTB_DOCKEDLEFT     = 0,
  689.             HLTB_DOCKEDTOP      = 1,
  690.             HLTB_DOCKEDRIGHT    = 2,
  691.             HLTB_DOCKEDBOTTOM   = 3,
  692.             HLTB_FLOATING       = 4,
  693.         };
  694.  
  695.         typedef struct _tagHLTBINFO
  696.         {
  697.             ULONG   uDockType;
  698.             RECT    rcTbPos;
  699.         } HLTBINFO;
  700.  
  701.         // information about the browse window
  702.         enum
  703.         {
  704.             HLBWIF_HASFRAMEWNDINFO      = 0x00000001,
  705.             HLBWIF_HASDOCWNDINFO        = 0x00000002,
  706.             HLBWIF_FRAMEWNDMAXIMIZED    = 0x00000004,
  707.             HLBWIF_DOCWNDMAXIMIZED      = 0x00000008,
  708.             HLBWIF_HASWEBTOOLBARINFO    = 0x00000010,
  709.             HLBWIF_WEBTOOLBARHIDDEN     = 0x00000020
  710.         };
  711.  
  712.         typedef struct _tagHLBWINFO
  713.         {
  714.             ULONG       cbSize;
  715.             DWORD       grfHLBWIF;
  716.             RECT        rcFramePos;
  717.             RECT        rcDocPos;
  718.             HLTBINFO    hltbinfo;
  719.         } HLBWINFO;
  720.         typedef [unique] HLBWINFO *LPHLBWINFO;
  721.  
  722.         enum
  723.         {
  724.             HLID_INVALID        = 0x0,
  725.             HLID_PREVIOUS       = 0xFFFFFFFF,
  726.             HLID_NEXT           = 0xFFFFFFFE,
  727.             HLID_CURRENT        = 0xFFFFFFFD,
  728.             HLID_STACKBOTTOM    = 0xFFFFFFFC,
  729.             HLID_STACKTOP       = 0xFFFFFFFB,
  730.          };
  731.  
  732.         enum
  733.         {
  734.             HLQF_ISVALID    = 0x00000001,
  735.             HLQF_ISCURRENT  = 0x00000002
  736.         };
  737.  
  738.         HRESULT Register(
  739.                 [in] DWORD reserved,
  740.                 [in, unique] IUnknown * piunk,
  741.                 [in, unique] IMoniker * pimk,
  742.                 [out] DWORD * pdwRegister);
  743.  
  744.         HRESULT GetObject(
  745.                 [in, unique] IMoniker * pimk,
  746.                 [in] BOOL fBindIfRootRegistered,
  747.                 [out] IUnknown ** ppiunk);
  748.  
  749.         HRESULT Revoke(
  750.                 [in] DWORD dwRegister);
  751.  
  752.         HRESULT SetBrowseWindowInfo(
  753.                 [in, unique] HLBWINFO * phlbwi);
  754.  
  755.         HRESULT GetBrowseWindowInfo(
  756.                 [out] HLBWINFO * phlbwi);
  757.  
  758.         HRESULT SetInitialHlink(
  759.                 [in, unique] IMoniker * pimkTarget,
  760.                 [in, unique] LPCWSTR pwzLocation,
  761.                 [in, unique] LPCWSTR pwzFriendlyName);
  762.  
  763.         HRESULT OnNavigateHlink(
  764.                 [in] DWORD grfHLNF,
  765.                 [in, unique] IMoniker * pimkTarget,
  766.                 [in, unique] LPCWSTR pwzLocation,
  767.                 [in, unique] LPCWSTR pwzFriendlyName,
  768.                 [out] ULONG * puHLID);
  769.  
  770.         HRESULT UpdateHlink(
  771.                 [in] ULONG uHLID,
  772.                 [in, unique] IMoniker * pimkTarget,
  773.                 [in, unique] LPCWSTR pwzLocation,
  774.                 [in, unique] LPCWSTR pwzFriendlyName);
  775.  
  776.         HRESULT EnumNavigationStack(
  777.                 [in] DWORD dwReserved,
  778.                 [in] DWORD grfHLFNAMEF,
  779.                 [out] IEnumHLITEM ** ppienumhlitem);
  780.  
  781.         HRESULT QueryHlink(
  782.                 [in] DWORD grfHLQF,
  783.                 [in] ULONG uHLID);
  784.  
  785.         HRESULT GetHlink(
  786.                 [in] ULONG uHLID,
  787.                 [out] IHlink ** ppihl);
  788.  
  789.         HRESULT SetCurrentHlink(
  790.                 [in] ULONG uHLID);
  791.  
  792.         HRESULT Clone(
  793.                 [in, unique] IUnknown * piunkOuter,
  794.                 [in] REFIID riid,
  795.                 [out, iid_is(riid)] IUnknown ** ppiunkObj);
  796.  
  797.         HRESULT Close(
  798.                 [in] DWORD reserved);
  799. }
  800.  
  801. cpp_quote("#endif")
  802.  
  803.  
  804. //+---------------------------------------------------------------------------
  805. //
  806. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  807. //
  808. //  Contents:  IExtensionServices interface definition
  809. //
  810. //----------------------------------------------------------------------------
  811.  
  812. cpp_quote("#ifndef _LPEXTENSIONSERVICES_DEFINED")
  813. cpp_quote("#define _LPEXTENSIONSERVICES_DEFINED")
  814.  
  815. [
  816.         local,
  817.         object,
  818.         uuid(79eac9cb-baf9-11ce-8c82-00aa004ba90b),
  819.         pointer_default(unique)
  820. ]
  821.  
  822.  
  823. interface IExtensionServices : IUnknown
  824. {
  825.         typedef [unique] IExtensionServices *LPEXTENSIONSERVICES;
  826.  
  827.         HRESULT SetAdditionalHeaders(
  828.                 [in] LPCWSTR pwzAdditionalHeaders);
  829.  
  830.         HRESULT SetAuthenticateData(
  831.                 [in] HWND phwnd,
  832.                 [in] LPCWSTR pwzUsername,
  833.                 [in] LPCWSTR pwzPassword);
  834. }
  835.  
  836. cpp_quote("#endif")
  837.  
  838.  
  839. cpp_quote("                                                                              ")
  840. cpp_quote("#endif // !HLINK_H                                                            ")
  841.  
  842.