pva
01-10-2009, 13:02
Доброе время суток! Подскажите, пожалуйста, как попросить COM выдать имя класса (строчку), соответствующее заданному CLSID? Строчка есть в реестре, но самому лезть в реестр очень не хочется. Подойдёт ли функция ProgIdFromCLSID?
пример:
GUID: {083863F1-70DE-11d0-BD40-00A0C911CE86}
название расположено в: HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86} - значение по умолчанию
имя класса: ActiveMovie Filter Class Manager
Как разобрать по составу моникер?
Есть моникер IMoniker* filter_path
IMoniker::GetCLSID даёт {4315d437-5b8c-11d0-bd3b-00a0c911ce86}
ProgIdFromCLSID(IMoniker::GetCLSID) даёт device.1
IMoniker::GetDisplayName даёт @device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\{9852A670-F845-491B-9BE6-EBD841B8A613}
IMoniker::Enum даёт NULL
я так понимаю, что это оставной моникер, корень которого "device.1". Как получить по раздельности все остальные ветки?
пример:
GUID: {083863F1-70DE-11d0-BD40-00A0C911CE86}
название расположено в: HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86} - значение по умолчанию
имя класса: ActiveMovie Filter Class Manager
Как разобрать по составу моникер?
Есть моникер IMoniker* filter_path
IMoniker::GetCLSID даёт {4315d437-5b8c-11d0-bd3b-00a0c911ce86}
ProgIdFromCLSID(IMoniker::GetCLSID) даёт device.1
IMoniker::GetDisplayName даёт @device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\{9852A670-F845-491B-9BE6-EBD841B8A613}
IMoniker::Enum даёт NULL
я так понимаю, что это оставной моникер, корень которого "device.1". Как получить по раздельности все остальные ветки?