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
1,422
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.
 

Latest posts

Top Bottom