各位好,我在研究IE插件,现在已经实现获取IE运行时IHTMLDocument2对象,并且通过getElementById得到页面上的控件。问题是如何将得到的一个IHTMLObjectElement转换成ActiveX对象并且调用里面的某些方法?例如,支付宝网站https://www.alipay.com/user/login.htm里面有一个<object id="_fmu.l._0.p_ie" classid="clsid:488A4255-3236-44B3-8F27-FA1AECAA8844" .../>的密码输入控件,在运行时应该是一个存在于%windir%\System32\aliedit\aliedit.dll的ActiveX控件。通过反射,我可以查看到该控件实现如下方法,那么有什么办法可以在IE运行时,通过IE插件获取IHTMLObjectElement对象,然后转换成EditCtrlClass对象,最后调用里面某一方法(如dispId=3, TextValue)呢?
    [TypeLibType(2)]
    [Guid("488A4255-3236-44B3-8F27-FA1AECAA8844")]
    [ClassInterface(0)]
    public class EditCtrlClass : IEditCtrl, EditCtrl
    {
        public EditCtrlClass();        [DispId(20)]
        public virtual string cm5pk { get; set; }
        [DispId(19)]
        public virtual string cm5ts { get; set; }
        [DispId(11)]
        public virtual ushort CryptoMode { get; set; }
        [DispId(13)]
        public virtual string Identity { get; }
        [DispId(12)]
        public virtual uint Intension { get; }
        [DispId(5)]
        public virtual bool LogMode { get; set; }
        [DispId(9)]
        public virtual string MACAddress { get; }
        [DispId(4)]
        public virtual uint MaxLength { get; set; }
        [DispId(1)]
        public virtual bool PasswordMode { get; set; }
        [DispId(15)]
        public virtual string PInfo { get; }
        [DispId(8)]
        public virtual bool Readonly { get; set; }
        [DispId(2)]
        public virtual bool SecurityMode { get; set; }
        [DispId(6)]
        public virtual string TextData { get; set; }
        [DispId(3)]
        public virtual string TextValue { get; set; }
        [DispId(14)]
        public virtual bool UseP { get; }        [DispId(21)]
        public virtual string alieditVersion();
        [DispId(16)]
        public virtual string ci1();
        [DispId(17)]
        public virtual string ci2();
        [DispId(18)]
        public virtual string ci3();
        [DispId(10)]
        public virtual string Crypto(bool bEncrypt, uint nIndex, string pInput);
        [DispId(7)]
        public virtual bool EchoTest();
    }