在一个调用activex控件的客户端程序中我看到这样一个类
class  CGrid : public COleDispatchDriver
{
public:
CGrid() {}
CTGrid(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CGrid(const CGrid& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
}
而这个类对象的构造是通过一个函数:
  GetGrid(long Index)
    {
....
InvokeHelper(0xac, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, parms,
Index);
return CGrid(pDispatch);
    }
那么我想知道,是不是控件那边每个对象都有不同的IDispatch*,控件这边的Grid类该如何定义,怎样把每个对象的IDispach传过来呢???

解决方案 »

  1.   

    一般的控件为了和脚本语言兼容,都实现了IDispatch接口
    你这里的这个类似乎是IDE自动生成的,不太清楚你想做什么,在程序运行时生成这个控件?
      

  2.   

    我的意思是比如:我C++的工程需要调用一个C#写的list控件,我把C#控件用com包装一下,现在可以引入了,但是问题是我需要可以直接操作这个list控件的每一行Grid,每一个单元Cell,这在控件那边都有对应的类,我的思路是在这边写好对应的类Grid,Cell,向上边一样,那么我通过一个Idispach*来构造这个类,问题是控件那边该如何获得每个Grid,Cell的Idispach*,并且传过来呢??