📄 addin.h
字号:
_bstr_t bstrPopueButtonTxt(OLESTR("LinkUS"));
spNewBar4->PutCaption(bstrPopueButtonTxt);
spNewBar4->PutEnabled(VARIANT_TRUE);
spNewBar4->PutVisible(VARIANT_TRUE);
m_spButton = spCmdButton;
m_spButton2 = spCmdButton2;
m_spButton3 = spCmdButton3;
CComPtr < Office::CommandBarControls> spCmdBarCtrls;
IDispatchPtr spDisp;
spDisp = spNewBar4->GetControl();
CComQIPtr < Office::CommandBarPopup> ppCmdPopup(spDisp);
ATLASSERT(ppCmdPopup);
spCmdBarCtrls = ppCmdPopup->GetControls();
ATLASSERT(spCmdBarCtrls);
CComVariant vMenuType(1); // type of control - menu
CComVariant vMenuPos(6);
CComVariant vMenuEmpty(DISP_E_PARAMNOTFOUND, VT_ERROR);
CComVariant vMenuShow(VARIANT_TRUE); // menu should be visible
CComVariant vMenuTemp(VARIANT_TRUE); // menu is temporary
CComPtr < Office::CommandBarControl> spNewMenu1;
CComPtr < Office::CommandBarControl> spNewMenu2;
CComPtr < Office::CommandBarControl> spNewMenu3;
CComPtr < Office::CommandBarControl> spNewMenu4;
CComPtr < Office::CommandBarControl> spNewMenu5;
CComPtr < Office::CommandBarControl> spNewMenu6;
// now create the actual menu item and add it
spNewMenu1 = spCmdBarCtrls->Add(vMenuType, vMenuEmpty, vMenuEmpty, vMenuEmpty, vMenuTemp);
ATLASSERT(spNewMenu1);
spNewMenu2 = spCmdBarCtrls->Add(vMenuType, vMenuEmpty, vMenuEmpty, vMenuEmpty, vMenuTemp);
ATLASSERT(spNewMenu2);
spNewMenu3 = spCmdBarCtrls->Add(vMenuType, vMenuEmpty, vMenuEmpty, vMenuEmpty, vMenuTemp);
ATLASSERT(spNewMenu3);
spNewMenu4 = spCmdBarCtrls->Add(vMenuType, vMenuEmpty, vMenuEmpty, vMenuEmpty, vMenuTemp);
ATLASSERT(spNewMenu4);
spNewMenu5 = spCmdBarCtrls->Add(vMenuType, vMenuEmpty, vMenuEmpty, vMenuEmpty, vMenuTemp);
ATLASSERT(spNewMenu5);
spNewMenu6 = spCmdBarCtrls->Add(vMenuType, vMenuEmpty, vMenuEmpty, vMenuEmpty, vMenuTemp);
ATLASSERT(spNewMenu6);
_bstr_t bstrMenuButtonTxt(OLESTR("我的LinkUS"));
spNewMenu1->PutCaption(bstrMenuButtonTxt);
spNewMenu1->PutEnabled(VARIANT_TRUE);
spNewMenu1->PutVisible(VARIANT_TRUE);
_bstr_t bstrMenuButtonTxt2(OLESTR("更新联系人"));
spNewMenu2->PutCaption(bstrMenuButtonTxt2);
spNewMenu2->PutEnabled(VARIANT_TRUE);
spNewMenu2->PutVisible(VARIANT_TRUE);
_bstr_t bstrMenuButtonTxt3(OLESTR("在线同步"));
spNewMenu3->PutCaption(bstrMenuButtonTxt3);
spNewMenu3->PutEnabled(VARIANT_TRUE);
spNewMenu3->PutVisible(VARIANT_TRUE);
_bstr_t bstrMenuButtonTxt4(OLESTR("系统设置"));
spNewMenu4->PutCaption(bstrMenuButtonTxt4);
spNewMenu4->PutEnabled(VARIANT_TRUE);
spNewMenu4->PutVisible(VARIANT_TRUE);
_bstr_t bstrMenuButtonTxt5(OLESTR("升级LinkUS"));
spNewMenu5->PutCaption(bstrMenuButtonTxt5);
spNewMenu5->PutEnabled(VARIANT_TRUE);
spNewMenu5->PutVisible(VARIANT_TRUE);
_bstr_t bstrMenuButtonTxt6(OLESTR("帮助"));
spNewMenu6->PutCaption(bstrMenuButtonTxt6);
spNewMenu6->PutEnabled(VARIANT_TRUE);
spNewMenu6->PutVisible(VARIANT_TRUE);
CComQIPtr < Office::_CommandBarButton> spCmdMenuButton1(spNewMenu1);
CComQIPtr < Office::_CommandBarButton> spCmdMenuButton2(spNewMenu2);
CComQIPtr < Office::_CommandBarButton> spCmdMenuButton3(spNewMenu3);
CComQIPtr < Office::_CommandBarButton> spCmdMenuButton4(spNewMenu4);
CComQIPtr < Office::_CommandBarButton> spCmdMenuButton5(spNewMenu5);
CComQIPtr < Office::_CommandBarButton> spCmdMenuButton6(spNewMenu6);
ATLASSERT(spCmdMenuButton1);
ATLASSERT(spCmdMenuButton2);
ATLASSERT(spCmdMenuButton3);
ATLASSERT(spCmdMenuButton4);
ATLASSERT(spCmdMenuButton5);
ATLASSERT(spCmdMenuButton6);
//设置图片
spCmdMenuButton1->PutStyle(Office::msoButtonIconAndCaption);
spCmdMenuButton1->PasteFace();
spCmdMenuButton2->PutStyle(Office::msoButtonIconAndCaption);
spCmdMenuButton2->PasteFace();
spCmdMenuButton3->PutStyle(Office::msoButtonIconAndCaption);
spCmdMenuButton3->PasteFace();
spCmdMenuButton4->PutStyle(Office::msoButtonIconAndCaption);
spCmdMenuButton4->PasteFace();
spCmdMenuButton5->PutStyle(Office::msoButtonIconAndCaption);
spCmdMenuButton5->PasteFace();
spCmdMenuButton6->PutStyle(Office::msoButtonIconAndCaption);
spCmdMenuButton6->PasteFace();
m_spMenu1 = spCmdMenuButton1;
m_spMenu2 = spCmdMenuButton2;
m_spMenu3 = spCmdMenuButton3;
m_spMenu4 = spCmdMenuButton4;
m_spMenu5 = spCmdMenuButton5;
m_spMenu6 = spCmdMenuButton6;
hr = CommandButton1Events::DispEventAdvise((IDispatch*)m_spButton);
if(FAILED(hr))
return hr;
hr = CommandButton2Events::DispEventAdvise((IDispatch*)m_spButton2);
if(FAILED(hr))
return hr;
hr = CommandButton3Events::DispEventAdvise((IDispatch*)m_spButton3);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents1::DispEventAdvise((IDispatch*)m_spMenu1);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents2::DispEventAdvise((IDispatch*)m_spMenu2);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents3::DispEventAdvise((IDispatch*)m_spMenu3);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents4::DispEventAdvise((IDispatch*)m_spMenu4);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents5::DispEventAdvise((IDispatch*)m_spMenu5);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents6::DispEventAdvise((IDispatch*)m_spMenu6);
if(FAILED(hr))
return hr;
hr = AppEvents::DispEventAdvise((IDispatch*)m_spApp,&__uuidof(Outlook::ApplicationEvents));
if(FAILED(hr))
{
ATLTRACE("Failed advising to ApplicationEvents");
return hr;
}
bConnected = true;
return S_OK;
}
STDMETHOD(OnDisconnection)(ext_DisconnectMode RemoveMode, SAFEARRAY * * custom)
{
if(bConnected)
{
HRESULT hr = CommandButton1Events::DispEventUnadvise((IDispatch*)m_spButton);
if(FAILED(hr))
return hr;
hr = CommandButton2Events::DispEventUnadvise((IDispatch*)m_spButton2);
if(FAILED(hr))
return hr;
hr = CommandButton3Events::DispEventUnadvise((IDispatch*)m_spButton3);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents1::DispEventUnadvise((IDispatch*)m_spMenu1);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents2::DispEventUnadvise((IDispatch*)m_spMenu2);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents3::DispEventUnadvise((IDispatch*)m_spMenu3);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents4::DispEventUnadvise((IDispatch*)m_spMenu4);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents5::DispEventUnadvise((IDispatch*)m_spMenu5);
if(FAILED(hr))
return hr;
hr = CommandMenuEvents6::DispEventUnadvise((IDispatch*)m_spMenu6);
if(FAILED(hr))
return hr;
hr = AppEvents::DispEventUnadvise((IDispatch*)m_spApp);
if(FAILED(hr))
return hr;
bConnected = false;
}
return S_OK;
}
STDMETHOD(OnAddInsUpdate)(SAFEARRAY * * custom)
{
return E_NOTIMPL;
}
STDMETHOD(OnStartupComplete)(SAFEARRAY * * custom)
{
return E_NOTIMPL;
}
STDMETHOD(OnBeginShutdown)(SAFEARRAY * * custom)
{
return E_NOTIMPL;
}
private:
CComPtr<Office::_CommandBarButton> m_spButton;
CComPtr<Office::_CommandBarButton> m_spButton2;
CComPtr<Office::_CommandBarButton> m_spButton3;
CComPtr<Office::_CommandBarButton> m_spMenu1;
CComPtr<Office::_CommandBarButton> m_spMenu2;
CComPtr<Office::_CommandBarButton> m_spMenu3;
CComPtr<Office::_CommandBarButton> m_spMenu5;
CComPtr<Office::_CommandBarButton> m_spMenu4;
CComPtr<Office::_CommandBarButton> m_spMenu6;
CComPtr<Outlook::_Application> m_spApp;
bool bConnected;
char m_szPath[255];
LPDISPATCH m_Dispatch;
};
#endif //__ADDIN_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -