我要做一个本地ActiveX控件负责显示服务器端的地图数据,请问我可以使用什么方法将服务器端的地图对象作为参数传给该本地ActiveX控件。
该控件该如何封装接口函数呢,我的ActiveX控件由VC编写,地图数据是一个类,可以如这样的方式封装接口吗:  int ShowMap(CMMap mymap, ...);
我对ActiveX不熟,不知COM能否使用自己的类对象参数做接口?
如果可以,又该如何使用本地的VBScript来调用服务器端的一个MapServer对象,
该对象应该提供一个 CMMap GetLatestMapData()接口请各位大侠指点上述方法是否行的通,如果不通,是否需要像MediaPlayer一样建立socket从服务器服务程序哪里请求数据?谢谢

解决方案 »

  1.   

    可以用xmlhttp来做接口,甚至都不用写ActiveX
    参考map.google.com
      

  2.   

    一般做法是,用一个URL当参数,操作ActiveX控件过程中,通过调用该URL返回的数据生成图形。该URL指向一个服务器端的CGI或ISAPI程序。很多商业ActiveX GIS控件都是这么做的。
    当然,如果你的地图数据较小,可以在ActiveX控件启动时通过URL参数一次性加载,该URL参数指向你的地图文件,ActiveX把地图文件下载到本地即可。
      

  3.   

    laiyiling ,您好,“建议用接口做参数”,具体如何操作,能否稍微详细一点或给一个相关的参考链接,谢谢jiangsheng,map.google.com好像是JAVA写的吧,我是VC写的地图类和显示地图控件,谢谢iamshuke() ,您好,能不能给出一个这种方法的参考文章链接什么的,谢谢
      

  4.   

    服务器端可以用ASP.Net、ISAPI或者CGI动态生成图片,客户端用ActiveX控件和脚本,例如xmlhttp和Javascript来做界面。map.google.com用的是javascript和xmlhttp,没用JAVA。
      

  5.   

    进程内直接传对象指针作参数是有效的,进程外调用只能自己处理参数的传递,一般在调用两端负责各自的序列化。可以看一下COM/IDL