--- title: "Интерфейс IKompasConverter" type: interface api: [api7] tags: [interface, api7, ikompasconverter] sources: - ikompasconverter.html --- *Создание прикладных библиотек  > Оформление библиотек типа Converter * ## Интерфейс IKompasConverter Стандартный интерфейс импорта/экспорта. Позволяет связать систему КОМПАС и библиотеки импорт/экспорта документов. Реализуется в библиотеках типа Конвертор ## CanUnloadLibrary - Разрешение на выгрузку библиотеки из памяти Тип данных:BOOL. Значения свойства: | TRUE | - библиотеку можно выгружать из памяти, | | --- | --- | | FALSE | - библиотеку нельзя выгружать из памяти. | Синтаксис Automation: ``` CanUnloadLibrary = iObject.CanUnloadLibrary Получить свойство (* )1 CanUnloadLibrary = iObject.GetCanUnloadLibrary( ) Получить свойство (**)2 ``` Синтаксис COM: ``` iObject->get_CanUnloadLibrary ( &CanUnloadLibrary ) Получить свойство. ``` Примечание: Если внутренний интерфейс параметров захвачен другими пользователями, то библиотеку нельзя выгружать из памяти до тех пор, пока он не освободится. Так как в системе КОМПАС предусмотрена автоматическая выгрузка библиотек, то перед выгрузкой будет вызвана эта функция и библиотека будет выгружена, только если она вернет TRUE. ## Convert - Запустить процесс конвертации Синтаксис Automation: ``` long * Convert ( BSTR inputFile, BSTR outfile, long command, BOOL showParam ); ``` Синтаксис COM: ``` HRESULT Convert ( [in] BSTR inputFile, [in] BSTR outfile, [in] long command, [in] VARIANT_BOOL showParam, [out, retval] long* Result ); Входные параметры: inputFile - имя исходного файла документа, outfile - новое имя файла документа, command - номер команды, showParam - TRUE - выдавать диалог параметров конвертации, - FALSE - не выдавать диалог параметров конвертации. Возвращаемое значение: 1 - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: Если имя исходного файла документа не задано, то берётся текущий документ, если новое имя файла документа не задано, то конвертация будет происходить в новый документ системы КОМПАС. ## CIonverterParameters - Получить параметры конвертора Синтаксис Automation: ``` LPDISPATCH ConverterParameters( long command); ``` Синтаксис COM: ``` HRESULT ConverterParameters ( [in] long command, [out, retval] IUnknown** iParam ); Входные параметры: command - номер команды. Возвращаемое значение: указатель на интерфейс IUnknown - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: Данный метод позволяет получить интерфейс параметров конвертирования. ## GetFilter - Получить фильтр и номер команды по типу документа Синтаксис Automation: ``` BSTR * GetFilter ( long docType, BOOL saveAs, long * command ); ``` Синтаксис COM: ``` HRESULT GetFilter ( [in] long docType, [in] VARIANT_BOOL saveAs, [out] long * command, [out, retval] BSTR* Result ); Входные параметры: docType при импорте в КОМПАС-документ - тип документа из перечисления DocumentTypeEnum, при экспорте КОМПАС-документа - тип документа, в который производится экспорт; перечисление типов документов должно быть задано в конверторе. Например, для конвертора в DXF и DWG используются типы: #define FORMAT_DXF 1 // ID команды для работы с DXF #define FORMAT_DWG 2 // ID команды для работы с DWG saveAs - TRUE - экспорт документа КОМПАС, - FALSE - импорт в документ КОМПАС. Выходные параметры: command - номер команды. Возвращаемое значение: фильтр - строка с справочным значением (например, "КОМПАС-фрагменты (*.myfrw *.myfrw " ), которое используется в диалогах открытия и сохранения файлов. ``` ## VIisualEditConvertParam - Запустить визуальное редактирование параметров конвертации Синтаксис Automation: ``` BOOL * VisualEditConvertParam ( OLE_HANDLE parentHwnd, long command ); ``` Синтаксис COM: ``` HRESULT VisualEditConvertParam ( [in] OLE_HANDLE parentHwnd, [in] long command, [out, retval] VARIANT_BOOL * val ); Входные параметры: parentHwnd - дескриптор окна родителя, command - номер команды. Возвращаемое значение: TRUE - выход из диалога по кнопке OK, FALSE - выход из диалога по кнопке Отмена. ```