public static bool EvaluateSmartArtShape(IQuestion question, string filename, SmartArtShapes _smartArtShape) { WordInterop.Application wordApplication = GetOrCreateWordApplication(question.ObjectStore); try { //Avoid screen flickering or unwanted alerts while initializing wordApplication.ScreenUpdating = false; WordInterop.WdAlertLevel displayAlertLevel = wordApplication.DisplayAlerts; wordApplication.DisplayAlerts = WordInterop.WdAlertLevel.wdAlertsNone; WordInterop.Document wordDocument = wordApplication.Documents.Open(filename); //WORD WordInterop.Shapes ws = wordDocument.Shapes; foreach(WordInterop.Shape s in ws) { if (s.HasSmartArt == MsoTriState.msoTrue) { if (s == wordApplication.SmartArtLayouts[(int)_smartArtShape])//line 697 { return true; } } } wordDocument.Close(); } catch (Exception ee) { string strError = ee.ToString(); Cleanup(question.ObjectStore, true); } return false; }
System.Runtime.InteropServices.COMException (0x80010105): The server threw an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT)) at Microsoft.Office.Core.SmartArtLayouts.get_Item(Object Index) at TeTec.Action.Office2013.Word.WordHelper.EvaluateSmartArtShape(IQuestion question, String filename, SmartArtShapes _smartArtShape) in C:\TETEC\Development\TeTec.Action\Office\Office2013\Word\WordHelper.cs:line 697