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