Раздел: [[Программирование | ]]>[[ВзаимодействиеСОкружением | ]]
----
{{toc}}
=== Введение ===
Для работы из внешних приложений через COM предназначен AxaptaBusinessConnector
Для работы из Axapta с COM есть две основных возможности:
Класс/COM и [[ЭлементУправленияActiveX]]
Обрабатывать события можно только в последнем случае, т.е. только в форме
Для того, чтобы точнее понимать, какми образом вызвать методы компонентов, лучше воспользоваться [[:OleView]]. И посмеотреть его интерфейс. Например component.method в [[:VisualBasic]] может означать как вызов метода method так и получения значения свойства method и вызова его метода по умолчанию -- IDL поможет различить эти два случая
Также можно автоматически сгенерировать обёртки для [[:БиблиотекaТипов]]: //Сервис\Средства Разработки\Мастера\Мастер оболочек для COM объектов//
[[АвторегистрацияActiveX]] - можно заставить Axaptу устанавливать и регистрировать на клиенте ваши ActiveX при входе пользователя в систему
=== Нити ===
Если вы используете отдельную [[нить | ]] для работы с COM объектом, не забудьте вызвать [[:OleInitialize]]:
{
DLL winApiDLL = new DLL('OLE32');
DLLFunction method = new DLLFunction(winApiDLL, 'OleInitialize');
;
method.returns(ExtTypes::DWord);
method.arg(ExtTypes::DWord);
method.call(0);
}
=== Особенности COM в 4.0 ===
Судя по сообщению в ньюсгруппе microsoft, в [[Ax40 | ]] добавлена подсистема CodeAccessSecurity (CAS). По умолчанию вызовы COM объектов и работа с воодом-выводом будут запрещены. Для вызова COM надо попросить InteropPermission, и только потом, если разрешат можно работать с COM.
COM com;
InteropPermission permission = new InteropPermission(InteropKind::ComInterop);
;
permission.assert();
com = new COM(namespace.classname);
com.SomeMethod();
CodeAccessPermission::revertAssert();
=== солянка ===
Как избавиться от контектсного меню во внедренном IE:
=== См. также ===
*[[http://www.axforum.info/forums/showthread.php?s=&postid=57020]] -- обработка событий
*[[http://www.axforum.info/forums/showthread.php?threadid=4983]]
*[[http://msdn.microsoft.com/library/en-us/axapta/combasic/with_other_com_enabled/combasic_example_accessing_axapta_from_vi.asp]]
*[[http://msdn.microsoft.com/mbs/default.aspx?pull=/library/en-us/dnaxap/html/axp_usingwebserv.asp]] -- написание обёртки вокруг [[AxaptaBusinessConnector]] на [[:VbNet]] для использования в качестве [[:ВебСервис]]
*[[http://www.realcoding.net/article/view/2733]]