Bueno no, el CreateObject no es lo mismo que el constructor de la clase/objeto, debido a que CreateObject manda llamar a varios métodos de COM, busca un IID y CLSID en el registro, abre la librería de enlace dinámico asociado, obtiene el puntero al IClassFactory y ejectura el GetClassObject, para finalmente devolver la dirección en memoria del objeto IID asociado.
Ahora, volviendo al tema que nos interesa, no, no hay una función equivalente al "eval" de javascript. Este eval lo que hace es lo siguiente:
var n = "5";
var suma = eval(2 + n);
alert(suma);
lo anterior produciría un mensaje que diría: "7". El eval lo que hace es evaluar uno de los parámetros en función del tipo de dato del otro parámetro. Entonces, el ejemplo anterior podríamos modificarlo como:
var n = "5";
var suma = eval(n + 2);
alert(suma);
para que nos produjera un mensaje que diría "52" (porque para las cadenas de texto, el operador + significa concatenación.
En C++ tienes que emplear alguna de las muchas funciones que hay para convertir entre tipo de datos, e inclusive puedes identificar el tipo de dato asociado con RTTI y typeid, pero no hay algo que lo haga de forma automática.
Más aún, secundo a Nelek: no hay documentación alguna relacionada con VC++ de la función que mencionas, ni en la documentación para VC6, VC7.1 y VC8.
Saludos.