PIPEIT.CPP
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:
Windows编程
开发平台:
Visual C++
- // PipeIt.cpp : Implementation of CPipeIt
- #include "stdafx.h"
- #include "pipe.h"
- #include "PipeIt.h"
- #include "resource.h"
- #include "dlgFilter.h"
- /////////////////////////////////////////////////////////////////////////////
- // CPipeIt
- HRESULT CPipeIt::OnConnection(IApplication* pApp, VARIANT_BOOL bFirstTime, long dwAddInID, VARIANT_BOOL* bOnConnection)
- {
- HRESULT hr = S_OK;
- CString strCmdFilter;
- CString strCmdNameFilter;
- AFX_MANAGE_STATE(AfxGetStaticModuleState());
- m_spApplication = pApp;
- m_dwAddInID = dwAddInID;
- hr = pApp->SetAddInInfo((long)_Module.GetModuleInstance(),
- static_cast<IPipeIt*>(this), IDB_TOOLBAR_MEDIUM_PIPEIT, IDB_TOOLBAR_LARGE_PIPEIT, dwAddInID);
- VARIANT_BOOL bRet;
- if (SUCCEEDED(hr))
- {
- strCmdFilter.LoadString(IDS_CMD_FILTER);
- strCmdNameFilter.LoadString(IDS_CMDNAME_FILTER);
- strCmdNameFilter += _T('n');
- strCmdNameFilter += strCmdFilter;
- hr = pApp->AddCommand(CComBSTR(strCmdNameFilter),CComBSTR(_T("Filter")), 0, dwAddInID, &bRet);
- }
- // Add toolbar buttons only if this is the first time the add-in
- // is being loaded. Toolbar buttons are automatically remembered
- // by Developer Studio from session to session, so we should only
- // add the toolbar buttons once.
- if (bFirstTime)
- {
- if (SUCCEEDED(hr))
- {
- strCmdNameFilter.LoadString(IDS_CMDNAME_FILTER);
- hr = pApp->AddCommandBarButton(dsGlyph, CComBSTR(strCmdNameFilter), dwAddInID);
- }
- }
- *bOnConnection = SUCCEEDED(hr) ? VARIANT_TRUE :VARIANT_FALSE;
- return hr;
- }
- HRESULT CPipeIt::OnDisconnection(VARIANT_BOOL bLastTime)
- {
- return S_OK;
- }
- HRESULT CPipeIt::Filter()
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState());
- // Replace this with the actual code to execute this command
- // Use m_spApplication to access the Developer Studio Application object
- // TODO: WHAT ABOUT BEGINMODELESS??
- CDlgFilter dlgFilter;
- CComPtr<IDispatch> pDispDoc;
- m_spApplication->get_ActiveDocument(&pDispDoc);
- if (pDispDoc) // have a document open. Can reasonably do this...
- {
- dlgFilter.SetApp(m_spApplication);
- dlgFilter.DoModal();
- }
- return S_OK;
- }