Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Есть в C# что то наподобии GetIDsOfNames ? / 2 сообщений из 2, страница 1 из 1
27.08.2004, 15:54
    #32669238
Mr.Buba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть в C# что то наподобии GetIDsOfNames ?
В MSDN нашел только описание класса UCOMITypeInfo, но как им пользоваться незнаю.
...
Рейтинг: 0 / 0
27.08.2004, 18:35
    #32669568
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть в C# что то наподобии GetIDsOfNames ?
в свое время была такая задача - щупать COM-объекты неизвестного происхождения .

решил ее примерно так:
на МС строится класс, метод которого возвращает IUnknown для интерфейса ITypeInfo

(на C# были какие то проблемы с получением этого интерфейса)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public __gc class Unknown
{
public:
  IntPtr GetInfo(System::Object *com)
  { ITypeInfo*    ti=NULL;
    IntPtr      ptr=IntPtr::Zero;
    IntPtr      ids=Marshal::GetIDispatchForObject(com);
    if(ids!=IntPtr::Zero)
    { ((IDispatch *)(ids.ToPointer()))->GetTypeInfo(0, 0, &ti);
      if(ti!=NULL) ptr=Convert::ToInt32((int)ti); 
    }
    return(ptr);
  }        
};

в вызывающем модуле на C#
Код: plaintext
1.
2.
3.
4.
5.
6.
Unknown       tl=new Unknown();
IntPtr        un=tl.GetInfo(comObject); 
UCOMITypeInfo ss=Marshal.GetObjectForIUnknown(un) as UCOMITypeInfo;
UCOMITypeLib  tlb;
int           indx;
   // получить ITypeLib  
  ss.GetContainingTypeLib(out tlb, out indx);
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Есть в C# что то наподобии GetIDsOfNames ? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]