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