help for Add Tool Button for IE5
我做了一个COM对象给IE5加一个Tool Button的,
可是只要一按按钮,就变灰了,以后就不能按了,也就是一按就出错,
我是按msdn上的写的,我的代码如下:
/////////////////////////////////////////////////////////////////////////////
// CCIeButton
class ATL_NO_VTABLE CCIeButton :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CCIeButton, &CLSID_CIeButton>,
public IOleCommandTarget
{
public:
CCIeButton()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_CIEBUTTON)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CCIeButton)
COM_INTERFACE_ENTRY_IID (IID_IOleCommandTarget, IOleCommandTarget)
END_COM_MAP()
// ICIeButton
public:
//IID_IOleCommandTarget
STDMETHODIMP QueryStatus(
const GUID __RPC_FAR *pguidCmdGroup,
ULONG cCmds,
OLECMD __RPC_FAR prgCmds[ ],
OLECMDTEXT __RPC_FAR *pCmdText);
STDMETHODIMP Exec(
const GUID __RPC_FAR *pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdexecopt,
VARIANT __RPC_FAR *pvaIn,
VARIANT __RPC_FAR *pvaOut);
};
STDMETHODIMP CCIeButton::QueryStatus(
const GUID __RPC_FAR *pguidCmdGroup,
ULONG cCmds,
OLECMD __RPC_FAR prgCmds[ ],
OLECMDTEXT __RPC_FAR *pCmdText)
{
return S_OK;
}
STDMETHODIMP CCIeButton::Exec(
const GUID __RPC_FAR *pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdexecopt,
VARIANT __RPC_FAR *pvaIn,
VARIANT __RPC_FAR *pvaOut)
{
//::MessageBox(NULL,"Test",(char*)pvaIn,MB_OK);
return S_OK;
}