COM i aggregation

4 отговора 127 прегледа
#1

COM i aggregation

zdraveite,

opitvam se da napravia edno komponentche, koeto da izpolzvam za potrasirvane s cel reverse engineering :) na edno chuzhdo activex. ideiata mi e da go aggregate-na v moia component kato delegiram vikaneto na povecheto mu interfeisi na nego samia, da prihvana 1-2 interfeisa deto me interesuvat, i pri tiahno vikane da vizhdam kakvi parametri vlizat i izlizat. ta problema mi e s aggregaciata -- ne znam kyde da syzdam drugia komponent i syotvetno kak da mu dam IUnknown* outer unknown koito da sochi kym moia komponent. opitah v konstruktora na klasa (deto go naslediavam ot vsichkite atl klasove) ama ne stava -- syzdava se komponenta i pri opit da se napravi AddRef, vytreshnia delegira vikaneto na moia i sled tova grymva -- predpolagah che shte stane taka shtoto iavno this pointera ot konstruktora ne e mnogo chitav po vremeto v koeto mu go davam.
ta taka -- daite ideia kyde da syzdavam vytreshnia komponent, stignah do izvoda che moia vynshnia trjabva da e syzdaden veche :) koeto mai me vodi kym pisane na custom class factory. i tova se probvah da napravia ama edinstvenoto koeto svyrshih e da nasledia CComClassFactory i posle nishto :) ne znam kak da syzdam moia component v CreateInstance metoda -- edva li s prosto new shte stane.

ta tova mi e problema, ako niakoi se e boril s neshto podobno -- kazhete mi dali pravilno sym se nasochil kym custom factory-to ili prosto moga na drugo miasto da si syzdam vytreshnia komponent.

po-zdravi na vsichki i blagodaria predvaritelno

Отговор
в отговор на Connan #2

Re: COM i aggregation

Ами това не се ли прави във FinalConstruct - там вътре си викаш CoCreateInstance за обекта, който ще е вътре в твоя и му подаваш себе си като controlling unknown.
Виж, ако ще искаш и да излъжеш външния свят, че ти си обекта, който им трябва (т.е. да се вмъкнеш на мястото тоя дето ще го дебъгваш - аз така разбрах поне) ще трябва да си пооправиш registry-то.

Не знам дали съм ти схванал въпроса добре, надявам се да съм от полза.

Отговор
в отговор на Connan #3

Re: COM i aggregation

[линк]
check the bugs and limitations list though.

Отговор
в отговор на Connan #4

Re: COM i aggregation

Vij dali tova niama da ti svurshi po dobra rabota : ))[линк]

Отговор
в отговор на Connan #5

Re: COM i aggregation

mnogo vi blagodaria za pomoshtta
opravih se -- naistina stava vyv FinalConstruct kato trjaa i da se gleda da se release vyv FinalRelease :)

Отговор