Я пытаюсь использовать класс SpatialSurfaceObserver для Windows Mixed Reality. Я следил за этим: https://developer.microsoft.com/en-us/windows/mixed-reality/spatial_mapping_in_directx
Однако я наткнулся на блокпост. В примере указано, что я должен просто создать экземпляр следующим образом: m_surfaceObserver = ref new SpatialSurfaceObserver();
Однако я использую чистый C++, без C#, без C++/CX и т. д. Пока это не было проблемой, я ожидал использовать фабрику активации для создания экземпляра, но, насколько я могу судить, для этого класса не содержит никакой функции для создания экземпляра.
В основном я думал использовать это:
using namespace ABI::Windows::Perception::Spatial;
ComPtr<Surfaces::ISpatialSurfaceObserverStatics> observerFactory;
ABI::Windows::Foundation::GetActivationFactory(HStringReference(RuntimeClass_Windows_Perception_Spatial_Surfaces_SpatialSurfaceObserver).Get(), &observerFactory);
observerFactory->someCreatorFunction(...);
Но нет никакой функции, которую я мог бы использовать.
Затем я нашел ActivateInstance и подумал, что это должно сработать:
ComPtr<Surfaces::ISpatialSurfaceObserver> observer;
ABI::Windows::Foundation::ActivateInstance(HStringReference(RuntimeClass_Windows_Perception_Spatial_Surfaces_SpatialSurfaceObserver).Get(), &observer);
Но это тоже не компилируется, всегда жалуется, что ISpatialSurfaceObserver не содержит член «InterfaceType».
Я также столкнулся с «Make» и «MakeAndActivate», но не совсем понял, как их использовать и подходят ли они для моего случая.
Есть идеи, что мне не хватает?