509 lines
30 KiB
HTML
509 lines
30 KiB
HTML
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
||
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||
xmlns:w="urn:schemas-microsoft-com:office:word"
|
||
xmlns="http://www.w3.org/TR/REC-html40">
|
||
|
||
<head>
|
||
<title>Creating Add-ins (VB.NET)</title>
|
||
<meta http-equiv="Content-Language" content="en-us">
|
||
<meta name=MS-HKWD content="VB.NET, add-ins">
|
||
<meta name=MS-HKWD content="VB.NET">
|
||
<meta name=MS-HKWD content="Add-ins, VB.NET">
|
||
<meta name=MS-HKWD content="Add-ins">
|
||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||
<link rel="stylesheet" type="text/css" href="ApiHelp.css">
|
||
<style type="text/css">
|
||
.auto-style3 {
|
||
font-size: x-small;
|
||
}
|
||
.auto-style2 {
|
||
color: #2B91AF;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<h1><span style="font-weight: normal; font-size: 7.5pt;">SOLIDWORKS PDM Professional API Help</span></h1>
|
||
<h1>Creating Add-ins (VB.NET)</h1>
|
||
|
||
<body bgcolor=white lang=SV link=blue vlink=purple style='tab-interval:65.2pt'>
|
||
|
||
<div class=Section1>
|
||
|
||
<p><span lang=EN-US style='font-family:Verdana'>This topic shows how to create a
|
||
debug add-in using VB.NET in Microsoft Visual Studio. </span></p>
|
||
|
||
<p><span lang="en-us"><b><span style="font-family: Verdana">NOTE: </span></b></span>
|
||
<span lang=EN-US style='font-family:Verdana;
|
||
mso-ansi-language:EN-US'>Because SOLIDWORKS PDM Professional cannot force a reload of
|
||
add-ins if they are written in VB.NET, all client machines must be restarted to ensure that the latest version of the add-in is used.<o:p></o:p></span></p>
|
||
|
||
<ol class="kadov-P" style="line-height: 150%; font-family: Verdana; font-size: 8pt; margin-bottom: 15">
|
||
<li class="kadov-P"><font face="Verdana" style="font-size: 8pt">
|
||
<span lang=EN-US style='mso-ansi-language:EN-US'>Start Microsoft Visual
|
||
Studio.<br>
|
||
</span></font></li>
|
||
<li class="kadov-P"><span lang="en-us"><font face="Verdana">Click <b>File >
|
||
New > Project > Visual Basic > <span lang="sv">Windows Desktop >
|
||
</span>Class Library</b></span><b> (.NET Framework)</b><span lang="en-us">.<br>
|
||
</span></font></li>
|
||
<li class="kadov-P"><font face="Verdana" style="font-size: 8pt">
|
||
<span lang=EN-US style='mso-ansi-language:EN-US'>Type the name of your
|
||
project in <b>Name</b>.<br>
|
||
</span></font></li>
|
||
<li class="kadov-P"><span lang="en-us"><font face="Verdana">Click <b>
|
||
Browse</b> and navigate to the folder where to create your project.<br>
|
||
</font></span></li>
|
||
<li class="kadov-P"><span lang="en-us"><font face="Verdana">Click <b>OK</b>.<br>
|
||
<br>
|
||
<b>Class1.vb</b> containing an empty class called Class1 is created.<br>
|
||
</font></span></li>
|
||
<li class="kadov-P">Right-click the name of your project in the Solution
|
||
Explorer to add the SOLIDWORKS PDM Professional type library and the
|
||
Systems.Windows.Forms assembly:<br>
|
||
<ol class="kadov-P" style="line-height: 150%; font-family: Verdana; font-size: 8pt; margin-bottom: 15">
|
||
<li>Select <b>Add Reference</b>.<br>
|
||
</li>
|
||
<li>Click <strong>Browse</strong> in the left-hand panel, navigate to and select
|
||
<strong>EPDM.Interop.epdm.dll</strong>, and click <strong>OK</strong>.<br>
|
||
</li>
|
||
<li>Select <b>Add Reference</b>.<br>
|
||
</li>
|
||
<li>Click <strong>Assemblies > Framework</strong> in the left-hand panel, select <b>System.Windows.Forms</b>, and click
|
||
<strong>OK</strong>.<br>
|
||
</li>
|
||
<li>Click <b>Close</b>.</li>
|
||
</ol></li>
|
||
<li class="kadov-P">Type <b>Imports System.Windows.Forms</b> at the top of
|
||
the code window.<br>
|
||
</li>
|
||
<li class="kadov-P"><span lang="en-us">Ty</span><span lang=EN-US style='mso-ansi-language:EN-US'>pe
|
||
<span
|
||
style='mso-bidi-font-style:normal; font-weight:700'>Imports </span> </span>
|
||
<span
|
||
style='mso-bidi-font-style:normal; font-weight:700'>
|
||
<span style='mso-ansi-language:EN-US'>EPDM.Interop.epdm</span></span><span lang=EN-US style='mso-ansi-language:EN-US'> </span><span lang=EN-US style='mso-ansi-language:EN-US'> and </span>
|
||
<b>Imports System.Runtime.InteropServices </b>
|
||
<span lang=EN-US style='mso-ansi-language:EN-US'>below
|
||
<b>Imports System.Windows.Forms</b>.<br>
|
||
</span></li>
|
||
<li class="kadov-P"><span lang="en-us">Type before <b>Public Class Class1</b>:<br>
|
||
</span><font face="Courier New" size="2"><<span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">""</span>)> _<br>
|
||
<<span style="color:#2b91af;">ComVisible</span>(<span style="color:blue;">True</span>)> _</font><span lang=EN-US style='mso-ansi-language:EN-US'><br> </span></li>
|
||
<li class="kadov-P">To populate the GUID
|
||
attribute above, click <b>Tools > Create GUID</b> in the IDE, select GUID
|
||
Format
|
||
6, click <b>Copy</b>, and click <b>Exit</b>. Replace
|
||
<font face="Courier New" size="2"><<span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">""</span>)></font>
|
||
with the copied string.<br>
|
||
</li>
|
||
<li class="kadov-P"><span lang=EN-US style='mso-ansi-language:EN-US'>Type
|
||
below <b>Public Class Class1</b>:<br>
|
||
<span style='mso-bidi-font-style:normal; font-weight:700'>Implements IEdmAddIn5</span><br>
|
||
</span></li>
|
||
<li><font face="Verdana"><span style="font-size: 8pt" lang="en-us">Implement</span></font><span lang=EN-US style='mso-ansi-language:EN-US'><span style="font-size: 8pt"><font face="Verdana">
|
||
<a href="EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddin5~GetAddInInfo.html">IEdmAddIn</a></font></span><span
|
||
style='mso-bidi-font-style:normal'><font face="Verdana"><span style="font-size: 8pt"><a href="EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddin5~GetAddInInfo.html">5::GetAddInInfo</a>
|
||
by pasting the following code between <b>Implements IEdmAddIn5</b> and <b>
|
||
End Class</b>:</span></font></span></span></li>
|
||
</ol>
|
||
<blockquote>
|
||
<blockquote>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-US style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-US'>Public Sub GetAddInInfo(ByRef poInfo As
|
||
EdmAddInInfo, ByVal poVault As IEdmVault5, ByVal poCmdMgr As IEdmCmdMgr5)
|
||
Implements IEdmAddIn5.GetAddInInfo<o:p></o:p></span></p>
|
||
</blockquote>
|
||
<blockquote>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-US style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-US'><span style='mso-spacerun:yes'> </span></span>
|
||
<span
|
||
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:green;
|
||
mso-ansi-language:EN-GB'>' </span><span lang="en-gb">
|
||
<font size="2" color="#008000">
|
||
<span style="font-family: Courier New">Specify add-in
|
||
information</span></font></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>poInfo.mbsAddInName = "VB.NET Add-in"<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>poInfo.mbsCompany = "My Company"<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>poInfo.mbsDescription = "Menu add-in that shows a message box."<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>poInfo.mlAddInVersion = 1<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'>
|
||
<o:p> </o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>
|
||
<span
|
||
style='color:green'>' Specify minimum version of SOLIDWORKS PDM Professional</span></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>poInfo.mlRequiredVersionMajor
|
||
= 6<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>poInfo.mlRequiredVersionMinor = 4<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'>
|
||
<o:p> </o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>
|
||
<span
|
||
style='color:green'>' Register a menu command<o:p></o:p></span></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>poCmdMgr.AddCmd(1, "VB.NET Add-in", EdmMenuFlags.EdmMenu_Nothing)</span></p>
|
||
</blockquote>
|
||
<p class=MsoNormal>
|
||
</p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span></span>
|
||
<span
|
||
style='font-size:10.0pt;font-family:"Courier New"'>End Sub</span></p>
|
||
</blockquote>
|
||
<ol style="font-family: Verdana; font-size: 8pt" start="11">
|
||
<li><span lang="en-us">Implement
|
||
<a href="EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~OnCmd.html">IEdmAddIn5::</a></span><span lang=EN-US style='mso-ansi-language:EN-US'><span
|
||
style='mso-bidi-font-style:normal'><a href="EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~OnCmd.html">OnCmd</a>
|
||
by pasting the following code between <b>End Sub</b> and <b>End Class</b>:</span><br><br><b>NOTE</b>:
|
||
<a href="EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetWin32Window.html">IEdmVault8::GetWin32Window</a>
|
||
is used to convert the parent window handle to a window handle that .NET can
|
||
use</span><span lang="en-us">.</span></li>
|
||
</ol>
|
||
<blockquote>
|
||
<blockquote>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'>Public Sub OnCmd(ByRef poCmd As EdmCmd, <font size="1">
|
||
<span style="color:blue;" class="auto-style3">ByRef</span><span class="auto-style3"> ppoData <span style="color:blue;">As</span> <span class="auto-style2">EdmCmdData</span>[]</span></font>) Implements IEdmAddIn5.OnCmd<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'>
|
||
<o:p> </o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>
|
||
<span
|
||
style='color:green'>' Handle the menu command<o:p></o:p></span></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>If
|
||
poCmd.meCmdType = EdmCmdType.EdmCmd_Menu Then<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>If
|
||
poCmd.mlCmdID = 1 Then<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>Dim v8 as IEdmVault8<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span><span
|
||
style='mso-spacerun:yes'> </span>V8 = poCmd.mpoVault<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>System.Windows.Forms.MessageBox.Show(v8.GetWin32Window(poCmd.mlParentWnd),
|
||
"VB.NET Add-in")<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>End
|
||
If<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>End If<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'>
|
||
<o:p> </o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>End Sub</span></p>
|
||
</blockquote>
|
||
</blockquote>
|
||
<ol style="font-family: Verdana; font-size: 8pt" start="12">
|
||
<li><span lang="en-us">I</span><span lang=EN-US style='mso-ansi-language:EN-US'>mplement your own window handle wrapper
|
||
by right-clicking the name of your project in the Solution Explorer and
|
||
selecting <b>Add > New Item > Class</b></span><span lang="en-us">:<br>
|
||
</span><ol style="font-family: Verdana; font-size: 8pt">
|
||
<li><span lang="en-us">Type <b>WindowHandle</b> in <b>Name</b>.<br>
|
||
</span></li>
|
||
<li><span lang="en-us">Click <b>Add</b>.<br>
|
||
</span></li>
|
||
<li><span lang="en-us">Replace the code in the code window with the
|
||
following code.</span></li>
|
||
</ol>
|
||
</li>
|
||
</ol>
|
||
<blockquote>
|
||
<blockquote>
|
||
<p class=MsoNormal>
|
||
<span lang="en-gb"><font size="2">
|
||
<span style="font-family: Courier New">Imports
|
||
System.Windows.Forms<br>
|
||
</span></font></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
color:green;mso-ansi-language:EN-GB'>' Wrapper class to use SOLIDWORKS PDM Professional as a parent
|
||
window to VB forms<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'>Public Class WindowHandle<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>Implements
|
||
IWin32Window<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>Private
|
||
mHwnd As IntPtr<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'>
|
||
<o:p> </o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>Public Sub
|
||
New(ByVal hWnd As Integer)<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>mHwnd =
|
||
New IntPtr(hWnd)<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>End Sub<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>Public ReadOnly
|
||
Property Handle() As IntPtr Implements
|
||
System.Windows.Forms.IWin32Window.Handle<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>Get<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'>
|
||
</span>Return mHwnd<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>End Get<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
|
||
mso-ansi-language:EN-GB'><span style='mso-spacerun:yes'> </span>End
|
||
Property<o:p></o:p></span></p>
|
||
<p class=MsoNormal>
|
||
<span style='font-size:10.0pt;font-family:"Courier New"'>End
|
||
Class<o:p></o:p></span></p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<blockquote>
|
||
<p><span lang="en-gb">Your add-in uses the new wrapper in the menu
|
||
command handler to
|
||
show the message box by calling <font face="Courier New" size="2">
|
||
System.Windows.Forms.MessageBox.Show</font> in Class1::OnCmd in Class1.vb.</span><span
|
||
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
|
||
EN-GB'><br> </span></p>
|
||
</blockquote>
|
||
|
||
</img>
|
||
|
||
<div class=Section1>
|
||
|
||
<ol style="font-family: Verdana; font-size: 8pt" start="13">
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>Right-click the name of
|
||
your project in the Solution Explorer and select <b>Properties</b>.<br>
|
||
</span><ol style="font-family: Verdana; font-size: 8pt">
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>On the Application tab,
|
||
click <b>Assembly Information</b>.<br> </span></li>
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>De-select <b>Make assembly COM-Visible</b>.<br> </span></li>
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>On the Compile tab,
|
||
</span><span style='mso-ansi-language:EN-US'>select <strong>AnyCPU</strong>
|
||
for the target CPU, de-select <strong>Prefer 32-bit</strong> and </span><span lang=EN-US style='mso-ansi-language:EN-US'>select <b>Register for COM interop</b>.<br> </span></li>
|
||
</ol></li>
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>Change your add-in to
|
||
be a Debug Add-in:<br> </span><ol style="font-family: Verdana; font-size: 8pt">
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>Right-click the name of
|
||
your project in the Solution Explorer and select <b>Properties</b>.<br> </span></li>
|
||
<li><span lang="en-us">Click the <b>Debug</b> tab.<br> </span></li>
|
||
<li><span lang="en-us">Click </span>
|
||
<span lang=EN-US style='mso-ansi-language:EN-US'><b>Start external program
|
||
</b>and<b> </b>t</span><span lang=EN-US style='mso-ansi-language:EN-US'>ype
|
||
<b>C:\Windows\System32\notepad.exe </b>in the text field.<br><br> </span></li>
|
||
</ol></li>
|
||
</ol>
|
||
|
||
</div>
|
||
<ol style="font-family: Verdana; font-size: 8pt" start="17">
|
||
<li><span lang="en-us">Right-click <b>E</b></span><b>pdm.Interop.epdm</b><span lang="en-us"> in the Solution Explorer,
|
||
select <b>Properties</b>, and set <b>Embed Interop Types</b> to <b>False</b>
|
||
to handle methods that pass arrays of structures.<br>
|
||
</span></li>
|
||
<li><span lang="en-us">If creating this add-in on a 64-bit computer, edit
|
||
</span><span lang=EN-US style='mso-ansi-language:EN-US'>
|
||
<i style='mso-bidi-font-style:
|
||
normal'>project_path</i><span style='mso-bidi-font-style:
|
||
normal; '><i>\</i></span></span><span style='mso-bidi-font-style:
|
||
normal; mso-ansi-language:EN-US' lang="EN-US"><i>project_name\</i></span><span style='mso-bidi-font-style:
|
||
normal; mso-ansi-language:EN-US' lang="EN-US"><i>project_name\</i></span><span lang="en-us"><i>project_name</i>.<b>vbproj</b>
|
||
in Notepad:<br>
|
||
</span><ol style="font-family: Verdana; font-size: 8pt">
|
||
<li><span lang="en-us">Insert the following line below <b><PropertyGroup
|
||
Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "></b> and
|
||
below <b><PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
|
||
'Release|AnyCPU' "></b>.<br>
|
||
<br>
|
||
<font face="Courier New" size="2"><PlatformTarget>AnyCPU</PlatformTarget><br>
|
||
</font></span></li>
|
||
<li><span lang="en-us">Save the file and exit Notepad.<br>
|
||
</span></li>
|
||
</ol>
|
||
|
||
</li>
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>Right-click the name of
|
||
your project in the Solution Explorer and select <b>Properties</b>.</span><span lang="en-us"><br> </span></li>
|
||
<li>On the Application tab, keep the suggested target framework or s<span lang="en-us">elect <b>.NET Framework </b></span> <b>
|
||
4.5</b><span lang="en-us"> in the Target
|
||
framework dropdown. <br>
|
||
</span></li>
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>Click <b>Build > Build
|
||
Solution</b> to build the add-in.<br>
|
||
</span></li>
|
||
<li><span lang="en-us">I</span><span lang=EN-US style='mso-ansi-language:EN-US'>nstall
|
||
the add-in as a Debug Add-in using the SOLIDWORKS PDM Professional
|
||
Administration tool: <br>
|
||
</span><ol style="font-family: Verdana; font-size: 8pt">
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>Start up the SOLIDWORKS
|
||
PDM Professional Administration tool.<br>
|
||
</span></li>
|
||
<li><span lang=EN-US style='mso-ansi-language:EN-US'>Expand the vault where
|
||
you want to install this add-in. Log in if prompted.<br>
|
||
</span></li>
|
||
<li><span lang="en-us">Right-click <b>Add-ins</b> and select <b>Debug
|
||
Add-ins</b>.<br>
|
||
</span></li>
|
||
<li><span lang="en-us">Click <b>Add Add-in</b>, browse to </span><span lang=EN-US style='mso-ansi-language:EN-US'>
|
||
<i style='mso-bidi-font-style:
|
||
normal'>project_path</i><span style='mso-bidi-font-style:
|
||
normal; '><i>\</i></span></span><span style='mso-bidi-font-style:
|
||
normal; mso-ansi-language:EN-US' lang="EN-US"><i>project_name\project_name</i><b>\bin\Debug</b>,
|
||
select <i>project_name</i><b>.dll</b>, and click <b>Open</b>.<br>
|
||
<br>
|
||
Your add-in's name, path, and class ID should appear in <b>Add-ins installed
|
||
for debugging on this machine</b>.<br>
|
||
</span></li>
|
||
<li><span lang="en-us">Click <b>OK</b>.</span><span lang=EN-US style='mso-ansi-language:EN-US'><br> </span></li>
|
||
</ol>
|
||
</li>
|
||
<li>In Microsoft Visual Studio, click <b>Debug > Start Debugging</b>
|
||
or press <b>F5</b>.<br>
|
||
</li>
|
||
<li>Click <b>File > Open</b> in Notepad.<br>
|
||
</li>
|
||
<li>Click the name of the vault where you installed your add-in.<br>
|
||
</li>
|
||
<li>Right-click inside the vault in File Explorer and select <b>VB.NET
|
||
Add-in</b>.<br>
|
||
<br>
|
||
A message box is displayed with the message <b>VB.NET Add-in</b>.<br>
|
||
</li>
|
||
<li>Click <b>OK</b> to close the message box.</li>
|
||
</ol>
|
||
<p class=MsoNormal>
|
||
<span lang=EN-US style='font-size:10.0pt;font-family:Arial;
|
||
mso-ansi-language:EN-US'>
|
||
<o:p> </o:p></span></p>
|
||
|
||
<h2><b style='mso-bidi-font-weight:normal'>
|
||
<span lang=EN-US
|
||
style='font-family:Verdana;mso-ansi-language:EN-US'>
|
||
<span style="font-size: 8pt">Complete
|
||
Source Code</span><o:p></o:p></span></b></h2>
|
||
|
||
<blockquote>
|
||
<h4>
|
||
<font color="#008000"><span style="font-family: Verdana" lang="en-gb">'</span><span style="font-family: Verdana; font-weight: 700" lang="en-gb">Class1.vb</span></font></h4>
|
||
<pre style="font-family: Courier New; font-size: 13; color: black; background: white"><span style="color:blue;">Imports</span> System.Windows.Forms
|
||
<span style="color:blue;">Imports</span> System.Runtime.InteropServices
|
||
<span style="color:blue;">Imports</span> EPDM.Interop.epdm
|
||
</pre>
|
||
<pre style="font-family: Courier New; font-size: 13; color: black; background: white"><<span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">""</span>)> _ <font color="#008000">' See step 10 above to create the GUID</font>
|
||
<<span style="color:#2b91af;">ComVisible</span>(<span style="color:blue;">True</span>)> _
|
||
<span style="color:blue;">Public</span> <span style="color:blue;">Class</span> <span style="color:#2b91af;">Class1</span>
|
||
<span style="color:blue;">Implements</span> <span style="color:#2b91af;">IEdmAddIn5</span>
|
||
|
||
<span style="color:blue;">Public</span> <span style="color:blue;">Sub</span> GetAddInInfo(<span style="color:blue;">ByRef</span> poInfo <span style="color:blue;">As</span> <span style="color:#2b91af;">EdmAddInInfo</span>, <span style="color:blue;">ByVal</span> poVault <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmVault5</span>, <span style="color:blue;">ByVal</span> poCmdMgr <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmCmdMgr5</span>) <span style="color:blue;">Implements</span> <span style="color:#2b91af;">IEdmAddIn5</span>.GetAddInInfo
|
||
<span style="color:green;">' Fill in the add-in's description</span>
|
||
poInfo.mbsAddInName = <span style="color:#a31515;">"VB.NET Add-in"</span>
|
||
poInfo.mbsCompany = <span style="color:#a31515;">"My Company"</span>
|
||
poInfo.mbsDescription = <span style="color:#a31515;">"Menu add-in that shows a message box."</span>
|
||
poInfo.mlAddInVersion = 1
|
||
|
||
<span style="color:green;">' Minimum SOLIDWORKS PDM Professional version needed for VB.NET add-ins is 6.4</span>
|
||
poInfo.mlRequiredVersionMajor = 6
|
||
poInfo.mlRequiredVersionMinor = 4
|
||
|
||
<span style="color:green;">' Register a menu command</span>
|
||
poCmdMgr.AddCmd(1, <span style="color:#a31515;">"VB.NET Add-in"</span>, <span style="color:#2b91af;">EdmMenuFlags</span>.EdmMenu_Nothing)
|
||
|
||
<span style="color:blue;">End</span> <span style="color:blue;">Sub</span>
|
||
|
||
<span style="color:blue;">Public</span> <span style="color:blue;">Sub</span> OnCmd(<span style="color:blue;">ByRef</span> poCmd <span style="color:blue;">As</span> <span style="color:#2b91af;">EdmCmd</span>, <font size="1"><span style="color:blue;" class="auto-style3">ByRef</span><span class="auto-style3"> ppoData <span style="color:blue;">As</span> <span class="auto-style2">EdmCmdData</span>[]</span></font>) <span style="color:blue;">Implements</span> <span style="color:#2b91af;">IEdmAddIn5</span>.OnCmd
|
||
|
||
<span style="color:green;">' Handle the menu command</span>
|
||
<span style="color:blue;">If</span> poCmd.meCmdType = <span style="color:#2b91af;">EdmCmdType</span>.EdmCmd_Menu <span style="color:blue;">Then</span>
|
||
<span style="color:blue;">If</span> poCmd.mlCmdID = 1 <span style="color:blue;">Then</span>
|
||
<span style="color:blue;">Dim</span> v8 <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmVault8</span>
|
||
v8 = poCmd.mpoVault
|
||
System.Windows.Forms.<span style="color:#2b91af;">MessageBox</span>.Show(v8.GetWin32Window(poCmd.mlParentWnd), <span style="color:#a31515;">"VB.NET Add-in"</span>)
|
||
<span style="color:blue;">End</span> <span style="color:blue;">If</span>
|
||
<span style="color:blue;">End</span> <span style="color:blue;">If</span>
|
||
|
||
<span style="color:blue;">End</span> <span style="color:blue;">Sub</span>
|
||
|
||
<span style="color:blue;">End</span> <span style="color:blue;">Class</span></pre>
|
||
<h4 style="font-family: Courier New; font-size: 13; background: white">
|
||
<font color="#008000">'WindowHandle.vb</font></h4>
|
||
<pre style="font-family: Courier New; font-size: 13; color: black; background: white"><span style="color:blue;">Imports</span> System.Windows.Forms
|
||
|
||
<span style="color:blue;">Public</span> <span style="color:blue;">Class</span> <span style="color:#2b91af;">WindowHandle</span>
|
||
<span style="color:blue;">Implements</span> <span style="color:#2b91af;">IWin32Window</span>
|
||
<span style="color:blue;">Private</span> mHwnd <span style="color:blue;">As</span> <span style="color:#2b91af;">IntPtr</span>
|
||
|
||
<span style="color:blue;">Public</span> <span style="color:blue;">Sub</span> <span style="color:blue;">New</span>(<span style="color:blue;">ByVal</span> hWnd <span style="color:blue;">As</span> <span style="color:blue;">Integer</span>)
|
||
mHwnd = <span style="color:blue;">New</span> <span style="color:#2b91af;">IntPtr</span>(hWnd)
|
||
<span style="color:blue;">End</span> <span style="color:blue;">Sub</span>
|
||
<span style="color:blue;">Public</span> <span style="color:blue;">ReadOnly</span> <span style="color:blue;">Property</span> Handle() <span style="color:blue;">As</span> <span style="color:#2b91af;">IntPtr</span> <span style="color:blue;">Implements</span> System.Windows.Forms.<span style="color:#2b91af;">IWin32Window</span>.Handle
|
||
<span style="color:blue;">Get</span>
|
||
<span style="color:blue;">Return</span> mHwnd
|
||
<span style="color:blue;">End</span> <span style="color:blue;">Get</span>
|
||
<span style="color:blue;">End</span> <span style="color:blue;">Property</span>
|
||
<span style="color:blue;">End</span> <span style="color:blue;">Class</span></pre>
|
||
<p style="font-family: Courier New; font-size: 13; background: white"> </p>
|
||
</blockquote>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
|
||
</html>
|