"zdp" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Hi, all, > > My project is based on wxPython, and I need an IE control (i.e. > WebBrowser ActiveX control). Although the wxPython implements a > wrapped version (wx.lib.iewin.IEHtmlWindow), but it doesn't meet all > my demands, because I need to custom many behaviors of the control. > So I thought I should use it through ActiveXWrapper directly. > > So I use makepy to make the typelib of "Microsoft Internet Controls" > and "Microsoft HTML Object Library". Now I can get the document object > of the WebBrowser, and I can cast it into any interface I need like > IHtmlDocument2, IHtmlDocument3... So far, so good. > > The document object also implements a COM interface > IPersistStreamInit, which has a *Load* method. Calling this method can > load any stream into the browser control. Here is the a example using > this method in visual c++: > > IPersistStreamInit* spPSI = NULL; > CStreamOnCString stream(szHTML); > if (m_pHtmlDoc) { > m_hResult = m_pHtmlDoc->QueryInterface(IID_IPersistStreamInit, > (void**)&spPSI); > if( SUCCEEDED(m_hResult) && spPSI ) { > m_hResult = spPSI->Load(static_cast<IStream*>(&stream)); > spPSI->Release(); > } > } > > Now I need to call this method on my document object, my code is just > like > > stream = win32com.client.CastTo(doc, "IPersistStreamInit") > stream.Load(somestr) > > But I got an error: > > ValueError: The interface name 'IPersistStreamInit' does not appear in > the same > library as object '<win32com.gen_py.Microsoft HTML Object > Library.DispHTMLDocume > nt instance at 0x46359096>' > > I googled and someones says only interfaces inherit from IDispatch can > be used by pythoncom. But IPersistStreamInit interface inherits from > IUnknown. But I just need to use > this interface.
Many non-IDispatch interfaces are supported by pythoncom, IPersistStreamInit among them. You should be able to use QueryInterface just as the c++ code does. Try something like stream=doc._oleobj_.QueryInterface(pythoncom.IID_IPersistStreamInit) hth Roger ----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==---- http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups ----= East and West-Coast Server Farms - Total Privacy via Encryption =---- -- http://mail.python.org/mailman/listinfo/python-list