1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Получение значений из Safearray Of Bstr от Com-объекта

Тема в разделе ".NET - программирование", создана пользователем feedbee, 7 май 2007.

Статус темы:
Закрыта.
  1. feedbee

    feedbee Гость

    Репутация:
    0
    Есть такой код:
    Код:
    Type t = 
    Type.GetTypeFromProgID("DEGetBlockFmtNamesParam.DEGetBlockFmtNamesParam.1"); 
    
    Object foo = Activator.CreateInstance(t); 
    
    HtmlEdit.ExecCommand(DHTMLEDLib.DHTMLEDITCMDID.DECMD_GETBLOCKFMTNAMES, 
    DHTMLEDLib.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref foo);
    Проблема с параметром foo. В MSDN про него сказано:
    Как мне достать в прогу значения из этого массива??? Облазил все, несколько часов что то пытался намутить - результат 0. Очень буду благодарен за помощь.

    P.S. Кстати, в отладчике значение foo показано как {System.__ComObject}
     
  2. feedbee

    feedbee Гость

    Репутация:
    0
    Да. Вообщем-то я пробывал приводить к разным типам, но любое приведение заканчивается:
    Я даже сделдал метод для раскрытия этого массива

    Код:
    void ViewStrings([MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)] ref String[] ar)
    {
    foreach (String str in ar)
    MessageBox.Show(str);
    }
    Но по-прежнему проблема - как его туда передать. Приведения типов не прокатывают (см. выше).
     
  3. feedbee

    feedbee Гость

    Репутация:
    0
    Этот код, и подобный ему на JS и VB я уже наблюдал много раз. Весь гугл обшарил же :( Здесь проблема в том, что на C# нельзя так просто писать как на VB или Java. Имея foo типа object я не могу получить его .Names... VBArray у меня нет (или не нашел?).
     
  4. feedbee

    feedbee Гость

    Репутация:
    0
    О боги, it works!
    На то что бы поиметь эту строку я потратил около 8 часов :(
    sax_ol - спасибо!!!
     
  5. feedbee

    feedbee Гость

    Репутация:
    0
    Ну так было написано. Этот кусок кода я нашел в гугле :( Есть варианты по-другому?
     
  6. feedbee

    feedbee Гость

    Репутация:
    0
    Как ни странно, и так тоже работает :)) Значит оставим object foo = new DHTMLEDLib.DEGetBlockFmtNamesParam();
     
  7. feedbee

    feedbee Гость

    Репутация:
    0
    fckeditor - он же и сделан на базе этого же компонента. Но он ращитан на web, т.е. требует наличия web-сервера. Моя же прога офлайн, простое windows applion, в нем нужно встроить визуальный HTML-эдитор с базовым набором функций. Вот это и делаю.
     
Загрузка...
Похожие Темы - Получение значений из
  1. OneDollar
    Ответов:
    6
    Просмотров:
    248
  2. Elektrolife
    Ответов:
    5
    Просмотров:
    207
  3. AL04E
    Ответов:
    4
    Просмотров:
    2.074
  4. ITman2K17
    Ответов:
    26
    Просмотров:
    3.129
  5. ITman2K17
    Ответов:
    16
    Просмотров:
    3.164
Статус темы:
Закрыта.

Поделиться этой страницей