[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