Создаю проект на С# Windows Application.
Добавляю Reference на Word указывая путь \Program Files\Microsoft Office\Office11\MSWORD.OLB
и на компоненты Graph.exe, указывая путь \Program Files\Microsoft Office\Office11\Graph.exe
(для MS Office 2003, для MS Office XP \Program Files\Microsoft Office\Office10\MSWORD.OLB(Graph.exe))
Где-то в начале
using System.Reflection;
Далее:
private void button1_Click(object sender, System.EventArgs e)
{
object _Missing = Missing.Value;
Word._Application App = (new Word.ApplicationClass()).Application;
Word.Document Doc = App.Documents.Add(ref _Missing, ref _Missing, ref _Missing, ref _Missing);
object ClassStrID = "MSGraph.Chart";
Graph.Chart Chart = (Graph.Chart)Doc.InlineShapes.AddOLEObject(
ref ClassStrID, ref _Missing, ref _Missing, ref _Missing, ref _Missing, ref _Missing, ref _Missing, ref _Missing).OLEFormat.Object;
Chart.Application.DataSheet.Cells.Clear();
}
В последней строке вызывает exception: "Old format or invalid type library".
Аналогичный код на Delphi7 пашет, кроме того с макросом на VBA все также нормально работает.
Юзаю Windows XP SP2, MS VS 2003, MS Office 2003. Проверял на Office XP, и без XPSP2.
Да, и проверял на другой машине на которой стоит XP (не помню правда стоял ли SP1), с MS Office XP и MS VS 2003: тоже все пашет.
Почему такое может происходить, может кто-нибудь кстати сможет на своей машине проверить?