Fix for 134453: fix prefast warnings
[platform/upstream/coreclr.git] / src / inc / dlwrap.h
1 //
2 // Copyright (c) Microsoft. All rights reserved.
3 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
4 //
5
6
7 // 
8
9 #ifndef _DLWRAP_H
10 #define _DLWRAP_H
11
12 //include this file if you get contract violation because of delayload
13
14 //nothrow implementations
15
16 #if defined(VER_H) && !defined (GetFileVersionInfoSizeW_NoThrow)
17 DWORD 
18 GetFileVersionInfoSizeW_NoThrow(
19         LPCWSTR lptstrFilename, /* Filename of version stamped file */
20         LPDWORD lpdwHandle
21         );
22 #endif
23
24 #if defined(VER_H) && !defined (GetFileVersionInfoW_NoThrow)
25 BOOL
26 GetFileVersionInfoW_NoThrow(
27         LPCWSTR lptstrFilename, /* Filename of version stamped file */
28         DWORD dwHandle,         /* Information from GetFileVersionSize */
29         DWORD dwLen,            /* Length of buffer for info */
30         LPVOID lpData
31         );
32 #endif
33
34 #if defined(VER_H) && !defined (VerQueryValueW_NoThrow)
35 BOOL
36 VerQueryValueW_NoThrow(
37         const LPVOID pBlock,
38         LPCWSTR lpSubBlock,
39         LPVOID * lplpBuffer,
40         PUINT puLen
41         );
42 #endif
43
44 #if defined(_WININET_) && !defined (CreateUrlCacheEntryW_NoThrow)
45 __success(return) 
46 BOOL 
47 CreateUrlCacheEntryW_NoThrow(
48         IN LPCWSTR lpszUrlName,
49         IN DWORD dwExpectedFileSize,
50         IN LPCWSTR lpszFileExtension,
51         __out_ecount(MAX_LONGPATH+1) LPWSTR lpszFileName,
52         IN DWORD dwReserved
53         );
54 #endif
55
56 #if defined(_WININET_) && !defined (CommitUrlCacheEntryW_NoThrow)
57 BOOL  
58 CommitUrlCacheEntryW_NoThrow(
59         IN LPCWSTR lpszUrlName,
60         IN LPCWSTR lpszLocalFileName,
61         IN FILETIME ExpireTime,
62         IN FILETIME LastModifiedTime,
63         IN DWORD CacheEntryType,
64         IN LPCWSTR lpHeaderInfo,
65         IN DWORD dwHeaderSize,
66         IN LPCWSTR lpszFileExtension,
67         IN LPCWSTR lpszOriginalUrl
68         );
69 #endif
70
71 #if defined(_WININET_) && !defined (InternetTimeToSystemTimeA_NoThrow)
72 BOOL 
73 InternetTimeToSystemTimeA_NoThrow(
74         IN  LPCSTR lpszTime,         // NULL terminated string
75         OUT SYSTEMTIME *pst,         // output in GMT time
76         IN  DWORD dwReserved
77         );
78 #endif
79
80 #if defined(__urlmon_h__) && !defined(CoInternetCreateSecurityManager_NoThrow)
81 HRESULT 
82 CoInternetCreateSecurityManager_NoThrow(
83         IServiceProvider *pSP,
84         IInternetSecurityManager **ppSM, 
85         DWORD dwReserved
86         );
87 #endif
88
89 #if defined(__urlmon_h__) && !defined(URLDownloadToCacheFileW_NoThrow)
90 HRESULT 
91 URLDownloadToCacheFileW_NoThrow(
92         LPUNKNOWN lpUnkcaller,
93         LPCWSTR szURL,
94         __out_ecount(dwBufLength) LPWSTR szFileName,
95         DWORD dwBufLength,
96         DWORD dwReserved,
97         IBindStatusCallback *pBSC
98         );
99 #endif
100
101 #if defined(__urlmon_h__) && !defined(CoInternetGetSession_NoThrow)
102 HRESULT 
103 CoInternetGetSession_NoThrow(
104         WORD dwSessionMode,
105         IInternetSession **ppIInternetSession,
106         DWORD dwReserved
107         );
108 #endif
109
110 #if defined(__urlmon_h__) && !defined(CopyBindInfo_NoThrow)
111 HRESULT 
112 CopyBindInfo_NoThrow( 
113         const BINDINFO * pcbiSrc, BINDINFO * pbiDest
114         );
115 #endif
116
117
118
119 //overrides
120 #undef InternetTimeToSystemTimeA           
121 #undef CommitUrlCacheEntryW                    
122 #undef HttpQueryInfoA                                 
123 #undef InternetCloseHandle                         
124 #undef HttpSendRequestA                            
125 #undef HttpOpenRequestA                            
126 #undef InternetConnectA                              
127 #undef InternetOpenA                                  
128 #undef InternetReadFile                               
129 #undef CreateUrlCacheEntryW                     
130 #undef CoInternetGetSession                       
131 #undef CopyBindInfo                                     
132 #undef CoInternetCreateSecurityManager   
133 #undef URLDownloadToCacheFileW              
134 #undef FDICreate                                          
135 #undef FDIIsCabinet                                     
136 #undef FDICopy                                             
137 #undef FDIDestroy                                                            
138 #undef VerQueryValueW                               
139 #undef GetFileVersionInfoW                         
140 #undef GetFileVersionInfoSizeW                  
141 #undef VerQueryValueA                                
142 #undef GetFileVersionInfoA                          
143 #undef GetFileVersionInfoSizeA                   
144
145
146 #define InternetTimeToSystemTimeA               InternetTimeToSystemTimeA_NoThrow    
147 #define CommitUrlCacheEntryW                        CommitUrlCacheEntryW_NoThrow                                  
148 #define CreateUrlCacheEntryW                        CreateUrlCacheEntryW_NoThrow               
149 #define CoInternetGetSession                          CoInternetGetSession_NoThrow                
150 #define CopyBindInfo                                        CopyBindInfo_NoThrow                              
151 #define CoInternetCreateSecurityManager      CoInternetCreateSecurityManager_NoThrow  
152 #define URLDownloadToCacheFileW                 URLDownloadToCacheFileW_NoThrow                                         
153 #define VerQueryValueW                                  VerQueryValueW_NoThrow                  
154 #define GetFileVersionInfoW                            GetFileVersionInfoW_NoThrow                 
155 #define GetFileVersionInfoSizeW                     GetFileVersionInfoSizeW_NoThrow                 
156 #define VerQueryValueA                                  Use_VerQueryValueW
157 #define GetFileVersionInfoA                             Use_GetFileVersionInfoW
158 #define GetFileVersionInfoSizeA                     Use_GetFileVersionInfoSizeW
159
160 #if defined(_WININET_)
161     inline
162     HRESULT HrCreateUrlCacheEntryW(
163             IN LPCWSTR lpszUrlName,
164             IN DWORD dwExpectedFileSize,
165             IN LPCWSTR lpszFileExtension,
166             __out_ecount(MAX_LONGPATH+1) LPWSTR lpszFileName,
167             IN DWORD dwReserved
168             )
169     {
170         if (!CreateUrlCacheEntryW(lpszUrlName, dwExpectedFileSize, lpszFileExtension, lpszFileName, dwReserved))
171         {
172             return HRESULT_FROM_WIN32(GetLastError());
173         }
174         else
175         {
176             return S_OK;
177         }
178     }
179
180     inline
181     HRESULT HrCommitUrlCacheEntryW(
182             IN LPCWSTR  lpszUrlName,
183             IN LPCWSTR  lpszLocalFileName,
184             IN FILETIME ExpireTime,
185             IN FILETIME LastModifiedTime,
186             IN DWORD    CacheEntryType,
187             IN LPCWSTR  lpHeaderInfo,
188             IN DWORD    dwHeaderSize,
189             IN LPCWSTR  lpszFileExtension,
190             IN LPCWSTR  lpszOriginalUrl
191             )
192     {
193         if (!CommitUrlCacheEntryW(lpszUrlName, lpszLocalFileName, ExpireTime, LastModifiedTime, CacheEntryType,
194                                   lpHeaderInfo, dwHeaderSize, lpszFileExtension, lpszOriginalUrl))
195         {
196             return HRESULT_FROM_WIN32(GetLastError());
197         }
198         else
199         {
200             return S_OK;
201         }
202     }
203 #endif // defined(_WININET_)
204
205 #endif
206