[GME-commit] GMESRC/GME/Gme GMEOLEData.cpp,1.23,1.24 GMEOLEData.h,1.10,1.11

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Wed Feb 15 21:02:32 CST 2006


Update of /project/gme-repository/GMESRC/GME/Gme
In directory escher:/tmp/cvs-serv2101/GME/Gme

Modified Files:
	GMEOLEData.cpp GMEOLEData.h 
Log Message:
Added Dispatch (dual) interface to the clipboard object to better support scripting engines.

CVS User: Peter Volgyesi, ISIS (volgy)

Index: GMEOLEData.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GMEOLEData.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** GMEOLEData.cpp	19 Jul 2005 17:47:01 -0000	1.23
--- GMEOLEData.cpp	15 Feb 2006 21:02:30 -0000	1.24
***************
*** 501,527 ****
  }
  
  // Interface Maps
  
  BEGIN_INTERFACE_MAP(CGMEDataSource, COleDataSource)
  	INTERFACE_PART(CGMEDataSource, IID_IMgaDataSource, MgaDataSource)
  END_INTERFACE_MAP()
  
! ULONG CGMEDataSource::XMgaDataSource::AddRef()
! {
! 	METHOD_PROLOGUE(CGMEDataSource, MgaDataSource)
! 	return pThis->ExternalAddRef();
! }
  
! ULONG CGMEDataSource::XMgaDataSource::Release()
! {
! 	METHOD_PROLOGUE(CGMEDataSource, MgaDataSource)
! 	return pThis->ExternalRelease();
! }
  
- STDMETHODIMP CGMEDataSource::XMgaDataSource::QueryInterface(REFIID iid, void **ppvObj)
- {
- 	METHOD_PROLOGUE(CGMEDataSource, MgaDataSource)
- 	return pThis->ExternalQueryInterface(&iid, ppvObj);
- }
  
  STDMETHODIMP CGMEDataSource::XMgaDataSource::get_Data(IUnknown **p)
--- 501,533 ----
  }
  
+ BEGIN_MESSAGE_MAP(CGMEDataSource, COleDataSource)
+ 	//{{AFX_MSG_MAP(CGMEDataSource)
+ 		// NOTE - the ClassWizard will add and remove mapping macros here.
+ 	//}}AFX_MSG_MAP
+ END_MESSAGE_MAP()
+ 
  // Interface Maps
  
+ BEGIN_DISPATCH_MAP(CGMEDataSource, COleDataSource)
+ 	//{{AFX_DISPATCH_MAP(CGMEDataSource)
+ 	DISP_PROPERTY_EX(CGMEDataSource, "Data", DispGetData, DispSetData, VT_DISPATCH)
+ 	DISP_PROPERTY_EX(CGMEDataSource, "Folders", DispGetFolders, DispSetFolders, VT_DISPATCH)
+ 	DISP_PROPERTY_EX(CGMEDataSource, "RegistryData", DispGetRegistryData, DispSetRegistryData, VT_DISPATCH)
+ 	DISP_PROPERTY_EX(CGMEDataSource, "Project", DispGetProject, DispSetProject, VT_DISPATCH)
+ 	//}}AFX_DISPATCH_MAP
+ END_DISPATCH_MAP()
+ 
+ 
  BEGIN_INTERFACE_MAP(CGMEDataSource, COleDataSource)
  	INTERFACE_PART(CGMEDataSource, IID_IMgaDataSource, MgaDataSource)
+ 	DUAL_ERRORINFO_PART(CGMEDataSource)
  END_INTERFACE_MAP()
  
! DELEGATE_DUAL_INTERFACE(CGMEDataSource, MgaDataSource)
  
! // Implement ISupportErrorInfo to indicate we support the
! // OLE Automation error handler.
! IMPLEMENT_DUAL_ERRORINFO(CGMEDataSource, IID_IMgaDataSource)
  
  
  STDMETHODIMP CGMEDataSource::XMgaDataSource::get_Data(IUnknown **p)
***************
*** 589,590 ****
--- 595,658 ----
  	return gme;
  } 
+ 
+ LPDISPATCH CGMEDataSource::DispGetData() 
+ {
+ 	CComPtr<IDispatch> p;
+ 	if( data != NULL ) {
+ 		data.QueryInterface(&p);
+ 	}
+ 
+ 	return p.Detach();
+ }
+ 
+ void CGMEDataSource::DispSetData(LPDISPATCH) 
+ {
+ 	SetNotSupported();
+ }
+ 
+ LPDISPATCH CGMEDataSource::DispGetFolders() 
+ {
+ 	CComPtr<IDispatch> p;
+ 	if( folders != NULL ) {
+ 		folders.QueryInterface(&p);
+ 	}
+ 
+ 	return p.Detach();
+ }
+ 
+ void CGMEDataSource::DispSetFolders(LPDISPATCH) 
+ {
+ 	SetNotSupported();
+ }
+ 
+ LPDISPATCH CGMEDataSource::DispGetRegistryData() 
+ {
+ 	CComPtr<IDispatch> p;
+ 	if(  regdata != NULL ) {
+ 		regdata.QueryInterface(&p);
+ 	}
+ 
+ 	return p.Detach();
+ }
+ 
+ void CGMEDataSource::DispSetRegistryData(LPDISPATCH) 
+ {
+ 	SetNotSupported();
+ }
+ 
+ LPDISPATCH CGMEDataSource::DispGetProject() 
+ {
+ 	CComPtr<IDispatch> p;
+ 	if( project != NULL ) {
+ 		project.QueryInterface(&p);
+ 	}
+ 
+ 	return p.Detach();
+ }
+ 
+ void CGMEDataSource::DispSetProject(LPDISPATCH) 
+ {
+ 	SetNotSupported();
+ }
+ 
+ 

Index: GMEOLEData.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GMEOLEData.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** GMEOLEData.h	19 Jul 2005 17:47:01 -0000	1.10
--- GMEOLEData.h	15 Feb 2006 21:02:30 -0000	1.11
***************
*** 3,6 ****
--- 3,7 ----
  
  #include <afxole.h>
+ #include "mfcdual.h"
  
  class CGMEDataDescriptor
***************
*** 70,81 ****
  // Interface Maps
  protected:
  	DECLARE_INTERFACE_MAP()
  
! 	BEGIN_INTERFACE_PART(MgaDataSource, IMgaDataSource)
  		STDMETHOD(get_Data)(IUnknown **p);
  		STDMETHOD(get_Folders)(IUnknown **p);
  		STDMETHOD(get_RegistryData)(IUnknown **p);
  		STDMETHOD(get_Project)(IUnknown **p);
! 	END_INTERFACE_PART(MgaDataSource)
  };
  
--- 71,98 ----
  // Interface Maps
  protected:
+ 	DECLARE_MESSAGE_MAP()
+ 	// OLE dispatch map functions
+ 	afx_msg LPDISPATCH DispGetData();
+ 	afx_msg void DispSetData(LPDISPATCH newValue);
+ 	afx_msg LPDISPATCH DispGetFolders();
+ 	afx_msg void DispSetFolders(LPDISPATCH newValue);
+ 	afx_msg LPDISPATCH DispGetRegistryData();
+ 	afx_msg void DispSetRegistryData(LPDISPATCH newValue);
+ 	afx_msg LPDISPATCH DispGetProject();
+ 	afx_msg void DispSetProject(LPDISPATCH newValue);
+ 
+ 	DECLARE_DISPATCH_MAP()
  	DECLARE_INTERFACE_MAP()
  
! 	BEGIN_DUAL_INTERFACE_PART(MgaDataSource, IMgaDataSource)
  		STDMETHOD(get_Data)(IUnknown **p);
  		STDMETHOD(get_Folders)(IUnknown **p);
  		STDMETHOD(get_RegistryData)(IUnknown **p);
  		STDMETHOD(get_Project)(IUnknown **p);
! 	END_DUAL_INTERFACE_PART(MgaDataSource)
! 
! 	//     add declaration of ISupportErrorInfo implementation
! 	//     to indicate we support the OLE Automation error object
! 	DECLARE_DUAL_ERRORINFO()
  };
  



More information about the GME-commit mailing list