In questo caso non vengono eliminate le chiavi di registro.... brutta cosa.... bisogneberre avviare l'unistaller..... con il linguaggio c++ potresti da un occhio alla API ShellExecute

HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);


API da msdn

Esempio:

codice:
ShellExecute(NULL, "open", "C:\\Program Files\\Office\\unistall.exe", NULL, NULL, 1);
//Il percorso è da aggiustare