VB, VBA, VBE and COM References - tommy9/Rubberduck GitHub Wiki
This page features a list of useful references regarding the VBA programming language and how it gets interpreted by the VBE. Moreover, this is the home of several references regarding COM. For books on these topics, see Books on VBA and the VBE.
VBA
VBA Language Specification
The VBA language Specification (PDF) from Microsoft.
Office VBA File Format Structure
The Office VBA File Format Structure (PDF) from Microsoft.
Articles by Tony Jollans (former Word MVP) on VBA storage and decompression
Structured Storage and part 2 and Stream Decompression.
P-Code, ExCode and VBA
A nice overview in PCodeDmp's ReadMe.md file that describes the p-code storage and decoding of a module.
VBA SDK / APC
Integrating VBA into your application
A Tech Ed 2000 presentation giving an overview of the VBA SDK and APC.
Office VBA
Offline Office VBA Help Files
Help (.chm) files for Access, Excel, PowerPoint and Word are available from the OfficeDev GitHub account
Microsoft OfficeDev VBA Content
The official GitHub repo for all Office VBA documentation
The Component Object Model (COM) and Type Libraries
Online COM Guide
docs.microsoft.com has a handy guide that covers several stuff about COM and extra you wish you didn't know. In case the URL doesn't work, here's the (Wayback machine URL)
The Component Object Model Specification
Long since taken down by Microsoft, a cached copy of The Component Object Model Specification can be found here
Visual Basic: Inspect COM Components Using the TypeLib Information Object Library
An archived MSDN article from December 2000 on using TlbInf32.dll to inspect a Type Library.
Articles on COM and OLE Controls by Sean Baxter
An archive of enlightening and entertaining articles about the innards of COM and OLE. Full listing here:
- COM Automation: Type Information (Part I)
- COM Automation: Type Information (Part II) - Highly Recommended
- COM Automation: Type Information (Part III)
Articles on COM by Michael Dunn
- Introduction to COM - What It Is and How to Use It.
- Introduction to COM Part II - Behind the Scenes of a COM Server
Implementing indirect method and property calls on ActiveX/COM objects by Dan Appleman
A nicely written article by VB and Win32 author Daniel Appleman with an overview of calling members through IDispatch.
VBForums - threads on IDispatch and memory layouts of VB class instances
Two related posts on VBForums.com, with great detail on the memory layout of interfaces and VB object instances, and how to call hidden members of such objects. [VB6] Call Functions By Pointer (Universall DLL Calls) by LaVolpe, and VB6 LightWeight COM and vbFriendly-BaseInterfaces by Schmidt.
The Object that came in from the Code by Dan Appleman
An amusing article about controls, sub-objects and implementing IPersistStream and IPersistPropertyBag, by VB and Win32 author Daniel Appleman.
The Unofficial TypeLib Format Specification by Theircorp
The The Unofficial TypeLib Format Specification is available for download from TheirCorp
Inside COM+: Base Services by Guy Eddon and Henry Eddon
This is available in an HTML edition at this link.
VBA Project and Legacy Office File Format: OLE Structured Storage / Compound Binary File Format
See the first 2 articles by Tony Jollans referred to earlier in this document.
[MS-CFB]: Compound File Binary File Format
Microsoft's official documentation for the Compound Binary File Format
The Microsoft Compound Document File Format by OpenOffice.org
An nice overview of structured storage (PDF), written more clearly than the official Microsoft documentation, and with examples.
Persistence of Data Whitepaper by Dan Appleman
An overview whitepaper on persistence/serialization formats, with an emphasis on OLE Structured Storage, by Dan Appleman
Classic COM and .NET interop comparison
Provides a detailed explanation on how things are done in classic COM and then show how it is done in the interop for .NET.
WordBasic
The WordBasic Help file
The WordBasic Help file hosted by WordMVP.com contains details on arguments for various Word dialogs when using VBA, that are missing from newer VBA documentation.