[commit] r2321 - trunk/GME/Mga

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Fri Aug 30 09:06:53 CDT 2013


Author: ksmyth
Date: Fri Aug 30 09:06:53 2013
New Revision: 2321

Log:
Better ErrorInfo

Modified:
   trunk/GME/Mga/MgaProject.cpp
   trunk/GME/Mga/MgaProject.h
   trunk/GME/Mga/StdAfx.cpp

Modified: trunk/GME/Mga/MgaProject.cpp
==============================================================================
--- trunk/GME/Mga/MgaProject.cpp	Fri Aug 30 09:06:32 2013	(r2320)
+++ trunk/GME/Mga/MgaProject.cpp	Fri Aug 30 09:06:53 2013	(r2321)
@@ -140,28 +140,26 @@
 inline HRESULT EDEF(HRESULT hr, HRESULT to) { HRESULT h = hr; if(h != S_OK) h = to; return h; }
 
 
-STDMETHODIMP CMgaProject::OpenParadigm(BSTR s, VARIANT *pGUID) {
-	COMTRY {
-		CComPtr<IMgaRegistrar> mgareg;
-		COMTHROW(mgareg.CoCreateInstance(OLESTR("Mga.MgaRegistrar")));
-		CComBSTR connstr;
+void CMgaProject::OpenParadigm(BSTR s, VARIANT *pGUID) {
+	CComPtr<IMgaRegistrar> mgareg;
+	COMTHROW(mgareg.CoCreateInstance(OLESTR("Mga.MgaRegistrar")));
+	_bstr_t connstr;
+	{
+		HRESULT hr = mgareg->QueryParadigm(s, connstr.GetAddress(), pGUID, REGACCESS_PRIORITY);
+		if (FAILED(hr))
 		{
-			HRESULT hr = mgareg->QueryParadigm(s, &connstr, pGUID, REGACCESS_PRIORITY);
-			if (FAILED(hr))
-			{
-				CComPtr<IErrorInfo> info;
-				GetErrorInfo(0, &info);
-				throw _com_error(E_MGA_PARADIGM_NOTREG, info, true);
-			}
+			CComPtr<IErrorInfo> info;
+			GetErrorInfo(0, &info);
+			throw _com_error(E_MGA_PARADIGM_NOTREG, info, true);
 		}
-		ASSERT(connstr);
-		COMTHROW(metapr.CoCreateInstance(OLESTR("Mga.MgaMetaProject")));
-		COMTHROW(EDEF(metapr->Open(connstr), E_MGA_PARADIGM_NOTREG));
-		CComVariant metaGUID;
-		COMTHROW(metapr->get_GUID(&metaGUID));
-		if(guidcmp(metaGUID, *pGUID)) COMTHROW(E_MGA_PARADIGM_INVALID);
-		parconn = connstr;
-	} COMCATCH(;);
+	}
+	ASSERT(connstr);
+	COMTHROW(metapr.CoCreateInstance(OLESTR("Mga.MgaMetaProject")));
+	metapr->__Open(connstr);
+	CComVariant metaGUID;
+	COMTHROW(metapr->get_GUID(&metaGUID));
+	if(guidcmp(metaGUID, *pGUID)) COMTHROW(E_MGA_PARADIGM_INVALID);
+	parconn = connstr.GetBSTR();
 }
 
 
@@ -181,9 +179,7 @@
 				}
 			}
 		}
-		HRESULT hr =  OpenParadigm(s,&vguid);
-		if (FAILED(hr))
-			return hr;
+		OpenParadigm(s,&vguid);
 	} COMCATCH(;);
 }
 
@@ -198,7 +194,7 @@
 
 		CComVariant connGUID;
 		if(paradigmGUID.vt != VT_EMPTY) connGUID = paradigmGUID;
-		COMTHROW(OpenParadigm(paradigmname, &connGUID));
+		OpenParadigm(paradigmname, &connGUID);
 	
 		int undosize = getMaxUndoSize();
 		COMTHROW(dataproject->CreateProject2(projectname, undosize, genericproject));
@@ -325,7 +321,7 @@
 				COMTHROW(metapr->get_GUID(&pGUID));
 			}
 			else {
-				COMTHROW(OpenParadigm(s,&pGUID));
+				OpenParadigm(s, &pGUID);
 				ver.Empty();
 				COMTHROW(metapr->get_Version(&ver));
 			}
@@ -436,7 +432,7 @@
 				hr = OpenParadigm(s,ver);
 			}
 			else {
-				hr = OpenParadigm(s,&pGUID);
+				OpenParadigm(s, &pGUID);
 			}
 			if (FAILED(hr))
 			{

Modified: trunk/GME/Mga/MgaProject.h
==============================================================================
--- trunk/GME/Mga/MgaProject.h	Fri Aug 30 09:06:32 2013	(r2320)
+++ trunk/GME/Mga/MgaProject.h	Fri Aug 30 09:06:53 2013	(r2321)
@@ -49,7 +49,7 @@
 	STDMETHOD(get_MetaObj)(/**/ long id, /**/ IMgaMetaBase * *pVal);
 	STDMETHOD(GetMetaObjDisp)(/**/ long id, /**/ IMgaMetaBase * *pVal) { return get_MetaObj( id, pVal); }
 
-	STDMETHOD(OpenParadigm)(BSTR s, VARIANT *pGUID);
+	void OpenParadigm(BSTR s, VARIANT *pGUID);
 	STDMETHOD(OpenParadigm)(BSTR s, BSTR ver);
 	STDMETHOD(Create)(BSTR projectname, BSTR paradigmname) { return CreateEx(projectname, paradigmname, NULLVARIANT); }
 	STDMETHOD(CreateEx)(BSTR projectname, BSTR paradigmname, VARIANT parguid);

Modified: trunk/GME/Mga/StdAfx.cpp
==============================================================================
--- trunk/GME/Mga/StdAfx.cpp	Fri Aug 30 09:06:32 2013	(r2320)
+++ trunk/GME/Mga/StdAfx.cpp	Fri Aug 30 09:06:53 2013	(r2321)
@@ -8,4 +8,5 @@
 #include <statreg.h>
 #endif
 
+#import "MetaLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry
 #import "MgaLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry


More information about the gme-commit mailing list