HLink.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:39k
源码类别:

模拟服务器

开发平台:

C/C++

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