ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

void GetAutostartEntriesFromRegistry ( HKEY  hRootKey,
TCHAR KeyName 
)

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);
    }

}

Generated on Sat May 26 2012 04:39:59 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.