Imports System
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Namespace Examples
Partial Public Class Form1
Inherits Form
Private _application As SolidEdgeFramework.Application
Private _assemblyDocument As SolidEdgeAssembly.AssemblyDocument
Private _assemblyConfigurationChangeEvents As SolidEdgeFramework.ISEAssemblyConfigurationChangeEvents_Event
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
' Connect to a running instance of Solid Edge.
_application = DirectCast(Marshal.GetActiveObject("SolidEdge.Application"), SolidEdgeFramework.Application)
_assemblyDocument = CType(_application.ActiveDocument, SolidEdgeAssembly.AssemblyDocument)
' Connect to events using delegate event model.
_assemblyConfigurationChangeEvents = CType(_assemblyDocument.AssemblyConfigurationChangeEvents, SolidEdgeFramework.ISEAssemblyConfigurationChangeEvents_Event)
' Attach to specific events.
AddHandler _assemblyConfigurationChangeEvents.OnAfterAssemblyConfigurationChange, AddressOf _assemblyConfigurationChangeEvents_OnAfterAssemblyConfigurationChange
AddHandler _assemblyConfigurationChangeEvents.OnBeforeAssemblyConfigurationChange, AddressOf _assemblyConfigurationChangeEvents_OnBeforeAssemblyConfigurationChange
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
If _assemblyConfigurationChangeEvents IsNot Nothing Then
' Dettach from specific events.
RemoveHandler _assemblyConfigurationChangeEvents.OnBeforeAssemblyConfigurationChange, AddressOf _assemblyConfigurationChangeEvents_OnBeforeAssemblyConfigurationChange
RemoveHandler _assemblyConfigurationChangeEvents.OnAfterAssemblyConfigurationChange, AddressOf _assemblyConfigurationChangeEvents_OnAfterAssemblyConfigurationChange
End If
_assemblyDocument = Nothing
_assemblyConfigurationChangeEvents = Nothing
_application = Nothing
End Sub
Private Sub _assemblyConfigurationChangeEvents_OnBeforeAssemblyConfigurationChange(ByVal theDocument As Object, ByRef varConfigNames As Object, ByVal nConfigNameCount As Integer)
' Handle OnBeforeAssemblyConfigurationChange.
End Sub
Private Sub _assemblyConfigurationChangeEvents_OnAfterAssemblyConfigurationChange(ByVal theDocument As Object, ByRef varConfigNames As Object, ByVal nConfigNameCount As Integer)
' Handle OnAfterAssemblyConfigurationChange.
End Sub
End Class
End Namespace
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Examples
{
public partial class Form1 : Form
{
private SolidEdgeFramework.Application _application;
private SolidEdgeAssembly.AssemblyDocument _assemblyDocument;
private SolidEdgeFramework.ISEAssemblyConfigurationChangeEvents_Event _assemblyConfigurationChangeEvents;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Connect to a running instance of Solid Edge.
_application = (SolidEdgeFramework.Application)Marshal.GetActiveObject("SolidEdge.Application");
_assemblyDocument = (SolidEdgeAssembly.AssemblyDocument)_application.ActiveDocument;
// Connect to events using delegate event model.
_assemblyConfigurationChangeEvents = (SolidEdgeFramework.ISEAssemblyConfigurationChangeEvents_Event)_assemblyDocument.AssemblyConfigurationChangeEvents;
// Attach to specific events.
_assemblyConfigurationChangeEvents.OnAfterAssemblyConfigurationChange += _assemblyConfigurationChangeEvents_OnAfterAssemblyConfigurationChange;
_assemblyConfigurationChangeEvents.OnBeforeAssemblyConfigurationChange += _assemblyConfigurationChangeEvents_OnBeforeAssemblyConfigurationChange;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (_assemblyConfigurationChangeEvents != null)
{
// Dettach from specific events.
_assemblyConfigurationChangeEvents.OnBeforeAssemblyConfigurationChange -= _assemblyConfigurationChangeEvents_OnBeforeAssemblyConfigurationChange;
_assemblyConfigurationChangeEvents.OnAfterAssemblyConfigurationChange -= _assemblyConfigurationChangeEvents_OnAfterAssemblyConfigurationChange;
}
_assemblyDocument = null;
_assemblyConfigurationChangeEvents = null;
_application = null;
}
private void _assemblyConfigurationChangeEvents_OnBeforeAssemblyConfigurationChange(object theDocument, ref object varConfigNames, int nConfigNameCount)
{
// Handle OnBeforeAssemblyConfigurationChange.
}
private void _assemblyConfigurationChangeEvents_OnAfterAssemblyConfigurationChange(object theDocument, ref object varConfigNames, int nConfigNameCount)
{
// Handle OnAfterAssemblyConfigurationChange.
}
}
}