8. windows.com - Component Object Model

A module to call COM interfaces from Python or COM vtable in python.

This code is only used in windows.winobject.wmi and windows.winobject.network for the firewall. The ability to create COM vtable is used in the LKD project .

8.1. Using a COM interface

It’s possible to directly call COM interface from python. All you need is the definition of the COM interface.

There are three ways to get the definition of the code interface:

To generate a COM interface you need its definition from the ”.c” file. Then add thisit to PythonForWindows\ctypes_generation\com\MyInterface.txt. Finally re-generate the interface using generate.py.

When you have the COM interface defintion you can create an instance of it. Then you need to retrieve the interface by using an API returning an object or window.com.create_instance(). You can then use the instance to call whatever method you need.

Note

see sample using COM: INetFwPolicy2

8.2. Implementing a COM interface

To create COM object you need to:

  1. Describe your ComVtable CODE1
  2. Implement the python functions described CODE2
  3. Create an instance and pass it to whatever native function expects it CODE3