So, today my mind has been 100 % focused on something that on the surface looks really boring. The IDispatch interface.
A lot of you probably heard the name IDispatch before. And you may even know that it's required by COM-objects used in autoit with the ObjCreate() function. So we're dealing with COM.
Before reading any further I would recommend that you read the following wikipedia articles since that's what this article really is about. Link 1 Link 2.
So what is IDispatch good for?