Автор Михаил Власов
Прислал Eugene Kasnerik
> а возможно ли в принципе, имея указатель на интерфейс IUnknown получить
> реальный GUID этого интерфейса?
Hасколько я понял, ситуация у тебя такая: Hа руках есть указатель на какой-то интерфейс, но какой именно - не известно. И тебе хотелось бы узнать, что это за интерфейс.
Так вот - идеология COM подразумевает, что:
1. Либо ты знаешь, какой интерфейс ты держишь.
2. Либо ты просишь у интерфейса другой, который тебе нужен.
Тут могу привести такую вот аллегорию:
Допустим, есть некое животное, например - осел.
У него есть всякие ослиные наросты: уши, ноги, хвост. У самцов всякие там прочите ослиные достоинства. У ослиц имеются ихние, ослиные, титьки.
Дело происходит днем. Ты подходишь к ослу и хватаешь его, скажем, за уши. Ты видишь, что это уши. И ты знаешь что с ними делать. Ты прислоняешься к ним и что есть мочи, орешь. Осел, естественно, пучит глаза и убегает. Это был вполне ожидаемый результат, и ты, радостно улыбаясь, идешь по своим делам, удовлетворенный решением поставленной задачи.
Теперь ситуация другая. Дело происходит ночью. Ты идешь и натыкаешся на что-то теплое. Ты протягиваешь руки и кого-то за что-то хватаешь. И ты хочешь узнать, кого и за что ты схватил. Это и есть описанная тобой ситуация.
По технологии, аналогичной COM, ты можешь попросить того, кого ты схватил, подставить тебе уши. Он подставляет, ты хватаешь, орешь, и, опять-же, удовлетворенный, уходишь.
Зачем тебе знать - что держат твои руки, если ты пришел с определеной целью?
Иными словами, для решения задачи "наорать и уйти" нет нужды знать - за что ты держишся.
Задачу можно решить только двумя способами:
1. Придти днем, схватить осла за уши, и сделать свое дело.
2. Придти ночью, схватить осла за что придется, попросить подставить уши, и опять-же сделать свое дело.
Только так осел уйдет ошеломленный, а ты - удовлетворенный.
P.S. Осел - это компонент. Уши, хвост, ноги и пр. части осла - это интерфейсы.