COM i aggregation
4 отговора
127 прегледа
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
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
Re: COM i aggregation
Ами това не се ли прави във FinalConstruct - там вътре си викаш CoCreateInstance за обекта, който ще е вътре в твоя и му подаваш себе си като controlling unknown.
Виж, ако ще искаш и да излъжеш външния свят, че ти си обекта, който им трябва (т.е. да се вмъкнеш на мястото тоя дето ще го дебъгваш - аз така разбрах поне) ще трябва да си пооправиш registry-то.
Не знам дали съм ти схванал въпроса добре, надявам се да съм от полза.
Виж, ако ще искаш и да излъжеш външния свят, че ти си обекта, който им трябва (т.е. да се вмъкнеш на мястото тоя дето ще го дебъгваш - аз така разбрах поне) ще трябва да си пооправиш registry-то.
Не знам дали съм ти схванал въпроса добре, надявам се да съм от полза.
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 :)
opravih se -- naistina stava vyv FinalConstruct kato trjaa i da se gleda da se release vyv FinalRelease :)