我有一个C ++类,可以选择性地支持一些额外的功能(由抽象接口定义)。
在Microsoft COM中,有一种方法可以使用QueryInterface(GUID, void**)
向类询问此类功能。这需要将所有接口重新解释为void *。我的问题是 - 有没有更安全的方法来实现相同而不使用演员?
答案 0 :(得分:3)
COM需要从对象支持的任何其他接口获取任何接口。您不必遵守该要求。只需将getter添加到您希望支持的每个接口。
struct IBase
{
IMoreCapabilities * GetMoreCapabilities();
};