> 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
Python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to