No puede elevar los permisos de un proceso mientras se está ejecutando el proceso. la forma más común de evitar esto es generar un nuevo proceso con permisos elevados cuando sea necesario. Este proceso hace el trabajo que requiere mayores privilegios y luego se cierra, liberando el control al proceso principal. Debería poder hacerlo de forma bastante sencilla configurando la nueva ventana primaria de procesos en la ventana de proceso principal.
La otra alternativa es reiniciar el programa principal con los permisos necesarios.
Hay un article on UAC in Vista with C++ examples que se ve bastante en profundidad.
Bien. Simplemente no sabía si era posible. Lo que mi programa puede hacer en ese momento es iniciar otro proceso que se ejecute en paralelo con el principal y use RPC para manejar todas las tareas elevadas. –