0
WRL (Windows 런타임 템플릿 라이브러리)을 사용하여 WinRT API에 액세스하는 Win32 앱이 있습니다.WinRT에 기본 C++ 통과 가능
네이티브 C++에서 IIterable
을 사용하는 함수를 호출하려면 어떻게해야합니까? 내 문제는 IIterable
또는 IVector
을 구현하는 것을 얻는 것입니다. 구체적인 예를 들어
SetDefaultMenuItems
전화를 원하는 가정 포함 \ 10.0.14393.0 \ winrt \ windows.ui.input.h :
namespace ABI {
namespace Windows {
namespace UI {
namespace Input {
MIDL_INTERFACE("A6B79ECB-6A52-4430-910C-56370A9D6B42")
IRadialControllerConfiguration : public IInspectable
{
public:
virtual HRESULT STDMETHODCALLTYPE SetDefaultMenuItems(
/* [in] */ __RPC__in_opt __FIIterable_1_Windows__CUI__CInput__CRadialControllerSystemMenuItemKind *buttons) = 0;
// ...
};
}
}
}
}
하는의 재고 구현이있을 것 같지 않습니다 IIterable
또는 IVector
(네이티브 C++ 용)
'std :: vector'를 통해 [VectorView] (https://code.msdn.microsoft.com/windowsapps/Windows-Runtime-Component-9b6c6989/sourcecode?fileId=113783&pathId=1623023906)를 구성 할 수 있습니다. 또는 표준 C++ 콜렉션 유형과 일치하는 기타 적절한 컨테이너 래퍼가 있어야합니다. – IInspectable
IVectorView를 구현하는 런타임 구성 요소를 만들어야합니다. 그런 다음 해당 사용자 지정 구성 요소를 사용하여 IIterable을 API로 전달해야합니까? –
'IVectorView' 인터페이스가 없습니다. 'VectorView'는'IIterable' 인터페이스를 구현하는 클래스 템플릿입니다. 'IIterable' 인터페이스를 기대하는 함수에'VectorView'에 대한 포인터를 즉시 전달할 수 있습니다. COM, C++ 또는 COM을 구현하는 데 C++가 사용되는 방식을 이해하지 못했기 때문에 여기에서 완전히 손실 된 것처럼 들립니다. 그리고 나서 WRL은 당신이 먼저 습득 할 필요가있는 또 다른 추상화를 추가합니다. 이것은 잘 끝나지 않을 것입니다. 처음부터 다시 시작하고 기초에 익숙해 져야합니다. – IInspectable