Lightweight Python 3 API to access Windows COM Objects
Project description
arwcom
Lightweight Python 3 API to access Windows COM Objects
Developer Configuration
Configure VS Code for Microsoft C++
References
Python Bindings Libraries
-
- Access to many of the Windows APIs from Python
-
- Python COM Extensions, example:
xl = win32com.client.Dispatch("Excel.Application")
- Python COM Extensions, example:
-
- Lightweight Python COM package, based on the ctypes_FFI library, in less than 10000 lines of code (not counting the tests).
-
- Pure python package using
from ctypes import windll, wintypes, byref, FormatError, WinError
- Pure python package using
-
- Patch for combase.dll
_ole32 = _ffi.dlopen('ole32')
and_combase.CoUninitialize()
- Patch for combase.dll
-
Python ctypes.OleDLL() Examples
- General examples of using
ctypes.OleDLL
- General examples of using
-
- Example of finding a DLL in C2R version of COM object and get a COM object
-
- Supported:
LIBTYPES = ['cdll', 'windll', 'oledll', 'net', 'clr', 'java', 'com', 'activex']
- Supported:
-
- Unit tests for Windows COM threading mode initialization by mocking pythoncom.CoInitializeEx
-
CoInitializeEx = windll.ole32.CoInitializeEx
-
- Manual
pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)
andpythoncom.CoUninitialize()
- Manual
-
- pywin32-stubs is generated from pywin32.chm
-
- Reversing a binary calling the CoCreateInstance function from the OLE32.DLL library
- https://reverseengineering.stackexchange.com/questions/2822/com-interface-methods/2823#2823
-
ea_cocreateinstance = find_import("ole32", "CoCreateInstance") or find_import("api-ms-win-core-com-l1-1-0", "CoCreateInstance")
Other language bindings to COM
C/C++ Examples
- Fastboi
- A lightweight and simple C++20 game engine written over SDL2. It implements a basic component model and event system.
- Win32batch-GokhleSir
- COM, Class factory, Containment, Aggregation, Automation, etc.
- CommeCOM
- Header-only library providing basic means for working with "comme" (like) COM objects - querying interfaces and acccessing functionality from dynamically loaded plug-ins (DLLs or shared objects)
- EasyOLE: C/C++ OLE Automation Client Library
- Ease the development of OLE Automation Clients in C/C++ handling the internal not-so-friendly aspects of COM interfaces
- OLEVIEW Sample: ActiveX Object Viewer
- Illustrates how to implement ActiveX Object viewers through custom ActiveX interfaces
- MapWinGis
Writing COM Applications
- OLE Component Object Model
- General overview of COM
- Get Started with Win32 and C++
- Write a desktop program in C++ using Win32 and COM APIs
- COM Clients and Servers
- Getting a Pointer to an Object, COM Glossary, etc.
- Active Template Library (ATL) Concepts
- Active Template Library (ATL) is a set of template-based C++ classes that let you create small, fast Component Object Model (COM) objects
- CComPtr Class from atlbase.h
COM API Reference
- Windows System Services APIs
- COM, COM+
- Component Object Model (COM)
- Overview of the Component Object Model (COM) technology, header files, methods e.g. IUnknown interface (unknwn.h)
Books
- Essential COM by Don Box
- Atl Internals by Brent Rector
- Inside COM by Dale Rogerson
- Inside COM+ by Guy Eddon and Henry Eddon https://thrysoee.dk/InsideCOM+/ch03b.htm
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
arwcom-0.1.0.tar.gz
(18.0 kB
view hashes)
Built Distribution
arwcom-0.1.0-py3-none-any.whl
(19.0 kB
view hashes)