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