[GME-commit] GMESRC/GME/Gme GMEOLEIt.h,1.2,1.3 GMEOLEIt.cpp,1.5,1.6
gme-commit at list.isis.vanderbilt.edu
gme-commit at list.isis.vanderbilt.edu
Fri Nov 18 18:17:41 CST 2005
Update of /project/gme-repository/GMESRC/GME/Gme
In directory escher:/tmp/cvs-serv10166
Modified Files:
GMEOLEIt.h GMEOLEIt.cpp
Log Message:
ClearRef method added for GMEOleIT
CVS User: Zoltan Molnar, ISIS (zolmol)
Index: GMEOLEIt.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GMEOLEIt.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** GMEOLEIt.h 7 Nov 2005 18:33:50 -0000 1.2
--- GMEOLEIt.h 18 Nov 2005 18:17:39 -0000 1.3
***************
*** 120,123 ****
--- 120,125 ----
afx_msg void Refer( LPCTSTR, LPCTSTR);
afx_msg void ReferFCO( LPDISPATCH, LPDISPATCH);
+ afx_msg void ClearRef( LPCTSTR);
+ afx_msg void ClearRefFCO( LPDISPATCH);
afx_msg void SetAttribute( LPCTSTR, LPCTSTR, LPCTSTR);
***************
*** 191,194 ****
--- 193,198 ----
STDMETHOD(Refer)(THIS_ BSTR reference, BSTR referred);
STDMETHOD(ReferFCO)(THIS_ IMgaReference* reference, IMgaFCO* referred);
+ STDMETHOD(ClearRef)(THIS_ BSTR reference);
+ STDMETHOD(ClearRefFCO)(THIS_ IMgaReference* reference);
STDMETHOD(SetAttribute)(THIS_ BSTR name, BSTR attr_name, BSTR value);
Index: GMEOLEIt.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GMEOLEIt.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** GMEOLEIt.cpp 7 Nov 2005 18:33:50 -0000 1.5
--- GMEOLEIt.cpp 18 Nov 2005 18:17:39 -0000 1.6
***************
*** 590,593 ****
--- 590,595 ----
DISP_FUNCTION(CGMEOLEIt, "Refer", Refer, VT_EMPTY, VTS_BSTR VTS_BSTR)
DISP_FUNCTION(CGMEOLEIt, "ReferFCO", ReferFCO, VT_EMPTY, VTS_DISPATCH VTS_DISPATCH)
+ DISP_FUNCTION(CGMEOLEIt, "ClearRef", ClearRef, VT_EMPTY, VTS_BSTR)
+ DISP_FUNCTION(CGMEOLEIt, "ClearRefFCO", ClearRefFCO, VT_EMPTY, VTS_DISPATCH)
DISP_FUNCTION(CGMEOLEIt, "SetAttribute", SetAttribute, VT_EMPTY, VTS_BSTR VTS_BSTR VTS_BSTR)
***************
*** 1887,1890 ****
--- 1889,1941 ----
}
+ void CGMEOLEIt::ClearRef( LPCTSTR prefnm)
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEOLEIt::ClearRef\r\n");
+
+ PRECONDITION_VALID_MODEL // calls AmIValid
+
+ ASSERT( m_theView);
+ ASSERT( m_theMgaModel);
+
+ start();
+ try
+ {
+ CComQIPtr<IMgaModel> model( putInTerr( m_theMgaModel));
+ THROW_IF_NULL( model, _T("Invalid parent model"));
+
+ CComQIPtr<IMgaReference> ref( getChildInByName( model, prefnm));
+ THROW_IF_NULL( ref, _T("Reference object not found"));
+ CComPtr<IMgaFCO> emptyfco;
+ COMTHROW( ref->put_Referred( emptyfco ));
+ }
+ CATCHALL_AND_CALL_END;
+ }
+
+ void CGMEOLEIt::ClearRefFCO( LPDISPATCH pref)
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEOLEIt::ClearRefFCO\r\n");
+
+ PRECONDITION_VALID_MODEL // calls AmIValid
+
+ ASSERT( m_theView);
+ ASSERT( m_theMgaModel);
+
+ start();
+ try
+ {
+ CComQIPtr<IMgaModel> model( putInTerr( m_theMgaModel));
+ THROW_IF_NULL( model, _T("Invalid parent model"));
+
+ CComQIPtr<IMgaReference> ref( putInTerr( pref));
+ THROW_IF_NULL( ref, _T("Invalid Reference pointer"));
+ CComQIPtr<IMgaFCO> emptyfco;
+
+ // we require that the reference is inside the model, but not the fco ptr
+ if( isValidChildIn( model.p, ref.p))
+ COMTHROW( ref->put_Referred( emptyfco) );
+ }
+ CATCHALL_AND_CALL_END;
+ }
+
void CGMEOLEIt::SetAttribute( LPCTSTR p_partName, LPCTSTR p_attrName, LPCTSTR p_attrValue)
{
***************
*** 2954,2957 ****
--- 3005,3030 ----
{
pThis->ReferFCO( reference, referred );
+ }
+ CATCH_ALL_DUAL
+ }
+
+ STDMETHODIMP CGMEOLEIt::XDual::ClearRef(THIS_ BSTR reference)
+ {
+ METHOD_PROLOGUE(CGMEOLEIt, Dual)
+
+ TRY_DUAL(IID_IGMEOLEIt)
+ {
+ pThis->ClearRef( (LPCTSTR) reference);
+ }
+ CATCH_ALL_DUAL
+ }
+
+ STDMETHODIMP CGMEOLEIt::XDual::ClearRefFCO(THIS_ IMgaReference* reference)
+ {
+ METHOD_PROLOGUE(CGMEOLEIt, Dual)
+
+ TRY_DUAL(IID_IGMEOLEIt)
+ {
+ pThis->ClearRefFCO( reference);
}
CATCH_ALL_DUAL
More information about the GME-commit
mailing list