[Author: zork]
[google-gears.git] / gears / third_party / passthru_app / urlmon_ie7_extras.h
blob086e564dec6b5c5d43615b766bae07cfb0daabb4
1 // Copyright 2007, Google Inc.
2 //
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are met:
5 //
6 // 1. Redistributions of source code must retain the above copyright notice,
7 // this list of conditions and the following disclaimer.
8 // 2. Redistributions in binary form must reproduce the above copyright notice,
9 // this list of conditions and the following disclaimer in the documentation
10 // and/or other materials provided with the distribution.
11 // 3. Neither the name of Google Inc. nor the names of its contributors may be
12 // used to endorse or promote products derived from this software without
13 // specific prior written permission.
15 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
16 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
17 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
18 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 // Contains some urlmon.h definitions that are found in the Windows Vista
27 // Platform SDK. This file is can be used to program to those definitions
28 // without having the Vista PSDK.
30 // Only a small number of interface definitions have been hoisted:
31 // IInternetProtocolEx
32 // IUri
33 // IWinInetCacheHints
34 // IWinInetCacheHints2
36 // We only define these if they have not already been defined in urlmon.h
37 // so this interface file should be safe to use with the Vista PSDK.
39 #ifndef GEARS_THIRD_PARTY_PASSTHRU_APP_URLMON_IE7_EXTRAS_H__
40 #define GEARS_THIRD_PARTY_PASSTHRU_APP_URLMON_IE7_EXTRAS_H__
42 #include <urlmon.h>
44 // Forward declarations
46 #ifndef __IInternetProtocolEx_FWD_DEFINED__
47 #define __IInternetProtocolEx_FWD_DEFINED__
48 typedef interface IInternetProtocolEx IInternetProtocolEx;
49 #endif /* __IInternetProtocolEx_FWD_DEFINED__ */
51 #ifndef __IUri_FWD_DEFINED__
52 #define __IUri_FWD_DEFINED__
53 typedef interface IUri IUri;
54 #endif /* __IUri_FWD_DEFINED__ */
56 #ifndef __IWinInetCacheHints_FWD_DEFINED__
57 #define __IWinInetCacheHints_FWD_DEFINED__
58 typedef interface IWinInetCacheHints IWinInetCacheHints;
59 #endif /* __IWinInetCacheHints_FWD_DEFINED__ */
61 #ifndef __IWinInetCacheHints2_FWD_DEFINED__
62 #define __IWinInetCacheHints2_FWD_DEFINED__
63 typedef interface IWinInetCacheHints2 IWinInetCacheHints2;
64 #endif /* __IWinInetCacheHints2_FWD_DEFINED__ */
67 // Interface definitions
69 #ifndef __IInternetProtocolEx_INTERFACE_DEFINED__
70 #define __IInternetProtocolEx_INTERFACE_DEFINED__
71 MIDL_INTERFACE("C7A98E66-1010-492c-A1C8-C809E1F75905")
72 IInternetProtocolEx : public IInternetProtocol
74 public:
75 virtual HRESULT STDMETHODCALLTYPE StartEx(
76 /* [in] */ IUri *pUri,
77 /* [in] */ IInternetProtocolSink *pOIProtSink,
78 /* [in] */ IInternetBindInfo *pOIBindInfo,
79 /* [in] */ DWORD grfPI,
80 /* [in] */ HANDLE_PTR dwReserved) = 0;
82 // EXTERN_C const IID IID_IInternetProtocolEx;
83 #define IID_IInternetProtocolEx __uuidof(IInternetProtocolEx)
84 #endif /* __IInternetProtocolEx_INTERFACE_DEFINED__ */
86 #ifndef __IUri_INTERFACE_DEFINED__
87 #define __IUri_INTERFACE_DEFINED__
88 typedef /* [public][public][public][public][public][helpstring] */
89 enum __MIDL_IUri_0001
90 { Uri_PROPERTY_ABSOLUTE_URI = 0,
91 Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI,
92 Uri_PROPERTY_AUTHORITY = ( Uri_PROPERTY_STRING_START + 1 ) ,
93 Uri_PROPERTY_DISPLAY_URI = ( Uri_PROPERTY_AUTHORITY + 1 ) ,
94 Uri_PROPERTY_DOMAIN = ( Uri_PROPERTY_DISPLAY_URI + 1 ) ,
95 Uri_PROPERTY_EXTENSION = ( Uri_PROPERTY_DOMAIN + 1 ) ,
96 Uri_PROPERTY_FRAGMENT = ( Uri_PROPERTY_EXTENSION + 1 ) ,
97 Uri_PROPERTY_HOST = ( Uri_PROPERTY_FRAGMENT + 1 ) ,
98 Uri_PROPERTY_PASSWORD = ( Uri_PROPERTY_HOST + 1 ) ,
99 Uri_PROPERTY_PATH = ( Uri_PROPERTY_PASSWORD + 1 ) ,
100 Uri_PROPERTY_PATH_AND_QUERY = ( Uri_PROPERTY_PATH + 1 ) ,
101 Uri_PROPERTY_QUERY = ( Uri_PROPERTY_PATH_AND_QUERY + 1 ) ,
102 Uri_PROPERTY_RAW_URI = ( Uri_PROPERTY_QUERY + 1 ) ,
103 Uri_PROPERTY_SCHEME_NAME = ( Uri_PROPERTY_RAW_URI + 1 ) ,
104 Uri_PROPERTY_USER_INFO = ( Uri_PROPERTY_SCHEME_NAME + 1 ) ,
105 Uri_PROPERTY_USER_NAME = ( Uri_PROPERTY_USER_INFO + 1 ) ,
106 Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME,
107 Uri_PROPERTY_HOST_TYPE = ( Uri_PROPERTY_STRING_LAST + 1 ) ,
108 Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE,
109 Uri_PROPERTY_PORT = ( Uri_PROPERTY_DWORD_START + 1 ) ,
110 Uri_PROPERTY_SCHEME = ( Uri_PROPERTY_PORT + 1 ) ,
111 Uri_PROPERTY_ZONE = ( Uri_PROPERTY_SCHEME + 1 ) ,
112 Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE
113 } Uri_PROPERTY;
115 typedef /* [public][helpstring] */
116 enum __MIDL_IUri_0002
117 { Uri_HOST_UNKNOWN = 0,
118 Uri_HOST_DNS = ( Uri_HOST_UNKNOWN + 1 ) ,
119 Uri_HOST_IPV4 = ( Uri_HOST_DNS + 1 ) ,
120 Uri_HOST_IPV6 = ( Uri_HOST_IPV4 + 1 ) ,
121 Uri_HOST_IDN = ( Uri_HOST_IPV6 + 1 )
122 } Uri_HOST_TYPE;
124 MIDL_INTERFACE("A39EE748-6A27-4817-A6F2-13914BEF5890")
125 IUri : public IUnknown
127 public:
128 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyBSTR(
129 /* [range][in] */ Uri_PROPERTY uriProp,
130 /* [out] */ BSTR *pbstrProperty,
131 /* [in] */ DWORD dwFlags) = 0;
133 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyLength(
134 /* [range][in] */ Uri_PROPERTY uriProp,
135 /* [out] */ DWORD *pcchProperty,
136 /* [in] */ DWORD dwFlags) = 0;
138 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyDWORD(
139 /* [range][in] */ Uri_PROPERTY uriProp,
140 /* [out] */ DWORD *pdwProperty,
141 /* [in] */ DWORD dwFlags) = 0;
143 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE HasProperty(
144 /* [range][in] */ Uri_PROPERTY uriProp,
145 /* [out] */ BOOL *pfHasProperty) = 0;
147 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAbsoluteUri(
148 /* [out] */ BSTR *pbstrAbsoluteUri) = 0;
150 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAuthority(
151 /* [out] */ BSTR *pbstrAuthority) = 0;
153 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDisplayUri(
154 /* [out] */ BSTR *pbstrDisplayString) = 0;
156 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDomain(
157 /* [out] */ BSTR *pbstrDomain) = 0;
159 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetExtension(
160 /* [out] */ BSTR *pbstrExtension) = 0;
162 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFragment(
163 /* [out] */ BSTR *pbstrFragment) = 0;
165 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHost(
166 /* [out] */ BSTR *pbstrHost) = 0;
168 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPassword(
169 /* [out] */ BSTR *pbstrPassword) = 0;
171 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPath(
172 /* [out] */ BSTR *pbstrPath) = 0;
174 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPathAndQuery(
175 /* [out] */ BSTR *pbstrPathAndQuery) = 0;
177 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetQuery(
178 /* [out] */ BSTR *pbstrQuery) = 0;
180 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRawUri(
181 /* [out] */ BSTR *pbstrRawUri) = 0;
183 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSchemeName(
184 /* [out] */ BSTR *pbstrSchemeName) = 0;
186 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetUserInfo(
187 /* [out] */ BSTR *pbstrUserInfo) = 0;
189 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetUserName(
190 /* [out] */ BSTR *pbstrUserName) = 0;
192 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHostType(
193 /* [out] */ DWORD *pdwHostType) = 0;
195 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPort(
196 /* [out] */ DWORD *pdwPort) = 0;
198 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetScheme(
199 /* [out] */ DWORD *pdwScheme) = 0;
201 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetZone(
202 /* [out] */ DWORD *pdwZone) = 0;
204 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetProperties(
205 /* [out] */ LPDWORD pdwFlags) = 0;
207 virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsEqual(
208 /* [in] */ IUri *pUri,
209 /* [out] */ BOOL *pfEqual) = 0;
211 // EXTERN_C const IID IID_IUri;
212 #define IID_IUri __uuidof(IUri)
213 #endif /* __IUri_INTERFACE_DEFINED__ */
215 #ifndef __IWinInetCacheHints_INTERFACE_DEFINED__
216 #define __IWinInetCacheHints_INTERFACE_DEFINED__
217 typedef /* [unique] */ IWinInetCacheHints *LPWININETCACHEHINTS;
218 MIDL_INTERFACE("DD1EC3B3-8391-4fdb-A9E6-347C3CAAA7DD")
219 IWinInetCacheHints : public IUnknown
221 public:
222 virtual HRESULT STDMETHODCALLTYPE SetCacheExtension(
223 /* [in] */ LPCWSTR pwzExt,
224 /* [size_is][out][in] */ LPVOID pszCacheFile,
225 /* [out][in] */ DWORD *pcbCacheFile,
226 /* [out][in] */ DWORD *pdwWinInetError,
227 /* [out][in] */ DWORD *pdwReserved) = 0;
230 // EXTERN_C const IID IID_IWinInetCacheHints;
231 #define IID_IWinInetCacheHints __uuidof(IWinInetCacheHints)
232 #endif /* __IWinInetCacheHints_INTERFACE_DEFINED__ */
235 #ifndef __IWinInetCacheHints2_INTERFACE_DEFINED__
236 #define __IWinInetCacheHints2_INTERFACE_DEFINED__
237 typedef /* [unique] */ IWinInetCacheHints2 *LPWININETCACHEHINTS2;
238 MIDL_INTERFACE("7857AEAC-D31F-49bf-884E-DD46DF36780A")
239 IWinInetCacheHints2 : public IWinInetCacheHints
241 public:
242 virtual HRESULT STDMETHODCALLTYPE SetCacheExtension2(
243 /* [in] */ LPCWSTR pwzExt,
244 /* [size_is][out] */ WCHAR *pwzCacheFile,
245 /* [out][in] */ DWORD *pcchCacheFile,
246 /* [out] */ DWORD *pdwWinInetError,
247 /* [out] */ DWORD *pdwReserved) = 0;
249 // EXTERN_C const IID IID_IWinInetCacheHints2;
250 #define IID_IWinInetCacheHints2 __uuidof(IWinInetCacheHints2)
251 #endif /* __IWinInetCacheHints2_INTERFACE_DEFINED__ */
254 // An additional QUERYOPTION defined for IE7 in the platform SDK for Vista
255 enum ExtraQUERYOPTION {
256 QUERY_USES_HISTORYFOLDER = QUERY_IS_SAFE + 1
260 #endif // GEARS_THIRD_PARTY_PASSTHRU_APP_URLMON_IE7_EXTRAS_H__