Initial Commit of the PDM project (ready for DWS migration)
This commit is contained in:
508
documentation/api_extracted/DotNetAddIns.htm
Normal file
508
documentation/api_extracted/DotNetAddIns.htm
Normal file
@@ -0,0 +1,508 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user