花了三天时间把一个mfc dialog base的应用改写成了activex控件。因为vs 的强大,这个是很容易的。
只需要将CDialog 的代码全部拷贝到支持mfc 的activex,然后 add a CDialog variable to OleControl. 在 COleControl::OnCreate()里,CDialog::Create(ID,this);
做到这里这个控件就能按照原来的逻辑跑起来了。下一步就是定义method或者property.留下两个问题:
一个是添加一个property(get/set)并不能在javascript里工作。
第二是怎样让一个method返回一个数组给javascript使用。activex 使用了VARIANT ,VT_xxx | VT_ARRAY,SafeArrayCreateVector,SafeArrayAccessData等代码。但是javascript 使用VBArray并不能成功。暂未查明。