Run Active Object

   

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 * Version: 1
 */
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Word;

namespace Client.Chapter_19___Office_Integration
{
  public class RunActiveObject
  {
    [STAThread]
    static void Main(string[] args)
    {
      Word._Application MyWord = (Word._Application)Marshal.GetActiveObject("Word.Application");

      MyWord.PrintPreview = true;
      System.Windows.Forms.Application.Run();
    }
  }
}

           
          


Create Word CommandBars

   

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 * Version: 1
 */
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;
using Word;
using Office = Microsoft.Office.Core;


namespace Client.Chapter_19___Office_Integration
{
  
  public class CreateCommandBars
  {
    [STAThread]
    static void Main(string[] args)
    {
      Office.CommandBarButton Button;
      Office.CommandBar CommandBar;
      object Missing = System.Reflection.Missing.Value;
      Office._CommandBarButtonEvents_ClickEventHandler ButtonHandler;
      Word.ApplicationClass MyWord = new Word.ApplicationClass();

      MyWord.Visible = true;
      CommandBar = MyWord.CommandBars.Add("MyCommandBar", Missing, Missing, Missing);
      Button = (Office.CommandBarButton)CommandBar.Controls.Add(Office.MsoControlType.msoControlButton, Missing, Missing, Missing, Missing);
      Button.Caption = "MyButton";
      Button.FaceId = 1845;
      ButtonHandler = new Office._CommandBarButtonEvents_ClickEventHandler(OnClick_Button);
      Button.Click += ButtonHandler;
      System.Windows.Forms.Application.Run();
    }
    private void OnClick_Button(Office.CommandBarButton ctrl, ref bool cancel)
    {
      MessageBox.Show("This Worked!!!");
    }
  }

}

           
          


Modify Word Document Properties

   

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 * Version: 1
 */
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;
using Word;


namespace Client.Chapter_19___Office_Integration
{
  public class ModifyDocumentProperties
  {
    [STAThread]
    static void Main(string[] args)
    {
      object Missing = Missing.Value;
      object BuiltInProps;
      object CustomProps;
      Word._Document Doc;
      Word.ApplicationClass MyWord = new Word.ApplicationClass();

      MyWord.Visible = true;
      Doc = MyWord.Documents.Add(ref Missing, ref Missing, ref Missing, ref Missing);
      BuiltInProps = Doc.BuiltInDocumentProperties;

      Type TypeBuiltingProp = BuiltInProps.GetType();

      //Setting abuilt-in property
      string Prop = "Author";
      string PropValue;
      object AuthorProp = TypeBuiltingProp.InvokeMember("item", BindingFlags.Default | BindingFlags.GetProperty, null, BuiltInProps, new Object[] { Prop });
      Type TypeAuthorProp = AuthorProp.GetType();

      PropValue = TypeAuthorProp.InvokeMember("Value", BindingFlags.Default | BindingFlags.GetProperty, null, AuthorProp, new Object[]{}).ToString();
      System.Windows.Forms.Application.Run();
    }
  }

}

           
          


Using Office Events

   

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 * Version: 1
 */
using System;
using Excel;
using System.Reflection;

namespace Client.Chapter_19___Office_Integration
{
  public class UsingOfficeEvents
  {
    public static AppEvents_WorkbookBeforeCloseEventHandler Event_BeforeBookClose;
    public static DocEvents_ChangeEventHandler Event_ChangeEvent;
    static void Main(string[] args)
    {
      Application MyExcel = new ApplicationClass();
      Workbook MyWorkbook = MyExcel.Workbooks.Add(Missing.Value);

      MyWorkbook.Windows.get_Item(1).Caption = "Using Delegates";

      Worksheet MyWorksheet1 = (Worksheet)MyWorkbook.Worksheets.get_Item(1);
      Worksheet MyWorksheet2 = (Worksheet)MyWorkbook.Worksheets.get_Item(2);
      Worksheet MyWorksheet3 = (Worksheet)MyWorkbook.Worksheets.get_Item(3);

      MyWorksheet1.Activate();

      //Add Event Handler for the BeforeClose Event
      Event_BeforeBookClose = new AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose);
      MyExcel.WorkbookBeforeClose += Event_BeforeBookClose;

      //Add Event Handler for the change Event
      Event_ChangeEvent = new DocEvents_ChangeEventHandler(CellChange);
      MyWorksheet1.Change += Event_ChangeEvent;
      MyWorksheet2.Change += Event_ChangeEvent;
      MyWorksheet3.Change += Event_ChangeEvent;
      MyExcel.Visible = true;
      MyExcel.UserControl = true;
    }
    private static void CellChange(Range Target)
    {
      //Gets called when you change a cell
    }
    private static void BeforeBookClose(Workbook MyWorkbook, ref bool Cancel)
    {
      //Gets called before closing a workbook
    }
  }

}

           
          


Creating Office Applications

   

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 * Version: 1
 */
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Word;


namespace Client.Chapter_19___Office_Integration
{
  public class CreatingOfficeApplications
  {
    [STAThread]
    static void Main(string[] args)
    {
      Word.ApplicationClass MyWord = new Word.ApplicationClass();

      MyWord.Visible = true;
      System.Windows.Forms.Application.Run();
    }
  }
}