目前在使用一个sdk进行编程,这个公司的产品是一个ActiveX控件,其中有这样一个接口:
[
  uuid(6BEF46D1-FD35-11d2-812F-00A0C94C695A),
  helpstring("IVRMLEventCallback Interface"),
  pointer_default(unique)
]
interface IVRMLEventCallback : IUnknown
{
  HRESULT OnEvent([in] LPFIELDOBJECT Value,
                  [in] VARIANT* Hint,
                  [in] double TimeStamp);
};
它的作用是实现一个回调函数,当有指定的事件从该ActiveX控件中传出时,调用该接口的OnEvent方法。
这个ActiveX控件的sdk文档说应该先在工程中创建一个继承该接口的类,然后重载OnEvent方法。
但是我不知道应该如何加入这个类呢?就比如:
class VrmlEventCallback : public IVRMLEventCallback 
我用ClassWizard只能加入继承普通基类的类,无法正确执行接口,所以也无法继承该接口的方法。望高手指教!急!!!!
先谢过了。

解决方案 »

  1.   

    class VrmlEventCallback : public IVRMLEventCallback 
    {
    public:
       VrmlEventCallback();
       ~VrmlEventCallback();
    // Implement IUnknown Interface
        STDMETHOD QueryInterface(...);
        STDMETHOD_IMP AddRef();
        STDMETHOD_IMP Release();// Implement IVRMLEventCallback interface
        STDMETHOD OnEvent(LPFIELDOBJECT Value,
                      VARIANT* Hint,
                      double TimeStamp);private:
       ULONG m_cRef;
       IUnknown* m_pUnkOuter;
    };然后在cpp文件中给出每个成员的实现
      

  2.   

    “无法正确执行接口”是什么意思?先用ClassWizard或者添加文件,建立一个类VrmlEventCallback 
    然后修改这个类,如楼上所示。或者先添加一个实现IVRMLEventCallback 的ATL组件VrmlEventCallback 
    然后用你的接口覆盖这个接口!
      

  3.   

    请教采用ATL方法的具体步骤是什么?多谢!
    我对com不熟悉,但是时间有限,请给我较详细的指导。
      

  4.   

    如何添加一个实现IVRMLEventCallback 的ATL组件VrmlEventCallback ?
    又如何用我的接口覆盖这个接口呢