问题标签 [wrl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
863 浏览

c++ - 如何取消 C++/WRL 中的异步回调函数?

我正在使用我不熟悉的C++/WRL编写 Windows 10 Store / WinRT 代码。我很想知道如何取消长期挂起的异步操作?

说明它的最好方法是用这个例子:

编辑:当我尝试opAppLic->Cancel()按照以下答案中的建议添加时,它给了我以下编译器错误:

我需要QueryInterface那个IAsyncInfo,还是什么?

EDIT2:这就是我得到的opAppLic变量类型:

在此处输入图像描述

不,它没有Cancel方法:

在此处输入图像描述

0 投票
0 回答
210 浏览

c++ - 当 Windows 10 应用商店应用的试用许可证到期时,永远不会引发 OfflineLicensesChanged 事件

我正在尝试为我的 Win32 应用程序转换为 Windows 10 应用商店的 UWP 的以下代码。该应用程序根据试用许可证在商店中发布 7 天。

以下代码的目标是在应用程序的试用期到期时收到通知:

我让应用程序运行并等待许可证过期,但从未引发OfflineLicensesChanged 事件。

知道我在做什么错吗?

0 投票
0 回答
514 浏览

c++ - 如何正确等待异步 WinRT 回调函数停止?

我之前问过类似的问题,但那里的答案不符合我的要求。让我解释。

我从 DLL 调用以下代码,以从 Windows 应用商店应用程序在 Windows 10 上执行 WinRT 操作。该代码使用WRL

但是当我调用该IAsyncInfo::Cancel()方法并立即卸载 DLL 时,这会导致竞争条件,有时会导致应用程序崩溃。

纯粹是实验性的,我注意到在调用IAsyncInfo::Cancel()框架后调用我的onAppLicCompletedCallback方法statusset to AsyncStatus::CanceledIAsyncInfo::Cancel()但是这个调用也会在方法返回后很长时间异步发生。

所以我想知道,有没有办法等待所有 WinRT 异步回调完成运行,然后才能继续卸载我的 DLL?

0 投票
1 回答
184 浏览

c++ - WRL SystemMediaTransportControls E_NOINTERFACE

我正在尝试使用 WRL(工具包 v140)在 Visual C++ 中使用 SystemMediaTransportControls,但遇到以下问题:

上面的代码返回 E_NOINTERFACE,但如果我按照 MSDN 教程激活 IUriRuntimeClassFactory,它就可以工作。

编辑:我在调用这些函数之前已经对其进行了初始化。

0 投票
1 回答
489 浏览

c++ - 本机 C++ 将 IIterable 传递给 WinRT

我有一个使用 WRL(Windows 运行时模板库)访问 WinRT API 的 Win32 应用程序。

如何调用IIterable从本机 C++ 获取的函数?我的问题是获得实现IIterableIVector.

作为一个具体的例子,假设我想调用SetDefaultMenuItemsInclude\10.0.14393.0\winrt\windows.ui.input.h:

似乎没有原生 C++IIterableIVector原生 C++ 的库存实现。

0 投票
0 回答
1935 浏览

unity3d - 尝试将 vrml 文件导入统一

我有以下文件

vrml 文件

我试图以某种方式导入它们,而不会失去对彼此的引用以实现统一。

我尝试使用 Blender,但一次只能导出一个 wrl 文件(我可能错了),这会导致它失去对动画和材质的引用。

0 投票
2 回答
290 浏览

windows-runtime - 如何在 WinRT Store App 上实例化 H264 编码器

我希望能够使用 Media Foundation IMFTransform 对视频帧进行 H264 视频编码。这在 Win32 中很容易实现,您可以在其中使用 MFTEnumEx 枚举转换并找到 H264 编码器。

但是,在 WinRT(商店应用程序)上,我找不到实例化的方法。我注意到有一个类 CMSH264EncoderMFT,但没有定义用于 CoCreateInstance 上的 CLSID。

和:

未为 WinRT 应用定义 CLSID_CMSH264EncoderMFT。

并尝试:

它说 CMSH264EncoderMFT 类不完整,并说“使用未定义类型'CMSH264EncoderMFT'”。甚至不知道 Make 的语法是否正确或合适......

有没有人知道如何为 WinRT 做到这一点?

0 投票
0 回答
468 浏览

c++ - 无法创建 D2D1 设备

我正在尝试遵循 Microsoft 的DirectX 和 XAML 互操作官方教程,以便为 UWP 应用程序的图像基元绘图制作 C++ 运行时库。然而,代码充满了错误和错别字。我已经设法调整了它的一部分,但是我遇到了运行时错误。

我已将代码改编如下。

在调试代码时,我可以看到d2d1句柄正在返回E_INVALIDARG。我尝试传递设备属性而不是NULL禁用多线程访问,但错误仍然存​​在。此行之前的对象似乎已正确初始化。

什么可能导致这种行为?

编辑

VTT 的评论有助于构建设备,但该设备似乎不合适。我改编的代码如下。

但是,这里的BeginDraw()方法失败了E_INVALIDARG。我假设这是因为设备结构不正确。

0 投票
2 回答
338 浏览

c++ - WinRT c++:获取包系列名称

在 C# 上,可以使用以下代码:

我无法在任何地方找到有关如何使用C++. 看来我需要为此使用WRL

我使用 Microsoft Visual C++ 2015。

0 投票
1 回答
76 浏览

c++ - 使用 WRL 实例化 SpatialSurfaceObserver

我正在尝试将 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 等。到目前为止这没问题,我期待使用激活工厂来创建一个实例,但据我所知,这个类不包含任何创建实例的函数。

基本上我想用这个:

但是没有我可以使用的功能。

然后我找到了 ActivateInstance,并认为应该可以:

但这也不能编译,它总是抱怨 ISpatialSurfaceObserver 不包含“InterfaceType”成员。

我也遇到了“Make”和“MakeAndActivate”,但并不真正了解如何使用它们以及它们是否适合我的情况。

知道我缺少什么吗?