Files
pdm/documentation/api_extracted/csharpmenuitem.htm

403 lines
36 KiB
HTML

<html>
<head>
<title>Creating Menu Commands (C#)</title>
<meta name=MS-HKWD content="C# add-ins, menu items">
<meta name=MS-HKWD content="Add-ins, C#">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" type="text/css" href="ApiHelp.css">
<style>
<!--
div.Section1
{page:Section1;}
.auto-style2 {
color: #2B91AF;
}
-->
</style>
</head>
<body>
<h1><span style="font-weight: normal; font-size: 7.5pt;">SOLIDWORKS PDM Professional API Help</span></h1>
<h1>Creating Menu Commands (C#)</h1>
<div class=Section1>
<p style='margin:0in;margin-bottom:.0001pt'>
<span lang=EN-US style='font-family:Verdana'>This topic shows how to create a C#
add-in that adds menu commands to the context-sensitive menus of
File Explorer vault views. <br>
<br>
</span><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 .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>
<p style='margin:0in;margin-bottom:.0001pt'>&nbsp;</p>
<ol style="font-family: Verdana; font-size: 8pt">
<li>
<p style='margin:0in;margin-bottom:.0001pt'>
<span lang=EN-GB
style='mso-ansi-language:EN-GB'>Start Microsoft Visual Studio.<br>
&nbsp;</span></p></li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'>
<span lang=EN-GB
style='mso-ansi-language:EN-GB'>Click <b>File &gt;</b> <strong>New &gt;</strong><span style="font-family: Arial">
</span></span><font face="Verdana">
<strong>
<span lang=EN-GB
style='mso-ansi-language:EN-GB'>Project &gt; Visual C# &gt; Windows<span lang="en-us">
Desktop</span> &gt; Class Library</span><span
style='mso-ansi-language:EN-GB'> (.NET Framework)</span></strong><span lang=EN-GB
style='mso-ansi-language:EN-GB'>.
<br>
&nbsp;</span></font></p>
</li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'>
<span lang="en-gb"><font face="Verdana">In the <b>.NET Framework</b> dropdown at the top of the
New Project dialog, keep the default version (recommended) or select another
version. See <a href="Using_NET_Framework_in_Addins.htm">Using .NET
Framework for Add-in Applications</a> for more information.<br>
&nbsp;</font></span></p>
</li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'><font face="Verdana">
<span lang=EN-GB
style='mso-ansi-language:EN-GB'>Type a project name in <b>Name.<br>
&nbsp;</b></span></font></p></li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'><span lang="en-gb">
<font face="Verdana">Click <b>Browse</b> and navigate to the folder where to
create the project.<br>
&nbsp;</font></span></p></li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'><span lang="en-gb">
<font face="Verdana">C</font></span><font face="Verdana"><span lang=EN-GB
style='mso-ansi-language:EN-GB'>lick <b>OK</b>.<br>
&nbsp;</span></font></p></li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'><span lang="en-gb">
<font face="Verdana">Right-click the project name in the Solution Explorer
and click <b>Add Reference</b>.<br>
&nbsp;</font></span></p>
<ol style="font-family: Verdana; font-size: 8pt">
<li>
<p style='margin:0in;margin-bottom:.0001pt'>
<font face="Verdana">
<span lang=EN-GB
style='mso-ansi-language:EN-GB'>Click <b><span lang="en-us">Browse</span> </b>in
the left-side panel, <span lang="en-us">navigate to and select</span><b> </b></span>
<span
style='mso-ansi-language:EN-GB'><strong>EPDM.Interop.epdm.dll</strong></span><span lang=EN-GB
style='mso-ansi-language:EN-GB'>, and click
<span lang="en-us"><strong>OK</strong></span>.<br></span></font></p>
</li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'>
<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.</span><font face="Verdana"><span lang=EN-GB
style='mso-ansi-language:EN-GB'><br>
&nbsp;</span></font></p></li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'>
<span lang=EN-GB
style='mso-ansi-language:EN-GB'><font face="Verdana">Click <b>Assemblies &gt; Framework</b> in the left-hand panel,
select
<b>System.Windows.Forms</b>, and click <strong>OK</strong>. <br>
&nbsp;</font></span></p></li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'><span lang="en-gb">
<font face="Verdana">Click <b>Close</b>.<br>
&nbsp;</font></span></p></li>
</ol></li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'><span lang="en-gb">
<font face="Verdana">Right-click the project name in the Solution Explorer
and click <b>Properties</b>.<br>
&nbsp;</font></span></p>
<ol style="font-family: Verdana; font-size: 8pt">
<li>
<p style='margin:0in;margin-bottom:.0001pt'><span lang="en-gb">
<font face="Verdana">On the Application tab, click <b>Assembly Information</b>.
<br>
&nbsp;</font></span></p></li>
<li>
<p style='margin:0in;margin-bottom:.0001pt'><span lang="en-gb">
<font face="Verdana">De-select </font></span>
<span lang=EN-GB
style='mso-ansi-language:EN-GB'><font face="Verdana"><strong>Make assembly COM-Visible</strong><b>.<br>
&nbsp;</b></font></span></p></li>
<li>
<h4 style='margin:0in;margin-bottom:.0001pt' align="left">
<span style="font-weight: 400" lang="en-gb">On the
</span>
<span style="font-weight: 400">Build</span><span style="font-weight: 400" lang="en-gb"> tab,
</span>
<span style="font-weight: 400">select <strong>Any CPU</strong> for
Platform target, de-select <strong>Prefer 32-bit</strong>, and
</span>
<span style="font-weight: 400" lang="en-gb">select
</span><span lang="en-gb">Register for COM interop</span><span style="font-weight: 400" lang="en-gb">.<br>
&nbsp;</span></h4></li>
</ol>
<li>
<p style='margin:0in;margin-bottom:.0001pt' align="left">Save the project.</p></li>
<p style='margin:0in;margin-bottom:.0001pt'>&nbsp;</p>
</li>
<li>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<font face="Verdana">Double-click <b>Class1.cs</b> in the Solution Explorer
to open the code window.<br>&nbsp;</font></p></li>
<li>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<font face="Verdana">At the top of the code window, type:<br>&nbsp;</font></p>
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
<font face="Courier New"><span style="color:blue;">using</span>&nbsp;EPDM.Interop.epdm;<br>
<span style="color:blue;"><font size="2">using</font></span><font size="2">&nbsp;System.Runtime.InteropServices;<br>
<font color="#0000FF" size="2" face="Courier New">using</font> System.Windows.Forms;</font></font><br><br>&nbsp;</li>
<li>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<font face="Verdana">Replace<b>: </b></font></p>
<pre style="font-family: Courier New; font-size: 13; color: black; background: white"><span style="color:blue;">public</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">Class1</span></pre>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<font face="Verdana"><b>&nbsp;</b>with:<br>&nbsp;</font></p>
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
[<span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;&quot;</span>),
<span style="color:#2b91af;">ComVisible</span>(<span style="color: #0000FF">t</span><span style="color:blue;">rue</span>)]<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
<font face="Courier New"><span style="color:blue;">public</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">Class1</span>&nbsp;:&nbsp;<span style="color:#2b91af;">IEdmAddIn5</span></font><br>&nbsp;</li>
<li>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>To populate the GUID
attribute above, click <b>Tools &gt; Create GUID</b> in the IDE, select GUID
Format 5, click <b>Copy</b>, and click <b>Exit</b>. Populate [<span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;&quot;</span>),
...] with the copied string.<br>&nbsp;</p>
</li>
<li>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>Implement
<a href="EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~GetAddInInfo.html">IEdmAddIn5::GetAddInInfo</a>
<span style='font-family:Verdana;mso-ansi-language:
SV'>by adding the following code to Class1</span><span lang=SV style='font-family:Verdana;mso-ansi-language:
SV'>:</span><span
lang=SV style='mso-ansi-language:SV'><o:p></o:p></span></p></li>
<blockquote>
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
<span style="color:blue;"><font face="Courier New">public</font></span><font face="Courier New">&nbsp;<span style="color:blue;">void</span>&nbsp;GetAddInInfo(<span style="color:blue;">ref</span>&nbsp;<span style="color:#2b91af;">EdmAddInInfo</span>&nbsp;poInfo,&nbsp;<span style="color:#2b91af;">IEdmVault5</span>&nbsp;poVault,&nbsp;<span style="color:#2b91af;">IEdmCmdMgr5</span>&nbsp;poCmdMgr)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Specify
information&nbsp;to
display in&nbsp;the&nbsp;add-in's&nbsp;Properties dialog&nbsp;box&nbsp;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mbsAddInName&nbsp;=&nbsp;<span style="color:#a31515;">&quot;Menu&nbsp;command&nbsp;sample&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mbsCompany&nbsp;=&nbsp;<span style="color:#a31515;">&quot;SOLIDWORKS&nbsp;Corporation&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mbsDescription&nbsp;=&nbsp;<span style="color:#a31515;">&quot;Adds&nbsp;menu&nbsp;command&nbsp;items&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mlAddInVersion&nbsp;=&nbsp;1;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="color: #008000; background-position: 0 0">//Specify the
minimum required version of SOLIDWORKS</span><span style="color: green">&nbsp;PDM
Professional</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mlRequiredVersionMajor&nbsp;=&nbsp;5;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mlRequiredVersionMinor&nbsp;=&nbsp;2;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Register
menu&nbsp;commands; SOLIDWORKS PDM Professional passes command IDs,&nbsp;1000&nbsp;and&nbsp;1001,&nbsp;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//to&nbsp;</span><span style="color:green;">IEdmAddIn5::OnCmd&nbsp;to&nbsp;indicate&nbsp;which&nbsp;command&nbsp;the
user selects</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poCmdMgr.AddCmd(1000,&nbsp;<span style="color:#a31515;">&quot;First&nbsp;command&quot;</span>,&nbsp;(<span style="color:blue;">int</span>)<span style="color:#2b91af;">EdmMenuFlags</span>.EdmMenu_Nothing,&nbsp;<span style="color:#a31515;">&quot;This&nbsp;is&nbsp;the&nbsp;first&nbsp;command&quot;</span>,&nbsp;<span style="color:#a31515;">&quot;First&nbsp;command&quot;</span>,&nbsp;0,&nbsp;99);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poCmdMgr.AddCmd(1001,&nbsp;<span style="color:#a31515;">&quot;Second&nbsp;command&quot;</span>,&nbsp;(<span style="color:blue;">int</span>)<span style="color:#2b91af;">EdmMenuFlags</span>.EdmMenu_MustHaveSelection,&nbsp;<span style="color:#a31515;">&quot;This&nbsp;is&nbsp;the&nbsp;second&nbsp;command&quot;</span>,&nbsp;<span style="color:#a31515;">&quot;Second&nbsp;command&quot;</span>,&nbsp;1,&nbsp;99);<br>}</font></p>
<p class=MsoNormal>
<span lang=EN-GB
style='font-family:Verdana;mso-ansi-language:EN-GB'>The flag</span><font face="Verdana"><span lang=EN-GB style='mso-ansi-language:EN-GB'>
</span></font>
<span
lang=EN-GB style='font-family:Verdana;mso-ansi-language:EN-GB'>
<a style="text-decoration: underline" href="EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuFlags.html">EdmMenuFlags.EdmMenu_MustHaveSelection</a></span><font face="Verdana"><span
lang=SV style='mso-ansi-language:EN-GB'> </span></font>
<span lang=EN-GB
style='font-family:Verdana;mso-ansi-language:EN-GB'>means that
the second command is only available if the user has selected one or more
files or folders.</span></p>
</blockquote>
<li>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<span lang=EN-GB
style='font-family:Verdana;mso-ansi-language:EN-GB'>
<a href="EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~OnCmd.html">IEdmAddIn5::OnCmd</a>
is called when a menu command is selected by the user. </span>
<span
style='font-family:Verdana;mso-ansi-language:EN-GB'>
Implement </span>
<span lang=EN-GB
style='font-family:Verdana;mso-ansi-language:EN-GB'>
IEdmAddIn5::OnCmd </span>
<span
style='font-family:Verdana;mso-ansi-language:EN-GB'>
by adding</span><span lang=EN-GB
style='font-family:Verdana;mso-ansi-language:EN-GB'>
the following code</span><span
style='font-family:Verdana;mso-ansi-language:EN-GB'> to Class1</span><span lang=EN-GB
style='font-family:Verdana;mso-ansi-language:EN-GB'>:</span>
<br>&nbsp;</li>
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
<span style="color:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font face="Courier New">public</font></span><font face="Courier New">&nbsp;<span style="color:blue;">void</span>&nbsp;OnCmd(<span style="color:blue;">ref</span>&nbsp;<span style="color:#2b91af;">EdmCmd</span>&nbsp;poCmd,&nbsp;<span style="color:blue;">ref</span>&nbsp;<span class="auto-style2">EdmCmdData</span>[]&nbsp;ppoData)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Handle
the menu command</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;CommandName&nbsp;=&nbsp;<span style="color:blue;">null</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(poCmd.mlCmdID&nbsp;==&nbsp;1000)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CommandName&nbsp;=&nbsp;<span style="color:#a31515;">&quot;The&nbsp;first&nbsp;command.&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CommandName&nbsp;=&nbsp;<span style="color:#a31515;">&quot;The&nbsp;second&nbsp;command.&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Retrieve&nbsp;the&nbsp;bounds&nbsp;of&nbsp;the&nbsp;array&nbsp;containing&nbsp;the&nbsp;selected&nbsp;files&nbsp;and&nbsp;folders&nbsp;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">int</span>&nbsp;index&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">int</span>&nbsp;last&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;=&nbsp;ppoData.GetLowerBound(0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last&nbsp;=&nbsp;ppoData.GetUpperBound(0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;StrID&nbsp;=&nbsp;<span style="color:blue;">null</span>;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Create&nbsp;a&nbsp;message&nbsp;showing&nbsp;the&nbsp;names&nbsp;and&nbsp;IDs&nbsp;of&nbsp;all&nbsp;selected&nbsp;files&nbsp;and&nbsp;folders&nbsp;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;message&nbsp;=&nbsp;<span style="color:blue;">null</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;<span style="color:#a31515;">&quot;You&nbsp;have&nbsp;selected&nbsp;the&nbsp;following&nbsp;files&nbsp;and&nbsp;folders:&nbsp;&quot;</span>&nbsp;+&nbsp;&quot;\r\n&quot;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">while</span>&nbsp;(index&nbsp;&lt;=&nbsp;last)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(((<span style="color:#2b91af;">EdmCmdData</span>)ppoData.GetValue(index)).mlObjectID1&nbsp;==&nbsp;0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;<span style="color:#a31515;">&quot;Folder:&nbsp;(ID=&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StrID&nbsp;=&nbsp;((<span style="color:#2b91af;">EdmCmdData</span>)ppoData.GetValue(index)).mlObjectID2.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;StrID&nbsp;+&nbsp;<span style="color:#a31515;">&quot;)&nbsp;&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;<span style="color:#a31515;">&quot;File:&nbsp;(ID=&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StrID&nbsp;=&nbsp;((<span style="color:#2b91af;">EdmCmdData</span>)ppoData.GetValue(index)).mlObjectID1.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;StrID&nbsp;+&nbsp;<span style="color:#a31515;">&quot;)&nbsp;&quot;</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;((<span style="color:#2b91af;">EdmCmdData</span>)ppoData.GetValue(index)).mbsStrData1&nbsp;+&nbsp;&quot;\r\n&quot;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;=&nbsp;index&nbsp;+&nbsp;1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Display&nbsp;the&nbsp;message</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">EdmVault5</span>&nbsp;v&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">EdmVault5</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v&nbsp;=&nbsp;(<span style="color:#2b91af;">EdmVault5</span>)poCmd.mpoVault;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v.MsgBox(poCmd.mlParentWnd,&nbsp;message,&nbsp;<span style="color:#2b91af;">EdmMBoxType</span>.EdmMbt_OKOnly,&nbsp;CommandName);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<blockquote><span
style='font-size:10.0pt;font-family:Arial'>
<o:p></o:p></span></p>
</blockquote>
<li>
<p class=MsoNormal style='line-height:11.3pt'>
<span lang=EN-US style='mso-ansi-language:EN-US'>Click <b>Build &gt; Build
Solution</b> to build the add-in.</span></p></li>
<li><span lang="en-us">I</span><span lang=EN-US style='mso-ansi-language:EN-US'>nstall
the add-in through the SOLIDWORKS PDM Professional
Administration tool: <br>&nbsp;</span><ol style="font-family: Verdana; font-size: 8pt">
<li><span lang="en-us">Open</span><span lang=EN-US style='mso-ansi-language:EN-US'> the SOLIDWORKS
PDM Professional Administration tool.<br>&nbsp;</span></li>
<li><span lang=EN-US style='mso-ansi-language:EN-US'>Expand the vault where
you want to install this add-in and log in as Admin.<br>&nbsp;</span></li>
<li><span lang="en-us">Right-click <b>Add-ins</b> and click <b>New
Add-in</b>.<b><br>
&nbsp;</b></span></li>
<li>B<span lang="en-us">rowse 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>,
click <i>project_name</i><b>.dll</b> and <strong>EPDM.Interop.</strong>e<b>pdm.dll</b>.<br>&nbsp;</span></li>
<li><span lang="en-us">Click <b>Open</b>.<br>
&nbsp;</span></li>
<li>Click <b>OK</b>.<br>
&nbsp;</li>
<li>Click <b>OK</b>.</li>
</ol>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<span lang=EN-GB
style='font-family:Verdana;mso-ansi-language:EN-GB'><br></span>
<span lang=EN-GB
style='mso-ansi-language:EN-GB'>&nbsp;</span><span style='font-size:10.0pt;
font-family:Arial'><o:p></o:p></span></p></li>
<li>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<span lang="en-gb"><font face="Verdana">Right-click inside a vault view in
File Explorer. <b>First command</b></font></span><font face="Verdana"><span lang=EN-GB
style='mso-ansi-language:EN-GB'> appears in the context-sensitive
menu. <br>
&nbsp;</span></font></p>
</li>
<li>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<span style="font-family: Verdana" lang="en-gb">Right-click a file in
the</span><span lang=EN-GB
style='font-family:Verdana;mso-ansi-language:EN-GB'> vault view and click <b>Second
command</b>. The add-in displays a dialog similar to the following:</span></p>
</li>
</ol>
<blockquote>
<p class=section1 style='margin:0in;margin-bottom:.0001pt'>
<span lang=EN-GB
style='mso-ansi-language:EN-GB'>&nbsp;<img border="0" src="SecondCommand.gif" width="326" height="169"><br>
<br>
&nbsp;</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><span style="font-family: Verdana; font-weight: 700" lang="en-gb">
<font color="#008000">// Class1.cs</font><br>
&nbsp;</span></h4>
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
<span style="color:blue;">using</span>&nbsp;System;<br>
<span style="color:blue;">using</span>&nbsp;System.Collections.Generic;<br>
<span style="color:blue;">using</span>&nbsp;System.Text;<br>
<span style="color:blue;">using</span>&nbsp;EPDM.Interop.epdm;<br>
<font face="Courier New">
<span style="color:blue;"><font size="2">using</font></span><font size="2">&nbsp;System.Runtime.InteropServices;</font></font><br>
&nbsp;<br>
&nbsp;<br>
<span style="color:blue;">namespace</span>&nbsp;CreateMenuCommand_CSharp<br>
{</p>
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
<font face="Courier New" size="2">&nbsp;&nbsp;&nbsp; </font>[<font face="Courier New" size="2"><span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;&quot;</span>),
<span style="color:#2b91af;">ComVisible</span>(<span style="color: #0000FF">t</span><span style="color:blue;">rue</span>)]&nbsp;&nbsp;&nbsp;
<font color="#008000">// See step 13 above to create the GUID</font></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">Class1</span>&nbsp;:&nbsp;<span style="color:#2b91af;">IEdmAddIn5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;{<br>
<span style="color:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#region</span>&nbsp;IEdmAddIn5&nbsp;Members<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;GetAddInInfo(<span style="color:blue;">ref</span>&nbsp;<span style="color:#2b91af;">EdmAddInInfo</span>&nbsp;poInfo,&nbsp;<span style="color:#2b91af;">IEdmVault5</span>&nbsp;poVault,&nbsp;<span style="color:#2b91af;">IEdmCmdMgr5</span>&nbsp;poCmdMgr)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">&nbsp;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mbsAddInName&nbsp;=&nbsp;<span style="color:#a31515;">&quot;Menu&nbsp;command&nbsp;sample&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mbsCompany&nbsp;=&nbsp;<span style="color:#a31515;">&quot;SOLIDWORKS&nbsp;Corporation&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mbsDescription&nbsp;=&nbsp;<span style="color:#a31515;">&quot;Adds&nbsp;menu&nbsp;command&nbsp;items&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mlAddInVersion&nbsp;=&nbsp;1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mlRequiredVersionMajor&nbsp;=&nbsp;5;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poInfo.mlRequiredVersionMinor&nbsp;=&nbsp;2;<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poCmdMgr.AddCmd(1000,&nbsp;<span style="color:#a31515;">&quot;First&nbsp;command&quot;</span>,&nbsp;(<span style="color:blue;">int</span>)<span style="color:#2b91af;">EdmMenuFlags</span>.EdmMenu_Nothing,&nbsp;<span style="color:#a31515;">&quot;This&nbsp;is&nbsp;the&nbsp;first&nbsp;command&quot;</span>,&nbsp;<span style="color:#a31515;">&quot;First&nbsp;command&quot;</span>,&nbsp;0,&nbsp;99);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poCmdMgr.AddCmd(1001,&nbsp;<span style="color:#a31515;">&quot;Second&nbsp;command&quot;</span>,&nbsp;(<span style="color:blue;">int</span>)<span style="color:#2b91af;">EdmMenuFlags</span>.EdmMenu_MustHaveSelection,&nbsp;<span style="color:#a31515;">&quot;This&nbsp;is&nbsp;the&nbsp;second&nbsp;command&quot;</span>,&nbsp;<span style="color:#a31515;">&quot;Second&nbsp;command&quot;</span>,&nbsp;1,&nbsp;99);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;OnCmd(<span style="color:blue;">ref</span>&nbsp;<span style="color:#2b91af;">EdmCmd</span>&nbsp;poCmd,&nbsp;<span style="color:blue;">ref</span>&nbsp;<span class="auto-style2">EdmCmdData</span>[]&nbsp;ppoData)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;CommandName&nbsp;=&nbsp;<span style="color:blue;">null</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(poCmd.mlCmdID&nbsp;==&nbsp;1000)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CommandName&nbsp;=&nbsp;<span style="color:#a31515;">&quot;The&nbsp;first&nbsp;command.&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">else</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CommandName&nbsp;=&nbsp;<span style="color:#a31515;">&quot;The&nbsp;second&nbsp;command.&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">&nbsp;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">int</span>&nbsp;index&nbsp;=&nbsp;0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">int</span>&nbsp;last&nbsp;=&nbsp;0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font face="Courier New">index&nbsp;=&nbsp;ppoData.GetLowerBound(0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last&nbsp;=&nbsp;ppoData.GetUpperBound(0);</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;StrID&nbsp;=&nbsp;<span style="color:blue;">null</span>;<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">&nbsp;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;message&nbsp;=&nbsp;<span style="color:blue;">null</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;<span style="color:#a31515;">&quot;You&nbsp;have&nbsp;selected&nbsp;the&nbsp;following&nbsp;files&nbsp;and&nbsp;folders:&nbsp;&quot;</span>&nbsp;+&nbsp;<font face="Courier New">&quot;\r\n&quot;</font>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">while</span>&nbsp;(index&nbsp;&lt;=&nbsp;last)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(((<span style="color:#2b91af;">EdmCmdData</span>)ppoData.GetValue(index)).mlObjectID1&nbsp;==&nbsp;0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;<span style="color:#a31515;">&quot;Folder:&nbsp;(ID=&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StrID&nbsp;=&nbsp;((<span style="color:#2b91af;">EdmCmdData</span>)ppoData.GetValue(index)).mlObjectID2.ToString();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;StrID&nbsp;+&nbsp;<span style="color:#a31515;">&quot;)&nbsp;&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">else</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;<span style="color:#a31515;">&quot;File:&nbsp;(ID=&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StrID&nbsp;=&nbsp;((<span style="color:#2b91af;">EdmCmdData</span>)ppoData.GetValue(index)).mlObjectID1.ToString();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;StrID&nbsp;+&nbsp;<span style="color:#a31515;">&quot;)&nbsp;&quot;</span>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;message&nbsp;+&nbsp;((<span style="color:#2b91af;">EdmCmdData</span>)ppoData.GetValue(index)).mbsStrData1&nbsp;+&nbsp;<font face="Courier New">&quot;\r\n&quot;</font>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;=&nbsp;index&nbsp;+&nbsp;1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">EdmVault5</span>&nbsp;v&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">EdmVault5</span>);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v&nbsp;=&nbsp;(<span style="color:#2b91af;">EdmVault5</span>)poCmd.mpoVault;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v.MsgBox(poCmd.mlParentWnd,&nbsp;message,&nbsp;<span style="color:#2b91af;">EdmMBoxType</span>.EdmMbt_OKOnly,&nbsp;CommandName);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;<br>
<span style="color:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
}</p>
<p class="APICODE">&nbsp;</p>
</blockquote>
</blockquote>
</div>
</body>
</html>