[commit] r2406 - in trunk: Doc GME/Gme GME/Mga
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Wed Dec 18 17:29:46 CST 2013
Author: ksmyth
Date: Wed Dec 18 17:29:46 2013
New Revision: 2406
Log:
Fix opening mga file when its paradigm mta no longer exists
Modified:
trunk/Doc/README_in.txt
trunk/GME/Gme/GMEApp.cpp
trunk/GME/Mga/MgaProject.cpp
Modified: trunk/Doc/README_in.txt
==============================================================================
--- trunk/Doc/README_in.txt Wed Dec 18 17:29:33 2013 (r2405)
+++ trunk/Doc/README_in.txt Wed Dec 18 17:29:46 2013 (r2406)
@@ -26,6 +26,10 @@
1. Release Notes
************************************************
+Release Notes
+----------------------------------
+ - Fix opening mga file when its paradigm mta no longer exists
+
Release Notes of Release 13.11.14
----------------------------------
- Binary compatibility with 11.12.2
Modified: trunk/GME/Gme/GMEApp.cpp
==============================================================================
--- trunk/GME/Gme/GMEApp.cpp Wed Dec 18 17:29:33 2013 (r2405)
+++ trunk/GME/Gme/GMEApp.cpp Wed Dec 18 17:29:46 2013 (r2406)
@@ -1402,6 +1402,8 @@
COMTHROW( mgaProject->EnableAutoAddOns(VARIANT_TRUE));
HRESULT hr = mgaProject->Open(PutInBstr(conn), &readable_only);
if(hr != S_OK) {
+ _bstr_t mgaProjectOpenError;
+ GetErrorInfo(mgaProjectOpenError.GetAddress());
CComBSTR parn;
CComBSTR parv;
long version;
@@ -1447,8 +1449,10 @@
}
if(hr == E_MGA_PARADIGM_INVALID) {
msg = _T("WARNING: Project could not access its original version of\n")
- _T("paradigm '") + CString(parn) + _T("'\n")
- _T("Do you want to try with the current version of the paradigm?");
+ _T("paradigm '") + CString(parn) + _T("'\n");
+ if (mgaProjectOpenError.length())
+ msg += static_cast<const wchar_t*>(mgaProjectOpenError);
+ msg += _T("Do you want to try with the current version of the paradigm?");
if (AfxMessageBox(msg ,MB_OKCANCEL) == IDOK) {
guidpar = true;
tryit = true;
Modified: trunk/GME/Mga/MgaProject.cpp
==============================================================================
--- trunk/GME/Mga/MgaProject.cpp Wed Dec 18 17:29:33 2013 (r2405)
+++ trunk/GME/Mga/MgaProject.cpp Wed Dec 18 17:29:46 2013 (r2406)
@@ -155,10 +155,18 @@
}
ASSERT(connstr);
COMTHROW(metapr.CoCreateInstance(OLESTR("Mga.MgaMetaProject")));
- metapr->__Open(connstr);
+ HRESULT hr = metapr->Open(connstr);
+ if (FAILED(hr))
+ {
+ _bstr_t err;
+ if (GetErrorInfo(err.GetAddress()))
+ throw_com_error(E_MGA_PARADIGM_INVALID, static_cast<const wchar_t*>(err)); // change HRESULT
+ COMTHROW(E_MGA_PARADIGM_INVALID);
+ }
CComVariant metaGUID;
COMTHROW(metapr->get_GUID(&metaGUID));
- if(guidcmp(metaGUID, *pGUID)) COMTHROW(E_MGA_PARADIGM_INVALID);
+ if (guidcmp(metaGUID, *pGUID))
+ throw_com_error(E_MGA_PARADIGM_INVALID, L".mta file paradigm GUID does not match registered GUID");
parconn = connstr.GetBSTR();
}
More information about the gme-commit
mailing list