Jacek Caban | b31fedc | 2005-08-08 11:08:27 +0000 | [diff] [blame] | 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 |
Jonathan Ernst | 360a3f9 | 2006-05-18 14:49:52 +0200 | [diff] [blame] | 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
Jacek Caban | b31fedc | 2005-08-08 11:08:27 +0000 | [diff] [blame] | 17 | */ |
| 18 | |
| 19 | import "urlmon.idl"; |
| 20 | |
Mike McCormack | bf7eb62 | 2006-06-06 19:24:14 +0900 | [diff] [blame] | 21 | interface IHlink; |
Jacek Caban | b31fedc | 2005-08-08 11:08:27 +0000 | [diff] [blame] | 22 | interface IHlinkSite; |
Mike McCormack | bf7eb62 | 2006-06-06 19:24:14 +0900 | [diff] [blame] | 23 | interface IHlinkFrame; |
Jacek Caban | b31fedc | 2005-08-08 11:08:27 +0000 | [diff] [blame] | 24 | interface IHlinkBrowseContext; |
| 25 | |
Mike McCormack | 546916f | 2006-07-20 15:25:47 +0900 | [diff] [blame] | 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**);") |
Francois Gouget | 7a94a17 | 2007-08-08 10:51:45 +0200 | [diff] [blame] | 29 | cpp_quote("HRESULT WINAPI HlinkCreateExtensionServices(LPCWSTR, HWND, LPCWSTR, LPCWSTR, IUnknown*, REFIID, void**);") |
Mike McCormack | 546916f | 2006-07-20 15:25:47 +0900 | [diff] [blame] | 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*);") |
Jacek Caban | 506e093 | 2006-08-02 21:29:58 +0200 | [diff] [blame] | 36 | cpp_quote("HRESULT WINAPI HlinkIsShortcut(LPCWSTR);") |
Jacek Caban | 35a8c6a | 2006-08-02 21:30:46 +0200 | [diff] [blame] | 37 | cpp_quote("HRESULT WINAPI HlinkTranslateURL(LPCWSTR,DWORD,LPWSTR*);") |
Rob Shearman | 80d67e3 | 2008-03-31 22:00:09 +0100 | [diff] [blame] | 38 | cpp_quote("HRESULT WINAPI HlinkParseDisplayName(LPBC,LPCWSTR,BOOL,ULONG*,IMoniker**);") |
Jacek Caban | e888e88 | 2008-01-29 00:20:59 +0100 | [diff] [blame] | 39 | cpp_quote("HRESULT WINAPI HlinkResolveMonikerForData(LPMONIKER,DWORD,LPBC,ULONG,FORMATETC*,IBindStatusCallback*,LPMONIKER);") |
Mike McCormack | bf7eb62 | 2006-06-06 19:24:14 +0900 | [diff] [blame] | 40 | |
Jacek Caban | cc253a2 | 2007-11-12 01:23:59 +0100 | [diff] [blame] | 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 | |
Rob Shearman | 82fa360 | 2007-08-23 15:44:07 +0100 | [diff] [blame] | 50 | cpp_quote("#define SID_SHlinkFrame IID_IHlinkFrame") |
| 51 | |
Jacek Caban | b31fedc | 2005-08-08 11:08:27 +0000 | [diff] [blame] | 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 | * IHlink 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 | |
Jacek Caban | a41cab9 | 2007-10-17 15:16:01 +0200 | [diff] [blame] | 291 | cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") |
| 292 | cpp_quote("#undef GetObject") |
| 293 | cpp_quote("#endif") |
| 294 | |
Jacek Caban | b31fedc | 2005-08-08 11:08:27 +0000 | [diff] [blame] | 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 | } |
Aric Stewart | cfccc16 | 2005-09-19 15:25:32 +0000 | [diff] [blame] | 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 | } |
Aric Stewart | 09af64c | 2008-04-28 13:44:16 -0500 | [diff] [blame] | 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 | } |