FCLT#62514 FAC-verify crashte bij tekeningen zonder ePlotSection (op xd.PropertiesXML), daarom DWFExceptions beter afvangen
svn path=/Slnkdwf/trunk/; revision=47074
This commit is contained in:
@@ -47,7 +47,7 @@ STDMETHODIMP CDWFFile::Open(BSTR DWFPath)
|
||||
if (CString(DWFPath).IsEmpty())
|
||||
return E_INVALIDARG;
|
||||
|
||||
try
|
||||
try
|
||||
{
|
||||
if (CDWFFileImpl::Open(CString(DWFPath)))
|
||||
{
|
||||
@@ -56,6 +56,12 @@ STDMETHODIMP CDWFFile::Open(BSTR DWFPath)
|
||||
else
|
||||
return E_FAIL;
|
||||
}
|
||||
catch (DWFException& ex)
|
||||
{
|
||||
CString err;
|
||||
err.Format("%ls\n%ls\n%s\n%ls(%d)", ex.type(), ex.message(), ex.function(), ex.file(), ex.line());
|
||||
return myAtlReportError(GetObjectCLSID(), "\nCDWFFile::Open('%s')\n%s", CString(DWFPath), err);
|
||||
}
|
||||
catch (CString& e)
|
||||
{
|
||||
return myAtlReportError (GetObjectCLSID(), e);
|
||||
@@ -85,12 +91,12 @@ STDMETHODIMP CDWFFile::Create(BSTR DWFPath, VARIANT EPlotStream)
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
try
|
||||
try
|
||||
{
|
||||
{
|
||||
//TODO CDWFFileImpl *epli;
|
||||
// DWFFile->get_DWFFileImpl((BYTE **)&epli);
|
||||
|
||||
|
||||
if (CDWFFileImpl::Create(CString(DWFPath), /*epli*/NULL))
|
||||
{
|
||||
return S_OK;
|
||||
@@ -99,6 +105,12 @@ STDMETHODIMP CDWFFile::Create(BSTR DWFPath, VARIANT EPlotStream)
|
||||
return E_FAIL;
|
||||
}
|
||||
}
|
||||
catch (DWFException& ex)
|
||||
{
|
||||
CString err;
|
||||
err.Format("%ls\n%ls\n%s\n%ls(%d)", ex.type(), ex.message(), ex.function(), ex.file(), ex.line());
|
||||
return myAtlReportError(GetObjectCLSID(), "\nCDWFFile::Create('%s')\n%s", CString(DWFPath), err);
|
||||
}
|
||||
catch (CString& e)
|
||||
{
|
||||
return myAtlReportError (GetObjectCLSID(), e);
|
||||
@@ -113,7 +125,7 @@ STDMETHODIMP CDWFFile::Create(BSTR DWFPath, VARIANT EPlotStream)
|
||||
|
||||
STDMETHODIMP CDWFFile::CreateEPlotSection(BSTR W2DPath, VARIANT EPlotStream, LONG *nItem)
|
||||
{
|
||||
try
|
||||
try
|
||||
{
|
||||
if (EPlotStream.vt!=VT_ERROR)
|
||||
{
|
||||
@@ -159,10 +171,16 @@ STDMETHODIMP CDWFFile::Save()
|
||||
{
|
||||
myDoTRACE("\nCDWFFile::Save()");
|
||||
|
||||
try
|
||||
try
|
||||
{
|
||||
CDWFFileImpl::Save();
|
||||
}
|
||||
catch (DWFException& ex)
|
||||
{
|
||||
CString err;
|
||||
err.Format("%ls\n%ls\n%s\n%ls(%d)", ex.type(), ex.message(), ex.function(), ex.file(), ex.line());
|
||||
return myAtlReportError(GetObjectCLSID(), "\nCDWFFile::Save()\n%s", err);
|
||||
}
|
||||
catch (CString& e)
|
||||
{
|
||||
return myAtlReportError (GetObjectCLSID(), e);
|
||||
@@ -172,13 +190,26 @@ STDMETHODIMP CDWFFile::Save()
|
||||
STDMETHODIMP CDWFFile::get_PropertiesXML(BSTR* pVal)
|
||||
{
|
||||
CString s;
|
||||
if (CDWFFileImpl::get_PropertiesXML(s))
|
||||
try
|
||||
{
|
||||
CComBSTR bstrString(s);
|
||||
return bstrString.CopyTo(pVal);
|
||||
if (CDWFFileImpl::get_PropertiesXML(s))
|
||||
{
|
||||
CComBSTR bstrString(s);
|
||||
return bstrString.CopyTo(pVal);
|
||||
}
|
||||
else
|
||||
return E_FAIL;
|
||||
}
|
||||
catch (DWFException& ex)
|
||||
{
|
||||
CString err;
|
||||
err.Format("%ls\n%ls\n%s\n%ls(%d)", ex.type(), ex.message(), ex.function(), ex.file(), ex.line());
|
||||
return myAtlReportError(GetObjectCLSID(), "\nCDWFFile::get_PropertiesXML()\n%s", err);
|
||||
}
|
||||
catch (CString& e)
|
||||
{
|
||||
return myAtlReportError(GetObjectCLSID(), e);
|
||||
}
|
||||
else
|
||||
return E_FAIL;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user