Misha Koshelev mk144210@bcm.edu writes:
case VT_BSTR: /* Return value of specified key if it exists */if (ret == ERROR_SUCCESS){ret = RegQueryValueExW(hkey, V_BSTR(&varg2), NULL, NULL, NULL, &dwSize);if (ret == ERROR_SUCCESS){szString = msi_alloc(dwSize);if (szString){LPWSTR szNewString = NULL;DWORD dwType, dwNewSize = 0;int idx;ret = RegQueryValueExW(hkey, V_BSTR(&varg2), NULL, &dwType, (LPBYTE)szString, &dwSize);switch (dwType){/* Registry strings may not be null terminated */case REG_MULTI_SZ:idx = (dwSize/sizeof(WCHAR))-1;while (idx >= 0 && !szString[idx]) idx--;for (; idx >= 0; idx--)if (!szString[idx]) szString[idx] = '\n';[...]
This stuff clearly needs to be split out into a few helper functions.
On Thu, 2007-05-10 at 12:13 +0200, Alexandre Julliard wrote:
Misha Koshelev mk144210@bcm.edu writes:
case VT_BSTR: /* Return value of specified key if it exists */if (ret == ERROR_SUCCESS){ret = RegQueryValueExW(hkey, V_BSTR(&varg2), NULL, NULL, NULL, &dwSize);if (ret == ERROR_SUCCESS){szString = msi_alloc(dwSize);if (szString){LPWSTR szNewString = NULL;DWORD dwType, dwNewSize = 0;int idx;ret = RegQueryValueExW(hkey, V_BSTR(&varg2), NULL, &dwType, (LPBYTE)szString, &dwSize);switch (dwType){/* Registry strings may not be null terminated */case REG_MULTI_SZ:idx = (dwSize/sizeof(WCHAR))-1;while (idx >= 0 && !szString[idx]) idx--;for (; idx >= 0; idx--)if (!szString[idx]) szString[idx] = '\n';[...]
This stuff clearly needs to be split out into a few helper functions.
Just sent a new one, mainly with one additional helper function and some if/else condensation. Please let me know if you believe I need to make more helpers.
Thank you.
Misha