- Stub implementations for FtpGetFileSize, FtpCommand{A,W},
HttpSendRequestExW, InternetGetLastResponseInfoW,
InternetConfirmZoneCrossing{A,W}, InternetDial{A,W},
InternetGoOnline{A,W}, InternetHangUp, CreateMD5SSOHash,
InternetClearAllPerSiteCookieDecisions,
InternetEnumPerSiteCookieDecision{A,W}, InternetGetCookieEx{A,W},
InternetGetPerSiteCookieDecision{A,W},
InternetSetPerSiteCookieDecision{A,W}, InternetSetCookieEx{A,W},
ResumeSuspendedDownload, RetrieveUrlCacheEntryFileW,
UnlockUrlCacheEntryFileW, {Create,Delete}UrlCacheEntryW,
CommitUrlCacheEntryW, RetrieveUrlCacheEntryStreamW,
FindCloseUrlCache, FindFirstUrlCacheEntryEx{A,W},
FindFirstUrlCacheGroup, FindNextUrlCacheEntry{,Ex}{A,W},
FindNextUrlCacheGroup, SetUrlCacheEntryGroup{A,W},
{Get,Set}UrlCacheGroupAttribute{A,W}, SetUrlCacheConfigInfo{A,W}.
- Spec file stubs for new undocumented functions
ForceNexusLookup{,ExW}, Ftp{Get,Put}FileEx, HttpCheckDavCompliance,
InternetAlgIdToString{A,W}, InternetFortezzaCommand,
InternetGetCertByURLA, InternetQueryFortezzaStatus,
InternetSecurityProtocolToString{A,W}, InternetSetDialState{A,W},
InternetShowSecurityInfoByURL{A,W}, IsUrlCacheEntryExpired{A,W},
Privacy{Get,Set}ZonePreferenceW, RegisterUrlCacheNotification,
UrlZonesDetach.
- Use memcpy instead of strncpy in InternetGetLastResponseInfoA.
- Add and improve some traces.
- Fix my own coding style in InternetTimeToSystemTimeW.
- Fix a couple of signedness warnings.
diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c
index 8161f01..6f84a71 100644
--- a/dlls/wininet/ftp.c
+++ b/dlls/wininet/ftp.c
@@ -1233,6 +1233,15 @@
return bSuccess;
}
+DWORD WINAPI FtpGetFileSize( HINTERNET hFile, LPDWORD lpdwFileSizeHigh )
+{
+ FIXME("(%p, %p)\n", hFile, lpdwFileSizeHigh);
+
+ if (lpdwFileSizeHigh)
+ *lpdwFileSizeHigh = 0;
+
+ return 0;
+}
/***********************************************************************
* FtpDeleteFileA (WININET.@)
@@ -1602,6 +1611,23 @@
return bSuccess;
}
+BOOL WINAPI FtpCommandA( HINTERNET hConnect, BOOL fExpectResponse, DWORD dwFlags,
+ LPCSTR lpszCommand, DWORD_PTR dwContext, HINTERNET* phFtpCommand )
+{
+ FIXME("%p %d 0x%08lx %s 0x%08lx %p\n", hConnect, fExpectResponse, dwFlags,
+ debugstr_a(lpszCommand), dwContext, phFtpCommand);
+
+ return TRUE;
+}
+
+BOOL WINAPI FtpCommandW( HINTERNET hConnect, BOOL fExpectResponse, DWORD dwFlags,
+ LPCWSTR lpszCommand, DWORD_PTR dwContext, HINTERNET* phFtpCommand )
+{
+ FIXME("%p %d 0x%08lx %s 0x%08lx %p\n", hConnect, fExpectResponse, dwFlags,
+ debugstr_w(lpszCommand), dwContext, phFtpCommand);
+
+ return TRUE;
+}
/***********************************************************************
* FTP_Connect (internal)
@@ -1623,7 +1649,8 @@
static const WCHAR szDefaultPassword[] = {'u','s','e','r','@','s','e','r','v','e','r','\0'};
struct sockaddr_in socketAddr;
struct hostent *phe = NULL;
- INT nsocket = -1, sock_namelen;
+ INT nsocket = -1;
+ UINT sock_namelen;
BOOL bSuccess = FALSE;
LPWININETFTPSESSIONW lpwfs = NULL;
HINTERNET handle = NULL;
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 4369d4f..294e29a 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -1205,6 +1205,22 @@
}
/***********************************************************************
+ * HttpSendRequestExW (WININET.@)
+ *
+ * Sends the specified request to the HTTP server and allows chunked
+ * transfers
+ */
+BOOL WINAPI HttpSendRequestExW(HINTERNET hRequest,
+ LPINTERNET_BUFFERSW lpBuffersIn,
+ LPINTERNET_BUFFERSW lpBuffersOut,
+ DWORD dwFlags, DWORD dwContext)
+{
+ FIXME("(%p, %p, %p, %08lx, %08lx): stub\n", hRequest, lpBuffersIn,
+ lpBuffersOut, dwFlags, dwContext);
+ return FALSE;
+}
+
+/***********************************************************************
* HttpSendRequestW (WININET.@)
*
* Sends the specified request to the HTTP server
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index c631826..662de3c 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -600,8 +600,8 @@
*lpdwError = lpwite->dwError;
if (lpwite->dwError)
{
- strncpy(lpszBuffer, lpwite->response, *lpdwBufferLength);
- *lpdwBufferLength = strlen(lpszBuffer);
+ memcpy(lpszBuffer, lpwite->response, *lpdwBufferLength);
+ *lpdwBufferLength = strlen(lpszBuffer);
}
else
*lpdwBufferLength = 0;
@@ -609,6 +609,34 @@
return TRUE;
}
+/***********************************************************************
+ * InternetGetLastResponseInfoW (WININET.@)
+ *
+ * Return last wininet error description on the calling thread
+ *
+ * RETURNS
+ * TRUE on success of writing to buffer
+ * FALSE on failure
+ *
+ */
+BOOL WINAPI InternetGetLastResponseInfoW(LPDWORD lpdwError,
+ LPWSTR lpszBuffer, LPDWORD lpdwBufferLength)
+{
+ LPWITHREADERROR lpwite = (LPWITHREADERROR)TlsGetValue(g_dwTlsErrIndex);
+
+ TRACE("\n");
+
+ *lpdwError = lpwite->dwError;
+ if (lpwite->dwError)
+ {
+ memcpy(lpszBuffer, lpwite->response, *lpdwBufferLength);
+ *lpdwBufferLength = lstrlenW(lpszBuffer);
+ }
+ else
+ *lpdwBufferLength = 0;
+
+ return TRUE;
+}
/***********************************************************************
* InternetGetConnectedState (WININET.@)
@@ -2127,14 +2155,14 @@
*/
while (*s && !isalphaW( *s )) s++;
- if (*s == '\0' || *(s + 1) == '\0' || *(s + 2) == '\0') return FALSE;
+ if (s[0] == '\0' || s[1] == '\0' || s[2] == '\0') return FALSE;
time->wDayOfWeek = 7;
for (i = 0; i < 7; i++)
{
- if (toupperW( WININET_wkday[i][0] ) == toupperW( *s ) &&
- toupperW( WININET_wkday[i][1] ) == toupperW( *(s + 1) ) &&
- toupperW( WININET_wkday[i][2] ) == toupperW( *(s + 2) ) )
+ if (toupperW( WININET_wkday[i][0] ) == toupperW( s[0] ) &&
+ toupperW( WININET_wkday[i][1] ) == toupperW( s[1] ) &&
+ toupperW( WININET_wkday[i][2] ) == toupperW( s[2] ) )
{
time->wDayOfWeek = i;
break;
@@ -2146,14 +2174,14 @@
time->wDay = strtolW( s, &s, 10 );
while (*s && !isalphaW( *s )) s++;
- if (*s == '\0' || *(s + 1) == '\0' || *(s + 2) == '\0') return FALSE;
+ if (s[0] == '\0' || s[1] == '\0' || s[2] == '\0') return FALSE;
time->wMonth = 0;
for (i = 0; i < 12; i++)
{
- if (toupperW( WININET_month[i][0]) == toupperW( *s ) &&
- toupperW( WININET_month[i][1]) == toupperW( *(s + 1) ) &&
- toupperW( WININET_month[i][2]) == toupperW( *(s + 2) ) )
+ if (toupperW( WININET_month[i][0]) == toupperW( s[0] ) &&
+ toupperW( WININET_month[i][1]) == toupperW( s[1] ) &&
+ toupperW( WININET_month[i][2]) == toupperW( s[2] ) )
{
time->wMonth = i + 1;
break;
@@ -3153,6 +3181,148 @@
return FALSE;
}
+DWORD WINAPI InternetConfirmZoneCrossingA( HWND hWnd, LPSTR szUrlPrev, LPSTR szUrlNew, BOOL bPost )
+{
+ FIXME("(%p, %s, %s, %x) stub\n", hWnd, debugstr_a(szUrlPrev), debugstr_a(szUrlNew), bPost);
+ return ERROR_SUCCESS;
+}
+
+DWORD WINAPI InternetConfirmZoneCrossingW( HWND hWnd, LPWSTR szUrlPrev, LPWSTR szUrlNew, BOOL bPost )
+{
+ FIXME("(%p, %s, %s, %x) stub\n", hWnd, debugstr_w(szUrlPrev), debugstr_w(szUrlNew), bPost);
+ return ERROR_SUCCESS;
+}
+
+DWORD WINAPI InternetDialA( HWND hwndParent, LPSTR lpszConnectoid, DWORD dwFlags,
+ LPDWORD lpdwConnection, DWORD dwReserved )
+{
+ FIXME("(%p, %p, 0x%08lx, %p, 0x%08lx) stub\n", hwndParent, lpszConnectoid, dwFlags,
+ lpdwConnection, dwReserved);
+ return ERROR_SUCCESS;
+}
+
+DWORD WINAPI InternetDialW( HWND hwndParent, LPWSTR lpszConnectoid, DWORD dwFlags,
+ LPDWORD lpdwConnection, DWORD dwReserved )
+{
+ FIXME("(%p, %p, 0x%08lx, %p, 0x%08lx) stub\n", hwndParent, lpszConnectoid, dwFlags,
+ lpdwConnection, dwReserved);
+ return ERROR_SUCCESS;
+}
+
+BOOL WINAPI InternetGoOnlineA( LPSTR lpszURL, HWND hwndParent, DWORD dwReserved )
+{
+ FIXME("(%s, %p, 0x%08lx) stub\n", debugstr_a(lpszURL), hwndParent, dwReserved);
+ return TRUE;
+}
+
+BOOL WINAPI InternetGoOnlineW( LPWSTR lpszURL, HWND hwndParent, DWORD dwReserved )
+{
+ FIXME("(%s, %p, 0x%08lx) stub\n", debugstr_w(lpszURL), hwndParent, dwReserved);
+ return TRUE;
+}
+
+DWORD WINAPI InternetHangUp( DWORD dwConnection, DWORD dwReserved )
+{
+ FIXME("(0x%08lx, 0x%08lx) stub\n", dwConnection, dwReserved);
+ return ERROR_SUCCESS;
+}
+
+BOOL WINAPI CreateMD5SSOHash( PWSTR pszChallengeInfo, PWSTR pwszRealm, PWSTR pwszTarget,
+ PBYTE pbHexHash )
+{
+ FIXME("(%s, %s, %s, %p) stub\n", debugstr_w(pszChallengeInfo), debugstr_w(pwszRealm),
+ debugstr_w(pwszTarget), pbHexHash);
+ return FALSE;
+}
+
+BOOL WINAPI InternetClearAllPerSiteCookieDecisions( VOID )
+{
+ FIXME("stub\n");
+ return TRUE;
+}
+
+BOOL WINAPI InternetEnumPerSiteCookieDecisionA( LPSTR pszSiteName, unsigned long *pcSiteNameSize,
+ unsigned long *pdwDecision, unsigned long dwIndex )
+{
+ FIXME("(%s, %p, %p, 0x%08lx) stub\n",
+ debugstr_a(pszSiteName), pcSiteNameSize, pdwDecision, dwIndex);
+ return FALSE;
+}
+
+BOOL WINAPI InternetEnumPerSiteCookieDecisionW( LPWSTR pszSiteName, unsigned long *pcSiteNameSize,
+ unsigned long *pdwDecision, unsigned long dwIndex )
+{
+ FIXME("(%s, %p, %p, 0x%08lx) stub\n",
+ debugstr_w(pszSiteName), pcSiteNameSize, pdwDecision, dwIndex);
+ return FALSE;
+}
+
+BOOL WINAPI InternetGetCookieExA( LPCSTR pchURL, LPCSTR pchCookieName, LPSTR pchCookieData,
+ LPDWORD pcchCookieData, DWORD dwFlags, LPVOID lpReserved)
+{
+ FIXME("(%s, %s, %s, %p, 0x%08lx, %p) stub\n",
+ debugstr_a(pchURL), debugstr_a(pchCookieName), debugstr_a(pchCookieData),
+ pcchCookieData, dwFlags, lpReserved);
+ return FALSE;
+}
+
+BOOL WINAPI InternetGetCookieExW( LPCWSTR pchURL, LPCWSTR pchCookieName, LPWSTR pchCookieData,
+ LPDWORD pcchCookieData, DWORD dwFlags, LPVOID lpReserved)
+{
+ FIXME("(%s, %s, %s, %p, 0x%08lx, %p) stub\n",
+ debugstr_w(pchURL), debugstr_w(pchCookieName), debugstr_w(pchCookieData),
+ pcchCookieData, dwFlags, lpReserved);
+ return FALSE;
+}
+
+BOOL WINAPI InternetGetPerSiteCookieDecisionA( LPCSTR pwchHostName, unsigned long *pResult )
+{
+ FIXME("(%s, %p) stub\n", debugstr_a(pwchHostName), pResult);
+ return FALSE;
+}
+
+BOOL WINAPI InternetGetPerSiteCookieDecisionW( LPCWSTR pwchHostName, unsigned long *pResult )
+{
+ FIXME("(%s, %p) stub\n", debugstr_w(pwchHostName), pResult);
+ return FALSE;
+}
+
+BOOL WINAPI InternetSetPerSiteCookieDecisionA( LPCSTR pchHostName, DWORD dwDecision )
+{
+ FIXME("(%s, 0x%08lx) stub\n", debugstr_a(pchHostName), dwDecision);
+ return FALSE;
+}
+
+BOOL WINAPI InternetSetPerSiteCookieDecisionW( LPCWSTR pchHostName, DWORD dwDecision )
+{
+ FIXME("(%s, 0x%08lx) stub\n", debugstr_w(pchHostName), dwDecision);
+ return FALSE;
+}
+
+DWORD WINAPI InternetSetCookieExA( LPCSTR lpszURL, LPCSTR lpszCookieName, LPCSTR lpszCookieData,
+ DWORD dwFlags, DWORD_PTR dwReserved)
+{
+ FIXME("(%s, %s, %s, 0x%08lx, 0x%08lx) stub\n",
+ debugstr_a(lpszURL), debugstr_a(lpszCookieName), debugstr_a(lpszCookieData),
+ dwFlags, dwReserved);
+ return TRUE;
+}
+
+DWORD WINAPI InternetSetCookieExW( LPCWSTR lpszURL, LPCWSTR lpszCookieName, LPCWSTR lpszCookieData,
+ DWORD dwFlags, DWORD_PTR dwReserved)
+{
+ FIXME("(%s, %s, %s, 0x%08lx, 0x%08lx) stub\n",
+ debugstr_w(lpszURL), debugstr_w(lpszCookieName), debugstr_w(lpszCookieData),
+ dwFlags, dwReserved);
+ return TRUE;
+}
+
+BOOL WINAPI ResumeSuspendedDownload( HINTERNET hInternet, DWORD dwError )
+{
+ FIXME("(%p, 0x%08lx) stub\n", hInternet, dwError);
+ return FALSE;
+}
+
/***********************************************************************
*
* InternetCreateUrlW
diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c
index 2a11050..6a6037d 100644
--- a/dlls/wininet/urlcache.c
+++ b/dlls/wininet/urlcache.c
@@ -777,7 +777,7 @@
if (*lpdwBufferSize >= dwRequiredSize)
{
- lpCacheEntryInfo->lpHeaderInfo = (LPSTR)lpCacheEntryInfo + dwRequiredSize - pUrlEntry->dwHeaderInfoSize - 1;
+ lpCacheEntryInfo->lpHeaderInfo = (LPBYTE)lpCacheEntryInfo + dwRequiredSize - pUrlEntry->dwHeaderInfoSize - 1;
memcpy(lpCacheEntryInfo->lpHeaderInfo, (LPSTR)pUrlEntry + pUrlEntry->dwOffsetHeaderInfo, pUrlEntry->dwHeaderInfoSize);
((LPBYTE)lpCacheEntryInfo)[dwRequiredSize - 1] = '\0';
}
@@ -1163,7 +1163,7 @@
pUrlEntry = (URL_CACHEFILE_ENTRY *)pEntry;
TRACE("Found URL: %s\n", debugstr_a(pUrlEntry->szSourceUrlName));
if (pUrlEntry->dwOffsetHeaderInfo)
- TRACE("Header info: %s\n", debugstr_a((LPBYTE)pUrlEntry + pUrlEntry->dwOffsetHeaderInfo));
+ TRACE("Header info: %s\n", debugstr_a((LPSTR)pUrlEntry + pUrlEntry->dwOffsetHeaderInfo));
if (!URLCache_CopyEntry(
pContainer,
@@ -1247,7 +1247,7 @@
pUrlEntry = (URL_CACHEFILE_ENTRY *)pEntry;
TRACE("Found URL: %s\n", debugstr_a(pUrlEntry->szSourceUrlName));
- TRACE("Header info: %s\n", debugstr_a((LPBYTE)pUrlEntry + pUrlEntry->dwOffsetHeaderInfo));
+ TRACE("Header info: %s\n", debugstr_a((LPSTR)pUrlEntry + pUrlEntry->dwOffsetHeaderInfo));
if (!URLCache_CopyEntry(
pContainer,
@@ -1487,6 +1487,26 @@
}
/***********************************************************************
+ * RetrieveUrlCacheEntryFileW (WININET.@)
+ *
+ */
+BOOL WINAPI RetrieveUrlCacheEntryFileW(
+ IN LPCWSTR lpszUrlName,
+ OUT LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo,
+ IN OUT LPDWORD lpdwCacheEntryInfoBufferSize,
+ IN DWORD dwReserved
+ )
+{
+ TRACE("(%s, %p, %p, 0x%08lx)\n",
+ debugstr_w(lpszUrlName),
+ lpCacheEntryInfo,
+ lpdwCacheEntryInfoBufferSize,
+ dwReserved);
+
+ return FALSE;
+}
+
+/***********************************************************************
* UnlockUrlCacheEntryFileA (WININET.@)
*
*/
@@ -1550,6 +1570,16 @@
}
/***********************************************************************
+ * UnlockUrlCacheEntryFileW (WININET.@)
+ *
+ */
+BOOL WINAPI UnlockUrlCacheEntryFileW( LPCWSTR lpszUrlName, DWORD dwReserved )
+{
+ FIXME("(%s, 0x%08lx)\n", debugstr_w(lpszUrlName), dwReserved);
+ return TRUE;
+}
+
+/***********************************************************************
* CreateUrlCacheEntryA (WININET.@)
*
*/
@@ -1675,6 +1705,28 @@
}
/***********************************************************************
+ * CreateUrlCacheEntryW (WININET.@)
+ *
+ */
+BOOL WINAPI CreateUrlCacheEntryW(
+ IN LPCWSTR lpszUrlName,
+ IN DWORD dwExpectedFileSize,
+ IN LPCWSTR lpszFileExtension,
+ OUT LPWSTR lpszFileName,
+ IN DWORD dwReserved
+)
+{
+ FIXME("(%s, 0x%08lx, %s, %p, 0x%08lx) stub\n",
+ debugstr_w(lpszUrlName),
+ dwExpectedFileSize,
+ debugstr_w(lpszFileExtension),
+ lpszFileName,
+ dwReserved);
+
+ return TRUE;
+}
+
+/***********************************************************************
* CommitUrlCacheEntryA (WININET.@)
*
*/
@@ -1707,7 +1759,7 @@
CacheEntryType,
lpHeaderInfo,
dwHeaderSize,
- lpszFileExtension,
+ debugstr_a(lpszFileExtension),
dwReserved);
if (dwReserved)
@@ -1881,6 +1933,38 @@
return TRUE;
}
+/***********************************************************************
+ * CommitUrlCacheEntryW (WININET.@)
+ *
+ */
+BOOL WINAPI CommitUrlCacheEntryW(
+ IN LPCWSTR lpszUrlName,
+ IN LPCWSTR lpszLocalFileName,
+ IN FILETIME ExpireTime,
+ IN FILETIME LastModifiedTime,
+ IN DWORD CacheEntryType,
+ IN LPBYTE lpHeaderInfo,
+ IN DWORD dwHeaderSize,
+ IN LPCWSTR lpszFileExtension,
+ IN LPCWSTR dwReserved
+ )
+{
+ FIXME("(%s, %s, ..., ..., %lx, %p, %ld, %s, %p) stub\n",
+ debugstr_w(lpszUrlName),
+ debugstr_w(lpszLocalFileName),
+ CacheEntryType,
+ lpHeaderInfo,
+ dwHeaderSize,
+ debugstr_w(lpszFileExtension),
+ dwReserved);
+
+ return TRUE;
+}
+
+/***********************************************************************
+ * ReadUrlCacheEntryStream (WININET.@)
+ *
+ */
BOOL WINAPI ReadUrlCacheEntryStream(
IN HANDLE hUrlCacheStream,
IN DWORD dwLocation,
@@ -1931,14 +2015,17 @@
STREAM_HANDLE * pStream;
HANDLE hFile;
- if (!RetrieveUrlCacheEntryFileA(lpszUrlName,
- lpCacheEntryInfo,
+ TRACE( "(%s, %p, %p, %x, 0x%08lx)\n", debugstr_a(lpszUrlName), lpCacheEntryInfo,
+ lpdwCacheEntryInfoBufferSize, fRandomRead, dwReserved );
+
+ if (!RetrieveUrlCacheEntryFileA(lpszUrlName,
+ lpCacheEntryInfo,
lpdwCacheEntryInfoBufferSize,
dwReserved))
{
return NULL;
}
-
+
hFile = CreateFileA(lpCacheEntryInfo->lpszLocalFileName,
GENERIC_READ,
FILE_SHARE_READ,
@@ -1964,6 +2051,23 @@
}
/***********************************************************************
+ * RetrieveUrlCacheEntryStreamW (WININET.@)
+ *
+ */
+HANDLE WINAPI RetrieveUrlCacheEntryStreamW(
+ IN LPCWSTR lpszUrlName,
+ OUT LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo,
+ IN OUT LPDWORD lpdwCacheEntryInfoBufferSize,
+ IN BOOL fRandomRead,
+ IN DWORD dwReserved
+ )
+{
+ FIXME( "(%s, %p, %p, %x, 0x%08lx)\n", debugstr_w(lpszUrlName), lpCacheEntryInfo,
+ lpdwCacheEntryInfoBufferSize, fRandomRead, dwReserved );
+ return NULL;
+}
+
+/***********************************************************************
* UnlockUrlCacheEntryStream (WININET.@)
*
*/
@@ -2049,6 +2153,64 @@
}
/***********************************************************************
+ * DeleteUrlCacheEntryW (WININET.@)
+ *
+ */
+BOOL WINAPI DeleteUrlCacheEntryW(LPCWSTR lpszUrlName)
+{
+ FIXME("(%s) stub\n", debugstr_w(lpszUrlName));
+ return TRUE;
+}
+
+/***********************************************************************
+ * FindCloseUrlCache (WININET.@)
+ *
+ */
+BOOL WINAPI FindCloseUrlCache(HANDLE hEnumHandle)
+{
+ FIXME("(%p) stub\n", hEnumHandle);
+ return TRUE;
+}
+
+HANDLE WINAPI FindFirstUrlCacheEntryExA(
+ LPCSTR lpszUrlSearchPattern,
+ DWORD dwFlags,
+ DWORD dwFilter,
+ GROUPID GroupId,
+ LPINTERNET_CACHE_ENTRY_INFOA lpFirstCacheEntryInfo,
+ LPDWORD lpdwFirstCacheEntryInfoBufferSize,
+ LPVOID lpReserved,
+ LPDWORD pcbReserved2,
+ LPVOID lpReserved3
+)
+{
+ FIXME("(%s, 0x%08lx, 0x%08lx, 0x%08lx%08lx, %p, %p, %p, %p, %p) stub\n", debugstr_a(lpszUrlSearchPattern),
+ dwFlags, dwFilter, (ULONG)(GroupId >> 32), (ULONG)GroupId, lpFirstCacheEntryInfo,
+ lpdwFirstCacheEntryInfoBufferSize, lpReserved, pcbReserved2,lpReserved3);
+ SetLastError(ERROR_FILE_NOT_FOUND);
+ return NULL;
+}
+
+HANDLE WINAPI FindFirstUrlCacheEntryExW(
+ LPCWSTR lpszUrlSearchPattern,
+ DWORD dwFlags,
+ DWORD dwFilter,
+ GROUPID GroupId,
+ LPINTERNET_CACHE_ENTRY_INFOW lpFirstCacheEntryInfo,
+ LPDWORD lpdwFirstCacheEntryInfoBufferSize,
+ LPVOID lpReserved,
+ LPDWORD pcbReserved2,
+ LPVOID lpReserved3
+)
+{
+ FIXME("(%s, 0x%08lx, 0x%08lx, 0x%08lx%08lx, %p, %p, %p, %p, %p) stub\n", debugstr_w(lpszUrlSearchPattern),
+ dwFlags, dwFilter, (ULONG)(GroupId >> 32), (ULONG)GroupId, lpFirstCacheEntryInfo,
+ lpdwFirstCacheEntryInfoBufferSize, lpReserved, pcbReserved2,lpReserved3);
+ SetLastError(ERROR_FILE_NOT_FOUND);
+ return NULL;
+}
+
+/***********************************************************************
* FindFirstUrlCacheEntryA (WININET.@)
*
*/
@@ -2071,14 +2233,75 @@
return 0;
}
+HANDLE WINAPI FindFirstUrlCacheGroup( DWORD dwFlags, DWORD dwFilter, LPVOID lpSearchCondition,
+ DWORD dwSearchCondition, GROUPID* lpGroupId, LPVOID lpReserved )
+{
+ FIXME("(0x%08lx, 0x%08lx, %p, 0x%08lx, %p, %p) stub\n", dwFlags, dwFilter, lpSearchCondition,
+ dwSearchCondition, lpGroupId, lpReserved);
+ return NULL;
+}
+
+BOOL WINAPI FindNextUrlCacheEntryA(
+ HANDLE hEnumHandle,
+ LPINTERNET_CACHE_ENTRY_INFOA lpNextCacheEntryInfo,
+ LPDWORD lpdwNextCacheEntryInfoBufferSize
+)
+{
+ FIXME("(%p, %p, %p) stub\n", hEnumHandle, lpNextCacheEntryInfo, lpdwNextCacheEntryInfoBufferSize);
+ return FALSE;
+}
+
+BOOL WINAPI FindNextUrlCacheEntryW(
+ HANDLE hEnumHandle,
+ LPINTERNET_CACHE_ENTRY_INFOW lpNextCacheEntryInfo,
+ LPDWORD lpdwNextCacheEntryInfoBufferSize
+)
+{
+ FIXME("(%p, %p, %p) stub\n", hEnumHandle, lpNextCacheEntryInfo, lpdwNextCacheEntryInfoBufferSize);
+ return FALSE;
+}
+
+BOOL WINAPI FindNextUrlCacheEntryExA(
+ HANDLE hEnumHandle,
+ LPINTERNET_CACHE_ENTRY_INFOA lpFirstCacheEntryInfo,
+ LPDWORD lpdwFirstCacheEntryInfoBufferSize,
+ LPVOID lpReserved,
+ LPDWORD pcbReserved2,
+ LPVOID lpReserved3
+)
+{
+ FIXME("(%p, %p, %p, %p, %p, %p) stub\n", hEnumHandle, lpFirstCacheEntryInfo, lpdwFirstCacheEntryInfoBufferSize,
+ lpReserved, pcbReserved2, lpReserved3);
+ return FALSE;
+}
+
+BOOL WINAPI FindNextUrlCacheEntryExW(
+ HANDLE hEnumHandle,
+ LPINTERNET_CACHE_ENTRY_INFOW lpFirstCacheEntryInfo,
+ LPDWORD lpdwFirstCacheEntryInfoBufferSize,
+ LPVOID lpReserved,
+ LPDWORD pcbReserved2,
+ LPVOID lpReserved3
+)
+{
+ FIXME("(%p, %p, %p, %p, %p, %p) stub\n", hEnumHandle, lpFirstCacheEntryInfo, lpdwFirstCacheEntryInfoBufferSize,
+ lpReserved, pcbReserved2, lpReserved3);
+ return FALSE;
+}
+
+BOOL WINAPI FindNextUrlCacheGroup( HANDLE hFind, GROUPID* lpGroupId, LPVOID lpReserved )
+{
+ FIXME("(%p, %p, %p) stub\n", hFind, lpGroupId, lpReserved);
+ return FALSE;
+}
+
/***********************************************************************
* CreateUrlCacheGroup (WININET.@)
*
*/
-INTERNETAPI GROUPID WINAPI CreateUrlCacheGroup(DWORD dwFlags, LPVOID
-lpReserved)
+INTERNETAPI GROUPID WINAPI CreateUrlCacheGroup(DWORD dwFlags, LPVOID lpReserved)
{
- FIXME("(%lx, %p): stub\n", dwFlags, lpReserved);
+ FIXME("(0x%08lx, %p): stub\n", dwFlags, lpReserved);
return FALSE;
}
@@ -2088,19 +2311,37 @@
*/
BOOL WINAPI DeleteUrlCacheGroup(GROUPID GroupId, DWORD dwFlags, LPVOID lpReserved)
{
- FIXME("STUB\n");
+ FIXME("(0x%08lx%08lx, 0x%08lx, %p) stub\n",
+ (ULONG)(GroupId >> 32), (ULONG)GroupId, dwFlags, lpReserved);
return FALSE;
}
/***********************************************************************
- * SetUrlCacheEntryGroup (WININET.@)
+ * SetUrlCacheEntryGroupA (WININET.@)
*
*/
-BOOL WINAPI SetUrlCacheEntryGroup(LPCSTR lpszUrlName, DWORD dwFlags,
+BOOL WINAPI SetUrlCacheEntryGroupA(LPCSTR lpszUrlName, DWORD dwFlags,
GROUPID GroupId, LPBYTE pbGroupAttributes, DWORD cbGroupAttributes,
LPVOID lpReserved)
{
- FIXME("STUB\n");
+ FIXME("(%s, 0x%08lx, 0x%08lx%08lx, %p, 0x%08lx, %p) stub\n",
+ debugstr_a(lpszUrlName), dwFlags, (ULONG)(GroupId >> 32), (ULONG)GroupId,
+ pbGroupAttributes, cbGroupAttributes, lpReserved);
+ SetLastError(ERROR_FILE_NOT_FOUND);
+ return FALSE;
+}
+
+/***********************************************************************
+ * SetUrlCacheEntryGroupW (WININET.@)
+ *
+ */
+BOOL WINAPI SetUrlCacheEntryGroupW(LPCWSTR lpszUrlName, DWORD dwFlags,
+ GROUPID GroupId, LPBYTE pbGroupAttributes, DWORD cbGroupAttributes,
+ LPVOID lpReserved)
+{
+ FIXME("(%s, 0x%08lx, 0x%08lx%08lx, %p, 0x%08lx, %p) stub\n",
+ debugstr_w(lpszUrlName), dwFlags, (ULONG)(GroupId >> 32), (ULONG)GroupId,
+ pbGroupAttributes, cbGroupAttributes, lpReserved);
SetLastError(ERROR_FILE_NOT_FOUND);
return FALSE;
}
@@ -2127,6 +2368,54 @@
return FALSE;
}
+BOOL WINAPI GetUrlCacheGroupAttributeA( GROUPID gid, DWORD dwFlags, DWORD dwAttributes,
+ LPINTERNET_CACHE_GROUP_INFOA lpGroupInfo,
+ LPDWORD lpdwGroupInfo, LPVOID lpReserved )
+{
+ FIXME("(0x%08lx%08lx, 0x%08lx, 0x%08lx, %p, %p, %p) stub\n",
+ (ULONG)(gid >> 32), (ULONG)gid, dwFlags, dwAttributes, lpGroupInfo,
+ lpdwGroupInfo, lpReserved);
+ return FALSE;
+}
+
+BOOL WINAPI GetUrlCacheGroupAttributeW( GROUPID gid, DWORD dwFlags, DWORD dwAttributes,
+ LPINTERNET_CACHE_GROUP_INFOW lpGroupInfo,
+ LPDWORD lpdwGroupInfo, LPVOID lpReserved )
+{
+ FIXME("(0x%08lx%08lx, 0x%08lx, 0x%08lx, %p, %p, %p) stub\n",
+ (ULONG)(gid >> 32), (ULONG)gid, dwFlags, dwAttributes, lpGroupInfo,
+ lpdwGroupInfo, lpReserved);
+ return FALSE;
+}
+
+BOOL WINAPI SetUrlCacheGroupAttributeA( GROUPID gid, DWORD dwFlags, DWORD dwAttributes,
+ LPINTERNET_CACHE_GROUP_INFOA lpGroupInfo, LPVOID lpReserved )
+{
+ FIXME("(0x%08lx%08lx, 0x%08lx, 0x%08lx, %p, %p) stub\n",
+ (ULONG)(gid >> 32), (ULONG)gid, dwFlags, dwAttributes, lpGroupInfo, lpReserved);
+ return TRUE;
+}
+
+BOOL WINAPI SetUrlCacheGroupAttributeW( GROUPID gid, DWORD dwFlags, DWORD dwAttributes,
+ LPINTERNET_CACHE_GROUP_INFOW lpGroupInfo, LPVOID lpReserved )
+{
+ FIXME("(0x%08lx%08lx, 0x%08lx, 0x%08lx, %p, %p) stub\n",
+ (ULONG)(gid >> 32), (ULONG)gid, dwFlags, dwAttributes, lpGroupInfo, lpReserved);
+ return TRUE;
+}
+
+BOOL WINAPI SetUrlCacheConfigInfoA( LPDWORD lpCacheConfigInfo, DWORD dwFieldControl )
+{
+ FIXME("(%p, 0x%08lx) stub\n", lpCacheConfigInfo, dwFieldControl);
+ return TRUE;
+}
+
+BOOL WINAPI SetUrlCacheConfigInfoW( LPDWORD lpCacheConfigInfo, DWORD dwFieldControl )
+{
+ FIXME("(%p, 0x%08lx) stub\n", lpCacheConfigInfo, dwFieldControl);
+ return TRUE;
+}
+
/***********************************************************************
* DeleteIE3Cache (WININET.@)
*
diff --git a/dlls/wininet/wininet.spec b/dlls/wininet/wininet.spec
index 7eb91d2..dbbec4d 100644
--- a/dlls/wininet/wininet.spec
+++ b/dlls/wininet/wininet.spec
@@ -19,38 +19,43 @@
@ stdcall InternetInitializeAutoProxyDll(long)
@ stub ShowCertificate
@ stdcall CommitUrlCacheEntryA(str str long long long long long str long str str)
-@ stub CommitUrlCacheEntryW
+@ stdcall CommitUrlCacheEntryW(wstr wstr long long long long long wstr long wstr wstr)
+@ stdcall CreateMD5SSOHash(wstr wstr wstr ptr)
@ stub CreateUrlCacheContainerA
@ stub CreateUrlCacheContainerW
@ stdcall CreateUrlCacheEntryA(str long str ptr long)
-@ stub CreateUrlCacheEntryW
+@ stdcall CreateUrlCacheEntryW(wstr long wstr ptr long)
@ stdcall CreateUrlCacheGroup(long ptr)
@ stdcall DeleteIE3Cache(ptr ptr str long)
@ stub DeleteUrlCacheContainerA
@ stub DeleteUrlCacheContainerW
@ stdcall DeleteUrlCacheEntry(str) DeleteUrlCacheEntryA
@ stdcall DeleteUrlCacheEntryA(str)
-@ stub DeleteUrlCacheEntryW
+@ stdcall DeleteUrlCacheEntryW(wstr)
@ stdcall DeleteUrlCacheGroup(double long ptr)
@ stdcall DetectAutoProxyUrl(str long long)
@ stdcall DllInstall(long ptr) WININET_DllInstall
-@ stub FindCloseUrlCache
+@ stdcall FindCloseUrlCache(long)
@ stub FindFirstUrlCacheContainerA
@ stub FindFirstUrlCacheContainerW
@ stdcall FindFirstUrlCacheEntryA(str ptr ptr)
-@ stub FindFirstUrlCacheEntryExA
-@ stub FindFirstUrlCacheEntryExW
+@ stdcall FindFirstUrlCacheEntryExA(str long long long ptr ptr ptr ptr ptr)
+@ stdcall FindFirstUrlCacheEntryExW(wstr long long long ptr ptr ptr ptr ptr)
@ stdcall FindFirstUrlCacheEntryW(wstr ptr ptr)
+@ stdcall FindFirstUrlCacheGroup(long long ptr long ptr ptr)
@ stub FindNextUrlCacheContainerA
@ stub FindNextUrlCacheContainerW
-@ stub FindNextUrlCacheEntryA
-@ stub FindNextUrlCacheEntryExA
-@ stub FindNextUrlCacheEntryExW
-@ stub FindNextUrlCacheEntryW
+@ stdcall FindNextUrlCacheEntryA(long ptr ptr)
+@ stdcall FindNextUrlCacheEntryExA(long ptr ptr ptr ptr ptr)
+@ stdcall FindNextUrlCacheEntryExW(long ptr ptr ptr ptr ptr)
+@ stdcall FindNextUrlCacheEntryW(long ptr ptr)
+@ stdcall FindNextUrlCacheGroup(long ptr ptr)
+@ stub ForceNexusLookup
+@ stub ForceNexusLookupExW
@ stub FreeUrlCacheSpaceA
@ stub FreeUrlCacheSpaceW
-@ stub FtpCommandA
-@ stub FtpCommandW
+@ stdcall FtpCommandA(long long long str ptr ptr)
+@ stdcall FtpCommandW(long long long wstr ptr ptr)
@ stdcall FtpCreateDirectoryA(ptr str)
@ stdcall FtpCreateDirectoryW(ptr wstr)
@ stdcall FtpDeleteFileA(ptr str)
@@ -60,10 +65,13 @@
@ stdcall FtpGetCurrentDirectoryA(ptr str ptr)
@ stdcall FtpGetCurrentDirectoryW(ptr wstr ptr)
@ stdcall FtpGetFileA(ptr str str long long long long)
+@ stub FtpGetFileEx
+@ stdcall FtpGetFileSize(long ptr)
@ stdcall FtpGetFileW(ptr wstr wstr long long long long)
@ stdcall FtpOpenFileA(ptr str long long long)
@ stdcall FtpOpenFileW(ptr wstr long long long)
@ stdcall FtpPutFileA(ptr str str long long)
+@ stub FtpPutFileEx
@ stdcall FtpPutFileW(ptr wstr wstr long long)
@ stdcall FtpRemoveDirectoryA(ptr str)
@ stdcall FtpRemoveDirectoryW(ptr wstr)
@@ -77,6 +85,8 @@
@ stdcall GetUrlCacheEntryInfoExA(str ptr ptr str ptr ptr long)
@ stdcall GetUrlCacheEntryInfoExW(wstr ptr ptr wstr ptr ptr long)
@ stdcall GetUrlCacheEntryInfoW(wstr ptr long)
+@ stdcall GetUrlCacheGroupAttributeA(double long long ptr ptr ptr)
+@ stdcall GetUrlCacheGroupAttributeW(double long long ptr ptr ptr)
@ stub GetUrlCacheHeaderData
@ stdcall GopherCreateLocatorA(str long str str long str ptr)
@ stdcall GopherCreateLocatorW(wstr long wstr wstr long wstr ptr)
@@ -90,6 +100,7 @@
@ stdcall GopherOpenFileW(ptr wstr wstr long long)
@ stdcall HttpAddRequestHeadersA(ptr str long long)
@ stdcall HttpAddRequestHeadersW(ptr wstr long long)
+@ stub HttpCheckDavCompliance
@ stdcall HttpEndRequestA(ptr ptr long long)
@ stdcall HttpEndRequestW(ptr ptr long long)
@ stdcall HttpOpenRequestA(ptr str str str str ptr long long)
@@ -98,9 +109,11 @@
@ stdcall HttpQueryInfoW(ptr long ptr ptr ptr)
@ stdcall HttpSendRequestA(ptr str long ptr long)
@ stdcall HttpSendRequestExA(long ptr ptr long long)
-@ stub HttpSendRequestExW
+@ stdcall HttpSendRequestExW(long ptr ptr long long)
@ stdcall HttpSendRequestW(ptr wstr long ptr long)
@ stub IncrementUrlCacheHeaderData
+@ stub InternetAlgIdToStringA
+@ stub InternetAlgIdToStringW
@ stdcall InternetAttemptConnect(long)
@ stdcall InternetAutodial(long ptr)
@ stub InternetAutodialCallback
@@ -109,10 +122,13 @@
@ stdcall InternetCanonicalizeUrlW(wstr wstr ptr long)
@ stdcall InternetCheckConnectionA(ptr long long)
@ stdcall InternetCheckConnectionW(ptr long long)
+@ stdcall InternetClearAllPerSiteCookieDecisions()
@ stdcall InternetCloseHandle(long)
@ stdcall InternetCombineUrlA(str str str ptr long)
@ stdcall InternetCombineUrlW(wstr wstr wstr ptr long)
-@ stub InternetConfirmZoneCrossing
+@ stdcall InternetConfirmZoneCrossing(long str str long) InternetConfirmZoneCrossingA
+@ stdcall InternetConfirmZoneCrossingA(long str str long)
+@ stdcall InternetConfirmZoneCrossingW(long wstr wstr long)
@ stdcall InternetConnectA(ptr str long str str long long long)
@ stdcall InternetConnectW(ptr wstr long wstr wstr long long long)
@ stdcall InternetCrackUrlA(str long long ptr)
@@ -120,45 +136,69 @@
@ stdcall InternetCreateUrlA(ptr long ptr ptr)
@ stdcall InternetCreateUrlW(ptr long ptr ptr)
@ stub InternetDebugGetLocalTime
-@ stub InternetDial
+@ stdcall InternetDial(long str long ptr long) InternetDialA
+@ stdcall InternetDialA(long str long ptr long)
+@ stdcall InternetDialW(long wstr long ptr long)
+@ stdcall InternetEnumPerSiteCookieDecisionA(ptr ptr ptr long)
+@ stdcall InternetEnumPerSiteCookieDecisionW(ptr ptr ptr long)
@ stdcall InternetErrorDlg(long long long long ptr)
@ stdcall InternetFindNextFileA(ptr ptr)
@ stdcall InternetFindNextFileW(ptr ptr)
+@ stub InternetFortezzaCommand
@ stub InternetGetCertByURL
+@ stub InternetGetCertByURLA
@ stdcall InternetGetConnectedState(ptr long)
+@ stdcall InternetGetConnectedStateEx(ptr ptr long long) InternetGetConnectedStateExA
@ stdcall InternetGetConnectedStateExA(ptr ptr long long)
@ stdcall InternetGetConnectedStateExW(ptr ptr long long)
@ stdcall InternetGetCookieA(str str ptr long)
+@ stdcall InternetGetCookieExA(str str ptr ptr long ptr)
+@ stdcall InternetGetCookieExW(wstr wstr ptr ptr long ptr)
@ stdcall InternetGetCookieW(wstr wstr ptr long)
-@ stdcall InternetGetLastResponseInfoA(ptr str ptr)
-@ stub InternetGetLastResponseInfoW
-@ stub InternetGoOnline
-@ stub InternetHangUp
+@ stdcall InternetGetLastResponseInfoA(ptr ptr ptr)
+@ stdcall InternetGetLastResponseInfoW(ptr ptr ptr)
+@ stdcall InternetGetPerSiteCookieDecisionA(str ptr)
+@ stdcall InternetGetPerSiteCookieDecisionW(wstr ptr)
+@ stdcall InternetGoOnline(str long long) InternetGoOnlineA
+@ stdcall InternetGoOnlineA(str long long)
+@ stdcall InternetGoOnlineW(wstr long long)
+@ stdcall InternetHangUp(long long)
@ stdcall InternetLockRequestFile(ptr ptr)
@ stdcall InternetOpenA(str long str str long)
-@ stdcall InternetOpenW(wstr long wstr wstr long)
@ stub InternetOpenServerPushParse
+@ stdcall InternetOpenW(wstr long wstr wstr long)
@ stdcall InternetOpenUrlA(ptr str str long long long)
@ stdcall InternetOpenUrlW(ptr wstr wstr long long long)
@ stdcall InternetQueryDataAvailable(ptr ptr long long)
+@ stub InternetQueryFortezzaStatus
@ stdcall InternetQueryOptionA(ptr long ptr ptr)
@ stdcall InternetQueryOptionW(ptr long ptr ptr)
@ stdcall InternetReadFile(ptr ptr long ptr)
@ stdcall InternetReadFileExA(ptr ptr long long)
@ stdcall InternetReadFileExW(ptr ptr long long)
+@ stub InternetSecurityProtocolToStringA
+@ stub InternetSecurityProtocolToStringW
@ stub InternetServerPushParse
@ stdcall InternetSetCookieA(str str str)
+@ stdcall InternetSetCookieExA(str str str long ptr)
+@ stdcall InternetSetCookieExW(wstr wstr wstr long ptr)
@ stdcall InternetSetCookieW(wstr wstr wstr)
@ stub InternetSetDialState
+@ stub InternetSetDialStateA
+@ stub InternetSetDialStateW
@ stdcall InternetSetFilePointer(ptr long ptr long long)
@ stdcall InternetSetOptionA(ptr long ptr long)
-@ stdcall InternetSetOptionW(ptr long ptr long)
@ stdcall InternetSetOptionExA(ptr long ptr long long)
@ stdcall InternetSetOptionExW(ptr long ptr long long)
+@ stdcall InternetSetOptionW(ptr long ptr long)
+@ stdcall InternetSetPerSiteCookieDecisionA(str long)
+@ stdcall InternetSetPerSiteCookieDecisionW(wstr long)
@ stdcall InternetSetStatusCallback(ptr ptr) InternetSetStatusCallbackA
@ stdcall InternetSetStatusCallbackA(ptr ptr)
@ stdcall InternetSetStatusCallbackW(ptr ptr)
@ stub InternetShowSecurityInfoByURL
+@ stub InternetShowSecurityInfoByURLA
+@ stub InternetShowSecurityInfoByURLW
@ stdcall InternetTimeFromSystemTime(ptr long ptr long) InternetTimeFromSystemTimeA
@ stdcall InternetTimeFromSystemTimeA(ptr long ptr long)
@ stdcall InternetTimeFromSystemTimeW(ptr long ptr long)
@@ -170,25 +210,36 @@
@ stub InternetWriteFileExA
@ stub InternetWriteFileExW
@ stdcall IsHostInProxyBypassList(long str long)
+@ stub IsUrlCacheEntryExpiredA
+@ stub IsUrlCacheEntryExpiredW
@ stub LoadUrlCacheContent
@ stub ParseX509EncodedCertificateForListBoxEntry
+@ stub PrivacyGetZonePreferenceW # (long long ptr ptr ptr)
+@ stub PrivacySetZonePreferenceW # (long long long wstr)
@ stdcall ReadUrlCacheEntryStream(ptr long ptr ptr long)
+@ stub RegisterUrlCacheNotification
+@ stdcall ResumeSuspendedDownload(long long)
@ stdcall RetrieveUrlCacheEntryFileA(str ptr ptr long)
-@ stub RetrieveUrlCacheEntryFileW
+@ stdcall RetrieveUrlCacheEntryFileW(wstr ptr ptr long)
@ stdcall RetrieveUrlCacheEntryStreamA(str ptr ptr long long)
-@ stub RetrieveUrlCacheEntryStreamW
+@ stdcall RetrieveUrlCacheEntryStreamW(wstr ptr ptr long long)
@ stub RunOnceUrlCache
-@ stub SetUrlCacheConfigInfoA
-@ stub SetUrlCacheConfigInfoW
-@ stdcall SetUrlCacheEntryGroup(str long double ptr long ptr)
+@ stdcall SetUrlCacheConfigInfoA(ptr long)
+@ stdcall SetUrlCacheConfigInfoW(ptr long)
+@ stdcall SetUrlCacheEntryGroup(str long double ptr long ptr) SetUrlCacheEntryGroupA
+@ stdcall SetUrlCacheEntryGroupA(str long double ptr long ptr)
+@ stdcall SetUrlCacheEntryGroupW(wstr long double ptr long ptr)
@ stdcall SetUrlCacheEntryInfoA(str ptr long)
@ stdcall SetUrlCacheEntryInfoW(wstr ptr long)
+@ stdcall SetUrlCacheGroupAttributeA(double long long ptr ptr)
+@ stdcall SetUrlCacheGroupAttributeW(double long long ptr ptr)
@ stub SetUrlCacheHeaderData
@ stub ShowClientAuthCerts
@ stub ShowSecurityInfo
@ stub ShowX509EncodedCertificate
@ stdcall UnlockUrlCacheEntryFile(str long) UnlockUrlCacheEntryFileA
@ stdcall UnlockUrlCacheEntryFileA(str long)
-@ stub UnlockUrlCacheEntryFileW
+@ stdcall UnlockUrlCacheEntryFileW(wstr long)
@ stdcall UnlockUrlCacheEntryStream(ptr long)
@ stub UpdateUrlCacheContentPath
+@ stub UrlZonesDetach
diff --git a/include/wininet.h b/include/wininet.h
index ed5cb5c..8127d40 100644
--- a/include/wininet.h
+++ b/include/wininet.h
@@ -281,6 +281,32 @@
DECL_WINELIB_TYPE_AW(INTERNET_BUFFERS)
DECL_WINELIB_TYPE_AW(LPINTERNET_BUFFERS)
+#define GROUP_OWNER_STORAGE_SIZE 4
+#define GROUPNAME_MAX_LENGTH 120
+
+typedef struct _INTERNET_CACHE_GROUP_INFOA {
+ DWORD dwGroupSize;
+ DWORD dwGroupFlags;
+ DWORD dwGroupType;
+ DWORD dwDiskUsage;
+ DWORD dwDiskQuota;
+ DWORD dwOwnerStorage[GROUP_OWNER_STORAGE_SIZE];
+ CHAR szGroupName[GROUPNAME_MAX_LENGTH];
+} INTERNET_CACHE_GROUP_INFOA, * LPINTERNET_CACHE_GROUP_INFOA;
+
+typedef struct _INTERNET_CACHE_GROUP_INFOW {
+ DWORD dwGroupSize;
+ DWORD dwGroupFlags;
+ DWORD dwGroupType;
+ DWORD dwDiskUsage;
+ DWORD dwDiskQuota;
+ DWORD dwOwnerStorage[GROUP_OWNER_STORAGE_SIZE];
+ WCHAR szGroupName[GROUPNAME_MAX_LENGTH];
+} INTERNET_CACHE_GROUP_INFOW, *LPINTERNET_CACHE_GROUP_INFOW;
+
+DECL_WINELIB_TYPE_AW(INTERNET_CACHE_GROUP_INFO)
+DECL_WINELIB_TYPE_AW(LPINTERNET_CACHE_GROUP_INFO)
+
BOOLAPI InternetTimeFromSystemTimeA(CONST SYSTEMTIME *,DWORD ,LPSTR ,DWORD);
BOOLAPI InternetTimeFromSystemTimeW(CONST SYSTEMTIME *,DWORD ,LPWSTR ,DWORD);
#define InternetTimeFromSystemTime WINELIB_NAME_AW(InternetTimeFromSystemTime)
@@ -1153,6 +1179,28 @@
BOOLAPI HttpQueryInfoW(HINTERNET ,DWORD ,LPVOID lpBuffer ,LPDWORD ,LPDWORD lpdwIndex);
#define HttpQueryInfo WINELIB_NAME_AW(HttpQueryInfo)
+BOOLAPI InternetClearAllPerSiteCookieDecisions(VOID);
+
+BOOLAPI InternetEnumPerSiteCookieDecisionA(LPSTR,unsigned long *,unsigned long *,unsigned long);
+BOOLAPI InternetEnumPerSiteCookieDecisionW(LPWSTR,unsigned long *,unsigned long *,unsigned long);
+#define InternetEnumPerSiteCookieDecision WINELIB_NAME_AW(InternetEnumPerSiteCookieDecision)
+
+BOOLAPI InternetGetCookieExA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD,LPVOID);
+BOOLAPI InternetGetCookieExW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD,LPVOID);
+#define InternetGetCookieEx WINELIB_NAME_AW(InternetGetCookieEx)
+
+DWORD WINAPI InternetSetCookieExA(LPCSTR,LPCSTR,LPCSTR,DWORD,DWORD_PTR);
+DWORD WINAPI InternetSetCookieExW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD_PTR);
+#define InternetSetCookieEx WINELIB_NAME_AW(InternetSetCookieEx)
+
+BOOLAPI InternetGetPerSiteCookieDecisionA(LPCSTR,unsigned long *);
+BOOLAPI InternetGetPerSiteCookieDecisionW(LPCWSTR,unsigned long *);
+#define InternetGetPerSiteCookieDecision WINELIB_NAME_AW(InternetGetPerSiteCookieDecision)
+
+BOOLAPI InternetSetPerSiteCookieDecisionA(LPCSTR,DWORD);
+BOOLAPI InternetSetPerSiteCookieDecisionW(LPCWSTR,DWORD);
+#define InternetSetPerSiteCookieDecision WINELIB_NAME_AW(InternetSetPerSiteCookieDecision)
+
BOOLAPI InternetSetCookieA(LPCSTR ,LPCSTR ,LPCSTR);
BOOLAPI InternetSetCookieW(LPCWSTR ,LPCWSTR ,LPCWSTR);
#define InternetSetCookie WINELIB_NAME_AW(InternetSetCookie)
@@ -1352,14 +1400,22 @@
#define CreateUrlCacheEntry WINELIB_NAME_AW(CreateUrlCacheEntry)
BOOLAPI CommitUrlCacheEntryA(LPCSTR,LPCSTR,FILETIME,FILETIME,DWORD,LPBYTE,DWORD,LPCSTR,LPCSTR);
-BOOLAPI CommitUrlCacheEntryW(LPCSTR,LPCWSTR,FILETIME,FILETIME,DWORD,LPWSTR,DWORD,LPCWSTR,LPCWSTR);
+BOOLAPI CommitUrlCacheEntryW(LPCWSTR,LPCWSTR,FILETIME,FILETIME,DWORD,LPBYTE,DWORD,LPCWSTR,LPCWSTR);
#define CommitUrlCacheEntry WINELIB_NAME_AW(CommitUrlCacheEntry)
+BOOLAPI ResumeSuspendedDownload(HINTERNET, DWORD);
+
BOOLAPI RetrieveUrlCacheEntryFileA(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD ,DWORD);
BOOLAPI RetrieveUrlCacheEntryFileW(LPCWSTR ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD ,DWORD);
#define RetrieveUrlCacheEntryFile WINELIB_NAME_AW(RetrieveUrlCacheEntryFile)
-BOOLAPI UnlockUrlCacheEntryFile(LPCSTR ,DWORD);
+BOOLAPI SetUrlCacheConfigInfoA(LPDWORD,DWORD);
+BOOLAPI SetUrlCacheConfigInfoW(LPDWORD,DWORD);
+#define SetUrlCacheConfigInfo WINELIB_NAME_AW(SetUrlCacheConfigInfo)
+
+BOOLAPI UnlockUrlCacheEntryFileA(LPCSTR ,DWORD);
+BOOLAPI UnlockUrlCacheEntryFileW(LPCWSTR ,DWORD);
+#define UnlockUrlCacheEntryFile WINELIB_NAME_AW(UnlockUrlCacheEntryFile)
INTERNETAPI HANDLE WINAPI RetrieveUrlCacheEntryStreamA(LPCSTR ,
LPINTERNET_CACHE_ENTRY_INFOA , LPDWORD ,BOOL ,DWORD);
@@ -1394,13 +1450,27 @@
#define SetUrlCacheEntryInfo WINELIB_NAME_AW(SetUrlCacheEntryInfo)
typedef LONGLONG GROUPID;
-INTERNETAPI GROUPID WINAPI CreateUrlCacheGroup(DWORD ,LPVOID);
+
+INTERNETAPI GROUPID WINAPI CreateUrlCacheGroup(DWORD,LPVOID);
BOOLAPI DeleteUrlCacheGroup(GROUPID ,DWORD ,LPVOID);
+INTERNETAPI HANDLE WINAPI FindFirstUrlCacheGroup(DWORD,DWORD,LPVOID,DWORD,GROUPID*,LPVOID);
+BOOLAPI FindNextUrlCacheGroup(HANDLE,GROUPID*,LPVOID);
+
+BOOLAPI GetUrlCacheGroupAttributeA(GROUPID,DWORD,DWORD,LPINTERNET_CACHE_GROUP_INFOA,LPDWORD,LPVOID);
+BOOLAPI GetUrlCacheGroupAttributeW(GROUPID,DWORD,DWORD,LPINTERNET_CACHE_GROUP_INFOW,LPDWORD,LPVOID);
+#define GetUrlCacheGroupAttribute WINELIB_NAME_AW(GetUrlCacheGroupAttribute)
+
#define INTERNET_CACHE_GROUP_ADD 0
#define INTERNET_CACHE_GROUP_REMOVE 1
-BOOLAPI SetUrlCacheEntryGroup(LPCSTR ,DWORD ,GROUPID ,LPBYTE ,DWORD ,LPVOID);
+BOOLAPI SetUrlCacheEntryGroupA(LPCSTR,DWORD,GROUPID,LPBYTE,DWORD,LPVOID);
+BOOLAPI SetUrlCacheEntryGroupW(LPCWSTR,DWORD,GROUPID,LPBYTE,DWORD,LPVOID);
+#define SetUrlCacheEntryGroup WINELIB_NAME_AW(SetUrlCacheEntryGroup)
+
+BOOLAPI SetUrlCacheGroupAttributeA(GROUPID,DWORD,DWORD,LPINTERNET_CACHE_GROUP_INFOA,LPVOID);
+BOOLAPI SetUrlCacheGroupAttributeW(GROUPID,DWORD,DWORD,LPINTERNET_CACHE_GROUP_INFOW,LPVOID);
+#define SetUrlCacheGroupAttribute WINELIB_NAME_AW(SetUrlCacheGroupAttribute)
INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryExA(
LPCSTR ,DWORD ,DWORD ,GROUPID ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD ,LPVOID ,LPDWORD ,LPVOID );
@@ -1420,9 +1490,11 @@
BOOLAPI FindNextUrlCacheEntryW(HANDLE ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD);
#define FindNextUrlCacheEntry WINELIB_NAME_AW(FindNextUrlCacheEntry)
-
BOOLAPI FindCloseUrlCache(HANDLE);
-BOOLAPI DeleteUrlCacheEntry(LPCSTR);
+
+BOOLAPI DeleteUrlCacheEntryA(LPCSTR);
+BOOLAPI DeleteUrlCacheEntryW(LPCWSTR);
+#define DeleteUrlCacheEntry WINELIB_NAME_AW(DeleteUrlCacheEntry)
INTERNETAPI DWORD WINAPI InternetDialA(HWND ,LPSTR ,DWORD ,LPDWORD ,DWORD);
INTERNETAPI DWORD WINAPI InternetDialW(HWND ,LPWSTR ,DWORD ,LPDWORD ,DWORD);
@@ -1432,6 +1504,7 @@
#define INTERNET_DIAL_UNATTENDED 0x8000
INTERNETAPI DWORD WINAPI InternetHangUp(DWORD ,DWORD);
+BOOLAPI CreateMD5SSOHash(PWSTR,PWSTR,PWSTR,PBYTE);
#define INTERENT_GOONLINE_REFRESH 0x00000001
#define INTERENT_GOONLINE_MASK 0x00000001