Using Windows' COM
Component Object Model (COM) is a Microsoft technology used for interoperability between Windows programs. D has built-in support for basic COM, and using its features, we can also automate the implementation of advanced COM features.
Here, we'll write a COM server and client with the help of a library and look at the implementation.
Getting ready
Download the Win32 bindings from http://dsource.org/projects/bindings and the comhelpers.d
file from http://github.com/adamdruppe/com.
How to do it…
COM, like shared libaries, uses a client-server model. First, we'll write a COM server and then write its corresponding COM client.
COM server
Let's write a COM server by executing the following steps:
Generate GUIDs for your interface and class using a GUID generation tool.
Import
win32.unknwn
andcomhelpers
.Write your interface definition, inheriting from
IUnknown
and marking all methodsextern(Windows)
. Attach the IID (interface's GUID) to the interface with theComGuid
attribute. Each...