0
我有一个成员对我的课:如何AddRef()nsCOMPtr用作出参数?
class MyNativeXPCOMObject ... {
...
private:
nsCOMPtr<nsISomeInterface> someInterface_;
...
};
我有这样做的方法:
NS_IMETHODIMP MyNativeXPCOMObject::GetSomeObject(nsISomeInterface** aSomeInterface) {
NS_IF_ADDREF(someInterface_);
*aSomeInterface = someInterface_;
return NS_OK;
}
但壁虎9强制执行,你不准叫AddRef()
或Release()
上nsCOMPtr<>
秒。所以现在我正在这样做:
NS_IMETHODIMP MyNativeXPCOMObject::GetSomeObject(nsISomeInterface** aSomeInterface) {
NS_IF_ADDREF(someInterface_.get()); // <--- Added .get()!
*aSomeInterface = someInterface_;
return NS_OK;
}
但直接访问原始指针让我觉得很脏。 AddRef()
在获得者中的外部参数的正确方法是什么?
documentation没有帮助。
感叹。是的,那将是显而易见的事情。 :) – 2011-12-14 22:26:34