[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