gdi32/tests: Add an option to match metrics exactly.
[wine.git] / include / hlink.idl
blobe735987aff9f987924409e2268f250d2bc3160e6
1 /*
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
19 import "urlmon.idl";
21 interface IHlink;
22 interface IHlinkSite;
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*);")
38 cpp_quote("HRESULT WINAPI HlinkParseDisplayName(LPBC,LPCWSTR,BOOL,ULONG*,IMoniker**);")
39 cpp_quote("HRESULT WINAPI HlinkResolveMonikerForData(LPMONIKER,DWORD,LPBC,ULONG,FORMATETC*,IBindStatusCallback*,LPMONIKER);")
40 cpp_quote("HRESULT WINAPI HlinkUpdateStackItem(IHlinkFrame*, IHlinkBrowseContext*, ULONG, IMoniker*, LPCWSTR, LPCWSTR);")
42 typedef enum _HLSR_NOREDEF10 {
43 HLSR_HOME,
44 HLSR_SEARCHPAGE,
45 HLSR_HISTORYFOLDER
46 } HLSR;
48 cpp_quote("HRESULT WINAPI HlinkSetSpecialReference(ULONG uReference, LPCWSTR pwzReference);")
49 cpp_quote("HRESULT WINAPI HlinkGetSpecialReference(ULONG uReference, LPWSTR *ppwzReference);")
51 cpp_quote("#define SID_SHlinkFrame IID_IHlinkFrame")
53 /*****************************************************************************
54 * IHlink interface
57 object,
58 uuid(79EAC9C3-BAF9-11CE-8C82-00AA004BA90B),
59 pointer_default(unique)
61 interface IHlink: IUnknown
63 typedef [unique] IHlink *LPHLINK;
65 typedef enum {
66 HLNF_INTERNALJUMP = 0x00000001,
67 HLNF_OPENINNEWWINDOW = 0x00000002,
68 HLNF_NAVIGATINGBACK = 0x00000004,
69 HLNF_NAVIGATINGFORWARD = 0x00000008,
70 HLNF_NAVIGATINGTOSTACKITEM = 0x00000010,
71 HLNF_CREATENOHISTORY = 0x00000020
72 } HLNF;
74 typedef enum {
75 HLINKGETREF_DEFAULT = 0,
76 HLINKGETREF_ABSOLUTE = 1,
77 HLINKGETREF_RELATIVE = 2,
78 } HLINKGETREF;
80 typedef enum {
81 HLFNAMEF_DEFAULT = 0x00000000,
82 HLFNAMEF_TRYCACHE = 0x00000001,
83 HLFNAMEF_TRYPRETTYTARGET = 0x00000002,
84 HLFNAMEF_TRYFULLTARGET = 0x00000004,
85 HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008
86 } HLFNAMEF;
88 typedef enum {
89 HLINKMISC_RELATIVE = 0x00000001,
90 } HLINKMISC;
92 typedef enum {
93 HLINKSETF_TARGET = 0x00000001,
94 HLINKSETF_LOCATION = 0x00000002
95 } HLINKSETF;
97 HRESULT SetHlinkSite(
98 [in, unique] IHlinkSite *pihlSite,
99 [in] DWORD dwSiteData);
101 HRESULT GetHlinkSite(
102 [out] IHlinkSite **ppihlSite,
103 [out] DWORD *pdwSiteData);
105 HRESULT SetMonikerReference(
106 [in] DWORD grfHLSETF,
107 [in, unique] IMoniker *pimkTarget,
108 [in, unique] LPCWSTR pwzLocation);
110 HRESULT GetMonikerReference(
111 [in] DWORD dwWhichRef,
112 [out] IMoniker **ppimkTarget,
113 [out] LPWSTR *ppwzLocation);
115 HRESULT SetStringReference(
116 [in] DWORD grfHLSETF,
117 [in, unique] LPCWSTR pwzTarget,
118 [in, unique] LPCWSTR pwzLocation);
120 HRESULT GetStringReference(
121 [in] DWORD dwWhichRef,
122 [out] LPWSTR *ppwzTarget,
123 [out] LPWSTR *ppwzLocation);
125 HRESULT SetFriendlyName(
126 [in, unique] LPCWSTR pwzFriendlyName);
128 HRESULT GetFriendlyName(
129 [in] DWORD grfHLFNAMEF,
130 [out] LPWSTR *ppwzFriendlyName);
132 HRESULT SetTargetFrameName(
133 [in, unique] LPCWSTR pwzTargetFrameName);
135 HRESULT GetTargetFrameName(
136 [out] LPWSTR *ppwzTargetFrameName);
138 HRESULT GetMiscStatus(
139 [out] DWORD *pdwStatus);
141 HRESULT Navigate(
142 [in] DWORD grfHLNF,
143 [in, unique] LPBC pibc,
144 [in, unique] IBindStatusCallback *pibsc,
145 [in, unique] IHlinkBrowseContext *pihlbc);
147 HRESULT SetAdditionalParams(
148 [in, unique] LPCWSTR pwzAdditionalParams);
150 HRESULT GetAdditionalParams(
151 [out] LPWSTR *ppwzAdditionalParams);
154 /*****************************************************************************
155 * IHlinkSite interface
158 object,
159 uuid(79EAC9C2-BAF9-11CE-8C82-00AA004BA90B),
160 pointer_default(unique)
162 interface IHlinkSite: IUnknown
164 typedef [unique] IHlinkSite *LPHLINKSITE;
166 typedef enum {
167 HLINKWHICHMK_CONTAINER = 1,
168 HLINKWHICHMK_BASE = 2,
169 } HLINKWHICHMK;
171 HRESULT QueryService(
172 [in] DWORD dwSiteData,
173 [in] REFGUID guidService,
174 [in] REFIID riid,
175 [out, iid_is(riid)] IUnknown **ppiunk);
177 HRESULT GetMoniker(
178 [in] DWORD dwSiteData,
179 [in] DWORD dwAssign,
180 [in] DWORD dwWhich,
181 [out] IMoniker **ppimk);
183 HRESULT ReadyToNavigate(
184 [in] DWORD dwSiteData,
185 [in] DWORD dwReserved);
187 HRESULT OnNavigationComplete(
188 [in] DWORD dwSiteData,
189 [in] DWORD dwreserved,
190 [in] HRESULT hrError,
191 [in, unique] LPCWSTR pwzError);
194 /*****************************************************************************
195 * IEnumHLITEM interface
198 local,
199 object,
200 uuid(79EAC9C6-BAF9-11CE-8C82-00AA004BA90B),
201 pointer_default(unique)
203 interface IEnumHLITEM : IUnknown
205 typedef [unique] IEnumHLITEM *LPENUMHLITEM;
207 typedef struct tagHLITEM {
208 ULONG uHLID;
209 LPWSTR pwzFriendlyName;
210 } HLITEM;
211 typedef [unique] HLITEM *LPHLITEM;
213 HRESULT Next(
214 [in] ULONG celt,
215 [out] HLITEM *rgelt,
216 [out] ULONG *pceltFetched);
218 HRESULT Skip(
219 [in] ULONG celt);
221 HRESULT Reset();
223 HRESULT Clone(
224 [out] IEnumHLITEM **ppienumhlitem);
227 /*****************************************************************************
228 * IHlinkBrowseContext interface
231 local,
232 object,
233 uuid(79EAC9C7-BAF9-11CE-8C82-00AA004BA90B),
234 pointer_default(unique)
236 interface IHlinkBrowseContext : IUnknown
238 typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
240 enum {
241 HLTB_DOCKEDLEFT = 0,
242 HLTB_DOCKEDTOP = 1,
243 HLTB_DOCKEDRIGHT = 2,
244 HLTB_DOCKEDBOTTOM = 3,
245 HLTB_FLOATING = 4
248 typedef struct _tagHLTBINFO {
249 ULONG uDockType;
250 RECT rcTbPos;
251 } HLTBINFO;
253 enum {
254 HLBWIF_HASFRAMEWNDINFO = 0x00000001,
255 HLBWIF_HASDOCWNDINFO = 0x00000002,
256 HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004,
257 HLBWIF_DOCWNDMAXIMIZED = 0x00000008,
258 HLBWIF_HASWEBTOOLBARINFO = 0x00000010,
259 HLBWIF_WEBTOOLBARHIDDEN = 0x00000020
262 typedef struct _tagHLBWINFO {
263 ULONG cbSize;
264 DWORD grfHLBWIF;
265 RECT rcFramePos;
266 RECT rcDocPos;
267 HLTBINFO hltbinfo;
268 } HLBWINFO;
270 typedef [unique] HLBWINFO *LPHLBWINFO;
272 enum {
273 HLID_INVALID = 0x00000000,
274 HLID_PREVIOUS = 0xFFFFFFFF,
275 HLID_NEXT = 0xFFFFFFFE,
276 HLID_CURRENT = 0xFFFFFFFD,
277 HLID_STACKBOTTOM = 0xFFFFFFFC,
278 HLID_STACKTOP = 0xFFFFFFFB
281 enum {
282 HLQF_ISVALID = 0x00000001,
283 HLQF_ISCURRENT = 0x00000002
286 HRESULT Register(
287 [in] DWORD reserved,
288 [in, unique] IUnknown *piunk,
289 [in, unique] IMoniker *pimk,
290 [out] DWORD *pdwRegister);
292 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
293 cpp_quote("#undef GetObject")
294 cpp_quote("#endif")
296 HRESULT GetObject(
297 [in, unique] IMoniker *pimk,
298 [in] BOOL fBindIfRootRegistered,
299 [out] IUnknown **ppiunk);
301 HRESULT Revoke(
302 [in] DWORD dwRegister);
304 HRESULT SetBrowseWindowInfo(
305 [in, unique] HLBWINFO *phlbwi);
307 HRESULT GetBrowseWindowInfo(
308 [out] HLBWINFO *phlbwi);
310 HRESULT SetInitialHlink(
311 [in, unique] IMoniker * pimkTarget,
312 [in, unique] LPCWSTR pwzLocation,
313 [in, unique] LPCWSTR pwzFriendlyName);
315 HRESULT OnNavigateHlink(
316 [in] DWORD grfHLNF,
317 [in, unique] IMoniker *pimkTarget,
318 [in, unique] LPCWSTR pwzLocation,
319 [in, unique] LPCWSTR pwzFriendlyName,
320 [out] ULONG *puHLID);
322 HRESULT UpdateHlink(
323 [in] ULONG uHLID,
324 [in, unique] IMoniker *pimkTarget,
325 [in, unique] LPCWSTR pwzLocation,
326 [in, unique] LPCWSTR pwzFriendlyName);
328 HRESULT EnumNavigationStack(
329 [in] DWORD dwReserved,
330 [in] DWORD grfHLFNAMEF,
331 [out] IEnumHLITEM **ppienumhlitem);
333 HRESULT QueryHlink(
334 [in] DWORD grfHLQF,
335 [in] ULONG uHLID);
337 HRESULT GetHlink(
338 [in] ULONG uHLID,
339 [out] IHlink **ppihl);
341 HRESULT SetCurrentHlink(
342 [in] ULONG uHLID);
344 HRESULT Clone(
345 [in, unique] IUnknown *piunkOuter,
346 [in] REFIID riid,
347 [out, iid_is(riid)] IUnknown **ppiunkObj);
349 HRESULT Close(
350 [in] DWORD reserved);
354 /*****************************************************************************
355 * IHlinkTarget interface
358 object,
359 uuid(79EAC9C4-BAF9-11CE-8C82-00AA004BA90B),
360 pointer_default(unique)
362 interface IHlinkTarget : IUnknown
364 typedef [unique] IHlinkTarget *LPHLINKTARGET;
366 HRESULT SetBrowseContext(
367 [in, unique] IHlinkBrowseContext *pihlbc);
369 HRESULT GetBrowseContext(
370 [out] IHlinkBrowseContext **ppihlbc);
372 HRESULT Navigate(
373 [in] DWORD grfHLNF,
374 [in, unique] LPCWSTR pwzJumpLocation);
376 HRESULT GetMoniker(
377 [in,unique] LPCWSTR pwzLocation,
378 [in] DWORD dwAssign,
379 [out] IMoniker **ppimkLocation);
381 HRESULT GetFriendlyName(
382 [in,unique] LPCWSTR pwzLocation,
383 [out] LPWSTR *ppwzFriendlyName);
386 /*****************************************************************************
387 * IHlinkFrame interface
390 object,
391 uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b),
392 pointer_default(unique)
395 interface IHlinkFrame : IUnknown
397 typedef IHlinkFrame *LPHLINKFRAME;
399 HRESULT SetBrowseContext(
400 [in, unique] IHlinkBrowseContext * pihlbc);
401 HRESULT GetBrowseContext(
402 [out] IHlinkBrowseContext ** ppihlbc);
403 HRESULT Navigate(
404 [in] DWORD grfHLNF,
405 [in, unique] LPBC pbc,
406 [in, unique] IBindStatusCallback *pibsc,
407 [in, unique] IHlink *pihlNavigate);
408 HRESULT OnNavigate(
409 [in] DWORD grfHLNF,
410 [in, unique] IMoniker *pimkTarget,
411 [in, unique] LPCWSTR pwzLocation,
412 [in, unique] LPCWSTR pwzFriendlyName,
413 [in] DWORD dwreserved);
414 HRESULT UpdateHlink(
415 [in] ULONG uHLID,
416 [in, unique] IMoniker *pimkTarget,
417 [in, unique] LPCWSTR pwzLocation,
418 [in, unique] LPCWSTR pwzFriendlyName);
421 /*****************************************************************************
422 * IExtensionServices interface
425 object,
426 uuid(79eac9cb-baf9-11ce-8c82-00aa004ba90b),
427 pointer_default(unique)
430 interface IExtensionServices: IUnknown
432 typedef IExtensionServices *LPEXTENSIONSERVICES;
434 HRESULT SetAdditionalHeaders(
435 [in] LPCWSTR pwzAdditionalHeaders);
437 HRESULT SetAuthenticateData(
438 [in] HWND phwnd,
439 [in] LPCWSTR pwzUsername,
440 [in] LPCWSTR pwzPassword);