我正在尝试定义返回任务
的接口interface MyInterface : IUnknown
{
HRESULT myFunction(
[out, retval] System.Threading.Tasks.Task task);
}
这给了我一个例外,说"期望在"任务"附近有类型规范'
com/midl对诸如Task
之类的.NET类别不了解,因为技术是不同的,并且com tode tode是.net。您打算将服务器创建和执行Task
,而客户端(可能在不同的过程中,可能不是.NET程序)可以访问该任务?然后,任务应该有一个 com 接口,并具有关联的代理和存根实现,以进行编制方法参数和过程之间的结果。阅读com和" com iterop"。另外,您的IDL需要定义或import
此类接口的定义。
根据您的需求,现有的接口IAsyncResult
可能就足够了。它由Task
实现,并标记为ComVisibleAttribute(true)
。它的com类型定义似乎在mscorlib.tlb中。您可能需要使用oleview.exe。