On Apr 11, 9:47 am, Tim Golden <[EMAIL PROTECTED]> wrote: > Huayang Xia wrote: > > On Apr 11, 12:15 am, "Gabriel Genellina" <[EMAIL PROTECTED]> > > wrote: > >> En Thu, 10 Apr 2008 18:45:04 -0300, Huayang Xia <[EMAIL PROTECTED]> > >> escribió: > > >>> I am trying to use ctypes to call dll functions. One of the functions > >>> requires argument "struct IDispatch* ". I do have a PyIDispatch object > >>> in python. How can I convert this "PyIDispatch object" to "struct > >>> IDispatch* "? > >> I think a PyIDispatch object is an IDispatch* itself. > >> But you'll get better answers from the python-win32 > >> list:http://mail.python.org/mailman/listinfo/python-win32 > > >> -- > >> Gabriel Genellina > > > Thanks for the info. > > > To call a dll function, it needs a C style IDispatch*. PyIDispatch is > > a python wrapped one. I found a reference from: > > >http://svn.python.org/projects/ctypes/trunk/comtypes/comtypes/test/te... > > > which shows how to convert C style to python style. Unfortunately i > > need the reversed version. > > > I will post the question to python-win32. > > I've had a quick look at the PyIDispatch source and I can't see any obvious > way in which the underlying IDispatch is exposed. May have missed something, > but it's possible that there's not way out. > > TJG
Thanks for the info. I read somewhere that the PyIDispatch is converted to VT_DISPATCH automatically when passed to a C style function call. So from VT_DISPATCH, it should be possible to get the IDispatch. That's only a vague idea. -- http://mail.python.org/mailman/listinfo/python-list