Código C++:
Ver originalCollectionResult ; <<--- AQUI!!!
CollectionInitialize( result ) ; // no has definido el tipo de 'result'
No será que te falta poner el nombre de la variable?
CollectionResult, tal y como está puesto en el código, será interpretado como un tipo... y un tipo puede ser usado para declarar una variable o hacer un cast... en esa línea tu no estás haciendo ni una cosa ni la otra. El compilador simplemente no sabe qué hacer con ese tipo.
Luego lo que sucede es que no has definido la variable 'result', luego ésta variable ni existe ni tiene tipo... el compilador tampoco sabe cómo gestionar esta variable.
Un saludo