Вот недавно необходимость возникла на С# разработать приложение мелкое. Те, кто работают на c# с Wiaon ActiveX могут столкнуться с проблемами вывода, например, списка имен объектов мониторинга. Пример:
У IWialonCollection нельзя напрямую вызвать свойство Item.
В C# необходимо приводить типы.... 
В приложенном файле написан отдельный класс, который принимает логин и пароль пользователя и возвращает следующие значения:
Unit_name  - Имена всех объектов мониторинга, которые доступны пользователю
UnitId  - ID всех юнитов (объектов мониторинга) пользователя
DriverID - ID водителя. !!!!! Прошу обратить внимание, не имя водителя, а его ID.
Если необходимы мои комментарии к коду- предоставлю 
Может кто "спасибо" скажет 
----
Файл не прикрепился, вывожу его содержимое сюда:
using System;
using System.Collections.Generic;
using System.Text;
namespace WIalonActiveX_test
{
    class Common
    {
      
        public string connect(string login, string passwd)
            {
                    long epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
                    int i = 1;
                    int j = 1; 
                    string unitID = "";
                    string unitDriver = "";
                    string unitName = "";
                    string containUnitInfo = "";
                    WialonActiveXLib.WialonConnection connect = new WialonActiveXLib.WialonConnection();
                    WialonActiveXLib.WialonCollection units = new WialonActiveXLib.WialonCollection();
                    WialonActiveXLib.WialonCollection messages = new WialonActiveXLib.WialonCollection();
                    units = connect.Login("https://activex.gurtam.com", 443, login, passwd, "", 0);
                    WialonActiveXLib.WialonUnit unit =  new WialonActiveXLib.WialonUnit();
                    WialonActiveXLib.WialonUnitMsg uMsg = new WialonActiveXLib.WialonUnitMsg(); //= new WialonActiveXLib.WialonUnitMsg();
                    
                    while (i < units.Count)
                    {
                        unitDriver = null;
                        unit = (WialonActiveXLib.WialonUnit)units[i];
                        messages = unit.GetMessages(Convert.ToUInt32(epoch) - 604800, Convert.ToUInt32(epoch));
                        while (j <= messages.Count)
                        {
                            uMsg = (WialonActiveXLib.WialonUnitMsg)messages[j];
                            if (uMsg != null)
                            {
                                unitDriver += uMsg.Driver;
                            }
                            
                            j++;
                        }
                        
                       
                    
                        unitName = unit.Name;
                        
                        unitID = unit.ID.ToString();
                        containUnitInfo += ("Unit_name = "+unitName+"\r\n UnitId = "+unitID+"\r\n DriverID = "+unitDriver+"\r\n-------\r\n");
                        i++;
                    }
                    
                    return containUnitInfo;
            }
      }  
 }