2012-12-05 57 views
3

我有鑄造mshtml.HTMLDocumentClass一個問題mshtml.IMarkupServices無法施展「mshtml.HTMLDocumentClass」到「mshtml.IMarkupServices」

IHTMLDocument2 doc = new HTMLDocumentClass(); 
doc.write(new object[] { item.HTMLBody }); 
IHTMLTxtRange range = ((IHTMLBodyElement)doc.body).createTextRange(); 
IHTMLTxtRange baseRange = ((IHTMLBodyElement)doc.body).createTextRange(); 

var markupServices = (IMarkupServices)doc; // <--- exception is thrown here 

相同的代碼工作在一種情況下但在另一個拋出異常。 這些調用是相同的,但在代碼的不同位置不能以相同的方式工作。

+0

小心使用線程,如果你運行的是沒有創建文檔線程代碼這個轉換可能會失敗。 –

+0

@HansPassant是的,它在使用線程的部分不起作用。你能提出任何解決方案嗎? – Andriy

+0

@HansPassant感謝提示它是有幫助的。 – Andriy

回答

1

問題是與ApartmentState

thread.SetApartmentState(Thread.CurrentThread.GetApartmentState()); 
相關問題