⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addin.h

📁 outlook 插件 在outlook 中添加弹出试菜单
💻 H
📖 第 1 页 / 共 2 页
字号:
	
	_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 + -