The Solution
Thanks to
Google groups search and Paul Wissenbach - quoting from his post:
The problem exists because you end up linking in strmbase.lib which has entry points functions for DllGetClassObject() and DllCanUnloadNow() among others. You really don't want these entry points
defined in for your ActiveX control. They are designed for DirectShow filters, and require g_Templates to be defined by your filter.
One solution is to override the following functions by implementing them into your ActiveX control yourself. That way you don't pull in the ones from the DShow.
Regards,
Paul