> This won't work! I can't start this COM server from my application. > > First some questions: Do I have to write _public_methods_ = > ['Init', 'Exit'] in order to satisfy the required interface > ICADdyAddIn?
No - but _public_methods_ must exist (ie, your code is fine)
> How do I handle the properties from ICADdyAddIn
> _prop_map_get_ = {
> "CLSID": (3, 2, (8, 0), (), "CLSID", None),
> "Description": (5, 2, (8, 0), (), "Description", None),
> "ProgId": (4, 2, (8, 0), (), "ProgId", None),
> }
IIRC you can either provide a simple attribute of that name, or a function
of that name for a "getter", and "Set{name}" as a setter.
eg, either:
def __init__(self):
...
self.Description = foo
or
def Description(self):
return "foo"
def SetDescription(self, val):
...
FYI, that is implemented in win32com\server\policy.py
> correctly? Do have to use _public_attrs_ and if so how do I
> use it correctly?
I believe not.
> I used the methods getCLSID, getProgId and
> getDescription
> just to give it a try but they seem to be totaly wrong.
>
> I used the excelAddIn.py demo as a start. However, is this
> the recommended way for writing a COM server addin?
Yep.
You need to know how to debug Python COM objects. Basically:
* Register your object with "--debug" on the command-line.
* Start Pythonwin and select Tools->Remote Trace Collector
* Restart the app which creates the object.
You should see every COM call (including low-level ones, such as
QueryInterface), and you should also see any exceptions generated by your
object. This is likely to give you a much better insight into what is
happening.
Mark
<<attachment: winmail.dat>>
_______________________________________________ Python-win32 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-win32
