AnsweredAssumed Answered

Menu Command C# PDM API - Right click white space (no files)

Question asked by Sean Donnelly on May 2, 2017
Latest reply on May 3, 2017 by Lee CS Young

I have an entire code ready for when someone selects a file via right click. I want to add some extra code (message box and maybe something else) when they do not choose a file or folder i.e. the "white space". How would I go about doing this? I want it to basically follow the line of "Oh hey, nothing was selected, I need to give the user this". I have a small sample to get the point across below. Let me know what you think. It crashes explorer at the if statement I believe because it is based on the mlObjectID1.

 

case EdmCmdType.EdmCmd_Menu:
                        //edmVault.MsgBox(0, " $safeprojectname$", EdmMBoxType.EdmMbt_OKOnly, "SolidWorks EPDM Addin");
                        //Inspection Request
                        if (poCmd.mlCmdID == 1000) //This makes sure the menu command ID was 100, which means your addin was the one called  
                        {
                            object CreatedBy = null; //Create a variable to hold the model no.  
                            object Desc1 = null;
                            object Desc2 = null;
                            object Rev = null;
                            object StockingType = null; //Create a variable to hold the model no.
                            IEdmFolder5 srcFolder = null;
                            string fileNoExt = null;
                            
                            IEdmVault12 myVault = (IEdmVault12)poCmd.mpoVault; //Cast the vault to an Iedmvault12 object for latest functionality 
                            
                            if ((((EdmCmdData)ppoData.GetValue(0)).mlObjectID1) != 0) //mlObjectID1 will be 0 if a folder was selected and the ID of the file if a file was selected during a menu command  
                            {
                                IEdmFile5 myfile = (IEdmFile10)myVault.GetObject(EdmObjectType.EdmObject_File, (((EdmCmdData)ppoData.GetValue(0)).mlObjectID1));//Get the file object  


                                string extension = Path.GetExtension(myfile.Name);
                                MessageBox.Show(extension);
                                if (extension != ".DXF" && extension != ".dxf")
                                {
                                    MessageBox.Show("You must select a DXF drawing file.");
                                    return;
                                }
                                
                            }
                            else
                            {
                                MessageBox.Show("This was not a file or folder.");
                            }
                            #endregion
                        }
                        //Basic Drafting Update
                        break;

Outcomes