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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 interface IHlinkFrame
;
24 interface IHlinkBrowseContext
;
26 cpp_quote
("HRESULT WINAPI HlinkCreateFromMoniker(IMoniker*, LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IUnknown*, REFIID, void**);")
27 cpp_quote
("HRESULT WINAPI HlinkCreateFromString(LPCWSTR, LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IUnknown*, REFIID, void**);")
28 cpp_quote
("HRESULT WINAPI HlinkCreateFromData(IDataObject*, IHlinkSite*, DWORD dwSiteData, IUnknown*, REFIID, void**);")
29 cpp_quote
("HRESULT WINAPI HlinkQueryCreateFromData(IDataObject*);")
30 cpp_quote
("HRESULT WINAPI HlinkClone(IHlink*, REFIID, IHlinkSite*, DWORD, void **);")
31 cpp_quote
("HRESULT WINAPI HlinkCreateBrowseContext(IUnknown*, REFIID, void **);")
32 cpp_quote
("HRESULT WINAPI HlinkNavigateToStringReference(LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IHlinkFrame*, DWORD, LPBC, IBindStatusCallback*, IHlinkBrowseContext*);")
33 cpp_quote
("HRESULT WINAPI HlinkNavigate(IHlink*, IHlinkFrame*, DWORD, LPBC, IBindStatusCallback*, IHlinkBrowseContext*);")
34 cpp_quote
("HRESULT WINAPI HlinkOnNavigate(IHlinkFrame*, IHlinkBrowseContext*, DWORD, IMoniker*, LPCWSTR, LPCWSTR, ULONG*);")
36 /*****************************************************************************
41 uuid(79EAC9C3
-BAF9
-11CE
-8C82
-00AA004BA90B
),
42 pointer_default(unique)
44 interface IHlink
: IUnknown
46 typedef [unique] IHlink
*LPHLINK
;
49 HLNF_INTERNALJUMP
= 0x00000001,
50 HLNF_OPENINNEWWINDOW
= 0x00000002,
51 HLNF_NAVIGATINGBACK
= 0x00000004,
52 HLNF_NAVIGATINGFORWARD
= 0x00000008,
53 HLNF_NAVIGATINGTOSTACKITEM
= 0x00000010,
54 HLNF_CREATENOHISTORY
= 0x00000020
58 HLINKGETREF_DEFAULT
= 0,
59 HLINKGETREF_ABSOLUTE
= 1,
60 HLINKGETREF_RELATIVE
= 2,
64 HLFNAMEF_DEFAULT
= 0x00000000,
65 HLFNAMEF_TRYCACHE
= 0x00000001,
66 HLFNAMEF_TRYPRETTYTARGET
= 0x00000002,
67 HLFNAMEF_TRYFULLTARGET
= 0x00000004,
68 HLFNAMEF_TRYWIN95SHORTCUT
= 0x00000008
72 HLINKMISC_RELATIVE
= 0x00000001,
76 HLINKSETF_TARGET
= 0x00000001,
77 HLINKSETF_LOCATION
= 0x00000002
81 [in, unique] IHlinkSite
*pihlSite
,
82 [in] DWORD dwSiteData
);
85 [out] IHlinkSite
**ppihlSite
,
86 [out] DWORD
*pdwSiteData
);
88 HRESULT SetMonikerReference
(
90 [in, unique] IMoniker
*pimkTarget
,
91 [in, unique] LPCWSTR pwzLocation
);
93 HRESULT GetMonikerReference
(
94 [in] DWORD dwWhichRef
,
95 [out] IMoniker
**ppimkTarget
,
96 [out] LPWSTR
*ppwzLocation
);
98 HRESULT SetStringReference
(
100 [in, unique] LPCWSTR pwzTarget
,
101 [in, unique] LPCWSTR pwzLocation
);
103 HRESULT GetStringReference
(
104 [in] DWORD dwWhichRef
,
105 [out] LPWSTR
*ppwzTarget
,
106 [out] LPWSTR
*ppwzLocation
);
108 HRESULT SetFriendlyName
(
109 [in, unique] LPCWSTR pwzFriendlyName
);
111 HRESULT GetFriendlyName
(
112 [in] DWORD grfHLFNAMEF
,
113 [out] LPWSTR
*ppwzFriendlyName
);
115 HRESULT SetTargetFrameName
(
116 [in, unique] LPCWSTR pwzTargetFrameName
);
118 HRESULT GetTargetFrameName
(
119 [out] LPWSTR
*ppwzTargetFrameName
);
121 HRESULT GetMiscStatus
(
122 [out] DWORD
*pdwStatus
);
126 [in, unique] LPBC pibc
,
127 [in, unique] IBindStatusCallback
*pibsc
,
128 [in, unique] IHlinkBrowseContext
*pihlbc
);
130 HRESULT SetAdditionalParams
(
131 [in, unique] LPCWSTR pwzAdditionalParams
);
133 HRESULT GetAdditionalParams
(
134 [out] LPWSTR
*ppwzAdditionalParams
);
137 /*****************************************************************************
142 uuid(79EAC9C2
-BAF9
-11CE
-8C82
-00AA004BA90B
),
143 pointer_default(unique)
145 interface IHlinkSite
: IUnknown
147 typedef [unique] IHlinkSite
*LPHLINKSITE
;
150 HLINKWHICHMK_CONTAINER
= 1,
151 HLINKWHICHMK_BASE
= 2,
154 HRESULT QueryService
(
155 [in] DWORD dwSiteData
,
156 [in] REFGUID guidService
,
158 [out, iid_is(riid
)] IUnknown
**ppiunk
);
161 [in] DWORD dwSiteData
,
164 [out] IMoniker
**ppimk
);
166 HRESULT ReadyToNavigate
(
167 [in] DWORD dwSiteData
,
168 [in] DWORD dwReserved
);
170 HRESULT OnNavigationComplete
(
171 [in] DWORD dwSiteData
,
172 [in] DWORD dwreserved
,
173 [in] HRESULT hrError
,
174 [in, unique] LPCWSTR pwzError
);
177 /*****************************************************************************
178 * IEnumHLITEM interface
183 uuid(79EAC9C6
-BAF9
-11CE
-8C82
-00AA004BA90B
),
184 pointer_default(unique)
186 interface IEnumHLITEM
: IUnknown
188 typedef [unique] IEnumHLITEM
*LPENUMHLITEM
;
190 typedef struct tagHLITEM
{
192 LPWSTR pwzFriendlyName
;
194 typedef [unique] HLITEM
*LPHLITEM
;
199 [out] ULONG
*pceltFetched
);
207 [out] IEnumHLITEM
**ppienumhlitem
);
210 /*****************************************************************************
211 * IHlinkBrowseContext interface
216 uuid(79EAC9C7
-BAF9
-11CE
-8C82
-00AA004BA90B
),
217 pointer_default(unique)
219 interface IHlinkBrowseContext
: IUnknown
221 typedef [unique] IHlinkBrowseContext
*LPHLINKBROWSECONTEXT
;
226 HLTB_DOCKEDRIGHT
= 2,
227 HLTB_DOCKEDBOTTOM
= 3,
231 typedef struct _tagHLTBINFO
{
237 HLBWIF_HASFRAMEWNDINFO
= 0x00000001,
238 HLBWIF_HASDOCWNDINFO
= 0x00000002,
239 HLBWIF_FRAMEWNDMAXIMIZED
= 0x00000004,
240 HLBWIF_DOCWNDMAXIMIZED
= 0x00000008,
241 HLBWIF_HASWEBTOOLBARINFO
= 0x00000010,
242 HLBWIF_WEBTOOLBARHIDDEN
= 0x00000020
245 typedef struct _tagHLBWINFO
{
253 typedef [unique] HLBWINFO
*LPHLBWINFO
;
256 HLID_INVALID
= 0x00000000,
257 HLID_PREVIOUS
= 0xFFFFFFFF,
258 HLID_NEXT
= 0xFFFFFFFE,
259 HLID_CURRENT
= 0xFFFFFFFD,
260 HLID_STACKBOTTOM
= 0xFFFFFFFC,
261 HLID_STACKTOP
= 0xFFFFFFFB
265 HLQF_ISVALID
= 0x00000001,
266 HLQF_ISCURRENT
= 0x00000002
271 [in, unique] IUnknown
*piunk
,
272 [in, unique] IMoniker
*pimk
,
273 [out] DWORD
*pdwRegister
);
276 [in, unique] IMoniker
*pimk
,
277 [in] BOOL fBindIfRootRegistered
,
278 [out] IUnknown
**ppiunk
);
281 [in] DWORD dwRegister
);
283 HRESULT SetBrowseWindowInfo
(
284 [in, unique] HLBWINFO
*phlbwi
);
286 HRESULT GetBrowseWindowInfo
(
287 [out] HLBWINFO
*phlbwi
);
289 HRESULT SetInitialHlink
(
290 [in, unique] IMoniker
* pimkTarget
,
291 [in, unique] LPCWSTR pwzLocation
,
292 [in, unique] LPCWSTR pwzFriendlyName
);
294 HRESULT OnNavigateHlink
(
296 [in, unique] IMoniker
*pimkTarget
,
297 [in, unique] LPCWSTR pwzLocation
,
298 [in, unique] LPCWSTR pwzFriendlyName
,
299 [out] ULONG
*puHLID
);
303 [in, unique] IMoniker
*pimkTarget
,
304 [in, unique] LPCWSTR pwzLocation
,
305 [in, unique] LPCWSTR pwzFriendlyName
);
307 HRESULT EnumNavigationStack
(
308 [in] DWORD dwReserved
,
309 [in] DWORD grfHLFNAMEF
,
310 [out] IEnumHLITEM
**ppienumhlitem
);
318 [out] IHlink
**ppihl
);
320 HRESULT SetCurrentHlink
(
324 [in, unique] IUnknown
*piunkOuter
,
326 [out, iid_is(riid
)] IUnknown
**ppiunkObj
);
329 [in] DWORD reserved
);
333 /*****************************************************************************
334 * IHlinkTarget interface
338 uuid(79EAC9C4
-BAF9
-11CE
-8C82
-00AA004BA90B
),
339 pointer_default(unique)
341 interface IHlinkTarget
: IUnknown
343 typedef [unique] IHlinkTarget
*LPHLINKTARGET
;
345 HRESULT SetBrowseContext
(
346 [in, unique] IHlinkBrowseContext
*pihlbc
);
348 HRESULT GetBrowseContext
(
349 [out] IHlinkBrowseContext
**ppihlbc
);
353 [in, unique] LPCWSTR pwzJumpLocation
);
356 [in,unique] LPCWSTR pwzLocation
,
358 [out] IMoniker
**ppimkLocation
);
360 HRESULT GetFriendlyName
(
361 [in,unique] LPCWSTR pwzLocation
,
362 [out] LPWSTR
*ppwzFriendlyName
);
365 /*****************************************************************************
366 * IHlinkFrame interface
370 uuid(79eac9c5
-baf9
-11ce
-8c82
-00aa004ba90b
),
371 pointer_default(unique)
374 interface IHlinkFrame
: IUnknown
376 typedef IHlinkFrame
*LPHLINKFRAME
;
378 HRESULT SetBrowseContext
(
379 [in, unique] IHlinkBrowseContext
* pihlbc
);
380 HRESULT GetBrowseContext
(
381 [out] IHlinkBrowseContext
** ppihlbc
);
384 [in, unique] LPBC pbc
,
385 [in, unique] IBindStatusCallback
*pibsc
,
386 [in, unique] IHlink
*pihlNavigate
);
389 [in, unique] IMoniker
*pimkTarget
,
390 [in, unique] LPCWSTR pwzLocation
,
391 [in, unique] LPCWSTR pwzFriendlyName
,
392 [in] DWORD dwreserved
);
395 [in, unique] IMoniker
*pimkTarget
,
396 [in, unique] LPCWSTR pwzLocation
,
397 [in, unique] LPCWSTR pwzFriendlyName
);