簡體   English   中英

ATL:我想創建一個可以用作類中方法參數的協類。 為什么我不能使它正常工作?

[英]ATL: I want to create a coclass that I can use as a parameter for a method in my class. Why can't I get this to work?

我已經使用ATL創建了一個COM對象。 我想創建一個可以從方法返回並作為參數傳遞的新對象。 我已經創建了coclass,但是我不知道如何添加將其作為參數接受的方法。

我得到的錯誤是MIDL2025:語法錯誤:期望在“ IgBrush”附近有類型說明。 我正在使用Visual Studio 2008。

當我添加枚舉時,我想起了很多與IDL一起玩耍的方法,最終讓它接受了枚舉作為參數。 同班同學沒有這種運氣。

從ATL向導提供的默認生成代碼中,使該代碼正常工作需要執行哪些步驟? (即,我該向何處以及為什么移動?)

如果您使用的是IDL,這會有所幫助。

要在MIDL中使用類型,您必須先聲明它。

interface IMyFactory:IDispatch
{
  ...
};

interface IMyObject:IDispatch
{
  HRESULT SetFactory([in] IMyFactory * state);
}

但是我建議您傳遞IUnknown *或IDispach *之類的參數(如果它們合適的話),那么最后的資源就是使用VOID *作為參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM