Set and Get Paths of Interface Files Example (VBA)

This example shows how to set and get the paths of interface files.

'--------------------------------------------------------------
' Preconditions:
' 1. Create a VBA macro in a software product in which VBA is
'    embedded.
' 2. Copy and paste this example into the Visual Basic IDE.
' 3. Add a reference to the DraftSight type library,
'    install_dir\bin\dsAutomation.dll.
' 4. Start DraftSight.
' 5. Run the macro.
'
' Postconditions:
' 1. Connects to DraftSight.
' 2. Sets different alias, custom icon, customization, and 
'    menu file paths.
' 3. Gets different alias, custom icon, customization, and 
'    menu file paths. Click OK to close each message box.
'
' NOTE: To verify, you can also click Tools > Options >  
' File Locations and expand Interface. Then expand and  
' examine Alias File Location, Custom Icon Location, 
' Customization File, and Menu Files.
'--------------------------------------------------------------
Option Explicit
Sub main()
    Dim dsApp As DraftSight.Application    
    'Connect to DraftSight
    Set dsApp = GetObject(, "DraftSight.Application")    
    If dsApp Is Nothing Then
         Return
    End If    
    'Abort any command currently running in DraftSight
    'to avoid nested commands
    dsApp.AbortRunningCommand    
    Dim dsInterfaceFiles As DraftSight.InterfaceFiles
    If dsInterfaceFiles Is Nothing Then
        MsgBox "There are no valid interface files."
        Exit Sub
    End If    
    'Set and get different file paths
    dsInterfaceFiles.AliasFilePath = "C:\Program Files\Dassault Systemes\DraftSight\Default Files\Alias"
    dsInterfaceFiles.AliasFilePath = ""
    dsInterfaceFiles.CustomizationFilePath = ""
    dsInterfaceFiles.MenuFilesPath = "C:\Program Files\Dassault Systemes\DraftSight\Default Files\StartupMenu\english"
    
    MsgBox "Alias file path: " & dsInterfaceFiles.AliasFilePath
    MsgBox "Custom icon path: " & dsInterfaceFiles.CustomIconPath
    MsgBox "Customization file path: " & dsInterfaceFiles.CustomizationFilePath
    MsgBox "Menu files path: " & dsInterfaceFiles.MenuFilesPath    
End Sub