Skip to Content
Python Programming On Win32
book

Python Programming On Win32

by Andy Robinson, Mark Hammond
January 2000
Intermediate to advanced
672 pages
21h 46m
English
O'Reilly Media, Inc.
Content preview from Python Programming On Win32

Passing and Obtaining Python Objects from COM

COM supports a variety of argument types, using the VARIANT data structure. The types that can be passed to COM functions include integers and floats of various sizes, strings, date/time values, COM objects, or arrays of any of these types.

In many cases, PythonCOM can translate between Python objects and VARIANT structures seamlessly. When you call a COM object and pass a Python object, PythonCOM automatically creates a VARIANT of the right type and passes the VARIANT to COM. In the absence of any hints, PythonCOM performs the translations as listed in Table 12.1 and Table 12.2. In Table 12.1, for example, you can see that a Python integer is automatically converted to a VARIANT type VT_I4.

Table 12.1. Default Python Object to VARIANT Translation

Python Object Type

VARIANT Type

Integer

VT_I4

Long Integer

VT_I4 if the value is less than 232, or VT_I8 if greater

String/Unicode

VT_BSTR

Float

VT_R8

PyTrue/PyFalse

VT_BOOL

None

VT_NULL

win32com.client.Dispatch instance

VT_DISPATCH

PyIDispatch

VT_DISPATCH

All other PyI* PythonCOM objects

VT_UNKNOWN

Pywintypes PyTIME object

VT_DATE

Any other Python sequence

An array of VARIANTs; each element of the sequence is translated using this table

Table 12.2. Default Python Object to VARIANT Translation

VARIANT Type

Python Object

VT_BOOL

VT_I2

VT_I4

VT_ERROR

Integer

VT_R4

VT_R8

Float

VT_DISPATCH

PyIDispatch

VT_UNKNOWN

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Qt5 Python GUI Programming Cookbook

Qt5 Python GUI Programming Cookbook

B. M. Harwani
C++ Windows Programming

C++ Windows Programming

Stefan Bjornander
Python One-Liners

Python One-Liners

Christian Mayer

Publisher Resources

ISBN: 1565926218Errata Page