COM/DCOM
en C++
$n!ice !e Con%eni!os
COM/DCOM...............................................................................................1 NDICE DE CONTENIDOS......................................................................2 INTRODUCCIN.......................................................................................3 &' (OCO D) * +"O, A--------------------------------------------------------------------------------. /(O, 0&1 2 (A,A 0&1 COM3------------------------------------------------------------------4 MODELO CLIENTE/SERVIDOR............................................................5
D)'" F CAC 4' D)5 +),6 DO,-----------------------------------------------------------------7 MOD)5O COM-------------------------------------------------------------------------------------------8 D F),)'C A+ )'",) C++ 2 COM-------------------------------------------------------------9 '"),FAC)+ -----------------------------------------------------------------------------------------------: " (O+ D) +),6 DO,)+ COM--------------------------------------------------------------------11
CLIENTES COM EN LA PRCTICA...................................................13 );)M(5O D) C5 )'") COM---------------------------------------------------------------------14 );)M(5O D) +),6 DO, COM------------------------------------------------------------------1: (,O<'DO5O )' D +" '"A+ M0& 'A+--------------------------------------------------2. LTIMAS PALABRAS............................................................................24 BIBLIOGRAFA.......................................................................................25
COM/DCOM
n%ro!ucci#n
)=is%en mul%i%u! !e >i>lio%ecas !e o>?e%os- &na !e las m@s e=%en!i!as es la !e los comAonen%es COM- De hechoB los sis%emas Cin!oDs !e MicrosoE% usan esa %ecnologFa- 2 no s#lo es Gue la usenB sino Gue es%@n >asa!os en comAonen%es COM- COM signiEica ComAonen% O>?ec% Mo!el- COM es un mo!elo- )s un mo!elo b !"# $B Gue Aue!e ser u%iliHa!o in!eAen!ien%emen%e !e los lengua?es !e Arogramaci#n Gue Aue!an soAor%arlo- CO,<A es o%ro !e los mo!elos Gue comAi%e con COM)n es%e !ocumen%o Ieremos como se usanB crean J regis%ran los comAonen%es COM u%iliHan!o un comAila!or !e C++ K usan!o el en%orno !e !esarrollo <orlan! C++ <uil!er LB !e?an!o a un la!o el lengua?e D5 K Aara la !eclaraci#n !e los o>?e%os L&n comAonen%e es un o>?e%o K como los o>?e%o !e las clases !e C++L Gue incluJe unas carac%erFs%icas mFnimasB Aara Gue Aue!an ser u%iliHa!os %an%o en un Arograma como en la e%aAa !e !iseMo !el mismo- )=is%en o%ros mo!elos !e comAonen%es como los mo!elos !e <orlan!B OC5 J 6C5- +in em>argoB s#lo los comAonen%es COM Aue!en u%iliHarse en mNl%iAles lengua?esB !e ahF Gue es%n m@s e=%en!i!os- A!em@sB las !is%in%as Aar%es !el AroAio sis%ema oAera%iIo es%@n realiHa!as con COM- AsFB Aor e?emAloB los menNs con%e=%ualesB las li>rerFas gr@Eicas Direc%OB la creaci#n !e enlaces a EicherosB las !is%in%as aAlicaciones !e MicrosoE% OEEiceB e%c--- son o>?e%os COMB Gue Aue!en ser u%iliHa!os !es!e cualGuier Arograma+in em>argoB la creaci#n !e comAonen%es es algo comAlica!a J %e!iosa- (or ello se suele usar una li>rerFa !e Alan%illas !e macros Gue Eacili%an la %area !e creaci#n !e comAonen%es-
COM/DCOM inser%ar gr@Eicos !e una !e sus aAlicaciones K MicrosoE% GraAh L en o%ra !e ellas K MicrosoE% (oDer(oin% L- )n 1PP1 !iseMaron un Aro%ocolo me!ian%e el cual en un !ocumen%o Ao!rFan inser%arse o>?e%os man%eni!os Aor Arogramas !is%in%os en los Gue se es%a>a e!i%an!o- )l Aro%ocolo se llama>a O5) 1-0 J se >asa>a en el Aaso !e mensa?es J el uso !e memoria glo>al comAar%i!a)l resul%a!o Eue realmen%e maloB no s#lo Aor la Eragili!a! !el sis%ema K con la caF!a !e una !e las aAlicaciones caFa el sis%ema LB a!em@s !e Gue era muJ comAlica!a la realiHaci#n !e comAonen%es Aara los Arograma!ores5a siguien%e Iersi#n !e O5) K llama!a COM L se rescri>i# !es!e cero Aor MicrosoE% J D)C en un ArinciAio- Al Einal D)C a>an!on# el AroJec%o J MicrosoE% con%inu# con l5as nueIas Iersiones Gue realiH# MicrosoE% amAliaron el mo!elo Aara Ao!er usar los comAonen%es !es!e !is%in%os or!ena!ores K DCOM o Dis%ri>u%e! COM L-
COM/DCOM
Mo!elo Clien%e/+erIi!or
)l uso !e los comAonen%es COM es un claro e?emAlo !e la arGui%ec%ura Clien%e/+erIi!or- )l o>?e%o COM en sF es el serIi!orB J es usa!o Aor un Arograma Gue hace !e clien%e- )=is%en Iarias Eormas !e realiHar la comunicaci#n- (o!emos encon%rar los comAonen%es como Aar%es !e un e?ecu%a>le K como el caso !e los Aro!uc%os !e MicrosoE% OEEiceB o si imAlemen%amos nues%ro AroAio comAonen%e J lo incluimos con un Arograma Gue los use LB !en%ro !e una li>rerFa !e enlace !in@mico K D55 L o incluso en o%ra m@Guina K DCOM L-
COM/DCOM o>?e%os COM K como Aor e?emAlo Aara i!en%iEicar !isAosi%iIosB !riIersB cone=ionesB comAonen%es--- L- 5os G& Ds u%iliHa!os Aara i!en%iEicar o>?e%os COMB se les !enominan C5+ D K !en%iEica!or !e clase LA la hora !e Arogramar J !e asignar un C5+ D a un o>?e%o COMB MicrosoE% nos AroAorciona un algori%mo Gue garan%iHa la e=clusiIi!a! en el esAacio J en el %iemAoB K 'o se Ian a reAe%ir 2 G& Ds iguales L(or lo %an%oB %ras la creaci#n !e un comAonen%e COMB se le asigna un C5+ D Gue lo i!en%iEicar@ Aara Gue Aue!a ser usa!o Aor los clien%es-
Mo!elo COM
)n el mo!elo cl@sico !e Arogramaci#n orien%a!a a o>?e%os se suele i!en%iEicar al o>?e%o con su in%erEaH- De hechoB es%@ %an uni!a la in%erEaH al o>?e%o Gue se Aue!e !ecir Gue %al o>?e%o es el Gue %iene %ales Eunciones- +in em>argoB el mo!elo COM realiHa la !is%inci#n en%re el o>?e%o J las in%erEaces Gue imAlemen%an- AsFB Aara COM una in%erEaH es un con?un%o !e !eclaraciones !e Eunciones Gue Aue!e o no imAlemen%ar un o>?e%o- 5a !eEinici#n !e n%erEaH es : conjunto de funciones que se ponen a disposicin del pblico. +uelen %ener relaci#n en%re sF- 5as in%erEaces %am>in %iene un G& D K !enomina!o DB o i!en%iEica!or !e in%erEaH L- &n mismo o>?e%o Aue!e imAlemen%ar K J !e hecho lo hace siemAre L Iarias in%erEaces(or e?emAlo: si hicisemos un o>?e%o Aara mo!elar a un hom>reB nos Ao!rFa in%eresar su Eace%a K aGuF usar Eace%a como sin#nimo !e in%erEaH L !e %ra>a?a!orB como AersonaB como ser IiIoB como es%u!ian%eB --- )n ca!a Eace%a nos Aue!e in%eresar una serie !e Eunciones J AroAie!a!es- )s%o en C+ + corresAon!e a una clase a>s%rac%a K ninguna !e las Eunciones es%@n !eEini!as L- (or esoB ca!a o>?e%o Aue!e imAlemen%ar li>remen%e es%as Eunciones6eamos m@s en AroEun!i!a! el e?emAlo so>re las Eace%as: AsFB como %ra>a?a!or un hom>re Aue!e cobrarB trabajarB faltar al trabajo K los m%o!os !e la in%erEaH &#"b"'"($# !el o>?e%o hom>re L B J %ener un sueldoB un jefeB un puestoB un horario K las AroAie!a!es !e la in%erEaH &#"b"'"($# L+in em>argoB un hom>re hace algo m@s Gue %ra>a?ar- Como )*#%$!" Aue!e divertirseB salir a pasearB J %iene amigosB padresB cnyuge--- 2 asF con las !em@s in%erEaces)n !e%ermina!os con%e=%os nos in%eresar@n unas carac%erFs%icas K los m%o!os J AroAie!a!es L J o%ras Ieces no- De hecho no %o!o %*# + +$B es un hom>re- (or lo %an%oB las acciones comunes a %o!os los seres IiIos no !e>erFan es%ar !eclara!as Aara el hom>reB J %am>in Aara las Alan%asB J Aara los animales- <as%arFa con sa>er Gu es un %*# + +$ K Gue m%o!os J AroAie!a!es %iene L J !ecir Gue el hom>re es un ser IiIo K es !ecirB Gue imAlemen%a esa in%erEaH L -
COM/DCOM
O<;)"O *OM<,)
'"),FAU ",A<A;ADO , Co>rar "ra>a?ar Fal%ar +uel!oB ?eEeB horarioB Aues%o '"),FAU *OM<,) DiIer%ir +alir a Aasear AmigosB Aa!res--'"),FAU +), 6 6O ,esAirar 6iIir )!a!
DV +er6iIo
COM/DCOM cons%rucci#n !el o>?e%o- )n el segun!o casoB la comunicaci#n se realiHa !e Eorma %ransAaren%e al usuarioB ges%iona!o Aor el sis%ema oAera%iIo-
n%erEaces
+on Aar%e Eun!amen%al !el mo!elo- )s%e conceA%o no e=is%e en C++5as !&*#,"-*% en C++ se imAlemen%an como clases- DeriIan %o!as ellas !e la in%erEaH &nWnoDn- 5a Aar%iculari!a! !e las !&*#,"-*% es Gue son clases a>s%rac%asB es !ecirB no !eEinen ninguna !e las Eunciones Gue !eclaran- (or lo %an%oB una in%erEaH es una clase Gue con%iene un !e%ermina!o nNmero !e Aun%eros a Eunciones K %o!as ellas en la %a>la !e m%o!os Iir%uales 6M" L)s el AroAio o>?e%o COM el Gue %iene Gue imAlemen%ar las Eunciones)l usuario K clien%e L !.!-" +" " )$(*# &#"&"# -$! */ $b'*&$ ( #*-&"0*!&*- "en!r@ Gue hacerlo a %raIs !e sus in%erEaces- (or lo %an%oB el usuario %en!r@ un Aun%ero a esa in%erEaH J Ao!r@ llamar a los m%o!os Gue !eclara la AroAia in%erEaH K J es%ar@n !eEini!as Aor el o>?e%o COM Gue imAlemen%e !icha in%erEaH LCuan!o el usuario crea un o>?e%oB o>%iene un Aun%ero a la in%erEaH &nWnoDn- )s%a in%erEaH !e>er@ AroAorcionar las Eunciones necesarias Aara Ao!er usar o%ra in%erEaH- Ca!a o>?e%o COMB !e>er@ imAlemen%ar una serie !e Eunciones mFnimas Gue garan%ice la Euncionali!a! !el mismo-
COM/DCOM
n%erEaH &nWnoDn
Como an%es hemos Iis%oB %o!a in%erEaH !eriIa !e &nWnoDn- 6eamos un Aoco m@s en AroEun!i!a! es%a clase-
+i nos Ei?amos en es%e gr@EicoB haJ una in%erEaH Gue aAarece arri>a)sa serFa Aor la Gue en%rarFamos al O>?e%o COMB la Gue hemos llama!o &nWnoDn5a !eclaraci#n !e es%a in%erEaH en lengua?e D5 K n%erEace DescriA%ion 5anguage L es: [ local, object huid(00000000-0000-0000- 000-0000000000!"# pointer_default(unique# $ interface %&n'no(n ) *+,-&./ 0uery%nterface ( [in$ +,1%%2 riid3 [out3 iid_is(riid#$ void 44ppv5bject#6 &.578 9dd+ef(#6 &.578 +elease(#6 : Como COM !e>e ser in!eAen!ien%e !el lengua?eB !e>e e=is%ir al menos un lengua?e neu%ro Aara !eEinir las es%ruc%urasB las Eunciones J los AroAios o>?e%os- MicrosoE% u%iliHa una Iarian%e !el D5 emAlea!o Aor ,(C K ,emo%e (roce!ure Call LB eso sFB orien%a!o a o>?e%os- A Aar%ir !e es%e lengua?e serFa Aosi>le o>%ener las !eclaraciones en !is%in%os lengua?es !e Arogramaci#n Aara Gue Au!ieran ser usa!os+i nos Ei?amos en la !eclaraci#n !e es%a in%erEaHB Iemos . m%o!os: 0uerJ n%erEaceKLB A!!,eEKL J ,eleaseKL- )l Arimero !e ellos se usa Aara la P
COM/DCOM in%rosAecci#n- &n o>?e%o COM es una ca?a negra K m@s negra Gue !e cos%um>re L- )n ArinciAioB al crear un o>?e%oB s#lo %en!remos acceso a su in%erEaH &nWnoDn- )l Gue %o!os los o>?e%os imAlemen%en es%a in%erEaHB no signiEica Gue sean iguales- )n generalB &nWnoDn Euncionar@ !e un mo!o u o%ro segNn el o>?e%o Gue haJamos crea!o- 0uerJ n%erEace sirIe Aara Ae!ir un Aun%ero a o%ra in%erEaH !el mismo o>?e%o- +iemAre Eunciona !e la misma manera: se le Aasan !os Aar@me%rosB el Arimero es el D K recor!emos Gue era el i!en%iEica!or !e in%erEaH L !e la in%erEaH Gue Gueremos o>%enerB J !e segun!o Aar@me%ro un Aun%ero a Aun%ero a esa in%erEaH- (or e?emAlo: o reate%nstante ( .-%2;5bjeto<3 7&..3 .- /=;9..3 %%2;%&n'no(n3 (void 44# >%nterfa?<#6 %nterfa?<-@0uery%nterface ( %%2;%nterfa?A3 ( void 44 # >%nterfa?A #6 Con n%erEaH1 un Aun%ero a la in%erEaH &nWnoDn J n%erEaH2 un Aun%ero a cualGuier o%ra in%erEaH !el o>?e%o crea!o- DesAus !e e?ecu%ar es%as lFneasB %en!remos en n%erEaH2 un Aun%ero a la in%erEaH DV n%erEaH2 !el O>?e%o1B J Ao!remos usar las Eunciones corresAon!ien%es !e es%a in%erEaH)n es%e AeGueMo e?emAlo se Ie Gue los o>?e%os COM es%@n !iseMa!os Aara o%ros lengua?es aAar%e !el C++- Al segun!o Aar@me%ro !e 0uerJ n%erEace haJ Gue hacerle un cas% >as%an%e EorHa!o K Ioi! XX LB cuJo uso en C++ es%@ muJ !esaconse?a!oA con%inuaci#nB un gr@Eico nos mues%ra o%ra Eorma !e Ier los o>?e%os COM- )l o>?e%o COM es la ca?aB J ca!a una !e las in%erEaces son los Aaneles- Ca!a (anel %iene a!em@s un con?un%o !e >o%ones Gue son las Eunciones-
10
COM/DCOM (ero a!em@sB como %o!as las in%erEaces !eriIan !e &nWnoDnB %o!as !e>en imAlemen%ar las . Eunciones 0uerJ n%erEaceB A!!,eE J ,elease- AsFB !es!e ca!a in%erEaHB Ao!emos o>%ener un Aun%ero a cualGuiera !e las o%ras in%erEacesCon resAec%o a las o%ras !os EuncionesB sirIen Aara con%rolar el %iemAo !e Ii!a !e ca!a o>?e%o COM- )s%o se usa Aara li>erar al o>?e%o COM !e la memoria-
COM/DCOM serIi!or L- (eroB si los o>?e%os se usan igualB /c#mo se Aue!e conseguir en%onces el eEec%o !e llama!as a Eunci#n3- )s !ecirB /como Ao!rFa usarse3 5bjeto<-@1uncion< ( parametros #6 )l clien%e no %iene cons%ancia en%onces !e Gue %iene es%a>lecer una cone=i#n Aor re!- )s el sis%ema oAera%iIo el Gue %iene Gue Aoner un )#$12 Gue SsimuleT Gue las Eunciones es%@n accesi>les- 2 la llama!a a la 1uncion< realmen%e es%ar@ llaman!o a una Eunci#n local ges%iona!a Aor el sis%ema oAera%iIo Gue realice la comunicaci#n con el o%ro e=%remo-
12
COM/DCOM
6eremos Arimero c#!igo !el uso !e un clien%e Ja hecho J luego Ieremos la imAlemen%aci#n !el serIi!or- 5os e?emAlos los he realiHa!o con 2 comAila!ores !is%in%os- &s el MicrosoE% 6isual C++ 8-0 Aara la realiHaci#n !e los serIi!oresB Aues gracias a sus Se=Aer%osTB la realiHaci#n !e un serIi!or COM se limi%a a la imAlemen%aci#n !e las Eunciones Gue imAlemen%e- (ara realiHar los clien%esB us el <orlan! C++ <uil!er 7B Aues es una herramien%a !e !esarrollo ,AD K *erramien%as !e Desarrollo ,@Ai!o L Gue Eacili%a en gran me!i!a la realiHaci#n !e los e?emAlos-
1.
COM/DCOM
*acien!o Do>le ClicW con el >o%#n iHGuier!o !el ra%#nB se nos a>rir@ una Aan%alla !e e!ici#n !e c#!igo Euen%e- )l cursor se Aosiciona %ras la llaIe !e una Eunci#nB in!ic@n!onos Gue se ser@ el c#!igo Gue se e?ecu%ar@ cuan!o se Aulse el >o%#n K realmen%eB es la resAues%a Gue !a la Eicha al eIen%o 5n lic' !el >o%#n L- )l c#!igo in%ro!uci!o es el siguien%e:
14
COM/DCOM
+in em>argoB %o!aIFa no es suEicien%e Aara Gue Euncione- (ues hemos usa!o .-%2;-aludo3 %%2;%-aludo e %-aludo en nues%ro c#!igo- )l comAila!or no SconoceT esas esas reEerencias ni la clase %-aludo&na IeH Gue el o>?e%o COM es%@ en nues%ro sis%emaB es%@ almacena!o en el regis%ro !e Cin!oDs !a%os acerca !e l- )sos !a%os son Aor e?emAlo su C5+ DB los D !e las in%erEaces Gue soAor%aB la localiHaci#n !el Eichero !on!e resi!e K -D55 o -)O) L o los or!ena!ores !e la re! en los Gue es%@ !isAoni>le ese o>?e%o5os comAila!ores con soAor%e !e COM %raen una u%ili!a! Aara e=%raer es%a inEormaci#n K J m@sB como la !eclaraci#n !e las in%erEaces L a Aar%ir !el regis%ro !e Cin!oDs-
17
COM/DCOM
D@n!ole a reate &nit genera 2 Eicheros K uno .cpp J o%ro .h L con los !a%os necesarios Aara el Arograma-
+DCOM15i>V"<5-cAA
BB CC /.DE+/+ F G+evisionF <.<H!.<.!< G BB 1ile generated on A"B0HBA00< AFI0F!" from /ype .ibrary described belo(. BB 444444444444444444444444444444444444444444444444444444444 BB BB /ype .ibF FJK+5L, /5J 5MJ-2 5M<J2,D&8J-2 5M<.2.. (<# BB %%2J. %2F )1 ! N2<O-O0, -!AON-N""N-12O<A!<H29"2:J0 BB *elpfileF BB 2epnd.stF BB (<# vA.0 stdole3 ( FJE%725E-J-L-/,MJ-td5leA./lb# BB (A# v!.0 -tdP .3 ( FJE%725E-J-L-/,MJ-/2P .!0.2..# BB 444444444444444444444444444444444444444444444444444444444 BB Qinclude Rvcl.h@ Qpragma hdrstop Qinclude S-2 5M<.ib;/.D.hS Qif Tdefined(;;K+98M9;K9 U98,;-M9+/;%7%/# Qdefine ;;K+98M9;K9 U98,;-M9+/;%7%/ 18
COM/DCOM Qpragma pac'age(smart;init# Qendif namespace -dcom<lib;tlb ) BB 444444444444444444444444444444444444444444444444444444444BB BB 8&%2- declared in the /ype.ibrary BB 444444444444444444444444444444444444444444444444444444444BB const 8&%2 .%D%2;-2 5M<.ib V )0x1 ! N2<O3 0xO0, 3 0x!AON3 ) 0xN"3 0x"N3 0x123 0xO<3 0xA!3 0x<H3 0x293 0x"2: :6 const 8&%2 .-%2;-aludo V )0x"DO990"I3 0xN1293 0x!2 "3) 0x9 3 0xDD3 0xWO3 0x!H3 0xH,3 0xDH3 0x,,3 0x2O: :6 const 8&%2 %%2;%-aludo V )0xOWH,,2IW3 0x01"23 0x!<AW3) 0xOW3 0xND3 0x1!3 0xD23 0x 03 0x<03 0xH!3 0xDO: :6 :6 BB namespace -dcom<lib;tlb
19
COM/DCOM )n es%e gr@Eico se mues%ra la Ien%ana !el Arograma clien%eB al Eon!oB J la Ien%ana !el serIi!or Gue luego Arogramaremos al Eren%e-
+eleccionaremos ATL COM A))9 :"#(B J con%inuaremos,ealmen%eB es%o no es el o>?e%oB sino una aAlicaci#n Gue con%en!r@ los o>?e%os COM-
1:
COM/DCOM
Crearemos un Eichero E;EB Aara Ao!er usarlo remo%amen%e K recor!emos Gue el serIi!or remo%o !e>e !e es%ar a la escucha !e las Ae%icionesB J Aor lo %an%o Euncionan!o L- &na IeH !a!o a F ! %4B Ao!remos Ier en el insAec%or !e clases lo siguien%e:
)s%as clasesB m%o!os J !a%os miem>ros los crea au%om@%icamen%e el en%orno- Con%iene c#!igo Aara regis%rar J >orrar el o>?e%o !el ,egis%ro !e Cin!oDsB Aara crear los o>?e%os COMB Aara crear los hilos !e e?ecuci#n !e los o>?e%osB e%c- )l en%orno %am>in ha crea!o una clase llama!a C)=eMo!uleB Gue no es m@s Gue el Gue se encarga !e ges%ionar J crear los !is%in%os o>?e%os COM Gue Aue!e al>ergar el serIi!or-
1P
COM/DCOM Como !i?imos an%eriormen%eB un serIi!or COM Aue!e con%ener Iarios o>?e%os- Ahora Iamos a crear un o>?e%o COM- (ara elloB haremos clic' con el >o%#n !erecho !el ra%#n encima !el AroJec%oB en el Iisor !e clases J seleccionaremos N*8 ATL Ob'*-&. -
seleccionaremos el %iAo !e O>?e%o COM Gue Iamos a crear- &saremos un o>?e%o simAle K S 0)/* Ob'*-& L-
20
COM/DCOM
2 una IeHB Gue le !emos a aceA%arB %en!remos casi %o!o el %ra>a?o hecho- +#lo nos Gue!a aMa!ir un m%o!o J %en!remos el o>?e%o lis%o Aara comAilarloAhora en el 6isor !e Clases nos aAarece es%a clase Gue hemos crea!oB con una in%erEaH Aor !eEec%o !el mismo nom>reB Aero emAeHan!o Aor -
'os Gue!a aMa!ir el nueIo m%o!oB J Aara ello IolIemos a Aulsar con el ra%#nB con el >o%#n !erechoB encima !e la in%erEaH +alu!o J seleccionaremos A(( M*&4$(.
21
COM/DCOM
"ras !arle a O<7 en nues%ro c#!igo aAarecer@n unas lFneas nueIas-/2M,/*52%MK -aludoFF+ecibir(.578 hora# ) BB /525F 9dd your implementation code here return -;5U6 : 22
COM/DCOM n%ro!uciremos un AeGueMo c#!igo Gue haga aAarecer una Ien%ana en el +),6 DO,B en la Gue mues%re el Ialor Gue ha reci>i!o-/2M,/*52%MK -aludoFF+ecibir(.578 hora# ) char 4mensaje V ne( char[I0$6 sprintf(mensaje3 SMe han llamado con el numeroF XdS3 num#6 FFMessageDox(7&..3 mensaje3 SPentana del -ervidorS3 MD;5U #6 delete [$ mensaje6 return -;5U6 : 2 Ja solo Gue!a comAilar J Aro>ar- 6isual C++ %ras la comAilaci#nB regis%ra el o>?e%o Aara Gue Aue!a ser usa!o Aor o%ros Arogramas-
2L Cam>iar el c#!igo !el clien%e Aara Gue seAa l mismo localiHar al o>?e%oB usan!o la Eunci#n C$C#*"&*C/"%%E1 en IeH !e C$C#*"&*C/"%%2.
COM/DCOM
24
COM/DCOM
Documen%os elec%r#nicos: MicrosoE% M+D'- ,eEerencia oEicial !e los crea!oreso h%%A://ms!n-microsoE%-com/DorWshoA/comAonen%s/%oc-h%m o h%%A://ms!n-microsoE%-com/DorWshoA/comAonen%s/com/%u%orial /lessons-asA o h%%A://ms!n-microsoE%-com/li>rarJ/!eEaul%-asA K <ooWsB nsi!e O5) L &n!ers%an!ing DCOM- B Cilliam ,u>in J Marshall <rain- 6arios ar%Fculos con e?emAlos Ar@c%icos en MicrosoE% 6isual C++o h%%A://?ournal-iE%ech-com/ar%icles/!comV1/ o h%%A://?ournal-iE%ech-com/ar%icles/!comV2/ o h%%A://?ournal-iE%ech-com/ar%icles/!comV./ 5a cara ocul%a !e C++ <uil!er 4B an Mar%eens- )=celen%e li>ro so>re Arogramaci#n en Cin!oDso h%%A://DDD-mar%eens-com/"he DarW +i!e oE CAA>-HiA X +un MicrosJs%emsB nc- ,(C: ,emo%e Aroce!ure call Aro%ocol sAeciEica%ion- %nternet Eor'ing 8roup +equest for omments3 K ,FC 1079B AAril 1P::\ ,FC 1:.1B Agos%o 1PP7 L 5i>ros: Francisco Char%e- Krogramacin 9van?ada con CC Duilder !AnaJa Mul%ime!ia K +<' :4Q417Q0:80Q9 L- )?emAlos !e clien%esFrancisco Char%e- Krogramacin avan?ada en Eindo(s ON- AnaJa Mul%ime!ia K +<' :4Q417Q0:.2Q1 L- )?emAlos !e clien%es-
27
COM/DCOM an Mar%eens- .a cara oculta de 2elphi- DanJsoE% n%ernacional K +<' :4Q2:.QPPPPQPL- )?emAlos J %eorFa !e clien%es J serIi!ores COMFrancisco ;aIier Ce>allos- (rogramaci#n orien%a!a a o>?e%os con C+ + K +<' :4Q9:P9Q28:Q4 L- Cuan!o se o>scurece el mun!o !e la Arogramaci#n orien%a!a a o>?e%os IuelIo a es%e li>ro- &n li>ro !e reEerencia !e C++ escri%o Aor un na%iIo !el cas%ellano-
28