A ver, antes de todo tienes que aprender a
googlear y, en tu código tienes bastantes errores. Te voy a poner un ejemplo, luego lo estudias para ver cómo funciona y finalmente lo adaptas a tu código:
#include <windows.h>
int main()
{
LPSTR lpSubKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hkResult = 0;
if(RegOpenKeyEx(HKEY_CURRENT_USER, lpSubKey, 0, KEY_WRITE, &hkResult) == ERROR_SUCCESS)
{
HKEY hKey = 0;
LPSTR lpValueName = "ejemplo";
LPSTR lpData = "C:\\ejemplo.exe";
if(RegSetValueEx(hkResult, lpValueName, 0, REG_SZ, (LPBYTE)lpData, lstrlen(lpData)) != ERROR_SUCCESS) MessageBox(0, "Error", "Error", 0);
else MessageBox(0, "Añadido", "Añadido",0);
RegCloseKey(hKey);
}
else MessageBox(0, "Error", "Error",0);
}
Y si no lo comprendes, pregunta en el apartado de programación en C/C++.
Saludos