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 HlinkCreateExtensionServices(LPCWSTR, HWND, LPCWSTR, LPCWSTR, IUnknown*, REFIID, void**);")
30 cpp_quote
("HRESULT WINAPI HlinkQueryCreateFromData(IDataObject*);")
31 cpp_quote
("HRESULT WINAPI HlinkClone(IHlink*, REFIID, IHlinkSite*, DWORD, void **);")
32 cpp_quote
("HRESULT WINAPI HlinkCreateBrowseContext(IUnknown*, REFIID, void **);")
33 cpp_quote
("HRESULT WINAPI HlinkNavigateToStringReference(LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IHlinkFrame*, DWORD, LPBC, IBindStatusCallback*, IHlinkBrowseContext*);")
34 cpp_quote
("HRESULT WINAPI HlinkNavigate(IHlink*, IHlinkFrame*, DWORD, LPBC, IBindStatusCallback*, IHlinkBrowseContext*);")
35 cpp_quote
("HRESULT WINAPI HlinkOnNavigate(IHlinkFrame*, IHlinkBrowseContext*, DWORD, IMoniker*, LPCWSTR, LPCWSTR, ULONG*);")
36 cpp_quote
("HRESULT WINAPI HlinkIsShortcut(LPCWSTR);")
37 cpp_quote
("HRESULT WINAPI HlinkTranslateURL(LPCWSTR,DWORD,LPWSTR*);")
39 cpp_quote
("#define SID_SHlinkFrame IID_IHlinkFrame")
41 /*****************************************************************************
46 uuid(79EAC9C3
-BAF9
-11CE
-8C82
-00AA004BA90B
),
47 pointer_default(unique)
49 interface IHlink
: IUnknown
51 typedef [unique] IHlink
*LPHLINK
;
54 HLNF_INTERNALJUMP
= 0x00000001,
55 HLNF_OPENINNEWWINDOW
= 0x00000002,
56 HLNF_NAVIGATINGBACK
= 0x00000004,
57 HLNF_NAVIGATINGFORWARD
= 0x00000008,
58 HLNF_NAVIGATINGTOSTACKITEM
= 0x00000010,
59 HLNF_CREATENOHISTORY
= 0x00000020
63 HLINKGETREF_DEFAULT
= 0,
64 HLINKGETREF_ABSOLUTE
= 1,
65 HLINKGETREF_RELATIVE
= 2,
69 HLFNAMEF_DEFAULT
= 0x00000000,
70 HLFNAMEF_TRYCACHE
= 0x00000001,
71 HLFNAMEF_TRYPRETTYTARGET
= 0x00000002,
72 HLFNAMEF_TRYFULLTARGET
= 0x00000004,
73 HLFNAMEF_TRYWIN95SHORTCUT
= 0x00000008
77 HLINKMISC_RELATIVE
= 0x00000001,
81 HLINKSETF_TARGET
= 0x00000001,
82 HLINKSETF_LOCATION
= 0x00000002
86 [in, unique] IHlinkSite
*pihlSite
,
87 [in] DWORD dwSiteData
);
90 [out] IHlinkSite
**ppihlSite
,
91 [out] DWORD
*pdwSiteData
);
93 HRESULT SetMonikerReference
(
95 [in, unique] IMoniker
*pimkTarget
,
96 [in, unique] LPCWSTR pwzLocation
);
98 HRESULT GetMonikerReference
(
99 [in] DWORD dwWhichRef
,
100 [out] IMoniker
**ppimkTarget
,
101 [out] LPWSTR
*ppwzLocation
);
103 HRESULT SetStringReference
(
104 [in] DWORD grfHLSETF
,
105 [in, unique] LPCWSTR pwzTarget
,
106 [in, unique] LPCWSTR pwzLocation
);
108 HRESULT GetStringReference
(
109 [in] DWORD dwWhichRef
,
110 [out] LPWSTR
*ppwzTarget
,
111 [out] LPWSTR
*ppwzLocation
);
113 HRESULT SetFriendlyName
(
114 [in, unique] LPCWSTR pwzFriendlyName
);
116 HRESULT GetFriendlyName
(
117 [in] DWORD grfHLFNAMEF
,
118 [out] LPWSTR
*ppwzFriendlyName
);
120 HRESULT SetTargetFrameName
(
121 [in, unique] LPCWSTR pwzTargetFrameName
);
123 HRESULT GetTargetFrameName
(
124 [out] LPWSTR
*ppwzTargetFrameName
);
126 HRESULT GetMiscStatus
(
127 [out] DWORD
*pdwStatus
);
131 [in, unique] LPBC pibc
,
132 [in, unique] IBindStatusCallback
*pibsc
,
133 [in, unique] IHlinkBrowseContext
*pihlbc
);
135 HRESULT SetAdditionalParams
(
136 [in, unique] LPCWSTR pwzAdditionalParams
);
138 HRESULT GetAdditionalParams
(
139 [out] LPWSTR
*ppwzAdditionalParams
);
142 /*****************************************************************************
147 uuid(79EAC9C2
-BAF9
-11CE
-8C82
-00AA004BA90B
),
148 pointer_default(unique)
150 interface IHlinkSite
: IUnknown
152 typedef [unique] IHlinkSite
*LPHLINKSITE
;
155 HLINKWHICHMK_CONTAINER
= 1,
156 HLINKWHICHMK_BASE
= 2,
159 HRESULT QueryService
(
160 [in] DWORD dwSiteData
,
161 [in] REFGUID guidService
,
163 [out, iid_is(riid
)] IUnknown
**ppiunk
);
166 [in] DWORD dwSiteData
,
169 [out] IMoniker
**ppimk
);
171 HRESULT ReadyToNavigate
(
172 [in] DWORD dwSiteData
,
173 [in] DWORD dwReserved
);
175 HRESULT OnNavigationComplete
(
176 [in] DWORD dwSiteData
,
177 [in] DWORD dwreserved
,
178 [in] HRESULT hrError
,
179 [in, unique] LPCWSTR pwzError
);
182 /*****************************************************************************
183 * IEnumHLITEM interface
188 uuid(79EAC9C6
-BAF9
-11CE
-8C82
-00AA004BA90B
),
189 pointer_default(unique)
191 interface IEnumHLITEM
: IUnknown
193 typedef [unique] IEnumHLITEM
*LPENUMHLITEM
;
195 typedef struct tagHLITEM
{
197 LPWSTR pwzFriendlyName
;
199 typedef [unique] HLITEM
*LPHLITEM
;
204 [out] ULONG
*pceltFetched
);
212 [out] IEnumHLITEM
**ppienumhlitem
);
215 /*****************************************************************************
216 * IHlinkBrowseContext interface
221 uuid(79EAC9C7
-BAF9
-11CE
-8C82
-00AA004BA90B
),
222 pointer_default(unique)
224 interface IHlinkBrowseContext
: IUnknown
226 typedef [unique] IHlinkBrowseContext
*LPHLINKBROWSECONTEXT
;
231 HLTB_DOCKEDRIGHT
= 2,
232 HLTB_DOCKEDBOTTOM
= 3,
236 typedef struct _tagHLTBINFO
{
242 HLBWIF_HASFRAMEWNDINFO
= 0x00000001,
243 HLBWIF_HASDOCWNDINFO
= 0x00000002,
244 HLBWIF_FRAMEWNDMAXIMIZED
= 0x00000004,
245 HLBWIF_DOCWNDMAXIMIZED
= 0x00000008,
246 HLBWIF_HASWEBTOOLBARINFO
= 0x00000010,
247 HLBWIF_WEBTOOLBARHIDDEN
= 0x00000020
250 typedef struct _tagHLBWINFO
{
258 typedef [unique] HLBWINFO
*LPHLBWINFO
;
261 HLID_INVALID
= 0x00000000,
262 HLID_PREVIOUS
= 0xFFFFFFFF,
263 HLID_NEXT
= 0xFFFFFFFE,
264 HLID_CURRENT
= 0xFFFFFFFD,
265 HLID_STACKBOTTOM
= 0xFFFFFFFC,
266 HLID_STACKTOP
= 0xFFFFFFFB
270 HLQF_ISVALID
= 0x00000001,
271 HLQF_ISCURRENT
= 0x00000002
276 [in, unique] IUnknown
*piunk
,
277 [in, unique] IMoniker
*pimk
,
278 [out] DWORD
*pdwRegister
);
281 [in, unique] IMoniker
*pimk
,
282 [in] BOOL fBindIfRootRegistered
,
283 [out] IUnknown
**ppiunk
);
286 [in] DWORD dwRegister
);
288 HRESULT SetBrowseWindowInfo
(
289 [in, unique] HLBWINFO
*phlbwi
);
291 HRESULT GetBrowseWindowInfo
(
292 [out] HLBWINFO
*phlbwi
);
294 HRESULT SetInitialHlink
(
295 [in, unique] IMoniker
* pimkTarget
,
296 [in, unique] LPCWSTR pwzLocation
,
297 [in, unique] LPCWSTR pwzFriendlyName
);
299 HRESULT OnNavigateHlink
(
301 [in, unique] IMoniker
*pimkTarget
,
302 [in, unique] LPCWSTR pwzLocation
,
303 [in, unique] LPCWSTR pwzFriendlyName
,
304 [out] ULONG
*puHLID
);
308 [in, unique] IMoniker
*pimkTarget
,
309 [in, unique] LPCWSTR pwzLocation
,
310 [in, unique] LPCWSTR pwzFriendlyName
);
312 HRESULT EnumNavigationStack
(
313 [in] DWORD dwReserved
,
314 [in] DWORD grfHLFNAMEF
,
315 [out] IEnumHLITEM
**ppienumhlitem
);
323 [out] IHlink
**ppihl
);
325 HRESULT SetCurrentHlink
(
329 [in, unique] IUnknown
*piunkOuter
,
331 [out, iid_is(riid
)] IUnknown
**ppiunkObj
);
334 [in] DWORD reserved
);
338 /*****************************************************************************
339 * IHlinkTarget interface
343 uuid(79EAC9C4
-BAF9
-11CE
-8C82
-00AA004BA90B
),
344 pointer_default(unique)
346 interface IHlinkTarget
: IUnknown
348 typedef [unique] IHlinkTarget
*LPHLINKTARGET
;
350 HRESULT SetBrowseContext
(
351 [in, unique] IHlinkBrowseContext
*pihlbc
);
353 HRESULT GetBrowseContext
(
354 [out] IHlinkBrowseContext
**ppihlbc
);
358 [in, unique] LPCWSTR pwzJumpLocation
);
361 [in,unique] LPCWSTR pwzLocation
,
363 [out] IMoniker
**ppimkLocation
);
365 HRESULT GetFriendlyName
(
366 [in,unique] LPCWSTR pwzLocation
,
367 [out] LPWSTR
*ppwzFriendlyName
);
370 /*****************************************************************************
371 * IHlinkFrame interface
375 uuid(79eac9c5
-baf9
-11ce
-8c82
-00aa004ba90b
),
376 pointer_default(unique)
379 interface IHlinkFrame
: IUnknown
381 typedef IHlinkFrame
*LPHLINKFRAME
;
383 HRESULT SetBrowseContext
(
384 [in, unique] IHlinkBrowseContext
* pihlbc
);
385 HRESULT GetBrowseContext
(
386 [out] IHlinkBrowseContext
** ppihlbc
);
389 [in, unique] LPBC pbc
,
390 [in, unique] IBindStatusCallback
*pibsc
,
391 [in, unique] IHlink
*pihlNavigate
);
394 [in, unique] IMoniker
*pimkTarget
,
395 [in, unique] LPCWSTR pwzLocation
,
396 [in, unique] LPCWSTR pwzFriendlyName
,
397 [in] DWORD dwreserved
);
400 [in, unique] IMoniker
*pimkTarget
,
401 [in, unique] LPCWSTR pwzLocation
,
402 [in, unique] LPCWSTR pwzFriendlyName
);