Microsoft.Office.Interop.Word question.
От: filkov СССР  
Дата: 24.10.08 00:34
Оценка:
Пришлось вот писать утилиту на НЕТях.
Такая политика в конторе. Все — на .NET!

Простая вещь ставит в тупик...

Пользуясь сабж, пытаюсь открыть MHT документ.
object OpenFormat = WdOpenFormat.wdOpenFormatDocument;
_theDoc = OpenDoc(ref Source, ref OpenFormat, true);

Выбрасывает 0x800A1506. И ничего нынче не могу нагуглить по HRESULTам — прошлый век, увы моим сединам...

Тогда делаю так:
_theApp = new Application();
_theApp.Visible = true;

object Source = "C:\\Work\\Releases\\ReleaseNotes_dev.src.mht";

object OpenFormat0 = WdOpenFormat.wdOpenFormatAuto;
object OpenFormat1 = WdOpenFormat.wdOpenFormatDocument;
if (null == (_theDoc = OpenDoc(ref Source, ref OpenFormat0, true)))    // exception
{
    Console.WriteLine(" - failed");
    if (null == (_theDoc = OpenDoc(ref Source, ref OpenFormat1, true)))    // OK
        Console.WriteLine(" - failed again:(");
}

И файло прекрасно открывается со 2-й попытки.

Подскажите, пожалуйста, в чём тут фокус?

PS:
С 1-го раза не открывает ни с одним возможным значением WdOpenFormat.

PPS:
OpenDoc() — всего лишь обёртка вокруг _theApp.Documents.Open(), где все параметры, кроме FileName, FileFormat и ReadOnlyRecommended == Type.Missing
Санкционный Смотритель.
Re: Microsoft.Office.Interop.Word question.
От: Константин Л.  
Дата: 24.10.08 07:47
Оценка:
Здравствуйте, filkov, Вы писали:

[]

Сходи в ветку COM/DCOM и там поищи, должно быть
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.