O'Reilly logo

Python Programming On Win32 by Mark Hammond, Andy Robinson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Registering Your COM Server

Although our sample object implements registration of the object, we haven’t discussed it in detail.

Registering an object is the process of allowing the object to be independently created; once an object is registered, a language can use its standard techniques for creating COM objects to access it, e.g., CreateObject() in Visual Basic or win32com.client.Dispatch() in Python.

There are many cases where you wish to implement a COM object but don’t need it registered. For example, let’s assume you are designing an object model for an editor that has a root Application object, and inside this Application object there are a number of Document objects. In this case, you would typically want to register the Application object (clients need to be able to create this object directly) but not register the Document object (making requests on the Application object creates these). In this case, you don’t need to specify any registration information for the Document object.

To prepare an object for registration, you need to provide additional attribute annotations on the object. The registration process uses these annotations to provide the correct information in the Windows registry for the object. The full list of registration related attributes can be found in Table 12.4.

Table 12.4. Registration-Related Attributes on COM Objects

Attribute

Description

_reg_progid_

The ProgID for the object. This is the name of the COM object clients use to create the object. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required