[Bug 7690] Hoai client fails to install

Wine Bugs wine-bugs at winehq.org
Mon Mar 19 06:45:53 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=7690





------- Additional Comments From focht at gmx.net  2007-19-03 06:45 -------
Hello

--- snip ---
fixme:mpr:WNetGetUniversalNameA ("C:\\PROGRAM
FILES\\KOBOLD\\SHOAI.80\\KLM\\KLM.mdb", 0x00000001, 0x34f82c, 0x34fc38): stub
--- snip ---

This fixme could probably solved by deferring work to WNetGetUniversalNameW().
You just need to convert input ansi params to unicode, pass it to "W" version
and convert back to ansi after WNetGetUniversalNameW() returns successfully.

Implementation is easy: you can copy the code from dlls/mpr/wnet.c
:WNetGetConnectionA() for this (same mechanism).

When working on it, fix some buggy code parts in WNetGetConnectionA() before
"reusing" the code:

--- snip dlls/mpr/wnet.c ----

DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName,
                                 LPSTR lpRemoteName, LPDWORD lpBufferSize )
{
    ...

   else if (ret == WN_MORE_DATA)
   {
      PWSTR wideRemote = HeapAlloc(GetProcessHeap(), 0,
            wideRemoteSize * sizeof(WCHAR));

      if (wideRemote)
      {
          ret = WNetGetConnectionW(wideLocalName, wideRemote,
                      &wideRemoteSize);
          if (ret == WN_SUCCESS)
          {
             // *** BUG: following call was missing before "len" check 
             int len = WideCharToMultiByte(CP_ACP, 0, wideRemote,
                     -1, NULL, 0, NULL, NULL);
             if (len <= *lpBufferSize)
              {
               // *** BUG: "wideRemoteStatic" should be "wideRemote"
               WideCharToMultiByte(CP_ACP, 0, wideRemoteStatic,
                      -1, lpRemoteName, *lpBufferSize, NULL, NULL);
                    ret = WN_SUCCESS;
              }
              else
             {
                 *lpBufferSize = len;
                  ret = WN_MORE_DATA;
             }
        }
...
--- snip dlls/mpr/wnet.c ----

Regards


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list