2 * Copyright (C) 2007 Francois Gouget
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 #ifndef __WINE_INTSHCUT_H
20 #define __WINE_INTSHCUT_H
27 #define INTSHCUTAPI DECLSPEC_IMPORT
34 #define E_FLAGS MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1000)
35 #define IS_E_EXEC_FAILED MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x2002)
36 #define URL_E_INVALID_SYNTAX MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1001)
37 #define URL_E_UNREGISTERED_PROTOCOL MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1002)
39 typedef enum iurl_seturl_flags
{
40 IURL_SETURL_FL_GUESS_PROTOCOL
=1,
41 IURL_SETURL_FL_USE_DEFAULT_PROTOCOL
,
42 ALL_IURL_SETURL_FLAGS
=(IURL_SETURL_FL_GUESS_PROTOCOL
|IURL_SETURL_FL_USE_DEFAULT_PROTOCOL
)
45 typedef enum iurl_invokecommand_flags
{
46 IURL_INVOKECOMMAND_FL_ALLOW_UI
=1,
47 IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB
,
48 ALL_IURL_INVOKECOMMAND_FLAGS
=(IURL_INVOKECOMMAND_FL_ALLOW_UI
|IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB
)
49 } IURL_INVOKECOMMAND_FLAGS
;
51 typedef struct urlinvokecommandinfoA
{
56 } URLINVOKECOMMANDINFOA
, *PURLINVOKECOMMANDINFOA
;
57 typedef const URLINVOKECOMMANDINFOA CURLINVOKECOMMANDINFOA
;
58 typedef const URLINVOKECOMMANDINFOA
*PCURLINVOKECOMMANDINFOA
;
60 typedef struct urlinvokecommandinfoW
{
65 } URLINVOKECOMMANDINFOW
, *PURLINVOKECOMMANDINFOW
;
66 typedef const URLINVOKECOMMANDINFOW CURLINVOKECOMMANDINFOW
;
67 typedef const URLINVOKECOMMANDINFOW
*PCURLINVOKECOMMANDINFOW
;
69 #define INTERFACE IUniformResourceLocatorA
70 DECLARE_INTERFACE_(IUniformResourceLocatorA
,IUnknown
)
72 /*** IUnknown methods ***/
73 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, VOID
**ppvObject
) PURE
;
74 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
75 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
76 /*** IUniformResourceLocatorA methods ***/
77 STDMETHOD(SetURL
)(THIS_ LPCSTR pcszURL
, DWORD dwInFlags
) PURE
;
78 STDMETHOD(GetURL
)(THIS_ LPSTR
*ppszURL
) PURE
;
79 STDMETHOD(InvokeCommand
)(THIS_ PURLINVOKECOMMANDINFOA pURLCommandInfo
) PURE
;
83 #define INTERFACE IUniformResourceLocatorW
84 DECLARE_INTERFACE_(IUniformResourceLocatorW
,IUnknown
)
86 /*** IUnknown methods ***/
87 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, VOID
**ppvObject
) PURE
;
88 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
89 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
90 /*** IUniformResourceLocatorW methods ***/
91 STDMETHOD(SetURL
)(THIS_ LPCWSTR pcszURL
, DWORD dwInFlags
) PURE
;
92 STDMETHOD(GetURL
)(THIS_ LPWSTR
*ppszURL
) PURE
;
93 STDMETHOD(InvokeCommand
)(THIS_ PURLINVOKECOMMANDINFOW pURLCommandInfo
) PURE
;
97 DECL_WINELIB_TYPE_AW(URLINVOKECOMMANDINFO
)
98 DECL_WINELIB_TYPE_AW(PURLINVOKECOMMANDINFO
)
99 DECL_WINELIB_TYPE_AW(CURLINVOKECOMMANDINFO
)
100 DECL_WINELIB_TYPE_AW(PCURLINVOKECOMMANDINFO
)
103 typedef enum translateurl_in_flags
{
104 TRANSLATEURL_FL_GUESS_PROTOCOL
=1,
105 TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL
106 } TRANSLATEURL_IN_FLAGS
;
108 INTSHCUTAPI HRESULT WINAPI
TranslateURLA(LPCSTR
, DWORD
, LPSTR
*);
109 INTSHCUTAPI HRESULT WINAPI
TranslateURLW(LPCWSTR
, DWORD
, LPWSTR
*);
110 #define TranslateURL WINELIB_NAME_AW(TranslateURL)
111 INTSHCUTAPI BOOL WINAPI
InetIsOffline(DWORD
);
117 #endif /* __WINE_INTSHCUT_H */