387 lines
9.9 KiB
Plaintext
387 lines
9.9 KiB
Plaintext
/*
|
|
* Copyright 2005 Jacek Caban
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
import "urlmon.idl";
|
|
|
|
interface IHlinkSite;
|
|
interface IHlinkBrowseContext;
|
|
|
|
/*****************************************************************************
|
|
* IHlink interface
|
|
*/
|
|
[
|
|
object,
|
|
uuid(79EAC9C3-BAF9-11CE-8C82-00AA004BA90B),
|
|
pointer_default(unique)
|
|
]
|
|
interface IHlink: IUnknown
|
|
{
|
|
typedef [unique] IHlink *LPHLINK;
|
|
|
|
typedef enum {
|
|
HLNF_INTERNALJUMP = 0x00000001,
|
|
HLNF_OPENINNEWWINDOW = 0x00000002,
|
|
HLNF_NAVIGATINGBACK = 0x00000004,
|
|
HLNF_NAVIGATINGFORWARD = 0x00000008,
|
|
HLNF_NAVIGATINGTOSTACKITEM = 0x00000010,
|
|
HLNF_CREATENOHISTORY = 0x00000020
|
|
} HLNF;
|
|
|
|
typedef enum {
|
|
HLINKGETREF_DEFAULT = 0,
|
|
HLINKGETREF_ABSOLUTE = 1,
|
|
HLINKGETREF_RELATIVE = 2,
|
|
} HLINKGETREF;
|
|
|
|
typedef enum {
|
|
HLFNAMEF_DEFAULT = 0x00000000,
|
|
HLFNAMEF_TRYCACHE = 0x00000001,
|
|
HLFNAMEF_TRYPRETTYTARGET = 0x00000002,
|
|
HLFNAMEF_TRYFULLTARGET = 0x00000004,
|
|
HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008
|
|
} HLFNAMEF;
|
|
|
|
typedef enum {
|
|
HLINKMISC_RELATIVE = 0x00000001,
|
|
} HLINKMISC;
|
|
|
|
typedef enum {
|
|
HLINKSETF_TARGET = 0x00000001,
|
|
HLINKSETF_LOCATION = 0x00000002
|
|
} 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);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* IHlink interface
|
|
*/
|
|
[
|
|
object,
|
|
uuid(79EAC9C2-BAF9-11CE-8C82-00AA004BA90B),
|
|
pointer_default(unique)
|
|
]
|
|
interface IHlinkSite: IUnknown
|
|
{
|
|
typedef [unique] IHlinkSite *LPHLINKSITE;
|
|
|
|
typedef enum {
|
|
HLINKWHICHMK_CONTAINER = 1,
|
|
HLINKWHICHMK_BASE = 2,
|
|
} HLINKWHICHMK;
|
|
|
|
HRESULT QueryService(
|
|
[in] DWORD dwSiteData,
|
|
[in] REFGUID guidService,
|
|
[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, unique] LPCWSTR pwzError);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* IEnumHLITEM interface
|
|
*/
|
|
[
|
|
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;
|
|
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[out] HLITEM *rgelt,
|
|
[out] ULONG *pceltFetched);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG celt);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Clone(
|
|
[out] IEnumHLITEM **ppienumhlitem);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* IHlinkBrowseContext interface
|
|
*/
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79EAC9C7-BAF9-11CE-8C82-00AA004BA90B),
|
|
pointer_default(unique)
|
|
]
|
|
interface IHlinkBrowseContext : IUnknown
|
|
{
|
|
typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
|
|
|
|
enum {
|
|
HLTB_DOCKEDLEFT = 0,
|
|
HLTB_DOCKEDTOP = 1,
|
|
HLTB_DOCKEDRIGHT = 2,
|
|
HLTB_DOCKEDBOTTOM = 3,
|
|
HLTB_FLOATING = 4
|
|
};
|
|
|
|
typedef struct _tagHLTBINFO {
|
|
ULONG uDockType;
|
|
RECT rcTbPos;
|
|
} HLTBINFO;
|
|
|
|
enum {
|
|
HLBWIF_HASFRAMEWNDINFO = 0x00000001,
|
|
HLBWIF_HASDOCWNDINFO = 0x00000002,
|
|
HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004,
|
|
HLBWIF_DOCWNDMAXIMIZED = 0x00000008,
|
|
HLBWIF_HASWEBTOOLBARINFO = 0x00000010,
|
|
HLBWIF_WEBTOOLBARHIDDEN = 0x00000020
|
|
};
|
|
|
|
typedef struct _tagHLBWINFO {
|
|
ULONG cbSize;
|
|
DWORD grfHLBWIF;
|
|
RECT rcFramePos;
|
|
RECT rcDocPos;
|
|
HLTBINFO hltbinfo;
|
|
} HLBWINFO;
|
|
|
|
typedef [unique] HLBWINFO *LPHLBWINFO;
|
|
|
|
enum {
|
|
HLID_INVALID = 0x00000000,
|
|
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);
|
|
}
|
|
|
|
|
|
/*****************************************************************************
|
|
* IHlinkTarget interface
|
|
*/
|
|
[
|
|
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);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* IHlinkFrame interface
|
|
*/
|
|
[
|
|
object,
|
|
uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IHlinkFrame : IUnknown
|
|
{
|
|
typedef 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);
|
|
}
|