Revert "kernel32: Exit from initial thread with ExitThread not by ExitProcess."
[wine/multimedia.git] / include / hlink.idl
blob884c4be5ec03a044d6785f235039ce4cedf0cb3b
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 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*);")
35 cpp_quote("HRESULT WINAPI HlinkIsShortcut(LPCWSTR);")
36 cpp_quote("HRESULT WINAPI HlinkTranslateURL(LPCWSTR,DWORD,LPWSTR*);")
38 /*****************************************************************************
39 * IHlink interface
42 object,
43 uuid(79EAC9C3-BAF9-11CE-8C82-00AA004BA90B),
44 pointer_default(unique)
46 interface IHlink: IUnknown
48 typedef [unique] IHlink *LPHLINK;
50 typedef enum {
51 HLNF_INTERNALJUMP = 0x00000001,
52 HLNF_OPENINNEWWINDOW = 0x00000002,
53 HLNF_NAVIGATINGBACK = 0x00000004,
54 HLNF_NAVIGATINGFORWARD = 0x00000008,
55 HLNF_NAVIGATINGTOSTACKITEM = 0x00000010,
56 HLNF_CREATENOHISTORY = 0x00000020
57 } HLNF;
59 typedef enum {
60 HLINKGETREF_DEFAULT = 0,
61 HLINKGETREF_ABSOLUTE = 1,
62 HLINKGETREF_RELATIVE = 2,
63 } HLINKGETREF;
65 typedef enum {
66 HLFNAMEF_DEFAULT = 0x00000000,
67 HLFNAMEF_TRYCACHE = 0x00000001,
68 HLFNAMEF_TRYPRETTYTARGET = 0x00000002,
69 HLFNAMEF_TRYFULLTARGET = 0x00000004,
70 HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008
71 } HLFNAMEF;
73 typedef enum {
74 HLINKMISC_RELATIVE = 0x00000001,
75 } HLINKMISC;
77 typedef enum {
78 HLINKSETF_TARGET = 0x00000001,
79 HLINKSETF_LOCATION = 0x00000002
80 } HLINKSETF;
82 HRESULT SetHlinkSite(
83 [in, unique] IHlinkSite *pihlSite,
84 [in] DWORD dwSiteData);
86 HRESULT GetHlinkSite(
87 [out] IHlinkSite **ppihlSite,
88 [out] DWORD *pdwSiteData);
90 HRESULT SetMonikerReference(
91 [in] DWORD grfHLSETF,
92 [in, unique] IMoniker *pimkTarget,
93 [in, unique] LPCWSTR pwzLocation);
95 HRESULT GetMonikerReference(
96 [in] DWORD dwWhichRef,
97 [out] IMoniker **ppimkTarget,
98 [out] LPWSTR *ppwzLocation);
100 HRESULT SetStringReference(
101 [in] DWORD grfHLSETF,
102 [in, unique] LPCWSTR pwzTarget,
103 [in, unique] LPCWSTR pwzLocation);
105 HRESULT GetStringReference(
106 [in] DWORD dwWhichRef,
107 [out] LPWSTR *ppwzTarget,
108 [out] LPWSTR *ppwzLocation);
110 HRESULT SetFriendlyName(
111 [in, unique] LPCWSTR pwzFriendlyName);
113 HRESULT GetFriendlyName(
114 [in] DWORD grfHLFNAMEF,
115 [out] LPWSTR *ppwzFriendlyName);
117 HRESULT SetTargetFrameName(
118 [in, unique] LPCWSTR pwzTargetFrameName);
120 HRESULT GetTargetFrameName(
121 [out] LPWSTR *ppwzTargetFrameName);
123 HRESULT GetMiscStatus(
124 [out] DWORD *pdwStatus);
126 HRESULT Navigate(
127 [in] DWORD grfHLNF,
128 [in, unique] LPBC pibc,
129 [in, unique] IBindStatusCallback *pibsc,
130 [in, unique] IHlinkBrowseContext *pihlbc);
132 HRESULT SetAdditionalParams(
133 [in, unique] LPCWSTR pwzAdditionalParams);
135 HRESULT GetAdditionalParams(
136 [out] LPWSTR *ppwzAdditionalParams);
139 /*****************************************************************************
140 * IHlink interface
143 object,
144 uuid(79EAC9C2-BAF9-11CE-8C82-00AA004BA90B),
145 pointer_default(unique)
147 interface IHlinkSite: IUnknown
149 typedef [unique] IHlinkSite *LPHLINKSITE;
151 typedef enum {
152 HLINKWHICHMK_CONTAINER = 1,
153 HLINKWHICHMK_BASE = 2,
154 } HLINKWHICHMK;
156 HRESULT QueryService(
157 [in] DWORD dwSiteData,
158 [in] REFGUID guidService,
159 [in] REFIID riid,
160 [out, iid_is(riid)] IUnknown **ppiunk);
162 HRESULT GetMoniker(
163 [in] DWORD dwSiteData,
164 [in] DWORD dwAssign,
165 [in] DWORD dwWhich,
166 [out] IMoniker **ppimk);
168 HRESULT ReadyToNavigate(
169 [in] DWORD dwSiteData,
170 [in] DWORD dwReserved);
172 HRESULT OnNavigationComplete(
173 [in] DWORD dwSiteData,
174 [in] DWORD dwreserved,
175 [in] HRESULT hrError,
176 [in, unique] LPCWSTR pwzError);
179 /*****************************************************************************
180 * IEnumHLITEM interface
183 local,
184 object,
185 uuid(79EAC9C6-BAF9-11CE-8C82-00AA004BA90B),
186 pointer_default(unique)
188 interface IEnumHLITEM : IUnknown
190 typedef [unique] IEnumHLITEM *LPENUMHLITEM;
192 typedef struct tagHLITEM {
193 ULONG uHLID;
194 LPWSTR pwzFriendlyName;
195 } HLITEM;
196 typedef [unique] HLITEM *LPHLITEM;
198 HRESULT Next(
199 [in] ULONG celt,
200 [out] HLITEM *rgelt,
201 [out] ULONG *pceltFetched);
203 HRESULT Skip(
204 [in] ULONG celt);
206 HRESULT Reset();
208 HRESULT Clone(
209 [out] IEnumHLITEM **ppienumhlitem);
212 /*****************************************************************************
213 * IHlinkBrowseContext interface
216 local,
217 object,
218 uuid(79EAC9C7-BAF9-11CE-8C82-00AA004BA90B),
219 pointer_default(unique)
221 interface IHlinkBrowseContext : IUnknown
223 typedef [unique] IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
225 enum {
226 HLTB_DOCKEDLEFT = 0,
227 HLTB_DOCKEDTOP = 1,
228 HLTB_DOCKEDRIGHT = 2,
229 HLTB_DOCKEDBOTTOM = 3,
230 HLTB_FLOATING = 4
233 typedef struct _tagHLTBINFO {
234 ULONG uDockType;
235 RECT rcTbPos;
236 } HLTBINFO;
238 enum {
239 HLBWIF_HASFRAMEWNDINFO = 0x00000001,
240 HLBWIF_HASDOCWNDINFO = 0x00000002,
241 HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004,
242 HLBWIF_DOCWNDMAXIMIZED = 0x00000008,
243 HLBWIF_HASWEBTOOLBARINFO = 0x00000010,
244 HLBWIF_WEBTOOLBARHIDDEN = 0x00000020
247 typedef struct _tagHLBWINFO {
248 ULONG cbSize;
249 DWORD grfHLBWIF;
250 RECT rcFramePos;
251 RECT rcDocPos;
252 HLTBINFO hltbinfo;
253 } HLBWINFO;
255 typedef [unique] HLBWINFO *LPHLBWINFO;
257 enum {
258 HLID_INVALID = 0x00000000,
259 HLID_PREVIOUS = 0xFFFFFFFF,
260 HLID_NEXT = 0xFFFFFFFE,
261 HLID_CURRENT = 0xFFFFFFFD,
262 HLID_STACKBOTTOM = 0xFFFFFFFC,
263 HLID_STACKTOP = 0xFFFFFFFB
266 enum {
267 HLQF_ISVALID = 0x00000001,
268 HLQF_ISCURRENT = 0x00000002
271 HRESULT Register(
272 [in] DWORD reserved,
273 [in, unique] IUnknown *piunk,
274 [in, unique] IMoniker *pimk,
275 [out] DWORD *pdwRegister);
277 HRESULT GetObject(
278 [in, unique] IMoniker *pimk,
279 [in] BOOL fBindIfRootRegistered,
280 [out] IUnknown **ppiunk);
282 HRESULT Revoke(
283 [in] DWORD dwRegister);
285 HRESULT SetBrowseWindowInfo(
286 [in, unique] HLBWINFO *phlbwi);
288 HRESULT GetBrowseWindowInfo(
289 [out] HLBWINFO *phlbwi);
291 HRESULT SetInitialHlink(
292 [in, unique] IMoniker * pimkTarget,
293 [in, unique] LPCWSTR pwzLocation,
294 [in, unique] LPCWSTR pwzFriendlyName);
296 HRESULT OnNavigateHlink(
297 [in] DWORD grfHLNF,
298 [in, unique] IMoniker *pimkTarget,
299 [in, unique] LPCWSTR pwzLocation,
300 [in, unique] LPCWSTR pwzFriendlyName,
301 [out] ULONG *puHLID);
303 HRESULT UpdateHlink(
304 [in] ULONG uHLID,
305 [in, unique] IMoniker *pimkTarget,
306 [in, unique] LPCWSTR pwzLocation,
307 [in, unique] LPCWSTR pwzFriendlyName);
309 HRESULT EnumNavigationStack(
310 [in] DWORD dwReserved,
311 [in] DWORD grfHLFNAMEF,
312 [out] IEnumHLITEM **ppienumhlitem);
314 HRESULT QueryHlink(
315 [in] DWORD grfHLQF,
316 [in] ULONG uHLID);
318 HRESULT GetHlink(
319 [in] ULONG uHLID,
320 [out] IHlink **ppihl);
322 HRESULT SetCurrentHlink(
323 [in] ULONG uHLID);
325 HRESULT Clone(
326 [in, unique] IUnknown *piunkOuter,
327 [in] REFIID riid,
328 [out, iid_is(riid)] IUnknown **ppiunkObj);
330 HRESULT Close(
331 [in] DWORD reserved);
335 /*****************************************************************************
336 * IHlinkTarget interface
339 object,
340 uuid(79EAC9C4-BAF9-11CE-8C82-00AA004BA90B),
341 pointer_default(unique)
343 interface IHlinkTarget : IUnknown
345 typedef [unique] IHlinkTarget *LPHLINKTARGET;
347 HRESULT SetBrowseContext(
348 [in, unique] IHlinkBrowseContext *pihlbc);
350 HRESULT GetBrowseContext(
351 [out] IHlinkBrowseContext **ppihlbc);
353 HRESULT Navigate(
354 [in] DWORD grfHLNF,
355 [in, unique] LPCWSTR pwzJumpLocation);
357 HRESULT GetMoniker(
358 [in,unique] LPCWSTR pwzLocation,
359 [in] DWORD dwAssign,
360 [out] IMoniker **ppimkLocation);
362 HRESULT GetFriendlyName(
363 [in,unique] LPCWSTR pwzLocation,
364 [out] LPWSTR *ppwzFriendlyName);
367 /*****************************************************************************
368 * IHlinkFrame interface
371 object,
372 uuid(79eac9c5-baf9-11ce-8c82-00aa004ba90b),
373 pointer_default(unique)
376 interface IHlinkFrame : IUnknown
378 typedef IHlinkFrame *LPHLINKFRAME;
380 HRESULT SetBrowseContext(
381 [in, unique] IHlinkBrowseContext * pihlbc);
382 HRESULT GetBrowseContext(
383 [out] IHlinkBrowseContext ** ppihlbc);
384 HRESULT Navigate(
385 [in] DWORD grfHLNF,
386 [in, unique] LPBC pbc,
387 [in, unique] IBindStatusCallback *pibsc,
388 [in, unique] IHlink *pihlNavigate);
389 HRESULT OnNavigate(
390 [in] DWORD grfHLNF,
391 [in, unique] IMoniker *pimkTarget,
392 [in, unique] LPCWSTR pwzLocation,
393 [in, unique] LPCWSTR pwzFriendlyName,
394 [in] DWORD dwreserved);
395 HRESULT UpdateHlink(
396 [in] ULONG uHLID,
397 [in, unique] IMoniker *pimkTarget,
398 [in, unique] LPCWSTR pwzLocation,
399 [in, unique] LPCWSTR pwzFriendlyName);