Embedding Microsoft Office in Form

k3nnt0ter0

Member
Joined
Sep 6, 2012
Messages
7
Programming Experience
Beginner
I am trying this tutorial but i am getting an error
Unknown name. (Exception from HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))
in this line
C#:
 Object oApplication = o.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDocument, null);

Here's the code
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace GoPPT2
{
public partial class Form1 : Form
{
private Object oDocument;
public Form1()
{
InitializeComponent();
this.axWebBrowser1.NavigateComplete2 += new AxSHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(this.axWebBrowser1_NavigateComplete2);
this.Load += new System.EventHandler(this.Form1_Load);
this.Closed += new System.EventHandler(this.Form1_Closed);
}


private void button1_Click(object sender, System.EventArgs e)
{


String strFileName;


//Find the Office document.
openFileDialog1.FileName = "";
openFileDialog1.ShowDialog();
strFileName = openFileDialog1.FileName;


//If the user does not cancel, open the document.
if (strFileName.Length != 0)
{
Object refmissing = System.Reflection.Missing.Value;
oDocument = null;
axWebBrowser1.Navigate(strFileName, ref refmissing, ref refmissing, ref refmissing, ref refmissing);
}
}


public void Form1_Load(object sender, System.EventArgs e)
{
button1.Text = "Browse";
openFileDialog1.Filter = "Office Documents(*.doc, *.xls, *.pptx)|*.doc;*.xls;*.pptx";
openFileDialog1.FilterIndex = 1;
}


public void Form1_Closed(object sender, System.EventArgs e)
{
oDocument = null;
}


private void axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
{
Object o = e.pDisp;


oDocument = o.GetType().InvokeMember("Document", BindingFlags.GetProperty, null, o, null);


Object oApplication = o.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDocument, null);


Object oName = o.GetType().InvokeMember("Name", BindingFlags.GetProperty, null, oApplication, null);


MessageBox.Show("File opened by: " + oName.ToString());
}


}
}

PS : I have Microsoft Office 2010 installed and I am using Visual Studio 2010 for this.
Hope you could help me!
 

JohnH

C# Forum Moderator
Staff member
Joined
Apr 23, 2011
Messages
813
Location
Norway
Programming Experience
10+
Did you read the Office 2007 considerations at end of article? Maybe they managed to close this option with Office 2010, some posts found seems to indicate so.
 
Top Bottom