ole32: Fix buffer overrun in CLIPFORMAT_UserMarshal.
[wine] / include / intshcut.h
1 /*
2  * Copyright (C) 2007 Francois Gouget
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 #ifndef __WINE_INTSHCUT_H
20 #define __WINE_INTSHCUT_H
21
22 #include <isguids.h>
23
24 #define INTSHCUTAPI
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 #define E_FLAGS MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1000)
31 #define IS_E_EXEC_FAILED MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x2002)
32 #define URL_E_INVALID_SYNTAX MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1001)
33 #define URL_E_UNREGISTERED_PROTOCOL MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1002)
34
35 typedef enum iurl_seturl_flags {
36     IURL_SETURL_FL_GUESS_PROTOCOL=1,
37     IURL_SETURL_FL_USE_DEFAULT_PROTOCOL,
38     ALL_IURL_SETURL_FLAGS=(IURL_SETURL_FL_GUESS_PROTOCOL|IURL_SETURL_FL_USE_DEFAULT_PROTOCOL)
39 } IURL_SETURL_FLAGS;
40
41 typedef enum iurl_invokecommand_flags {
42     IURL_INVOKECOMMAND_FL_ALLOW_UI=1,
43     IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB,
44     ALL_IURL_INVOKECOMMAND_FLAGS=(IURL_INVOKECOMMAND_FL_ALLOW_UI|IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB)
45 } IURL_INVOKECOMMAND_FLAGS;
46
47 typedef struct urlinvokecommandinfoA {
48     DWORD dwcbSize;
49     DWORD dwFlags;
50     HWND hwndParent;
51     LPCSTR pcszVerb;
52 } URLINVOKECOMMANDINFOA, *PURLINVOKECOMMANDINFOA;
53 typedef const URLINVOKECOMMANDINFOA CURLINVOKECOMMANDINFOA;
54 typedef const URLINVOKECOMMANDINFOA *PCURLINVOKECOMMANDINFOA;
55
56 typedef struct urlinvokecommandinfoW {
57     DWORD dwcbSize;
58     DWORD dwFlags;
59     HWND hwndParent;
60     LPCWSTR pcszVerb;
61 } URLINVOKECOMMANDINFOW, *PURLINVOKECOMMANDINFOW;
62 typedef const URLINVOKECOMMANDINFOW CURLINVOKECOMMANDINFOW;
63 typedef const URLINVOKECOMMANDINFOW *PCURLINVOKECOMMANDINFOW;
64
65 #define INTERFACE IUniformResourceLocatorA
66 DECLARE_INTERFACE_(IUniformResourceLocatorA,IUnknown)
67 {
68     /*** IUnknown methods ***/
69     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, VOID **ppvObject) PURE;
70     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
71     STDMETHOD_(ULONG,Release)(THIS) PURE;
72     /*** IUniformResourceLocatorA methods ***/
73     STDMETHOD(SetURL)(THIS_ LPCSTR pcszURL, DWORD dwInFlags) PURE;
74     STDMETHOD(GetURL)(THIS_ LPSTR *ppszURL) PURE;
75     STDMETHOD(InvokeCommand)(THIS_ PURLINVOKECOMMANDINFOA pURLCommandInfo) PURE;
76 };
77 #undef INTERFACE
78
79 #define INTERFACE IUniformResourceLocatorW
80 DECLARE_INTERFACE_(IUniformResourceLocatorW,IUnknown)
81 {
82     /*** IUnknown methods ***/
83     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, VOID **ppvObject) PURE;
84     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
85     STDMETHOD_(ULONG,Release)(THIS) PURE;
86     /*** IUniformResourceLocatorW methods ***/
87     STDMETHOD(SetURL)(THIS_ LPCWSTR pcszURL, DWORD dwInFlags) PURE;
88     STDMETHOD(GetURL)(THIS_ LPWSTR *ppszURL) PURE;
89     STDMETHOD(InvokeCommand)(THIS_ PURLINVOKECOMMANDINFOW pURLCommandInfo) PURE;
90 };
91 #undef INTERFACE
92
93 DECL_WINELIB_TYPE_AW(URLINVOKECOMMANDINFO)
94 DECL_WINELIB_TYPE_AW(PURLINVOKECOMMANDINFO)
95 DECL_WINELIB_TYPE_AW(CURLINVOKECOMMANDINFO)
96 DECL_WINELIB_TYPE_AW(PCURLINVOKECOMMANDINFO)
97
98
99 typedef enum translateurl_in_flags {
100     TRANSLATEURL_FL_GUESS_PROTOCOL=1,
101     TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL
102 } TRANSLATEURL_IN_FLAGS;
103
104 HRESULT WINAPI TranslateURLA(LPCSTR, DWORD, LPSTR *);
105 HRESULT WINAPI TranslateURLW(LPCWSTR, DWORD, LPWSTR *);
106 #define TranslateURL WINELIB_NAME_AW(TranslateURL)
107
108 BOOL    WINAPI InetIsOffline(DWORD);
109
110 #ifdef __cplusplus
111 }
112 #endif
113
114 #endif  /* __WINE_INTSHCUT_H */