Можно создать в BlackBox DLL, которую загрузить из программы написанной под .Net, передать ей всяческие процедуры обратного вызоваи управлять дотнетом из этой обероновской DLL.

Пример
## Код:
```
MODULE TestCallback;

   TYPE
      Callback* = PROCEDURE (n: INTEGER);

   VAR
      callback: Callback;
      n: INTEGER;

   PROCEDURE Setup* (c: Callback);
   BEGIN callback := c
   END Setup;

   PROCEDURE Do*;
   BEGIN callback(n); INC(n)
   END Do;

END TestCallback.

DevLinker.LinkDll TestCallback.dll := TestCallback# ~
```


## Код:
```
namespace Callback
{
   class Program
   {
      public delegate void Callback (int n);

      [System.Runtime.InteropServices.DllImport("TestCallback.dll")]
      public static extern void Setup (Callback c);

      [System.Runtime.InteropServices.DllImport("TestCallback.dll")]
      public static extern void Do ();

      static void Main (string[] args)
      {
         Callback callback = new Callback(MyCallback);
         Setup(callback);
         Do(); Do(); Do(); Do();
         System.Console.ReadLine();
      }

      private static void MyCallback (int n)
      {
         System.Console.WriteLine("Callback: " + n);
      }
   }
}
```
