WININET: stub implementations for some undocumented functions
Hans Leidekker
hans at it.vu.nl
Sat Feb 5 16:47:19 CST 2005
This patch enables the german progam StarMoney to use native shdocvw on
top of builtin wininet instead of native wininet. It also fixes a crash
in the application caused by us not handling an invalid buffer size in
InternetQueryOption.
-Hans
Changelog:
Stub implementations for DeleteUrlCacheContainer{A,W},
CreateCacheContainer{A,W}, FindFirstUrlCacheContainer{A,W},
FindNextUrlCacheContainer{A,W}.
Handle the case where the supplied buffer size is too small
in InternetQueryOption.
-------------- next part --------------
Index: dlls/wininet/internet.c
===================================================================
RCS file: /home/wine/wine/dlls/wininet/internet.c,v
retrieving revision 1.113
diff -u -r1.113 internet.c
--- dlls/wininet/internet.c 1 Feb 2005 18:50:54 -0000 1.113
+++ dlls/wininet/internet.c 5 Feb 2005 21:56:35 -0000
@@ -1842,9 +1842,16 @@
{
INTERNET_CONNECTED_INFO * pCi = (INTERNET_CONNECTED_INFO *)lpBuffer;
FIXME("INTERNET_OPTION_CONNECTED_STATE: semi-stub\n");
- pCi->dwConnectedState = INTERNET_STATE_CONNECTED;
- pCi->dwFlags = 0;
- bSuccess = TRUE;
+
+ if (*lpdwBufferLength < sizeof(INTERNET_CONNECTED_INFO))
+ INTERNET_SetLastError(ERROR_INSUFFICIENT_BUFFER);
+ else
+ {
+ pCi->dwConnectedState = INTERNET_STATE_CONNECTED;
+ pCi->dwFlags = 0;
+ *lpdwBufferLength = sizeof(INTERNET_CONNECTED_INFO);
+ bSuccess = TRUE;
+ }
break;
}
case INTERNET_OPTION_SECURITY_FLAGS:
Index: dlls/wininet/urlcache.c
===================================================================
RCS file: /home/wine/wine/dlls/wininet/urlcache.c,v
retrieving revision 1.23
diff -u -r1.23 urlcache.c
--- dlls/wininet/urlcache.c 1 Feb 2005 18:50:54 -0000 1.23
+++ dlls/wininet/urlcache.c 5 Feb 2005 21:56:36 -0000
@@ -2162,14 +2162,83 @@
return TRUE;
}
+BOOL DeleteUrlCacheContainerA(DWORD d1, DWORD d2)
+{
+ FIXME("(0x%08lx, 0x%08lx) stub\n", d1, d2);
+ return TRUE;
+}
+
+BOOL DeleteUrlCacheContainerW(DWORD d1, DWORD d2)
+{
+ FIXME("(0x%08lx, 0x%08lx) stub\n", d1, d2);
+ return TRUE;
+}
+
+/***********************************************************************
+ * CreateCacheContainerA (WININET.@)
+ */
+BOOL WINAPI CreateUrlCacheContainerA(DWORD d1, DWORD d2, DWORD d3, DWORD d4,
+ DWORD d5, DWORD d6, DWORD d7, DWORD d8)
+{
+ FIXME("(0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx) stub\n",
+ d1, d2, d3, d4, d5, d6, d7, d8);
+ return TRUE;
+}
+
+/***********************************************************************
+ * CreateCacheContainerW (WININET.@)
+ */
+BOOL WINAPI CreateUrlCacheContainerW(DWORD d1, DWORD d2, DWORD d3, DWORD d4,
+ DWORD d5, DWORD d6, DWORD d7, DWORD d8)
+{
+ FIXME("(0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx, 0x%08lx) stub\n",
+ d1, d2, d3, d4, d5, d6, d7, d8);
+ return TRUE;
+}
+
/***********************************************************************
* FindCloseUrlCache (WININET.@)
- *
*/
BOOL WINAPI FindCloseUrlCache(HANDLE hEnumHandle)
{
FIXME("(%p) stub\n", hEnumHandle);
return TRUE;
+}
+
+/***********************************************************************
+ * FindFirstUrlCacheContainerA (WININET.@)
+ */
+HANDLE WINAPI FindFirstUrlCacheContainerA( LPVOID p1, LPVOID p2, LPVOID p3, DWORD d1 )
+{
+ FIXME("(%p, %p, %p, 0x%08lx) stub\n", p1, p2, p3, d1 );
+ return NULL;
+}
+
+/***********************************************************************
+ * FindFirstUrlCacheContainerW (WININET.@)
+ */
+HANDLE WINAPI FindFirstUrlCacheContainerW( LPVOID p1, LPVOID p2, LPVOID p3, DWORD d1 )
+{
+ FIXME("(%p, %p, %p, 0x%08lx) stub\n", p1, p2, p3, d1 );
+ return NULL;
+}
+
+/***********************************************************************
+ * FindNextUrlCacheContainerA (WININET.@)
+ */
+BOOL WINAPI FindNextUrlCacheContainerA( HANDLE handle, LPVOID p1, LPVOID p2 )
+{
+ FIXME("(%p, %p, %p) stub\n", handle, p1, p2 );
+ return FALSE;
+}
+
+/***********************************************************************
+ * FindNextUrlCacheContainerW (WININET.@)
+ */
+BOOL WINAPI FindNextUrlCacheContainerW( HANDLE handle, LPVOID p1, LPVOID p2 )
+{
+ FIXME("(%p, %p, %p) stub\n", handle, p1, p2 );
+ return FALSE;
}
HANDLE WINAPI FindFirstUrlCacheEntryExA(
Index: dlls/wininet/wininet.spec
===================================================================
RCS file: /home/wine/wine/dlls/wininet/wininet.spec,v
retrieving revision 1.53
diff -u -r1.53 wininet.spec
--- dlls/wininet/wininet.spec 1 Feb 2005 18:50:54 -0000 1.53
+++ dlls/wininet/wininet.spec 5 Feb 2005 21:56:36 -0000
@@ -21,14 +21,14 @@
@ stdcall CommitUrlCacheEntryA(str str long long long long long str long str str)
@ stdcall CommitUrlCacheEntryW(wstr wstr long long long long long wstr long wstr wstr)
@ stdcall CreateMD5SSOHash(wstr wstr wstr ptr)
-@ stub CreateUrlCacheContainerA
-@ stub CreateUrlCacheContainerW
+@ stdcall CreateUrlCacheContainerA(long long long long long long long long)
+@ stdcall CreateUrlCacheContainerW(long long long long long long long long)
@ stdcall CreateUrlCacheEntryA(str long str ptr long)
@ stdcall CreateUrlCacheEntryW(wstr long wstr ptr long)
@ stdcall CreateUrlCacheGroup(long ptr)
@ stdcall DeleteIE3Cache(ptr ptr str long)
-@ stub DeleteUrlCacheContainerA
-@ stub DeleteUrlCacheContainerW
+@ stdcall DeleteUrlCacheContainerA(long long)
+@ stdcall DeleteUrlCacheContainerW(long long)
@ stdcall DeleteUrlCacheEntry(str) DeleteUrlCacheEntryA
@ stdcall DeleteUrlCacheEntryA(str)
@ stdcall DeleteUrlCacheEntryW(wstr)
@@ -36,15 +36,15 @@
@ stdcall DetectAutoProxyUrl(str long long)
@ stdcall DllInstall(long ptr) WININET_DllInstall
@ stdcall FindCloseUrlCache(long)
-@ stub FindFirstUrlCacheContainerA
-@ stub FindFirstUrlCacheContainerW
+@ stdcall FindFirstUrlCacheContainerA(ptr ptr ptr long)
+@ stdcall FindFirstUrlCacheContainerW(ptr ptr ptr long)
@ stdcall FindFirstUrlCacheEntryA(str ptr ptr)
@ 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
+@ stdcall FindNextUrlCacheContainerA(long ptr ptr)
+@ stdcall FindNextUrlCacheContainerW(long ptr ptr)
@ stdcall FindNextUrlCacheEntryA(long ptr ptr)
@ stdcall FindNextUrlCacheEntryExA(long ptr ptr ptr ptr ptr)
@ stdcall FindNextUrlCacheEntryExW(long ptr ptr ptr ptr ptr)
More information about the wine-patches
mailing list