[commit] r1322 - trunk/GME/Common

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Wed May 25 12:25:47 CDT 2011


Author: ksmyth
Date: Wed May 25 12:25:46 2011
New Revision: 1322

Log:
SetErrorInfo when CreateMgaComponent fails

Modified:
   trunk/GME/Common/CommonComponent.h
   trunk/GME/Common/CommonError.h

Modified: trunk/GME/Common/CommonComponent.h
==============================================================================
--- trunk/GME/Common/CommonComponent.h	Wed May 25 11:40:51 2011	(r1321)
+++ trunk/GME/Common/CommonComponent.h	Wed May 25 12:25:46 2011	(r1322)
@@ -1,6 +1,8 @@
 #ifndef COMMONCOMPONENT_H
 #define COMMONCOMPONENT_H
 
+#include "CommonError.h"
+#include "Comdef.h"
 
 inline HRESULT CreateMgaComponent(CComPtr<IMgaComponent> &comp, LPCOLESTR ProgID)
 {
@@ -12,6 +14,7 @@
 	if (SUCCEEDED(hr)) {
 		hr = unk.QueryInterface(&comp);
 		if (FAILED(hr)) {
+			SetStandardOrGMEErrorInfo(hr);
 			CComPtr<IDispatch> disp;
 			hr = unk.QueryInterface(&disp);
 			if (SUCCEEDED(hr)) {
@@ -25,6 +28,8 @@
 				}
 			}
 		}
+	} else {
+		SetStandardOrGMEErrorInfo(hr);
 	}
 	return hr;
 }

Modified: trunk/GME/Common/CommonError.h
==============================================================================
--- trunk/GME/Common/CommonError.h	Wed May 25 11:40:51 2011	(r1321)
+++ trunk/GME/Common/CommonError.h	Wed May 25 12:25:46 2011	(r1322)
@@ -2,6 +2,7 @@
 #define MGA_COMMONERROR_H
 
 #include <exception>
+#include <comdef.h>
 
 // --------------------------- ASSERT and VERIFY
 
@@ -110,6 +111,12 @@
 void SetErrorInfo(HRESULT hr, LPOLESTR desc2 = NULL) NOTHROW;
 bool GetErrorInfo(BSTR *p) NOTHROW;
 void GetErrorInfo(HRESULT hr, BSTR *p) NOTHROW;
+static void SetStandardOrGMEErrorInfo(HRESULT hr) NOTHROW {
+	_bstr_t error;
+	GetErrorInfo(hr, error.GetAddress());
+	if (static_cast<LPOLESTR>(error))
+		SetErrorInfo(static_cast<LPOLESTR>(error));
+}
 
 //		One or more arguments are invalid
 //*****	E_INVALIDARG


More information about the gme-commit mailing list