如何解决如何在cppwinrt中将Handler对象与AddHandler一起使用?
在C ++ / WinRT反射中,API AddHandler被定义为
UIElement::AddHandler(Windows::UI::Xaml::RoutedEvent const& routedEvent,Windows::foundation::IInspectable const& handler,bool handledEventsToo) const
但是处理程序似乎仅从IUnknown
继承。例如,这是KeyEventHandler的声明:
struct KeyEventHandler : Windows::foundation::IUnknown
注册事件处理程序的解决方案是什么?
解决方法
似乎我们需要调用box_value(handler)
,将其转换为IInspectable
。这一点一点都不明显,您在MSDN上找不到任何示例。
要详细说明iohanson的答案,是的,代表需要装箱。 WinRT代表是IUnknown
,而不是IInspectable
。 AddHandler
期望得到一个IReference<T>
,其中T
是RoutedEvent
的委托。
我在cppwinrt上开了一个问题,以查看是否可以获得更多有用的重载,因为cppwinrt我们没有像CX用户那样享受魔术般的拳击乐趣。 https://github.com/microsoft/cppwinrt/issues/776
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。