|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
|
||||
Как узнать, какие интерфейсы принадлежат данной категории?04.04.2013, 19:46. Показов 2501. Ответов 15
Метки нет (Все метки)
Роджерсон:
Не могу я узнать, какие интерфейсы задаёт некоторая категория. Помогите, ребята! На всякий случай:
Добавлено через 16 минут Ведь работать надо как: допустим, нам нужно использовать какой-то интерфейс. Ладно, мы не можем СРАЗУ узнать, какой компонент его использует. НО что мы можем сделать? 1) Пробежаться по категориям компонентов 2) Выбрать те, в которые этот интерфейс включен 3) Пробежаться по выбранным и выбрать нужный компонент Если такого нельзя сделать (пункт 2)- остаётся руками только разводить- на фига вся эта бальда задумана.
1
|
||||
| 04.04.2013, 19:46 | |
|
Ответы с готовыми решениями:
15
|
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|||
| 05.04.2013, 11:56 | |||
|
---- однако oleview как-то узнает какие интерфейсы поддерживает объект... интересно - как? Добавлено через 8 минут а. понял. наверное он дергает IDispatch Добавлено через 2 минуты хм... нет. не так...
0
|
|||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
|
|||
| 05.04.2013, 12:30 [ТС] | |||
0
|
|||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
||
| 05.04.2013, 13:14 | ||
|
--- а теперь ложка ужаса. как oleview узнает какие у моего объекта интерфейсы? никак. он не может узнать этого никак. чудес не бывает. поэтому он запрашивает ВСЕ УСТАНОВЛЕННЫЕ В СИСТЕМЕ интерфейсы у моего несчастного объекта. те интерфейсы на которые мой объект вернул "добро" oleview помещает в свое дерево. в лог файл ушло 15 448 запросов о выдаче указателя на интерфейс. вот такой вот стресс-тест на ровном месте. а вы говорите слишком затяжное мероприятие ![]() Добавлено через 4 минуты ...причем если бы я не регистрировал библиотеку типов (а как еще по другому запись об интерфейсе попала в реестр?) - ну, вот, монстр я - сам реализовал маршалинг или не нуждался в нем вовсе по причине того что объект реализован в DLL - oleview тупо не нашел бы моих интерфейсов. а они бы были
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
|
||
| 05.04.2013, 13:17 [ТС] | ||
|
И маршаллинг я ещё не изучил. Я же не виноват, что Роджерсон велит смотреть OLeView сейчас, а маршаллинг неизвестно когда ещё будет. И библиотеку типов не изучил.
0
|
||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|||
| 05.04.2013, 13:51 | |||
|
-вы можете узнать все компоненты принадлежащие выбранной категории (через объект CLSID_StdComponentCategoriesMgr) -вы можете узнать все интерфейсы зарегистрированные в системе (не смотрел чем, но явно как-то можно, хотя бы через реестр) -вы можете у всех компонентов принадлежащих выбранной категории запросить все интерфейсы зарегистрированные в системе и выделить те из них которые есть у всех компонентов принадлежащих выбранной категории ...но не факт, что ваше знание поможет вам. ибо как было сказано: категория не равна четко обозначенному списку интерфейсов. категория - это просто пометка. зеленый фломастер.
0
|
|||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
|
|
| 05.04.2013, 14:00 [ТС] | |
|
Да то, что категория не абсолют, я понял уже. Ещё: а с помощью OleView это делается? Попробуйте у себя на компе хоть для одного самого захудалого интерфейса найдите категорию, к которой он принадлежит. Ну или для какой-нибудь захудалой категории найдите интерфейс, который в неё входит. С помощью OleView. А я потом за вами повторю. Пока же я вижу там связь категорий и компонентов, не более.
0
|
|
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|||
| 05.04.2013, 14:28 | |||
|
0
|
|||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
|
||||
| 05.04.2013, 14:45 [ТС] | ||||
|
+++++++++++++++++++++++++++++++++++ Сказано ведь:
Так какие в ней входят? Так-то это не пространное знание, а вполне себе конкретное. Только непонятно, как это знание узнать.
0
|
||||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|||
| 05.04.2013, 15:23 | |||
0
|
|||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
|
|
| 05.04.2013, 15:59 [ТС] | |
|
Так сразу бы так и сказали, что не знаете. Вопрос открыт.
0
|
|
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
||
| 05.04.2013, 16:06 | ||
|
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
|
|
| 05.04.2013, 16:12 [ТС] | |
|
0
|
|
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
||
| 05.04.2013, 16:23 | ||
|
хм. ну а вот так
"As the number of available components grows, it becomes increasingly difficult to manage these components. In terms of the interfaces they expose as well as the tasks they perform, many components offer similar functionality." из http://msdn.microsoft.com/ru-R... s.85).aspx Добавлено через 2 минуты набор интерфейсов, которым присвоен CLSID" нигде не роняет слов про то что же это за "набор" такой. предлагаю провести лингвистическую экспертизу его книги ![]() Добавлено через 3 минуты ...кстати вот тут http://msdn.microsoft.com/ru-R... s.85).aspx вообще пена ---- "The author of a component category definition creates a unique GUID (the CATID) that is published along with the definition. Other parties know the definition of this type and can make use of its supported classes accordingly. Like the method signature of an interface, a category's semantics should not be modified after being installed. It is better to maintain backward compatibility of the category by introducing a new category identifier with revised semantics. Because interface identifiers (IID) and component category identifiers (CATID) exist in different namespaces, it seems as if it would be possible to use the same GUID for both an IID and a CATID. However, since IIDs are often used for the CLSID of the interface's proxy/stub server, there is the potential for conflict. Therefore, do not use the same GUID for an IID and CATID." ---- то есть насколько я понял они склоняют нас к тому что мы могли бы (если бы не было возможности конфликта) обзывать категории идентификаторами интерфейсов.. бред. получается каждому интерфейсу была бы сопоставлена категория.
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
|
||
| 05.04.2013, 17:16 [ТС] | ||
|
Это типа философская проблема. X(компонент) принадлежит множеству Y(категории). Что из этого следует? Ничего ровным счётом. А потому не следует, что у нас нет ни одной из характеристик Y. Что это за множество- чёрт его знает. А вот если бы у него была какая-то другая характеристика- набор интерфейсов, тогда бы мы про X сказали- ого, да надо как-то связать X с этим набором- наверное, он их реализует. Пока же наблюдаем что некоторые интерфейсы сгруппированы в категории, которые нам ни фига не дают. Ничё полезного.
0
|
||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
||
| 06.04.2013, 14:33 | ||
|
0
|
||
| 06.04.2013, 14:33 | |
|
Помогаю со студенческими работами здесь
16
Через какие интерфейсы сделать свой DataSource?
Какие интерфейсы и методы должен реализовывать любой класс?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|