The TWebBrowser is customized so that the greyed-out scrollbar is not shown, since we are resizing the map to always fill the full size of the TWebBrowser, and I prefer the look without the 3D border. These are made available from the TWBContainer class in OthersUContainer.pas.
I created a class TWBGoogleMaps in uWBGoogleMaps.pas which is mostly just to keep the code for working with the TWebBrowser and GoogleMaps separate from the main program code. It sets the defaults for the scrollbar and 3D border, as well as re-implements GetExternal of the IDocHostUIHandler (which gives the TWebBrowser an IDispatch interface for use with external).
Second, you have to return the TAutoObjectDispatch object when the TWebBrowser asks for the External IDispatch. I implemented the GetExternal in the TWBGoogleMaps class to call the OnGetExternal event, so we set that, and in the event create and return the TObjectWrapper class and the TAutoObjectDispatch:
The rest of the code is just for demonstration purposes.
Let me know what you think.