如何在返回任务的IDL文件中定义接口



我正在尝试定义返回任务

的接口
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。

生成相应的IDL

最新更新