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