Initial Commit of the PDM project (ready for DWS migration)
This commit is contained in:
289
documentation/api_extracted/Create_New_Vault_Example_CSharp.htm
Normal file
289
documentation/api_extracted/Create_New_Vault_Example_CSharp.htm
Normal file
@@ -0,0 +1,289 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Create New Vault Example (C#)</title>
|
||||
<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">
|
||||
</head>
|
||||
<meta name=MS-HKWD content="C# examples,vaults">
|
||||
<meta name=MS-HKWD content="C# examples,logins">
|
||||
<body>
|
||||
<h1><span style="font-weight: normal; font-size: 7.5pt;">SOLIDWORKS PDM Professional API Help</span></h1>
|
||||
<h1>Create New Vault Example (C#)</h1>
|
||||
<p><a name="top"></a>This example shows how to:</p><font size="1">
|
||||
<ul>
|
||||
<li class=kadov-p>Create a new vault.</li>
|
||||
<li class=kadov-p>Create a new vault view.</li>
|
||||
<li class=kadov-p>Log into the new vault.</li>
|
||||
<li class=kadov-p>Get all of the users currently logged into vault views on
|
||||
this machine.</li>
|
||||
</ul>
|
||||
</font>
|
||||
<p><b>NOTE</b>: If using the primary interop assembly
|
||||
provided with SOLIDWORKS PDM Professional, see
|
||||
<a href="Using_NET_Framework_in_Applications.htm">Using .NET Framework 4.0 in
|
||||
Stand-alone Applications</a>.</p>
|
||||
<p><img border="0" src="CreateVault.gif" width="303" height="174"></p>
|
||||
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
||||
<span style="color:green;">
|
||||
//----------------------------------------------------------------------------</span><br>
|
||||
<span style="color:green;">// Preconditions:</span><br>
|
||||
<span style="color:green;">// 1. Start Microsoft Visual Studio.</span><br>
|
||||
<span style="color:green;">// a. Click <b>File > New > Project > Visual
|
||||
C# > Windows Forms Application</b>.</span><br>
|
||||
<span style="color:green;">// b. Type <b>CreateNewVault_CSharp</b> in <b>Name</b>.</span><br>
|
||||
<span style="color:green;">// c. Click <b>Browse</b> and navigate to the folder where to create </span><br>
|
||||
<span style="color:green;">// the project.</span><br>
|
||||
<span style="color:green;">// d. Click <b>OK</b>. </span><br>
|
||||
<span style="color:green;">// e. Click <b>Show All Files</b> in the Solution Explorer toolbar and expand </span><br>
|
||||
<span style="color:green;">// <b>Form1.cs</b> in the Solution Explorer.</span><br>
|
||||
<span style="color:green;">// f. Replace the code in <b>Form1.cs</b> with <a href="#Form1.cs">this code</a>.</span><br>
|
||||
<span style="color:green;">// g. To create the form,
|
||||
replace the code in <b>Form1.Designer.cs</b> with <a href="#Form1.Designer.cs">this code</a>.</span><br>
|
||||
<span style="color:green;">// 2. Add <b>EPDM.Interop.epdm.dll</b> as a reference (right-click the project</span><br>
|
||||
<span style="color:green;">// name in the Solution Explorer, click <b>Add Reference</b>, click </span><br>
|
||||
<span style="color:green;">// <b>Assemblies > Framework</b> in the left-side panel, browse to the top folder of </span><br>
|
||||
<span style="color:green;">// your SOLIDWORKS PDM Professional installation, locate and click </span><br>
|
||||
<span style="color:green;">// <b>EPDM.Interop.epdm.dll</b>, click <b>Open</b>, and click <b>Add</b>).</span><br>
|
||||
<span style="color:green;">// 3. Right-click <b>EPDM.Interop.epdm</b> in References, click <b>Properties</b>, and set </span><br>
|
||||
<span style="color:green;">// <b>Embed Interop Types</b> to <b>False</b> to handle methods that pass arrays of </span><br>
|
||||
<span style="color:green;">// structures.<br>
|
||||
</span><span style="color: #008000; background-position: 0 0">//</span><font size="2"><span style="color:green;">
|
||||
4. In the code, substitute the following parameters in IEdmVault11::CreateNewVault<br>
|
||||
// to create MyNewVault on your machine:<br>
|
||||
// * <i>database_server</i><br>
|
||||
// * <i>sql_sa_password</i></span></font><br>
|
||||
<span style="color:green;">// 5. Click <b>Debug > Start Debugging</b> or press F5.</span><br>
|
||||
<span style="color:green;">//</span><br>
|
||||
<span style="color:green;">// Postconditions: </span><br>
|
||||
<span style="color: #008000; background-position: 0 0">//</span><font size="2"><span style="color:green;"> 1. Displays the Create
|
||||
new vault dialog box.</span><br>
|
||||
<span style="color: #008000">//</span><span style="color:green;"> a.
|
||||
Click <b>Create and log in to MyNewVault</b>.<br>
|
||||
// b. After a few seconds, displays a login dialog.<br>
|
||||
// c. Type Admin's password in <b>Password</b>.<br>
|
||||
// d. Click <b>Log in</b>.<br>
|
||||
// 1. MyNewVault is created using the
|
||||
Default configuration in the root <br>
|
||||
// folder of the archive
|
||||
server.<br>
|
||||
// 2. A view of MyNewVault, accessible to
|
||||
all users, is created in <b>c:\temp</b>. <br>
|
||||
// 3. Admin is logged into MyNewVault.</span><br>
|
||||
<span style="color: #008000">//</span><span style="color:green;">
|
||||
e. Click <b>Get users logged into all vaults</b>. </span><br>
|
||||
<span style="color: #008000">//</span><span style="color:green;">
|
||||
f. Displays a dialog with all of the users currently logged into <br>
|
||||
// vault views on this machine.<br>
|
||||
// g. Click <b>OK</b>.</span><br>
|
||||
<span style="color: #008000">//</span><span style="color:green;"> 2. Close the Create
|
||||
new vault dialog box. </span></font><br>
|
||||
<span style="color:green;">
|
||||
//----------------------------------------------------------------------------</span><br>
|
||||
<br>
|
||||
<span style="color:green;"><a name="Form1.cs"></a>//Form1.cs</span></p>
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
||||
<span style="color:blue;">using</span> System;<br>
|
||||
<span style="color:blue;">using</span> System.Collections.Generic;<br>
|
||||
<span style="color:blue;">using</span> System.ComponentModel;<br>
|
||||
<span style="color:blue;">using</span> System.Data;<br>
|
||||
<span style="color:blue;">using</span> System.Drawing;<br>
|
||||
<span style="color:blue;">using</span> System.Linq;<br>
|
||||
<span style="color:blue;">using</span> System.Text;<br>
|
||||
<span style="color:blue;">using</span> System.Windows.Forms;<br>
|
||||
<span style="color:blue;">using</span> EPDM.Interop.epdm;<br>
|
||||
<br>
|
||||
<br>
|
||||
<span style="color:blue;">namespace</span> CreateNewVault_CSharp<br>
|
||||
{<br>
|
||||
<span style="color:blue;">public</span> <span style="color:blue;">partial</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">Form1</span> : <span style="color:#2b91af;">Form</span><br>
|
||||
{<br>
|
||||
<span style="color:blue;">public</span> Form1()<br>
|
||||
{<br>
|
||||
InitializeComponent();<br>
|
||||
}<br>
|
||||
<br>
|
||||
<span style="color:#2b91af;">IEdmVault5</span> vault1;<br>
|
||||
<span style="color:#2b91af;">IEdmVault13</span> vault2;<br>
|
||||
<span style="color:blue;">string</span> vaults = <span style="color:#a31515;">""</span>;<br>
|
||||
<span style="color:blue;">public</span> <span style="color:blue;">void</span> Form1_Load(System.<span style="color:#2b91af;">Object</span> sender, System.<span style="color:#2b91af;">EventArgs</span> e)<br>
|
||||
{<br>
|
||||
vault1 = <span style="color:blue;">new</span> <span style="color:#2b91af;">EdmVault5</span>();<br>
|
||||
vault2 = (<span style="color:#2b91af;">IEdmVault13</span>)vault1;<br>
|
||||
}<br>
|
||||
<br>
|
||||
<br>
|
||||
<span style="color:blue;">public</span> <span style="color:blue;">void</span> GetLoggedIn_Click(System.<span style="color:#2b91af;">Object</span> sender, System.<span style="color:#2b91af;">EventArgs</span> e)<br>
|
||||
{<br>
|
||||
<span style="color:green;">//Get all of the users currently logged into
|
||||
vault views on this machine</span><br>
|
||||
<span style="color:blue;">try</span><br>
|
||||
{<br>
|
||||
<span style="color:blue;">if</span> (vault1 == <span style="color:blue;">null</span>)<br>
|
||||
{<br>
|
||||
<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">"Click Log in"</span>);<br>
|
||||
<span style="color:blue;">return</span>;<br>
|
||||
}<br>
|
||||
<br>
|
||||
<span style="color:#2b91af;">IEdmUserMgr5</span> userMgr = <span style="color:blue;">default</span>(<span style="color:#2b91af;">IEdmUserMgr5</span>);<br>
|
||||
userMgr = (<span style="color:#2b91af;">IEdmUserMgr5</span>)vault2.<b>CreateUtility</b>(<span style="color:#2b91af;">EdmUtility</span>.EdmUtil_UserMgr);<br>
|
||||
<span style="color:#2b91af;">IEdmPos5</span> pos = <span style="color:blue;">default</span>(<span style="color:#2b91af;">IEdmPos5</span>);<br>
|
||||
pos = userMgr.<b>GetFirstLoggedInUserPosition</b>(vaults);<br>
|
||||
<br>
|
||||
<span style="color:blue;">string</span> userName = <span style="color:#a31515;">""</span>;<br>
|
||||
<span style="color:blue;">string</span> computerName = <span style="color:#a31515;">""</span>;<br>
|
||||
<span style="color:blue;">string</span> vaultName = <span style="color:#a31515;">""</span>;<br>
|
||||
<span style="color:blue;">object</span> loginTime = <span style="color:blue;">null</span>;<br>
|
||||
<br>
|
||||
<span style="color:blue;">string</span> message = <span style="color:blue;">null</span>;<br>
|
||||
message = <span style="color:#a31515;">"The following users are
|
||||
logged into vault views:"</span> + "\n" + "\n";<br>
|
||||
<br>
|
||||
<span style="color:blue;">while</span> (!pos.<b>IsNull</b>)<br>
|
||||
{<br>
|
||||
userMgr.<b>GetNextLoggedInUser</b>(pos, <span style="color:blue;">out</span> userName, <span style="color:blue;">out</span> computerName, <span style="color:blue;">out</span> vaultName, <span style="color:blue;">ref</span> loginTime);<br>
|
||||
message = message + userName + <span style="color:#a31515;">" ("</span> + computerName + <span style="color:#a31515;">")"</span> + <span style="color:#a31515;">" logged in to "</span> + vaultName + <span style="color:#a31515;">" at "</span> + loginTime + "\n";<br>
|
||||
}<br>
|
||||
<br>
|
||||
<span style="color:#2b91af;">MessageBox</span>.Show(message);<br>
|
||||
<br>
|
||||
}<br>
|
||||
<span style="color:blue;">catch</span> (System.Runtime.InteropServices.<span style="color:#2b91af;">COMException</span> ex)<br>
|
||||
{<br>
|
||||
<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">"HRESULT = 0x"</span> + ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + <span style="color:#a31515;">" "</span> + ex.Message);<br>
|
||||
}<br>
|
||||
<span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br>
|
||||
{<br>
|
||||
<span style="color:#2b91af;">MessageBox</span>.Show(ex.Message);<br>
|
||||
}<br>
|
||||
}<br>
|
||||
<br>
|
||||
<span style="color:blue;">private</span> <span style="color:blue;">void</span> Button1_Click(System.<span style="color:#2b91af;">Object</span> sender, System.<span style="color:#2b91af;">EventArgs</span> e)<br>
|
||||
{<br>
|
||||
<span style="color:green;">// Create
|
||||
a new vault and vault view</span><br>
|
||||
<span style="color:blue;">try</span><br>
|
||||
{<br>
|
||||
vault1 = <span style="color:blue;">new</span> <span style="color:#2b91af;">EdmVault5</span>();<br>
|
||||
vault2 = (<span style="color:#2b91af;">IEdmVault13</span>)vault1;<br>
|
||||
<br>
|
||||
vault2.<b>CreateNewVault</b>(<span style="color:#a31515;">""</span>, <span style="color:#a31515;">""</span>, <span style="color:#a31515;">""</span>, <span style="color:#a31515;">"MyNewVault"</span>, <span style="color:#a31515;">"This is my new vault"</span>, <span style="color:#a31515;">""</span>, <span style="color:#a31515;">"<i>database_server</i>"</span>, <span style="color:#a31515;">"sa"</span>, <span style="color:#a31515;">"<i>sql_sa_password</i>"</span>, <span style="color:#a31515;">"MyNewVault"</span>, 110, <span style="color:#a31515;">""</span>, (<span style="color:blue;">int</span>)<span style="color:#2b91af;">EdmCreateVaultFlag</span>.EdmCreateVault_UseDefaultAdminPassword, <span style="color:blue;">null</span>, <span style="color:#a31515;">"Default"</span>);<br>
|
||||
vault2.<b>CreateNewVaultView</b>(<span style="color:#a31515;">""</span>, <span style="color:#a31515;">""</span>, <span style="color:#a31515;">""</span>, <span style="color:#a31515;">"MyNewVault"</span>, <span style="color:#a31515;">"c:\\temp"</span>, (<span style="color:blue;">int</span>)<span style="color:#2b91af;">EdmCreateVaultViewFlag</span>.EdmCreateVaultView_SharedView);<br>
|
||||
<br>
|
||||
<span style="color:#2b91af;">EdmViewInfo</span>[] Views = <span style="color:blue;">null</span>;<br>
|
||||
vault2.<b>GetVaultViews</b>(<span style="color:blue;">out</span> Views, <span style="color:blue;">false</span>);<br>
|
||||
vaults = <span style="color:#a31515;">""</span>;<br>
|
||||
<br>
|
||||
<span style="color:blue;">foreach</span> (<span style="color:#2b91af;">EdmViewInfo</span> View <span style="color:blue;">in</span> Views)<br>
|
||||
{<br>
|
||||
vaults = vaults + View.<b>mbsVaultName</b> + "\n";<br>
|
||||
}<br>
|
||||
<br>
|
||||
<span style="color:green;">//Log into the new vault view</span><br>
|
||||
vault2.<b>LoginAuto</b>(<span style="color:#a31515;">"MyNewVault"</span>, <span style="color:blue;">this</span>.Handle.ToInt32());<br>
|
||||
}<br>
|
||||
<span style="color:blue;">catch</span> (System.Runtime.InteropServices.<span style="color:#2b91af;">COMException</span> ex)<br>
|
||||
{<br>
|
||||
<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">"HRESULT = 0x"</span> + ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + <span style="color:#a31515;">" "</span> + ex.Message);<br>
|
||||
}<br>
|
||||
<span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br>
|
||||
{<br>
|
||||
<span style="color:#2b91af;">MessageBox</span>.Show(ex.Message);<br>
|
||||
}<br>
|
||||
}<br>
|
||||
}<br>
|
||||
}</p>
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
||||
</p>
|
||||
<p style="font-family: Courier New; color: black; background: white" align="center">
|
||||
<a href="#top">Back to top</a></p>
|
||||
<p style="font-family: Courier New; font-size: 13; color: #008000; background: white" class="APICODE">
|
||||
<a name="Form1.Designer.cs"></a>//Form1.Designer.cs</p>
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
||||
<span style="color:blue;">namespace</span> CreateNewVault_CSharp<br>
|
||||
{<br>
|
||||
<span style="color:blue;">partial</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">Form1</span><br>
|
||||
{<br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"><summary></span><br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> Required designer variable.</span><br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"></summary></span><br>
|
||||
<span style="color:blue;">private</span> System.ComponentModel.<span style="color:#2b91af;">IContainer</span> components = <span style="color:blue;">null</span>;<br>
|
||||
<br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"><summary></span><br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> Clean up any resources being used.</span><br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"></summary></span><br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"><param name="disposing"></span><span style="color:green;">true if managed resources should be disposed; otherwise, false.</span><span style="color:gray;"></param></span><br>
|
||||
<span style="color:blue;">protected</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> Dispose(<span style="color:blue;">bool</span> disposing)<br>
|
||||
{<br>
|
||||
<span style="color:blue;">if</span> (disposing && (components != <span style="color:blue;">null</span>))<br>
|
||||
{<br>
|
||||
components.Dispose();<br>
|
||||
}<br>
|
||||
<span style="color:blue;">base</span>.Dispose(disposing);<br>
|
||||
}<br>
|
||||
<br>
|
||||
<span style="color:blue;"> #region</span> Windows Form Designer generated code<br>
|
||||
<br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"><summary></span><br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> Required method for Designer support - do not modify</span><br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> the contents of this method with the code editor.</span><br>
|
||||
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"></summary></span><br>
|
||||
<span style="color:blue;">private</span> <span style="color:blue;">void</span> InitializeComponent()<br>
|
||||
{<br>
|
||||
<span style="color:blue;">this</span>.GetLoggedIn = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span>();<br>
|
||||
<span style="color:blue;">this</span>.Button1 = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span>();<br>
|
||||
<span style="color:blue;">this</span>.SuspendLayout();<br>
|
||||
<span style="color:green;">//</span><br>
|
||||
<span style="color:green;">//GetLoggedIn</span><br>
|
||||
<span style="color:green;">//</span><br>
|
||||
<span style="color:blue;">this</span>.GetLoggedIn.Location = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Point</span>(31, 71);<br>
|
||||
<span style="color:blue;">this</span>.GetLoggedIn.Name = <span style="color:#a31515;">"GetLoggedIn"</span>;<br>
|
||||
<span style="color:blue;">this</span>.GetLoggedIn.Size = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(167, 23);<br>
|
||||
<span style="color:blue;">this</span>.GetLoggedIn.TabIndex = 5;<br>
|
||||
<span style="color:blue;">this</span>.GetLoggedIn.Text = <span style="color:#a31515;">"Get users logged into all vaults"</span>;<br>
|
||||
<span style="color:blue;">this</span>.GetLoggedIn.UseVisualStyleBackColor = <span style="color:blue;">true</span>;<br>
|
||||
<span style="color:blue;">this</span>.GetLoggedIn.Click +=<span style="color:blue;">new</span> System.<span style="color:#2b91af;">EventHandler</span>(GetLoggedIn_Click);<br>
|
||||
<span style="color:green;">//</span><br>
|
||||
<span style="color:green;">//Button1</span><br>
|
||||
<span style="color:green;">//</span><br>
|
||||
<span style="color:blue;">this</span>.Button1.Location = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Point</span>(31, 26);<br>
|
||||
<span style="color:blue;">this</span>.Button1.Name = <span style="color:#a31515;">"Button1"</span>;<br>
|
||||
<span style="color:blue;">this</span>.Button1.Size = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(178, 23);<br>
|
||||
<span style="color:blue;">this</span>.Button1.TabIndex = 6;<br>
|
||||
<span style="color:blue;">this</span>.Button1.Text = <span style="color:#a31515;">"Create and log in to MyNewVault"</span>;<br>
|
||||
<span style="color:blue;">this</span>.Button1.UseVisualStyleBackColor = <span style="color:blue;">true</span>;<br>
|
||||
<span style="color:blue;">this</span>.Button1.Click +=<span style="color:blue;">new</span> System.<span style="color:#2b91af;">EventHandler</span>(Button1_Click);<br>
|
||||
<span style="color:green;">//</span><br>
|
||||
<span style="color:green;">//Form1</span><br>
|
||||
<span style="color:green;">//</span><br>
|
||||
<span style="color:blue;">this</span>.AutoScaleDimensions = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">SizeF</span>(6f, 13f);<br>
|
||||
<span style="color:blue;">this</span>.AutoScaleMode = System.Windows.Forms.<span style="color:#2b91af;">AutoScaleMode</span>.Font;<br>
|
||||
<span style="color:blue;">this</span>.ClientSize = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(287, 136);<br>
|
||||
<span style="color:blue;">this</span>.Controls.Add(<span style="color:blue;">this</span>.Button1);<br>
|
||||
<span style="color:blue;">this</span>.Controls.Add(<span style="color:blue;">this</span>.GetLoggedIn);<br>
|
||||
<span style="color:blue;">this</span>.Name = <span style="color:#a31515;">"Form1"</span>;<br>
|
||||
<span style="color:blue;">this</span>.Text = <span style="color:#a31515;">"Create new vault"</span>;<br>
|
||||
<span style="color:blue;">this</span>.Load += <span style="color:blue;">new</span> System.<span style="color:#2b91af;">EventHandler</span>(<span style="color:blue;">this</span>.Form1_Load);<br>
|
||||
<span style="color:blue;">this</span>.ResumeLayout(<span style="color:blue;">false</span>);<br>
|
||||
<span style="color:blue;">this</span>.PerformLayout();<br>
|
||||
<br>
|
||||
}<br>
|
||||
<br>
|
||||
<span style="color:blue;"> #endregion</span><br>
|
||||
<br>
|
||||
<span style="color:blue;">internal</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span> GetLoggedIn;<br>
|
||||
<span style="color:blue;">internal</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span> Button1;<br>
|
||||
}<br>
|
||||
}</p>
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
||||
</p>
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
||||
</p>
|
||||
<p style="font-family: Courier New; color: black; background: white" align="center">
|
||||
<a href="#top">Back to top</a></p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user