mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 04:45:43 +00:00
[LOCALSPL]
Bugfix: The RegEnum* functions take the buffer size _including_ the terminating null character as input and only return the actual data length _without_ the terminating null character as output. svn path=/branches/colins-printing-for-freedom/; revision=68324
This commit is contained in:
parent
aef3b57f55
commit
86dbf40cd1
1 changed files with 3 additions and 3 deletions
|
@ -192,7 +192,7 @@ InitializePrintProcessorList()
|
|||
}
|
||||
|
||||
// Get the name of this Print Processor.
|
||||
cchPrintProcessorName = cchMaxSubKey;
|
||||
cchPrintProcessorName = cchMaxSubKey + 1;
|
||||
lStatus = RegEnumKeyExW(hSubKey, i, pwszPrintProcessorName, &cchPrintProcessorName, NULL, NULL, NULL, NULL);
|
||||
if (lStatus != ERROR_SUCCESS)
|
||||
{
|
||||
|
@ -498,7 +498,7 @@ LocalEnumPrintProcessors(LPWSTR pName, LPWSTR pEnvironment, DWORD Level, LPBYTE
|
|||
{
|
||||
// RegEnumKeyExW sucks! Unlike similar API functions, it only returns the actual numbers of characters copied when you supply a buffer large enough.
|
||||
// So use pwszTemp with its size cchMaxSubKey for this.
|
||||
cchPrintProcessor = cchMaxSubKey;
|
||||
cchPrintProcessor = cchMaxSubKey + 1;
|
||||
dwErrorCode = (DWORD)RegEnumKeyExW(hSubKey, i, pwszTemp, &cchPrintProcessor, NULL, NULL, NULL, NULL);
|
||||
if (dwErrorCode != ERROR_SUCCESS)
|
||||
{
|
||||
|
@ -524,7 +524,7 @@ LocalEnumPrintProcessors(LPWSTR pName, LPWSTR pEnvironment, DWORD Level, LPBYTE
|
|||
for (i = 0; i < *pcReturned; i++)
|
||||
{
|
||||
// This isn't really correct, but doesn't cause any harm, because we've extensively checked the size of the supplied buffer above.
|
||||
cchPrintProcessor = cchMaxSubKey;
|
||||
cchPrintProcessor = cchMaxSubKey + 1;
|
||||
|
||||
// Copy the Print Processor name.
|
||||
dwErrorCode = (DWORD)RegEnumKeyExW(hSubKey, i, (PWSTR)pCurrentOutputPrintProcessor, &cchPrintProcessor, NULL, NULL, NULL, NULL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue