urlmon/tests: Fix clipformat test.
[wine.git] / include / hlink.idl
blob964295683681020047e96e561974c55882add633
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*);")
39 /*****************************************************************************
40 * IHlink interface
43 object,
44 uuid(79EAC9C3-BAF9-11CE-8C82-00AA004BA90B),
45 pointer_default(unique)
47 interface IHlink: IUnknown
49 typedef [unique] IHlink *LPHLINK;
51 typedef enum {
52 HLNF_INTERNALJUMP = 0x00000001,
53 HLNF_OPENINNEWWINDOW = 0x00000002,
54 HLNF_NAVIGATINGBACK = 0x00000004,
55 HLNF_NAVIGATINGFORWARD = 0x00000008,
56 HLNF_NAVIGATINGTOSTACKITEM = 0x00000010,
57 HLNF_CREATENOHISTORY = 0x00000020
58 } HLNF;
60 typedef enum {
61 HLINKGETREF_DEFAULT = 0,
62 HLINKGETREF_ABSOLUTE = 1,
63 HLINKGETREF_RELATIVE = 2,
64 } HLINKGETREF;
66 typedef enum {
67 HLFNAMEF_DEFAULT = 0x00000000,
68 HLFNAMEF_TRYCACHE = 0x00000001,
69 HLFNAMEF_TRYPRETTYTARGET = 0x00000002,
70 HLFNAMEF_TRYFULLTARGET = 0x00000004,
71 HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008
72 } HLFNAMEF;
74 typedef enum {
75 HLINKMISC_RELATIVE = 0x00000001,
76 } HLINKMISC;
78 typedef enum {
79 HLINKSETF_TARGET = 0x00000001,
80 HLINKSETF_LOCATION = 0x00000002
81 } HLINKSETF;
83 HRESULT SetHlinkSite(
84 [in, unique] IHlinkSite *pihlSite,
85 [in] DWORD dwSiteData);
87 HRESULT GetHlinkSite(
88 [out] IHlinkSite **ppihlSite,
89 [out] DWORD *pdwSiteData);
91 HRESULT SetMonikerReference(
92 [in] DWORD grfHLSETF,
93 [in, unique] IMoniker *pimkTarget,
94 [in, unique] LPCWSTR pwzLocation);
96 HRESULT GetMonikerReference(
97 [in] DWORD dwWhichRef,
98 [out] IMoniker **ppimkTarget,
99 [out] LPWSTR *ppwzLocation);
101 HRESULT SetStringReference(
102 [in] DWORD grfHLSETF,
103 [in, unique] LPCWSTR pwzTarget,
104 [in, unique] LPCWSTR pwzLocation);
106 HRESULT GetStringReference(
107 [in] DWORD dwWhichRef,
108 [out] LPWSTR *ppwzTarget,
109 [out] LPWSTR *ppwzLocation);
111 HRESULT SetFriendlyName(
112 [in, unique] LPCWSTR pwzFriendlyName);
114 HRESULT GetFriendlyName(
115 [in] DWORD grfHLFNAMEF,
116 [out] LPWSTR *ppwzFriendlyName);
118 HRESULT SetTargetFrameName(
119 [in, unique] LPCWSTR pwzTargetFrameName);
121 HRESULT GetTargetFrameName(
122 [out] LPWSTR *ppwzTargetFrameName);
124 HRESULT GetMiscStatus(
125 [out] DWORD *pdwStatus);
127 HRESULT Navigate(
128 [in] DWORD grfHLNF,
129 [in, unique] LPBC pibc,
130 [in, unique] IBindStatusCallback *pibsc,
131 [in, unique] IHlinkBrowseContext *pihlbc);
133 HRESULT SetAdditionalParams(
134 [in, unique] LPCWSTR pwzAdditionalParams);
136 HRESULT GetAdditionalParams(
137 [out] LPWSTR *ppwzAdditionalParams);
140 /*****************************************************************************
141 * IHlink interface
144 object,
145 uuid(79EAC9C2-BAF9-11CE-8C82-00AA004BA90B),
146 pointer_default(unique)
148 interface IHlinkSite: IUnknown
150 typedef [unique] IHlinkSite *LPHLINKSITE;
152 typedef enum {
153 HLINKWHICHMK_CONTAINER = 1,
154 HLINKWHICHMK_BASE = 2,
155 } HLINKWHICHMK;
157 HRESULT QueryService(
158 [in] DWORD dwSiteData,
159 [in] REFGUID guidService,
160 [in] REFIID riid,
161 [out, iid_is(riid)] IUnknown **ppiunk);
163 HRESULT GetMoniker(
164 [in] DWORD dwSiteData,
165 [in] DWORD dwAssign,
166 [in] DWORD dwWhich,
167 [out] IMoniker **ppimk);
169 HRESULT ReadyToNavigate(
170 [in] DWORD dwSiteData,
171 [in] DWORD dwReserved);
173 HRESULT OnNavigationComplete(
174 [in] DWORD dwSiteData,
175 [in] DWORD dwreserved,
176 [in] HRESULT hrError,
177 [in, unique] LPCWSTR pwzError);
180 /*****************************************************************************
181 * IEnumHLITEM interface
184 local,
185 object,
186 uuid(79EAC9C6-BAF9-11CE-8C82-00AA004BA90B),
187 pointer_default(unique)
189 interface IEnumHLITEM : IUnknown
191 typedef [unique] IEnumHLITEM *LPENUMHLITEM;
193 typedef struct tagHLITEM {
194 ULONG uHLID;
195 LPWSTR pwzFriendlyName;
196 } HLITEM;
197 typedef [unique] HLITEM *LPHLITEM;
199 HRESULT Next(
200 [in] ULONG celt,
201 [out] HLITEM *rgelt,
202 [out] ULONG *pceltFetched);
204 HRESULT Skip(
205 [in] ULONG celt);
207 HRESULT Reset();
209 HRESULT Clone(
210 [out] IEnumHLITEM **ppienumhlitem);
213 /*****************************************************************************
214 * IHlinkBrowseContext interface
217 local,
218 object,
219 uuid(79EAC9C7-BAF9-11CE-8C82-00AA004BA90B),
220 pointer_default(unique)
222 interface IHlinkBrowseContext : IUnknown
224 typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
226 enum {
227 HLTB_DOCKEDLEFT = 0,
228 HLTB_DOCKEDTOP = 1,
229 HLTB_DOCKEDRIGHT = 2,
230 HLTB_DOCKEDBOTTOM = 3,
231 HLTB_FLOATING = 4
234 typedef struct _tagHLTBINFO {
235 ULONG uDockType;
236 RECT rcTbPos;
237 } HLTBINFO;
239 enum {
240 HLBWIF_HASFRAMEWNDINFO = 0x00000001,
241 HLBWIF_HASDOCWNDINFO = 0x00000002,
242 HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004,
243 HLBWIF_DOCWNDMAXIMIZED = 0x00000008,
244 HLBWIF_HASWEBTOOLBARINFO = 0x00000010,
245 HLBWIF_WEBTOOLBARHIDDEN = 0x00000020
248 typedef struct _tagHLBWINFO {
249 ULONG cbSize;
250 DWORD grfHLBWIF;
251 RECT rcFramePos;
252 RECT rcDocPos;
253 HLTBINFO hltbinfo;
254 } HLBWINFO;
256 typedef [unique] HLBWINFO *LPHLBWINFO;
258 enum {
259 HLID_INVALID = 0x00000000,
260 HLID_PREVIOUS = 0xFFFFFFFF,
261 HLID_NEXT = 0xFFFFFFFE,
262 HLID_CURRENT = 0xFFFFFFFD,
263 HLID_STACKBOTTOM = 0xFFFFFFFC,
264 HLID_STACKTOP = 0xFFFFFFFB
267 enum {
268 HLQF_ISVALID = 0x00000001,
269 HLQF_ISCURRENT = 0x00000002
272 HRESULT Register(
273 [in] DWORD reserved,
274 [in, unique] IUnknown *piunk,
275 [in, unique] IMoniker *pimk,
276 [out] DWORD *pdwRegister);
278 HRESULT GetObject(
279 [in, unique] IMoniker *pimk,
280 [in] BOOL fBindIfRootRegistered,
281 [out] IUnknown **ppiunk);
283 HRESULT Revoke(
284 [in] DWORD dwRegister);
286 HRESULT SetBrowseWindowInfo(
287 [in, unique] HLBWINFO *phlbwi);
289 HRESULT GetBrowseWindowInfo(
290 [out] HLBWINFO *phlbwi);
292 HRESULT SetInitialHlink(
293 [in, unique] IMoniker * pimkTarget,
294 [in, unique] LPCWSTR pwzLocation,
295 [in, unique] LPCWSTR pwzFriendlyName);
297 HRESULT OnNavigateHlink(
298 [in] DWORD grfHLNF,
299 [in, unique] IMoniker *pimkTarget,
300 [in, unique] LPCWSTR pwzLocation,
301 [in, unique] LPCWSTR pwzFriendlyName,
302 [out] ULONG *puHLID);
304 HRESULT UpdateHlink(
305 [in] ULONG uHLID,
306 [in, unique] IMoniker *pimkTarget,
307 [in, unique] LPCWSTR pwzLocation,
308 [in, unique] LPCWSTR pwzFriendlyName);
310 HRESULT EnumNavigationStack(
311 [in] DWORD dwReserved,
312 [in] DWORD grfHLFNAMEF,
313 [out] IEnumHLITEM **ppienumhlitem);
315 HRESULT QueryHlink(
316 [in] DWORD grfHLQF,
317 [in] ULONG uHLID);
319 HRESULT GetHlink(
320 [in] ULONG uHLID,
321 [out] IHlink **ppihl);
323 HRESULT SetCurrentHlink(
324 [in] ULONG uHLID);
326 HRESULT Clone(
327 [in, unique] IUnknown *piunkOuter,
328 [in] REFIID riid,
329 [out, iid_is(riid)] IUnknown **ppiunkObj);
331 HRESULT Close(
332 [in] DWORD reserved);
336 /*****************************************************************************
337 * IHlinkTarget interface
340 object,
341 uuid(79EAC9C4-BAF9-11CE-8C82-00AA004BA90B),
342 pointer_default(unique)
344 interface IHlinkTarget : IUnknown
346 typedef [unique] IHlinkTarget *LPHLINKTARGET;
348 HRESULT SetBrowseContext(
349 [in, unique] IHlinkBrowseContext *pihlbc);
351 HRESULT GetBrowseContext(
352 [out] IHlinkBrowseContext **ppihlbc);
354 HRESULT Navigate(
355 [in] DWORD grfHLNF,
356 [in, unique] LPCWSTR pwzJumpLocation);
358 HRESULT GetMoniker(
359 [in,unique] LPCWSTR pwzLocation,
360 [in] DWORD dwAssign,
361 [out] IMoniker **ppimkLocation);
363 HRESULT GetFriendlyName(
364 [in,unique] LPCWSTR pwzLocation,
365 [out] LPWSTR *ppwzFriendlyName);
368 /*****************************************************************************
369 * IHlinkFrame interface
372 object,
373 uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b),
374 pointer_default(unique)
377 interface IHlinkFrame : IUnknown
379 typedef IHlinkFrame *LPHLINKFRAME;
381 HRESULT SetBrowseContext(
382 [in, unique] IHlinkBrowseContext * pihlbc);
383 HRESULT GetBrowseContext(
384 [out] IHlinkBrowseContext ** ppihlbc);
385 HRESULT Navigate(
386 [in] DWORD grfHLNF,
387 [in, unique] LPBC pbc,
388 [in, unique] IBindStatusCallback *pibsc,
389 [in, unique] IHlink *pihlNavigate);
390 HRESULT OnNavigate(
391 [in] DWORD grfHLNF,
392 [in, unique] IMoniker *pimkTarget,
393 [in, unique] LPCWSTR pwzLocation,
394 [in, unique] LPCWSTR pwzFriendlyName,
395 [in] DWORD dwreserved);
396 HRESULT UpdateHlink(
397 [in] ULONG uHLID,
398 [in, unique] IMoniker *pimkTarget,
399 [in, unique] LPCWSTR pwzLocation,
400 [in, unique] LPCWSTR pwzFriendlyName);