Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 145 of file startuppage.c.
Referenced by StartupPageWndProc().
{ HKEY hKey; DWORD Index, dwValues, retVal, dwType; DWORD dwValueLength, dwDataLength = MAX_VALUE_NAME; TCHAR* Data; TCHAR lpValueName[MAX_KEY_LENGTH]; TCHAR Path[MAX_KEY_LENGTH + 5]; LV_ITEM item; if (RegOpenKeyEx(hRootKey, KeyName, 0, KEY_READ, &hKey) == ERROR_SUCCESS) { if (RegQueryInfoKey(hKey, NULL, NULL, NULL, NULL, NULL, NULL, &dwValues, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) { for (Index = 0, retVal = ERROR_SUCCESS; Index < dwValues; Index++) { dwValueLength = MAX_KEY_LENGTH; dwDataLength = MAX_VALUE_NAME; Data = (TCHAR*) HeapAlloc(GetProcessHeap(), 0, MAX_VALUE_NAME * sizeof(TCHAR)); if (Data == NULL) break; retVal = RegEnumValue(hKey, Index, lpValueName, &dwValueLength, NULL, &dwType, (LPBYTE)Data, &dwDataLength); if (retVal == ERROR_SUCCESS) { memset(&item, 0, sizeof(LV_ITEM)); item.mask = LVIF_TEXT; item.iImage = 0; item.pszText = lpValueName; item.iItem = ListView_GetItemCount(hStartupListCtrl); item.lParam = 0; (void)ListView_InsertItem(hStartupListCtrl, &item); ListView_SetCheckState(hStartupListCtrl, item.iItem, TRUE); if ((dwType == REG_SZ) || (dwType == REG_EXPAND_SZ)) { GetLongPathName(Data, Data, (DWORD) _tcsclen(Data)); item.pszText = Data; item.iSubItem = 1; SendMessage(hStartupListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item); } switch (PtrToLong(hRootKey)) { case (ULONG_PTR)HKEY_LOCAL_MACHINE: _tcscpy(Path, _T("HKLM\\\0")); break; case (ULONG_PTR)HKEY_CURRENT_USER: _tcscpy(Path, _T("HKCU\\\0")); break; default: _tcscpy(Path, _T("\0")); } _tcscat(Path, KeyName); item.pszText = Path; item.iSubItem = 2; SendMessage(hStartupListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item); HeapFree(GetProcessHeap(), 0, Data); } } } RegCloseKey(hKey); } }