--- title: "ExternalRunCommand - Головная функция библиотеки" type: guide api: [api7] tags: [guide, api7, externalruncommand] sources: - externalruncommand.html --- *Создание прикладных библиотек  > Оформление прикладных библиотек типа ActiveX  > Пример простейшей программы в среде VB, оформленной в виде ActiveX библиотеки КОМПАС  > Функции * ## ExternalRunCommand - Головная функция библиотеки void ExternalRunCommand (short command, short mode, IDispatch* kompas); Синтаксис Visual Basic: Public Sub ExternalRunCommand (ByVal command As Integer, ByVal mode As Integer, ByVal kompas_ As Object) Входные параметры: | command | - номер выполняемой команды; | | --- | --- | | mode | - режим работы: 0 - normal - обычный режим, 1 - demo - вызов из дистрибутивной задачи в деморежиме, 2 - demoEx - вызов из демоверсии; | | kompas | - интерфейс KompasObject или IApplication. | Примечание: 1. При вызове команды библиотеки из меню, панели инструментов или при редактировании библиотечного элемента по двойному нажатию кнопки мыши управление передается этому методу с номером выбранной команды. 2. Библиотека должна обязательно содержать один из предопределенных методов ExternalRunCommand, который определяет точку входа в приложение или LibInterfaceNotifyEntry. Наличие хотя бы одного из этих методов позволяет системе КОМПАС идентифицировать произвольный ActiveX DLL как собственное приложение. 3. Параметр kompas может быть указателем на интерфейс IApplication, если в библиотеке есть метод IsOnApplication7, и этот метод вернул значение TRUE, т.е. библиотека работает на API версии 7. Во всех остальных случаях параметр kompas будет указателем на интерфейс KompasObject. ## Пример использования функции ExternalRunCommand Public Sub ExternalRunCommand(ByVal command As Integer, ByVal mode As Integer, ByVal Kompas As Object) Select Case command Case 1 Dim document As Object 'КОМПАС-документ Set document = Kompas.Document3D '3D-документ If Not document is Nothing Then Kompas.ksMessage "Получен 3D-документ" End If Set document = Nothing 'освободить документ Case Else MsgBox "Команда " + Str(command) + " не выполнена" End Select End Sub