1 | /*
|
---|
2 | * Copyright 2005 Jacek Caban
|
---|
3 | *
|
---|
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.
|
---|
8 | *
|
---|
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.
|
---|
13 | *
|
---|
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
|
---|
17 | */
|
---|
18 |
|
---|
19 | /*
|
---|
20 | * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
21 | * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
|
---|
22 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
23 | * a choice of LGPL license versions is made available with the language indicating
|
---|
24 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
25 | * of the LGPL is applied is otherwise unspecified.
|
---|
26 | */
|
---|
27 |
|
---|
28 | import "urlmon.idl";
|
---|
29 |
|
---|
30 | interface IHlink;
|
---|
31 | interface IHlinkSite;
|
---|
32 | interface IHlinkFrame;
|
---|
33 | interface IHlinkBrowseContext;
|
---|
34 |
|
---|
35 | cpp_quote("HRESULT WINAPI HlinkCreateFromMoniker(IMoniker*, LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IUnknown*, REFIID, void**);")
|
---|
36 | cpp_quote("HRESULT WINAPI HlinkCreateFromString(LPCWSTR, LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IUnknown*, REFIID, void**);")
|
---|
37 | cpp_quote("HRESULT WINAPI HlinkCreateFromData(IDataObject*, IHlinkSite*, DWORD dwSiteData, IUnknown*, REFIID, void**);")
|
---|
38 | cpp_quote("HRESULT WINAPI HlinkCreateExtensionServices(LPCWSTR, HWND, LPCWSTR, LPCWSTR, IUnknown*, REFIID, void**);")
|
---|
39 | cpp_quote("HRESULT WINAPI HlinkQueryCreateFromData(IDataObject*);")
|
---|
40 | cpp_quote("HRESULT WINAPI HlinkClone(IHlink*, REFIID, IHlinkSite*, DWORD, void **);")
|
---|
41 | cpp_quote("HRESULT WINAPI HlinkCreateBrowseContext(IUnknown*, REFIID, void **);")
|
---|
42 | cpp_quote("HRESULT WINAPI HlinkNavigateToStringReference(LPCWSTR, LPCWSTR, IHlinkSite*, DWORD, IHlinkFrame*, DWORD, LPBC, IBindStatusCallback*, IHlinkBrowseContext*);")
|
---|
43 | cpp_quote("HRESULT WINAPI HlinkNavigate(IHlink*, IHlinkFrame*, DWORD, LPBC, IBindStatusCallback*, IHlinkBrowseContext*);")
|
---|
44 | cpp_quote("HRESULT WINAPI HlinkOnNavigate(IHlinkFrame*, IHlinkBrowseContext*, DWORD, IMoniker*, LPCWSTR, LPCWSTR, ULONG*);")
|
---|
45 | cpp_quote("HRESULT WINAPI HlinkIsShortcut(LPCWSTR);")
|
---|
46 | cpp_quote("HRESULT WINAPI HlinkTranslateURL(LPCWSTR,DWORD,LPWSTR*);")
|
---|
47 | cpp_quote("HRESULT WINAPI HlinkParseDisplayName(LPBC,LPCWSTR,BOOL,ULONG*,IMoniker**);")
|
---|
48 | cpp_quote("HRESULT WINAPI HlinkResolveMonikerForData(LPMONIKER,DWORD,LPBC,ULONG,FORMATETC*,IBindStatusCallback*,LPMONIKER);")
|
---|
49 |
|
---|
50 | typedef enum _HLSR_NOREDEF10 {
|
---|
51 | HLSR_HOME,
|
---|
52 | HLSR_SEARCHPAGE,
|
---|
53 | HLSR_HISTORYFOLDER
|
---|
54 | } HLSR;
|
---|
55 |
|
---|
56 | cpp_quote("HRESULT WINAPI HlinkSetSpecialReference(ULONG uReference, LPCWSTR pwzReference);")
|
---|
57 | cpp_quote("HRESULT WINAPI HlinkGetSpecialReference(ULONG uReference, LPWSTR *ppwzReference);")
|
---|
58 |
|
---|
59 | cpp_quote("#define SID_SHlinkFrame IID_IHlinkFrame")
|
---|
60 |
|
---|
61 | /*****************************************************************************
|
---|
62 | * IHlink interface
|
---|
63 | */
|
---|
64 | [
|
---|
65 | object,
|
---|
66 | uuid(79EAC9C3-BAF9-11CE-8C82-00AA004BA90B),
|
---|
67 | pointer_default(unique)
|
---|
68 | ]
|
---|
69 | interface IHlink: IUnknown
|
---|
70 | {
|
---|
71 | typedef [unique] IHlink *LPHLINK;
|
---|
72 |
|
---|
73 | typedef enum {
|
---|
74 | HLNF_INTERNALJUMP = 0x00000001,
|
---|
75 | HLNF_OPENINNEWWINDOW = 0x00000002,
|
---|
76 | HLNF_NAVIGATINGBACK = 0x00000004,
|
---|
77 | HLNF_NAVIGATINGFORWARD = 0x00000008,
|
---|
78 | HLNF_NAVIGATINGTOSTACKITEM = 0x00000010,
|
---|
79 | HLNF_CREATENOHISTORY = 0x00000020
|
---|
80 | } HLNF;
|
---|
81 |
|
---|
82 | typedef enum {
|
---|
83 | HLINKGETREF_DEFAULT = 0,
|
---|
84 | HLINKGETREF_ABSOLUTE = 1,
|
---|
85 | HLINKGETREF_RELATIVE = 2,
|
---|
86 | } HLINKGETREF;
|
---|
87 |
|
---|
88 | typedef enum {
|
---|
89 | HLFNAMEF_DEFAULT = 0x00000000,
|
---|
90 | HLFNAMEF_TRYCACHE = 0x00000001,
|
---|
91 | HLFNAMEF_TRYPRETTYTARGET = 0x00000002,
|
---|
92 | HLFNAMEF_TRYFULLTARGET = 0x00000004,
|
---|
93 | HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008
|
---|
94 | } HLFNAMEF;
|
---|
95 |
|
---|
96 | typedef enum {
|
---|
97 | HLINKMISC_RELATIVE = 0x00000001,
|
---|
98 | } HLINKMISC;
|
---|
99 |
|
---|
100 | typedef enum {
|
---|
101 | HLINKSETF_TARGET = 0x00000001,
|
---|
102 | HLINKSETF_LOCATION = 0x00000002
|
---|
103 | } HLINKSETF;
|
---|
104 |
|
---|
105 | HRESULT SetHlinkSite(
|
---|
106 | [in, unique] IHlinkSite *pihlSite,
|
---|
107 | [in] DWORD dwSiteData);
|
---|
108 |
|
---|
109 | HRESULT GetHlinkSite(
|
---|
110 | [out] IHlinkSite **ppihlSite,
|
---|
111 | [out] DWORD *pdwSiteData);
|
---|
112 |
|
---|
113 | HRESULT SetMonikerReference(
|
---|
114 | [in] DWORD grfHLSETF,
|
---|
115 | [in, unique] IMoniker *pimkTarget,
|
---|
116 | [in, unique] LPCWSTR pwzLocation);
|
---|
117 |
|
---|
118 | HRESULT GetMonikerReference(
|
---|
119 | [in] DWORD dwWhichRef,
|
---|
120 | [out] IMoniker **ppimkTarget,
|
---|
121 | [out] LPWSTR *ppwzLocation);
|
---|
122 |
|
---|
123 | HRESULT SetStringReference(
|
---|
124 | [in] DWORD grfHLSETF,
|
---|
125 | [in, unique] LPCWSTR pwzTarget,
|
---|
126 | [in, unique] LPCWSTR pwzLocation);
|
---|
127 |
|
---|
128 | HRESULT GetStringReference(
|
---|
129 | [in] DWORD dwWhichRef,
|
---|
130 | [out] LPWSTR *ppwzTarget,
|
---|
131 | [out] LPWSTR *ppwzLocation);
|
---|
132 |
|
---|
133 | HRESULT SetFriendlyName(
|
---|
134 | [in, unique] LPCWSTR pwzFriendlyName);
|
---|
135 |
|
---|
136 | HRESULT GetFriendlyName(
|
---|
137 | [in] DWORD grfHLFNAMEF,
|
---|
138 | [out] LPWSTR *ppwzFriendlyName);
|
---|
139 |
|
---|
140 | HRESULT SetTargetFrameName(
|
---|
141 | [in, unique] LPCWSTR pwzTargetFrameName);
|
---|
142 |
|
---|
143 | HRESULT GetTargetFrameName(
|
---|
144 | [out] LPWSTR *ppwzTargetFrameName);
|
---|
145 |
|
---|
146 | HRESULT GetMiscStatus(
|
---|
147 | [out] DWORD *pdwStatus);
|
---|
148 |
|
---|
149 | HRESULT Navigate(
|
---|
150 | [in] DWORD grfHLNF,
|
---|
151 | [in, unique] LPBC pibc,
|
---|
152 | [in, unique] IBindStatusCallback *pibsc,
|
---|
153 | [in, unique] IHlinkBrowseContext *pihlbc);
|
---|
154 |
|
---|
155 | HRESULT SetAdditionalParams(
|
---|
156 | [in, unique] LPCWSTR pwzAdditionalParams);
|
---|
157 |
|
---|
158 | HRESULT GetAdditionalParams(
|
---|
159 | [out] LPWSTR *ppwzAdditionalParams);
|
---|
160 | }
|
---|
161 |
|
---|
162 | /*****************************************************************************
|
---|
163 | * IHlinkSite interface
|
---|
164 | */
|
---|
165 | [
|
---|
166 | object,
|
---|
167 | uuid(79EAC9C2-BAF9-11CE-8C82-00AA004BA90B),
|
---|
168 | pointer_default(unique)
|
---|
169 | ]
|
---|
170 | interface IHlinkSite: IUnknown
|
---|
171 | {
|
---|
172 | typedef [unique] IHlinkSite *LPHLINKSITE;
|
---|
173 |
|
---|
174 | typedef enum {
|
---|
175 | HLINKWHICHMK_CONTAINER = 1,
|
---|
176 | HLINKWHICHMK_BASE = 2,
|
---|
177 | } HLINKWHICHMK;
|
---|
178 |
|
---|
179 | HRESULT QueryService(
|
---|
180 | [in] DWORD dwSiteData,
|
---|
181 | [in] REFGUID guidService,
|
---|
182 | [in] REFIID riid,
|
---|
183 | [out, iid_is(riid)] IUnknown **ppiunk);
|
---|
184 |
|
---|
185 | HRESULT GetMoniker(
|
---|
186 | [in] DWORD dwSiteData,
|
---|
187 | [in] DWORD dwAssign,
|
---|
188 | [in] DWORD dwWhich,
|
---|
189 | [out] IMoniker **ppimk);
|
---|
190 |
|
---|
191 | HRESULT ReadyToNavigate(
|
---|
192 | [in] DWORD dwSiteData,
|
---|
193 | [in] DWORD dwReserved);
|
---|
194 |
|
---|
195 | HRESULT OnNavigationComplete(
|
---|
196 | [in] DWORD dwSiteData,
|
---|
197 | [in] DWORD dwreserved,
|
---|
198 | [in] HRESULT hrError,
|
---|
199 | [in, unique] LPCWSTR pwzError);
|
---|
200 | }
|
---|
201 |
|
---|
202 | /*****************************************************************************
|
---|
203 | * IEnumHLITEM interface
|
---|
204 | */
|
---|
205 | [
|
---|
206 | local,
|
---|
207 | object,
|
---|
208 | uuid(79EAC9C6-BAF9-11CE-8C82-00AA004BA90B),
|
---|
209 | pointer_default(unique)
|
---|
210 | ]
|
---|
211 | interface IEnumHLITEM : IUnknown
|
---|
212 | {
|
---|
213 | typedef [unique] IEnumHLITEM *LPENUMHLITEM;
|
---|
214 |
|
---|
215 | typedef struct tagHLITEM {
|
---|
216 | ULONG uHLID;
|
---|
217 | LPWSTR pwzFriendlyName;
|
---|
218 | } HLITEM;
|
---|
219 | typedef [unique] HLITEM *LPHLITEM;
|
---|
220 |
|
---|
221 | HRESULT Next(
|
---|
222 | [in] ULONG celt,
|
---|
223 | [out] HLITEM *rgelt,
|
---|
224 | [out] ULONG *pceltFetched);
|
---|
225 |
|
---|
226 | HRESULT Skip(
|
---|
227 | [in] ULONG celt);
|
---|
228 |
|
---|
229 | HRESULT Reset();
|
---|
230 |
|
---|
231 | HRESULT Clone(
|
---|
232 | [out] IEnumHLITEM **ppienumhlitem);
|
---|
233 | }
|
---|
234 |
|
---|
235 | /*****************************************************************************
|
---|
236 | * IHlinkBrowseContext interface
|
---|
237 | */
|
---|
238 | [
|
---|
239 | local,
|
---|
240 | object,
|
---|
241 | uuid(79EAC9C7-BAF9-11CE-8C82-00AA004BA90B),
|
---|
242 | pointer_default(unique)
|
---|
243 | ]
|
---|
244 | interface IHlinkBrowseContext : IUnknown
|
---|
245 | {
|
---|
246 | typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
|
---|
247 |
|
---|
248 | enum {
|
---|
249 | HLTB_DOCKEDLEFT = 0,
|
---|
250 | HLTB_DOCKEDTOP = 1,
|
---|
251 | HLTB_DOCKEDRIGHT = 2,
|
---|
252 | HLTB_DOCKEDBOTTOM = 3,
|
---|
253 | HLTB_FLOATING = 4
|
---|
254 | };
|
---|
255 |
|
---|
256 | typedef struct _tagHLTBINFO {
|
---|
257 | ULONG uDockType;
|
---|
258 | RECT rcTbPos;
|
---|
259 | } HLTBINFO;
|
---|
260 |
|
---|
261 | enum {
|
---|
262 | HLBWIF_HASFRAMEWNDINFO = 0x00000001,
|
---|
263 | HLBWIF_HASDOCWNDINFO = 0x00000002,
|
---|
264 | HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004,
|
---|
265 | HLBWIF_DOCWNDMAXIMIZED = 0x00000008,
|
---|
266 | HLBWIF_HASWEBTOOLBARINFO = 0x00000010,
|
---|
267 | HLBWIF_WEBTOOLBARHIDDEN = 0x00000020
|
---|
268 | };
|
---|
269 |
|
---|
270 | typedef struct _tagHLBWINFO {
|
---|
271 | ULONG cbSize;
|
---|
272 | DWORD grfHLBWIF;
|
---|
273 | RECT rcFramePos;
|
---|
274 | RECT rcDocPos;
|
---|
275 | HLTBINFO hltbinfo;
|
---|
276 | } HLBWINFO;
|
---|
277 |
|
---|
278 | typedef [unique] HLBWINFO *LPHLBWINFO;
|
---|
279 |
|
---|
280 | enum {
|
---|
281 | HLID_INVALID = 0x00000000,
|
---|
282 | HLID_PREVIOUS = 0xFFFFFFFF,
|
---|
283 | HLID_NEXT = 0xFFFFFFFE,
|
---|
284 | HLID_CURRENT = 0xFFFFFFFD,
|
---|
285 | HLID_STACKBOTTOM = 0xFFFFFFFC,
|
---|
286 | HLID_STACKTOP = 0xFFFFFFFB
|
---|
287 | };
|
---|
288 |
|
---|
289 | enum {
|
---|
290 | HLQF_ISVALID = 0x00000001,
|
---|
291 | HLQF_ISCURRENT = 0x00000002
|
---|
292 | };
|
---|
293 |
|
---|
294 | HRESULT Register(
|
---|
295 | [in] DWORD reserved,
|
---|
296 | [in, unique] IUnknown *piunk,
|
---|
297 | [in, unique] IMoniker *pimk,
|
---|
298 | [out] DWORD *pdwRegister);
|
---|
299 |
|
---|
300 | cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
|
---|
301 | cpp_quote("#undef GetObject")
|
---|
302 | cpp_quote("#endif")
|
---|
303 |
|
---|
304 | HRESULT GetObject(
|
---|
305 | [in, unique] IMoniker *pimk,
|
---|
306 | [in] BOOL fBindIfRootRegistered,
|
---|
307 | [out] IUnknown **ppiunk);
|
---|
308 |
|
---|
309 | HRESULT Revoke(
|
---|
310 | [in] DWORD dwRegister);
|
---|
311 |
|
---|
312 | HRESULT SetBrowseWindowInfo(
|
---|
313 | [in, unique] HLBWINFO *phlbwi);
|
---|
314 |
|
---|
315 | HRESULT GetBrowseWindowInfo(
|
---|
316 | [out] HLBWINFO *phlbwi);
|
---|
317 |
|
---|
318 | HRESULT SetInitialHlink(
|
---|
319 | [in, unique] IMoniker * pimkTarget,
|
---|
320 | [in, unique] LPCWSTR pwzLocation,
|
---|
321 | [in, unique] LPCWSTR pwzFriendlyName);
|
---|
322 |
|
---|
323 | HRESULT OnNavigateHlink(
|
---|
324 | [in] DWORD grfHLNF,
|
---|
325 | [in, unique] IMoniker *pimkTarget,
|
---|
326 | [in, unique] LPCWSTR pwzLocation,
|
---|
327 | [in, unique] LPCWSTR pwzFriendlyName,
|
---|
328 | [out] ULONG *puHLID);
|
---|
329 |
|
---|
330 | HRESULT UpdateHlink(
|
---|
331 | [in] ULONG uHLID,
|
---|
332 | [in, unique] IMoniker *pimkTarget,
|
---|
333 | [in, unique] LPCWSTR pwzLocation,
|
---|
334 | [in, unique] LPCWSTR pwzFriendlyName);
|
---|
335 |
|
---|
336 | HRESULT EnumNavigationStack(
|
---|
337 | [in] DWORD dwReserved,
|
---|
338 | [in] DWORD grfHLFNAMEF,
|
---|
339 | [out] IEnumHLITEM **ppienumhlitem);
|
---|
340 |
|
---|
341 | HRESULT QueryHlink(
|
---|
342 | [in] DWORD grfHLQF,
|
---|
343 | [in] ULONG uHLID);
|
---|
344 |
|
---|
345 | HRESULT GetHlink(
|
---|
346 | [in] ULONG uHLID,
|
---|
347 | [out] IHlink **ppihl);
|
---|
348 |
|
---|
349 | HRESULT SetCurrentHlink(
|
---|
350 | [in] ULONG uHLID);
|
---|
351 |
|
---|
352 | HRESULT Clone(
|
---|
353 | [in, unique] IUnknown *piunkOuter,
|
---|
354 | [in] REFIID riid,
|
---|
355 | [out, iid_is(riid)] IUnknown **ppiunkObj);
|
---|
356 |
|
---|
357 | HRESULT Close(
|
---|
358 | [in] DWORD reserved);
|
---|
359 | }
|
---|
360 |
|
---|
361 |
|
---|
362 | /*****************************************************************************
|
---|
363 | * IHlinkTarget interface
|
---|
364 | */
|
---|
365 | [
|
---|
366 | object,
|
---|
367 | uuid(79EAC9C4-BAF9-11CE-8C82-00AA004BA90B),
|
---|
368 | pointer_default(unique)
|
---|
369 | ]
|
---|
370 | interface IHlinkTarget : IUnknown
|
---|
371 | {
|
---|
372 | typedef [unique] IHlinkTarget *LPHLINKTARGET;
|
---|
373 |
|
---|
374 | HRESULT SetBrowseContext(
|
---|
375 | [in, unique] IHlinkBrowseContext *pihlbc);
|
---|
376 |
|
---|
377 | HRESULT GetBrowseContext(
|
---|
378 | [out] IHlinkBrowseContext **ppihlbc);
|
---|
379 |
|
---|
380 | HRESULT Navigate(
|
---|
381 | [in] DWORD grfHLNF,
|
---|
382 | [in, unique] LPCWSTR pwzJumpLocation);
|
---|
383 |
|
---|
384 | HRESULT GetMoniker(
|
---|
385 | [in,unique] LPCWSTR pwzLocation,
|
---|
386 | [in] DWORD dwAssign,
|
---|
387 | [out] IMoniker **ppimkLocation);
|
---|
388 |
|
---|
389 | HRESULT GetFriendlyName(
|
---|
390 | [in,unique] LPCWSTR pwzLocation,
|
---|
391 | [out] LPWSTR *ppwzFriendlyName);
|
---|
392 | }
|
---|
393 |
|
---|
394 | /*****************************************************************************
|
---|
395 | * IHlinkFrame interface
|
---|
396 | */
|
---|
397 | [
|
---|
398 | object,
|
---|
399 | uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b),
|
---|
400 | pointer_default(unique)
|
---|
401 | ]
|
---|
402 |
|
---|
403 | interface IHlinkFrame : IUnknown
|
---|
404 | {
|
---|
405 | typedef IHlinkFrame *LPHLINKFRAME;
|
---|
406 |
|
---|
407 | HRESULT SetBrowseContext(
|
---|
408 | [in, unique] IHlinkBrowseContext * pihlbc);
|
---|
409 | HRESULT GetBrowseContext(
|
---|
410 | [out] IHlinkBrowseContext ** ppihlbc);
|
---|
411 | HRESULT Navigate(
|
---|
412 | [in] DWORD grfHLNF,
|
---|
413 | [in, unique] LPBC pbc,
|
---|
414 | [in, unique] IBindStatusCallback *pibsc,
|
---|
415 | [in, unique] IHlink *pihlNavigate);
|
---|
416 | HRESULT OnNavigate(
|
---|
417 | [in] DWORD grfHLNF,
|
---|
418 | [in, unique] IMoniker *pimkTarget,
|
---|
419 | [in, unique] LPCWSTR pwzLocation,
|
---|
420 | [in, unique] LPCWSTR pwzFriendlyName,
|
---|
421 | [in] DWORD dwreserved);
|
---|
422 | HRESULT UpdateHlink(
|
---|
423 | [in] ULONG uHLID,
|
---|
424 | [in, unique] IMoniker *pimkTarget,
|
---|
425 | [in, unique] LPCWSTR pwzLocation,
|
---|
426 | [in, unique] LPCWSTR pwzFriendlyName);
|
---|
427 | }
|
---|
428 |
|
---|
429 | /*****************************************************************************
|
---|
430 | * IExtensionServices interface
|
---|
431 | */
|
---|
432 | [
|
---|
433 | object,
|
---|
434 | uuid(79eac9cb-baf9-11ce-8c82-00aa004ba90b),
|
---|
435 | pointer_default(unique)
|
---|
436 | ]
|
---|
437 |
|
---|
438 | interface IExtensionServices: IUnknown
|
---|
439 | {
|
---|
440 | typedef IExtensionServices *LPEXTENSIONSERVICES;
|
---|
441 |
|
---|
442 | HRESULT SetAdditionalHeaders(
|
---|
443 | [in] LPCWSTR pwzAdditionalHeaders);
|
---|
444 |
|
---|
445 | HRESULT SetAuthenticateData(
|
---|
446 | [in] HWND phwnd,
|
---|
447 | [in] LPCWSTR pwzUsername,
|
---|
448 | [in] LPCWSTR pwzPassword);
|
---|
449 | }
|
---|