So far, we have only discussed using
IDispatch (or automation) COM objects from Python
and only via Python helper classes. Although this is the most common
way to use COM objects, more advanced applications often need native
To illustrate this contingency, we will demonstrate the use of native interfaces with a little utility to dump statistics from a Microsoft Office application file (e.g., a Word document or Excel spreadsheet).
COM provides a technology known as structured storage . This is a set of functions and interfaces that allows you to store rich, hierarchical streams of data inside a single file, often referred to as a “filesystem within a file.”
Part of this implementation provides for standard properties about the file—the author of the file, for example. Windows Explorer is aware of these interfaces and can display the properties without any knowledge of the application that created the file. Microsoft Office stores its documents in structured storage files, and therefore the Windows Explorer can display rich information about Office documents.
To access these properties, call a COM function to open the
structured storage file. This operation results in a
object, a Python object that wraps the
IStorage interface. If the document has
standard properties, you get these through the COM
interface, which means you should
PyIStorage object to get the needed interface. ...