I created Win32Structure subclass: #TIMEZONEINFORMATION and added
class method: defineFields "Define the fields of the Win32 TIME_ZONE_INFORMATION structure" self defineField: #bias type: DWORDField new; defineField: #standardName type: (StringField length: 32) beReadOnly; defineField: #standardDate type: (StructureField type: SYSTEMTIME) beReadOnly; defineField: #standardBias type: DWORDField new; defineField: #daylightName type: (StringField length: 32) beReadOnly; defineField: #daylightDate type: (StructureField type: SYSTEMTIME) beReadOnly; defineField: #daylightBias type: DWORDField new "typedef struct _TIME_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[ 32 ]; SYSTEMTIME StandardDate; LONG StandardBias; WCHAR DaylightName[ 32 ]; SYSTEMTIME DaylightDate; LONG DaylightBias; } TIME_ZONE_INFORMATION; " I suspect I didn't get the fields defined correctly because it blew up Dolphin when I then evaluated "Locale default timeZoneInformation" after adding Locale method: timeZoneInformation | timeZoneInfo rc | timeZoneInfo := TIMEZONEINFORMATION new. rc := KernelLibrary default getTimeZoneInformation: timeZoneInfo. rc ifFalse: [KernelLibrary default systemError]. ^Array with: rc with: timeZoneInfo "leftString: nameSize asInteger" and adding KernelLibrary method: getTimeZoneInformation: lpTimeZoneInformation "Set the fields of lpTimeZoneInformation with th current time-zone parameters. If successful it answers the which fields apply or unknown, else an error indicator. These parameters control the translations between Coordinated Universal Time (UTC) and local time. DWORD GetTimeZoneInformation( LPTIME_ZONE_INFORMATION lpTimeZoneInformation // time zone );" <stdcall: dword GetTimeZoneInformation TIMEZONEINFORMATION* > ^self invalidCall I checked the TIME_ZONE_INFORMATION strucure size in C++, but I may have the call parms or return wrong. Anyone spot anything obvious? First time I ran it I think it got through the call. Reloaded and tried stepping through it, and got program performed illegal etc. I saw "Bad Oop" as I scanned the dump. Thanks Bill and Blair for the "External ..." page on the Dolphin wiki. That helped get me started after the Dev. Guide. -- Richard A. Harmon "The only good zombie is a dead zombie" [hidden email] E. G. McCarthy |
Richard
"Richard A. Harmon" <[hidden email]> wrote in message news:[hidden email]... > I created Win32Structure subclass: #TIMEZONEINFORMATION and added > class method: > ...snip... > I suspect I didn't get the fields defined correctly because it blew up > Dolphin when I then evaluated "Locale default timeZoneInformation" > after adding Locale method: The character arrays in the structure are Unicode strings, and so you're structure is too small and thus memory corruption is likely when GetTimeZoneInformation is called. Try the attached. Regards Blair begin 666 TimeZoneInfo.pac M?"!P86-K86=E('P-"G!A8VMA9V4@.CT@4&%C:V%G92!N86UE.B G5&EM95IO M;F5);F9O)RX-"G!A8VMA9V4@<&%X5F5R<VEO;CH@,#L-"@EB87-I8T-O;6UE M;G0Z("<G+@T*#0IP86-K86=E(&)A<VEC4&%C:V%G959E<G-I;VXZ("<G+@T* M#0HB061D('1H92!P86-K86=E('-C<FEP=',B#0H-"B)!9&0@=&AE(&-L87-S M(&YA;65S+"!L;V]S92!M971H;V0@;F%M97,L(&=L;V)A;"!N86UE<RP@<F5S M;W5R8V4@;F%M97,B#0IP86-K86=E(&-L87-S3F%M97,-"@EA9&0Z("-424U% M7UI/3D5?24Y&3U)-051)3TX[#0H)>6]U<G-E;&8N#0H-"G!A8VMA9V4@;65T M:&]D3F%M97,-"@EA9&0Z("-+97)N96Q,:6)R87)Y("T^("-G9714:6UE6F]N M94EN9F]R;6%T:6]N.CL-"@EA9&0Z("-,;V-A;&4@+3X@(W1I;65:;VYE26YF M;W)M871I;VX[#0H)>6]U<G-E;&8N#0H-"G!A8VMA9V4@9VQO8F%L3F%M97,- M"@EY;W5R<V5L9BX-"@T*<&%C:V%G92!R97-O=7)C94YA;65S#0H)>6]U<G-E M;&8N#0H-"B)":6YA<GD@1VQO8F%L($YA;65S(@T*<&%C:V%G92!B:6YA<GE' M;&]B86Q.86UE<SH@*%-E="!N97<-"@EY;W5R<V5L9BDN#0HB4F5S;W5R8V4@ M3F%M97,B#0IP86-K86=E(&%L;%)E<V]U<F-E3F%M97,Z("A3970@;F5W#0H) M>6]U<G-E;&8I+@T*#0HB061D('1H92!P<F5R97%U:7-I=&4@;F%M97,B#0IP M86-K86=E('-E=%!R97)E<75I<VET97,Z("A)9&5N=&ET>5-E="!N97<-"@EA M9&0Z("=$;VQP:&EN)SL-"@EY;W5R<V5L9BDN#0H-"G!A8VMA9V4A#0H-"B)# M;&%S<R!$969I;FET:6]N<R(A#0H-"E=I;C,R4W1R=6-T=7)E('-U8F-L87-S M.B C5$E-15]:3TY%7TE.1D]234%424].#0H):6YS=&%N8V5687)I86)L94YA M;65S.B G)PT*"6-L87-S5F%R:6%B;&5.86UE<SH@)R<-"@EP;V]L1&EC=&EO M;F%R:65S.B G)PT*"6-L87-S26YS=&%N8V5687)I86)L94YA;65S.B G)R$- M"B),;V]S92!-971H;V1S(B$-"@T*(4ME<FYE;$QI8G)A<GD@;65T:&]D<T9O M<B$-"@T*9V5T5&EM95IO;F5);F9O<FUA=&EO;CH@;'!4:6UE6F]N94EN9F]R M;6%T:6]N#0H)(E!O<'5L871E('1H92!F:65L9',@;V8@;'!4:6UE6F]N94EN M9F]R;6%T:6]N('=I=&@@=&AE(&-U<G)E;G0-"@ET:6UE+7IO;F4@<&%R86UE M=&5R<RX@268@<W5C8V5S<V9U;"!A;G-W97)S('1H92!W:&EC:"!F:65L9',@ M87!P;'D-"@EO<B!U;FMN;W=N+"!E;'-E(&%N(&5R<F]R(&EN9&EC871O<BX- M"@E4:&5S92!P87)A;65T97)S(&-O;G1R;VP@=&AE('1R86YS;&%T:6]N<R!B M971W965N($-O;W)D:6YA=&5D#0H)56YI=F5R<V%L(%1I;64@*%540RD@86YD M(&QO8V%L('1I;64N#0H-"@E$5T]21"!'9714:6UE6F]N94EN9F]R;6%T:6]N M* T*"0E,4%1)345?6D].15])3D9/4DU!5$E/3B!L<%1I;65:;VYE26YF;W)M M871I;VX@+R\@=&EM92!Z;VYE#0H)*3LB#0H-"@D\<W1D8V%L;#H@9'=O<F0@ M1V5T5&EM95IO;F5);F9O<FUA=&EO;B!424U%7UI/3D5?24Y&3U)-051)3TXJ M(#X-"@E><V5L9B!I;G9A;&ED0V%L; T*(2 A#0HA2V5R;F5L3&EB<F%R>2!C M871E9V]R:65S1F]R.B C9V5T5&EM95IO;F5);F9O<FUA=&EO;CHA*BUP<FEM M:71I=F5S(2HM=6YC;&%S<VEF:65D(7!U8FQI8R$@(0T*#0HA3&]C86QE(&UE M=&AO9'-&;W(A#0H-"G1I;65:;VYE26YF;W)M871I;VX-"@E\('1I;65:;VYE M26YF;R!R8R!\#0H)=&EM95IO;F5);F9O(#H](%1)345?6D].15])3D9/4DU! M5$E/3B!N97<N#0H)<F,@.CT@2V5R;F5L3&EB<F%R>2!D969A=6QT(&=E=%1I M;65:;VYE26YF;W)M871I;VXZ('1I;65:;VYE26YF;RX-"@ER8R ](#$V<D9& M1D9&1D9&(&EF5')U93H@6TME<FYE;$QI8G)A<GD@9&5F875L="!S>7-T96U% M<G)O<ETN#0H)7D%R<F%Y('=I=&@Z(')C('=I=&@Z('1I;65:;VYE26YF;R B M;&5F=%-T<FEN9SH@;F%M95-I>F4-"@D)87-);G1E9V5R(@T*#0H-"B$@(0T* M(4QO8V%L92!C871E9V]R:65S1F]R.B C=&EM95IO;F5);F9O<FUA=&EO;B$J M+75N8VQA<W-I9FEE9"%P=6)L:6,A("$-"@T*(D5N9"!O9B!P86-K86=E(&1E M9FEN:71I;VXB(0T*#0H-"@T*5$E-15]:3TY%7TE.1D]234%424].(&-O;6UE M;G0Z("<G(0T*#0I424U%7UI/3D5?24Y&3U)-051)3TX@9W5I9#H@*$=5240@ M9G)O;5-T<FEN9SH@)WM#14(X-#9#12U&-$1"+30X1D4M.49%0RTP,D4V,S=# M0D,T0C1])RDA#0H-"B%424U%7UI/3D5?24Y&3U)-051)3TX@8V%T96=O<FEE M<T9O<D-L87-S(55N8VQA<W-I9FEE9"$@(0T*(51)345?6D].15])3D9/4DU! M5$E/3B!M971H;V1S1F]R(0T*#0IB:6%S#0H)(D%N<W=E<B!T:&4@<F5C96EV M97(G<R!B:6%S(&9I96QD(&%S(&$@4VUA;&QT86QK(&]B:F5C="XB#0H-"@E> M*&)Y=&5S('-D=V]R9$%T3V9F<V5T.B P*2$-"@T*9&%Y;&EG:'1":6%S#0H) M(D%N<W=E<B!T:&4@<F5C96EV97(G<R!D87EL:6=H=$)I87,@9FEE;&0@87,@ M82!3;6%L;'1A;&L@;V)J96-T+B(-"@T*"5XH8GET97,@<V1W;W)D071/9F9S M970Z(#$V."DA#0H-"F1A>6QI9VAT1&%T90T*"2)!;G-W97(@=&AE(')E8V5I M=F5R)W,@9&%Y;&EG:'1$871E(&9I96QD(&%S(&$@4VUA;&QT86QK(&]B:F5C M="XB#0H-"@E>4UE35$5-5$E-12!F<F]M061D<F5S<SH@*&)Y=&5S('EO=7)! M9&1R97-S("L@,34R*2$-"@T*9&%Y;&EG:'1.86UE#0H)(D%N<W=E<B!T:&4@ M<F5C96EV97(G<R!D87EL:6=H=$YA;64@9FEE;&0@87,@82!3;6%L;'1A;&L@ M;V)J96-T+B(-"@T*"5Y5;FEC;V1E4W1R:6YG(&9R;VU!9&1R97-S.B H8GET M97,@>6]U<D%D9')E<W,@*R X."DA#0H-"G-T86YD87)D0FEA<PT*"2)!;G-W M97(@=&AE(')E8V5I=F5R)W,@<W1A;F1A<F1":6%S(&9I96QD(&%S(&$@4VUA M;&QT86QK(&]B:F5C="XB#0H-"@E>*&)Y=&5S('-D=V]R9$%T3V9F<V5T.B X M-"DA#0H-"G-T86YD87)D1&%T90T*"2)!;G-W97(@=&AE(')E8V5I=F5R)W,@ M<W1A;F1A<F1$871E(&9I96QD(&%S(&$@4VUA;&QT86QK(&]B:F5C="XB#0H- M"@E>4UE35$5-5$E-12!F<F]M061D<F5S<SH@*&)Y=&5S('EO=7)!9&1R97-S M("L@-C@I(0T*#0IS=&%N9&%R9$YA;64-"@DB06YS=V5R('1H92!R96-E:79E M<B=S('-T86YD87)D3F%M92!F:65L9"!A<R!A(%-M86QL=&%L:R!O8FIE8W0N M(@T*#0H)7E5N:6-O9&53=')I;F<@9G)O;4%D9')E<W,Z("AB>71E<R!Y;W5R M061D<F5S<R K(#0I(2 A#0HA5$E-15]:3TY%7TE.1D]234%424].(&-A=&5G M;W)I97-&;W(Z("-B:6%S(2HJ8V]M<&EL960@86-C97-S;W)S*BHA<'5B;&EC M(2 A#0HA5$E-15]:3TY%7TE.1D]234%424].(&-A=&5G;W)I97-&;W(Z("-D M87EL:6=H=$)I87,A*BIC;VUP:6QE9"!A8V-E<W-O<G,J*B%P=6)L:6,A("$- M"B%424U%7UI/3D5?24Y&3U)-051)3TX@8V%T96=O<FEE<T9O<CH@(V1A>6QI M9VAT1&%T92$J*F-O;7!I;&5D(&%C8V5S<V]R<RHJ(7!U8FQI8R$@(0T*(51) M345?6D].15])3D9/4DU!5$E/3B!C871E9V]R:65S1F]R.B C9&%Y;&EG:'1. M86UE(6%C8V5S<VEN9R%P=6)L:6,A("$-"B%424U%7UI/3D5?24Y&3U)-051) M3TX@8V%T96=O<FEE<T9O<CH@(W-T86YD87)D0FEA<R$J*F-O;7!I;&5D(&%C M8V5S<V]R<RHJ(7!U8FQI8R$@(0T*(51)345?6D].15])3D9/4DU!5$E/3B!C M871E9V]R:65S1F]R.B C<W1A;F1A<F1$871E(2HJ8V]M<&EL960@86-C97-S M;W)S*BHA<'5B;&EC(2 A#0HA5$E-15]:3TY%7TE.1D]234%424].(&-A=&5G M;W)I97-&;W(Z("-S=&%N9&%R9$YA;64A86-C97-S:6YG(7!U8FQI8R$@(0T* M#0HA5$E-15]:3TY%7TE.1D]234%424].(&-L87-S(&UE=&AO9'-&;W(A#0H- M"F1E9FEN949I96QD<PT*(D1E9FEN92!T:&4@9FEE;&1S(&]F('1H92!7:6XS M,B!424U%7UI/3D5?24Y&3U)-051)3TX@<W1R=6-T=7)E#0H)"7-E;&8@8V]M M<&EL941E9FEN:71I;VX-"@T*"71Y<&5D968@<W1R=6-T(%]424U%7UI/3D5? M24Y&3U)-051)3TX-"@E[#0H)"4Q/3D<@0FEA<SL-"@D)5T-(05(@4W1A;F1A M<F1.86UE6R S,B!=.PT*"0E365-414U424U%(%-T86YD87)D1&%T93L-"@D) M3$].1R!3=&%N9&%R9$)I87,[#0H)"5=#2$%2($1A>6QI9VAT3F%M95L@,S(@ M73L-"@D)4UE35$5-5$E-12!$87EL:6=H=$1A=&4[#0H)"4Q/3D<@1&%Y;&EG M:'1":6%S.PT*"7T@5$E-15]:3TY%7TE.1D]234%424]..R(-"@T*#0H)<V5L M9B -"@D)9&5F:6YE1FEE;&0Z("-B:6%S('1Y<&4Z(%-$5T]21$9I96QD(')E M861/;FQY.PT*"0ED969I;F5&:65L9#H@(W-T86YD87)D3F%M92!T>7!E.B H M07)R87E&:65L9"!T>7!E.B!5;FEC;V1E4W1R:6YG(&QE;F=T:#H@,S(I(&)E M4F5A9$]N;'D[#0H)"61E9FEN949I96QD.B C<W1A;F1A<F1$871E('1Y<&4Z M("A3=')U8W1U<F5&:65L9"!T>7!E.B!365-414U424U%*2!B95)E861/;FQY M.PT*"0ED969I;F5&:65L9#H@(W-T86YD87)D0FEA<R!T>7!E.B!31%=/4D1& M:65L9"!R96%D3VYL>3L-"@D)9&5F:6YE1FEE;&0Z("-D87EL:6=H=$YA;64@ M='EP93H@*$%R<F%Y1FEE;&0@='EP93H@56YI8V]D95-T<FEN9R!L96YG=&@Z M(#,R*2!B95)E861/;FQY.PT*"0ED969I;F5&:65L9#H@(V1A>6QI9VAT1&%T M92!T>7!E.B H4W1R=6-T=7)E1FEE;&0@='EP93H@4UE35$5-5$E-12D@8F52 M96%D3VYL>3L-"@D)9&5F:6YE1FEE;&0Z("-D87EL:6=H=$)I87,@='EP93H@ M4T173U)$1FEE;&0@<F5A9$]N;'DA("$-"B%424U%7UI/3D5?24Y&3U)-051) M3TX@8VQA<W,@8V%T96=O<FEE<T9O<CH@(V1E9FEN949I96QD<R$J+75N8VQA M<W-I9FEE9"%P=6)L:6,A("$-"@T*( T*(D)I;F%R>2!';&]B86QS(B$-"@T* 0(E)E<V]U<F-E<R(A#0H-"@`` ` end |
Free forum by Nabble | Edit this page |