现在做了一个BHO,想要在里面加入打印控制,但是重载了IOleCommandTarget接口的querystatus和exec方法  都没有进去执行,请问这是为什么 
class ATL_NO_VTABLE CEyeOnIE : 
public IOleCommandTarget, 
public CComObjectRootEx <CComSingleThreadModel>, 
public CComCoClass <CEyeOnIE, &CLSID_EyeOnIE>, 
public IObjectWithSiteImpl <CEyeOnIE>, public IDispatchImpl <IEyeOnIE, &IID_IEyeOnIE, &LIBID_BHOPLUGINLib> 

public: 
CEyeOnIE():m_bBlockNewWindow(TRUE), 
m_dwBrowserCookie(0), 
m_pWBDisp(NULL) 

} DECLARE_REGISTRY_RESOURCEID(IDR_EYEONIE) 
BEGIN_COM_MAP(CEyeOnIE) 
COM_INTERFACE_ENTRY(IOleCommandTarget) 
COM_INTERFACE_ENTRY(IEyeOnIE) 
COM_INTERFACE_ENTRY(IDispatch) 
COM_INTERFACE_ENTRY(IObjectWithSite) 
END_COM_MAP() STDMETHOD(QueryStatus)( 
/*[in]*/ const GUID *pguidCmdGroup, 
/*[in]*/ ULONG cCmds, 
/*[in,out][size_is(cCmds)]*/ OLECMD prgCmds[ ], 
/*[in,out]*/ OLECMDTEXT *pCmdText) 

return E_NOTIMPL; } STDMETHOD(Exec)( 
/*[in]*/ const GUID *pguidCmdGroup, 
/*[in]*/ DWORD nCmdID, 
/*[in]*/ DWORD nCmdExecOpt, 
/*[in]*/ VARIANTARG *pvaIn, 
/*[in,out]*/ VARIANTARG *pvaOut) 
{ if (nCmdID==OLECMDID_PRINT) 

OutputDebugString("print hook"); 
//(*pvaOut).vt = VT_BOOL; 
//(*pvaOut).boolVal = VARIANT_TRUE; 
return S_OK; 
} if (nCmdID==OLECMDID_PRINTPREVIEW) 

return S_OK; 

return m_spDefaultOleCommandTarget->Exec(pguidCmdGroup, nCmdID, nCmdExecOpt, pvaIn, pvaOut); 
}