2 * Copyright 2005 Jacek Caban
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 interface IHlinkBrowseContext
;
24 /*****************************************************************************
29 uuid(79EAC9C3
-BAF9
-11CE
-8C82
-00AA004BA90B
),
30 pointer_default(unique)
32 interface IHlink
: IUnknown
34 typedef [unique] IHlink
*LPHLINK
;
37 HLNF_INTERNALJUMP
= 0x00000001,
38 HLNF_OPENINNEWWINDOW
= 0x00000002,
39 HLNF_NAVIGATINGBACK
= 0x00000004,
40 HLNF_NAVIGATINGFORWARD
= 0x00000008,
41 HLNF_NAVIGATINGTOSTACKITEM
= 0x00000010,
42 HLNF_CREATENOHISTORY
= 0x00000020
46 HLINKGETREF_DEFAULT
= 0,
47 HLINKGETREF_ABSOLUTE
= 1,
48 HLINKGETREF_RELATIVE
= 2,
52 HLFNAMEF_DEFAULT
= 0x00000000,
53 HLFNAMEF_TRYCACHE
= 0x00000001,
54 HLFNAMEF_TRYPRETTYTARGET
= 0x00000002,
55 HLFNAMEF_TRYFULLTARGET
= 0x00000004,
56 HLFNAMEF_TRYWIN95SHORTCUT
= 0x00000008
60 HLINKMISC_RELATIVE
= 0x00000001,
64 HLINKSETF_TARGET
= 0x00000001,
65 HLINKSETF_LOCATION
= 0x00000002
69 [in, unique] IHlinkSite
*pihlSite
,
70 [in] DWORD dwSiteData
);
73 [out] IHlinkSite
**ppihlSite
,
74 [out] DWORD
*pdwSiteData
);
76 HRESULT SetMonikerReference
(
78 [in, unique] IMoniker
*pimkTarget
,
79 [in, unique] LPCWSTR pwzLocation
);
81 HRESULT GetMonikerReference
(
82 [in] DWORD dwWhichRef
,
83 [out] IMoniker
**ppimkTarget
,
84 [out] LPWSTR
*ppwzLocation
);
86 HRESULT SetStringReference
(
88 [in, unique] LPCWSTR pwzTarget
,
89 [in, unique] LPCWSTR pwzLocation
);
91 HRESULT GetStringReference
(
92 [in] DWORD dwWhichRef
,
93 [out] LPWSTR
*ppwzTarget
,
94 [out] LPWSTR
*ppwzLocation
);
96 HRESULT SetFriendlyName
(
97 [in, unique] LPCWSTR pwzFriendlyName
);
99 HRESULT GetFriendlyName
(
100 [in] DWORD grfHLFNAMEF
,
101 [out] LPWSTR
*ppwzFriendlyName
);
103 HRESULT SetTargetFrameName
(
104 [in, unique] LPCWSTR pwzTargetFrameName
);
106 HRESULT GetTargetFrameName
(
107 [out] LPWSTR
*ppwzTargetFrameName
);
109 HRESULT GetMiscStatus
(
110 [out] DWORD
*pdwStatus
);
114 [in, unique] LPBC pibc
,
115 [in, unique] IBindStatusCallback
*pibsc
,
116 [in, unique] IHlinkBrowseContext
*pihlbc
);
118 HRESULT SetAdditionalParams
(
119 [in, unique] LPCWSTR pwzAdditionalParams
);
121 HRESULT GetAdditionalParams
(
122 [out] LPWSTR
*ppwzAdditionalParams
);
125 /*****************************************************************************
130 uuid(79EAC9C2
-BAF9
-11CE
-8C82
-00AA004BA90B
),
131 pointer_default(unique)
133 interface IHlinkSite
: IUnknown
135 typedef [unique] IHlinkSite
*LPHLINKSITE
;
138 HLINKWHICHMK_CONTAINER
= 1,
139 HLINKWHICHMK_BASE
= 2,
142 HRESULT QueryService
(
143 [in] DWORD dwSiteData
,
144 [in] REFGUID guidService
,
146 [out, iid_is(riid
)] IUnknown
**ppiunk
);
149 [in] DWORD dwSiteData
,
152 [out] IMoniker
**ppimk
);
154 HRESULT ReadyToNavigate
(
155 [in] DWORD dwSiteData
,
156 [in] DWORD dwReserved
);
158 HRESULT OnNavigationComplete
(
159 [in] DWORD dwSiteData
,
160 [in] DWORD dwreserved
,
161 [in] HRESULT hrError
,
162 [in, unique] LPCWSTR pwzError
);
165 /*****************************************************************************
166 * IEnumHLITEM interface
171 uuid(79EAC9C6
-BAF9
-11CE
-8C82
-00AA004BA90B
),
172 pointer_default(unique)
174 interface IEnumHLITEM
: IUnknown
176 typedef [unique] IEnumHLITEM
*LPENUMHLITEM
;
178 typedef struct tagHLITEM
{
180 LPWSTR pwzFriendlyName
;
182 typedef [unique] HLITEM
*LPHLITEM
;
187 [out] ULONG
*pceltFetched
);
195 [out] IEnumHLITEM
**ppienumhlitem
);
198 /*****************************************************************************
199 * IHlinkBrowseContext interface
204 uuid(79EAC9C7
-BAF9
-11CE
-8C82
-00AA004BA90B
),
205 pointer_default(unique)
207 interface IHlinkBrowseContext
: IUnknown
209 typedef [unique] IHlinkBrowseContext
*LPHLINKBROWSECONTEXT
;
214 HLTB_DOCKEDRIGHT
= 2,
215 HLTB_DOCKEDBOTTOM
= 3,
219 typedef struct _tagHLTBINFO
{
225 HLBWIF_HASFRAMEWNDINFO
= 0x00000001,
226 HLBWIF_HASDOCWNDINFO
= 0x00000002,
227 HLBWIF_FRAMEWNDMAXIMIZED
= 0x00000004,
228 HLBWIF_DOCWNDMAXIMIZED
= 0x00000008,
229 HLBWIF_HASWEBTOOLBARINFO
= 0x00000010,
230 HLBWIF_WEBTOOLBARHIDDEN
= 0x00000020
233 typedef struct _tagHLBWINFO
{
241 typedef [unique] HLBWINFO
*LPHLBWINFO
;
244 HLID_INVALID
= 0x00000000,
245 HLID_PREVIOUS
= 0xFFFFFFFF,
246 HLID_NEXT
= 0xFFFFFFFE,
247 HLID_CURRENT
= 0xFFFFFFFD,
248 HLID_STACKBOTTOM
= 0xFFFFFFFC,
249 HLID_STACKTOP
= 0xFFFFFFFB
253 HLQF_ISVALID
= 0x00000001,
254 HLQF_ISCURRENT
= 0x00000002
259 [in, unique] IUnknown
*piunk
,
260 [in, unique] IMoniker
*pimk
,
261 [out] DWORD
*pdwRegister
);
264 [in, unique] IMoniker
*pimk
,
265 [in] BOOL fBindIfRootRegistered
,
266 [out] IUnknown
**ppiunk
);
269 [in] DWORD dwRegister
);
271 HRESULT SetBrowseWindowInfo
(
272 [in, unique] HLBWINFO
*phlbwi
);
274 HRESULT GetBrowseWindowInfo
(
275 [out] HLBWINFO
*phlbwi
);
277 HRESULT SetInitialHlink
(
278 [in, unique] IMoniker
* pimkTarget
,
279 [in, unique] LPCWSTR pwzLocation
,
280 [in, unique] LPCWSTR pwzFriendlyName
);
282 HRESULT OnNavigateHlink
(
284 [in, unique] IMoniker
*pimkTarget
,
285 [in, unique] LPCWSTR pwzLocation
,
286 [in, unique] LPCWSTR pwzFriendlyName
,
287 [out] ULONG
*puHLID
);
291 [in, unique] IMoniker
*pimkTarget
,
292 [in, unique] LPCWSTR pwzLocation
,
293 [in, unique] LPCWSTR pwzFriendlyName
);
295 HRESULT EnumNavigationStack
(
296 [in] DWORD dwReserved
,
297 [in] DWORD grfHLFNAMEF
,
298 [out] IEnumHLITEM
**ppienumhlitem
);
306 [out] IHlink
**ppihl
);
308 HRESULT SetCurrentHlink
(
312 [in, unique] IUnknown
*piunkOuter
,
314 [out, iid_is(riid
)] IUnknown
**ppiunkObj
);
317 [in] DWORD reserved
);
321 /*****************************************************************************
322 * IHlinkTarget interface
326 uuid(79EAC9C4
-BAF9
-11CE
-8C82
-00AA004BA90B
),
327 pointer_default(unique)
329 interface IHlinkTarget
: IUnknown
331 typedef [unique] IHlinkTarget
*LPHLINKTARGET
;
333 HRESULT SetBrowseContext
(
334 [in, unique] IHlinkBrowseContext
*pihlbc
);
336 HRESULT GetBrowseContext
(
337 [out] IHlinkBrowseContext
**ppihlbc
);
341 [in, unique] LPCWSTR pwzJumpLocation
);
344 [in,unique] LPCWSTR pwzLocation
,
346 [out] IMoniker
**ppimkLocation
);
348 HRESULT GetFriendlyName
(
349 [in,unique] LPCWSTR pwzLocation
,
350 [out] LPWSTR
*ppwzFriendlyName
);