1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

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

Получение значений из 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. ArthurPatriot
    Ответов:
    2
    Просмотров:
    103
  2. Дедок
    Ответов:
    12
    Просмотров:
    409
  3. WebWare Team
    Ответов:
    3
    Просмотров:
    1.951
  4. Vander
    Ответов:
    3
    Просмотров:
    1.346
  5. ghostphisher
    Ответов:
    15
    Просмотров:
    600
Статус темы:
Закрыта.

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