I\'m trying to make my IE BHO work on Win8 (IE10 and IE11 preview) with EPM turned on. I\'ve found a few articles about the subject from MS (http://blogs.msdn.com/b/ieintern
The DEFINE_GUID call simply defines the GUID value constant in your code, it's not actually doing anything to register your object with the COM component category (which is stored in the registry).
See http://msdn.microsoft.com/en-us/library/windows/desktop/ms692551(v=vs.85).aspx and http://msdn.microsoft.com/en-us/library/windows/desktop/ms694322(v=vs.85).aspx
You can see which objects are registered into the various categories using the OLEView tool.
Also, be sure to place your BHO's DLL with an AppContainer-readable folder (e.g. a subfolder of the \Program Files\ folder). If you fail to do so, your DLL will not be loaded by the IE instance in Enhanced Protected Mode.