Embedding Microsoft Office in Form


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

Here's the code
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()
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 = "";
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!
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