1 // Copyright 2007, Google Inc.
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are met:
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
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__
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
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] */
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
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 )
124 MIDL_INTERFACE("A39EE748-6A27-4817-A6F2-13914BEF5890")
125 IUri
: public IUnknown
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
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
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__