我自己写了一个flash的增强控件,比原来的flash.ocx加入了一些新的功能,我想用这个新控件替换原来的system32里的flash.ocx,但是直接替换好像其他的软件不支持,应该怎么修改。
如果替换不行的话,能不能直接控制其他程序里的flash控件(比如说修改或取得其他程序中flash控件的framenum属性,调用play函数),具体应怎么实现?

解决方案 »

  1.   

    re: //的system32里的flash.ocx,但是直接替换好像其他的软件不支持,应该怎么修改。
    如果替换不行的话,能不能直接控制其他程序里的flash控件个人认为你这种想法是不现实的,不可能。因为它的CLSID和接口都与原来的控件不同,所以其它已经引用原控件程序是无法使用它的。当然自己的程序使用是可以的。
      

  2.   

    不是其他的不支持,因为其他的软件调用的都是默认的FLASH控件,谁知道你写的这个控件啊~~~~==========================
    免费的学习、交流、源码、工具下载网站,欢迎大家访问!
    http://www.j2soft.cn/
      

  3.   

    //但是直接替换好像其他的软件不支持,应该怎么修改。找工具改控件的GUID(包括其中的类的GUID),推荐用EditTLB.exe
      

  4.   

    实现你的目的是完全可以的,不过你的ocx必须和flash.ocx二进制兼容。也就是说你的ocx至少必须实现flash.ocx的所有外部接口,少一个都不行!!并且在编译的时候必须选择对flash.ocx的二进制兼容。具体的外部接口包括属性、方法、事件、枚举、常数、类等等,这些接口的名字必须一致参数的类型、个数、顺序甚至参数名也都必须和原flash.ocx一致。具体的可以用对象浏览器察看原flash.ocx的对外接口。另外,你的工程可别引用原来的那个flash.ocx 。在对原ocx兼容的基础上你可以增加自己的接口,这样你编译出来的ocx就能够被其他调用flash.ocx的程序调用了。相信这是一个非常浩大的工程,祝你好运.
      

  5.   

    //不过,最好不要这样做问一下rainstormmaster,为什么不要这么做呀?
      

  6.   

    还问一下chewinggum,如果我的控件里需要引用原来的flash.ocx怎么办,总不会自己做内核吧!