На обычном C++ (не managed) хочется использовать IVsaEngine. Делаю через COM. Примерно так:
#import "mscorlib.tlb"
#import "System.tlb"
#import "Microsoft.Vsa.tlb"
using namespace System;
using namespace Microsoft_Vsa;
................................
IVsaEnginePtr engine;
if (FAILED(hr = engine.CreateInstance(__uuidof(VsaLoader))))
return hr;
IVsaItemsPtr code = engine->Items;
И вот в последней строке какая-то ошибка!!! engine->GetItems() возвращает какой-то непонятный HRESULT == -2146233067. Не знаю, что делать. В Managed C++ и C# работает отлично, а через COM — ну никак

Может кто-нибудь разбирался с этим?