Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- a/wine/dlls/kernel32/volume.c 2010-05-11 01:33:18.000000000 +0300
- +++ b/wine/dlls/kernel32/volume.c 2010-06-30 00:36:16.000000000 +0300
- @@ -1602,16 +1602,66 @@
- volumepathname[2] = '\\';
- volumepathname[3] = 0;
- return TRUE;
- }
- return FALSE;
- }
- /***********************************************************************
- + * GetVolumePathNamesForVolumeNameA (KERNEL32.@)
- + */
- +BOOL WINAPI GetVolumePathNamesForVolumeNameA(LPCSTR volumename, LPSTR volumepathname, DWORD buflen, PDWORD returnlen)
- +{
- +
- + DWORD available_drives = GetLogicalDrives();
- + char letter;
- + int count = 0;
- + char volumename2string[50];
- + LPSTR volumename2 = volumename2string;
- + char pstr[4] = {'A', ':', '\\', 0};
- + LPCSTR pathstring = pstr;
- +
- +
- + FIXME("(%s, %p, %d, %p), stub!\n", debugstr_a(volumename), volumepathname, buflen, returnlen);
- +
- + memset(volumepathname, 0, buflen);
- + for (letter='A'; letter<='Z'; letter++)
- + {
- + memset(volumename2string, 0, sizeof(volumename2string));
- + if (available_drives && (1<<(letter-'A')))
- + {
- + pstr[0] = letter;
- + if( (GetVolumeNameForVolumeMountPointA(pathstring, volumename2, 50)) && (!strncmp(volumename, volumename2, 50)))
- + //if getvolumename... succeeds and the names match
- + {
- + if ((count+4) <= (buflen-1)) //don't append the string if we don't have enough buffer space
- + {
- + snprintf(&volumepathname[count], 4, "%c:\\", letter);
- + volumepathname[count+3] = 0;
- + }
- + count += 4;
- + }
- +
- + }
- +
- + }
- + *returnlen = count;
- + if (count > (buflen-1))
- + {
- + SetLastError(ERROR_MORE_DATA);
- + return FALSE;
- + }
- + if (count == 0)
- + return FALSE;
- +
- + return TRUE;
- +}
- +
- +/***********************************************************************
- * GetVolumePathNamesForVolumeNameW (KERNEL32.@)
- */
- BOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR volumename, LPWSTR volumepathname, DWORD buflen, PDWORD returnlen)
- {
- FIXME("(%s, %p, %d, %p), stub!\n", debugstr_w(volumename), volumepathname, buflen, returnlen);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
- }
- --- a/wine/dlls/kernel32/kernel32.spec 2010-05-11 01:33:18.000000000 +0300
- +++ b/wine/dlls/kernel32/kernel32.spec 2010-06-24 13:26:08.000000000 +0300
- @@ -671,5 +671,5 @@
- @ stdcall GetVolumePathNameA(str ptr long)
- @ stdcall GetVolumePathNameW(wstr ptr long)
- -# @ stub GetVolumePathNamesForVolumeNameA
- +@ stdcall GetVolumePathNamesForVolumeNameA(str ptr long ptr)
- @ stdcall GetVolumePathNamesForVolumeNameW(wstr ptr long ptr)
- @ stdcall GetWindowsDirectoryA(ptr long)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement