---
title: "Менеджер библиотек"
type: interface
api: [api7]
tags: [interface, api7, library]
sources:
  - library_maneger.html
  - ilibrarymanager.html
  - ilibrary.html
  - iprocedure.html
  - iinsert.html
  - ichecksum.html
  - iinserts.html
  - iinsertslibraries.html
  - iprocedures.html
  - iprocedureslibraries.html
---

*API интерфейсов. Версия 7*




## Интерфейс ILibraryManager

Интерфейс Менеджера библиотек.
Иерархия:
IKompasAPIObject
ILibraryManager
Примечание:
1. Данный интерфейс объединяет работу с библиотеками процедур (файлы *.rtw и *.dll ) и библиотеками документов: фрагментов (файлы *.lfr ) и моделей (файлы *.l3d). Интерфейс позволяет выполнять следующие действия:
•получить коллекции соответствующих библиотек, активный узел в менеджере библиотек, его название и комментарий;
•получить и управлять положением и видимостью Менеджера библиотек.
2. Данный интерфейс можно получить у интерфейса приложения IApplication с помощью свойства IApplication::LibraryManager.


## ActiveFolder - Активная папка в окне Менеджера библиотек

Функция не поддерживается
Тип данных: BSTR (строка)
Синтаксис Automation:
```
ActiveFolder = iObject.ActiveFolder    Получить свойство (* )
iObject.ActiveFolder = ActiveFolder    Установить свойство (* )
ActiveFolder = iObject.GetActiveFolder()    Получить свойство (**)
iObject.SetActiveFolder (ActiveFolder)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_ActiveFolder (&ActiveFolder)    Получить свойство
iObject->put_ActiveFolder (ActiveFolder)    Установить свойство
```
Примечание:
Позволяет получить и установить имя текущей папки в Менеджере библиотек.


## ActiveFolderComment - Комментарий активной папки

Функция не поддерживается
Тип данных: VARIANT
Синтаксис Automation:
```
ActiveFolderComment = iObject.ActiveFolderComment    Получить свойство (* )
iObject.ActiveFolderComment = ActiveFolderComment    Установить свойство (* )
ActiveFolderComment = iObject.GetActiveFolderComment()    Получить свойство (**)
iObject.SetActiveFolderComment (ActiveFolderComment)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_ActiveFolderComment (&ActiveFolderComment)    Получить свойство
iObject->put_ActiveFolderComment (ActiveFolderComment)    Установить свойство
```
Примечание:
Комментарий текущей папки может быть многострочным. Поэтому свойство возвращает или принимает переменную типа VARIANT на безопасный массив строк SAFEARRAY (VT_ARRAY | VT_BSTR).


## AddFolder - Добавить новую папку в Менеджер библиотек

Функция не поддерживается
Синтаксис Automation:
```
void AddFolder (BSTR PathFolder);
```
Синтаксис COM:
```
HRESULT AddFolder ([in] BSTR PathFolder);
Входные параметры:
PathFolder    - путь в Менеджере библиотек к папке. Если папка является вложенной, т. е. добавляется в другую папку, имена папок внутри пути отделяются символом "    ".
```


## CurrentLibrary - Текущая прикладная библиотека

Тип данных: указатель на интерфейс IProceduresLibrary
Синтаксис Automation:
```
CurrentLibrary = iObject.CurrentLibrary    Получить свойство (* )
CurrentLibrary = iObject.GetCurrentLibrary()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_CurrentLibrary (&CurrentLibrary)    Получить свойство
```
Примечание:
1. Подключенными одновременно могут быть несколько библиотек, но текущей библиотекой может быть одна.
2. Текущей является библиотека, у которой непосредственно выполняется команда или вызван обработчик события.


## DocumentsLibraries - Коллекция библиотек документов

Тип данных: Указатель на интерфейс IInsertsLibraries
Синтаксис Automation:
```
DocumentsLibraries = Object.DocumentsLibraries    Получить свойство (* )
DocumentsLibraries = Object.GetDocumentsLibraries()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_DocumentsLibraries( &DocumentsLibraries )    Получить свойство
```
Примечание:
Свойство доступно только для чтения


## FragmentsLibraries - Коллекция библиотек фрагментов

Тип данных: Указатель на коллекцию библиотек документов IInsertsLibraries
Синтаксис Automation:
```
FragmentsLibraries = iObject.FragmentsLibraries    Получить свойство (* )
LayerGroups = iObject.GetLayerGroups()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_FragmentsLibraries (&FragmentsLibraries)    Получить свойство
```
Примечание:
1. Свойство позволяет получить коллекцию библиотек фрагментов, которые зарегистрированы в Менеджере библиотек.
2. Под библиотекой фрагментов понимается библиотека документов КОМПАС, состоящая из фрагментов.
3. Следует различать следующие состояния библиотек фрагментов:
•зарегистрирована в Менеджере библиотек; имеется описание библиотеки в Менеджере,
•подключена; эта библиотека отображается в меню "Библиотеки", рядом с ее названием в списке показан знак «галочка»,
4. Если библиотека защищена лицензией, то при подключении библиотеки она захватывает лицензию.
5. Фрагменты из подключенной библиотеки могут быть вставлены в графические документ системы КОМПАС.
6. Если библиотека не защищена, ее можно редактировать.


## GetConverterPath - Получить путь к библиотеке конвертера по имени

Синтаксис Automation:
```
BSTR GetConverterPath( BSTR LibraryName );
```
Синтаксис COM:
```
HRESULT GetConverterPath( BSTR LibraryName, BSTR * Result );
Возвращаемое значение:
- .Путь к библиотеке.
Входные параметры:
LibraryName    - Имя библиотеки.
КOMPAS v24
```


## GetPredefinedTextLibraryPath - Получить путь к библиотеке предопределенных текстов *.kle

Синтаксис Automation:
```
BSTR GetPredefinedTextLibraryPath();
```
Синтаксис COM:
```
HRESULT GetPredefinedTextLibraryPath( BSTR * Result );
Возвращаемое значение:
- .Путь к библиотеке.предопределенных текстов *.kle.
КOMPAS v24
```


## IsDocumentExistInLibrary - Функция проверяет существование документа с именем в библиотеке документов

Синтаксис Automation:
```
BOOL IsDocumentExistInLibrary( BSTR LibraryPath, BSTR DocumentPath );
```
Синтаксис COM:
```
HRESULT IsDocumentExistInLibrary( BSTR LibraryPath, BSTR DocumentPath, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения.
FALSE    - в случае неудачи.
Входные параметры:
LibraryPath    - путь к библиотеке документов (*.kle, *.lfr *.l3d),
DocumentPath    - путь к документу внутри библиотеки.
КOMPAS v24
```


## Layout - Положение Менеджера библиотек (вверху, внизу, слева, справа, плавающий)

Тип данных: PropertyManagerLayout
Синтаксис Automation:
```
Layout = iObject.Layout    Получить свойство (* )
Layout = iObject.GetLayout()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Layout (&Layout)    Получить свойство
```
Примечание:
Позволяет получить положение Менеджера библиотек.


## ModelsLibraries - Коллекция библиотек моделей

Тип данных: Указатель на коллекцию библиотек документов IInsertsLibraries
Синтаксис Automation:
```
ModelsLibraries = iObject.ModelsLibraries    Получить свойство (* )
ModelsLibraries = iObject.ModelsLibraries()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_ModelsLibraries (&ModelsLibraries)    Получить свойство
```
Примечание:
1. Свойство позволяет получить коллекцию библиотек моделей, которые зарегистрированы в Менеджере библиотек.
2. Под библиотекой фрагментов понимается библиотека документов КОМПАС, состоящая из деталей и сборок.
3. Следует различать следующие состояния библиотек фрагментов:
•зарегистрирована в Менеджере библиотек; имеется описание библиотеки в Менеджере,
•подключена; эта библиотека отображается в меню "Библиотеки", рядом с ее названием в списке показан знак «галочка»,
4. Если библиотека защищена лицензией, то при подключении библиотеки она захватывает лицензию.
5. Модели из подключенной библиотеки могут быть вставлены в документ-модель системы КОМПАС.
6. Если библиотека не защищена, ее можно редактировать.


## ProceduresLibraries - Коллекция прикладных библиотек

Тип данных: IProceduresLibraries
Синтаксис Automation:
```
ProceduresLibraries = iObject.ProceduresLibraries    Получить свойство (* )
ProceduresLibraries = iObject.GetProceduresLibraries()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_ProceduresLibraries (&ProceduresLibraries)    Получить свойство
```
Примечание:
1. Свойство позволяет получить коллекцию процедурных библиотек, которые зарегистрированы в Менеджере библиотек.
2. Под процедурной библиотекой понимается библиотека, разработанная в какой-либо среде программирования с использованием Компас API.
3. Следует различать следующие состояния процедурных библиотек:
•зарегистрирована в Менеджере библиотек; имеется описание библиотеки в Менеджере,
•подключена; библиотека подключена к задаче, эта библиотека отображается в меню "Библиотеки", рядом с ее названием в списке показан знак «галочка»,
•библиотека выполняется (является текущей); вызвана команда (процедура) библиотеки или библиотека подписалась на события системы КОМПАС. В случае выполнения библиотечной команды библиотеку нельзя отключить и удалить описание библиотеки из Менеджера библиотек.
4. Если библиотека защищена лицензией, то при подключении библиотеки она захватывает лицензию.


## RemoveFolder - Удалить папку из Менеджера библиотек

Функция не поддерживается
Синтаксис Automation:
```
void RemoveFolder (BSTR PathFolder);
```
Синтаксис COM:
```
HRESULT RemoveFolder ([in] BSTR PathFolder);
Входные параметры:
PathFolder    - путь в Менеджере библиотек к папке. Если папка является вложенной, т. е. добавляется в другую папку, имена папок внутри пути отделяются символом "    ".
```


## SetCurrentLibrary - Установить текущую прикладную библиотеку

Синтаксис Automation:
```
BOOL SetCurrentLibrary (LPDISPATCH pVal);
```
Синтаксис COM:
```
HRESULT SetCurrentLibrary ([in] IProceduresLibrary* pVal, [out, retval] VARIANT_BOOL* result);
Входные параметры:
pVal    - интерфейс библиотеки IProceduresLibrary, которую нужно сделать текущей.
Возвращаемое значение:
TRUE    - библиотека стала текущей,
FALSE    - в случае ошибки.
```
Примечание:
Данный метод следует использовать осторожно, иначе можно нарушить последовательность выполнения библиотек.
Метод может быть применен к подключенной библиотеке.
Метод позволяет остановить режим SystemControlStart, запущенный не из выполняемой (текущей) библиотеки. Для этого необходимо выполнить следующие действия:
1. При помощи свойства SystemControlStartLibrary получить библиотеку, вызвавшую SystemControlStart.
2. Сделать ее текущей методом SetCurrentLibrary.
3. При помощи метода ksSystemControlStop вернуть управление библиотеке, которая запустила SystemControlStart.
4. Восстановить в качестве текущей выполняемую ранее библиотеку.


## SystemControlStartLibrary - Получить прикладную библиотеку, которая запустила SystemControlStart

Тип данных: IProceduresLibrary
Синтаксис Automation:
```
SystemControlStartLibrary = iObject.SystemControlStartLibrary    Получить свойство (* )
SystemControlStartLibrary = iObject.GetSystemControlStartLibrary()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_SystemControlStartLibrary (&CurrentLibrary)    Получить свойство
```
Примечание:
1. Свойство позволяет вернуть интерфейс библиотеки.
2. Библиотека во время выполнения может вызвать функцию SystemControlStart для передачи управления системе КОМПАС. После вызова этой функции выполнение библиотеки приостанавливается.
3. Управление возвращается библиотеке при вызове функции SystemControlStop из этой же библиотеки или при выполнении соответствующей команды меню.


## SystemControlStartResult - Получить результат работы SystemControlStart

Тип данных: ksSystemControlStartEnum.
Синтаксис Automation:
```
SystemControlStartResult = iObject.SystemControlStartResult    Получить свойство (* )
SystemControlStartResult = iObject.GetSystemControlStartResult()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_SystemControlStartResult (&SystemControlStartResult)    Получить свойство
```


## Visible - Свойство видимости Менеджера библиотек

Тип данных: BOOL
Синтаксис Automation:
```
Visible = iObject.Visible    Получить свойство (* )
iObject.Visible = Visible    Установить свойство (* )
Visible = iObject.GetVisible()    Получить свойство (**)
iObject.SetVisible (Visible)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Visible (&Visible)    Получить свойство
iObject->put_Visible (Visible)    Установить свойство
```
Примечание:
Позволяет получить и установить свойство видимости Менеджера библиотек.


## Интерфейс ILibrary

Базовый интерфейс всех библиотек системы КОМПАС.
Иерархия:
IKompasAPIObject
ILibrary
Описание:
Базовый интерфейс для прикладных библиотек, библиотек фрагментов и библиотек моделей. Включает в себя функционал, общий для этих библиотек. С помощью этого интерфейса можно узнать тип библиотеки, имя библиотеки, имя файла, признак лицензионной защиты, управлять подключением библиотеки.


## Attach - Подключение библиотеки

Тип данных: BOOL
Синтаксис Automation:
```
Attach = iObject.Attach    Получить свойство (* )
iObject.Attach = Attach    Установить свойство (* )
Attach = iObject.GetAttach()    Получить свойство (**)
iObject.SetAttach (Attach)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Attach (&Attach)    Получить свойство
iObject->put_Attach (Attach)    Установить свойство
Значение свойства:
TRUE    - библиотека подключена,
FALSE    - библиотека не подключена.
```
Примечание:
Свойство позволяет получить и управлять подключением библиотеки. При подключении библиотеки в системе КОМПАС создается объект, отвечающий за работу данной библиотеки. В Менеджере библиотек напротив имени библиотеки появляется значок «галочка». “Захватывается лицензия на библиотеку. Если это прикладная библиотека, то подключенную библиотеку можно посылать на выполнение, вызвав метод Execute. Для библиотек документов можно производить вставку документа в документ КОМПАС.


## Enable - Признак лицензионной защиты библиотеки

Тип данных: BOOL
Синтаксис Automation:
```
Enable = iObject.Enable    Получить свойство (* )
Enable = iObject.GetEnable()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Enable( &Enable )    Получить свойство
Значения свойства:
TRUE    - библиотека доступна для выполнения или вставки,
FALSE    - библиотека недоступна для выполнения или вставки.
```
Примечание:
Свойство возвращает признак лицензионной защиты библиотеки. Библиотека может быть не подключена.


## Execute - Выполнить команду

Синтаксис Automation:
```
BOOL Execute (long command, LPDISPATCH external, VARIANT_BOOL post);
```
Синтаксис COM:
```
HRESULT Execute([in] long command,
[in] LPDISPATCH external,
[in] VARIANT_BOOL post,
[out, retval] VARIANT_BOOL* pVal);
Входные параметры:
command    - номер команды,
external    - интерфейс для обмена данными между библиотекой, вызвавшей Execute, и библиотекой, в которой реализована команда. Интерфейс определен разработчиком библиотек. Может быть NULL,
post    - отложенное выполнение, если TRUE, если FALSE - немедленное.
Возвращаемое значение:
TRUE    - команда выполнена.
FALSE    - команда не выполнена.
```
Примечание:
Метод позволяет выполнить команду прикладной библиотеки. При этом проверяется лицензионная защита, и может быть передан пользовательский интерфейс для обмена данными между библиотеками. Выполнение команды может быть отложенное или немедленное.
Получить интерфейс для обмена данными между библиотекой в функции LibraryEntry можно с помощью свойства IProceduresLibrary::ExternalInterface


## LibraryManagerFolder - Папка библиотеки в Менеджере библиотек

Тип данных: BSTR (строка)
Синтаксис Automation:
```
LibraryManagerFolder = iObject.LibraryManagerFolder    Получить свойство (* )
iObject->get_LibraryManagerFolder( &LibraryManagerFolder )    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_LibraryManagerFolder( &LibraryManagerFolder )    Получить свойство
```
Примечание:
1. Свойство доступно только для чтения.
2. Если библиотека зарегистрирована в Менеджере библиотек, то свойство позволяет получить в виде строки папку или папки, где библиотека располагается. Если папка является вложенной в другую папку, имена папок отделяются символом "|".


## LibraryType - Тип библиотеки

Тип данных: ksLibraryTypeEnum
Синтаксис Automation:
```
LibraryType = iObject.LibraryType    Получить свойство (* )
LibraryType = iObject.GetLibraryType()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_LibraryType( &LibraryType )    Получить свойство
```
Примечание:
Свойство возвращает тип библиотеки (прикладная, фрагментов, моделей).


## Name - Имя библиотеки

Тип данных: BSTR (строка)
Синтаксис Automation:
```
Name = iObject.Name    Получить свойство (* )
Name = iObject.GetName()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Name( &Name )    Получить свойство
```
Примечание:
Свойство возвращает отображаемое имя библиотеки, задаваемое при помощи функции DisplayLibraryName.


## PathName - Имя файла библиотеки

Тип данных: BSTR (строка)
Синтаксис Automation:
```
PathName = iObject.PathName    Получить свойство (* )
PathName = iObject.GetPathName()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_PathName( &PathName )    Получить свойство
```
Примечание:
Свойство возвращает имя файла библиотеки.


## Интерфейс IProcedure

Интерфейс команды прикладной библиотеки КОМПАС.
Иерархия:
IKompasAPIObject
IProcedure
Примечание:
1. Интерфейс позволяет получить имя, идентификатор команды, ее папку в библиотеке, выполнить команду.
2. Данный интерфейс может быть получен у интерфейса коллекции команд IProcedures с помощью свойств IProcedures::Item, IProcedures::ItemByID.


## Execute - Выполнить команду

Синтаксис Automation:
```
BOOL Execute (LPDISPATCH external, BOOL post);
```
Синтаксис COM:
```
HRESULT Execute([in] LPDISPATCH external,
[in] VARIANT_BOOL post,
[out, retval] VARIANT_BOOL* pVal);
Входные параметры:
external    - интерфейс для обмена данными между библиотекой, вызвавшей Execute, и библиотекой, в которой реализована команда. Интерфейс определен разработчиком библиотек. Может быть NULL,
post    - TRUE - отложенное выполнение.
Возвращаемое значение:
TRUE    - команда выполнена,
FALSE    - команда не выполнена.
```
Примечание:
Метод позволяет выполнить команду прикладной библиотеки. При этом проверяется лицензионная защита и может быть передан пользовательский интерфейс для обмена данными между библиотеками. Выполнение команды может быть отложенное или немедленное.


## ID - Идентификатор команды в прикладной библиотеке

Тип данных: long
Синтаксис Automation:
```
ID = iObject.ID    Получить свойство (* )
ID = iObject.GetID()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_ID (&ID)    Получить свойство
```
Примечание:
Позволяет получить идентификатор команды в прикладной библиотеке.


## LibraryFolder - Папка в прикладной библиотеке

Тип данных: строка
Синтаксис Automation:
```
LibraryFolder = iObject.LibraryFolder    Получить свойство (* )
LibraryFolder = iObject.GetLibraryFolder()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_LibraryFolder (&LibraryFolder)    Получить свойство
```
Примечание:
Позволяет получить папку в прикладной библиотеке.


## Name - Имя команды

Тип данных: строка
Синтаксис Automation:
```
Name = iObject.Name    Получить свойство (* )
Name = iObject.GetName()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Name (&Name)    Получить свойство
```
Примечание:
Позволяет получить имя команды.


## Интерфейс IInsert

Интерфейс элемента (фрагмента или модели) библиотеки элементов.
Иерархия:
IKompasAPIObject
IInsert
Описание:
Позволяет получить доступ к документу-вставке в библиотеку элементов (фрагментов или моделей).
Примечание:
Данный интерфейс можно получить у интерфейса IInserts с помощью свойства IInserts::Item или метода IInserts::Add.


## Comment - Комментарий

Тип данных: VARIANT
Синтаксис Automation:
```
Comment = iObject.Comment    Получить свойство (* )
iObject.Comment = Comment    Установить свойство (* )
Comment = iObject.GetComment()    Получить свойство (**)
iObject.SetComment (Comment)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Comment (&Comment)    Получить свойство
iObject->put_Comment (Comment)    Установить свойство
```
Примечание:
Позволяет получить и установить комментарий для вставки. Комментарий может быть многострочным. Поэтому свойство возвращает или принимает переменную типа VARIANT на безопасный массив строк SAFEARRAY (VT_ARRAY | VT_BSTR).


## Delete - Удалить элемент из библиотеки

Функция не поддерживается
Синтаксис Automation:
```
BOOL Delete();
```
Синтаксис COM:
```
HRESULT Delete ([out, retval] VARIANT_BOOL* pVal);
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет удалить вставку из библиотеки документов.


## Edit - Редактировать элемент

Функция не поддерживается
Синтаксис Automation:
```
IKompasDocument* Edit();
```
Синтаксис COM:
```
HRESULT Edit ([out, retval] IKompasDocument** pVal);
Возвращаемое значение:
Указатель на интерфейс IKompasDocument созданной вставки.
```
Примечание:
Метод позволяет создать и добавить в библиотеку документ-вставку определенного типа. В библиотеки фрагментов можно вставлять фрагменты, в библиотеки моделей, как 3D модели, так и сборки. Имя вставки и папки в имени вставки отделяются символом "|".
Пример "детали|литье|фланец".


## InsertType - Тип элемента

Тип данных: из перечисления ksDocumentsLibraryInsertionTypeEnum
Синтаксис Automation:
```
InsertType = Object.InsertType    Получить свойство (* )
InsertType = Object.GetInsertType()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_InsertType( &InsertType )    Получить свойство
```
Примечание:
Свойство доступно только для чтения


## LibraryFolder - Папка в библиотеке элементов

Тип данных: строка
Синтаксис Automation:
```
LibraryFolder = iObject.LibraryFolder    Получить свойство (* )
LibraryFolder = iObject.GetLibraryFolder()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_LibraryFolder (&LibraryFolder)    Получить свойство
```
Примечание:
Свойство позволяет получить папку вставки внутри библиотеки. Папки отделяются символом "|".
Пример "детали|литье|фланец".


## Name - Имя элемента

Тип данных: строка
Синтаксис Automation:
```
Name = iObject.Name    Получить свойство (* )
iObject.Name = Name    Установить свойство (* )
Name = iObject.GetName()    Получить свойство (**)
iObject.SetName (Name)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Name (&Name)    Получить свойство
iObject->put_Name (Name)    Установить свойство
```
Примечание:
Позволяет получить и установить имя вставки.


## PathName - Полное имя элемента

Тип данных: строка
Синтаксис Automation:
```
PathName = iObject.PathName()    Получить свойство (* )
PathName = iObject.GetPathName()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_PathName (&PathName)    Получить свойство
```
Примечание:
Свойство позволяет получить полное имя вставки вместе с папками внутри библиотеки. Папки отделяются символом "|".
Пример "детали|литье|фланец".


## Интерфейс ICheckSum

Интерфейс контрольной суммы.
Иерархия:
IKompasAPIObject
ICheckSum
Описание.
Интерфейс позволяет формировать контрольную сумму с последовательности параметров, получаемых в прикладной библиотеке, и контролировать её работоспособность. Запись в файл полученной контрольной суммы после выполнения заданной последовательности команд библиотеки с последующим сравнением значений контрольной суммы, полученных в разное время, позволяет контролировать повторяемость результатов - получения одних и тех же параметров, а в случае внесения изменений в текст библиотеки - обнаружить скрытые ошибки (ошибки, приведшие к изменению получаемых параметров и, соответственно, изменению контрольной суммы). Если в библиотеке выполняется анализ документа, рекомендуется выполнять тестовые запуски библиотеки на одних и тех же документах.
Примечание:
Данный интерфейс можно получить от интерфейса IApplicationI, используя свойство IApplication::CheckSum.


## Add - Добавить параметр к контрольной сумме

Синтаксис Automation:
```
void Add (VARIANT value, BOOL order);
```
Синтаксис COM:
```
HRESULT Add (VARIANT value, VARIANT_BOOL order);
Входные параметры:
value    - добавляемое значение,
order    - формировать суммарную контрольную сумму значений: TRUE - с учетом порядка следования значений, FALSE - без учета порядка следования значений.
```
Примечание:
Параметр value может принимать значения следующих типов:
•VT_INT,
•VT_I2,
•VT_I4,
•VT_R4,
•VT_R8,
•VT_UI1,
•VT_UINT,
•VT_BOOL,
•VT_BSTR,
•VT_ARRAY | VT_UI1.


## AddInterface - Добавить к контрольной сумме параметр, получаемый из объекта по его интерфейсу

Синтаксис Automation:
```
BOOL AddInterface (LPUNKNOWN object, BOOL order);
```
Синтаксис COM:
```
HRESULT AddInterface( LPUNKNOWN object, VARIANT_BOOL order, VARIANT_BOOL * res );
Входные параметры:
object    - указатель на интерфейс,
order    - формировать суммарную контрольную сумму значений: TRUE - с учетом порядка следования значений, FALSE - без учета порядка следования значений.
Возвращаемое значение:
TRUE    - в случае успешного получения контрольной суммы присланного объекта и добавления полученного значения в суммарную контрольную сумму,
FALSE    - в случае неудачи.
```
Примечание:
1. Метод получает значение контрольной суммы с присланного объекта по его интерфейсу и добавляет полученное значение в суммарную контрольную сумму.
2. Метод рекомендуется только для контроля интерфейсов API. Значение добавляемой контрольной суммы зависит от реализации интерфейса, и при развитии интерфейса (увеличении количества свойств и методов) контрольная сумма изменяется.
3. Метод реализован не для всех интерфейсов API.


## AddReference - Добавить к контрольной сумме параметр, получаемый из объекта по его указателю reference

Синтаксис Automation:
```
BOOL AddReference (long object, long doc, BOOL order);
```
Синтаксис COM:
```
HRESULT AddReference (long object, long doc, VARIANT_BOOL order, VARIANT_BOOL * res);
Входные параметры:
object    - указатель reference объекта,
doc    - указатель reference документа,
order    - формировать суммарную контрольную сумму значений: TRUE - с учетом порядка следования значений, FALSE - без учета порядка следования значений.
Возвращаемое значение:
TRUE    - в случае успешного получения контрольной суммы присланного объекта и добавления полученного значения в суммарную контрольную сумму,
FALSE    - в случае неудачи.
```
Примечание:
1. Метод получает значение контрольной суммы с присланного объекта по значению его указателя reference и добавляет полученное значение в суммарную контрольную сумму.
2. Метод рекомендуется только для контроля API. Значение добавляемой контрольной суммы зависит от реализации API, со временем добавляемая контрольная сумма изменяется.


## Clear - Очистить контрольную сумму

Синтаксис Automation:
```
void Clear();
```
Синтаксис COM:
```
HRESULT Clear();
```
Примечание:
Строка инициализированной (очищенной) контрольной суммы представляет собой последовательность aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.


## Result - Получить контрольную сумму в виде массива SAFEARRAY значений типа BYTE (VT_ARRAY | VT_UI1)

Тип данных: VARIANT
Синтаксис Automation:
```
Result = iObject.Result    Получить свойство (* )
Result = iObject.GetResult()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Result (&Result)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## StrResult- Получить контрольную сумму в виде строки

Тип данных: BSTR (строка)
Синтаксис Automation:
```
StrResult = iObject.StrResult    Получить свойство (* )
StrResult = iObject.GetStrResult()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_StrResult( &StrResult )    Получить свойство
```
Примечание:
1. Свойство доступно только для чтения.
2. Строка контрольной суммы представляет собой последовательность из 32 буквенных латинских символов. Строка инициализированной (очищенной) контрольной суммы представляет собой последовательность aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.


## Version - Версия контрольной суммы

Тип данных: long
Синтаксис Automation:
```
Version = iObject.Version    Получить свойство (* )
iObject.Version = Version    Установить свойство (* )
Version = iObject.GetVersion()    Получить свойство (**)
iObject.SetVersion(Version)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Version(&Version)    Получить свойство
iObject->put_Version(Version)    Установить свойство
```
Примечание:
Версия контрольной суммы это число, равное версии потока КОМПАС. ICheckSum используется для автоматизированного тестирования функционала.
Смысл тестирования заключается в получении значения контрольной суммы на тесте и сравнения его с эталонным. Контрольные суммы должны совпадать.
Причины различий могут быть следующими:
•ошибка в функционале,
•развитие функционала.
Введение свойства Version позволяет установить причину несовпадения контрольных сумм.
До введения свойства развитие функционала воспринималось как его ошибка.
Отслеживание версии контрольной суммы начинается с версии потока 0x0A001023L, что соответствует версии КОМПАС V10 SP2.
Получаем версию контрольной суммы всегда как версию потока КОМПАС.
Задать версию контрольной суммы можно следующими способами:
•непосредственно числом (версия потока),
•из перечисления ksCheckSumVersionEnum.
При получении интерфейса ICheckSum версия контрольной суммы инициируется версией потока текущей задачи КОМПАС.


## Интерфейс IInserts

Интерфейс коллекции элементов(документов) библиотеки.
Иерархия:
IKompasAPIObject
IKompasCollection
IInserts
Примечание:
Интерфейс позволяет получить документы, входящие в библиотеку. Интерфейс можно получить при помощи свойства IInsertsLibrary::Inserts от интерфейса библиотеки элементов IInsertsLibrary.


## Add - Создать и добавить элемент в коллекцию

Функция не поддерживается
Синтаксис Automation:
```
IInsert* Add( BSTR Name, DocumentTypeEnum docType );
```
Синтаксис COM:
```
HRESULT Add ([in] BSTR Name,
DocumentTypeEnum docType,
[out, retval] IInsert** Result);
Входные параметры:
Name    - имя вставки в библиотеке.
docType (DocumentTypeEnum)    - тип документа. Актуально для библиотек моделей (*.l3d). В эти библиотеки можно добавлять как сборки, так и модели. Если docType==ksDocumentPart, то это признак, что нужно добавить 3D модель.
Возвращаемое значение:
- интерфейс IInsert созданной вставки.
```
Примечание:
Метод позволяет создать и добавить в библиотеку документ-вставку определенного типа. В библиотеки фрагментов можно вставлять фрагменты, в библиотеки моделей, как 3D модели, так и сборки. Имя вставки и названия папок в имени вставки отделяются символом "|".
Пример "детали|литье|фланец".


## Item - Элемент, заданный по имени или по индексу

Тип данных: указатель на интерфейс элемента (документа) в библиотеке элементов IInsert
Синтаксис Automation:
```
Item = iObject.Item (v)    Получить свойство (* )
Item = iObject.GetItem (v)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Item (v. &Item)    Получить свойство
Входные параметры:
Index (VARIANT)    Index ( VARIANT ) - если передано целочисленное значение, то оно интерпретируется, как индекс документа в коллекции, - если передано строковое значение, то оно интерпретируется, как имя документа.
```
Примечание:
Свойство позволяет получить интерфейс вставки библиотеки документов по имени документа или по индексу документа в коллекции вставок.


## Интерфейс IInsertsLibraries

Интерфейс коллекции библиотек элементов (документов) системы КОМПАС.
Иерархия:
IKompasAPIObject
IKompasCollection
IInsertsLibraries
Описание:
Позволяет получить коллекцию библиотек элементов (документов) системы КОМПАС (фрагментов или моделей) и получить интерфейс каждой из библиотек коллекции.
Примечание:
1. Интерфейс коллекции библиотек фрагментов системы КОМПАС можно получить у интерфейса ILibraryManager с помощью свойства ILibraryManager::FragmentsLibraries.
2. Интерфейс на коллекцию библиотек моделей системы КОМПАС можно получить у интерфейса ILibraryManager с помощью свойства ILibraryManager::ModelsLibraries.


## Add - Добавить элемент в коллекцию

Синтаксис Automation:
```
LPDISPATCH Add( LPCTSTR PathName, LPCTSTR LibManagerFolder );
```
Синтаксис COM:
```
HRESULT Add( BSTR PathName, BSTR LibManagerFolder, IInsertsLibrary** Result);
Входные параметры:
PathName    - путь к библиотеке документов,
LibManagerFolder    - раздел в менеджере библиотек.
Возвращаемое значение:
- указатель на интерфейс библиотеки документов IInsertsLibrary, библиотека регистрируется в менеджере библиотек (В V17 Конфигуратор).
```


## Item - Элемент, заданный по имени или по индексу

Тип данных: указатель на интерфейс IInsertsLibrary
Синтаксис Automation:
```
Item = iObject.Item (v)    Получить свойство (* )
Item = iObject.GetItem (v)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Item (v. &Item)    Получить свойство
Входные параметры:
Index (VARIANT)    - если передано целочисленное значение, то оно интерпретируется как индекс библиотеки в коллекции, - если передано строковое значение, то оно интерпретируется как имя библиотеки.
```
Примечание:
Свойство позволяет получить интерфейс библиотеки документов по имени библиотеки или по индексу библиотеки в коллекции библиотек.


## Интерфейс IProcedures

Интерфейс коллекции процедур прикладной библиотеки КОМПАС.
Иерархия:
IKompasAPIObject
IKompasCollection
IProcedures
Примечание:
Интерфейс позволяет получить команды, входящие в библиотеку процедур.
Интерфейс можно получить при помощи свойства IProceduresLibrary::Procedures у интерфейса прикладной библиотеки IProceduresLibrary.


## Item - Команда, заданная по имени или по индексу

Тип данных: указатель на интерфейс IProcedure
Синтаксис Automation:
```
Item = iObject.Item (v)    Получить свойство (* )
Item = iObject.GetItem (v)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Item (v. &Item)    Получить свойство
Входные параметры:
Index (VARIANT)    Index ( VARIANT ), - если передано целочисленное значение, то оно интерпретируется как индекс процедуры в коллекции, - если передано строковое значение, то оно интерпретируется как имя процедуры.
```
Примечание:
Свойство позволяет получить интерфейс библиотечной команды по имени или по индексу в коллекции команд.


## ItemByID - Команда, заданная по идентификатору команды

Тип данных: указатель на интерфейс IProcedure
Синтаксис Automation:
```
Item = iObject.ItemByID (id)    Получить свойство (* )
Item = iObject.GetItemByID (id)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_ItemByID (id, &Item)    Получить свойство
Входные параметры:
ID (ID)    - идентификатор команды.
```
Примечание:
Свойство позволяет получить интерфейс библиотечной команды по идентификатору команды в коллекции команд.


## Интерфейс IProceduresLibraries

Интерфейс коллекции прикладных библиотек КОМПАС.
Иерархия:
IKompasAPIObject
IKompasCollection
IProceduresLibraries
Примечание:
1. Интерфейс позволяет получить прикладные библиотеки, зарегистрированные в Менеджере библиотек.
2. Данный интерфейс можно получить у интерфейса менеджера библиотек ILibraryManager с помощью свойства ILibraryManager::ProceduresLibraries.


## Add - Добавить элемент в коллекцию

Синтаксис Automation:
```
LPDISPATCH Add( LPCTSTR PathName, LPCTSTR LibManagerFolder );
```
Синтаксис COM:
```
HRESULT Add( BSTR PathName, BSTR LibManagerFolder, IProceduresLibrary** Result);
Входные параметры:
PathName    - путь к библиотеке документов,
LibManagerFolder    - раздел в менеджере библиотек.
Возвращаемое значение:
- указатель на интерфейс библиотеки документов IProceduresLibrary, библиотека регистрируется в менеджере библиотек (В V17 Конфигуратор).
```


## Item - Прикладная библиотека, заданная по имени или по индексу

Тип данных: указатель на интерфейс IProceduresLibrary
Синтаксис Automation:
```
Item = iObject.Item (v)    Получить свойство (* )
Item = iObject.GetItem (v)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Item (v, &Item)    Получить свойство
Входные параметры:
v (VARIANT)    - если передано целочисленное значение, то оно интерпретируется как индекс библиотеки в коллекции, - если передано строковое значение, то оно интерпретируется как имя библиотеки.
```
Примечание:
Свойство позволяет получить интерфейс прикладной библиотеки по имени библиотеки или по индексу библиотеки в коллекции библиотек.
