Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как dcomcnfg вычисляет AppId? [D5, Win2k]


kingdom ©   (2003-02-03 12:00:00) 

При инсталяции некоторой проги я выполняю автоматическую настройку DCOM (чтобы пользователю не запускать dcomcnfg.exe).
Так вот, до недавнего времени я считал что dcomcnfg берет в кажестве AppId, GUID первого CoClass"а из библиотеки типов,
однако, появилось несколько новых серверов где это оказалось не так.

Как же dcomcnfg выбирает AppId?


Набережных С.   (2003-02-06 14:27:00) [1]

К хирургу.


kingdom   (2003-02-06 12:20:00) [2]

>Набережных С.
"он использует GUID одного из классов, но только в том случая, если сервер сам не зарегистрировал свой AppID"
ну да так оно и происходит, изначально серверам и нечего там писать (как правило)!

И все-таки, вопрос остается открытым,
по какому принципу dcomcnfg выбирает GUID для использования в качестве AppId?


Набережных С.   (2003-02-05 14:25:00) [3]

>kingdom © (04.02.03 11:40)

Он не генерит. Ты правильно написал, что он использует GUID одного из классов, но только в том случая, если сервер сам не зарегистрировал свой AppID. AppID нужен для подсистемы безопасности. До появления DCOM защиты в COM не было и ключа этого не было, а когда в NT4 появилась DCOM, то потребовалась и защита. Тогда и был введен этот ключ. В общем, RTFM.


kingdom   (2003-02-04 11:40:00) [4]

>Набережных С.
Интересно он генерит, что AppId всегда совпадает с одним из GUID"ов из библиотеки типов, замечу, что я не один десяток серверов регистрировал.


Набережных С.   (2003-02-03 17:07:00) [5]

>kingdom ©

Dcomcnfg сам создает AppID для совместимости со старыми серверами, не регистрирующими AppID самостоятельно. Нормально и правильно самому провести регистрацию, используя для этого уникальный GUID.


kingdom   (2003-02-03 16:22:00) [6]

>Юрий Федоров
Это понятно, а вот чему равен AppId?

>to all
На самом деле в качестве AppId подойдет любой GUID, можно даже его самому сгенерировать, но хочется, чтобы он был точно такой же как у dcomcnfg. Вроде это всегда GUID ко-класса, но вот какого именно, если их несколько не очень понятно...


Юрий Федоров   (2003-02-03 16:14:00) [7]

Если я правльно понял, то AppID должен быть записан как параметр в ветке с CLSID


kingdom   (2003-02-03 16:06:00) [8]

>icWasya
Даже не знаю, что сказать, на тестовом примере децствительно так,
но есть один сервер где такие GUID"ы
{44EC98AD-5B98-4CE3-A530-06ABDF5D7152}
{7C494E12-B750-4F62-BC2D-A7A597F1C0E9}
{579F6038-90A7-432D-B202-D2AF1C18A032}
и при этом dcomcnfg выбирает последний!


icWasya   (2003-02-03 15:02:00) [9]

а проверь такой вариант - в каком порядке GUID`ы встречаются в Реестре???


kingdom   (2003-02-03 14:58:00) [10]

Согласен, что проблема не глобпльная, но может есть гуру, которые помогут :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо