﻿using System.Windows.Forms;
using System.Runtime.InteropServices;

public class Form1
{

    private void Button1_Click(object sender, EventArgs e)
    {
        SolidEdgeFramework.Application objApp = null;
        Type objType = null;
        SolidEdgeFramework.MatTable objMatTable = null;
        string strLibrary = "Materials";
        SolidEdgePart.PartDocument objDocument = null;
        string strMaterial = "";
        object varGetPropVal = null;
        object listOfMaterials = null;
        object listOfLibraries = null;
        long numMaterials = 0;
        string strMessage = null;

        try
        {
            // Get SE handle
            objApp = (SolidEdgeFramework.Application)Marshal.GetActiveObject("SolidEdge.Application");

            if (objApp == null)
            {
                // Get the type from the Solid Edge ProgID
                objType = Type.GetTypeFromProgID("SolidEdge.Application");
                // Start Solid Edge
                objApp = Activator.CreateInstance(objType);
                // Make Solid Edge visible
                objApp.Visible = true;
            }
            // Get material table object handle
            objMatTable = objApp.GetMaterialTable();

            // Get material list
            objMatTable.GetMRUMaterialList(listOfMaterials, listOfLibraries, numMaterials);

            strMaterial = listOfMaterials(1);
            strLibrary = listOfLibraries(1);

            strMessage = string.Format("Number oF MRU materials = {0}", numMaterials);
            MessageBox.Show(strMessage);

            strMessage = string.Format("2nd MRU Material is = {0} and its library is = {1}", strMaterial, strLibrary);
            MessageBox.Show(strMessage);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }

    }


    public Form1()
    {
    	SubscribeToEvents();
    }

	private bool EventsSubscribed = false;
	private void SubscribeToEvents()
	{
		if (EventsSubscribed)
			return;
		else
			EventsSubscribed = true;

		Button1.Click += Button1_Click;
	}

}