1
// AddInMod.cpp : implementation file
13
static char THIS_FILE[] = __FILE__;
17
COMUtility::COMExceptionThrower CDSAddIn::cex_;
19
CDSAddIn::~CDSAddIn( void)
23
// This is called when the user first loads the add-in, and on start-up
24
// of each subsequent Developer Studio session
25
STDMETHODIMP CDSAddIn::OnConnection(IApplication* pApp, VARIANT_BOOL bFirstTime,
26
long dwCookie, VARIANT_BOOL* OnConnection)
28
HRESULT result = S_OK;
32
CComPtr< IUnknown> pIUnk;
34
AFX_MANAGE_STATE(AfxGetStaticModuleState());
36
cex_ = _Module.GetClassObject( GetObjectCLSID(), IID_IUnknown, reinterpret_cast<void**>(&pIUnk));
38
cex_ = CoRegisterClassObject(
48
m_dwCookie = dwCookie;
49
*OnConnection = VARIANT_TRUE;
51
catch( const std::bad_cast&)
53
*OnConnection = VARIANT_FALSE;
55
catch( const _com_error&)
57
*OnConnection = VARIANT_FALSE;
63
// This is called on shut-down, and also when the user unloads the add-in
64
STDMETHODIMP CDSAddIn::OnDisconnection(VARIANT_BOOL bLastTime)
67
CoRevokeClassObject( classRegistrationId_);
73
// ITestRunnerDSPlugin
74
STDMETHODIMP CDSAddIn::goToLineInSourceCode( BSTR fileName, int lineNumber)
76
HRESULT result = S_OK;
78
AFX_MANAGE_STATE(AfxGetStaticModuleState());
82
CComPtr< IDispatch> tmp;
83
CComPtr< IDocuments> pIDocuments;
84
CComPtr< ITextDocument> pITextDocu;
85
CComPtr< ITextSelection> pITextSel;
87
cex_ = pIApp_->get_Documents( &tmp);
88
pIDocuments.Attach( COMUtility::interface_cast<IDocuments>( tmp.p));
90
cex_ = pIDocuments->Open( fileName,
94
pITextDocu.Attach( COMUtility::interface_cast< ITextDocument>( tmp.p));
96
cex_ = pITextDocu->get_Selection( &tmp);
97
pITextSel.Attach( COMUtility::interface_cast< ITextSelection>( tmp.p));
98
cex_ = pITextSel->GoToLine( lineNumber, CComVariant( 1));
100
catch( const std::bad_cast&)
104
catch( const _com_error&)