Understanding COM - DevCon 2022
Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
![Understanding COM - DevCon 2022](/content/images/size/w2000/2022/04/understanding-com.jpg)
Slide Deck
UnderstandingCOM-DevCon2022.pdf
Further Reading
High-Level COM Overview
What the #$%& is COM!?
One of the most important concepts in VBA is also one of the least understood. Let’s shine a light on the Component Object Model.
![](https://nolongerset.com/content/images/2021/11/woman-1820868_1920.jpg)
What is COM?
The concept of COM explained in under 100 words. #Under100
![](https://nolongerset.com/content/images/2022/03/binary-code-475664_1920.jpg)
High Level Overview of COM
This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
![](https://nolongerset.com/content/images/2021/11/drone-1462463_1920.jpg)
Overcoming Programming Language Barriers with COM
COM is sort of like a Chinese restaurant.
![](https://nolongerset.com/content/images/2022/03/noodle-4219235_1920.jpg)
Early vs. Late Binding at the Chinese Restaurant
In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
![](https://nolongerset.com/content/images/2022/03/beef-4985993_1920.jpg)
Managing Memory in COM
We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
![](https://nolongerset.com/content/images/2022/03/drinks-2578446_1920.jpg)
COM Server Types: In-Process vs. Local vs. Remote
There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let’s explore.
![](https://nolongerset.com/content/images/2021/12/COM-Server-Types-1.jpg)
Low-Level Details
The IUnknown Interface
All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
![](https://nolongerset.com/content/images/2022/03/fashion-1536963_1920.jpg)
The IDispatch Interface
For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let’s explore IDispatch and its four methods.
![](https://nolongerset.com/content/images/2022/03/PXL_20220326_042127336.PORTRAIT-1--001.jpg)
Reference Counting’s Fatal Flaw: Circular References
We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
![](https://nolongerset.com/content/images/2022/04/team-4200837_1920.jpg)
Loading VBE Addins - A Windows Registry Tour
Let’s pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
![](https://nolongerset.com/content/images/2022/04/pipes-4161383_1920.jpg)
Practical Applications
Microsoft Office COM Automation Libraries
The VBA developer’s guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
![](https://nolongerset.com/content/images/2021/12/Office-COM-Automation.jpg)
Early Binding vs. Late Binding: The Essential Guide for VBA Developers
The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
![](https://nolongerset.com/content/images/2021/11/Early-Binding-vs.-Late-Binding.jpg)
Future Presentations
If you enjoyed today's presentation, you can catch me at the following upcoming events:
Access Europe – Mike Wolfe (Building Ribbon Interfaces in Code) – Europe – AccessUserGroups.org
![](https://accessusergroups.org/wp-content/uploads/2014/08/web-enable-Access.jpg)