300 lines
45 KiB
HTML
300 lines
45 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<title>Change Card Variables Add-in Example (VB.NET)</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">
|
|
<style type="text/css">
|
|
.auto-style2 {
|
|
color: #2B91AF;
|
|
}
|
|
.auto-style3 {
|
|
font-size: x-small;
|
|
}
|
|
</style>
|
|
</head>
|
|
<meta name=MS-HKWD content="Add-ins, VB.NET">
|
|
<meta name=MS-HKWD content="VB.NET add-ins">
|
|
<meta name=MS-HKWD content="VB.NET add-ins,hooks">
|
|
<meta name=MS-HKWD content="VB.NET add-ins,card variables">
|
|
<meta name=MS-HKWD content="VB.NET add-ins,dictionaries">
|
|
<body>
|
|
<h1><font size="1"><span style="font-weight: 400">SOLIDWORKS PDM Professional API Help</span></h1>
|
|
<h1>Change Card Variables Add-in Example (VB.NET)</h1>
|
|
<p><a name="top"></a>This example shows how to create an add-in that modifies a data card variable
|
|
when another data card variable changes.</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;">' 2. Click <b>File > New > Project > Visual Basic > Class Library (.NET Framework)</b>.</span><br>
|
|
<span style="color:green;">' 3. Select <b>.NET Framework 4.5
|
|
or later</b> in the dropdown.</span><br>
|
|
<span style="color:green;">' 4. Type <b>CardVariables</b> in <b>Name</b>.</span><br>
|
|
<span style="color:green;">' 5. Click <b>Browse</b> and navigate to the folder where to create the project.</span><br>
|
|
<span style="color:green;">' 6. Click <b>OK</b>. </span><br>
|
|
<span style="color:green;">
|
|
' 7. Right-click the project name in the Solution Explorer and click <b>Add Reference</b>. </span><br>
|
|
<span style="color:green;">' 8. In the Add Reference dialog: </span><br>
|
|
<span style="color:green;">' a. Add the
|
|
SOLIDWORKS PDM Professional interop assembly as a reference <font size="2"><span style="color:green;">(click <strong>Browse</strong> in the</span><br>
|
|
' left-side panel, click
|
|
<strong>EPDM.Interop.epdm.dll</strong>, <br>
|
|
' and click <strong>OK</strong>).</font></span><br>
|
|
<span style="color:green;">' b. Click <b>Close</b>.</span><br>
|
|
<span style="color:green;">
|
|
' 9. Right-click the project name in the Solution Explorer and click <b>Properties</b>.</span><br>
|
|
<span style="color:green;">'10. In the Properties window:</span><br>
|
|
<span style="color:green;">' a. On the Application tab, click <b>Assembly Information</b>.</span><br>
|
|
<span style="color:green;">' b. De-select <b>Make assembly COM-Visible</b>.</span><br>
|
|
<span style="color:green;">' c. On the Compile tab,
|
|
select <strong>Any CPU</strong>, de-select <strong>Prefer 32-bit</strong>, and select <b>Register for COM interop</b>.<br>
|
|
'11. Save the project.</span><br>
|
|
<span style="color:green;">'12. Copy the code below to <b>Class1.vb</b>.<br>
|
|
'13. </span><font size="2"><font color="#008000">To populate the GUID
|
|
attribute, click <b>Tools > Create GUID</b> in the IDE, <br>
|
|
' select GUID Format
|
|
6, click <b>Copy</b>, and click <b>Exit</b>. Replace
|
|
<</font><span style="color:#008000;">Guid</span><font color="#008000">(</font><span style="color:#008000;">""</span><font color="#008000">)>
|
|
with <br>
|
|
' the copied string.</font></font><br>
|
|
<span style="color:green;">'14. Click <b>Build > Build Solution</b>.</span><br>
|
|
<span style="color:green;">'</span><br>
|
|
<span style="color:green;">' Postconditions: </span><br>
|
|
<span style="color:green;">' 1. Open the SOLIDWORKS PDM Professional Administration tool, expand a <i>vault_name</i> node, </span><br>
|
|
<span style="color:green;">' and log in as Admin.</span><br>
|
|
<span style="color:green;">' 2. Under <i>vault_name</i>, right-click <b>Add-ins,</b> and click <b>New Add-in</b>.</span><br>
|
|
<span style="color:green;">
|
|
' a. Navigate to the </span><span style="color:green;"><b>bin\Debug
|
|
</b></span><span style="color:green;">
|
|
directory of your built project.</span><br>
|
|
<span style="color:green;">' b. Click <b>EPDM.Interop.epdm.dll</b> and <b>CardVariables.dll</b>.</span><br>
|
|
<span style="color:green;">' c. Click <b>Open</b>.</span><br>
|
|
<span style="color:green;">' d. Click <b>OK</b>.</span><br>
|
|
<span style="color:green;">' 3. Click <b>OK</b> after reading the SOLIDWORKS PDM Professional warning dialog.<br>
|
|
' 4. In the taskbar, click the Administration tool icon and click <b>Log
|
|
Off > </b><i>vault_name</i>.</span><br>
|
|
<span style="color:green;">' 5. Open File Explorer on a view of <i>vault_name</i> to:<br>
|
|
' a. Log in as Admin.</span><br>
|
|
<span style="color:green;">' b. Create, check in,
|
|
and check out a file whose data card contains <b>Project Name</b> <br>
|
|
' and <b>Project Number</b>.<br>
|
|
' c. Click the <b>Data Card</b> tab.</span><br>
|
|
<span style="color:green;">' d. In <b>Project Name, </b>type <b>Mercury</b>, <b>Venus</b>, <b>Earth</b>, <b>Mars</b>, <b>Jupiter</b>, or <b>Saturn</b>.</span><br>
|
|
<span style="color:green;">' e. Observe the change in <b>Project Number</b>.<br>
|
|
' f. In <b>Project Number, </b>type a number between <b>1000</b> and <b>1005</b>.</span><br>
|
|
<span style="color:green;">' g. Observe the change in <b>Project Name</b>.</span><br>
|
|
<span style="color:green;">
|
|
'---------------------------------------------------------------------------------------</span><br>
|
|
<br>
|
|
<span style="color:blue;">Imports</span> EPDM.Interop.epdm<br>
|
|
<span style="color:blue;">Imports</span> System.Runtime.InteropServices<br>
|
|
<br>
|
|
<<span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">""</span>)><br>
|
|
<<span style="color:#2b91af;">ComVisible</span>(<span style="color:blue;">True</span>)> <br>
|
|
<span style="color:blue;">Public</span> <span style="color:blue;">Class</span> <span style="color:#2b91af;">CardVariables</span><br>
|
|
<span style="color:blue;">Implements</span> <span style="color:#2b91af;">IEdmAddIn5</span><br>
|
|
<br>
|
|
<span style="color:blue;">Public</span> <span style="color:blue;">Sub</span> GetAddInInfo( _<br>
|
|
<span style="color:blue;">ByRef</span> poInfo <span style="color:blue;">As</span> <span style="color:#2b91af;">EdmAddInInfo</span>, _<br>
|
|
<span style="color:blue;">ByVal</span> poVault <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmVault5</span>, _<br>
|
|
<span style="color:blue;">ByVal</span> poCmdMgr <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmCmdMgr5</span>) _<br>
|
|
<span style="color:blue;">Implements</span> <span style="color:#2b91af;">IEdmAddIn5</span>.GetAddInInfo<br>
|
|
<span style="color:blue;">Try</span><br>
|
|
poInfo.<b>mbsAddInName</b> = <span style="color:#a31515;">"VB.NET Card Variable Add-In"</span><br>
|
|
poInfo.<b>mbsCompany</b> = <span style="color:#a31515;">"Dassault Systemes"</span><br>
|
|
poInfo.<b>mbsDescription</b> = <span style="color:#a31515;">"Example demonstrating "</span> _<br>
|
|
+ <span style="color:#a31515;">"updating a card variable based on another card variable"</span><br>
|
|
poInfo.<b>mlAddInVersion</b> = 1<br>
|
|
<span style="color:green;">'Minimum SOLIDWORKS PDM Professional version</span><br>
|
|
<span style="color:green;">'needed for VB.Net Add-Ins is 6.4</span><br>
|
|
poInfo.<b>mlRequiredVersionMajor</b> = 6<br>
|
|
poInfo.<b>mlRequiredVersionMinor</b> = 4<br>
|
|
<br>
|
|
<span style="color:green;">'Register to receive a notification when</span><br>
|
|
<span style="color:green;">'a data card variable value changes</span><br>
|
|
poCmdMgr.<b>AddHook</b>(<span style="color:#2b91af;">EdmCmdType</span>.<b>EdmCmd_CardInput</b>)<br>
|
|
<br>
|
|
<span style="color:blue;">Dim</span> ProjectDictionary <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmDictionary5</span><br>
|
|
ProjectDictionary = poVault.<b>GetDictionary</b>( _<br>
|
|
<span style="color:#a31515;">"Projects"</span>, <span style="color:blue;">True</span>) <span style="color:green;">'Create it if it doesn't exist</span><br>
|
|
<br>
|
|
<span style="color:blue;">Dim</span> SuccessSet <span style="color:blue;">As</span> <span style="color:blue;">Boolean</span> = <span style="color:blue;">False</span><br>
|
|
SuccessSet = ProjectDictionary.<b>StringTestAndSetAt</b> _<br>
|
|
(<span style="color:#a31515;">"1000"</span>, <span style="color:#a31515;">"Mercury"</span>)<br>
|
|
SuccessSet = ProjectDictionary.<b>StringTestAndSetAt</b> _<br>
|
|
(<span style="color:#a31515;">"1001"</span>, <span style="color:#a31515;">"Venus"</span>)<br>
|
|
SuccessSet = ProjectDictionary.<b>StringTestAndSetAt</b> _<br>
|
|
(<span style="color:#a31515;">"1002"</span>, <span style="color:#a31515;">"Earth"</span>)<br>
|
|
SuccessSet = ProjectDictionary.<b>StringTestAndSetAt</b> _<br>
|
|
(<span style="color:#a31515;">"1003"</span>, <span style="color:#a31515;">"Mars"</span>)<br>
|
|
SuccessSet = ProjectDictionary.<b>StringTestAndSetAt</b> _<br>
|
|
(<span style="color:#a31515;">"1004"</span>, <span style="color:#a31515;">"Jupiter"</span>)<br>
|
|
SuccessSet = ProjectDictionary.<b>StringTestAndSetAt</b> _<br>
|
|
(<span style="color:#a31515;">"1005"</span>, <span style="color:#a31515;">"Saturn"</span>)<br>
|
|
<br>
|
|
<span style="color:blue;">Catch</span> ex <span style="color:blue;">As</span> Runtime.InteropServices.<span style="color:#2b91af;">COMException</span><br>
|
|
MsgBox(<span style="color:#a31515;">"HRESULT = 0x"</span> + _<br>
|
|
ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + vbCrLf + _<br>
|
|
ex.Message)<br>
|
|
<span style="color:blue;">Catch</span> ex <span style="color:blue;">As</span> <span style="color:#2b91af;">Exception</span><br>
|
|
MsgBox(ex.Message)<br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Try</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Sub</span><br>
|
|
</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
<span style="color:green;"> 'A data card variable value has changed</span><br>
|
|
<span style="color:blue;">Public</span> <span style="color:blue;">Sub</span> OnCmd( _<br>
|
|
<span style="color:blue;">ByRef</span> poCmd <span style="color:blue;">As</span> <span style="color:#2b91af;">EdmCmd</span>, _<br>
|
|
<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>) _<br>
|
|
<span style="color:blue;">Implements</span> <span style="color:#2b91af;">IEdmAddIn5</span>.OnCmd<br>
|
|
<span style="color:blue;">Try</span><br>
|
|
<br>
|
|
<span style="color:blue;">Select</span> <span style="color:blue;">Case</span> poCmd.<b>meCmdType</b><br>
|
|
<br>
|
|
<span style="color:blue;">Case</span> <span style="color:#2b91af;">EdmCmdType</span>.<b>EdmCmd_CardInput</b><br>
|
|
<span style="color:blue;">Static</span> VariableChangeInProgress <span style="color:blue;">As</span> <span style="color:blue;">Boolean</span> = _<br>
|
|
<span style="color:blue;">False</span><br>
|
|
<span style="color:blue;">Dim</span> vars <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmEnumeratorVariable5</span> = _<br>
|
|
poCmd.<b>mpoExtra</b><br>
|
|
<span style="color:blue;">Dim</span> ConfigNames <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmStrLst5</span> = _<br>
|
|
<span style="color:blue;">DirectCast</span>(ppoData(0), <span style="color:#2b91af;">EdmCmdData</span>).<b>mpoExtra</b><br>
|
|
<span style="color:blue;">Dim</span> Config <span style="color:blue;">As</span> <span style="color:blue;">String</span><br>
|
|
<span style="color:blue;">If</span> IsConfigInList(ConfigNames, <span style="color:#a31515;">"@"</span>) <span style="color:blue;">Then</span><br>
|
|
Config = <span style="color:#a31515;">"@"</span><br>
|
|
<span style="color:blue;">Else</span><br>
|
|
Config = <span style="color:#a31515;">""</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">If</span><br>
|
|
<br>
|
|
<span style="color:green;">'Take appropriate action based on the data card variable that has changed</span><br>
|
|
<span style="color:blue;">Select</span> <span style="color:blue;">Case</span> poCmd.<b>mbsComment</b><br>
|
|
<br>
|
|
<span style="color:green;">'The Project Name variable has changed</span><br>
|
|
<span style="color:blue;">Case</span> <span style="color:#a31515;">"Project Name"</span><br>
|
|
<span style="color:blue;">If</span> VariableChangeInProgress = <span style="color:blue;">True</span> <span style="color:blue;">Then</span><br>
|
|
VariableChangeInProgress = <span style="color:blue;">False</span><br>
|
|
<span style="color:blue;">Exit Select</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">If</span><br>
|
|
<span style="color:blue;">Dim</span> ProjectName <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span><br>
|
|
vars.<b>GetVar</b>(<span style="color:#a31515;">"Project Name"</span>, Config, _<br>
|
|
ProjectName)<br>
|
|
<br>
|
|
<span style="color:green;">'Get the old Project Number</span><br>
|
|
<span style="color:blue;">Dim</span> ProjectNumber <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span><br>
|
|
vars.<b>GetVar</b>(<span style="color:#a31515;">"Project number"</span>, Config, _<br>
|
|
ProjectNumber)<br>
|
|
<br>
|
|
<span style="color:green;">'Get the existing Projects dictionary</span><br>
|
|
<span style="color:blue;">Dim</span> ProjectDictionary <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmDictionary5</span><br>
|
|
ProjectDictionary = poCmd.<b>mpoVault</b>. _<br>
|
|
<b>GetDictionary</b>(<span style="color:#a31515;">"Projects"</span>, <span style="color:blue;">False</span>)<br>
|
|
<br>
|
|
<span style="color:green;">'Look up the new project number</span><br>
|
|
<span style="color:blue;">Dim</span> NewProjectNumber <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span><br>
|
|
<span style="color:green;">'Find all values containing the substring</span><br>
|
|
<span style="color:green;">'stored in ProjectName </span><br>
|
|
<span style="color:blue;">Dim</span> key <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span><br>
|
|
<span style="color:blue;">Dim</span> value <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span><br>
|
|
<span style="color:blue;">Dim</span> pos <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmPos5</span><br>
|
|
pos = ProjectDictionary.<b>StringFindValues</b>( _<br>
|
|
ProjectName)<br>
|
|
<span style="color:blue;">While</span> <span style="color:blue;">Not</span> pos.<b>IsNull</b><br>
|
|
ProjectDictionary.<b>StringGetNextAssoc</b>( _<br>
|
|
pos, key, value)<br>
|
|
<span style="color:green;">'Traverse the values until a match</span><br>
|
|
<span style="color:green;">'is found</span><br>
|
|
<span style="color:blue;">If</span> value = ProjectName <span style="color:blue;">Then</span><br>
|
|
NewProjectNumber = key<br>
|
|
<span style="color:blue;">Exit While</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">If</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">While</span><br>
|
|
<br>
|
|
<span style="color:green;">'Only update the variable if it
|
|
changed</span><br>
|
|
<span style="color:blue;">If</span> <span style="color:blue;">Not</span> NewProjectNumber = ProjectNumber _<br>
|
|
<span style="color:blue;">Then</span><br>
|
|
VariableChangeInProgress = <span style="color:blue;">True</span><br>
|
|
vars.<b>SetVar</b>(<span style="color:#a31515;">"Project number"</span>, Config, _<br>
|
|
NewProjectNumber)<br>
|
|
<br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">If</span><br>
|
|
<br>
|
|
<span style="color:green;">'The Project Number variable has changed</span><br>
|
|
<span style="color:blue;">Case</span> <span style="color:#a31515;">"Project number"</span><br>
|
|
<span style="color:blue;">If</span> VariableChangeInProgress = <span style="color:blue;">True</span> <span style="color:blue;">Then</span><br>
|
|
VariableChangeInProgress = <span style="color:blue;">False</span><br>
|
|
<span style="color:blue;">Exit Select</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">If</span></p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
<br>
|
|
<span style="color:blue;">Dim</span> ProjectNumber <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span><br>
|
|
vars.<b>GetVar</b>(<span style="color:#a31515;">"Project number"</span>, Config, _<br>
|
|
ProjectNumber)<br>
|
|
<br>
|
|
<span style="color:green;">'Get the old Project Name</span><br>
|
|
<span style="color:blue;">Dim</span> ProjectName <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span><br>
|
|
vars.<b>GetVar</b>(<span style="color:#a31515;">"Project Name"</span>, Config, _<br>
|
|
ProjectName)<br>
|
|
<br>
|
|
<span style="color:green;">'Get the existing Projects dictionary</span><br>
|
|
<span style="color:blue;">Dim</span> ProjectDictionary <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmDictionary5</span><br>
|
|
ProjectDictionary = poCmd.<b>mpoVault</b>. _<br>
|
|
<b>GetDictionary</b>(<span style="color:#a31515;">"Projects"</span>, <span style="color:blue;">False</span>)<br>
|
|
<br>
|
|
<span style="color:green;">'Look up the project name</span><br>
|
|
<span style="color:blue;">Dim</span> NewProjectName <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span><br>
|
|
ProjectDictionary.<b>StringGetAt</b>( _<br>
|
|
ProjectNumber, NewProjectName)</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
<br>
|
|
<span style="color:green;">'Only update the variable if it's changed</span><br>
|
|
<span style="color:blue;">If</span> <span style="color:blue;">Not</span> NewProjectName = ProjectName <span style="color:blue;">Then</span><br>
|
|
VariableChangeInProgress = <span style="color:blue;">True</span><br>
|
|
vars.<b>SetVar</b>(<span style="color:#a31515;">"Project Name"</span>, Config, _<br>
|
|
NewProjectName)<br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">If</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Select</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Select</span><br>
|
|
<span style="color:blue;">Catch</span> ex <span style="color:blue;">As</span> Runtime.InteropServices.<span style="color:#2b91af;">COMException</span><br>
|
|
MsgBox(<span style="color:#a31515;">"HRESULT = 0x"</span> + _<br>
|
|
ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + vbCrLf + _<br>
|
|
ex.Message)<br>
|
|
<span style="color:blue;">Catch</span> ex <span style="color:blue;">As</span> <span style="color:#2b91af;">Exception</span><br>
|
|
MsgBox(ex.Message)<br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Try</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Sub</span><br>
|
|
<br>
|
|
<span style="color:blue;">Private</span> <span style="color:blue;">Function</span> IsConfigInList(<span style="color:blue;">ByVal</span> ConfigNames <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmStrLst5</span>, <span style="color:blue;">ByVal</span> ConfigName <span style="color:blue;">As</span> <span style="color:blue;">String</span>) <span style="color:blue;">As</span> <span style="color:blue;">Boolean</span><br>
|
|
IsConfigInList = <span style="color:blue;">False</span><br>
|
|
<span style="color:blue;">Try</span><br>
|
|
<span style="color:blue;">Dim</span> CurConfig <span style="color:blue;">As</span> <span style="color:blue;">String</span><br>
|
|
<span style="color:blue;">Dim</span> Pos <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmPos5</span> = ConfigNames.<b>GetHeadPosition</b>()<br>
|
|
<span style="color:blue;">While</span> <span style="color:blue;">Not</span> Pos.<b>IsNull</b><br>
|
|
CurConfig = ConfigNames.<b>GetNext</b>(Pos)<br>
|
|
<span style="color:blue;">If</span> CurConfig = ConfigName <span style="color:blue;">Then</span><br>
|
|
IsConfigInList = <span style="color:blue;">True</span><br>
|
|
<span style="color:blue;">Exit While</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">If</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">While</span><br>
|
|
<span style="color:blue;">Return</span> IsConfigInList<br>
|
|
<span style="color:blue;">Catch</span> ex <span style="color:blue;">As</span> Runtime.InteropServices.<span style="color:#2b91af;">COMException</span><br>
|
|
MsgBox(<span style="color:#a31515;">"HRESULT = 0x"</span> + _<br>
|
|
ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + vbCrLf + _<br>
|
|
ex.Message)<br>
|
|
<span style="color:blue;">Catch</span> ex <span style="color:blue;">As</span> <span style="color:#2b91af;">Exception</span><br>
|
|
MsgBox(ex.Message)<br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Try</span><br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Function</span><br>
|
|
<br>
|
|
<span style="color:blue;">End</span> <span style="color:blue;">Class</span></p>
|
|
<p align="center"><a href="#top">Back to top</a></p>
|
|
|
|
<p> </p>
|
|
|
|
</body>
|
|
|
|
</html>
|