[commit] r2405 - trunk/GME/Meta
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Wed Dec 18 17:29:34 CST 2013
Author: ksmyth
Date: Wed Dec 18 17:29:33 2013
New Revision: 2405
Log:
CMgaMetaProject: ISupportErrorInfo
Modified:
trunk/GME/Meta/MgaMetaProject.cpp
trunk/GME/Meta/MgaMetaProject.h
trunk/GME/Meta/StdAfx.cpp
Modified: trunk/GME/Meta/MgaMetaProject.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaProject.cpp Fri Dec 6 16:19:38 2013 (r2404)
+++ trunk/GME/Meta/MgaMetaProject.cpp Wed Dec 18 17:29:33 2013 (r2405)
@@ -54,7 +54,7 @@
COMTRY
{
if( coreproject != NULL )
- COMTHROW( Close() );
+ __Close();
CComPtr<ICoreMetaProject> coremetaproject;
CreateCoreMetaProject(coremetaproject);
@@ -64,17 +64,17 @@
coreproject->__OpenProject(connection, coremetaproject, NULL);
- COMTHROW( coreproject->CreateTerritory(PutOut(coreterritory)) );
+ coreproject->__CreateTerritory(PutOut(coreterritory));
ASSERT( coreterritory != NULL );
- COMTHROW( coreproject->BeginTransaction(TRANSTYPE_READFIRST) );
- COMTHROW( coreproject->PushTerritory(coreterritory) );
+ coreproject->__BeginTransaction(TRANSTYPE_READFIRST);
+ coreproject->__PushTerritory(coreterritory);
- COMTHROW( coreproject->get_RootObject(PutOut(rootobject)) );
+ rootobject.p = coreproject->RootObject;
CMgaMetaFolder::Traverse(this, rootobject);
- COMTHROW( coreproject->CommitTransaction(TRANSTYPE_READFIRST) );
+ coreproject->__CommitTransaction(TRANSTYPE_READFIRST);
}
COMCATCH(
metaobj_lookup.clear();
@@ -99,7 +99,7 @@
coreproject->__CreateProject(connection, coremetaproject);
- COMTHROW( coreproject->CreateTerritory(PutOut(coreterritory)) );
+ coreproject->__CreateTerritory(PutOut(coreterritory));
ASSERT( coreterritory != NULL );
COMTHROW( coreproject->BeginTransaction(TRANSTYPE_FIRST) );
@@ -127,40 +127,38 @@
STDMETHODIMP CMgaMetaProject::BeginTransaction()
{
- if( coreproject == NULL )
- COMRETURN(E_INVALID_USAGE);
-
COMTRY
{
- COMTHROW( coreproject->BeginTransaction(TRANSTYPE_FIRST) );
+ _ThrowExceptionIfNotOpen();
+
+ coreproject->__BeginTransaction(TRANSTYPE_FIRST);
ASSERT( coreterritory != NULL );
- COMTHROW( coreproject->PushTerritory(coreterritory) );
+ coreproject->__PushTerritory(coreterritory);
}
COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::CommitTransaction()
{
- if( coreproject == NULL )
- COMRETURN(E_INVALID_USAGE);
-
COMTRY
{
- COMTHROW( rootobject->put_AttributeValue(ATTRID_MDATE, CurrentTime()) );
- COMTHROW( coreproject->CommitTransaction(TRANSTYPE_FIRST) );
+ _ThrowExceptionIfNotOpen();
+
+ rootobject->AttributeValue[ATTRID_MDATE] = CurrentTime();
+ coreproject->__CommitTransaction(TRANSTYPE_FIRST);
}
COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::AbortTransaction()
{
- if( coreproject == NULL )
- COMRETURN(E_INVALID_USAGE);
COMTRY
{
- COMTHROW( coreproject->AbortTransaction(TRANSTYPE_FIRST) );
+ _ThrowExceptionIfNotOpen();
+
+ coreproject->__AbortTransaction(TRANSTYPE_FIRST);
}
COMCATCH(;)
}
@@ -216,7 +214,7 @@
coreterritory = NULL;
}
- COMTHROW( coreproject->CloseProject(VARIANT_TRUE) );
+ coreproject->__CloseProject(VARIANT_TRUE);
coreproject = NULL;
}
@@ -230,13 +228,13 @@
STDMETHODIMP CMgaMetaProject::get_GUID(VARIANT *p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
CHECK_OUT(p);
COMTRY
{
+ _ThrowExceptionIfNotOpen();
+
CCoreObjectPtr me(rootobject);
me.GetVariantValue(ATTRID_GUID, p);
@@ -253,125 +251,170 @@
STDMETHODIMP CMgaMetaProject::put_GUID(VARIANT p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- if( p.vt != (VT_UI1 | VT_ARRAY) || GetArrayLength(p) != sizeof(::GUID) )
- COMRETURN(E_INVALIDARG);
+ if( p.vt != (VT_UI1 | VT_ARRAY) || GetArrayLength(p) != sizeof(::GUID) )
+ COMRETURN(E_INVALIDARG);
- return ComPutAttrValue(rootobject, ATTRID_GUID, p);
+ return ComPutAttrValue(rootobject, ATTRID_GUID, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::get_Name(BSTR *p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComGetAttrValue(rootobject, ATTRID_PARNAME, p);
+ return ComGetAttrValue(rootobject, ATTRID_PARNAME, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::put_Name(BSTR p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComPutAttrValue(rootobject, ATTRID_PARNAME, p);
+ return ComPutAttrValue(rootobject, ATTRID_PARNAME, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::get_DisplayedName(BSTR *p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComGetDisplayedName(rootobject, ATTRID_PARDISPNAME, ATTRID_PARNAME, p);
+ return ComGetDisplayedName(rootobject, ATTRID_PARDISPNAME, ATTRID_PARNAME, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::put_DisplayedName(BSTR p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComPutAttrValue(rootobject, ATTRID_PARDISPNAME, p);
+ return ComPutAttrValue(rootobject, ATTRID_PARDISPNAME, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::get_Version(BSTR *p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComGetAttrValue(rootobject, ATTRID_VERSION, p);
+ return ComGetAttrValue(rootobject, ATTRID_VERSION, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::put_Version(BSTR p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComPutAttrValue(rootobject, ATTRID_VERSION, p);
+ return ComPutAttrValue(rootobject, ATTRID_VERSION, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::get_Author(BSTR *p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComGetAttrValue(rootobject, ATTRID_AUTHOR, p);
+ return ComGetAttrValue(rootobject, ATTRID_AUTHOR, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::put_Author(BSTR p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComPutAttrValue(rootobject, ATTRID_AUTHOR, p);
+ return ComPutAttrValue(rootobject, ATTRID_AUTHOR, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::get_Comment(BSTR *p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComGetAttrValue(rootobject, ATTRID_COMMENT, p);
+ return ComGetAttrValue(rootobject, ATTRID_COMMENT, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::put_Comment(BSTR p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComPutAttrValue(rootobject, ATTRID_COMMENT, p);
+ return ComPutAttrValue(rootobject, ATTRID_COMMENT, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::get_CreatedAt(BSTR *p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComGetAttrValue(rootobject, ATTRID_CDATE, p);
+ return ComGetAttrValue(rootobject, ATTRID_CDATE, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::put_CreatedAt(BSTR p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComPutAttrValue(rootobject, ATTRID_CDATE, p);
+ return ComPutAttrValue(rootobject, ATTRID_CDATE, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::get_ModifiedAt(BSTR *p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComGetAttrValue(rootobject, ATTRID_MDATE, p);
+ return ComGetAttrValue(rootobject, ATTRID_MDATE, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::put_ModifiedAt(BSTR p)
{
- if( rootobject == NULL )
- COMRETURN(E_META_NOTOPEN);
+ COMTRY
+ {
+ _ThrowExceptionIfNotOpen();
- return ComPutAttrValue(rootobject, ATTRID_MDATE, p);
+ return ComPutAttrValue(rootobject, ATTRID_MDATE, p);
+ }
+ COMCATCH(;)
}
STDMETHODIMP CMgaMetaProject::get_FindObject(metaref_type metaref, IMgaMetaBase **p)
@@ -515,4 +558,10 @@
++i;
}
}
-}
\ No newline at end of file
+}
+
+void CMgaMetaProject::_ThrowExceptionIfNotOpen()
+{
+ if (rootobject == NULL)
+ throw_com_error(E_META_NOTOPEN, L"MgaMetaProject is not open");
+}
Modified: trunk/GME/Meta/MgaMetaProject.h
==============================================================================
--- trunk/GME/Meta/MgaMetaProject.h Fri Dec 6 16:19:38 2013 (r2404)
+++ trunk/GME/Meta/MgaMetaProject.h Wed Dec 18 17:29:33 2013 (r2405)
@@ -12,7 +12,8 @@
class ATL_NO_VTABLE CMgaMetaProject :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMgaMetaProject, &__uuidof(MgaMetaProject)>,
- public IDispatchImpl<IMgaMetaProject, &__uuidof(IMgaMetaProject), &__uuidof(__MGAMetaLib)>
+ public IDispatchImpl<IMgaMetaProject, &__uuidof(IMgaMetaProject), &__uuidof(__MGAMetaLib)>,
+ public ISupportErrorInfoImpl<&__uuidof(IMgaMetaProject)>
{
public:
CMgaMetaProject();
@@ -25,6 +26,7 @@
BEGIN_COM_MAP(CMgaMetaProject)
COM_INTERFACE_ENTRY(IMgaMetaProject)
COM_INTERFACE_ENTRY2(IDispatch, IMgaMetaProject)
+ COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
// ------- Methods
@@ -102,6 +104,8 @@
public:
void CreatePathItems(bstr_const_iterator i, bstr_const_iterator e, pathitems_type &pathitems);
void CreateJointPaths(BSTR paths, jointpaths_type &jointpaths);
+private:
+ void _ThrowExceptionIfNotOpen();
};
#endif//MGA_MGAMETAPROJECT_H
Modified: trunk/GME/Meta/StdAfx.cpp
==============================================================================
--- trunk/GME/Meta/StdAfx.cpp Fri Dec 6 16:19:38 2013 (r2404)
+++ trunk/GME/Meta/StdAfx.cpp Wed Dec 18 17:29:33 2013 (r2405)
@@ -9,3 +9,4 @@
#endif
#import "CoreLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry
+#import "MetaLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry
More information about the gme-commit
mailing list