Files
pdm/documentation/api_extracted/StandAloneAppCSharp.htm

217 lines
14 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>Stand-alone Applications (C#)</title>
<meta name=MS-HKWD content="Stand-alone applications">
<meta name=MS-HKWD content="Stand-alone applications, 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 type="text/css">
.auto-style1 {
font-family: Verdana;
}
</style>
</head>
<h1><span style="font-weight: normal; font-size: 7.5pt;">SOLIDWORKS PDM Professional API Help</span></h1>
<h1>Stand-alone Applications (C#)</h1>
<body bgcolor=white lang=SV link=blue vlink=purple style='tab-interval:65.2pt'>
<div class=Section1>
<p style='margin-bottom:12.0pt'>
This topic describes how to create a C# stand-alone application that logs into
a SOLIDWORKS PDM Professional file vault and lists the files in the root folder. </p>
<ol>
<li class=kadov-p>
<p style='margin-bottom:12.0pt'>
Start up Microsoft Visual Studio.</p></li>
<li class=kadov-p>
<p style='margin-bottom:12.0pt'>
Click <b>File &gt; New &gt; Project</b> &gt; <b>Visual C# &gt; Windows Forms App
(.NET Framework)</b>.</p>
<ol type="a">
<li>
<p style='margin-bottom:12.0pt'>Type <b>StandaloneApplicationCSharp</b> in <b>Name</b>.</p>
</li>
<li>
<p style='margin-bottom:12.0pt'>Click <b>Browse</b> and navigate to the folder where to create the
project.</p></li>
<li>
<p style='margin-bottom:12.0pt'>Click <b>OK</b>.</p></li>
<li>
<p style='margin-bottom:12.0pt'>Right-click the name of your project in the Solution Explorer and select
<b>Add Reference</b>
to add the SOLIDWORKS PDM Professional primary assembly interop to your project. </p>
<div class="Section1">
<ol>
<li><font style="FONT-SIZE: 8pt" face="Verdana">Browse to the top
folder of your SOLIDWORKS PDM Professional installation.</font> <br>
&nbsp;</li>
<li><font style="FONT-SIZE: 8pt" face="Verdana">Locate and click <b>
EPDM.Interop.epdm.dll</b>.<br>
</font>&nbsp;</li>
<li><font style="FONT-SIZE: 8pt" face="Verdana">Click <b>Open.</b></font>
<br>
&nbsp;</li>
<li><font style="FONT-SIZE: 8pt" face="Verdana">Click <b>Add.</b></font>
<br>
&nbsp;</li>
<li><font style="FONT-SIZE: 8pt" face="Verdana">Click <b>Close</b>.<br></font></li>
</ol>
</div>
</li>
</ol>
</li>
<li class=kadov-p>
<p style='margin-bottom:12.0pt'>
<span class="auto-style1">C</span><span style="font-family: Verdana" lang="en-us">hange the
version of the .NET Framework and the </span>
<span style="font-family: Verdana">platform </span>
<span style="font-family: Verdana" lang="en-us">target.</span></p>
<ol>
<li type="a"><font style="FONT-SIZE: 8pt" face="Verdana">Click <b>Project &gt;</b>
</font><b>StandaloneApplicationCSharp</b><font style="FONT-SIZE: 8pt" face="Verdana">
<b>Properties &gt; Build</b> and set <b>Platform target </b>to<b> Any CPU</b>.<b><br>
&nbsp;</b></font></li>
<li type="a"><font style="FONT-SIZE: 8pt" face="Verdana">Click <b>Application</b>
and keep suggested <b>Target framework</b> or change it to <b>.NET Framework 4.5
</b>(or later).<br></font></li>
<li type="a"><span class="auto-style1">De-select <strong>Prefer 32-bit</strong>.</span><font style="FONT-SIZE: 8pt" face="Verdana"><b><br>
&nbsp;</b></font></li>
<li type="a"><font style="FONT-SIZE: 8pt" face="Verdana">Click <b>Yes</b>.<b><br>&nbsp;</b></font></li>
</ol>
</li>
<li class=kadov-p>
<p style='margin-bottom:12.0pt'>
<span style="font-family: Verdana" lang="en-us">Right-click <b>Form1.cs</b>
in the Solution Explorer and click <b>View Designer</b>.</span></p>
</li>
<li class=kadov-p>
<p style='margin-bottom:12.0pt'>
<span style="font-family: Verdana" lang="en-us">Click <b>View &gt; Toolbox</b>.</span></p>
</li>
<li class=kadov-p>
<p style='margin-bottom:12.0pt'>
<span style="font-family: Verdana" lang="en-us">Drag </span><span lang=EN-US
style='font-family:Verdana'> a button from the Toolbox onto the form.</span></p>
</li>
<li class=kadov-p>
<p style='margin-bottom:12.0pt'><span lang="en-us">Double-click the button
to open <b>Form1.cs </b>and replace all of the code in the code window with</span><span lang=EN-US> the following
code. </span></p></li>
</ol>
<blockquote>
<pre style="font-family: Courier New; font-size: 13; color: black; background: white"><span style="color:blue;">using</span>&nbsp;System;
<span style="color:blue;">using</span>&nbsp;System.Collections.Generic;
<span style="color:blue;">using</span>&nbsp;System.ComponentModel;
<span style="color:blue;">using</span>&nbsp;System.Data;
<span style="color:blue;">using</span>&nbsp;System.Drawing;
<span style="color:blue;">using</span>&nbsp;System.Linq;
<span style="color:blue;">using</span>&nbsp;System;
<span style="color:blue;">using</span>&nbsp;System.Windows.Forms;
<span style="color:blue;">using</span>&nbsp;EPDM.Interop.epdm;
<span style="color:blue;">namespace</span>&nbsp;StandaloneApplicationCSharp
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">partial</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">Form1</span>&nbsp;:&nbsp;<span style="color:#2b91af;">Form</span>
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;Form1()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitializeComponent();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">private</span>&nbsp;<span style="color:blue;">void</span>&nbsp;button1_Click(System.<span style="color:#2b91af;">Object</span>&nbsp;sender,&nbsp;System.<span style="color:#2b91af;">EventArgs</span>&nbsp;e)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">try</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Create&nbsp;a&nbsp;file&nbsp;vault&nbsp;interface&nbsp;and&nbsp;log&nbsp;into&nbsp;a&nbsp;vault</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IEdmVault5</span>&nbsp;vault&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">EdmVault5</span>();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vault.LoginAuto(<span style="color:#a31515;">&quot;<i>MyVaultName</i>&quot;</span>,&nbsp;<span style="color:blue;">this</span>.Handle.ToInt32());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Get&nbsp;the&nbsp;vault's&nbsp;root&nbsp;folder&nbsp;interface</span>
&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:#a31515;">&quot;&quot;</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IEdmFile5</span>&nbsp;file&nbsp;=&nbsp;<span style="color:blue;">null</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IEdmFolder5</span>&nbsp;folder&nbsp;=&nbsp;<span style="color:blue;">null</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;folder&nbsp;=&nbsp;vault.RootFolder;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Get&nbsp;position&nbsp;of&nbsp;first&nbsp;file&nbsp;in&nbsp;the&nbsp;root&nbsp;folder</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IEdmPos5</span>&nbsp;pos&nbsp;=&nbsp;<span style="color:blue;">null</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos&nbsp;=&nbsp;folder.GetFirstFilePosition();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(pos.IsNull)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;(<span style="color:#a31515;">&quot;The&nbsp;root&nbsp;folder&nbsp;of&nbsp;your&nbsp;vault&nbsp;does&nbsp;not&nbsp;contain&nbsp;any&nbsp;files.&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">MessageBox</span>.Show(message);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;(<span style="color:#a31515;">&quot;The&nbsp;root&nbsp;folder&nbsp;of&nbsp;your&nbsp;vault&nbsp;contains&nbsp;these&nbsp;files:&nbsp;&quot;</span>&nbsp;+&nbsp;<span style="color:#a31515;">&quot;\n&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">while</span>&nbsp;(!pos.IsNull)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file&nbsp;=&nbsp;folder.GetNextFile(pos);
&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;file.Name&nbsp;+&nbsp;<span style="color:#a31515;">&quot;\n&quot;</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Show&nbsp;the&nbsp;names&nbsp;of&nbsp;all&nbsp;files&nbsp;in&nbsp;the&nbsp;root&nbsp;folder</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">MessageBox</span>.Show(message);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">catch</span>&nbsp;(System.Runtime.InteropServices.<span style="color:#2b91af;">COMException</span>&nbsp;ex)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;HRESULT&nbsp;=&nbsp;0x&quot;</span>&nbsp;+&nbsp;ex.ErrorCode.ToString(<span style="color:#a31515;">&quot;X&quot;</span>)&nbsp;+&nbsp;<span style="color:#a31515;">&quot;\n&quot;</span>&nbsp;+&nbsp;ex.Message);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">catch</span>&nbsp;(<span style="color:#2b91af;">Exception</span>&nbsp;ex)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">MessageBox</span>.Show(ex.Message);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}
</pre>
</blockquote>
<ol style="font-family: Verdana; font-size: 8pt" start="8">
<li>
<p class="APICODE" style="line-height: 11.3pt"><span lang="en-us">
<font face="Verdana" style="font-size: 8pt">Replace </font><i>
<font face="Courier New" color="#A31515" size="2">MyVaultName</font></i><font face="Verdana" style="font-size: 8pt"> in
the code with the name of a SOLIDWORKS PDM Professional vault on your
computer.</font></span></li>
<li>
<p class="APICODE" style="line-height: 11.3pt"><span lang="en-us">
<font face="Verdana" style="font-size: 8pt">Click <b>Debug &gt;
Start Debugging</b> or press <b>F5</b>.</font></span><ol style="font-family: Verdana; font-size: 8pt" type="a">
<li>
<p class="APICODE" style="line-height: 11.3pt"><span lang="en-us">
<font face="Verdana" style="font-size: 8pt">Click <b>Button1</b> on the
form.<br><br>A message box is displayed that either contains the names of
the files in the root folder of the specified vault or informs you that the
root folder of the specified vault does not contain any files.</font></span></li>
<li>
<p class="APICODE" style="line-height: 11.3pt"><span lang="en-us">
<font face="Verdana" style="font-size: 8pt">Close the form.</font></span></li>
</ol></li>
<li>
<p class="APICODE" style="line-height: 11.3pt"><span lang="en-us">
<font face="Verdana" style="font-size: 8pt">Click <b>File &gt; Save All</b>.</font></span></li>
</ol>
<h2 style='background:white'>
<span lang=EN-GB style='font-family:Verdana;mso-ansi-language:EN-GB'><o:p>&nbsp;See
Also</o:p></span></h2>
<p style='background:white'><a href="StandAloneApp.htm">Stand-alone Applications
(VB.NET)</a></p>
<p style='background:white'><a href="StandAloneAppCpp.htm">Stand-alone Applications (C++)</a></p>
</div>
</body>
</html>