diff options
Diffstat (limited to 'src/inc/dlwrap.h')
-rw-r--r-- | src/inc/dlwrap.h | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/src/inc/dlwrap.h b/src/inc/dlwrap.h new file mode 100644 index 0000000000..853bc58d7f --- /dev/null +++ b/src/inc/dlwrap.h @@ -0,0 +1,205 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + +// + +#ifndef _DLWRAP_H +#define _DLWRAP_H + +//include this file if you get contract violation because of delayload + +//nothrow implementations + +#if defined(VER_H) && !defined (GetFileVersionInfoSizeW_NoThrow) +DWORD +GetFileVersionInfoSizeW_NoThrow( + LPCWSTR lptstrFilename, /* Filename of version stamped file */ + LPDWORD lpdwHandle + ); +#endif + +#if defined(VER_H) && !defined (GetFileVersionInfoW_NoThrow) +BOOL +GetFileVersionInfoW_NoThrow( + LPCWSTR lptstrFilename, /* Filename of version stamped file */ + DWORD dwHandle, /* Information from GetFileVersionSize */ + DWORD dwLen, /* Length of buffer for info */ + LPVOID lpData + ); +#endif + +#if defined(VER_H) && !defined (VerQueryValueW_NoThrow) +BOOL +VerQueryValueW_NoThrow( + const LPVOID pBlock, + LPCWSTR lpSubBlock, + LPVOID * lplpBuffer, + PUINT puLen + ); +#endif + +#if defined(_WININET_) && !defined (CreateUrlCacheEntryW_NoThrow) +__success(return) +BOOL +CreateUrlCacheEntryW_NoThrow( + IN LPCWSTR lpszUrlName, + IN DWORD dwExpectedFileSize, + IN LPCWSTR lpszFileExtension, + __out_ecount(MAX_LONGPATH+1) LPWSTR lpszFileName, + IN DWORD dwReserved + ); +#endif + +#if defined(_WININET_) && !defined (CommitUrlCacheEntryW_NoThrow) +BOOL +CommitUrlCacheEntryW_NoThrow( + IN LPCWSTR lpszUrlName, + IN LPCWSTR lpszLocalFileName, + IN FILETIME ExpireTime, + IN FILETIME LastModifiedTime, + IN DWORD CacheEntryType, + IN LPCWSTR lpHeaderInfo, + IN DWORD dwHeaderSize, + IN LPCWSTR lpszFileExtension, + IN LPCWSTR lpszOriginalUrl + ); +#endif + +#if defined(_WININET_) && !defined (InternetTimeToSystemTimeA_NoThrow) +BOOL +InternetTimeToSystemTimeA_NoThrow( + IN LPCSTR lpszTime, // NULL terminated string + OUT SYSTEMTIME *pst, // output in GMT time + IN DWORD dwReserved + ); +#endif + +#if defined(__urlmon_h__) && !defined(CoInternetCreateSecurityManager_NoThrow) +HRESULT +CoInternetCreateSecurityManager_NoThrow( + IServiceProvider *pSP, + IInternetSecurityManager **ppSM, + DWORD dwReserved + ); +#endif + +#if defined(__urlmon_h__) && !defined(URLDownloadToCacheFileW_NoThrow) +HRESULT +URLDownloadToCacheFileW_NoThrow( + LPUNKNOWN lpUnkcaller, + LPCWSTR szURL, + __out_ecount(dwBufLength) LPWSTR szFileName, + DWORD dwBufLength, + DWORD dwReserved, + IBindStatusCallback *pBSC + ); +#endif + +#if defined(__urlmon_h__) && !defined(CoInternetGetSession_NoThrow) +HRESULT +CoInternetGetSession_NoThrow( + WORD dwSessionMode, + IInternetSession **ppIInternetSession, + DWORD dwReserved + ); +#endif + +#if defined(__urlmon_h__) && !defined(CopyBindInfo_NoThrow) +HRESULT +CopyBindInfo_NoThrow( + const BINDINFO * pcbiSrc, BINDINFO * pbiDest + ); +#endif + + + +//overrides +#undef InternetTimeToSystemTimeA +#undef CommitUrlCacheEntryW +#undef HttpQueryInfoA +#undef InternetCloseHandle +#undef HttpSendRequestA +#undef HttpOpenRequestA +#undef InternetConnectA +#undef InternetOpenA +#undef InternetReadFile +#undef CreateUrlCacheEntryW +#undef CoInternetGetSession +#undef CopyBindInfo +#undef CoInternetCreateSecurityManager +#undef URLDownloadToCacheFileW +#undef FDICreate +#undef FDIIsCabinet +#undef FDICopy +#undef FDIDestroy +#undef VerQueryValueW +#undef GetFileVersionInfoW +#undef GetFileVersionInfoSizeW +#undef VerQueryValueA +#undef GetFileVersionInfoA +#undef GetFileVersionInfoSizeA + + +#define InternetTimeToSystemTimeA InternetTimeToSystemTimeA_NoThrow +#define CommitUrlCacheEntryW CommitUrlCacheEntryW_NoThrow +#define CreateUrlCacheEntryW CreateUrlCacheEntryW_NoThrow +#define CoInternetGetSession CoInternetGetSession_NoThrow +#define CopyBindInfo CopyBindInfo_NoThrow +#define CoInternetCreateSecurityManager CoInternetCreateSecurityManager_NoThrow +#define URLDownloadToCacheFileW URLDownloadToCacheFileW_NoThrow +#define VerQueryValueW VerQueryValueW_NoThrow +#define GetFileVersionInfoW GetFileVersionInfoW_NoThrow +#define GetFileVersionInfoSizeW GetFileVersionInfoSizeW_NoThrow +#define VerQueryValueA Use_VerQueryValueW +#define GetFileVersionInfoA Use_GetFileVersionInfoW +#define GetFileVersionInfoSizeA Use_GetFileVersionInfoSizeW + +#if defined(_WININET_) + inline + HRESULT HrCreateUrlCacheEntryW( + IN LPCWSTR lpszUrlName, + IN DWORD dwExpectedFileSize, + IN LPCWSTR lpszFileExtension, + __out_ecount(MAX_LONGPATH+1) LPWSTR lpszFileName, + IN DWORD dwReserved + ) + { + if (!CreateUrlCacheEntryW(lpszUrlName, dwExpectedFileSize, lpszFileExtension, lpszFileName, dwReserved)) + { + return HRESULT_FROM_WIN32(GetLastError()); + } + else + { + return S_OK; + } + } + + inline + HRESULT HrCommitUrlCacheEntryW( + IN LPCWSTR lpszUrlName, + IN LPCWSTR lpszLocalFileName, + IN FILETIME ExpireTime, + IN FILETIME LastModifiedTime, + IN DWORD CacheEntryType, + IN LPCWSTR lpHeaderInfo, + IN DWORD dwHeaderSize, + IN LPCWSTR lpszFileExtension, + IN LPCWSTR lpszOriginalUrl + ) + { + if (!CommitUrlCacheEntryW(lpszUrlName, lpszLocalFileName, ExpireTime, LastModifiedTime, CacheEntryType, + lpHeaderInfo, dwHeaderSize, lpszFileExtension, lpszOriginalUrl)) + { + return HRESULT_FROM_WIN32(GetLastError()); + } + else + { + return S_OK; + } + } +#endif // defined(_WININET_) + +#endif + |