Инструменты пользователя

Инструменты сайта


axapta:activex

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

axapta:activex [2018/04/13 22:43]
axapta:activex [2018/04/13 22:43] (текущий)
Строка 1: Строка 1:
 +Раздел: [[Программирование | ]]>[[ВзаимодействиеСОкружением | ]]
 +----
 +
 +{{toc}}
 +=== Введение ===
 +Для работы из внешних приложений через COM предназначен AxaptaBusinessConnector
 +
 +Для работы из Axapta с COM есть две основных возможности:
 +Класс/COM и [[ЭлементУправленияActiveX]] 
 +
 +Обрабатывать события можно только в последнем случае, т.е. только в форме
 +
 +Для того, чтобы точнее понимать, какми образом вызвать методы компонентов, лучше воспользоваться [[:OleView]]. И посмеотреть его интерфейс. Например component.method в [[:VisualBasic]] может означать как вызов метода method так и получения значения свойства method и вызова его метода по умолчанию -- IDL поможет различить эти два случая
 +
 +Также можно автоматически сгенерировать обёртки для [[:БиблиотекaТипов]]: //Сервис\Средства Разработки\Мастера\Мастер оболочек для COM объектов//
 +
 +[[АвторегистрацияActiveX]] - можно заставить Axaptу устанавливать и регистрировать на клиенте ваши ActiveX при входе пользователя в систему
 +
 +=== Нити ===
 +
 +Если вы используете отдельную [[нить | ]] для работы с COM объектом, не забудьте вызвать [[:OleInitialize]]:
 +<code XPP)void OleInitialize(>
 +{
 +    DLL         winApiDLL      = new DLL('OLE32');
 +    DLLFunction method  = new DLLFunction(winApiDLL, 'OleInitialize');
 +    ;
 +    method.returns(ExtTypes::DWord);
 +    method.arg(ExtTypes::DWord);
 +    method.call(0);
 +}
 +</code>
 +=== Особенности COM в 4.0 ===
 +
 +Судя по сообщению в ньюсгруппе microsoft, в [[Ax40 | ]] добавлена подсистема CodeAccessSecurity (CAS). По умолчанию вызовы COM объектов и работа с воодом-выводом будут запрещены. Для вызова COM надо попросить InteropPermission, и только потом, если разрешат можно работать с COM.
 +<code XPP>
 + COM com;
 +InteropPermission permission = new InteropPermission(InteropKind::ComInterop);
 +;
 +permission.assert();
 +com = new COM(namespace.classname);
 +com.SomeMethod();
 +CodeAccessPermission::revertAssert();
 +</code>
 +=== солянка ===
 +Как избавиться от контектсного меню во внедренном IE:
 +<code html>
 +<BODY oncontextmenu="return false"> 
 +</code>
 +=== См. также ===
 +  *[[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]]
  
axapta/activex.txt · Последнее изменение: 2018/04/13 22:43 (внешнее изменение)