www.digitalmars.com         C & C++   DMDScript  

D - Using Existing COM/OLE in D

reply J C Calvarese <jcc-47 excite.com> writes:
I've been trying to use some of Microsoft's COM interfaces in D 
(IPicture and IShellLink).  I've gotten both attempts to compile but 
they don't run correctly (they yield runtime errors before they do 
anything useful).  I've attached the IShellLink attempt in case anyone 
is interested in my approach.  I was trying to use it to create a shortcut.

I was wondering if anyone has successfully used an existing COM 
interface in D.  I know the dmd\samples folder has an example of 
creating a COM client/server in D, but I was wondering if there are any 
examples around with using an interface created in another language. 
I've found examples in C, C++, and Delphi, but I don't I've guessed 
correctly how to do it it D.  I don't know much about COM, but I can be 
pretty stubborn and I've got C code of these programs (using IPicture 
and IShellLink) that I know work.

I'd appreciate any suggestions.  Thanks.

Justin
Mar 29 2003
parent reply "Mike Wynn" <mike.wynn l8night.co.uk> writes:
it works .....

you need extern( Windows ){ ... interfaces .... }

and

in D 'IShellLink obj;'  is the the same as the C 'IShellLink * obj;'
thus
&obj is in C a void** (for the CoCreateInstance last param)

Hope this helps .

"J C Calvarese" <jcc-47 excite.com> wrote in message
news:b65i0q$kb5$1 digitaldaemon.com...
 I've been trying to use some of Microsoft's COM interfaces in D
 (IPicture and IShellLink).  I've gotten both attempts to compile but
 they don't run correctly (they yield runtime errors before they do
 anything useful).  I've attached the IShellLink attempt in case anyone
 is interested in my approach.  I was trying to use it to create a
shortcut.
 I was wondering if anyone has successfully used an existing COM
 interface in D.  I know the dmd\samples folder has an example of
 creating a COM client/server in D, but I was wondering if there are any
 examples around with using an interface created in another language.
 I've found examples in C, C++, and Delphi, but I don't I've guessed
 correctly how to do it it D.  I don't know much about COM, but I can be
 pretty stubborn and I've got C code of these programs (using IPicture
 and IShellLink) that I know work.

 I'd appreciate any suggestions.  Thanks.

 Justin
begin 666 createLink.d M+RH #0H-"DE3:&5L;$QI;FL 17AA;7!L92!F;W( 1 T*#0HM('!O<G1E9"!T M;R!$340 1"!V97)S:6]N(# N-3D 9G)O;2!"0U O3$-#+5=I;C,R(&)Y($H M0R!#86QV87)E<V4-"BT 8F%S960 ;VX (D)#6"!#3TT 15A!35!,12( *'5P M9&%T960 8GD 4F%I;F)O=U-A;&QY*0T*+2!#<F5A=&5S(&$ 5VEN9&]W<R!S M:&]R=&-U="!T;R!A;B!E>&5C=71A8FQE+"!A9&1I;F< <V5V97)A;"!P<F]P M97)T:65S+ T*#0H-"F1M9"!C<F5A=&5,:6YK+F0 ;VQE,S(N;&EB('5U:60N M;&EB#0H-" T*3&EN:R!W:71H.B ( T*#0IO;&4S,BYL:6( (" #0HM+2TM M+2TM+2T-"E]#;U5N:6YI=&EA;&EZ94 P#0I?0V]);FET:6%L:7IE0#0-"E]# M;T-R96%T94EN<W1A;F-E0#(P#0H-" T*=75I9"YL:6(-"BTM+2TM+2TM#0I? M0TQ3241?4VAE;&Q,:6YK(#\-" T*#0H-"BHO#0H-"FEM<&]R="!W:6YD;W=S M.PT*:6UP;W)T('-T<FEN9SL-"FEM<&]R="!C;VT[#0H-" T*#0HO*B!7:6YD M;W=S($%022!C;VYS=&%N=', *B\-" T*8V]N<W0 :6YT(%-77U-(3U< /34[ M#0IC;VYS="!I;G0 0U!?04-0(#T ,#L ("\O("!D969A=6QT('1O($%.4TD M8V]D92!P86=E#0H-" T*+R\ (%1H92!7:6XY-2!3:&5L;"!H87, 8F5E;B!A M;&QO8V%T960 82!B;&]C:R!O9B R-38 1U5)1',L#0HO+R!W:&EC:"!F;VQL M;W< =&AE(&=E;F5R86P 9F]R;6%T. T*+R\-"B\O(" P,# R,31X>"TP,# P M+3 P,# M0S P,"TP,# P,# P,# P-#8-"B\O#0HO+PT*+RH-"B-D969I;F4 M1$5&24Y%7U-(3$=5240H;F%M92P ;"P =S$L('<R*2!$149)3D5?1U5)1"AN M86UE+"!L+"!W,2P =S(L(#!X0S L,"PP+# L,"PP+# L,' T-BD-" T*1$5& M24Y%7U-(3$=5240H24E$7TE3:&5L;$QI;FM!+" (" (" (#!X,# P,C$T M145,+" P+" P*3L-"BHO#0H-"F5X=&5R;BA7:6YD;W=S*2!C;VYS="!'54E$ M($-,4TE$7U-H96QL3&EN:R (" /2![,' P,# R,30P,2P ,' P,# P+" P M># P,# L(%LP>$,P+" P># P+" P># P+" P># P+" P># P+" P># P+" P M># P+" P>#0V77T[#0IE>'1E<FXH5VEN9&]W<RD 8V]N<W0 24E$($E)1%]) M4VAE;&Q,:6YK02 (" (#T >S!X,# P,C$T144L(#!X,# P,"P ,' P,# P M+"!;,'A#,"P ,' P,"P ,' P,"P ,' P,"P ,' P,"P ,' P,"P ,' P,"P M,' T-EU].PT*97AT97)N*%=I;F1O=W,I(&-O;G-T($E)1"!)241?25!E<G-I M<W1&:6QE(" (" ]('LP># P,# P,3!"+" P># P,# L(#!X,# P,"P 6S!X M0S L(#!X,# L(#!X,# L(#!X,# L(#!X,# L(#!X,# L(#!X,# L(#!X-#9= M?3L-"F%L:6%S($E)1%])4VAE;&Q,:6YK02!)241?25-H96QL3&EN:SL-" T* M#0H-"B\J(%=I;F1O=W, 05!)('1Y<&5S("HO#0H-"F%L:6%S('5S:&]R=" J M3%!74U12.PT*#0IS=')U8W0 4TA)5$5-240 >PT*(" (%532$]25"!C8CL- M"B ("!"651%(&%B241;,5T[#0I]( T*86QI87, 4TA)5$5-240J($Q04TA) M5$5-240[#0H-"G-T<G5C="!)5$5-241,25-4('L-"B ("!32$E414U)1"!M M:VED.PT*?0T*86QI87, 251%34E$3$E35"H 3%!#251%34E$3$E35#L-"F%L M:6%S($E414U)1$Q)4U0J($Q0251%34E$3$E35#L-" T*#0IS=')U8W0 5TE. M,S)?1DE.1%]$051!( T*>PT*(" ($173U)$(&1W1FEL94%T=')I8G5T97,[ M#0H (" 1DE,151)344 9G1#<F5A=&EO;E1I;64[#0H (" 1DE,151)344 M9G1,87-T06-C97-S5&EM93L-"B ("!&24Q%5$E-12!F=$QA<W17<FET951I M;64[#0H (" 1%=/4D0 ;D9I;&53:7IE2&EG:#L-"B ("!$5T]21"!N1FEL M95-I>F5,;W<[#0H (" 1%=/4D0 9'=297-E<G9E9# [#0H (" 1%=/4D0 M9'=297-E<G9E9#$[#0H (" 8VAA<B!C1FEL94YA;65;34%87U!!5$A=.PT* M(" (&-H87( 8T%L=&5R;F%T949I;&5.86UE6S$T73L-"B ("!73U)$(&1U M;6UY.PT*?2 -"F%L:6%S(%=)3C,R7T9)3D1?1$%402H 3%!724XS,E]&24Y$ M7T1!5$$L(%!724XS,E]&24Y$7T1!5$$[#0H-"G-T<G5C="!724XS,E]&24Y$ M7T1!5$%!( T*>PT*(" ($173U)$(&1W1FEL94%T=')I8G5T97,[#0H (" M1DE,151)344 9G1#<F5A=&EO;E1I;64[#0H (" 1DE,151)344 9G1,87-T M06-C97-S5&EM93L-"B ("!&24Q%5$E-12!F=$QA<W17<FET951I;64[#0H M(" 1%=/4D0 ;D9I;&53:7IE2&EG:#L-"B ("!$5T]21"!N1FEL95-I>F5, M;W<[#0H (" 1%=/4D0 9'=297-E<G9E9# [#0H (" 1%=/4D0 9'=297-E M<G9E9#$[#0H (" 0TA!4B!C1FEL94YA;65;34%87U!!5$A=.PT*(" ($-( M05( 8T%L=&5R;F%T949I;&5.86UE6S$T73L-"B ("!73U)$(&1U;6UY.PT* M?0T*86QI87, 5TE.,S)?1DE.1%]$051!02H 3%!724XS,E]&24Y$7T1!5$%! M+"!05TE.,S)?1DE.1%]$051!03L-" T*<W1R=6-T(%=)3C,R7T9)3D1?1$%4 M05< #0I[#0H (" (" ($173U)$(&1W1FEL94%T=')I8G5T97,[#0H (" M(" ($9)3$5424U%(&9T0W)E871I;VY4:6UE.PT*(" (" ("!&24Q%5$E- M12!F=$QA<W1!8V-E<W-4:6UE.PT*(" (" ("!&24Q%5$E-12!F=$QA<W17 M<FET951I;64[#0H (" (" ($173U)$(&Y&:6QE4VEZ94AI9V [#0H (" M(" ($173U)$(&Y&:6QE4VEZ94QO=SL-"B (" (" 1%=/4D0 9'=297-E M<G9E9# [#0H (" (" ($173U)$(&1W4F5S97)V960Q.PT*(" (" ("!7 M0TA!4B!C1FEL94YA;65;34%87U!!5$A=.PT*(" (" ("!70TA!4B!C06QT M97)N871E1FEL94YA;65;,31=.PT*(" (" ("!73U)$(&1U;6UY.PT*?0T* M86QI87, 5TE.,S)?1DE.1%]$051!5RH 3%!724XS,E]&24Y$7T1!5$%7+"!0 M5TE.,S)?1DE.1%]$051!5SL-" T*#0H-"B\J(%=I;F1O=W, 05!)(&9U;F-T M:6]N<R J+PT*#0H-"F5X=&5R;BA7:6YD;W=S*2!I;G0 375L=&E">71E5&]7 M:61E0VAA<BA524Y4+"!$5T]21"P 3%!#4U12+"!I;G0L($Q05U-44BP :6YT M*3L-" T*86QI87, 365S<V%G94)O>$$ 365S<V%G94)O>#L-" T*#0H-"B\J M(&]B:FED;"YH(&5X8V5R<'0 *B\-" T*97AT97)N*%=I;F1O=W,I("\K8V]N M<W0K+R!E>'1E<FX 24E$("\K24E$7TE097)S:7-T1FEL92LO($E)1%])4$52 M4TE35$9)3$4[#0H-"F5X=&5R;B 5VEN9&]W<R I('L-" T*:6YT97)F86-E M($E097)S:7-T1FEL93H 255N:VYO=VX-"GL-"B\K(" ($A215-53%0 *%]S M=&1C86QL("I1=65R>4EN=&5R9F%C92DH25!E<G-I<W1&:6QE*BQ2149)240L M=F]I9" J*BD[#0H (" 54Q/3D< *%]S=&1C86QL("I!9&12968I*$E097)S M:7-T1FEL92HI.PT*(" (%5,3TY'("A?<W1D8V%L;" J4F5L96%S92DH25!E M<G-I<W1&:6QE*BD[*R\-"B ("!(4D5354Q4($=E=$-L87-S240H0TQ3240J M*3L-"B ("!(4D5354Q4($ES1&ER='DH*3L-"B ("!(4D5354Q4($QO860H M3%!#3TQ%4U12+"!$5T]21"D[#0H (" 2%)%4U5,5"!3879E*$Q00T],15-4 M4BP 0D]/3"D[#0H (" 2%)%4U5,5"!3879E0V]M<&QE=&5D*$Q00T],15-4 M4BD[#0H (" 2%)%4U5,5"!'971#=7)&:6QE*$Q03TQ%4U12*BD[#0I]#0H- M"B\J(&5N9"!O9B!O8FII9&PN:"!E>&-E<G!T("HO#0H-" T*#0HO*B!S:&]B M:FED;"YH(&5X8V5R<'0 *B\-" T*:6YT97)F86-E($E097)S:7-T241,:7-T M.B!)56YK;F]W; T*>PT*+RL ("!(4D5354Q4(%%U97)Y26YT97)F86-E*%)% M1DE)1"P =F]I9" J*BD[#0H ("!53$].1R!!9&12968H*3L-"B (%5,3TY' M(%)E;&5A<V4H*3LK+PT*(" 2%)%4U5,5"!'971#;&%S<TE$*$-,4TE$*BD[ M#0H ("!(4D5354Q4(%-E=$E$3&ES="A,4$-)5$5-241,25-4*3L-"B ($A2 M15-53%0 1V5T241,:7-T*$Q0251%34E$3$E35"HI.PT*?0T*#0II;G1E<F9A M8V4 25-H96QL3&EN:SH 255N:VYO=VX-"GL-"B\K(" 2%)%4U5,5"!1=65R M>4EN=&5R9F%C92A2149)240L('9O:60 *BHI.PT*(" 54Q/3D< 061D4F5F M*"D[#0H ("!53$].1R!296QE87-E*"D[*R\-"B ($A215-53%0 1V5T4&%T M:"A,4%-44BP :6YT+"!724XS,E]&24Y$7T1!5$%!*BP 1%=/4D0I.PT*(" M2%)%4U5,5"!'971)1$QI<W0H3%!)5$5-241,25-4*BD[#0H ("!(4D5354Q4 M(%-E=$E$3&ES="A,4$-)5$5-241,25-4*3L-"B ($A215-53%0 1V5T1&5S M8W)I<'1I;VXH3%!35%(L(&EN="D[#0H ("!(4D5354Q4(%-E=$1E<V-R:7!T M:6]N*$Q00U-44BD[#0H ("!(4D5354Q4($=E=%=O<FMI;F=$:7)E8W1O<GDH M3%!35%(L(&EN="D[#0H ("!(4D5354Q4(%-E=%=O<FMI;F=$:7)E8W1O<GDH M3%!#4U12*3L-"B ($A215-53%0 1V5T07)G=6UE;G1S*$Q04U12+"!I;G0I M.PT*(" 2%)%4U5,5"!3971!<F=U;65N=',H3%!#4U12*3L-"B ($A215-5 M3%0 1V5T2&]T:V5Y*%=/4D0J*3L-"B ($A215-53%0 4V5T2&]T:V5Y*%=/ M4D0I.PT*(" 2%)%4U5,5"!'9713:&]W0VUD*&EN="HI.PT*(" 2%)%4U5, M5"!39713:&]W0VUD*&EN="D[#0H ("!(4D5354Q4($=E=$EC;VY,;V-A=&EO M;BA,4%-44BP :6YT+"!I;G0J*3L-"B ($A215-53%0 4V5T26-O;DQO8V%T M:6]N*$Q00U-44BP :6YT*3L-"B ($A215-53%0 4V5T4F5L871I=F50871H M*$Q00U-44BP 1%=/4D0I.PT*(" 2%)%4U5,5"!297-O;'9E*$A73D0L($17 M3U)$*3L-"B ($A215-53%0 4V5T4&%T:"A,4$-35%(I.PT*?0T*#0I]#0HO M*B!E;F0 ;V8 <VAO8FII9&PN:"!E>&-E<G!T("HO#0H-" T*+RH 2&5L<&9U M;"!F=6YC=&EO;G, *B\-" T*8VAA<EM=($QE9G0H8VAA<EM=(',L(&EN="!L M96YG*0T*>PT*(" ("\J($QE9G0D*',D+"!L96YG*2 J+PT*(" (&EF("AL M96YG(#P](',N;&5N9W1H*2!R971U<FX <ULP+BYL96YG73L-"B ("!R971U M<FX <UM=.PT*?2 -" T*#0IC:&%R6UT 07!P4&%T:"AC:&%R6UT <&%T:"D- M"GL-"B +RH +2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T-"B (" M1$530U))4%1)3TXZ($=E=', 82!P871H(&9R;VT 9G5L;"!P871H(&YA;64- M"B (" (" (" 24Y0550Z(%-T<FEN9R!T;R!F=6QL('!A=& ;F%M90T* M(" (" (" ($]55%!55#H 4W1R:6YG('1O('!A=& ;F%M90T*(" (" M(" ("!54T%'13H 8G5F9F5R)" ]($%P<%!A=& D*")C.EQY;W5R(&1I<F5C M=&]R>5QY;W5R(&9I;&4N97AE(BD-"B (" (" (%)%5%523E,Z(&,Z7'EO M=7( 9&ER96-T;W)Y7 T*(" (" M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2 J+PT*(" (')E='5R;B!,969T*'!A=& L("\K3&%S=%!O<T-H87(H M<&%T:"P (EPB*2 K(#$K+R!F:6YD*'!A=& L(&-A<W0H8VAA<EM=*2 G7"<I M*3L-"GT-" T*#0I(4D5354Q4($-R96%T94QI;FLH8VAA<EM=(&QP<WI0871H M3V)J+"!C:&%R6UT ;'!S>E!A=&A,:6YK+" 8VAA<EM=(&QP<WI$97-C+"!C M:&%R6UT ;'!S>DEC;VXI#0I[#0H (" O*B M+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+0T*(" (" 1$530U))4%1)3TXZ($-R96%T97, 82!7:6YD M;W=S('-H;W)T8W5T#0H (" (" (" ("!)3E!55#H <W1R:6YG('1O($58 M12P <W1R:6YG('1O('-H;W)T8W5T+"!S=')I;F< =&\ 9&5S8W)I<'1I;VXL M#0H (" (" (" (" (" (" <W1R:6YG('1O(&EC;VX-"B (" (" M(" 3U544%54.B!(4D5354Q4('1O('-U8V-E<W, ;W( 9F%I;'5R90T*(" M(" (" (" 55-!1T4Z(')E<W5L=" ]($-R96%T94QI;FLH(F,Z7&EN+F5X M92(L(")C.EQO=70N;&YK+" B9&5S8W)I<'1I;VXB*0T*(" (" (" (%)% M5%523E,Z(%-?3TL :68 =&AE(&EN=&5R9F%C92!I<R!S=7!P;W)T960L($5? M3D])3E1%4D9!0T4 :68 ;F]T+ T*(" (" +2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2T *B\-"B (" -"B ("!(4D5354Q4(&AR97,[#0H (" M25-H96QL3&EN:R!P<VP[#0H-" D <')I;G1F*" B0W)E871E3&EN:RAL<'-Z M4&%T:$]B:CHG)2XJ<R<L(&QP<WI0871H3&EN:SHG)2XJ<R<L(&QP<WI$97-C M.B<E+BIS)RP ;'!S>DEC;VXZ)R4N*G,G*5QN(BP ;'!S>E!A=&A/8FHL(&QP M<WI0871H3&EN:RP ;'!S>D1E<V,L(&QP<WI)8V]N("D[#0H-"B ("!#;TEN M:71I86QI>F4H;G5L;"D[(" (" O*B!);FET:6%L:7IE('1H92!#3TT ;V)J M96-T("HO#0H-"B (" O*B!'970 82!P;VEN=&5R('1O('1H92!)4VAE;&Q, M:6YK(&EN=&5R9F%C92X *B\-"B ("!H<F5S(#T 0V]#<F5A=&5);G-T86YC M92 F0TQ3241?4VAE;&Q,:6YK+"!N=6QL+"!#3%-#5%A?24Y04D]#7U-%4E9% M4BP )DE)1%])4VAE;&Q,:6YK+" F<'-L*3L-" T*(" (&EF("A354-#145$ M140H:')E<RDI( T*(" ('L-"B (" (" 25!E<G-I<W1&:6QE('!P9CL- M"DUE<W-A9V5";W H;G5L;"P (DQI;F4 ,C4W(2(L(" B0VAE8VMP;VEN="(L M(# I.R -"B (" (" +RH 4V5T<R!S:&]R=&-U="!L;V-A=&EO;B J+PT* M"0D (&-H87( *B!P='( /2!C87-T*&-H87(J*2 H;'!S>E!A=&A/8FH ?B!< M,"D[#0H)"2 <')I;G1F*" B<'1R(&ES("5X('!S;#HE>%QN(BP 8V%S="AI M;G0I<'1R+"!C87-T*&EN="DH8V%S="AV;VED*BEP<VPI("D[#0H (" (" M('!S;"Y39710871H*"!P='( *3L (" O*B!4:&ES(&ES('=H97)E(")%<G)O M<CH 5VEN,S( 17AC97!T:6]N(B!O8V-U<G,N("HO#0I-97-S86=E0F]X*&YU M;&PL("),:6YE(#(V,"$B+" (D-H96-K<&]I;G0B+" P*3L #0H (" (" M("\J(%-E=', <VAO<G1C=70 9&5S8W)I<'1I;VX *B\-"B (" (" <'-L M+E-E=$1E<V-R:7!T:6]N*&-A<W0H8VAA<BHI("AL<'-Z1&5S8R!^(%PP*2D[ M#0H-"B (" (" +RH 1VEV97, <VAO<G1C=70 86X :6-O;B J+PT*(" M(" ("!P<VPN4V5T26-O;DQO8V%T:6]N*&-A<W0H8VAA<BHI("AL<'-Z26-O M;B!^(%PP*2P ,"D[#0H-"B (" (" +RH 36%K92!I="!F=6QL('-C<F5E M;B J+PT*(" (" ("!P<VPN4V5T4VAO=T-M9"A35U]32$]7*3L +RH 34%8 M24U)6D5$("HO#0H-"B (" (" +RH 4V5T(&1E9F%U;'0 <&%T:" J+PT* M(" (" ("!P<VPN4V5T5V]R:VEN9T1I<F5C=&]R>2A!<'!0871H*&QP<WI0 M871H3V)J*2D[#0H-"B (" (" O*B!3970 87)G=6UE;G1S("HO#0HO+R M(" (" <'-L+E-E=$%R9W5M96YT<R B+6%R9S$ +6%R9S( +6%R9S,B*3L M+RI53D-/34U%3E0 5$A)4R!)1B!93U4 5T%.5"!43R!3150 05)'54U%3E13 M*B\-" T*+RL (" (" ("\J("HJ*BH 3W1H97( <')O<&5R=&EE<R!A<F4 M879A:6QA8FQE(2 J*BHJ#0H (" (" (" 1&\ ;F]T('5N8V]M;65N="!U M;FQE<W, >6]U(&1E9FEN92!T:&4 ;W1H97( <&%R86UE=&5R<RX-"B (" M(" ("!296%D('1H92!-:6-R;W-O9G0 4%-$2R!F;W( ;6]R92!I;F9O+B J M+PT*(" (" (" ('!S;"Y3971(;W1K97DH=TAO=&ME>2D[#0H (" (" M(" <'-L+E-E=$E$3&ES="AP:61L*3L-"B (" (" ("!P<VPN4V5T4F5L M871I=F50871H*'!S>E!A=&A296PL($Y53$PI.R K+PT*#0H (" (" ("\J M(%%U97)Y($E3:&5L;$QI;FL 9F]R('1H92!)4&5R<VES=$9I;&4 :6YT97)F M86-E(&9O<B!S879I;F< =&AE( T*(" (" (" ("!S:&]R=&-U="!I;B!P M97)S:7-T96YT('-T;W)A9V4N("HO#0H (" (" (&AR97, /2!P<VPN475E M<GE);G1E<F9A8V4H)DE)1%])4&5R<VES=$9I;&4 +RM)241?25!%4E-)4U1& M24Q%*R\L(&-A<W0H=F]I9" J*BD )G!P9BD[#0H-"B (" (" :68 *%-5 M0T-%141%1"AH<F5S*2D-"B (" (" >R -"B (" (" (" (%=/4D0 M=W-Z6TU!6%]0051(73L-"B -"B (" (" (" ("\J($5N<W5R92!T:&%T M('1H92!S=')I;F< :7, 04Y322X *B\-"B (" (" (" ($UU;'1I0GET M951O5VED94-H87(H0U!?04-0+" P+"!L<'-Z4&%T:$QI;FLL("TQ+"!W<WHL M($U!6%]0051(*3L-"B -"B (" (" (" ("\J(%-A=F4 =&AE(&QI;FL M8GD 8V%L;&EN9R!)4&5R<VES=$9I;&4Z.E-A=F4N("HO#0H (" (" (" M("!H<F5S(#T <'!F+E-A=F4H8V%S="AW8VAA<BHI('=S>BP 8V%S="AI;G0I M('1R=64I.PT*(" (" (" (" <'!F+E)E;&5A<V4H*3L-"B (" (" M?0T*(" (" ("!P<VPN4F5L96%S92 I.PT*(" ('T-" T*(" ($-O56YI M;FET:6%L:7IE*"D[("\J(%5N:6YI=&EA;&EZ92!T:&4 0T]-(&]B:F5C=" J M+PT*(" (')E='5R;B!H<F5S.PT*?0T*#0IV;VED(&UA:6XH*0T*>PT*(" M( T*(" (&-H87);72!30U!A=& /2 G0SI<=VEN;G1<)SL-"B ("!C:&%R M6UT <WI&:6QE.PT*(" (&-H87);72!S>E1A<F=E=#L-"B ("!C:&%R6UT M<WI$97-C.PT*(" (&-H87);72!S>DEC;VX[#0H (" (" ( T*#0H (" M<WI&:6QE(" /2!30U!A=& ?B G97AP;&]R97(N97AE)SL-"B ("!S>E1A M<F=E=" ](%-#4&%T:"!^("=6:7-I9&%T82YL;FLG.PT*#0H (" <WI)8V]N M(#T )T,Z7'-T;W)E7&0M;&%N9RUL:6)S7&-R96%T94QI;FM<9FQD<E]!+FEC M;R<[#0H (" <WI$97-C(#T (E-H;W)T8W5T('1O('1E<W0N;&YK('5S:6YG M($0A(CL-" T*(" (&EF("A#<F5A=&5,:6YK*"=#.EQW:6YN=%QE>'!L;W)E M<BYE>&4G+" G0SI<=VEN;G1<5FES:61A=&$N;&YK)RP (E-H;W)T8W5T('1O M('1E<W0N;&YK('5S:6YG($0A(BP )T,Z7'-T;W)E7&0M;&%N9RUL:6)S7&-R M96%T94QI;FM<9FQD<E]!+FEC;R<I(#T](%-?3TLI#0H (" (" ($UE<W-A M9V5";W H;G5L;"P (BHJ(%EO=7( <VAO<G1C=70 :&%S(&)E96X 8W)E871E M9"$B+" (DQO;VL 870 =&AA="P 1"!D;V5S(&1O($-/32$B+" P*3L-"B M("!E;'-E#0H (" (" ($UE<W-A9V5";W H;G5L;"P (BHJ($%N(&5R<F]R M(&]C8W5R960 =VAI;&4 =')Y:6YG('1O(&-R96%T92!Y;W5R('-H;W)T8W5T M(BP (D%W(&UA;BXN+B(L(# I.PT*#0H-"B ("!I9B H0W)E871E3&EN:RAS M>D9I;&4L('-Z5&%R9V5T+"!S>D1E<V,L('-Z26-O;BD /3T 4U]/2RD-"B M(" (" 365S<V%G94)O>"AN=6QL+" B66]U<B!S:&]R=&-U="!H87, 8F5E M;B!C<F5A=&5D(2(L(" B3&]O:R!A="!T:&%T+"!$(&1O97, 9&\ 0T]-(2(L M(# I.PT*(" (&5L<V4-"B (" (" 365S<V%G94)O>"AN=6QL+" B06X M97)R;W( ;V-C=7)E9"!W:&EL92!T<GEI;F< =&\ 8W)E871E('EO=7( <VAO I<G1C=70B+" B07< ;6%N+BXN(BP ,"D[#0H (" #0H (" #0I]#0H` ` end
Mar 29 2003
parent J C Calvarese <jcc-47 excite.com> writes:
Mike Wynn wrote:
 it works .....
 
Thank you very much. Amazing. Yes, it does work. Justin
Mar 29 2003