在 MFC(Microsoft Foundation Classes)中,CCmdTarget::GetTypeInfoOfGuid 是一个公共方法,用于实现 IDispatch 接口中的 GetTypeInfo 方法。这个方法用于获取对象的指定 GUID 对应的类型信息。

以下是该方法的一般说明:
void CCmdTarget::GetTypeInfoOfGuid(const IID& iid, void** ppTypeInfo);

参数说明:

  •  iid:要获取类型信息的 GUID。

  •  ppTypeInfo:用于接收类型信息指针的指针。


这个方法用于在对象支持类型信息时,根据提供的 GUID 获取相应的类型信息接口指针。如果对象不支持类型信息或者指定的 GUID 对应的类型信息不存在,ppTypeInfo 将被设置为 NULL。

这个方法是 IDispatch 接口的一部分,用于支持 Automation。在实现 Automation 对象时,你需要提供类型信息,以便客户端程序(如脚本语言)能够了解对象的接口和成员。

使用示例:
// 在派生类中实现 GetTypeInfoOfGuid 方法
void CMyAutomationObject::GetTypeInfoOfGuid(const IID& iid, void** ppTypeInfo)
{
    if (IsEqualIID(iid, IID_IMyInterface))
    {
        // 返回与 IID_IMyInterface 相关的类型信息
        *ppTypeInfo = static_cast<IMyInterface*>(this);
    }
    else
    {
        // 没有匹配的类型信息,将 ppTypeInfo 设置为 NULL
        *ppTypeInfo = nullptr;
    }
}

请注意,在实现 GetTypeInfoOfGuid 方法时,确保按照 Automation 的规范返回正确的类型信息接口指针。


转载请注明出处:http://www.zyzy.cn/article/detail/15890/MFC/CCmdTarget