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

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


axapta:activex

Различия

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

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

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 (внешнее изменение)