Initial Commit of the PDM project (ready for DWS migration)
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Get Menu Command Items 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">
|
||||
</head>
|
||||
<meta name=MS-HKWD content="VB.NET examples,menus">
|
||||
<meta name=MS-HKWD content="VB.NET examples,add-ins">
|
||||
|
||||
<body>
|
||||
<h1><font size="1"><span style="font-weight: 400">SOLIDWORKS PDM Professional API Help</span></h1>
|
||||
<h1>Get Menu Command Items Example (VB.NET)</h1>
|
||||
<p><a name="Top"></a>This example shows how to get add-in menu command items.</p>
|
||||
<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="AddinMenuItems.gif" width="189" height="201"></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 Basic > Console Application</b>.</span><br>
|
||||
<span style="color:green;">' b. Type <b>MenuVBNET</b> in <b>Name</b>.</span><br>
|
||||
<span style="color:green;">' c. Click <b>Browse</b> and navigate to the folder where to create the project. </span><br>
|
||||
<span style="color:green;">' d. Click <b>OK</b>.</span><br>
|
||||
<span style="color:green;">' e. Replace the code in <b>Module1.vb</b> with <a href="#Module1">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>).<br>
|
||||
' 3. Add <b>System.Windows.Forms</b> as a reference (click <b>System.Windows.Forms<br>
|
||||
</b>' in the Name column, click <b>Add</b>, and click <b>Close</b>).</span><br>
|
||||
<span style="color:green;">' 4. Right-click <b>EPDM.Interop.epdm</b> in <b>References</b>, 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>
|
||||
' 5. Replace <i>ACME_LAB</i> with the name of a valid vault view.</span><br>
|
||||
<span style="color:green;">' 6. Click <b>Debug > Start Debugging</b> or press F5.</span><br>
|
||||
<span style="color:green;">'<br>
|
||||
' Postconditions: </span><br>
|
||||
<span style="color: green">' 1. Displays the command window.<br>
|
||||
' 2. Displays a message box for each add-in menu command item. <br>
|
||||
' 3. Click <b>OK</b> to close each message box.</span><br>
|
||||
<span style="color: green">' 4. Displays the menu in the upper-left corner of the desktop.</span><br>
|
||||
<span style="color: green">' 5. Click <b>First Command</b> in the menu.</span><br>
|
||||
<span style="color: green">' 6. Click <b>OK</b> to close the message box.</span><br>
|
||||
<span style="color: green">' 7. Click the command window and press any key.</span><br>
|
||||
<span style="color: green">' 8. Closes the command window and exits the application.</span><br>
|
||||
<span style="color: green">'--------------------------------------------------------------------------------------</span></p>
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE"><span style="color: #008000"><a name="Module1"></a>'Module1.vb</span><br>
|
||||
</p>
|
||||
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
||||
<span style="color:blue;">Imports</span> EPDM.Interop.epdm<br>
|
||||
<span style="color:blue;">Imports</span> System.Windows.Forms<br>
|
||||
<br>
|
||||
<span style="color:blue;">Module</span> <span style="color:#2b91af;">Module1</span><br>
|
||||
<br>
|
||||
<span style="color:blue;">Dim</span> vault <span style="color:blue;">As</span> <span style="color:#2b91af;">EdmVault5</span><br>
|
||||
<span style="color:blue;">Dim</span> frmParent <span style="color:blue;">As</span> <span style="color:#2b91af;">Form</span><br>
|
||||
<br>
|
||||
<span style="color:blue;">Sub</span> Main()<br>
|
||||
<span style="color:blue;">Try</span><br>
|
||||
<span style="color:green;">'Create a vault interface</span><br>
|
||||
vault = <span style="color:blue;">New</span> <span style="color:#2b91af;">EdmVault5</span>()<br>
|
||||
<br>
|
||||
<span style="color:green;">'Log into vault</span><br>
|
||||
vault.<b>LoginAuto</b>(<span style="color:#a31515;">"<i>ACME_LAB</i>"</span>, 0)<br>
|
||||
<br>
|
||||
<span style="color:green;">'Show menu</span><br>
|
||||
ShowMenu(vault)<br>
|
||||
<br>
|
||||
<span style="color:blue;">Catch</span> ex <span style="color:blue;">As</span> System.Runtime.InteropServices.<span style="color:#2b91af;">COMException</span><br>
|
||||
MsgBox(<span style="color:#a31515;">"HRESULT = 0x"</span> + ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + <span style="color:#a31515;">" "</span> + 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>
|
||||
<br>
|
||||
<span style="color:#2b91af;">Console</span>.WriteLine()<br>
|
||||
<span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">"Press any key to exit."</span>)<br>
|
||||
<span style="color:#2b91af;">Console</span>.ReadKey()<br>
|
||||
<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;">Sub</span> ShowMenu(<span style="color:blue;">ByVal</span> vault <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmVault12</span>)<br>
|
||||
<span style="color:green;">'Create a context-sensitive menu </span><br>
|
||||
<span style="color:green;">'using Windows InsertMenu function</span><br>
|
||||
<span style="color:blue;">Dim</span> mnu <span style="color:blue;">As</span> System.Windows.Forms.<span style="color:#2b91af;">ContextMenu</span><br>
|
||||
mnu = <span style="color:blue;">New</span> System.Windows.Forms.<span style="color:#2b91af;">ContextMenu</span><br>
|
||||
<br>
|
||||
InsertMenu(mnu.Handle, 0, 0, 100, <span style="color:#a31515;">"First Command"</span>)<br>
|
||||
InsertMenu(mnu.Handle, 0, 0, 101, <span style="color:#a31515;">"Second Command"</span>)<br>
|
||||
InsertMenu(mnu.Handle, 0, 0, 102, <span style="color:#a31515;">"Third Command"</span>)<br>
|
||||
<br>
|
||||
<span style="color:green;">'Create a selection list with all files in the root folder</span><br>
|
||||
<span style="color:blue;">Dim</span> selList <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmSelectionList6</span><br>
|
||||
selList = <span style="color:blue;">New</span> <span style="color:#2b91af;">EdmSelectionList5</span><br>
|
||||
<br>
|
||||
<span style="color:blue;">Dim</span> folder <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmFolder6</span><br>
|
||||
folder = vault.<b>RootFolder</b><br>
|
||||
<span style="color:blue;">Dim</span> pos <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmPos5</span><br>
|
||||
pos = folder.<b>GetFirstFilePosition</b>()<br>
|
||||
<span style="color:blue;">While</span> <span style="color:blue;">Not</span> pos.<b>IsNull</b><br>
|
||||
<span style="color:blue;">Dim</span> file <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmFile8</span><br>
|
||||
file = folder.<b>GetNextFile</b>(pos)<br>
|
||||
<span style="color:blue;">Dim</span> obj <span style="color:blue;">As</span> <span style="color:#2b91af;">EdmSelectionObject</span><br>
|
||||
obj.<b>mbsPath</b> = file.<b>GetLocalPath</b>(folder.<b>ID</b>)<br>
|
||||
obj.<b>meType</b> = file.<b>ObjectType</b><br>
|
||||
obj.<b>mlID</b> = file.<b>ID</b><br>
|
||||
obj.<b>mlProjectID</b> = folder.<b>ID</b><br>
|
||||
selList.<b>AddTail2</b>(obj)<br>
|
||||
<span style="color:blue;">End</span> <span style="color:blue;">While</span><br>
|
||||
<br>
|
||||
<span style="color:green;">'Add menu items for registered add-ins </span><br>
|
||||
<span style="color:blue;">Dim</span> count <span style="color:blue;">As</span> <span style="color:blue;">Integer</span><br>
|
||||
count = 0<br>
|
||||
<span style="color:blue;">Dim</span> startID <span style="color:blue;">As</span> <span style="color:blue;">Integer</span><br>
|
||||
startID = 200<br>
|
||||
<span style="color:blue;">Dim</span> menuCallback <span style="color:blue;">As</span> <span style="color:#2b91af;">IEdmMenu6</span><br>
|
||||
<span style="color:blue;">Dim</span> ppoRetItems() <span style="color:blue;">As</span> <span style="color:#2b91af;">EdmCmdInfo</span> = <span style="color:blue;">Nothing</span><br>
|
||||
menuCallback = vault.<b>CreatePluginMenu2</b>(mnu.Handle.ToInt32(), 3, startID, selList, <span style="color:#2b91af;">CreateMenuFlags</span>.Cmf_ContextMenu, count)<br>
|
||||
menuCallback.<b>GetItems</b>(<span style="color:#2b91af;">EdmMenuFlags</span>.EdmMenu_Nothing, ppoRetItems)<br>
|
||||
<br>
|
||||
<span style="color:blue;">Dim</span> str <span style="color:blue;">As</span> <span style="color:blue;">String</span><br>
|
||||
<span style="color:blue;">For</span> <span style="color:blue;">Each</span> item <span style="color:blue;">As</span> <span style="color:#2b91af;">EdmCmdInfo</span> <span style="color:blue;">In</span> ppoRetItems<br>
|
||||
str = <span style="color:#a31515;">"Add-in menu command item: "</span> & vbLf<br>
|
||||
str = str & <span style="color:#a31515;">"Command ID: "</span> & item.<b>mlCmdID</b> & vbLf<br>
|
||||
str = str & <span style="color:#a31515;">"Command string: "</span> & item.<b>mbsCmdStr</b> & vbLf<br>
|
||||
str = str & <span style="color:#a31515;">"Tooltip: "</span> & item.<b>mbsTooltip</b> & vbLf<br>
|
||||
str = str & <span style="color:#a31515;">"Status bar help: "</span> & item.<b>mbsStatusBarHelp</b> & vbLf<br>
|
||||
str = str & <span style="color:#a31515;">"EdmMenuFlags: "</span> & item.<b>mlEdmMenuFlags</b><br>
|
||||
MsgBox(str)<br>
|
||||
<span style="color:blue;">Next</span><br>
|
||||
<br>
|
||||
<span style="color:green;">'Display the menu using Windows TrackPopupMenu function</span><br>
|
||||
<span style="color:blue;">Dim</span> TPM_RETURNCMD <span style="color:blue;">As</span> <span style="color:blue;">Integer</span><br>
|
||||
TPM_RETURNCMD = 256<br>
|
||||
<span style="color:blue;">Dim</span> cmdID <span style="color:blue;">As</span> <span style="color:blue;">Integer</span><br>
|
||||
frmParent = <span style="color:blue;">New</span> <span style="color:#2b91af;">Form</span><br>
|
||||
cmdID = TrackPopupMenu(mnu.Handle, TPM_RETURNCMD, frmParent.Left, frmParent.Top, 0, frmParent.Handle, 0)<br>
|
||||
<br>
|
||||
<span style="color:green;">'Run the selected command</span><br>
|
||||
<span style="color:blue;">Select</span> <span style="color:blue;">Case</span> cmdID<br>
|
||||
<span style="color:blue;">Case</span> 100<br>
|
||||
MsgBox(<span style="color:#a31515;">"First command"</span>)<br>
|
||||
<span style="color:blue;">Case</span> 101<br>
|
||||
MsgBox(<span style="color:#a31515;">"Second command"</span>)<br>
|
||||
<span style="color:blue;">Case</span> 102<br>
|
||||
MsgBox(<span style="color:#a31515;">"Third command"</span>)<br>
|
||||
<span style="color:blue;">Case Else</span><br>
|
||||
MsgBox(cmdID)<br>
|
||||
<span style="color:blue;">End</span> <span style="color:blue;">Select</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;">Declare</span> <span style="color:blue;">Function</span> InsertMenu <span style="color:blue;">Lib</span> <span style="color:#a31515;">"user32"</span> <span style="color:blue;">Alias</span> <span style="color:#a31515;">"InsertMenuA"</span> _<br>
|
||||
(<span style="color:blue;">ByVal</span> hMenu <span style="color:blue;">As</span> System.<span style="color:#2b91af;">IntPtr</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> uPosition <span style="color:blue;">As</span> <span style="color:blue;">Integer</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> uFlags <span style="color:blue;">As</span> <span style="color:blue;">Integer</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> uIDNewItem <span style="color:blue;">As</span> System.<span style="color:#2b91af;">IntPtr</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> lpNewItem <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>
|
||||
<br>
|
||||
<span style="color:blue;">Private</span> <span style="color:blue;">Declare</span> <span style="color:blue;">Function</span> TrackPopupMenu <span style="color:blue;">Lib</span> <span style="color:#a31515;">"user32"</span> <span style="color:blue;">Alias</span> <span style="color:#a31515;">"TrackPopupMenu"</span> _<br>
|
||||
(<span style="color:blue;">ByVal</span> hMenu <span style="color:blue;">As</span> <span style="color:#2b91af;">IntPtr</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> uFlags <span style="color:blue;">As</span> <span style="color:blue;">Integer</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> x <span style="color:blue;">As</span> <span style="color:blue;">Integer</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> y <span style="color:blue;">As</span> <span style="color:blue;">Integer</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> nReserved <span style="color:blue;">As</span> <span style="color:blue;">Integer</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> hWnd <span style="color:blue;">As</span> <span style="color:#2b91af;">IntPtr</span>, _<br>
|
||||
<span style="color:blue;">ByVal</span> prcRect <span style="color:blue;">As</span> <span style="color:#2b91af;">IntPtr</span>) <span style="color:blue;">As</span> <span style="color:blue;">Integer</span><br>
|
||||
<br>
|
||||
<span style="color:blue;">End</span> <span style="color:blue;">Module</span></p>
|
||||
</font>
|
||||
<p style="font-family: Courier New; font-size: 13; color: black; background: white url('')" align="center">
|
||||
<a href="#Top">Back to top</a></p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user