下面的doc2和doc22有什么不同?
IHTMLDocument2 doc2 = (pDisp as IWebBrowser2).Document as IHTMLDocument2;
IHTMLDocument2 doc22 = doc2.body.document as IHTMLDocument2;
bool isequal = Marshal.GetIUnknownForObject(doc2) == Marshal.GetIUnknownForObject(doc22);
//Here, isequal is false. Why?发布于 2011-10-18 22:44:50
对我来说,最可能的解释是,不同的包装器对象是为相同的东西创建的。谁知道MSHTML是如何在内部管理它的。只要((pDisp as IWebBrowser2).Document as IHTMLDocument3).documentElement as IUnknown == (((pDisp as IWebBrowser2).Document as IHTMLDocument2).body.document as IHTMLDocument3).documentElement as IUnknown世界是井然有序的;)
https://stackoverflow.com/questions/6757560
复制相似问题