//+--------------------------------------------------------------------------- // // Copyright 1995 - 1996 Microsoft Corporation. All Rights Reserved. // // Contents: OLE Hyperlinking interfaces // //---------------------------------------------------------------------------- cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// HLInk.h") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// (C) Copyright 1995-1996 Microsoft Corporation. All Rights Reserved.") cpp_quote("//") cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF") cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO") cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A") cpp_quote("// PARTICULAR PURPOSE.") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("") cpp_quote("#pragma comment(lib,\"uuid.lib\")") cpp_quote("") cpp_quote("//--------------------------------------------------------------------------") cpp_quote("// OLE Hyperlinking Interfaces.") cpp_quote("") cpp_quote("#ifndef HLINK_H") cpp_quote("#define HLINK_H") import "urlmon.idl"; interface IHlinkSite; interface IHlink; interface IHlinkTarget; interface IHlinkFrame; interface IEnumHLITEM; interface IHlinkBrowseContext; cpp_quote("// We temporarily support the old 'source' names") cpp_quote("#define SID_SHlinkFrame IID_IHlinkFrame") cpp_quote("#define IID_IHlinkSource IID_IHlinkTarget") cpp_quote("#define IHlinkSource IHlinkTarget") cpp_quote("#define IHlinkSourceVtbl IHlinkTargetVtbl") cpp_quote("#define LPHLINKSOURCE LPHLINKTARGET") cpp_quote("#define GetBoundSource GetBoundTarget") cpp_quote("") cpp_quote("/****************************************************************************/") cpp_quote("/**** Error codes ****/") cpp_quote("/****************************************************************************/") cpp_quote("#ifndef _HLINK_ERRORS_DEFINED") cpp_quote("#define _HLINK_ERRORS_DEFINED") cpp_quote("#define HLINK_E_FIRST (OLE_E_LAST+1)") cpp_quote("#define HLINK_S_FIRST (OLE_S_LAST+1)") cpp_quote("#define HLINK_S_DONTHIDE (HLINK_S_FIRST)") cpp_quote("#endif //_HLINK_ERRORS_DEFINED") cpp_quote("") cpp_quote("") cpp_quote("/****************************************************************************/") cpp_quote("/**** Hyperlink APIs ****/") cpp_quote("/****************************************************************************/") cpp_quote("") // Hyperlink Clipboard Format: On MAC it is 'HLNK', and on windows it is the // the value returned from RegisterClipboardFormat(CFSTR_HYPERLINK). cpp_quote("#if MAC || defined(_MAC)") cpp_quote("#define cfHyperlink 'HLNK'") cpp_quote("#else") cpp_quote("#define CFSTR_HYPERLINK (TEXT(\"Hyperlink\"))") cpp_quote("#endif") cpp_quote("") cpp_quote("") cpp_quote("STDAPI HlinkCreateFromMoniker(") cpp_quote(" IMoniker * pimkTrgt,") cpp_quote(" LPCWSTR pwzLocation,") cpp_quote(" LPCWSTR pwzFriendlyName,") cpp_quote(" IHlinkSite * pihlsite,") cpp_quote(" DWORD dwSiteData,") cpp_quote(" IUnknown * piunkOuter,") cpp_quote(" REFIID riid,") cpp_quote(" void ** ppvObj);") cpp_quote("") cpp_quote("STDAPI HlinkCreateFromString(") cpp_quote(" LPCWSTR pwzTarget,") cpp_quote(" LPCWSTR pwzLocation,") cpp_quote(" LPCWSTR pwzFriendlyName,") cpp_quote(" IHlinkSite * pihlsite,") cpp_quote(" DWORD dwSiteData,") cpp_quote(" IUnknown * piunkOuter,") cpp_quote(" REFIID riid,") cpp_quote(" void ** ppvObj);") cpp_quote("") cpp_quote("STDAPI HlinkCreateFromData(") cpp_quote(" IDataObject *piDataObj,") cpp_quote(" IHlinkSite * pihlsite,") cpp_quote(" DWORD dwSiteData,") cpp_quote(" IUnknown * piunkOuter,") cpp_quote(" REFIID riid,") cpp_quote(" void ** ppvObj);") cpp_quote("") // Returns S_OK if a hyperlink can be created from piDataObj, S_FALSE if not. cpp_quote("STDAPI HlinkQueryCreateFromData(IDataObject *piDataObj);") cpp_quote("") cpp_quote("STDAPI HlinkClone(") cpp_quote(" IHlink * pihl,") cpp_quote(" REFIID riid,") cpp_quote(" IHlinkSite * pihlsiteForClone,") cpp_quote(" DWORD dwSiteData,") cpp_quote(" void ** ppvObj);") cpp_quote("") cpp_quote("STDAPI HlinkCreateBrowseContext(") cpp_quote(" IUnknown * piunkOuter,") cpp_quote(" REFIID riid,") cpp_quote(" void ** ppvObj);") cpp_quote("") cpp_quote("STDAPI HlinkNavigateToStringReference(") cpp_quote(" LPCWSTR pwzTarget,") cpp_quote(" LPCWSTR pwzLocation,") cpp_quote(" IHlinkSite * pihlsite,") cpp_quote(" DWORD dwSiteData,") cpp_quote(" IHlinkFrame *pihlframe,") cpp_quote(" DWORD grfHLNF,") cpp_quote(" LPBC pibc,") cpp_quote(" IBindStatusCallback * pibsc,") cpp_quote(" IHlinkBrowseContext *pihlbc);") cpp_quote("") cpp_quote("STDAPI HlinkNavigate(") cpp_quote(" IHlink * pihl,") cpp_quote(" IHlinkFrame * pihlframe,") cpp_quote(" DWORD grfHLNF,") cpp_quote(" LPBC pbc,") cpp_quote(" IBindStatusCallback * pibsc,") cpp_quote(" IHlinkBrowseContext *pihlbc);") cpp_quote("") cpp_quote("STDAPI HlinkOnNavigate(") cpp_quote(" IHlinkFrame * pihlframe,") cpp_quote(" IHlinkBrowseContext * pihlbc,") cpp_quote(" DWORD grfHLNF,") cpp_quote(" IMoniker * pimkTarget,") cpp_quote(" LPCWSTR pwzLocation,") cpp_quote(" LPCWSTR pwzFriendlyName,") cpp_quote(" ULONG * puHLID);") cpp_quote("") cpp_quote("STDAPI HlinkUpdateStackItem(") cpp_quote(" IHlinkFrame * pihlframe,") cpp_quote(" IHlinkBrowseContext * pihlbc,") cpp_quote(" ULONG uHLID,") cpp_quote(" IMoniker * pimkTrgt,") cpp_quote(" LPCWSTR pwzLocation,") cpp_quote(" LPCWSTR pwzFriendlyName);") cpp_quote("") cpp_quote("STDAPI HlinkResolveMonikerForData(") cpp_quote(" LPMONIKER pimkReference,") cpp_quote(" DWORD reserved,") cpp_quote(" LPBC pibc,") cpp_quote(" ULONG cFmtetc,") cpp_quote(" FORMATETC * rgFmtetc,") cpp_quote(" IBindStatusCallback * pibsc,") cpp_quote(" LPMONIKER pimkBase);") cpp_quote("") cpp_quote("STDAPI HlinkResolveStringForData(") cpp_quote(" LPCWSTR pwzReference,") cpp_quote(" DWORD reserved,") cpp_quote(" LPBC pibc,") cpp_quote(" ULONG cFmtetc,") cpp_quote(" FORMATETC * rgFmtetc,") cpp_quote(" IBindStatusCallback * pibsc,") cpp_quote(" LPMONIKER pimkBase);") cpp_quote("") cpp_quote("STDAPI HlinkParseDisplayName(") cpp_quote(" LPBC pibc,") cpp_quote(" LPCWSTR pwzDisplayName,") cpp_quote(" BOOL fNoForceAbs,") cpp_quote(" ULONG * pcchEaten,") cpp_quote(" IMoniker ** ppimk);") cpp_quote("") cpp_quote("STDAPI HlinkCreateExtensionServices(") cpp_quote(" LPCWSTR pwzAdditionalHeaders,") cpp_quote(" HWND phwnd,") cpp_quote(" LPCWSTR pszUsername,") cpp_quote(" LPCWSTR pszPassword,") cpp_quote(" IUnknown * piunkOuter,") cpp_quote(" REFIID riid,") cpp_quote(" void ** ppvObj);") cpp_quote("") cpp_quote("STDAPI OleSaveToStreamEx(") cpp_quote(" IUnknown * piunk,") cpp_quote(" IStream * pistm,") cpp_quote(" BOOL fClearDirty);") cpp_quote("") // hlink special reference ids used in HlinkSetSpecialReference and HlinkGetSpecialReference typedef enum _HLSR { HLSR_HOME = 0, HLSR_SEARCHPAGE = 1, HLSR_HISTORYFOLDER = 2, } HLSR; cpp_quote("") cpp_quote("STDAPI HlinkSetSpecialReference(") cpp_quote(" ULONG uReference,") cpp_quote(" LPCWSTR pwzReference);") cpp_quote("") cpp_quote("STDAPI HlinkGetSpecialReference(") cpp_quote(" ULONG uReference,") cpp_quote(" LPWSTR *ppwzReference);") cpp_quote("") typedef enum _HLSHORTCUTF { HLSHORTCUTF_DEFAULT = 0x00000000, HLSHORTCUTF_DONTACTUALLYCREATE = 0x00000001 } HLSHORTCUTF; cpp_quote("") cpp_quote("STDAPI HlinkCreateShortcut(") cpp_quote(" DWORD grfHLSHORTCUTF,") cpp_quote(" IHlink *pihl,") cpp_quote(" LPCWSTR pwzDir,") cpp_quote(" LPCWSTR pwzFileName,") cpp_quote(" LPWSTR *ppwzShortcutFile,") cpp_quote(" DWORD dwReserved);") cpp_quote("") cpp_quote("STDAPI HlinkCreateShortcutFromMoniker(") cpp_quote(" DWORD grfHLSHORTCUTF,") cpp_quote(" IMoniker *pimkTarget,") cpp_quote(" LPCWSTR pwzLocation,") cpp_quote(" LPCWSTR pwzDir,") cpp_quote(" LPCWSTR pwzFileName,") cpp_quote(" LPWSTR *ppwzShortcutFile,") cpp_quote(" DWORD dwReserved);") cpp_quote("") cpp_quote("STDAPI HlinkCreateShortcutFromString(") cpp_quote(" DWORD grfHLSHORTCUTF,") cpp_quote(" LPCWSTR pwzTarget,") cpp_quote(" LPCWSTR pwzLocation,") cpp_quote(" LPCWSTR pwzDir,") cpp_quote(" LPCWSTR pwzFileName,") cpp_quote(" LPWSTR *ppwzShortcutFile,") cpp_quote(" DWORD dwReserved);") cpp_quote("") cpp_quote("STDAPI HlinkResolveShortcut(") cpp_quote(" LPCWSTR pwzShortcutFileName,") cpp_quote(" IHlinkSite * pihlsite,") cpp_quote(" DWORD dwSiteData,") cpp_quote(" IUnknown * piunkOuter,") cpp_quote(" REFIID riid,") cpp_quote(" void ** ppvObj);") cpp_quote("") cpp_quote("STDAPI HlinkResolveShortcutToMoniker(") cpp_quote(" LPCWSTR pwzShortcutFileName,") cpp_quote(" IMoniker **ppimkTarget,") cpp_quote(" LPWSTR *ppwzLocation);") cpp_quote("") cpp_quote("STDAPI HlinkResolveShortcutToString(") cpp_quote(" LPCWSTR pwzShortcutFileName,") cpp_quote(" LPWSTR *ppwzTarget,") cpp_quote(" LPWSTR *ppwzLocation);") cpp_quote("") // Returns S_OK if pwzFileName is a hlink shortcut file. // Currently, this succeeds for Internet Shortcut (.url) files. cpp_quote("") cpp_quote(" STDAPI HlinkIsShortcut(LPCWSTR pwzFileName);") cpp_quote("") // Find pwzName within pwzParams and return the associated value. // The syntax of pwzParams is < ID1 = "value1" > < ID2 = "value2" > with // all whitespace outside the quoted strings being ignored. // If the pwzName is found, allocate and fill in *ppwzValue with the // associated value and return S_OK. // If pwzName is not found, return S_FALSE. cpp_quote("") cpp_quote("STDAPI HlinkGetValueFromParams(") cpp_quote(" LPCWSTR pwzParams,") cpp_quote(" LPCWSTR pwzName,") cpp_quote(" LPWSTR *ppwzValue);") cpp_quote("") cpp_quote("") typedef enum _HLTRANSLATEF { HLTRANSLATEF_DEFAULT = 0x00000000, HLTRANSLATEF_DONTAPPLYDEFAULTPREFIX = 0x00000001 } HLTRANSLATEF; cpp_quote("") cpp_quote("STDAPI HlinkTranslateURL(") cpp_quote(" LPCWSTR pwzURL,") cpp_quote(" DWORD grfFlags,") cpp_quote(" LPWSTR *ppwzTranslatedURL);") cpp_quote("") cpp_quote("") cpp_quote("") cpp_quote("/****************************************************************************/") cpp_quote("/**** Hyperlink interface definitions ****/") cpp_quote("/****************************************************************************/") cpp_quote("") /****************************************************************************/ /* THIS MUST BE THE FIRST INTERFACE DEFINITION IN THIS IDL. DO NOT MOVE IT */ /****************************************************************************/ //---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995 - 1996. // // Contents: IHlink interface definition // //---------------------------------------------------------------------------- cpp_quote("#ifndef _LPHLINK_DEFINED") cpp_quote("#define _LPHLINK_DEFINED") [ object, uuid(79eac9c3-baf9-11ce-8c82-00aa004ba90b), pointer_default(unique) ] interface IHlink: IUnknown { typedef [unique] IHlink *LPHLINK; // Navigation flags typedef enum { HLNF_INTERNALJUMP = 0x00000001, HLNF_OPENINNEWWINDOW = 0x00000002, HLNF_NAVIGATINGBACK = 0x00000004, HLNF_NAVIGATINGFORWARD = 0x00000008, HLNF_NAVIGATINGTOSTACKITEM = 0x00000010, HLNF_CREATENOHISTORY = 0x00000020, HLNF_HIDENONWEBTOOLBARS = 0x00000040, HLNF_DONTMERGEUI = 0x00000080, // if displayed inplace, just show the object do not do UIACTIVATE. // if diaplayed outside, then this flag is not applicable } HLNF; // GetXXXReference values indicating reference to be retrieved typedef enum { HLINKGETREF_DEFAULT = 0, HLINKGETREF_ABSOLUTE = 1, HLINKGETREF_RELATIVE = 2, } HLINKGETREF; // GetFriendlyName flags typedef enum { HLFNAMEF_DEFAULT = 0x00000000, HLFNAMEF_TRYCACHE = 0x00000001, HLFNAMEF_TRYPRETTYTARGET = 0x00000002, HLFNAMEF_TRYFULLTARGET = 0x00000004, HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008, } HLFNAMEF; // Status flags typedef enum { HLINKMISC_RELATIVE = 0x00000001, } HLINKMISC; // SetXXXReference flags, indicating which part of the reference // need to be updated typedef enum { HLINKSETF_TARGET = 1, HLINKSETF_LOCATION = 2, } HLINKSETF; HRESULT SetHlinkSite( [in, unique] IHlinkSite * pihlSite, [in] DWORD dwSiteData); HRESULT GetHlinkSite( [out] IHlinkSite ** ppihlSite, [out] DWORD * pdwSiteData); HRESULT SetMonikerReference( [in] DWORD grfHLSETF, [in, unique] IMoniker * pimkTarget, [in, unique] LPCWSTR pwzLocation); HRESULT GetMonikerReference( [in] DWORD dwWhichRef, [out] IMoniker ** ppimkTarget, [out] LPWSTR * ppwzLocation); HRESULT SetStringReference( [in] DWORD grfHLSETF, [in, unique] LPCWSTR pwzTarget, [in, unique] LPCWSTR pwzLocation); HRESULT GetStringReference( [in] DWORD dwWhichRef, [out] LPWSTR * ppwzTarget, [out] LPWSTR * ppwzLocation); HRESULT SetFriendlyName( [in, unique] LPCWSTR pwzFriendlyName); HRESULT GetFriendlyName( [in] DWORD grfHLFNAMEF, [out] LPWSTR * ppwzFriendlyName); HRESULT SetTargetFrameName( [in, unique] LPCWSTR pwzTargetFrameName); HRESULT GetTargetFrameName( [out] LPWSTR *ppwzTargetFrameName); HRESULT GetMiscStatus( [out] DWORD *pdwStatus); HRESULT Navigate( [in] DWORD grfHLNF, [in, unique] LPBC pibc, [in, unique] IBindStatusCallback * pibsc, [in, unique] IHlinkBrowseContext * pihlbc); HRESULT SetAdditionalParams( [in, unique] LPCWSTR pwzAdditionalParams); HRESULT GetAdditionalParams( [out] LPWSTR *ppwzAdditionalParams); } cpp_quote("#endif") //+--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995 - 1996. // // Contents: IHlinkSite interface definition // //---------------------------------------------------------------------------- cpp_quote("#ifndef _LPHLINKSITE_DEFINED") cpp_quote("#define _LPHLINKSITE_DEFINED") cpp_quote("EXTERN_C const GUID SID_SContainer;") [ object, uuid(79eac9c2-baf9-11ce-8c82-00aa004ba90b), pointer_default(unique) ] interface IHlinkSite: IUnknown { typedef [unique] IHlinkSite *LPHLINKSITE; // values indicating the moniker to be retrieved typedef enum { HLINKWHICHMK_CONTAINER = 1, HLINKWHICHMK_BASE = 2, } HLINKWHICHMK; HRESULT QueryService( [in] DWORD dwSiteData, #ifdef _MAC [in] GUID * guidService, #else [in] REFGUID guidService, #endif // _MAC [in] REFIID riid, [out, iid_is(riid)] IUnknown ** ppiunk); HRESULT GetMoniker( [in] DWORD dwSiteData, [in] DWORD dwAssign, [in] DWORD dwWhich, [out] IMoniker ** ppimk); HRESULT ReadyToNavigate( [in] DWORD dwSiteData, [in] DWORD dwReserved); HRESULT OnNavigationComplete( [in] DWORD dwSiteData, [in] DWORD dwreserved, [in] HRESULT hrError, [in] LPCWSTR pwzError); } cpp_quote("#endif") //+--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995 - 1996. // // Contents: IHlinkTarget interface definition // //---------------------------------------------------------------------------- cpp_quote("#ifndef _LPHLINKTARGET_DEFINED") cpp_quote("#define _LPHLINKTARGET_DEFINED") [ object, uuid(79eac9c4-baf9-11ce-8c82-00aa004ba90b), pointer_default(unique) ] interface IHlinkTarget : IUnknown { typedef [unique] IHlinkTarget *LPHLINKTARGET; HRESULT SetBrowseContext( [in, unique] IHlinkBrowseContext * pihlbc); HRESULT GetBrowseContext( [out] IHlinkBrowseContext ** ppihlbc); HRESULT Navigate( [in] DWORD grfHLNF, [in, unique] LPCWSTR pwzJumpLocation); HRESULT GetMoniker( [in,unique] LPCWSTR pwzLocation, [in] DWORD dwAssign, [out] IMoniker ** ppimkLocation); HRESULT GetFriendlyName( [in,unique] LPCWSTR pwzLocation, [out] LPWSTR * ppwzFriendlyName); } cpp_quote("#endif") //+--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995 - 1996. // // Contents: IHlinkFrame interface definition // //---------------------------------------------------------------------------- cpp_quote("#ifndef _LPHLINKFRAME_DEFINED") cpp_quote("#define _LPHLINKFRAME_DEFINED") [ object, uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b), pointer_default(unique) ] interface IHlinkFrame : IUnknown { typedef [unique] IHlinkFrame *LPHLINKFRAME; HRESULT SetBrowseContext( [in, unique] IHlinkBrowseContext * pihlbc); HRESULT GetBrowseContext( [out] IHlinkBrowseContext ** ppihlbc); HRESULT Navigate( [in] DWORD grfHLNF, [in, unique] LPBC pbc, [in, unique] IBindStatusCallback * pibsc, [in, unique] IHlink * pihlNavigate); HRESULT OnNavigate( [in] DWORD grfHLNF, [in, unique] IMoniker * pimkTarget, [in, unique] LPCWSTR pwzLocation, [in, unique] LPCWSTR pwzFriendlyName, [in] DWORD dwreserved); HRESULT UpdateHlink( [in] ULONG uHLID, [in, unique] IMoniker * pimkTarget, [in, unique] LPCWSTR pwzLocation, [in, unique] LPCWSTR pwzFriendlyName); } cpp_quote("#endif") //+--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995 - 1996. // // Contents: IEnumHLITEM interface definition // //---------------------------------------------------------------------------- cpp_quote("#ifndef _LPENUMHLITEM_DEFINED") cpp_quote("#define _LPENUMHLITEM_DEFINED") [ local, object, uuid(79eac9c6-baf9-11ce-8c82-00aa004ba90b), pointer_default(unique) ] interface IEnumHLITEM : IUnknown { typedef [unique] IEnumHLITEM *LPENUMHLITEM; typedef struct tagHLITEM { ULONG uHLID; LPWSTR pwzFriendlyName; } HLITEM; typedef [unique] HLITEM *LPHLITEM; //[local] HRESULT __stdcall Next( [in] ULONG celt, [out] HLITEM * rgelt, [out] ULONG * pceltFetched); #ifdef NOTUSED [call_as(Next)] HRESULT __stdcall RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] HLITEM * rgelt, [out] ULONG *pceltFetched); #endif HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IEnumHLITEM ** ppienumhlitem); } cpp_quote("#endif") //+--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995 - 1996. // // Contents: IHlinkBrowseContext interface definition // //---------------------------------------------------------------------------- cpp_quote("#ifndef _LPHLINKBROWSECONTEXT_DEFINED") cpp_quote("#define _LPHLINKBROWSECONTEXT_DEFINED") [ local, object, uuid(79eac9c7-baf9-11ce-8c82-00aa004ba90b), pointer_default(unique) ] interface IHlinkBrowseContext : IUnknown { typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT; // Information about the toolbars enum { HLTB_DOCKEDLEFT = 0, HLTB_DOCKEDTOP = 1, HLTB_DOCKEDRIGHT = 2, HLTB_DOCKEDBOTTOM = 3, HLTB_FLOATING = 4, }; typedef struct _tagHLTBINFO { ULONG uDockType; RECT rcTbPos; } HLTBINFO; // information about the browse window enum { HLBWIF_HASFRAMEWNDINFO = 0x00000001, HLBWIF_HASDOCWNDINFO = 0x00000002, HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004, HLBWIF_DOCWNDMAXIMIZED = 0x00000008, HLBWIF_HASWEBTOOLBARINFO = 0x00000010, }; typedef struct _tagHLBWINFO { ULONG cbSize; DWORD grfHLBWIF; RECT rcFramePos; RECT rcDocPos; HLTBINFO hltbinfo; } HLBWINFO; typedef [unique] HLBWINFO *LPHLBWINFO; enum { HLID_INVALID = 0x0, HLID_PREVIOUS = 0xFFFFFFFF, HLID_NEXT = 0xFFFFFFFE, HLID_CURRENT = 0xFFFFFFFD, HLID_STACKBOTTOM = 0xFFFFFFFC, HLID_STACKTOP = 0xFFFFFFFB, }; enum { HLQF_ISVALID = 0x00000001, HLQF_ISCURRENT = 0x00000002 }; HRESULT Register( [in] DWORD reserved, [in, unique] IUnknown * piunk, [in, unique] IMoniker * pimk, [out] DWORD * pdwRegister); HRESULT GetObject( [in, unique] IMoniker * pimk, [in] BOOL fBindIfRootRegistered, [out] IUnknown ** ppiunk); HRESULT Revoke( [in] DWORD dwRegister); HRESULT SetBrowseWindowInfo( [in, unique] HLBWINFO * phlbwi); HRESULT GetBrowseWindowInfo( [out] HLBWINFO * phlbwi); HRESULT SetInitialHlink( [in, unique] IMoniker * pimkTarget, [in, unique] LPCWSTR pwzLocation, [in, unique] LPCWSTR pwzFriendlyName); HRESULT OnNavigateHlink( [in] DWORD grfHLNF, [in, unique] IMoniker * pimkTarget, [in, unique] LPCWSTR pwzLocation, [in, unique] LPCWSTR pwzFriendlyName, [out] ULONG * puHLID); HRESULT UpdateHlink( [in] ULONG uHLID, [in, unique] IMoniker * pimkTarget, [in, unique] LPCWSTR pwzLocation, [in, unique] LPCWSTR pwzFriendlyName); HRESULT EnumNavigationStack( [in] DWORD dwReserved, [in] DWORD grfHLFNAMEF, [out] IEnumHLITEM ** ppienumhlitem); HRESULT QueryHlink( [in] DWORD grfHLQF, [in] ULONG uHLID); HRESULT GetHlink( [in] ULONG uHLID, [out] IHlink ** ppihl); HRESULT SetCurrentHlink( [in] ULONG uHLID); HRESULT Clone( [in, unique] IUnknown * piunkOuter, [in] REFIID riid, [out, iid_is(riid)] IUnknown ** ppiunkObj); HRESULT Close( [in] DWORD reserved); } cpp_quote("#endif") cpp_quote("") cpp_quote("#endif // !HLINK_H")