[commit] r2565 - trunk/GME/Meta
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Sat Nov 15 13:41:20 CST 2014
Author: ksmyth
Date: Sat Nov 15 13:41:20 2014
New Revision: 2565
Log:
Better ErrorInfo for MgaMetaModel and MgaMetaRole
Modified:
trunk/GME/Meta/MgaMetaModel.cpp
trunk/GME/Meta/MgaMetaModel.h
trunk/GME/Meta/MgaMetaRole.h
Modified: trunk/GME/Meta/MgaMetaModel.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaModel.cpp Thu Nov 6 09:47:29 2014 (r2564)
+++ trunk/GME/Meta/MgaMetaModel.cpp Sat Nov 15 13:41:20 2014 (r2565)
@@ -25,26 +25,32 @@
CComBstrObj n;
(*i).GetStringValue(ATTRID_NAME, PutOut(n));
- if( equal(n, name))//if( n == name )
- COMRETURN( ::QueryInterface(*i, p) );
+ if (equal(n, name)) {
+ HRESULT hr = ::QueryInterface(*i, p);
+ if (FAILED(hr))
+ COMTHROW(hr);
+ return hr;
+ }
++i;
}
if( inscope == VARIANT_FALSE )
- COMRETURN(E_NOTFOUND);
+ COMTHROW(E_NOTFOUND);
CComObjPtr<IMgaMetaBase> parent;
COMTHROW( get_DefinedIn(PutOut(parent)) );
ASSERT( parent != NULL );
CComObjPtr<IMgaMetaFolder> folder;
- if( SUCCEEDED(parent.QueryInterface(folder)) )
- COMRETURN( folder->get_DefinedFCOByName(name, inscope, p) );
+ if( SUCCEEDED(parent.QueryInterface(folder)) ) {
+ *p = folder->DefinedFCOByName[name, inscope].Detach();
+ return S_OK;
+ }
CComObjPtr<IMgaMetaModel> model;
COMTHROW( parent.QueryInterface(model) );
- COMRETURN( model->get_DefinedFCOByName(name, inscope, p) );
+ *p = model->DefinedFCOByName[name, inscope].Detach();
}
COMCATCH(;)
}
@@ -68,13 +74,17 @@
CComBstrObj n;
(*i).GetStringValue(ATTRID_NAME, PutOut(n));
- if( equal(n, name))//if( n == name )
- COMRETURN( ::QueryInterface(*i, p) );
+ if (equal(n, name)) {
+ HRESULT hr = ::QueryInterface(*i, p);
+ if (FAILED(hr))
+ COMTHROW(hr);
+ return hr;
+ }
++i;
}
- COMRETURN(E_NOTFOUND);
+ COMTHROW(E_NOTFOUND);
}
COMCATCH(;)
}
@@ -97,13 +107,16 @@
CComBstrObj n;
(*i).GetStringValue(ATTRID_NAME, PutOut(n));
- if( n == name )
- COMRETURN( ::QueryInterface(*i, p) );
-
+ if( n == name ) {
+ HRESULT hr =::QueryInterface(*i, p);
+ if (FAILED(hr))
+ COMTHROW(hr);
+ return hr;
+ }
++i;
}
- COMRETURN(E_NOTFOUND);
+ COMTHROW(E_NOTFOUND);
}
COMCATCH(;)
}
@@ -299,13 +312,13 @@
{
CHECK_OUT(p);
- if( kind == NULL )
- COMRETURN(E_POINTER);
-
ASSERT( metaprojectref != NULL );
COMTRY
{
+ if( kind == NULL )
+ COMTHROW(E_POINTER);
+
CCoreObjectPtr self(GetUnknown());
ASSERT( self != NULL );
Modified: trunk/GME/Meta/MgaMetaModel.h
==============================================================================
--- trunk/GME/Meta/MgaMetaModel.h Thu Nov 6 09:47:29 2014 (r2564)
+++ trunk/GME/Meta/MgaMetaModel.h Sat Nov 15 13:41:20 2014 (r2565)
@@ -12,7 +12,8 @@
public CComCoClass<CMgaMetaModel, &__uuidof(MgaMetaModel)>,
public CComObjectRootEx<CComSingleThreadModel>,
public IDispatchImpl<IMgaMetaModel, &__uuidof(IMgaMetaModel), &__uuidof(__MGAMetaLib)>,
- public CMgaMetaFCO
+ public CMgaMetaFCO,
+ public ISupportErrorInfo
{
public:
IUnknown *GetUnknown() const { return (IMgaMetaModel*)this; }
@@ -25,10 +26,21 @@
COM_INTERFACE_ENTRY(IMgaMetaFCO)
COM_INTERFACE_ENTRY2(IMgaMetaBase, CMgaMetaBase)
COM_INTERFACE_ENTRY2(IDispatch, IMgaMetaModel)
+ COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
DECLARE_MGAMETAFCO()
+ STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid)
+ {
+ return (
+ IsEqualGUID(riid, __uuidof(IMgaMetaModel))
+ || IsEqualGUID(riid, __uuidof(IMgaMetaFCO))
+ || IsEqualGUID(riid, __uuidof(IMgaMetaBase))
+ || IsEqualGUID(riid, __uuidof(IDispatch))
+ ) ? S_OK : S_FALSE;
+ }
+
public:
STDMETHOD(get_DefinedFCOs)(IMgaMetaFCOs **p)
{ return ComGetSortedCollValue<IMgaMetaFCO>(GetUnknown(), ATTRID_DEFFCO_PTR, p); }
Modified: trunk/GME/Meta/MgaMetaRole.h
==============================================================================
--- trunk/GME/Meta/MgaMetaRole.h Thu Nov 6 09:47:29 2014 (r2564)
+++ trunk/GME/Meta/MgaMetaRole.h Sat Nov 15 13:41:20 2014 (r2565)
@@ -12,7 +12,8 @@
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMgaMetaRole, &__uuidof(MgaMetaRole)>,
public IDispatchImpl<IMgaMetaRole, &__uuidof(IMgaMetaRole), &__uuidof(__MGAMetaLib)>,
- public CMgaMetaBase
+ public CMgaMetaBase,
+ public ISupportErrorInfo
{
public:
IUnknown *GetUnknown() const { return (IMgaMetaRole*)this; }
@@ -24,10 +25,20 @@
COM_INTERFACE_ENTRY(IMgaMetaRole)
COM_INTERFACE_ENTRY2(IMgaMetaBase, CMgaMetaBase)
COM_INTERFACE_ENTRY2(IDispatch, IMgaMetaRole)
+ COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
DECLARE_MGAMETABASE()
+ STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid)
+ {
+ return (
+ IsEqualGUID(riid, __uuidof(IMgaMetaRole))
+ || IsEqualGUID(riid, __uuidof(IMgaMetaBase))
+ || IsEqualGUID(riid, __uuidof(IDispatch))
+ ) ? S_OK : S_FALSE;
+ }
+
public:
STDMETHOD(get_ParentModel)(IMgaMetaModel **p)
{ return ComGetPointerValue(GetUnknown(), ATTRID_ROLES_COLL, p); }
More information about the gme-commit
mailing list