• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Плагин WorkFlow на C#

Автор once, 10.05.17, 14:31:21

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

once

Пытаюсь написать плагин для WorkFlow на шарпе, но не могу понять какое описание должно быть у функции, которая вызывается из автоматической операции через ExecDLLFunction.
Вот, что у меня получилось на C#:

[DllExport("WFAddObject", CallingConvention.StdCall)]
public static string WFAddObject(IntPtr wfbl)
     {         
         MessageBox.Show("Привет, WF!");
         return "Ура!";
     }

Знаю, что не хватает параметров, но так она хоть работает, Т.е. при отработке автооперации появляется сообщение "Привет, WF!". Но вот сообщение "Ура!" уже не появляется, потому что (предполагаю что поэтому) WFAddObject должен возвращать OleVariant, которого нет в шарпе и автооперация ниже не выдает сообщение "Ура!".

Program Main;
begin             
  boRes:=ExecDLLFunction('D:\Путь\My.dll', 'WFAddObject');
  if boRes <> '' then
    begin
      MsgBox('!!!', boRes, MB_OK+MB_ICONERROR);
    end;
SetResultOperation(0);
end;

Еще в WFAddObject первым параметром должен прийти указатель на интерфейс IWFBusinessLogic, но если делать как ниже не работает :-(

[DllExport("WFAddObject", CallingConvention.StdCall)]
public static string WFAddObject(IntPtr wfbl)
     {         
         IWFBusinessLogic bl = (IWFBusinessLogic)Marshal.GetTypedObjectForIUnknown(wfbl, typeof(IWFBusinessLogic));
         MessageBox.Show("Привет, WF!");
         return "Ура!";
     }

Подскажите как на шарпе правильно описать функцию WFAddObject для плагина WF.

nnspu

Столкнулся с необходимостью написать плагин Workflow на c#. Получилось корректно передать параметры?

Chaa


nnspu

Отличная статья!
Код прекрасно работает, спасибо!