Marco Nawijn wrote:
> An update on where I am at the moment. I managed to find the library that
> holds the definition for the GetComponents call. When I run makepy on
> this library I get:
>
> def GetComponents(self, oAxisComponentsArray=defaultNamedNotOptArg):
> return self._ApplyTypes_(1611005953, 1, (24, 0), ((8204, 3),),
> u'GetComponents', None,oAxisComponentsArray)

For what it's worth, the (24,0) means the function returns "void", and
(8204,3) means the parameter is an IN/OUT parameter that is an array of
variants.

Given that, I'm a little confused as to why your original test -- where
you passed the list of 12 items -- didn't work.  As an experiment, you
could try changing that to say (8204,11), which means "in/out and this
is the return value", but I'm not hopeful.

We may need to get Mark Hammond involved in this.  He has more
in-the-trenches experience here than anyone.



> Afterwards I tried to interact with it as follows:
>
> >>> from comtypes.client import CreateObject
> >>> app = CreateObject('Catia.Application')
> >>> app.Visible = True
> >>> # I then interactively open a document in the application
> >>> p1 = app.Documents.Item(2)
> >>> p1
> <POINTER(Document) ptr=0x577f24 at 4049490>
>
> So again, I get the "wrong" document type. If I do the same
> but using late binding (by providing the "dynamic=True"
> parameter) I get the following:
> >>> p1
> <comtypes.client.lazybind.Dispatch object at 0x028387B0>

Have you tried calling GetComponents with this object?  This is a
late-bound object, which means it fetches the names of the methods and
properties on the fly.

-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.

_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32

Reply via email to