2016-06-19 38 views
1

我試圖做定義返回任務如何定義在IDL文件返回任務的接口

interface MyInterface : IUnknown 
{ 
    HRESULT myFunction(
     [out, retval] System.Threading.Tasks.Task task); 

} 

這給了我一個異常說「期待不久的‘任務’一式規範」的界面

回答

0

COM/MIDL不知道.NET類,如Task,因爲技術是獨特的,COM早於.NET。你打算一個服務器將創建並執行一個Task,而客戶端(可能在一個獨特的過程中,可能不是一個.NET程序)將有權訪問該任務?然後應該有任務的接口,以及關聯的代理和存根實現,用於編組方法參數和進程之間的結果。閱讀COM和「COM Iterop」。另外,您的IDL需要定義或者定義這種接口。

根據您的需要,現有的接口IAsyncResult就足夠了。它由Task實施,它被標記爲ComVisibleAttribute(true)。它的COM類型定義似乎在mscorlib.tlb中。您可能需要使用OleView.exe生成相應的IDL。

相關問題