c++ - STLSoft 1.7.1 - beta announcement; final requests
- Matthew (161/161) Feb 06 2004 Hi everyone
- Ant (6/8) Feb 06 2004 ..
- Pablo Aguilar (3/3) Mar 09 2004 Does the mfcstl c_str_ptr shim support CListBox?
- Matthew (16/19) Mar 10 2004 Hi Pablo
- Pablo Aguilar (12/26) Mar 10 2004 Actually, I was thinknig of it getting the selected item's text, or null...
- Matthew (14/47) Mar 10 2004 Yes, I think that's the way to go.
- Pablo Aguilar (51/70) Mar 10 2004 Great...
- Matthew (16/59) Mar 10 2004 null
- Matthew (18/50) Mar 10 2004 Pablo
- Pablo Aguilar (5/19) Mar 10 2004 suggest
- Matthew (1000/1023) Mar 10 2004 Hmmm. Options were:
- Pablo Aguilar (65/103) Mar 10 2004 Actually, I was talking about the rant...
- Pablo Aguilar (4/4) Mar 10 2004 Got something:
- Matthew (581/585) Mar 10 2004 Doh!
- Pablo Aguilar (4/4) Feb 24 2004 Have you thought about doing a listbox or combobox sequence which
- Matthew (4/8) Feb 24 2004 That's a nice idea. Let me have a think. :)
- Pablo Aguilar (3/5) Feb 25 2004 I wasn't, but I'll sign up, see what you've got to offer...
- Matthew (29/35) Feb 25 2004 Great!
- Pablo Aguilar (24/49) Feb 25 2004 due
- Matthew (21/60) Feb 25 2004 since
- C (25/102) Mar 01 2004 Just my opinion , but I really don't like doxygen, I like the idea of =
- Matthew (9/106) Mar 01 2004 Do you have a better suggestion? I'm always open to new things.
- C (29/152) Mar 02 2004 What about just the .chm approach ? It is very time consuming though , ...
- Matthew (16/139) Mar 02 2004 I already do use chm, as part of the Doxygen preparation, available in a
- Niall Douglas (6/13) Mar 02 2004 Look into http://python.planetmirror.com/sigs/doc-sig/otherlangs.html. I...
- Pablo Aguilar (4/4) Mar 04 2004 I've just started playing with the clipboard, and thought of an idea you
- Pablo Aguilar (2/6) Mar 04 2004 hg) )
- Matthew (10/16) Mar 04 2004 Sure. Great!
- Pablo Aguilar (99/107) Mar 05 2004 Here they are then...
- ctillman rdfgroup.com (4/165) Aug 26 2004 If anyone would be interested in putting there C++, STL, Unix and Kernel...
- Matthew (2/205) Aug 26 2004
- ctillman rdfgroup.com (4/165) Aug 26 2004 If anyone would be interested in putting there C++, STL, Unix and Kernel...
Hi everyone [First, apologies to any D folks who do not use, and aren't interested in, C++/STL/STLSoft. It's just that there are so many good ideas in there, that I wanted to snag any that might be transferable over to STLSoft.] STLSoft v1.7.1 will be released within the next 4-6 weeks, and it's the last chance for getting in any feature requests. Available now from the STLSoft main site - http://stlsoft.org/ - is STLSoft v1.7.1 beta 3 (stlsoft_1_7_1_beta3.zip), containing much of what will constitute the final 1.7.1 release. To whet your appetite, I'm including a list of additions and a list of changes to the libraries at the end of this post. Many of these appear in my book "Imperfect C++" which will be out later in the year. As yet, the documentation has not had any new work. I'd *really* appreciate any suggestions for improvements for the documentation, as I know it's the Achilles' Heel of the project. From the feedback I've had, this is the only area of the libraries that is putting people off from using them more. If anyone wants to volunteer to help out on this, it'd be fantastic. (Sounds of thousands of people taking a step back ...) Thanks for listening. Please feel free to post any questions via the FAQ website (http://stlsoft.gregpeet.com/). Cheers (changes & additions follow below:) Matthew Wilson Director, Synesis Software (www.synesis.com.au) STLSoft moderator (http://www.stlsoft.org) Contributing editor, C/C++ Users Journal (www.synesis.com.au/articles.html#columns) ----------------------------------------------------- ADDITIONS ========== The additions to the libraries are as follows: General Many of the standard-offending symbols with leading underscores have been changed. I intend to do the rest before the final release Compilers Intel 8.0 CodePlay VectorC 2.06 Comeau 4.3.3. (not quite complete yet, though ;)) GCC v3+ now supported for COMSTL STLSoft (v1.6.5 => 1.7.1) array_proxy template class - type-safe & size-safe aid for passing arrays of object types to functions. Controls passing of derived arrays in a safe manner explicit_cast template class - implements explicit conversion operators fast_string_concatenator template class - a helper class for implementing fast, non-intrusive, string concatenation (Featured in Imperfect C++, and in the article "Fast, Non-Intrusive String Concatenation" in April's CUJ) basic_fixed_substring template class - provides a non-resizable "view" onto a part of an existing string, useful for high efficiency string manipulation literal_cast template class - used to provide type-to-range validation of literal constants Meta Programming Constructs - including is_pointer_type<>, is_array_type<>, is_convertible_to_bool<>, is_numeric_type<>, is_integral_type<>, is_bool_type<>, is_void_type<>, is_fundamental_type<>, is_compound_type<>, is_class_type<>, is_const<>, is_volatile<>, (void-able) size_of<>, is_same_type<>, has_value_type<>, has_iterator<>, has_const_iterator<> pod_vector template class - highly efficient vector for POD types (only) proxy_sequence template class - highly efficient pseudo-sequence, for layering on top of arrays with providing parameterisable value_type. Size Traits - providing type-definitions of signed and unsigned types of a corresponding bit-size Type Traits - for a given type: providing is_pointer, is_reference, is_const and is_volatile attributes; defining two pointer/reference-stripped types: the base_type (non-cv-qualified) and cv_type (cv-qualifiers retained) unused_return_value_monitor template class - used for detecting when a potentially expensive return value is not used; ideal for post-increment operators; has parameterisable "failure" policy stlsoft.h: STLSOFT_DECLARE_TEMPLATE_PARAM_AS_FRIEND(), STLSOFT_SUPPRESS_UNUSED() ATLSTL (v1.2.8 => 1.3.1) ccombstr_veneer template adaptor class - makes CComBSTR conformant to the STL String concept SupportErrorInfoImpl / SupportErrorInfoImpl2 / SupportErrorInfoImpl3 template classes - simple ATL template that provides ISupportErrorInfo implementation COMSTL (v1.2.5 => 1.4.1) collection_sequence template class - maps COM Collections to STL-like sequence set_error_info() function - sets the calling thread's error-info for a given description string interface_ptr template class - smart-enough interface pointer class MFCSTL (v1.3.4 => 1.3.5) no additions UNIXSTL (v1.0.3 => 1.1.1) basic_current_directory template class - provides access to current directory in string form basic_environment_variable template class - provides access to a given environment value in string form compare_path template function object - compares file-system paths via fully-qualified path form process_mutex class spin_mutex class thread_mutex class WinSTL (v1.3.7 => 1.4.1) acl_sequence class - provides STL-like sequence semantics over Access Control Lists Atomic Functions - a suite of functions that provide optimal performance for single-processor/SMP/mixed Intel processors using inline assembler clipboard_format_sequence class - provides STL-like sequence semantics over the system's supported clipboard formats basic_error_desc template class - provides access to the string form of a given Win32 Error Code last_error_scope - provides scoping of last error code, for maintaining correct state when doing intermediate error processing event class - a thin wrapper for the Win32 event kernel synchronisation kernel object listview_sequence class - provides STL-like sequence semantics over the items in a ListView common control basic_module_directory template class - provides access to a given (or the calling process's) module's directory process_mutex class setcursor_scope class - provides scoping of the cursor setfocus_scope class - provides scoping of the window with the focus Time Functions - functions to convert between time_t and FILETIME token_information template class - type-safe, resource-managed accessor class to token information (via GetTokenInformation()) window_text_scope template class - provides scoping of a window's text CHANGES ======== The changes to the libraries are as follows: STLSoft (v1.6.5 => 1.7.1) auto_buffer - it's now resizable, without any loss of efficiency. This supports the new pod_vector template class minor rationalisations to char_traits Renaming of constraits: has_base => must_have_base, is_veneer => must_be_same_size, type_is_non_class_or_trivial_class => must_be_pod fixed_array_d1/2d/3d/4d template classes - improved efficiency, by using an additional template parameter to determine, at compile-time, whether slices "own" their memory; previously this was achieved at runtme by a member variable frame_array_1d/2d/3d/4d renamed to static_array_1d/2d/3d/4d frame_string: bug fixes sign_traits: bug fixes; addition of "bytes" member value simple_string: bug fixes; improvements in performance ATLSTL (v1.2.8 => 1.3.1) COMSTL (v1.2.5 => 1.4.1) simplification of interface_cast; addition of interface_cast_test enum_sequence - this has simplified, and now only has three non-default parameters for the template MFCSTL (v1.3.4 => 1.3.5) minor enhancements to cstring_veneer UNIXSTL (v1.0.3 => 1.1.1) findfile_sequence renamed to glob_sequence (findfile_sequence is retained for backwards compatibility) tls_index renamed to tss_index (tls_index is retained for backwards compatibility) filesystem_traits: lots of new features readdir_sequence: now supports flags "includeDots", "directories" and "files" WinSTL (v1.3.7 => 1.4.1) ansi2Unicode & unicode2Ansi templates now have a second ctor which takes a length filesystem_traits: addition of file_exists() method findfile_sequence now correctly implements InputIterator semantics, and works correctly when iterators incremented in both prefix and postfix forms findvolume_sequence: same as for findfile_sequence performance_counter_init renamed to performance_counter_initialiser
Feb 06 2004
In article <c01k16$8sf$1 digitaldaemon.com>, Matthew says...Hi everyone [First, apologies to any D folks who do not use, and aren't interested in.. I have the same problem when I make my announcements but the temporaty increase of hits on my pages validates those announcements (I hope). Ant
Feb 06 2004
Does the mfcstl c_str_ptr shim support CListBox? I'm using stlsoft 1.6.5 and, c_str_ptr works with windows whose GetWindowText function returns the window's text, and CListBox doesn't...
Mar 09 2004
Hi Pablo The c_str_ptr shim boils down to a call to GetWindowText(). Since the contents of a listbox are not stored in the window text, c_str_ptr will not yield the list box contents. In any case, which one would it return? However, you've got me thinking now, and maybe I might add a shim that takes an object and an index. This could work for list/combo boxes, list views, as well as completely different types, such as stl containers, COM collections, etc. It's funny. I've never considered shims having more than one parameter, but there's no reason why they can't. I'm busy this week, but maybe next week I can add this in, in time for 1.7.1. Cheers Matthew "Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c2lnp6$1aq0$1 digitaldaemon.com...Does the mfcstl c_str_ptr shim support CListBox? I'm using stlsoft 1.6.5 and, c_str_ptr works with windows whose GetWindowText function returns the window's text, and CListBox doesn't...
Mar 10 2004
Actually, I was thinknig of it getting the selected item's text, or null (or "", whatever) if nothing was selected, of course this wouldn't work with multiple selection lists, but then the shim with an index you mentioned kicks in (when you know there might be multiple selections) Did you get a chance to look at the clipboard stuff I posted last week? "Matthew" <matthew stlsoft.org> wrote in message news:c2mv10$ch3$1 digitaldaemon.com...Hi Pablo The c_str_ptr shim boils down to a call to GetWindowText(). Since the contents of a listbox are not stored in the window text, c_str_ptr willnotyield the list box contents. In any case, which one would it return? However, you've got me thinking now, and maybe I might add a shim thattakesan object and an index. This could work for list/combo boxes, list views,aswell as completely different types, such as stl containers, COMcollections,etc. It's funny. I've never considered shims having more than one parameter,butthere's no reason why they can't. I'm busy this week, but maybe next week I can add this in, in time for 1.7.1. Cheers Matthew
Mar 10 2004
Actually, I was thinknig of it getting the selected item's text, or null(or"", whatever) if nothing was selected,Ah, that's an interesting spin. Maybe that would be a go-erof course this wouldn't work with multiple selection lists, but then the shim with an index you mentioned kicks in (when you know there might be multiple selections)Yes, I think that's the way to go.Did you get a chance to look at the clipboard stuff I posted last week?I've looked at it, and am confident that it looks suitable (once we've minimised a few dependencies and such). Be assured that I won't forget about it. But I am trying desparately to get some final bits of my book done this week, while I'm trying to shake off the jetlag from having travelled to the UK from Australia for a holiday (!). At this point, it looks like 1.7.1 will happen in about 3 weeks. I'll *definitely* contact you some time before then about the clipboard, and I'll also post the new shims (which I might do in a day or so). Cheers Matthew"Matthew" <matthew stlsoft.org> wrote in message news:c2mv10$ch3$1 digitaldaemon.com...views,Hi Pablo The c_str_ptr shim boils down to a call to GetWindowText(). Since the contents of a listbox are not stored in the window text, c_str_ptr willnotyield the list box contents. In any case, which one would it return? However, you've got me thinking now, and maybe I might add a shim thattakesan object and an index. This could work for list/combo boxes, listaswell as completely different types, such as stl containers, COMcollections,etc. It's funny. I've never considered shims having more than one parameter,butthere's no reason why they can't. I'm busy this week, but maybe next week I can add this in, in time for 1.7.1. Cheers Matthew
Mar 10 2004
Great... One comment though, this would work with a known type window (CListBox, CComboBox, etc), but wouldn't in case you've got a plain HWND, I've got another small routine (which is buggier I'm sure) which doesn't quite go with your 'lightweight' philosophy, so I didn't bother mentioning it... anyway, it does take a plain HWND and get's its text, by cheking (with GetWindowClass) if it's of a know class and use specific behavior for it, or default to using GetWindowText if it isn't... I say it isn't lightweight, 'cuz it has to check and resort to various if/else constructs, but I'll leave that critique to you... here's the attachment anywayActually, I was thinknig of it getting the selected item's text, or null(or"", whatever) if nothing was selected,Ah, that's an interesting spin. Maybe that would be a go-erof course this wouldn't work with multiple selection lists, but then the shim with an index you mentioned kicks in (when you know there might be multiple selections)Yes, I think that's the way to go.aboutDid you get a chance to look at the clipboard stuff I posted last week?I've looked at it, and am confident that it looks suitable (once we've minimised a few dependencies and such). Be assured that I won't forgetit. But I am trying desparately to get some final bits of my book donethisweek, while I'm trying to shake off the jetlag from having travelled totheUK from Australia for a holiday (!). At this point, it looks like 1.7.1 will happen in about 3 weeks. I'll *definitely* contact you some time before then about the clipboard, andI'llalso post the new shims (which I might do in a day or so).I guess it's pretty straight forward to remove some dependencies (at least if it's noncopyable we're talking about), but I'll wait to hear all of your comments...Cheers Matthewbegin 666 WndToStr.h M(VEF;F1E9B!?7U=.1%1/4U127TA?7TE.0TQ51$5$7U\-"B-D969I;F4 7U]7 M;7 >PT*"71E;7!L871E/'1Y<&5N86UE($4^($A73D0F(&=E=%]I;G1O*$A7 M3D0F('<L('-T9#HZ8F%S:6-?<W1R:6YG/$4^)B!S*0T*"7L-" D):6YT(&QE M("8F("AL96X (3T +3$I("D-" D)>PT*"0D)<RYR97-I>F4H;&5N*3L-" D) M"4=E=%=I;F1O=U1E>'0H=RP )G-;,%TL(&QE;BLQ*3L-" D)?0T*"0EE;'-E M;&%T93QT>7!E;F%M92!%/B!(5TY$("9O<&5R871O<CX^*$A73D0 )G<L('-T M9#HZ8F%S:6-?<W1R:6YG/$4^("9S*0T*>PT*"6-H87( 8VQA<W-?;F%M95LR M<U]N86UE*2TQ*3L-" EU;G-I9VYE9"!M<V=?:61X(#T 3E5,3"P ;7-G7VQE M;BP ;7-G7V=E=#L-" T*"6EF*" A<W1R:6-M<"AC;&%S<U]N86UE+" B3$E3 M9U]L96X /2!,0E]'151415A43$5..PT*"0EM<V=?9V5T(#T 3$)?1T545$58 M5#L- M0D]8(BD *0T*"7L-" D);7-G7VED>" ]($-"7T=%5$-54E-%3#L-" D);7-G M7VQE;B ]($-"7T=%5$Q"5$585$Q%3CL-" D);7-G7V=E=" ]($-"7T=%5$Q" M5$585#L-" T*"0EL;VYG('-T>6QE(#T 1V5T5VEN9&]W3&]N9RAW+"!'5TQ? "*B\` ` end
Mar 10 2004
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c2oe41$3pu$1 digitaldaemon.com...nullActually, I was thinknig of it getting the selected item's text, ormentioned(or"", whatever) if nothing was selected,Ah, that's an interesting spin. Maybe that would be a go-erof course this wouldn't work with multiple selection lists, but then the shim with an index youorGreat... One comment though, this would work with a known type window (CListBox, CComboBox, etc), but wouldn't in case you've got a plain HWND, I've got another small routine (which is buggier I'm sure) which doesn't quite go with your 'lightweight' philosophy, so I didn't bother mentioning it... anyway, it does take a plain HWND and get's its text, by cheking (with GetWindowClass) if it's of a know class and use specific behavior for it,kicks in (when you know there might be multiple selections)Yes, I think that's the way to go.default to using GetWindowText if it isn't... I say it isn't lightweight, 'cuz it has to check and resort to various if/else constructs, but I'll leave that critique to you... here's the attachment anywayThat's the general technique I've just used to adjust WinSTL's c_str_ptr*() shims to work with ListBox. Currently it uses a hard-coded helper function which searches through a list of Window types, and returns an enum value. I plan to make a customisable version at some point, once the basic technique has been tested (by you!). (btw, unfortunately I cannot look at any newsgroup attachments on this machine, as OE "helpfully" removes them. Can you forward it to by email. If not, not to worry, since it sounds like we're working on the same basic technique.)week?Did you get a chance to look at the clipboard stuff I posted lastyourI've looked at it, and am confident that it looks suitable (once we've minimised a few dependencies and such). Be assured that I won't forgetaboutit. But I am trying desparately to get some final bits of my book donethisweek, while I'm trying to shake off the jetlag from having travelled totheUK from Australia for a holiday (!). At this point, it looks like 1.7.1 will happen in about 3 weeks. I'll *definitely* contact you some time before then about the clipboard, andI'llalso post the new shims (which I might do in a day or so).I guess it's pretty straight forward to remove some dependencies (at least if it's noncopyable we're talking about), but I'll wait to hear all ofcomments...Cheers Matthew
Mar 10 2004
Pablo I've done a first stab. Unfortunately, it's on the laptop I've borrowed (from my brother-in-law) which is currently not networked to this borrowed (from my mum) desktop. I thought I would be able to pass them across using CD-RWs, but one is using Roxio, and the other is using Pinnacle's InstantCD/DVD, and it doesn't work. Ah, you got to love hardware!! Anyway, I should have it sorted in the next day or so, and then I'll post it here, or will do another beta. Thanks for the idea. If you have any further refinements you want to suggest once you've tried it out, please let me know. btw, I've recently updated *all* STLSoft c_str_ptr*() shims to be IOStream compatible, i.e. to work with operator <<(). Cheers Matthew "Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c2nnpl$1rnm$1 digitaldaemon.com...Actually, I was thinknig of it getting the selected item's text, or null(or"", whatever) if nothing was selected, of course this wouldn't work with multiple selection lists, but then the shim with an index you mentioned kicks in (when you know there might be multiple selections) Did you get a chance to look at the clipboard stuff I posted last week? "Matthew" <matthew stlsoft.org> wrote in message news:c2mv10$ch3$1 digitaldaemon.com...views,Hi Pablo The c_str_ptr shim boils down to a call to GetWindowText(). Since the contents of a listbox are not stored in the window text, c_str_ptr willnotyield the list box contents. In any case, which one would it return? However, you've got me thinking now, and maybe I might add a shim thattakesan object and an index. This could work for list/combo boxes, listaswell as completely different types, such as stl containers, COMcollections,etc. It's funny. I've never considered shims having more than one parameter,butthere's no reason why they can't. I'm busy this week, but maybe next week I can add this in, in time for 1.7.1. Cheers Matthew
Mar 10 2004
Pablo I've done a first stab. Unfortunately, it's on the laptop I've borrowed (from my brother-in-law) which is currently not networked to this borrowed (from my mum) desktop. I thought I would be able to pass them across using CD-RWs, but one is using Roxio, and the other is using Pinnacle's InstantCD/DVD, and it doesn't work. Ah, you got to love hardware!!I bet you actually enjoyed writing that...Anyway, I should have it sorted in the next day or so, and then I'll postithere, or will do another beta. Thanks for the idea. If you have any further refinements you want tosuggestonce you've tried it out, please let me know.I will, worry not, I do a lot of MFC gui stuff, so I've got plenty of code to test with...btw, I've recently updated *all* STLSoft c_str_ptr*() shims to be IOStream compatible, i.e. to work with operator <<(). Cheers Matthew
Mar 10 2004
borrowedPablo I've done a first stab. Unfortunately, it's on the laptop I've borrowed (from my brother-in-law) which is currently not networked to thisusing(from my mum) desktop. I thought I would be able to pass them acrossHmmm. Options were: 1. Try and do these last couple of chapter revisions 2. Go to bed and try to sleep but stay awake worrying about having to do these last couple of chapter revisions 3. Stay up for an hour and do some fun coding.CD-RWs, but one is using Roxio, and the other is using Pinnacle's InstantCD/DVD, and it doesn't work. Ah, you got to love hardware!!I bet you actually enjoyed writing that...postAnyway, I should have it sorted in the next day or so, and then I'llitCool. In fact, we can do overloads for MFC which will be efficient, since they won't need to do tests because they can assume certain natures. I will also do this, but not at the moment. I managed to get the damnable CD-RW to be read, by rebooting, which I had to do because OE froze. :) So here it is, in *barely* tested form.here, or will do another beta. Thanks for the idea. If you have any further refinements you want tosuggestonce you've tried it out, please let me know.I will, worry not, I do a lot of MFC gui stuff, so I've got plenty of code to test with...IOStreambtw, I've recently updated *all* STLSoft c_str_ptr*() shims to bebegin 666 winstl_string_access.h M+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"B J($9I;&4Z M93H (" ($-O;G1A:6YS(&-L87-S97, 86YD(&9U;F-T:6]N<R!F;W( 9&5A M(" (" 36%T=&AE=R!7:6QS;VXL(%-Y;F5S:7, 4V]F='=A<F4 4'1Y($QT M>6YE<VES(%-O9G1W87)E(%-T86YD87)D(%-O=7)C92!,:6-E;G-E*0T*("H- M97-I<R!3;V9T=V%R92!0='D 3'1D+ T*("H-"B J(" (" (" (" ("!! M;&P <FEG:'1S(')E<V5R=F5D+ T*("H-"B J(" (" (" (" ("!W=W<Z M(" (" ("!H='1P.B\O=W=W+G-Y;F5S:7,N8V]M+F%U+W=I;G-T; T*("H M(" (" (" (" (" (" (" (" (&AT=' Z+R]W=W<N=VEN<W1L+F]R M(" (" (" (" (" 861M:6Y =VEN<W1L+F]R9R (" (" 9F]R(&]T M:&5R(&5N<75I<FEE<PT*("H-"B J(" (" (" (" ("!2961I<W1R:6)U M=&EO;B!A;F0 =7-E(&EN('-O=7)C92!A;F0 8FEN87)Y(&9O<FUS+"!W:71H M(" (" (" (" 8V]N9&ET:6]N<R!A<F4 ;65T. T*("H-"B J(" (" M(" (" (" H:2D 4F5D:7-T<FEB=71I;VYS(&]F('-O=7)C92!C;V1E(&UU M<W0 <F5T86EN('1H92!A8F]V90T*("H (" (" (" (" (&-O<'ER:6=H M="!N;W1I8V4 86YD(&-O;G1A8W0 :6YF;W)M871I;VXL('1H:7, ;&ES="!O M9 T*("H (" (" (" (" (&-O;F1I=&EO;G, 86YD('1H92!F;VQL;W=I M9&5R:79E9"!V97)S:6]N<R!O9B!T:&ES('-O9G1W87)E("AH;W=S;V5V97( M(" ("AI:6DI($%N>2!D97)I=F5D('9E<G-I;VYS(&]F('1H:7, <V]F='=A M<F4 *&AO=W-O979E<B!M;V1I9FEE9"D-"B J(" (" (" (" ("!R96UA M(" (" (" (" *&EV*2!.96ET:&5R('1H92!N86UE(&]F(%-Y;F5S:7, M4V]F='=A<F4 ;F]R('1H92!N86UE<R!O9B!A;GD-"B J(" (" (" (" M("!S=6)D:79I<VEO;G,L(&5M<&QO>65E<R!O<B!A9V5N=', ;V8 4WEN97-I M<R!3;V9T=V%R92P ;F]R('1H90T*("H (" (" (" (" (&YA;65S(&]F M(&%N>2!O=&AE<B!C;VYT<FEB=71O<G, =&\ =&AI<R!S;V9T=V%R92!M87D M8F4 =7-E9"!T;PT*("H (" (" (" (" (&5N9&]R<V4 ;W( <')O;6]T M92!P<F]D=6-T<R!D97)I=F5D(&9R;VT =&AI<R!S;V9T=V%R92!W:71H;W5T M:7-S:6]N+ T*("H-"B J(" (" (" (" ("!4:&ES('-O=7)C92!C;V1E M(&ES('!R;W9I9&5D(&)Y(%-Y;F5S:7, 4V]F='=A<F4 (F%S(&ES(B!A;F0 M(" (" (" ;&EM:71E9"!T;RP =&AE(&EM<&QI960 =V%R<F%N=&EE<R!O M<R!F;W( 82!P87)T:6-U;&%R('!U<G!O<V4 87)E(&1I<V-L86EM960N($EN M4V]F='=A<F4 8F4 ;&EA8FQE(&9O<B!A;GD 9&ER96-T+"!I;F1I<F5C="P- M"B J(" (" (" (" ("!I;F-I9&5N=&%L+"!S<&5C:6%L+"!E>&5M<&QA M<GDL(&]R(&-O;G-E<75E;G1I86P 9&%M86=E<PT*("H (" (" (" (" M("AI;F-L=61I;F<L(&)U="!N;W0 ;&EM:71E9"!T;RP <')O8W5R96UE;G0 M;V8 <W5B<W1I='5T92!G;V]D<PT*("H (" (" (" (" (&]R('-E<G9I M8V5S.R!L;W-S(&]F('5S92P 9&%T82P ;W( <')O9FET<SL ;W( 8G5S:6YE M<W,-"B J(" (" (" (" ("!I;G1E<G)U<'1I;VXI(&AO=V5V97( 8V%U M<V5D(&%N9"!O;B!A;GD =&AE;W)Y(&]F(&QI86)I;&ET>2P-"B J(" (" M(" (" ("!W:&5T:&5R(&EN(&-O;G1R86-T+"!S=')I8W0 ;&EA8FEL:71Y M+"!O<B!T;W)T("AI;F-L=61I;F<-"B J(" (" (" (" ("!N96=L:6=E M;F-E(&]R(&]T:&5R=VES92D 87)I<VEN9R!I;B!A;GD =V%Y(&]U="!O9B!T M(" (" (" (" 9&%M86=E+ T*("H-"B J("\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M3E1!5$E/3E]32TE07U-%0U1)3TX-"B, 9&5F:6YE(%]724Y35$Q?5D527TA? M5TE.4U1,7U-44DE.1U]!0T-%4U-?34%*3U( (" ,0T*(R!D969I;F4 7U=) M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M:"( (" (" (" (" (" +R\ 26YC;'5D92!T:&4 5VEN4U1,(')O;W0 M:69N9&5F(%=)3E-43%])3D-,7TA?5TE.4U1,7T953D-424].4PT*(R!I;F-L M4U1,7U=)3D1/5U-?241%3E0 *B\-"B-I9FYD968 4U1,4T]&5%])3D-,7TA? M:6YG7V%C8V5S<RYH( T*(V5N9&EF("\J("%35$Q33T947TE.0TQ?2%]35$Q3 M3T947U-44DE.1U]!0T-%4U, *B\-" T*+RH +R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\-"B J($YA;65S<&%C90T*("H-"B J(%1H92!7:6Y3 M5$P 8V]M<&]N96YT<R!A<F4 8V]N=&%I;F5D('=I=&AI;B!T:&4 =VEN<W1L M(&YA;65S<&%C92X 5&AI<R!I<PT*("H 86-T=6%L;'D 86X 86QI87, 9F]R M('-T;'-O9G0Z.G=I;G-T;%]P<F]J96-T+ T*("H-"B J(%1H92!D969I;FET M:6]N(&UA=')I>"!I<R!A<R!F;VQL;W=S. T*("H-"B J(%]35$Q33T947TY/ M9&5F:6YI=&EO; T*("H +2TM+2TM+2TM+2TM+2TM+2TM+2TM(" ("TM+2TM M(&1E9FEN960 (" (" (" (" (&YO="!D969I;F5D(" (" (" (" M(#T <W1L<V]F=#HZ=VEN<W1L7W!R;VIE8W0-"B J("!N;W0 9&5F:6YE9" M(" (" (" (" 9&5F:6YE9" (" (" (" (" (" ;F]T(&1E9FEN M960-"B J("!D969I;F5D(" (" (" (" (" (" ;F]T(&1E9FEN960 M(&YA;65S<&%C92P <V\ ;75S="!D969I;F4 .CIW:6YS=&P *B\-"FYA;65S M<&%C92!W:6YS=&P-"GL-"B, 96QS90T*+RH 1&5F:6YE('-T;'-O9G0Z.G=I M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M<'1S7W-H:6US7W-T<FEN9U]A8V-E<W, 4W1R:6YG($%C8V5S<R!3:&EM<PT* M(%QR968 8V]N8V5P='-?<VAI;7, (G-H:6US(B!R971R:65V92!T:&4 0RUS M;G-T;%]S=')I;F=?86-C97-S7W-H:6US(%-T<FEN9R!!8V-E<W, 4VAI;7, M*%=I;E-43"D-"B\O+R!<:6YG<F]U<"!7:6Y35$P 8V]N8V5P='-?<VAI;7-? M<W1R:6YG7V%C8V5S<PT*+R\O(%QB<FEE9B!4:&5S92!<<F5F(&-O;F-E<'1S M7W-H:6US(")S:&EM<R( <F5T<FEE=F4 =&AE($,M<W1R:6YG(&9O<B!A<F)I M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M('-I>F5?="!'9717:6YD;W=497AT3&5N9W1H7U\H2%=.1"!H=VYD*0T*>PT* M(" (%=I;F1O=TED96YT(&ED96YT(" /2 ($=E=%=I;F1O=TED96YT*&AW M;F0I.PT*(" (&EN=" (" (" ('-E;#L-" T*(" ('-W:71C:"AI9&5N M3"!\($Q"4U]%6%1%3D1%1%-%3"DI*0T*(" (" (" (" >PT*(" (" M(" (" (" ('-E;" ]("AI;G0I.CI396YD365S<V%G92AH=VYD+"!,0E]' M(" ("!R971U<FX <W1A=&EC7V-A<W0\<VEZ95]T/B Z.E-E;F1-97-S86=E M*&AW;F0L($Q"7T=%5%1%6%1,14XL('-T871I8U]C87-T/%=005)!33XH<V5L M96QS90T*(" (" (" (" (" ('L-"B (" (" (" (" (" (" M5VEN9&]W5&5X=$QE;F=T:"AH=VYD*3L-"GT-" T*:6YL:6YE('-I>F5?="!' M9717:6YD;W=497AT05]?*$A73D0 :'=N9"P =W-?8VAA<E]A7W0 *F)U9F9E M<BP <VEZ95]T(&-C:$)U9F9E<BD-"GL-"B ("!7:6YD;W=)9&5N="!I9&5N M=" (#T ("!'9717:6YD;W=)9&5N="AH=VYD*3L-"B ("!I;G0 (" (" M96YT*0T*(" ('L-"B (" (" 8V%S92 ("!,:7-T0F]X. T*(" (" M(" (" :68H," ]/2 H1V5T4W1Y;&4H:'=N9"D )B H3$)37TU53%1)4$Q% M(" (" (" (" <V5L(#T *&EN="DZ.E-E;F1-97-S86=E*&AW;F0L($Q" M(" (" (&-C:" ](" <W1A=&EC7V-A<W0\<VEZ95]T/B Z.E-E;F1-97-S M86=E*&AW;F0L($Q"7T=%5%1%6%0L('-T871I8U]C87-T/%=005)!33XH<V5L M*2P <F5I;G1E<G!R971?8V%S=#Q,4$%204T^*&)U9F9E<BDI*3L-"B (" M(" (" ('L-"B (" (" (" (" (" (" 8G5F9F5R6S!=(#T )UPP M)SL-" T*(" (" (" (" (" (" ("!C8V /2 P.PT*(" (" (" M(" (" ('T-" T*(" (" (" (" (" ('=I;G-T;%]M97-S86=E7V%S M<V5R=" A*&-C:" \(&-C:$)U9F9E<BDL(")"=69F97( ;W9E<G=R:71E(BD[ M1V5T5VEN9&]W5&5X=$$H:'=N9"P 8G5F9F5R+"!C8VA"=69F97(I.PT*?0T* M<U]C:&%R7W=?=" J8G5F9F5R+"!S:7IE7W0 8V-H0G5F9F5R*0T*>PT*(" M(%=I;F1O=TED96YT(&ED96YT(" /2 ($=E=%=I;F1O=TED96YT*&AW;F0I M.PT*(" (&EN=" (" (" ('-E;#L-" T*(" ('-W:71C:"AI9&5N="D- M($Q"4U]%6%1%3D1%1%-%3"DI*0T*(" (" (" (" >PT*(" (" (" M*&EN="DZ.E-E;F1-97-S86=E*&AW;F0L($Q"7T=%5$-54E-%3"P ,"P ,&PI M=&EC7V-A<W0\<VEZ95]T/B Z.E-E;F1-97-S86=E*&AW;F0L($Q"7T=%5%1% M6%0L('-T871I8U]C87-T/%=005)!33XH<V5L*2P <F5I;G1E<G!R971?8V%S M=#Q M(" (" (" (" 96QS90T*(" (" (" (" (" ('L-"B (" (" M(" (" (" (" 8G5F9F5R6S!=(#T )UPP)SL-" T*(" (" (" (" M(" (" ("!C8V /2 P.PT*(" (" (" (" (" ('T-" T*(" (" M(" (" (" ('=I;G-T;%]M97-S86=E7V%S<V5R=" A*&-C:" \(&-C:$)U M("!R971U<FX 8V-H.PT*(" (" (" (" ?0T*(" (" (" (" 8G)E M9"P 8G5F9F5R+"!C8VA"=69F97(I.PT*?0T*(V5N9&EF("\J("%?7U-43%-/ M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT*("H 0VQA<W-E<PT*("HO M=&5R;65D:6%R>2!O8FIE8W0 =&AA="!M87D 8F4 <F5T=7)N960 8GD =&AE M92!W:6YD;W< =&5X="!O9B!A(&=I=F5N('=I;F1O=R!M87D 8F4-"B\O+R!A M;&Q?2%=.1%]P<F]X>0T*>PT*<'5B;&EC. T*(" ('1Y<&5D968 0R (" M(" (" (" (" (" (" (" (" (" (" (" (" ("!C:&%R7W1Y M;V9T7V1E9FEN95]M;W9E7W)H<U]T>7!E*&-L87-S7W1Y<&4I(" (')H<U]T M<W1R=6-T<R!A;B!I;G-T86YC92!O9B!T:&4 <')O>'D 9G)O;2!T:&4 9VEV M96X 2%=.1 T*(" ("\O+PT*(" ("\O+R!<<&%R86T :"!4:&4 2%=.1"!F M97AP;&EC:71?:R!C7W-T<E]P=')?;G5L;%](5TY$7W!R;WAY*$A73D0 :"D- M(" ('L-"B (" (" (" (&U?8G5F9F5R(#T 3E5,3#L-"B (" (" M9F5R(#T ;F5W(&-H87)?='EP95LQ("L ;&5N9W1H73L-" T*(" (" (" M(" 9V5T7W=I;F1O=U]T97AT*& L(&U?8G5F9F5R+"!L96YG=& *R Q*3L- M"B (" (" ?0T*(" ('T-" T*(" ("\O+R!-;W9E(&-O;G-T<G5C=&]R M;F5S:7,N8V]M+F%U+W)E<V]U<F-E<R]A<G1I8VQE<R]C<' O;6]V96-T;W)S M+G!D9B(^;6]V92!C;VYS=')U8W1O<CPO83X-"B (" O+R\ :7, 9F]R(&-I M<F-U;7-T86YC97, =VAE;B!T:&4 8V]M<&EL97( 9&]E<R!N;W0L(&]R(&-A M871I;VXN($ET(&-A=7-E<R!T:&4 8V]N=&5N=', ;V8 7&, <FAS('1O(&)E M;G-T86YC92X 5&AI<R!I<R!C;VUP;&5T96QY('-A9F4-"B (" O+R\ 8F5C M875S92!T:&4 7&, <FAS(&EN<W1A;F-E('=I;&P ;F5V97( 8F4 86-C97-S M960 :6X :71S(&]W;B!R:6=H="P <V\-"B (" O+R\ 9&]E<R!N;W0 ;F5E M9"!T;R!M86EN=&%I;B!O=VYE<G-H:7 ;V8 :71S(&-O;G1E;G1S+ T*(" M(&-?<W1R7W!T<E]N=6QL7TA73D1?<')O>'DH<FAS7W1Y<&4 <FAS*0T*(" M(&UO=F5?;&AS7V9R;VU?<FAS*')H<RDN;5]B=69F97( /2!.54Q,.PT*(" M('T-" T*(" ("\O+R!296QE87-E<R!A;GD <W1O<F%G92!A<75I<F5D(&)Y M('1H92!P<F]X>0T*(" ('YC7W-T<E]P=')?;G5L;%](5TY$7W!R;WAY*"D- M"B\O($%C8V5S<V]R<PT*<'5B;&EC. T*(" ("\O+R!2971U<FYS(&$ ;G5L M;"UT97)M:6YA=&5D('-T<FEN9R!R97!R97-E;G1I;F< =&AE('=I;F1O=R!C M;VYT96YT<RP ;W(-"B (" O+R\ =&AE(&5M<'1Y('-T<FEN9R B(B!I9B!T M<E]T>7!E(&-O;G-T("HH*2!C;VYS= T*(" ('L-"B (" (" <F5T=7)N M(&U?8G5F9F5R.PT*(" ('T-" T*+R\ 26UP;&5M96YT871I;VX-"G!R:79A M92 J8G5F9F5R+"!I;G0 8V-H0G5F9F5R*3L-" T*+R\ 365M8F5R<PT*<')I M;R!B92!I;7!L96UE;G1E9 T*<')I=F%T93H-"B ("!V;VED(&]P97)A=&]R M(#TH8VQA M7VYU;&Q?2%=.1%]P<F]X>3QW<U]C:&%R7V%?=#XZ.F=E=%]W:6YD;W=?=&5X M="A(5TY$(& L('=S7V-H87)?85]T("IB=69F97(L(&EN="!C8VA"=69F97(I M7U-014-)04Q)4T%424].7U-93E1!6 T*=&5M<&QA=&4 /#X-"B-E;F1I9B O M*B!?7U-43%-/1E1?0T9?5$5-4$Q!5$5?4U!%0TE!3$E3051)3TY?4UE.5$%8 M8VAA<E]W7W0^.CIG971?=VEN9&]W7W1E>'0H2%=.1"!H+"!W<U]C:&%R7W=? M=" J8G5F9F5R+"!I;G0 8V-H0G5F9F5R*0T*>PT*(" (')E='5R;B!'9717 M:6YD;W=497AT5U]?*& L(&)U9F9E<BP 8V-H0G5F9F5R*3L-"GT-" T*(V5N M*B\-" T*+R\O(%1H:7, 8VQA<W, <')O=FED97, 86X :6YT97)M961I87)Y M(&]B:F5C="!T:&%T(&UA>2!B92!R971U<FYE9"!B>2!T:&4-"B\O+R!C7W-T M<E]P='(H*2!F=6YC=&EO;BP <W5C:"!T:&%T('1H92!W:6YD;W< =&5X="!O M9B!A(&=I=F5N('=I;F1O=R!M87D 8F4-"B\O+R!A8V-E<W-E9"!A<R!A(&YU M8FQI8SH-"B ("!T>7!E9&5F($, (" (" (" (" (" (" (" (" M(" (" (" (" (" (" 8VAA<E]T>7!E.PT*(" ('1Y<&5D968 8U]S M=')?<'1R7TA73D1?<')O>'D\0SX (" (" (" (" (" (" ("!C;&%S M<U]T>7!E.PT*(" ('1Y<&5D968 <W1L<V]F=%]D969I;F5?;6]V95]R:'-? M='EP92AC;&%S<U]T>7!E*2 ("!R:'-?='EP93L-" T*+R\ 0V]N<W1R=6-T M;V8 =&AE('!R;WAY(&9R;VT =&AE(&=I=F5N($A73D0-"B (" O+R\-"B M(" O+R\ 7'!A<F%M(& 5&AE($A73D0 9G)O;2!W:&EC:"!T:&4 =&5X="!W M:6QL(&)E(')E=')I979E9 T*(" ('-S7V5X<&QI8VET7VL 8U]S=')?<'1R M7TA73D1?<')O>'DH2%=.1"!H*0T*(" ('L-"B (" (" :6YT(&QE;F=T M:" /2 ($=E=%=I;F1O=U1E>'1,96YG=&A?7RAH*3L-" T*(" (" ("!M M(" 9V5T7W=I;F1O=U]T97AT*& L(&U?8G5F9F5R+"!L96YG=& *R Q*3L- M"B (" O+R\ 5&AI<R \82!H<F5F(#T (FAT=' Z+R]S>6YE<VES+F-O;2YA M=2]R97-O=7)C97,O87)T:6-L97,O8W!P+VUO=F5C=&]R<RYP9&8B/FUO=F4 M('=H96X =&AE(&-O;7!I;&5R(&1O97, ;F]T+"!O<B!C86YN;W0L(&%P<&QY M('1H90T*(" ("\O+R!R971U<FX =F%L=64 ;W!T:6UI<V%T:6]N+B!)="!C M875S97, =&AE(&-O;G1E;G1S(&]F(%QC(')H<R!T;R!B90T*(" ("\O+R!T M<F%N<V9E<G)E9"!I;G1O('1H92!C;VYS=')U8W1I;F< :6YS=&%N8V4N(%1H M(')H<R!I;G-T86YC92!W:6QL(&YE=F5R(&)E(&%C8V5S<V5D(&EN(&ET<R!O M:6X ;W=N97)S:&EP(&]F(&ET<R!C;VYT96YT<RX-"B ("!C7W-T<E]P=')? M<FAS+FU?8G5F9F5R*0T*(" ('L-"B (" (" ;6]V95]L:'-?9G)O;5]R M. T*(" ("\O+R!2971U<FYS(&$ ;G5L;"UT97)M:6YA=&5D('-T<FEN9R!R M97!R97-E;G1I;F< =&AE('=I;F1O=R!C;VYT96YT<RP ;W(-"B (" O+R\ M=&AE(&5M<'1Y('-T<FEN9R B(B!I9B!T:&4 =VEN9&]W(&-O;G1A:6YS(&YO M= T*(" ('L-"B (" (" <F5T=7)N(&U?8G5F9F5R.PT*(" ('T-" T* M;W=?=&5X="A(5TY$(& L(&-H87)?='EP92 J8G5F9F5R+"!I;G0 8V-H0G5F M9F5R*3L-" T*+R\ 365M8F5R<PT*<')I=F%T93H-"B ("!C:&%R7W1Y<&4 M=F%T93H-"B ("!V;VED(&]P97)A=&]R(#TH8VQA<W-?='EP92!C;VYS=" F M*B\-"FEN;&EN92!I;G0 8U]S=')?<'1R7TA73D1?<')O>'D\=W-?8VAA<E]A M7W0^.CIG971?=VEN9&]W7W1E>'0H2%=.1"!H+"!W<U]C:&%R7V%?=" J8G5F M9F5R+"!I;G0 8V-H0G5F9F5R*0T*>PT*(" (')E='5R;B!'9717:6YD;W=4 M97AT05]?*& L(&)U9F9E<BP 8V-H0G5F9F5R*3L-"GT-" T*(VEF9&5F(%]? M;7!L871E(#P M14-)04Q)4T%424].7U-93E1!6" J+PT*:6YL:6YE(&EN="!C7W-T<E]P=')? M2%=.1%]P<F]X>3QW<U]C:&%R7W=?=#XZ.F=E=%]W:6YD;W=?=&5X="A(5TY$ M(" <F5T=7)N($=E=%=I;F1O=U1E>'177U\H:"P 8G5F9F5R+"!C8VA"=69F M96UE;G0 3%-!7U5.24-/1$5?4U1224Y'('-T<FEN9R J+PT*(VEF9&5F(%]. M5%-%0T%025\-"B\O+R!4:&ES(&-L87-S('!R;W9I9&5S(&%N(&EN=&5R;65D M8U]S=')?<'1R7VYU;&PH*2!F=6YC=&EO;BP <W5C:"!T:&%T('1H92!T97AT M8FQI8SH-"B (" O+R\ 0V]N<W1R=6-T<R!A;B!I;G-T86YC92!O9B!T:&4 M<')O>'D 9G)O;2!T:&4 9VEV96X 3%-!7U5.24-/1$5?4U1224Y'(&EN<W1A M15]35%))3D< :6YS=&%N8V4 9G)O;2!W:&EC:"!T:&4 =&5X="!W:6QL(&)E M(')E=')I979E9 T*(" ('-S7V5X<&QI8VET7VL 8U]S=')?<'1R7TQ305]5 M<BP <RY,96YG=& I.PT*(" (" ("!M7V)U9F9E<EMS+DQE;F=T:%T /2!, M("\O+R -"B (" O+R\ 5&AI<R \82!H<F5F(#T (FAT=' Z+R]S>6YE<VES M+F-O;2YA=2]R97-O=7)C97,O87)T:6-L97,O8W!P+VUO=F5C=&]R<RYP9&8B M=&%N8V5S('=H96X =&AE(&-O;7!I;&5R(&1O97, ;F]T+"!O<B!C86YN;W0L M(&%P<&QY('1H90T*(" ("\O+R!R971U<FX =F%L=64 ;W!T:6UI<V%T:6]N M+B!)="!C875S97, =&AE(&-O;G1E;G1S(&]F(%QC(')H<R!T;R!B90T*(" M("\O+R!T<F%N<V9E<G)E9"!I;G1O('1H92!C;VYS=')U8W1I;F< :6YS=&%N M=&AE(%QC(')H<R!I;G-T86YC92!W:6QL(&YE=F5R(&)E(&%C8V5S<V5D(&EN M;6%I;G1A:6X ;W=N97)S:&EP(&]F(&ET<R!C;VYT96YT<RX-"B ("!C7W-T M<E]P=')?3%-!7U5.24-/1$5?4U1224Y'7W!R;WAY*&-L87-S7W1Y<&4 )G)H M(" (" ("!R:',N;5]B=69F97( /2!.54Q,.PT*(" ('T-" T*(" ("\O M+R!296QE87-E<R!A;GD <W1O<F%G92!A<75I<F5D(&)Y('1H92!P<F]X>0T* M(" ('YC7W-T<E]P=')?3%-!7U5.24-/1$5?4U1224Y'7W!R;WAY*"D-"B M($%C8V5S<V]R<PT*<'5B;&EC. T*(" ("\O+R!2971U<FYS(&$ ;G5L;"UT M97)M:6YA=&5D('-T<FEN9R!R97!R97-E;G1I;F< =&AE('-T<FEN9R!C;VYT M96YT<RP ;W(-"B (" O+R\ =&AE(&5M<'1Y('-T<FEN9R B(B!I9B!T:&4 M<W1R:6YG(&AA<R!N;R!C;VYT96YT<RX-"B ("!O<&5R871O<B!,4$-74U12 M"B ("!V;VED(&]P97)A=&]R(#TH8VQA<W-?='EP92!C;VYS=" F<FAS*3L- M05!)7PT*+R\O(%1H:7, 8VQA<W, <')O=FED97, 86X :6YT97)M961I87)Y M(&]B:F5C="!T:&%T(&UA>2!B92!R971U<FYE9"!B>2!T:&4-"B\O+R!C7W-T M<E]P=')?;G5L;" I(&9U;F-T:6]N+"!S=6-H('1H870 =&AE('1E>'0 ;V8 M82!G:79E;B!,4T%?54Y)0T]$15]35%))3D<-"B\O+R!S=')I;F< ;6%Y(&)E M(&%C8V5S<V5D(&%S(&$ ;G5L;"UT97)M:6YA=&5D('-T<FEN9RX-"F-L87-S M<'5B;&EC. T*(" ('1Y<&5D968 8U]S=')?<'1R7VYU;&Q?3%-!7U5.24-/ M('1H92!P<F]X>2!F<F]M('1H92!G:79E;B!,4T%?54Y)0T]$15]35%))3D< M:6YS=&%N8V4-"B (" O+R\-"B (" O+R\ 7'!A<F%M(', 5&AE($Q305]5 M;G5L;%],4T%?54Y)0T]$15]35%))3D=?<')O>'DH8V]N<W0 3%-!7U5.24-/ M1$5?4U1224Y'("9S*0T*(" (" (" Z(&U?8G5F9F5R*"AS+DQE;F=T:" A M/2 P*2 _(&YE=R!70TA!4ELQ("L <RY,96YG=&A=(#H 3E5,3"D-"B ("![ M(" (" (" ('=C<VYC<'DH;5]B=69F97(L(',N0G5F9F5R+"!S+DQE;F=T M"B (" (" ?0T*(" ('T-" T*(" ("\O+R!-;W9E(&-O;G-T<G5C=&]R M;F5S:7,N8V]M+F%U+W)E<V]U<F-E<R]A<G1I8VQE<R]C<' O;6]V96-T;W)S M+G!D9B(^;6]V92!C;VYS=')U8W1O<CPO83X-"B (" O+R\ :7, 9F]R(&-I M<F-U;7-T86YC97, =VAE;B!T:&4 8V]M<&EL97( 9&]E<R!N;W0L(&]R(&-A M871I;VXN($ET(&-A=7-E<R!T:&4 8V]N=&5N=', ;V8 7&, <FAS('1O(&)E M;G-T86YC92X 5&AI<R!I<R!C;VUP;&5T96QY('-A9F4-"B (" O+R\ 8F5C M875S92!T:&4 7&, <FAS(&EN<W1A;F-E('=I;&P ;F5V97( 8F4 86-C97-S M960 :6X :71S(&]W;B!R:6=H="P <V\-"B (" O+R\ 9&]E<R!N;W0 ;F5E M9"!T;R!M86EN=&%I;B!O=VYE<G-H:7 ;V8 :71S(&-O;G1E;G1S+ T*(" M*0T*(" ('L-"B (" (" <FAS+FU?8G5F9F5R(#T 3E5,3#L-"B ("!] M:&4 <')O>'D-"B ("!^8U]S=')?<'1R7VYU;&Q?3%-!7U5.24-/1$5?4U12 M971U<FYS(&$ ;G5L;"UT97)M:6YA=&5D('-T<FEN9R!R97!R97-E;G1I;F< M=&AE('-T<FEN9R!C;VYT96YT<RP ;W(-"B (" O+R\ 3E5,3"!I9B!T:&4 M<W1R:6YG(&AA<R!N;R!C;VYT96YT<RX-"B ("!O<&5R871O<B!,4$-74U12 M"B ("!V;VED(&]P97)A=&]R(#TH8VQA<W-?='EP92!C;VYS=" F<FAS*3L- M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT*("H 24]3=')E86T 8V]M<&%T:6)I M(#X-"FEN;&EN92!3("9O<&5R871O<B \/"A3("8 <RP 8U]S=')?<'1R7VYU M(" ("P ("!S<U]T>7!E;F%M95]P87)A;5]K(%,-"B (" (" / T*:6YL M:6YE(%, )F]P97)A=&]R(#P\*%, )B!S+"!C7W-T<E]P=')?2%=.1%]P<F]X M(%].5%-%0T%025\-"G1E;7!L871E/" ('-S7W1Y<&5N86UE7W!A<F%M7VL M(#X-"FEN;&EN92!3("9O<&5R871O<B \/"A3("8 <RP 8U]S=')?<'1R7TQ3 M("!S(#P M971U<FX <SL-"GT-" T*=&5M<&QA=&4\(" <W-?='EP96YA;65?<&%R86U? M(" / T*:6YL:6YE(%, )F]P97)A=&]R(#P\*%, )B!S+"!C7W-T<E]P=')? M;G5L;%],4T%?54Y)0T]$15]35%))3D=?<')O>'D\0SX 8V]N<W0 )G-H:6TI M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT*("H 8U]S M(&5X<')E<W-I;VXL(&%N9"!T:&4 <F5T=7)N('9A;'5E(&ES(&5I=&AE<B!A M;W)R97-P;VYD:6YG($,M<W1R:6YG('!O:6YT97( ;V8 =&AE('=I;F1O=R!< M8R!H+"!O<B!A(&YU;&P <&]I;G1E< T*:6YL:6YE(&-?<W1R7W!T<E]N=6QL M7TA73D1?<')O>'D\=W-?8VAA<E]A7W0^(&-?<W1R7W!T<E]N=6QL7V$H2%=. M1"!H*0T*>PT*(" (')E='5R;B!C7W-T<E]P=')?;G5L;%](5TY$7W!R;WAY M/'=S7V-H87)?85]T/BAH*3L-"GT-" T*+R\O(%QB<FEE9B!2971U<FYS('1H M92!C;W)R97-P;VYD:6YG($,M<W1R:6YG('!O:6YT97( ;V8 =&AE('=I;F1O M=R!<8R!H+"!O<B!A(&YU;&P <&]I;G1E< T*:6YL:6YE(&-?<W1R7W!T<E]N M=6QL7TA73D1?<')O>'D\=W-?8VAA<E]W7W0^(&-?<W1R7W!T<E]N=6QL7W<H M2%=.1"!H*0T*>PT*(" (')E='5R;B!C7W-T<E]P=')?;G5L;%](5TY$7W!R M;WAY/'=S7V-H87)?=U]T/BAH*3L-"GT-" T*+R\O(%QB<FEE9B!2971U<FYS M('1H92!C;W)R97-P;VYD:6YG($,M<W1R:6YG('!O:6YT97( ;V8 =&AE('=I M;F1O=R!<8R!H+"!O<B!A(&YU;&P <&]I;G1E< T*:6YL:6YE(&-?<W1R7W!T M<E]N=6QL7TA73D1?<')O>'D\5$-(05(^(&-?<W1R7W!T<E]N=6QL*$A73D0 M:"D-"GL-"B ("!R971U<FX 8U]S=')?<'1R7VYU;&Q?2%=.1%]P<F]X>3Q4 M9&5F(%].5%-%0T%025\-"B\O+R!<8G)I968 4F5T=7)N<R!T:&4 8V]R<F5S M5%))3D< 7&, <RP ;W( 82!N=6QL('!O:6YT97(-"FEN;&EN92!C7W-T<E]P M=')?;G5L;%],4T%?54Y)0T]$15]35%))3D=?<')O>'D 8U]S=')?<'1R7VYU M;&PH8V]N<W0 3%-!7U5.24-/1$5?4U1224Y'("9S*0T*>PT*(" (')E='5R M;B!C7W-T<E]P=')?;G5L;%],4T%?54Y)0T]$15]35%))3D=?<')O>'DH<RD[ M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M5&AI<R!C86X 8F4 87!P;&EE9"!T;R!A;B!E>'!R97-S:6]N+"!A;F0 =&AE M(')E='5R;B!V86QU92!I<R!E:71H97( 80T*("H <&]I;G1E<B!T;R!T:&4 M" T*+RH 2%=.1" J+PT*+R\O(%QB<FEE9B!2971U<FYS('1H92!C;W)R97-P M;FQI;F4 8U]S=')?<'1R7TA73D1?<')O>'D\=W-?8VAA<E]A7W0^(&-?<W1R M7W!T<E]A*$A73D0 :"D-"GL-"B ("!R971U<FX 8U]S=')?<'1R7TA73D1? M;G, =&AE(&-O<G)E<W!O;F1I;F< 0RUS=')I;F< <&]I;G1E<B!O9B!T:&4 M=VEN9&]W(%QC(& -"FEN;&EN92!C7W-T<E]P=')?2%=.1%]P<F]X>3QW<U]C M:&%R7W=?=#X 8U]S=')?<'1R7W<H2%=.1"!H*0T*>PT*(" (')E='5R;B!C M7W-T<E]P=')?2%=.1%]P<F]X>3QW<U]C:&%R7W=?=#XH M;VEN=&5R(&]F('1H92!W:6YD;W< 7&, : T*:6YL:6YE(&-?<W1R7W!T<E]( M;VEN=&5R(&]F('1H92!,4T%?54Y)0T]$15]35%))3D< 7&, <PT*:6YL:6YE M(&-?<W1R7W!T<E],4T%?54Y)0T]$15]35%))3D=?<')O>'D 8U]S=')?<'1R M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M;B!B92!A<'!L:65D('1O(&%N(&5X<')E<W-I;VXL(&%N9"!T:&4 <F5T=7)N M('9A;'5E(&ES('1H92!N=6UB97( ;V8-"B J(&-H87)A8W1E<G, :6X =&AE M+RH 2%=.1" J+PT*+R\O(%QB<FEE9B!2971U<FYS('1H92!L96YG=& *&EN M(&-H87)A8W1E<G,I(&]F('1H92!S=')I;F< ;V8 7&, <RP /&(^/&D^;F]T M/"]I/CPO8CX :6YC;'5D:6YG('1H92!N=6QL+71E<FUI;F%T:6YG(&-H87)A M8W1E< T*:6YL:6YE('=S7W-I>F5?="!C7W-T<E]L96XH2%=.1"!H*0T*>PT* M(" (')E='5R;B!S=&%T:6-?8V%S=#QW<U]S:7IE7W0^*$=E=%=I;F1O=U1E M;&5N9W1H("AI;B!C:&%R86-T97)S*2!O9B!T:&4 <W1R:6YG(&]F(%QC(',L M(#QB/CQI/FYO=#PO:3X\+V(^(&EN8VQU9&EN9R!T:&4 ;G5L;"UT97)M:6YA M=&EN9R!C:&%R86-T97(-"FEN;&EN92!W<U]S:7IE7W0 8U]S=')?;&5N7V$H M+R!<8G)I968 4F5T=7)N<R!T:&4 ;&5N9W1H("AI;B!C:&%R86-T97)S*2!O M9B!T:&4 <W1R:6YG(&]F(%QC(',L(#QB/CQI/FYO=#PO:3X\+V(^(&EN8VQU M9&EN9R!T:&4 ;G5L;"UT97)M:6YA=&EN9R!C:&%R86-T97(-"FEN;&EN92!W M<U]S:7IE7W0 8U]S=')?;&5N7W<H2%=.1"!H*0T*>PT*(" (')E='5R;B!C M(VEF9&5F(%].5%-%0T%025\-"B\O+R!<8G)I968 4F5T=7)N<R!T:&4 ;&5N M9W1H("AI;B!C:&%R86-T97)S*2!O9B!T:&4 3%-!7U5.24-/1$5?4U1224Y' M(%QC(',L(#QB/CQI/FYO=#PO:3X\+V(^(&EN8VQU9&EN9R!T:&4 ;G5L;"UT M97)M:6YA=&EN9R!C:&%R86-T97(-"FEN;&EN92!W<U]S:7IE7W0 8U]S=')? M*B O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT*("H 8U]S=')? M<VEZ90T*("H-"B J(%1H:7, 8V%N(&)E(&%P<&QI960 =&\ 86X 97AP<F5S M<VEO;BP 86YD('1H92!R971U<FX =F%L=64 :7, =&AE(&YU;6)E<B!O9 T* M("H 8GET97, <F5Q=6ER960 =&\ <W1O<F4 =&AE(&-H87)A8W1E<B!S=')I M;F< :6X =&AE(&5X<')E<W-I;VXL($Y/5"!I;F-L=61I;F<-"B J('1H92!N M:&4 <W1R:6YG(&]F(%QC(& L(#QB/CQI/FYO=#PO:3X\+V(^(&EN8VQU9&EN M9R!T:&4 ;G5L;"UT97)M:6YA=&EN9R!C:&%R86-T97(-"FEN;&EN92!W<U]S M:7IE7W0 8U]S=')?<VEZ95]A*$A73D0 :"D-"GL-"B ("!R971U<FX 8U]S M=')?;&5N*& I("H <VEZ96]F*'=S7V-H87)?85]T*3L-"GT-" T*+R\O(%QB M<FEE9B!2971U<FYS('1H92!S:7IE("AI;B!B>71E<RD ;V8 =&AE('-T<FEN M9R!O9B!<8R!H+" \8CX\:3YN;W0\+VD^/"]B/B!I;F-L=61I;F< =&AE(&YU M=7)N<R!T:&4 <VEZ92 H:6X 8GET97,I(&]F('1H92!S=')I;F< ;V8 7&, M:"P /&(^/&D^;F]T/"]I/CPO8CX :6YC;'5D:6YG('1H92!N=6QL+71E<FUI M;F%T:6YG(&-H87)A8W1E< T*:6YL:6YE('=S7W-I>F5?="!C7W-T<E]S:7IE M*$A73D0 :"D-"GL-"B ("!R971U<FX 8U]S=')?;&5N*& I("H <VEZ96]F M:3YN;W0\+VD^/"]B/B!I;F-L=61I;F< =&AE(&YU;&PM=&5R;6EN871I;F< M3%-!7U5.24-/1$5?4U1224Y'("9S*0T*>PT*(" (')E='5R;B!C7W-T<E]L M96XH<RD *B!S:7IE;V8H5T-(05(I.PT*?0T*(V5N9&EF("\J(%].5%-%0T%0 M25\ *B\-" T*+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\ *B\- M" T*+R\O($!]("\O(&5N9"!O9B!G<F]U<"!W:6YS=&Q?<W1R:6YG7V%C8V5S M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R J M(&5L<V4-"GT +R\ ;F%M97-P86-E('-T;'-O9G0Z.G=I;G-T;%]P<F]J96-T M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M;7, 97AI<W0 96ET:&5R(&EN('1H92!S=&QS;V9T(&YA;65S<&%C92P ;W( M3E-43%].3U].04U%4U!!0T4-"B, :69N9&5F(%]35$Q33T947TY/7TY!3453 M86UE<W!A8V4L('-O(&UU<W0 9&5F:6YE(&EN('1H92!G;&]B86P ;F%M97-P M.G=I;G-T;#HZ8U]S=')?<'1R7VYU;&Q?=SL-"G5S:6YG(#HZ=VEN<W1L.CIC M7W-T<E]P=')?;G5L;#L-" T*=7-I;F< .CIW:6YS=&PZ.F-?<W1R7W!T<E]A M.PT*=7-I;F< .CIW:6YS=&PZ.F-?<W1R7W!T<E]W.PT*=7-I;F< .CIW:6YS M=&PZ.F-?<W1R7W!T<CL-" T*=7-I;F< .CIW:6YS=&PZ.F-?<W1R7VQE;E]A M.PT*=7-I;F< .CIW:6YS=&PZ.F-?<W1R7VQE;E]W.PT*=7-I;F< .CIW:6YS M=&PZ.F-?<W1R7VQE;CL-" T*=7-I;F< .CIW:6YS=&PZ.F-?<W1R7W-I>F5? M83L-"G5S:6YG(#HZ M;G-T;#HZ8U]S=')?<VEZ93L-" T*(R!I9FYD968 7U-43%-/1E1?3D]?3D%- M4U1,4T]&5%].3U].04U%4U!!0T4 *B\-"B\J(%1H97)E(&ES(&YO('-T;'-O M9G0 ;F%M97-P86-E+"!S;R!M=7-T(&1E9FEN92!I;B!T:&4 9VQO8F%L(&YA M;65S<&%C92 J+PT*(R!E;F1I9B O*B A7U-43%-/1E1?3D]?3D%-15-004-% M("\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O A+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R J+PT* ` end begin 666 winstl_functions.h M+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"B J($9I;&4Z M(" (" ("!W:6YS=&Q?9G5N8W1I;VYS+F *&9O<FUE<FQY($U70F%S92YH M(&]F('5S969U;"!F=6YC=&EO;G, + T*("H-"B J($-R96%T960Z(" (" W M<V5D('5N9&5R('1H92!3>6YE<VES(%-O9G1W87)E(%-T86YD87)D(%-O=7)C M(" (" (" (" ("!!;&P <FEG:'1S(')E<V5R=F5D+ T*("H-"B J(" M(" (" (" ("!W=W<Z(" (" ("!H='1P.B\O=W=W+G-Y;F5S:7,N8V]M M+F%U+W=I;G-T; T*("H (" (" (" (" (" (" (" (" (&AT=' Z M(" (" <W5B;6ES<VEO;G- =VEN<W1L+F]R9R 9F]R('-U8FUI<W-I;VYS M9R (" (" 9F]R(&]T:&5R(&5N<75I<FEE<PT*("H-"B J(" (" (" M(" ("!2961I<W1R:6)U=&EO;B!A;F0 =7-E(&EN('-O=7)C92!A;F0 8FEN M;V1I9FEC871I;VXL(&%R92!P97)M:71T960 <')O=FED960 =&AA="!T:&4 M. T*("H-"B J(" (" (" (" (" H:2D 4F5D:7-T<FEB=71I;VYS(&]F M('-O=7)C92!C;V1E(&UU<W0 <F5T86EN('1H92!A8F]V90T*("H (" (" M(" (" (&-O<'ER:6=H="!N;W1I8V4 86YD(&-O;G1A8W0 :6YF;W)M871I M;VXL('1H:7, ;&ES="!O9 T*("H (" (" (" (" (&-O;F1I=&EO;G, M(" (" *&EI*2!!;GD 9&5R:79E9"!V97)S:6]N<R!O9B!T:&ES('-O9G1W M* T*("H (" (" (" (" ("AI:6DI($%N>2!D97)I=F5D('9E<G-I;VYS M(&]F('1H:7, <V]F='=A<F4 *&AO=W-O979E<B!M;V1I9FEE9"D-"B J(" M(" (" (" ("!R96UA:6X <W5B:F5C="!T;R!A;&P =&AE<V4 8V]N9&ET M86UE(&]F(%-Y;F5S:7, 4V]F='=A<F4 ;F]R('1H92!N86UE<R!O9B!A;GD- M"B J(" (" (" (" ("!S=6)D:79I<VEO;G,L(&5M<&QO>65E<R!O<B!A M9V5N=', ;V8 4WEN97-I<R!3;V9T=V%R92P ;F]R('1H90T*("H (" (" M(" (" (&YA;65S(&]F(&%N>2!O=&AE<B!C;VYT<FEB=71O<G, =&\ =&AI M<R!S;V9T=V%R92!M87D 8F4 =7-E9"!T;PT*("H (" (" (" (" (&5N M9&]R<V4 ;W( <')O;6]T92!P<F]D=6-T<R!D97)I=F5D(&9R;VT =&AI<R!S M;W( =W)I='1E;B!P97)M:7-S:6]N+ T*("H-"B J(" (" (" (" ("!4 M:&ES('-O=7)C92!C;V1E(&ES('!R;W9I9&5D(&)Y(%-Y;F5S:7, 4V]F='=A M<RP =VAE=&AE<B!E>'!R97-S960 ;W( :6UP;&EE9"P :6YC;'5D:6YG+"!B M(" (" (" 9FET;F5S<R!F;W( 82!P87)T:6-U;&%R('!U<G!O<V4 87)E M;&P =&AE(%-Y;F5S:7, 4V]F='=A<F4 8F4 ;&EA8FQE(&9O<B!A;GD 9&ER M96-T+"!I;F1I<F5C="P-"B J(" (" (" (" ("!I;F-I9&5N=&%L+"!S M<&5C:6%L+"!E>&5M<&QA<GDL(&]R(&-O;G-E<75E;G1I86P 9&%M86=E<PT* M("H (" (" (" (" ("AI;F-L=61I;F<L(&)U="!N;W0 ;&EM:71E9"!T M;RP <')O8W5R96UE;G0 ;V8 <W5B<W1I='5T92!G;V]D<PT*("H (" (" M(" (" (&]R('-E<G9I8V5S.R!L;W-S(&]F('5S92P 9&%T82P ;W( <')O M9FET<SL ;W( 8G5S:6YE<W,-"B J(" (" (" (" ("!I;G1E<G)U<'1I M;VXI(&AO=V5V97( 8V%U<V5D(&%N9"!O;B!A;GD =&AE;W)Y(&]F(&QI86)I M;&ET>2P-"B J(" (" (" (" ("!W:&5T:&5R(&EN(&-O;G1R86-T+"!S M=')I8W0 ;&EA8FEL:71Y+"!O<B!T;W)T("AI;F-L=61I;F<-"B J(" (" M(" (" ("!N96=L:6=E;F-E(&]R(&]T:&5R=VES92D 87)I<VEN9R!I;B!A M<R!S;V9T=V%R92P 979E;B!I9B!A9'9I<V5D(&]F('1H92!P;W-S:6)I;&ET M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M;F4 7U=)3E-43%]615)?2%]724Y35$Q?1E5.0U1)3TY37TU)3D]2(" (" M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M"B-I9FYD968 5TE.4U1,7TE.0TQ?2%]724Y35$P-"B, :6YC;'5D92 B=VEN M<W1L+F B(" (" (" (" (" ("\O($EN8VQU9&4 =&AE(%=I;E-43"!R M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT*("H M10T*(R!I9F1E9B!?4U1,4T]&5%].3U].04U%4U!!0T4-"B\J(%1H97)E(&ES M(&YO('-T;'-O9G0 ;F%M97-P86-E+"!S;R!M=7-T(&1E9FEN92 Z.G=I;G-T M<W1L<V]F=#HZ=VEN<W1L7W!R;VIE8W0 *B\-" T*;F%M97-P86-E('-T;'-O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M8BD (" (" (" (" ("!3>4-A<W13=&%T:6,H0D]/3"P *"AB*2 A/2!F M7W0 0VQO<V5(86YD;&53971.=6QL*$A!3D1,12 F:"D-"GL-"B ("!R971U M=7!L:6-A=&5S(&$ :&%N9&QE+B!";W1H('1H92!H86YD;&4 86YD('1H92!D M=7!L:6-A=&4 87)E('=I=&AI;B!T:&4 8V]N=&5X= T*("H ;V8 =&AE(&-U M<G)E;G0 <')O8V5S<RX-"B J+PT*:6YL:6YE('=S7V)O;VQ?="!$=7!L:6-A M=&5,;V-A;$AA;F1L92A(04Y$3$4 :"P 2$%.1$Q%("9H1'5P*0T*>PT*(" M96YT4')O8V5S<R I+"!H+" Z.D=E=$-U<G)E;G10<F]C97-S*"DL("9H1'5P M(" (" (" 8V%S92 (" G7'0G. T*(" (" (" (" 8V%S92 (" G M7'(G. T*(" (" (" (" 8V%S92 (" G7&XG. T*(" (" (" (" M(" 9FER<W0 /2!L87-T.PT*(" (" (" (" (" (&)R96%K.PT*(" M92!W<U]D=V]R9%]T($9O<FUA=$UE<W-A9V4H1%=/4D0 9'=%<G(L('=S7V-H M=W-?9'=O<F1?="!R97, /2 Z.D9O<FUA=$UE<W-A9V5!*" 1D]234%47TU% M4U-!1T5?1E)/35]365-414T ?"!&3U)-051?34534T%'15]-05A?5TE$5$A? M34%32RP-"B (" (" (" (" (" (" (" (" (" (" (" (" M("!.54Q,+ T*(" (" (" (" (" (" (" (" (" (" (" (" M(" (&1W17)R+ T*(" (" (" (" (" (" (" (" (" (" (" M(" (" ($U!2T5,04Y'240H3$%.1U].15544D%,+"!354),04Y'7T1%1D%5 M3%0I+ T*(" (" (" (" (" (" (" (" (" (" (" (" (" M(&)U9F9E<BP-"B (" (" (" (" (" (" (" (" (" (" (" M(" ("!W<U]C:&%R7V%?=" J;&%S=%]G;V]D(#T 7U]F;71?;7-G7V9I;F1? M;&%S=%]G;V]D*&)U9F9E<BP 8G5F9F5R("L <F5S*3L-" T*(" (" (" J M;&%S=%]G;V]D(#T ,#L-"B (" (" <F5S(#T ;&%S=%]G;V]D("T 8G5F M($9O<FUA=$UE<W-A9V4H1%=/4D0 9'=%<G(L('=S7V-H87)?=U]T("IB=69F M97, /2 Z.D9O<FUA=$UE<W-A9V57*" 1D]234%47TU%4U-!1T5?1E)/35]3 M65-414T ?"!&3U)-051?34534T%'15]-05A?5TE$5$A?34%32RP-"B (" M(" (" (" (" (" (" (" (" (" (" (" ("!.54Q,+ T*(" M(" (" (" (" (" (" (" (" (" (" (" (" (&1W17)R+ T* M(" (" (" (" (" (" (" (" (" (" (" (" (" ($U!2T5, M04Y'240H3$%.1U].15544D%,+"!354),04Y'7T1%1D%53%0I+ T*(" (" M(" (" (" (" (" (" (" (" (" (" (" (&)U9F9E<BP-"B M(" (" (" (" (" (" (" (" (" (" (" (" ("!C8VA"=69F M($YO=R!T<FEM('1H92!T<F%I;&EN9R!S<&%C90T*(" (" ("!W<U]C:&%R M7W=?=" J;&%S=%]G;V]D(#T 7U]F;71?;7-G7V9I;F1?;&%S=%]G;V]D*&)U M9F9E<BP 8G5F9F5R("L <F5S*3L-" T*(" (" (" J;&%S=%]G;V]D(#T M,#L-"B (" (" <F5S(#T M(" ('=I;G-T;%]A<W-E<G0H<F5S(#X M(" 1D]234%47TU%4U-!1T5?04Q,3T-!5$5?0E5&1D52('P 1D]234%47TU% M4U-!1T5?34%87U=)1%1(7TU!4TL ?" H3E5,3" ]/2!H:6YS=%-O=7)C92 _ M($9/4DU!5%]-15-304=%7T923TU?4UE35$5-(#H 1D]234%47TU%4U-!1T5? M1E)/35](34]$54Q%*3L-"B ("!W<U]D=V]R9%]T("!R97, (" (#T (" Z M.D9O<FUA=$UE<W-A9V5!*&9L86=S+" H=F]I9"HI:&EN<W13;W5R8V4L(&1W M17)R+"!-04M%3$%.1TE$*$Q!3D=?3D555%)!3"P 4U5"3$%.1U]$149!54Q4 M<&%C90T*(" (" ("!W<U]C:&%R7V%?=" J;&%S=%]G;V]D(#T 7U]F;71? M;7-G7V9I;F1?;&%S=%]G;V]D*"IB=69F97(L("IB=69F97( *R!R97,I.PT* M(#X M92!W<U]D=V]R9%]T($9O<FUA=$UE<W-A9V4H1%=/4D0 9'=%<G(L($A)3E-4 M(" =W-?9'=O<F1?=" 9FQA9W, (" ](" 1D]234%47TU%4U-!1T5?04Q, M3T-!5$5?0E5&1D52('P 1D]234%47TU%4U-!1T5?34%87U=)1%1(7TU!4TL M?" H3E5,3" ]/2!H:6YS=%-O=7)C92 _($9/4DU!5%]-15-304=%7T923TU? M4UE35$5-(#H 1D]234%47TU%4U-!1T5?1E)/35](34]$54Q%*3L-"B ("!W M<U]D=V]R9%]T("!R97, (" (#T (" Z.D9O<FUA=$UE<W-A9V57*&9L86=S M+" H=F]I9"HI:&EN<W13;W5R8V4L(&1W17)R+"!-04M%3$%.1TE$*$Q!3D=? M+R!.;W< =')I;2!T:&4 =')A:6QI;F< <W!A8V4-"B (" (" =W-?8VAA M<E]W7W0 *FQA<W1?9V]O9" ](%]?9FUT7VUS9U]F:6YD7VQA<W1?9V]O9" J M8G5F9F5R+" J8G5F9F5R("L <F5S*3L-" T*(" (" (" J;&%S=%]G;V]D M(#T ,#L-"B (" (" <F5S(#T ;&%S=%]G;V]D("T *F)U9F9E<CL-" T* M<W-E9$%S>6YC*&EN="!K*0T*>PT*(" (')E='5R;B H.CI'971!<WEN8TME M<W1Y;&4 ;V8 =&AE('=I;F1O=R J+PT*:6YL:6YE('=S7VQO;F=?="!'9713 M1U=,7U-464Q%*3L-"GT-" T*+RHJ($=E=', =&AE(&5X=&5N9&5D('-T>6QE M(&]F('1H92!W:6YD;W< *B\-"FEN;&EN92!W<U]L;VYG7W0 1V5T17A3='EL M;F1O=R J+PT*:6YL:6YE('=S7VQO;F=?="!39713='EL92A(5TY$(& L('=S M7VQO;F=?="!S*0T*>PT*(" (')E='5R;B!39717:6YD;W=,;VYG*& L($=7 M3%]35%E,12P *'=S7VQO;F=?="ES*3L-"GT-" T*+RHJ(%-E=', =&AE(&5X M=&5N9&5D('-T>6QE(&]F('1H92!W:6YD;W< *B\-"FEN;&EN92!W<U]L;VYG M7W0 4V5T17A3='EL92A(5TY$(& L('=S7VQO;F=?="!X*0T*>PT*(" (')E M='5R;B!39717:6YD;W=,;VYG*& L($=73%]%6%-464Q%+" H=W-?;&]N9U]T M;W< *B\-"FEN;&EN92!W<U]L;VYG7W0 36]D:69Y4W1Y;&4H2%=.1"!H+"!W M(%-E=%-T>6QE*& L("A'9713='EL92AH*2 F('YS4F5M*2!\('-!9&0I.PT* M:6YD;W< *B\-"FEN;&EN92!W<U]L;VYG7W0 36]D:69Y17A3='EL92A(5TY$ M(& L('=S7VQO;F=?="!S4F5M+"!W<U]L;VYG7W0 <T%D9"D-"GL-"B ("!R M971U<FX 4V5T17A3='EL92AH+" H1V5T17A3='EL92AH*2 F('YS4F5M*2!\ M8F]O;%]T($ES5VEN9&]W0VQA<W,H2%=.1"!H=VYD+"!W<U]C:&%R7V%?="!C M;VYS=" J;F%M92D-"GL-"B ("!W:6YS=&Q?87-S97)T*$Y53$P (3T :'=N M(#T (" Z.D=E=$-L87-S3F%M94$H:'=N9"P <WI.86UE+"!S=&QS;V9T7VYU M;5]E;&5M96YT<RAS>DYA;64I*3L-" T*(" (')E='5R;B P(#T](&QS=')C M:&4 9VEV96X =VEN9&]W(&AA<R!T:&4 9VEV96X =VEN9&]W(&-L87-S("HO M<U]C:&%R7W=?="!C;VYS=" J;F%M92D-"GL-"B ("!W:6YS=&Q?87-S97)T M(" (" (" ;&5N(#T (" Z.D=E=$-L87-S3F%M95<H:'=N9"P <WI.86UE M+"!S=&QS;V9T7VYU;5]E;&5M96YT<RAS>DYA;64I*3L-" T*(" (')E='5R M;B P(#T M8FQE<R]D:7-A8FQE(&$ 9&EA;&]G(&ET96T-"B J+PT*:6YL:6YE('9O:60 M16YA8FQE1&QG271E;2A(5TY$(&AW;F0L(&EN="!I9"P =W-?8F]O;%]T(&)% M;&4 <W1A='5S(&]F(&$ 9&EA;&]G(&ET96T-"B J+PT*:6YL:6YE('=S7V)O M;VQ?="!)<T1L9TET96U%;F%B;&5D*$A73D0 :'=N9"P :6YT(&ED*0T*>PT* M(" (')E='5R;B Z.DES5VEN9&]W16YA8FQE9" Z.D=E=$1L9TET96TH:'=N M;F4 :6YT($=E=$1L9TET96U497AT3&5N9W1H*$A73D0 :'=N9"P :6YT(&ED M*0T*>PT*(" (')E='5R;B Z.D=E=%=I;F1O=U1E>'1,96YG=& H.CI'971$ M9B!'9717:6YD;W=);G-T86YC90T*(R!U;F1E9B!'9717:6YD;W=);G-T86YC M4U1!3D-%($=E=%=I;F1O=TEN<W1A;F-E*$A73D0 :'=N9"D-"GL-"B ("!R M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M=&P-"B, 96QS90T*?2 O+R!N86UE<W!A8V4 =VEN<W1L7W!R;VIE8W0-"GT M+R\ ;F%M97-P86-E('-T;'-O9G0-"B, 96YD:68 +RH 7U-43%-/1E1?3D]? M" T*+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O H+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\ *B\-" `` ` end begin 666 winstl_windows_ident.h M+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"B J($9I;&4Z M9#H M36%R8V ,C P- T*("H-"B J($%U=&AO<CH (" ("!-871T:&5W(%=I;'-O M;BP 4WEN97-I<R!3;V9T=V%R92!0='D 3'1D+ T*("H-"B J($QI8V5N<V4Z M(" (" H3&EC96YS960 =6YD97( =&AE(%-Y;F5S:7, 4V]F='=A<F4 4W1A M(" (" :'1T<#HO+W=W=RYW:6YS=&PN;W)G+PT*("H-"B J(" (" (" M(" ("!E;6%I;#H (" ("!S=6)M:7-S:6]N<T!W:6YS=&PN;W)G("!F;W( M<W5B;6ES<VEO;G,-"B J(" (" (" (" (" (" (" (" ("!A9&UI M("H (" (" (" (" (%)E9&ES=')I8G5T:6]N(&%N9"!U<V4 :6X <V]U M<F-E(&%N9"!B:6YA<GD 9F]R;7,L('=I=& ;W(-"B J(" (" (" (" M("!W:71H;W5T(&UO9&EF:6-A=&EO;BP 87)E('!E<FUI='1E9"!P<F]V:61E M9"!T:&%T('1H92!F;VQL;W=I;F<-"B J(" (" (" (" ("!C;VYD:71I M:6)U=&EO;G, ;V8 <V]U<F-E(&-O9&4 ;75S="!R971A:6X =&AE(&%B;W9E M8V]N9&ET:6]N<R!A;F0 =&AE(&9O;&QO=VEN9R!D:7-C;&%I;65R+ T*("H- M"B J(" (" (" (" (" H:6DI($%N>2!D97)I=F5D('9E<G-I;VYS(&]F M('1H:7, <V]F='=A<F4 *&AO=W-O979E<B!M;V1I9FEE9"D-"B J(" (" M(" (" ("!R96UA:6X =&AE('-O;&4 <')O<&5R='D ;V8 4WEN97-I<R!3 M960 =F5R<VEO;G, ;V8 =&AI<R!S;V9T=V%R92 H:&]W<V]E=F5R(&UO9&EF M:65D*0T*("H (" (" (" (" (')E;6%I;B!S=6)J96-T('1O(&%L;"!T M:&5S92!C;VYD:71I;VYS+ T*("H-"B J(" (" (" (" (" H:78I($YE M:71H97( =&AE(&YA;64 ;V8 4WEN97-I<R!3;V9T=V%R92!N;W( =&AE(&YA M;65S(&]F(&%N>0T*("H (" (" (" (" ('-U8F1I=FES:6]N<RP 96UP M;&]Y965S(&]R(&%G96YT<R!O9B!3>6YE<VES(%-O9G1W87)E+"!N;W( =&AE M(" (" (" 96YD;W)S92!O<B!P<F]M;W1E('!R;V1U8W1S(&1E<FEV960 M9G)O;2!T:&ES('-O9G1W87)E('=I=&AO=70-"B J(" (" (" (" ("!S M(" (" (" (%1H:7, <V]U<F-E(&-O9&4 :7, <')O=FED960 8GD 4WEN M97-I<R!3;V9T=V%R92 B87, :7,B(&%N9"!A;GD-"B J(" (" (" (" M("!W87)R86YT:65S+"!W:&5T:&5R(&5X<')E<W-E9"!O<B!I;7!L:65D+"!I M;F-L=61I;F<L(&)U="!N;W0-"B J(" (" (" (" ("!L:6UI=&5D('1O M+"!T:&4 :6UP;&EE9"!W87)R86YT:65S(&]F(&UE<F-H86YT86)I;&ET>2!A M;F0-"B J(" (" (" (" ("!F:71N97-S(&9O<B!A('!A<G1I8W5L87( M<'5R<&]S92!A<F4 9&ES8VQA:6UE9"X 26X ;F\ 979E;G0-"B J(" (" M(" (" ("!S:&%L;"!T:&4 4WEN97-I<R!3;V9T=V%R92!B92!L:6%B;&4 M9F]R(&%N>2!D:7)E8W0L(&EN9&ER96-T+ T*("H (" (" (" (" (&EN M8VED96YT86PL('-P96-I86PL(&5X96UP;&%R>2P ;W( 8V]N<V5Q=65N=&EA M="!L:6UI=&5D('1O+"!P<F]C=7)E;65N="!O9B!S=6)S=&ET=71E(&=O;V1S M871A+"!O<B!P<F]F:71S.R!O<B!B=7-I;F5S<PT*("H (" (" (" (" M(&EN=&5R<G5P=&EO;BD :&]W979E<B!C875S960 86YD(&]N(&%N>2!T:&5O M<GD ;V8 ;&EA8FEL:71Y+ T*("H (" (" (" (" ('=H971H97( :6X M8V]N=')A8W0L('-T<FEC="!L:6%B:6QI='DL(&]R('1O<G0 *&EN8VQU9&EN M9PT*("H (" (" (" (" (&YE9VQI9V5N8V4 ;W( ;W1H97)W:7-E*2!A M<FES:6YG(&EN(&%N>2!W87D ;W5T(&]F('1H92!U<V4 ;V8-"B J(" (" M(" (" ("!T:&ES('-O9G1W87)E+"!E=F5N(&EF(&%D=FES960 ;V8 =&AE M('!O<W-I8FEL:71Y(&]F('-U8V -"B J(" (" (" (" ("!D86UA9V4N M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\ *B\-" T* M"B-D969I;F4 5TE.4U1,7TE.0TQ?2%]724Y35$Q?5TE.1$]74U])1$5.5 T* M3 T*(R!D969I;F4 7U=)3E-43%]615)?2%]724Y35$Q?5TE.1$]74U])1$5. M5$Q?5D527TA?5TE.4U1,7U=)3D1/5U-?241%3E1?4D5625-)3TX (" , T* M(R!D969I;F4 7U=)3E-43%]615)?2%]724Y35$Q?5TE.1$]74U])1$5.5%]% M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M(" (" (" (" O+R!);F-L=61E('1H92!7:6Y35$P <F]O="!H96%D97(- M"B-E;F1I9B O*B A5TE.4U1,7TE.0TQ?2%]724Y35$P *B\-"B-I9FYD968 M=VEN<W1L7V9U;F-T:6]N<RYH(B (" (" +R\-"B-E;F1I9B O*B A5TE. M<V]F=%]A=71O7V)U9F9E<BYH( T*(V5N9&EF("\J("%35$Q33T947TE.0TQ? M<F]C97-S:&5A<%]A;&QO8V%T;W(N:"(-"B-E;F1I9B O*B A5TE.4U1,7TE. M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M"B-I9FYD968 7U=)3E-43%].3U].04U%4U!!0T4-"B, :69D968 7U-43%-/ M<&%C92P <V\ ;75S="!D969I;F4 .CIW:6YS=&P *B\-"FYA;65S<&%C92!W M:6YS=&P-"GL-"B, 96QS90T*+RH 1&5F:6YE('-T;'-O9G0Z.G=I;G-T;%]P M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT* M,3$-"B (" L(" 0V]M8F]";W (" (" (#T (" Q, T*(" ("P ("!, M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M:6YL:6YE(%=I;F1O=TED96YT($=E=%=I;F1O=TED96YT*$A73D0 :'=N9"D- M"GL-"B ("!T>7!E9&5F(&%U=&]?8G5F9F5R/&-H87(L('!R;V-E<W-H96%P M7V%L;&]C871O<CQC:&%R/BP ,C4V/B!B=69F97)?=#L-" T*(" ('-T<G5C M9F5R7W0 (" (" (" ("!B=69F97(H8G5F9F5R7W0Z.FEN=&5R;F%L7W-I M72 ]( T*(" ('L-"B (" (" (" ($QI<W1";W L(" ("),25-40D]8 M( T*(" (" (" L(" 0V]M8F]";W L(" (D-/34)/0D]8( T*(" (" M(" (&9O<B [(&)U9F9E<BYR97-I>F4H,B J(&)U9F9E<BYS:7IE*"DI.R I M(#P 8G5F9F5R+G-I>F4H*2D-"B (" (" >PT*(" (" (" (" 8G)E M,#L :6YD97 /"!S:7IE;V8H<U]I9&5N=',I("\ <VEZ96]F*'-?:61E;G1S M<&E!*'-?:61E;G1S6VEN9&5X72YN86UE+"!B=69F97(I*0T*(" (" ("![ M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M92!W:6YS=&P-"B, 96QS90T*?2 O+R!N86UE<W!A8V4 =VEN<W1L7W!R;VIE M8W0-"GT +R\ ;F%M97-P86-E('-T;'-O9G0-"B, 96YD:68 +RH 7U-43%-/ M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O ` endcompatible, i.e. to work with operator <<(). Cheers Matthew
Mar 10 2004
borrowedI've done a first stab. Unfortunately, it's on the laptop I'veActually, I was talking about the rant... Good choice, though... do you have to make it often?borrowed(from my brother-in-law) which is currently not networked to thisusing(from my mum) desktop. I thought I would be able to pass them acrossHmmm. Options were: 1. Try and do these last couple of chapter revisions 2. Go to bed and try to sleep but stay awake worrying about having to do these last couple of chapter revisions 3. Stay up for an hour and do some fun coding.CD-RWs, but one is using Roxio, and the other is using Pinnacle's InstantCD/DVD, and it doesn't work. Ah, you got to love hardware!!I bet you actually enjoyed writing that...codepostAnyway, I should have it sorted in the next day or so, and then I'llithere, or will do another beta. Thanks for the idea. If you have any further refinements you want tosuggestonce you've tried it out, please let me know.I will, worry not, I do a lot of MFC gui stuff, so I've got plenty ofwillto test with...Cool. In fact, we can do overloads for MFC which will be efficient, since they won't need to do tests because they can assume certain natures. Ialso do this, but not at the moment.Well, this is what I thought you'd do first...I managed to get the damnable CD-RW to be read, by rebooting, which I hadtodo because OE froze. :) So here it is, in *barely* tested form.I'll start using 'em right away... and let you know any comments/complaints... btw, here's the code for the attachment you couldn't see: #ifndef __WNDTOSTR_H__INCLUDED__ #define __WNDTOSTR_H__INCLUDED__ namespace WndToStr_Imp { template<typename E> HWND& get_into(HWND& w, std::basic_string<E>& s) { int len = GetWindowTextLength(w); if( (len != 0) && (len != -1) ) { s.resize(len); GetWindowText(w, &s[0], len+1); } else s.erase(); return w; } } template<typename E> HWND &operator>>(HWND &w, std::basic_string<E> &s) { char class_name[20]; GetClassName(w, class_name, sizeof(class_name)-1); unsigned msg_idx = NULL, msg_len, msg_get; if( !stricmp(class_name, "LISTBOX") ) { msg_idx = LB_GETCURSEL; msg_len = LB_GETTEXTLEN; msg_get = LB_GETTEXT; } else if( !stricmp(class_name, "COMBOBOX") ) { msg_idx = CB_GETCURSEL; msg_len = CB_GETLBTEXTLEN; msg_get = CB_GETLBTEXT; long style = GetWindowLong(w, GWL_STYLE); if( !((style & CBS_DROPDOWNLIST) == CBS_DROPDOWNLIST) ) msg_idx = NULL; } int idx = (msg_idx == NULL) ? -1 : SendMessage(w, msg_idx, 0, 0); if( idx != -1 ) { int len = SendMessage(w, msg_len, idx, 0); if( len ) { s.resize(len); SendMessage(w, msg_get, idx, (LPARAM)&s[0]); } else s.erase(); } else WndToStr_Imp::get_into(w, s); return w; } #endif /* __WNDTOSTR_H__INCLUDED__ */IOStreambtw, I've recently updated *all* STLSoft c_str_ptr*() shims to becompatible, i.e. to work with operator <<(). Cheers Matthew
Mar 10 2004
Got something: you ether forgot to attach stlsoft_auto_buffer.h or winstl_windows_ident.h's trying to do something wrong with auto_buffer<...>::internal_size and auto_buffer<...>::resize
Mar 10 2004
Doh! Hopefully this makes it work. If not, I may have to do another beta very soon. Cheers Matthew "Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c2ogk7$83m$1 digitaldaemon.com...Got something: you ether forgot to attach stlsoft_auto_buffer.h orwinstl_windows_ident.h'strying to do something wrong with auto_buffer<...>::internal_size and auto_buffer<...>::resizebegin 666 stlsoft_auto_buffer.h M+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"B J($9I;&4Z M(" (" ("!S=&QS;V9T7V%U=&]?8G5F9F5R+F *&]R:6=I;F%L;'D 351, M("H 0W)E871E9#H M* T*("H 3&EC96YS93H (" ("A,:6-E;G-E9"!U;F1E<B!T:&4 4WEN97-I M(" :'1T<#HO M(" (" (" (" (" (" (" :'1T<#HO+W=W=RYS=&QS;V9T+F]R9R\- M<W1L<V]F="YO<F< (&9O<B!S=6)M:7-S:6]N<PT*("H (" (" (" (" M(" (" (" (" (&%D;6EN0'-T;'-O9G0N;W)G(" (" ("!F;W( ;W1H M:6]N(&%N9"!U<V4 :6X <V]U<F-E(&%N9"!B:6YA<GD 9F]R;7,L('=I=& M;W(-"B J(" (" (" (" ("!W:71H;W5T(&UO9&EF:6-A=&EO;BP 87)E M('!E<FUI='1E9"!P<F]V:61E9"!T:&%T('1H92!F;VQL;W=I;F<-"B J(" M(" (" ("AI*2!2961I<W1R:6)U=&EO;G, ;V8 <V]U<F-E(&-O9&4 ;75S M(&YO=&EC92!A;F0 8V]N=&%C="!I;F9O<FUA=&EO;BP =&AI<R!L:7-T(&]F M9R!D:7-C;&%I;65R+ T*("H-"B J(" (" (" (" (" H:6DI($%N>2!D M97)I=F5D('9E<G-I;VYS(&]F('1H:7, <V]F='=A<F4 *&AO=W-O979E<B!M M;V1I9FEE9"D-"B J(" (" (" (" ("!R96UA:6X =&AE('-O;&4 <')O M(" *&EI:2D 06YY(&1E<FEV960 =F5R<VEO;G, ;V8 =&AI<R!S;V9T=V%R M92 H:&]W<V]E=F5R(&UO9&EF:65D*0T*("H (" (" (" (" (')E;6%I M;B!S=6)J96-T('1O(&%L;"!T:&5S92!C;VYD:71I;VYS+ T*("H-"B J(" M(" (" (" (" H:78I($YE:71H97( =&AE(&YA;64 ;V8 4WEN97-I<R!3 M;V9T=V%R92!N;W( =&AE(&YA;65S(&]F(&%N>0T*("H (" (" (" (" M('-U8F1I=FES:6]N<RP 96UP;&]Y965S(&]R(&%G96YT<R!O9B!3>6YE<VES M86YY(&]T:&5R(&-O;G1R:6)U=&]R<R!T;R!T:&ES('-O9G1W87)E(&UA>2!B M('!R;V1U8W1S(&1E<FEV960 9G)O;2!T:&ES('-O9G1W87)E('=I=&AO=70- M"B J(" (" (" (" ("!S<&5C:69I8R!P<FEO<B!W<FET=&5N('!E<FUI M:7, <')O=FED960 8GD 4WEN97-I<R!3;V9T=V%R92 B87, :7,B(&%N9"!A M;GD-"B J(" (" (" (" ("!W87)R86YT:65S+"!W:&5T:&5R(&5X<')E M<W-E9"!O<B!I;7!L:65D+"!I;F-L=61I;F<L(&)U="!N;W0-"B J(" (" M(" (" ("!L:6UI=&5D('1O+"!T:&4 :6UP;&EE9"!W87)R86YT:65S(&]F M(&UE<F-H86YT86)I;&ET>2!A;F0-"B J(" (" (" (" ("!F:71N97-S M(&9O<B!A('!A<G1I8W5L87( <'5R<&]S92!A<F4 9&ES8VQA:6UE9"X 26X M;F\ 979E;G0-"B J(" (" (" (" ("!S:&%L;"!T:&4 4WEN97-I<R!3 M;V9T=V%R92!B92!L:6%B;&4 9F]R(&%N>2!D:7)E8W0L(&EN9&ER96-T+ T* M("H (" (" (" (" (&EN8VED96YT86PL('-P96-I86PL(&5X96UP;&%R M*&EN8VQU9&EN9RP 8G5T(&YO="!L:6UI=&5D('1O+"!P<F]C=7)E;65N="!O M97,[(&QO<W, ;V8 =7-E+"!D871A+"!O<B!P<F]F:71S.R!O<B!B=7-I;F5S M<PT*("H (" (" (" (" (&EN=&5R<G5P=&EO;BD :&]W979E<B!C875S M960 86YD(&]N(&%N>2!T:&5O<GD ;V8 ;&EA8FEL:71Y+ T*("H (" (" M(" (" ('=H971H97( :6X 8V]N=')A8W0L('-T<FEC="!L:6%B:6QI='DL M(&]R('1O<G0 *&EN8VQU9&EN9PT*("H (" (" (" (" (&YE9VQI9V5N M8V4 ;W( ;W1H97)W:7-E*2!A<FES:6YG(&EN(&%N>2!W87D ;W5T(&]F('1H M92!U<V4 ;V8-"B J(" (" (" (" ("!T:&ES('-O9G1W87)E+"!E=F5N M(&EF(&%D=FES960 ;V8 =&AE('!O<W-I8FEL:71Y(&]F('-U8V -"B J(" M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M5$Q33T947U9%4E](7U-43%-/1E1?05543U]"549&15)?34E.3U( (" ,3<- M"B, 9&5F:6YE(%]35$Q33T947U9%4E](7U-43%-/1E1?05543U]"549&15)? M4D5625-)3TX ,0T*(R!D969I;F4 7U-43%-/1E1?5D527TA?4U1,4T]&5%]! M551/7T)51D9%4E]%1$E4(" (" V. T*(V5N9&EF("\J("%?7U-43%-/1E1? M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M(VEF;F1E9B!?4U1,4T]&5%])3D-,7TA?4U1,4T]&5 T*(R!I;F-L=61E(")S M=&QS;V9T+F B(" (" (" (" (" (" ("\O($EN8VQU9&4 =&AE(%-4 M7U-43%-/1E0 *B\-"B-I9F1E9B!?4U1,4T]&5%]!551/7T)51D9%4E]!3$Q/ M5U]51%0-"B, 9&5F:6YE(%]35$Q33T947T%55$]?0E5&1D527T%,3$]77TY/ M<F%G;6$ ;65S<V%G92 B7U-43%-/1E1?05543U]"549&15)?04Q,3U=?5414 M(&ES(&1E<')E8V%T960N(%5S92!?4U1,4T]&5%]!551/7T)51D9%4E]!3$Q/ M24Q%7U9%4D)/4T4 *B\-"B-E;F1I9B O*B!?4U1,4T]&5%]!551/7T)51D9% M5%])3D-,7TA?4U1,4T]&5%])5$52051/4 T*(R :6YC;'5D92 B<W1L<V]F M=%]I=&5R871O<BYH(B (" (" ("\O(')E=F5R<V5?:71E<F%T;W)?8F%S M3U( *B\-"B-E;F1I9B O*B!?7U-43%-/1E1?0T9?0DE$25)%0U1)3TY!3%]) M3TY35%)!24Y44PT*(R :6YC;'5D92 B<W1L<V]F=%]C;VYS=')A:6YT<RYH M(B (" ("\O($EN8VQU9&4 =&AE(%-43%-O9G0 8V]N<W1R86EN=', :&5A M*B\-"B-E;F1I9B O*B!?4U1,4T]&5%]!551/7T)51D9%4E]!3$Q/5U].3TY? M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M"GL-"B-E;F1I9B O*B!?4U1,4T]&5%].3U].04U%4U!!0T4 *B\-" T*+RH M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"B J($-L87-S97,- M5&AI<R!C;&%S<R!P<F]V:61E<R!A;B!E9F9I8VEE;G0 =F%R:6%B;&4 875T M;VUA=&EC(&)U9F9E< T*+R\O( T*+R\O(%1H:7, 8VQA<W, <')O=FED97, M86X 969F:6-I96YT(')E<&QA8V5M96YT(&9O<B!D>6YA;6EC(&UE;6]R>2!B M;&]C:PT*+R\O(&%L;&]C871I;VX =VAE;B!T:&4 8FQO8VL <VEZ92!G96YE M<F%L;'D 9F%L;', =6YD97( 82!C97)T86EN(&QI;6ET+B!); T*+R\O('-U M8V 8V%S97,L('-I9VYI9FEC86YT('!E<F9O<FUA;F-E(&)E;F5F:71S(&-A M;B!B92!A8VAI979E9"!B>2!U<VEN9R!A; T*+R\O(&EN<W1A;F-E(&]F(&$ M<&%R86UE=&5R:7-A=&EO;B!O9B!A=71O7V)U9F9E<BP =VAO<V4 <VEZ92!P M87)A;65T97( 4U!!0T4-"B\O+R!I<R!S970 =&\ 82!L979E;"!T;R!C871E M<B!F;W( ;6]S="!O9B!T:&4 <F5Q=65S=&5D('-I>F5S+B!/;FQY('=H97)E M('1H90T*+R\O('-I>F4 ;V8 =&AE(&)U9F9E<B!N965D<R!T;R!B92!L87)G M97( =&AA;B!T:&ES(&QI;6ET(&1O97, 86X 86QL;V-A=&EO; T*+R\O(&]C M8W5R(&9R;VT =&AE(&AE87 O9G)E92US=&]R92!V:6$ =&AE(&=I=F5N(&%L M;&]C871O<BX-"B\O+R -"B\O+R!<;F]T92!4:&4 8G5F9F5R('=O<FMS(&-O M<G)E8W1L>2!W:&5T:&5R('1H92!G:79E;B!A;&QO8V%T;W( =&AR;W=S(&%N M(&5X8V5P=&EO;B!O;B!A;&QO8V%T:6]N(&9A:6QU<F4L(&]R(')E='5R;G, M3E5,3"X-"B\O+R -"B\O+R!<<&%R86T 5"!4:&4 ='EP92!O9B!T:&4 96QE M=', :6X =&AE(&%R<F%Y+B!7:71H('1R86YS;&%T;W)S('1H870 <W5P<&]R M="!D969A=6QT('1E;7!L871E(&%R9W5M96YT<RP =&AI<R!I<R!D969A=6QT M7U]35$Q33T947T-&7U1%35!,051%7T-,05-37T1%1D%53%1?1E5.1$%-14Y4 M04Q?05)'54U%3E1?4U504$]25 T*(" (" (" L(" <W-?<VEZ95]T(" M>F5?=" (" (" (" 4U!!0T4-"B-E;F1I9B O*B!?7U-43%-/1E1?0T9? M5$5-4$Q!5$5?0TQ!4U-?1$5&055,5%]&54Y$04U%3E1!3%]!4D=5345.5%]3 M='EP961E9B!4(" (" (" (" (" (" (" ("!V86QU95]T>7!E.PT* M(" ("\O+R!4:&4 86QL;V-A=&]R('1Y<&4-"B ("!T>7!E9&5F($$ (" M(" (" (" (" (" (" (&%L;&]C871O<E]T>7!E.PT*(" (&5N=6T- M<FES871I;VX-"B ("!T>7!E9&5F(&%U=&]?8G5F9F5R/%0L($$L(%-004-% M(" ='EP961E9B!V86QU95]T>7!E(" (" (" (" (" ("9R969E<F5N M"B ("!T>7!E9&5F('9A;'5E7W1Y<&4 (" (" (" (" (" *G!O:6YT M='EP90T*(" ('1Y<&5D968 =F%L=65?='EP92!C;VYS=" (" (" (" J M8V]N<W1?<&]I;G1E<CL-"B (" O+R\ 5&AE('-I>F4 ='EP90T*(" ('1Y M(" +R\O(%1H92!D:69F97)E;F-E('1Y<&4-"B ("!T>7!E9&5F('-S7W!T M<F1I9F9?=" (" (" (" (" 9&EF9F5R96YC95]T>7!E.PT*(VEF("%D M9B!V86QU95]T>7!E(" (" (" (" (" ("II=&5R871O<CL-"B (" O M+R\ 5&AE(&YO;BUM=71A8FQE("AC;VYS="D :71E<F%T;W( ='EP90T*(" M('1Y<&5D968 =F%L=65?='EP92!C;VYS=" (" (" (" J8V]N<W1?:71E M4$E,15)?25-?0D]23$%.1"D-"B (" (" (" <W-?='EP96YA;65?='EP M(" (" ('!O:6YT97)?:71E<F%T;W( /" ('9A;'5E7W1Y<&4-"B (" M(" (" (" (" (" (" (" (" (" (" (" (" L(" <&]I;G1E M< T*(" (" (" (" (" (" (" (" (" (" (" (" (" ("P M("!R969E<F5N8V4-"B (" (" (" (" (" (" (" (" (" (" M(" (" (" ^.CII=&5R871O<E]T>7!E(" (&ET97)A=&]R.PT*(" ("\O M+R!4:&4 ;F]N+6UU=&%T:6YG("AC;VYS="D :71E<F%T;W( ='EP90T*(" M('1Y<&5D968-"B, :68 (61E9FEN960H7U]35$Q33T947T-/35!)3$527TE3 M:68 +RH 7U]35$Q33T947T-/35!)3$527TE37T)/4DQ!3D0 *B\-"B (" M(" (" (" (" (" (" <&]I;G1E<E]I=&5R871O<B \(" =F%L=65? M='EP92!C;VYS= T*(" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" (" (" +" (&-O;G-T7W)E9F5R96YC90T*(" M(" (" (" (" (" (" (" (" (" (" (" (" (#XZ.FET97)A M=&%T:6YG("AN;VXM8V]N<W0I(')E=F5R<V4 :71E<F%T;W( ='EP90T*(" M('1Y<&5D968 <F5V97)S95]I=&5R871O<E]B87-E(" (" (#P ("!I=&5R M871O< T*(" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" +" (')E9F5R96YC90T*(" (" (" (" (" (" M(" (" (" (" (" (" (" (" (" (" +" (&1I9F9E<F5N8V5? M='EP90T*(" (" (" (" (" (" (" (" (" (" (" (" (" M(#X (" (" (" (" (" (" <F5V97)S95]I=&5R871O<CL-" T*(" M("\O+R!4:&4 ;F]N+6UU=&%T:6YG("AC;VYS="D <F5V97)S92!I=&5R871O M(" (" (" (" (" (" +" ('9A;'5E7W1Y<&4 8V]N<W0-"B (" M(" (" (" (" (" (" (" (" (" (" (" (" L(" 8V]N<W1? M(" (" +" (&-O;G-T7W!O:6YT97(-"B (" (" (" (" (" (" M(" (" (" (" (" (" (" (" (" (" (" (" /B (" (" M(" (" (" ("!C;VYS=%]R979E<G-E7VET97)A=&]R.PT*(V5N9&EF("\J M("%?7U-43%-/1E1?0T9?0DE$25)%0U1)3TY!3%])5$52051/4E]355!03U)4 M<')I=F%T93H-"B ("!P;VEN=&5R(&%L;&]C871E7RAS:7IE7W1Y<&4 8TET M96US+"!V;VED("IH:6YT*0T*(" ('L-"B-I9F1E9B!?7U-43%-/1E1?0T9? M971?86QL;V-A=&]R*"DN86QL;V-A=&4H8TET96US+"!H:6YT*3L-"B-E;'-E M(" (" (')E='5R;B!G971?86QL;V-A=&]R*"DN86QL;V-A=&4H8TET96US M90T*(" (" ("!R971U<FX 9V5T7V%L;&]C871O<B I+F%L;&]C871E*&-) M0T%415](05-?2$E.5" J+PT*(" ('T-" T*(" ('9O:60 9&5A;&QO8V%T M95\H<&]I;G1E<B!P+"!S:7IE7W1Y<&4 8TET96US*0T*(" ('L-"B (" M(" <W1L<V]F=%]A<W-E<G0H3E5,3" A/2!P*3L-" T*(VEF9&5F(%]?4U1, M"B (" (" 9V5T7V%L;&]C871O<B I+F1E86QL;V-A=&4H<"P 8TET96US M<F5A;&QO8V%T95\H<&]I;G1E<B!P+"!S:7IE7W1Y<&4 8TET96US+"!S:7IE M7W1Y<&4 8TYE=TET96US*0T*(" ('L-"B (" (" <&]I;G1E<B!N97=? M<" (#T ("!A;&QO8V%T95\H8TYE=TET96US+"!P*3L-" T*(" (" (" O M+R!4:&ES('1E<W0 :7, ;F5E9&5D+"!S:6YC92!S;VUE(&%L;&]C871O<G, M;6%Y(&YO="!T:')O=PT*(" (" (" O+R!B861?86QL;V,-"B (" (" M:68H3E5,3" A/2!N97=?<"D-"B (" (" >PT*(" (" (" (" 8FQO M8VM?8V]P>2AN97=?<"P <"P 8TET96US*3L-" T*(" (" (" (" 9&5A M='5R;B!N97=?<#L- M:60 8FQO8VM?8V]P>2AP;VEN=&5R(&1E<W0L(&-O;G-T7W!O:6YT97( <W)C M+"!S:7IE7W1Y<&4 8TET96US*0T*(" ('L-"B (" (" <&]D7V-O<'E? M(&)L;V-K7W-E="AP;VEN=&5R(&1E<W0L('-I>F5?='EP92!C271E;7,L(&-O M8W1S(&%N(&%U=&]?8G5F9F5R('=I=& =&AE(&=I=F5N(&YU;6)E<B!O9B!E M;&5M96YT<RX 268 =&AE( T*(" ("\O+R!A;&QO8V%T:6]N(&9A:6QS(&)Y M('1H<F]W:6YG(&%N(&5X8V5P=&EO;BP =&AA="!E>&-E<'1I;VX :7, <&%S M=&EO;B!F86EL<R!B>2!R971U<FYI;F< 82!N=6QL( T*(" ("\O+R!P;VEN M=&5R('1H92!A=71O7V)U9F9E<B!I;G-T86YC92!I<R!C;W)R96-T;'D 8V]N M<W1R=6-T960L(&%N9"!T:&4-"B (" O+R\ 7&QI;FL (W-I>F4 <VEZ92 I M87)A;2!C271E;7, 5&AE(&YU;6)E<B!O9B!I=&5M<R!I;B!T:&4 8V]N<W1R M=6-T960 :6YS=&%N8V4-"B ("!S<U]E>'!L:6-I=%]K(&%U=&]?8G5F9F5R M(#P 8TET96US*2 _(&%L;&]C871E7RAC271E;7,I(#H ;5]I;G1E<FYA;"D- M"B (" (" +"!M7V-)=&5M<R H3E5,3" A/2!M7V)U9F9E<BD /R!C271E M;7, .B P*0T*(" ('L-"B (" (" +R\ 0V%N)W0 8W)E871E(&]N92!W M:71H(&%N(&5M<'1Y(&)U9F9E<BX 5&AO=6=H('-U8V :7, ;F]T(&QE9V%L M*3L-" T*(" (" (" O+R!4:&5S92!A<W-E<G1I;VYS(&5N<W5R92!T:&%T M960L(&EN=F%L:61A=&EN9R!T:&4 :6YI=&EA;&ES871I;VX ;&]G:6, ;V8 M92!A<W-E<G0 :7, :6YC;'5D960 9F]R('1H;W-E(&-O;7!I;&5R<R!T:&%T M7W)A=U]O9F9S971O9BAC;&%S<U]T>7!E+"!M7V)U9F9E<BD /"!S=&QS;V9T M7W)A=U]O9F9S971O9BAC;&%S<U]T>7!E+"!M7V-)=&5M<RDI.PT*(VEF(&1E M9FEN960H7U]35$Q33T947T-/35!)3$527TE37U=!5$-/32D-"B (" (" M<W1L<V]F=%]A<W-E<G0H<W1L<V]F=%]R87=?;V9F<V5T;V8H8VQA<W-?='EP M92P ;5]B=69F97(I(#P <W1L<V]F=%]R87=?;V9F<V5T;V8H8VQA<W-?='EP M95]A<W-E<G0H(FU?8G5F9F5R(&UU<W0 8F4 8F5F;W)E(&U?8TET96US(&EN M('1H92!A=71O7V)U9F9E<B!D969I;FET:6]N(BP <W1L<V]F=%]R87=?;V9F M<V5T;V8H8VQA<W-?='EP92P ;5]B=69F97(I(#P <W1L<V]F=%]R87=?;V9F M<V5T;V8H8VQA<W-?='EP92P ;5]C271E;7,I*3L-"B-E;F1I9B O*B A7U]3 M3T947T%55$]?0E5&1D527T%,3$]77TY/3E]03T0-"B (" (" +R\ 57-E M(" (" ("\O(&YO('1Y<&4 :7, ;6%N86=E9"!I;B!A=71O7V)U9F9E<B!W M:&EC:"!W;W5L9"!R97-U;'0 :6X-"B (" (" +R\ 9&%N9V5R;W5S(&UI M<VUA;F%G96UE;G0 ;V8 =&AE(&QI9F5T:6UE(&]F(&ET<R!I;G-T86YC97,N M8V%T:6]N(&]F(%]35$Q33T947T%55$]?0E5&1D527T%,3$]77TY/3E]03T0- M"B (" (" +R\ <')E=F5N=', =&AI<RP 8G5T('1H92!N871U<F%L(')U M979E;G0 ;F]N(%!/1"!T>7!E<R!B96EN9R!P;&%C960 :6X ;5]I;G1E<FYA M;%M=+ T*(" (" ("!S=&QS;V9T7V-O;G-T<F%I;G1?;75S=%]B95]P;V0H M04Q,3U=?3D].7U!/1" J+PT*(" ('T-"B (" O+R\ 7&)R:65F(%)E;&5A M<V5S('1H92!A;&QO8V%T960 96QE;65N="!A<G)A>0T*(" ("\O+PT*(" M("\O+R!296QE87-E<R!A;GD 86QL;V-A=&5D(&UE;6]R>2X 268 =&AE(&EN M=&5R;F%L(&UE;6]R>2!B=69F97( =V%S( T*(" ("\O+R!U<V5D+"!T:&5N M(&YO=&AI;F< :7, 9&]N92P ;W1H97)W:7-E('1H92!A;&QO8V%T960 ;65M M"B-E;F1I9B O*B!C;VUP:6QE<B J+PT*(" ('L-"B (" (" :68H<W!A M8V4 /"!M7V-)=&5M<RD-"B (" (" >PT*(" (" (" (" <W1L<V]F M;G5M8F5R(&]F(&ET96US(&EN('1H92!B=69F97(-"B (" O+R\-"B (" O M+R\ 7'!A<F%M(&-)=&5M<R!4:&4 ;G5M8F5R(&]F(&ET96US('1O(&-H86YG M<G5E(&EF('-U8V-E<W-F=6PN($9U;F-T:6]N(&9A:6QU<F4 ;V-C=7)S('=H M96X <W5F9FEC:65N="!S=&]R86=E(&9O<B!T:&4-"B (" O+R\ <F5Q=65S M=&5D(&ET96US(&-A;FYO="!B92!A;&QO8V%T960N($EN('1H870 8V%S92P M<W1D.CIB861?86QL;V, =VEL;"!B92!T:')O=R!F;W( 86QL;V-A=&]R<PT* M(" ("\O+R!T:&%T('-U<'!O<G0 :70L(&]T:&5R=VES92!T:&4 9G5N8W1I M;VX =VEL;"!R971U<FX 7&, 9F%L<V4N($EN(&5I=&AE<B!C87-E+"!T:&4 M;W)I9VEN86P-"B (" O+R\ <W1O<F%G92!A;F0 8V]N=&5N=', ;V8 =&AE M+R\O(%QN;W1E(%=H96X <F5D=6-I;F< =&AE(&YU;6)E<B!O9B!E;&5M96YT M<RP =&AE(&EM<&QE;65N=&%T:6]N(&9A=F]U<G, <W!E960 86)O=F4 ;65M M92!I<R!S=&EL;"!L87)G97( =&AA;B!T:&4 :6YT97)N86P <W1O<F%G92!S M:7IE( T*(" ("\O+R H7&, :6YT97)N86Q?<VEZ92 I*2!T:&5N('1H92!H M96%P(&%L;&]C871E9"!B;&]C:R!W:6QL(&YO="!B92!C:&%N9V5D("AI+F4N M8TET96US*0T*(" ('L-"B (" (" +R\ 5&AE<F4 87)E(&9O=7( 8VAA M;F=E<R!P;W-S:6)L93H-"B (" (" +R\-"B (" (" +R\ ,2X 17AP M<F%C=&EO;B!F<F]M(&%N(&%L;&]C871E9"!B=69F97( =&\ =&AE(&EN=&5R M;F%L(&)U9F9E< T*(" (" (" O+R U+B!%>'!A;G-I;VX 9G)O;2!T:&4 M86QL;V-A=&5D(&)U9F9E<B!T;R!A;F]T:&5R(&%L;&]C871E9"!B=69F97(- M"B (" (" +R\ -BX 0V]N=')A8W1I;VX 9G)O;2!T:&4 86QL;V-A=&5D M(&)U9F9E<B!T;R!A;F]T:&5R(&%L;&]C871E9"!B=69F97(-" T*(" (" M("!I9BAM7V-)=&5M<R \(&-)=&5M<RD-"B (" (" >PT*(" (" (" M("!I9BAS<&%C92 \(&U?8TET96US*0T*(" (" (" (" >PT*(" (" M(" (" (" ("\O($-U<G)E;G0 8G5F9F5R(&ES(&%L;&]C871E9#H 8V%S M(" (" (" (" (" +R\ 4W1I;&P =&5S="!F;W( 3E5,3"!H97)E+"!S M:6YC92!S;VUE(&%L;&]C871O<G, =VEL; T*(" (" (" (" (" ("\O M3" ]/2!N97=?8G5F9F5R*0T*(" (" (" (" (" ('L-"B (" (" M(" (" (" (" <F5T=7)N(&9A;'-E.PT*(" (" (" (" (" ('T- M" T*(" (" (" (" (" ("\O($YO=R!R97!O:6YT('1O('1H92!N97< M.PT*(" (" (" (" ?0T*(" (" (" (" 96QS90T*(" (" (" M(" >PT*(" (" (" (" (" ("\O($5X<&%N9&EN9R!F<F]M(&EN=&5R M*'-P86-E(#P 8TET96US*0T*(" (" (" (" (" ('L-"B (" (" M(" (" (" (" +R\ 17AP86YD:6YG('1O(&%L;&]C871E9"!B=69F97([ M(" ("\O(%-T:6QL('1E<W0 9F]R($Y53$P :&5R92P <VEN8V4 <V]M92!A M;&QO8V%T;W)S('=I;&P-"B (" (" (" (" (" (" +R\ ;F]T('1H M<F]W(&)A9%]A;&QO8RX-"B (" (" (" (" (" (" :68H3E5,3" ] M(" (" ('T-" T*(" (" (" (" (" (" ("!I9B P("$](&U?8TET M(" (" ("!B;&]C:U]C;W!Y*&YE=U]B=69F97(L(&U?8G5F9F5R+"!M7V-) M(" (" ;5]B=69F97( /2!N97=?8G5F9F5R.PT*(" (" (" (" (" M(" (" (" (" (" (" (" O+R!%>'!A;F1I;F< =&\ :6YT97)N86P M" T*(" (" (" (" :68H<W!A8V4 /"!M7V-)=&5M<RD-"B (" (" M(" (" (" ("\O($-O;G1R86-T:6YG('=I=&AI;B!A;&QO8V%T960 8G5F M86-E(#P M(" (" 96QS90T*(" (" (" (" (" ('L-"B (" (" (" (" M(" (" +R\ 0V]N=')A8W1I;F< 8F%C:R!T;R!I;G1E<FYA;#L 8V%S92 T M(" (" (" (" (" ('L-"B (" (" (" (" (" (" (" (&)L M(" (" (" (" (" ('T-" T*(" (" (" (" (" (" ("!D96%L M(" (" (&U?8G5F9F5R(#T ;5]I;G1E<FYA;#L-"B (" (" (" (" M9R!T;R!D;PT*(" (" (" (" (" ('-T;'-O9G1?87-S97)T*"$H<W!A M(" (" (&U?8TET96US(#T M<G5E.PT*(" ('T-" T*(" ("\O+R!<8G)I968 4W=A<', 8V]N=&5N=', M92!4:&ES(&UE=&AO9"!I<R!O;FQY(&-O;G-T86YT('1I;64 =VAE;B!T:&4 M;65M;W)Y(&9O<B!T=V\ 8G5F9F5R<PT*(" ("\O+R!H87, 8F5E;B!A8W%U M:7)E9"!V:6$ =&AE(&%L;&]C871O<BX 3W1H97)W:7-E+"!I="!W:6QL(&1E M<&5N9"!O;B!T:&4-"B (" O+R\ 8V]S=', ;V8 97AC:&%N9VEN9R!T:&4 M("!S<&%C92 \(')H<RYM7V-)=&5M<RD-"B (" (" >PT*(" (" (" M(" +R\ 0F]T:"!A<F4 86QL;V-A=&5D+"!S;R!J=7-T('-W87 =&AE;0T* M(" (" ('T-"B (" (" 96QS92!I9BAS<&%C92 \(&U?8TET96US*0T* M*G1H:7,-"B (" (" (" (&U?8G5F9F5R(#T <FAS+FU?8G5F9F5R.PT* M;F%L(&)U9F9E< T*(" (" (" (" <FAS+FU?8G5F9F5R(#T <FAS+FU? M(')H<RYM7V-)=&5M<RD-"B (" (" >PT*(" (" (" (" +R\ 5&AI M9R!I;G1E<FYA;"!B=69F97)S+"!S;R!W92!E>&-H86YG92!T:&4 8V]N=&5N M(" (" ("!B;&]C:U]C;W!Y*"9T6S!=+" F<FAS+FU?:6YT97)N86Q;,%TL M;5]I;G1E<FYA;%LP72P )FU?:6YT97)N86Q;,%TL(&U?8TET96US*3L-"B M(" (" (" (&)L;V-K7V-O<'DH)FU?:6YT97)N86Q;,%TL("9T6S!=+"!R M(&9O;&QO=VEN9R!T=V\ 8V]N<W0 86YD(&YO;BUC;VYS="!I;7!L:6-I="!C M("\O(&=I=F4 82!V97)B;W-E('=A<FYI;F< 9&5S8W)I8FEN9R!I=', :&%V M:6YG('-E;&5C=&5D(&]N92!O=F5R('1H90T*(" ("\O(&]T:&5R+"!A;F0 M=&AI<R!I<RP :6X 8W5R<F5N="!V97)S:6]N<R!O9B!T:&4 8V]M<&EL97(L M(&YO= T*(" ("\O('-U<'!R97-S86)L92X 5&AE('=A<FYI;F=S(&UU<W0L M;B!I;7!L:6-I="!C;VYV97)S:6]N('1O(&$ <&]I;G1E<B!T;R!T:&4 <W1A M<G0 ;V8 =&AE(&5L96UE;G0 87)R87D-"B ("!O<&5R871O<B!P;VEN=&5R M5D524TE/3E]/4$52051/4 T*(" ("\O+R!<8G)I968 06X :6UP;&EC:70 M8V]N=F5R<VEO;B!T;R!A('!O:6YT97(M=&\M8V]N<W0 =&\ =&AE('-T87)T M;G1E<B H*2!C;VYS= T*(" ('L-"B (" (" <F5T=7)N(&U?8G5F9F5R M.PT*(" ('T-"B-E;F1I9B O*B!?4U1,4T]&5%]!551/7T)51D9%4E]!3$Q/ M8V5S<V]R<PT*<'5B;&EC. T*(" ("\O+R!<8G)I968 4F5T=7)N<R!A('!O M:6YT97( =&\ =&AE(&5L96UE;G0 87)R87D-"B ("!P;VEN=&5R(&1A=&$H M*0T*(" ('L-"B (" (" <F5T=7)N(&U?8G5F9F5R.PT*(" ('T-"B M(" O+R\ 7&)R:65F(%)E='5R;G, 82!P;VEN=&5R+71O+6-O;G-T('1O('1H M(" O+R\ 7&)R:65F(%)E='5R;G, 82!N;VXM;75T871I;F< :71E<F%T;W( M<F5P<F5S96YT:6YG('1H92!S=&%R="!O9B!T:&4 <V5Q=65N8V4-"B ("!C M<R!A(&YO;BUM=71A=&EN9R!I=&5R871O<B!R97!R97-E;G1I;F< =&AE(&5N M9"!O9B!T:&4 <V5Q=65N8V4-"B (" O+R\-"B (" O+R\ 7&YO=&4 26X M=&AE(&-A<V4 =VAE<F4 ;65M;W)Y(&%L;&]C871I;VX :&%S(&9A:6QE9"!I M;B!T:&4 8V]N=&5X= T*(" ("\O+R!W:&5R92!E>&-E<'1I;VYS(&%R92!N M;W0 =&AR;W=N(&9O<B!A;&QO8V%T:6]N(&9A:6QU<F4L('1H:7, ;65T:&]D M('=I;&P-"B (" O+R\ <F5T=7)N('1H92!S86UE('9A;'5E(&%S(&)E9VEN M*"DN($AE;F-E+"!O<&5R871I;VYS(&]N('1H92 \:3YE;7!T>3PO:3X-"B M(" O+R\ 875T;U]B=69F97(\/B!I;G-T86YC92!W:6QL(&)E('-A9F4 :68 M;6%D92!I;B!R97-P96-T(&]F('1H92!R86YG90T*(" ("\O+R!D969I;F5D M8TET96US.PT*(" ('T-" T*(" ("\O+R!<8G)I968 4F5T=7)N<R!A(&UU M=&%B;&4 :71E<F%T;W( <F5P<F5S96YT:6YG('1H92!S=&%R="!O9B!T:&4 M=7)N<R!A(&UU=&%B;&4 :71E<F%T;W( <F5P<F5S96YT:6YG('1H92!E;F0 M92!C87-E('=H97)E(&UE;6]R>2!A;&QO8V%T:6]N(&AA<R!F86EL960 :6X M=&AE(&-O;G1E>'0-"B (" O+R\ =VAE<F4 97AC97!T:6]N<R!A<F4 ;F]T M('1H<F]W;B!F;W( 86QL;V-A=&EO;B!F86EL=7)E+"!T:&ES(&UE=&AO9"!W M+R\O(&%U=&]?8G5F9F5R/#X :6YS=&%N8V4 =VEL;"!B92!S869E(&EF(&UA M9&4 :6X <F5S<&5C="!O9B!T:&4 <F%N9V4-"B (" O+R\ 9&5F:6YE9"!B M>PT*(" (" ("!R971U<FX ;5]B=69F97( *R!M7V-)=&5M<SL-"B ("!] M=&5R871I;VX-"B (" O+R\-"B (" O+R\ 7')E='5R;B!!;B!I=&5R871O M<B!R97!R97-E;G1I;F< =&AE('-T87)T(&]F('1H92!R979E<G-E('-E<75E M= T*(" ('L-"B (" (" <F5T=7)N(&-O;G-T7W)E=F5R<V5?:71E<F%T M;W(H96YD*"DI.PT*(" ('T-"B (" O+R\ 16YD<R!T:&4 <F5V97)S92!I M=&5R871I;VX-"B (" O+R\-"B (" O+R\ 7')E='5R;B!!;B!I=&5R871O M<B!R97!R97-E;G1I;F< =&AE(&5N9"!O9B!T:&4 <F5V97)S92!S97%U96YC M(" >PT*(" (" ("!R971U<FX 8V]N<W1?<F5V97)S95]I=&5R871O<BAB M=&5R871I;VX-"B (" O+R\-"B (" O+R\ 7')E='5R;B!!;B!I=&5R871O M<B!R97!R97-E;G1I;F< =&AE('-T87)T(&]F('1H92!R979E<G-E('-E<75E M(" (" (')E='5R;B!R979E<G-E7VET97)A=&]R*&5N9" I*3L-"B ("!] M92!E;F0 ;V8 =&AE(')E=F5R<V4 <V5Q=65N8V4-"B ("!R979E<G-E7VET M7VET97)A=&]R*&)E9VEN*"DI.PT*(" ('T-"B-E;F1I9B O*B!?7U-43%-/ M0'T-" T*+R\O(%QN86UE($%T=')I8G5T97,-"B\O0'L-"G!U8FQI8SH-"B M(" O+R\ 7&)R:65F(%)E='5R;G, =&AE(&YU;6)E<B!O9B!E;&5M96YT<R!I M;B!T:&4 875T;U]B=69F97(-"B (" O+R\-"B (" O+R\ 7&YO=&4 26X M=&AE(&-A<V4 =VAE<F4 ;65M;W)Y(&%L;&]C871I;VX :&%S(&9A:6QE9"!I M;B!T:&4 8V]N=&5X= T*(" ("\O+R!W:&5R92!E>&-E<'1I;VYS(&%R92!N M+R\O(&-O;G-T<G5C=&]R+"!T:&ES(&UE=&AO9"!W:6QL(')E='5R;B P+B!( M/B!A=71O7V)U9F9E<CP^(&EN<W1A;F-E('=I;&P 8F4 <V%F92!I9B!M861E M(&EN(')E<W!E8W0 ;V8-"B (" O+R\ =&AE('9A;'5E(')E='5R;F5D(&)Y M('1H:7, ;65T:&]D+ T*(" ('-I>F5?='EP92!S:7IE*"D 8V]N<W0-"B M+R\ 7&)R:65F(%)E='5R;G, =&AE(&YU;6)E<B!O9B!E;&5M96YT<R!I;B!T M:&4 875T;U]B=69F97(G<R!I;G1E<FYA;"!B=69F97(-"B ("!S=&%T:6, M<VEZ95]T>7!E(&EN=&5R;F%L7W-I>F4H*0T*(" ('L-"B (" (" <F5T M=7)N('-P86-E.PT*(" ('T-" T*(" ("\O+R!<8G)I968 26YD:6-A=&5S M:&5N(&%N(&%L;&]C871I;VX 86)O=F4 =&AE(&YU;6)E< T*(" ("\O+R!O M9B!E;&5M96YT<R!I;B!T:&4 :6YT97)N86P 87)R87D :&%S(&)E96X <F5Q M=65S=&5D+"!A;F0 9F%I;&5D+ T*(" ('-S7V)O;VQ?="!E;7!T>2 I(&-O M15A014Y3259%*0T*(" ('-T871I8R!A;&QO8V%T;W)?='EP92 F9V5T7V%L M<&4 ("!S7V%L;&]C871O<CL-" T*(" (" ("!R971U<FX <U]A;&QO8V%T M05-%7T584$5.4TE612 J+PT*(" (&%L;&]C871O<E]T>7!E(&=E=%]A;&QO M8V%T;W(H*2!C;VYS= T*(" ('L-"B (" (" <F5T=7)N("IT:&ES.PT* M(" +R\ 4&]I;G1E<B!T;R!U<V5D(&)U9F9E< T*(" ('-I>F5?='EP92 M(&U?8TET96US.R (" (" (" +R\ 3G5M8F5R(&]F(&ET96US(&EN(&)U M9F9E< T*(" ('9A;'5E7W1Y<&4 (&U?:6YT97)N86Q;<W!A8V5=.R +R\ M;VYS=" F<FAS*3L-"B ("!A=71O7V)U9F9E<B!C;VYS=" F;W!E<F%T;W( M/2AC;&%S<U]T>7!E(&-O;G-T("9R:',I.PT*?3L-" T*+RH +R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M;F1E9B!?7U-43%-/1E1?0T9?5$5-4$Q!5$5?4TA)35-?3D]47U-54%!/4E1% M(" +" ('-S7W1Y<&5N86UE7W!A<F%M7VL 00T*(" (" (" L(" <W-? M96UP='DH875T;U]B=69F97(\5"P 02P 4U!!0T4^(&-O;G-T("9B*0T*>PT* M3T947T-&7U1%35!,051%7U-(24U37TY/5%]355!03U)4140 *B\-" T*+RH M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\ *B\-" T*(VEF;F1E9B!? M4U1,4T]&5%].3U].04U%4U!!0T4-"GT +R\ ;F%M97-P86-E('-T;'-O9G0- M"B-E;F1I9B O*B!?4U1,4T]&5%].3U].04U%4U!!0T4 *B\-" T*+RH +R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\ *B\-" T*(V5N9&EF("\J("%? M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O A+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R J+PT* ` end
Mar 10 2004
Have you thought about doing a listbox or combobox sequence which includesItemData? (CListBox::SetItemData[Ptr]) Maybe defining the iterator as a pair<string,DWORD> or pair<string,T*> Just an idea... I use these a lot, that's why I'm asking...
Feb 24 2004
That's a nice idea. Let me have a think. :) btw, are you on the mailing list - http://stlsoft.org/mailing_list.html ? "Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c1grq9$2c7f$1 digitaldaemon.com...Have you thought about doing a listbox or combobox sequence which includesItemData? (CListBox::SetItemData[Ptr]) Maybe defining the iterator as a pair<string,DWORD> or pair<string,T*> Just an idea... I use these a lot, that's why I'm asking...
Feb 24 2004
I wasn't, but I'll sign up, see what you've got to offer... "Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1h546$2scu$1 digitaldaemon.com...That's a nice idea. Let me have a think. :) btw, are you on the mailing list - http://stlsoft.org/mailing_list.html ?
Feb 25 2004
Great! FYI, I'm pretty happy with the libs so far, but it's been six months since the last major release - 1.6.5. I've been promising 1.7.1 for some time, hence the betas available on the downloads page (http://stlsoft.org/downloads.html) - but we're still a little way off, due to my having too many commitments at the moment. The stuff available in the latest beta is largely what will appear, although there are several things yet to do, including your item-data enumeration. :) The main area of weakness at the moment is the documentation, which is pretty pants, if I'm honest. I'd be very happy to receive any criticisms - however negative they might be - or suggestions for improvement you might have on this. Also, I'm hoping to have a little Users' List on the site, so if you (or anyone else) use STLSoft and want to be mentioned, I'd be happy to hear how/where so I can post it. Cheers -- Matthew Wilson Director, Synesis Software (www.synesis.com.au) STLSoft moderator (http://www.stlsoft.org) Contributing editor, C/C++ Users Journal (www.synesis.com.au/articles.html#columns) ----------------------------------------------------- "Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c1iu9o$2vdt$1 digitaldaemon.com...I wasn't, but I'll sign up, see what you've got to offer... "Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1h546$2scu$1 digitaldaemon.com...?That's a nice idea. Let me have a think. :) btw, are you on the mailing list - http://stlsoft.org/mailing_list.html
Feb 25 2004
"Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1jfi0$shf$1 digitaldaemon.com...Great! FYI, I'm pretty happy with the libs so far, but it's been six months since the last major release - 1.6.5. I've been promising 1.7.1 for some time, hence the betas available on the downloads page (http://stlsoft.org/downloads.html) - but we're still a little way off,dueto my having too many commitments at the moment. The stuff available inthelatest beta is largely what will appear, although there are several things yet to do, including your item-data enumeration. :)Thanks, I've been following the C++ and D newsgroups for a while now, so, I'm kinda up to date with your current activities. BTW good luck with your book...The main area of weakness at the moment is the documentation, which is pretty pants, if I'm honest. I'd be very happy to receive any criticisms - however negative they might be - or suggestions for improvement you might have on this.That's right, the docs kinda s**k, but, I figure it's because you're trying to use a "common" documentation layout, with a library that's not quite that common... I mean, when something's documented, you usually have no more than a few overloads for the same name, while in the case of shims you've got the same name all over the place, well, that's what I think anyway... Also, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx), you could go the way that the Windows PSDK does, and just document once and state somewhere that everything has a '_a' and '_w' variantAlso, I'm hoping to have a little Users' List on the site, so if you (or anyone else) use STLSoft and want to be mentioned, I'd be happy to hear how/where so I can post it.Fine by me... only, I don't think I qualify as a user yet (since I've just yesterday started using the libraries, and just a couple of items so far)... Actually, I did download the library (back on version 1.6.3) but was kinda put off by both the docs, and the fact that what I was most interested in (the item data stuff) wasn't in it... and I didn't get around to commeting on it back then...Cheers -- Matthew Wilson Director, Synesis Software (www.synesis.com.au) STLSoft moderator (http://www.stlsoft.org) Contributing editor, C/C++ Users Journal (www.synesis.com.au/articles.html#columns)Anyway, thanks for taking the request, and I'll be happy to comment anything that I find worth commenting
Feb 25 2004
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c1jj5r$12jl$1 digitaldaemon.com..."Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1jfi0$shf$1 digitaldaemon.com...sinceGreat! FYI, I'm pretty happy with the libs so far, but it's been six monthsthingsthe last major release - 1.6.5. I've been promising 1.7.1 for some time, hence the betas available on the downloads page (http://stlsoft.org/downloads.html) - but we're still a little way off,dueto my having too many commitments at the moment. The stuff available inthelatest beta is largely what will appear, although there are severalkindayet to do, including your item-data enumeration. :)Thanks, I've been following the C++ and D newsgroups for a while now, so, I'mup to date with your current activities. BTW good luck with your book...criticisms -The main area of weakness at the moment is the documentation, which is pretty pants, if I'm honest. I'd be very happy to receive anymighthowever negative they might be - or suggestions for improvement youtryinghave on this.That's right, the docs kinda s**k, but, I figure it's because you'reto use a "common" documentation layout, with a library that's not quitethatcommon... I mean, when something's documented, you usually have no morethana few overloads for the same name, while in the case of shims you've gotthesame name all over the place, well, that's what I think anyway...Yep. It's a big problem. I'm going to have to spend a lot of time making it better, I think. :-(Also, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx), you could go the way that the Windows PSDK does, and just document once and state somewhere that everything has a '_a' and '_w' variantcanAlso, I'm hoping to have a little Users' List on the site, so if you (or anyone else) use STLSoft and want to be mentioned, I'd be happy to hear how/where so Ifar)...post it.Fine by me... only, I don't think I qualify as a user yet (since I've just yesterday started using the libraries, and just a couple of items soActually, I did download the library (back on version 1.6.3) but was kinda put off by both the docs, and the fact that what I was most interested in (the item data stuff) wasn't in it... and I didn't get around to commeting on it back then...Understood. That's clear evidence that the docs need the attention. Thanks for the feedback. Maybe when I do the new item-data classes, you can give me detailed feedback on the docs, and then I can take that and apply it elsewhere. Cheers Matthew
Feb 25 2004
Just my opinion , but I really don't like doxygen, I like the idea of = self-documenting code but all the docs I read created by Doxygen are jus= t = really hard to read, and especially to navigate. Some more examples wou= ld = be good also ;). C On Thu, 26 Feb 2004 13:30:03 +1100, Matthew <matthew.hat stlsoft.dot.org==wrote:"Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c1jj5r$12jl$1 digitaldaemon.com...s"Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1jfi0$shf$1 digitaldaemon.com...Great! FYI, I'm pretty happy with the libs so far, but it's been six month=sincethe last major release - 1.6.5. I've been promising 1.7.1 for some =time,hence the betas available on the downloads page (http://stlsoft.org/downloads.html) - but we're still a little way =e =off, dueto my having too many commitments at the moment. The stuff availabl=in thelatest beta is largely what will appear, although there are several=thingsyet to do, including your item-data enumeration. :)Thanks, I've been following the C++ and D newsgroups for a while now, so, I'm=kindaisup to date with your current activities. BTW good luck with your book...The main area of weakness at the moment is the documentation, which=criticisms -pretty pants, if I'm honest. I'd be very happy to receive anyhowever negative they might be - or suggestions for improvement you=mighttetryinghave on this.That's right, the docs kinda s**k, but, I figure it's because you'reto use a "common" documentation layout, with a library that's not qui=thatrecommon... I mean, when something's documented, you usually have no mo=thangota few overloads for the same name, while in the case of shims you've =theng =same name all over the place, well, that's what I think anyway...Yep. It's a big problem. I'm going to have to spend a lot of time maki=it better, I think. :-(youAlso, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx), =ndcould go the way that the Windows PSDK does, and just document once a=u =state somewhere that everything has a '_a' and '_w' variantAlso, I'm hoping to have a little Users' List on the site, so if yo=I(oranyone else) use STLSoft and want to be mentioned, I'd be happy to hear how/where so=can=post it.Fine by me... only, I don't think I qualify as a user yet (since I've=just yesterday started using the libraries, and just a couple of items sofar)...Actually, I did download the library (back on version 1.6.3) but was =d =kinda put off by both the docs, and the fact that what I was most intereste=in (the item data stuff) wasn't in it... and I didn't get around to =u =commeting on it back then...Understood. That's clear evidence that the docs need the attention. Thanks for the feedback. Maybe when I do the new item-data classes, yo=can give me detailed feedback on the docs, and then I can take that and =apply it elsewhere. Cheers Matthew-- = Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
Mar 01 2004
"C" <dont respond.com> wrote in message news:opr37vhqidehmtou localhost... Just my opinion , but I really don't like doxygen, I like the idea of self-documenting code but all the docs I read created by Doxygen are just really hard to read, and especially to navigate.Do you have a better suggestion? I'm always open to new things. One thing I should think about doing is tailoring the styles and all that stuff, but it's a time thing ...Some more examples would be good also ;).Thanks for the info. I'll bear it in mind Cheers MatthewOn Thu, 26 Feb 2004 13:30:03 +1100, Matthew <matthew.hat stlsoft.dot.org> wrote:is"Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c1jj5r$12jl$1 digitaldaemon.com..."Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1jfi0$shf$1 digitaldaemon.com...sinceGreat! FYI, I'm pretty happy with the libs so far, but it's been six monthsthingsthe last major release - 1.6.5. I've been promising 1.7.1 for sometime,hence the betas available on the downloads page (http://stlsoft.org/downloads.html) - but we're still a little wayoff, dueto my having too many commitments at the moment. The stuff availablein thelatest beta is largely what will appear, although there are severalkindayet to do, including your item-data enumeration. :)Thanks, I've been following the C++ and D newsgroups for a while now, so, I'mup to date with your current activities. BTW good luck with your book...The main area of weakness at the moment is the documentation, whichgotcriticisms -pretty pants, if I'm honest. I'd be very happy to receive anymighthowever negative they might be - or suggestions for improvement youtryinghave on this.That's right, the docs kinda s**k, but, I figure it's because you'reto use a "common" documentation layout, with a library that's not quitethatcommon... I mean, when something's documented, you usually have no morethana few overloads for the same name, while in the case of shims you'veyouthesame name all over the place, well, that's what I think anyway...Yep. It's a big problem. I'm going to have to spend a lot of time making it better, I think. :-(Also, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx),-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/could go the way that the Windows PSDK does, and just document once and state somewhere that everything has a '_a' and '_w' variantcanAlso, I'm hoping to have a little Users' List on the site, so if you(oranyone else) use STLSoft and want to be mentioned, I'd be happy to hear how/where so Ifar)...post it.Fine by me... only, I don't think I qualify as a user yet (since I've just yesterday started using the libraries, and just a couple of items soActually, I did download the library (back on version 1.6.3) but was kinda put off by both the docs, and the fact that what I was most interested in (the item data stuff) wasn't in it... and I didn't get around to commeting on it back then...Understood. That's clear evidence that the docs need the attention. Thanks for the feedback. Maybe when I do the new item-data classes, you can give me detailed feedback on the docs, and then I can take that and apply it elsewhere. Cheers Matthew
Mar 01 2004
What about just the .chm approach ? It is very time consuming though , = and the free help tools out there leave alot to be desired http://www.accviz.com/?src=3Dhm Is an OK tool , has .chm plus HTML online browsable stuff. C On Tue, 2 Mar 2004 14:07:23 +1100, Matthew <matthew.hat stlsoft.dot.org>= = wrote:"C" <dont respond.com> wrote in message =news:opr37vhqidehmtou localhost... Just my opinion , but I really don't like doxygen, I like the idea of=self-documenting code but all the docs I read created by Doxygen are =hatjust really hard to read, and especially to navigate.Do you have a better suggestion? I'm always open to new things. One thing I should think about doing is tailoring the styles and all t=stuff, but it's a time thing ...Some more examples would be good also ;).Thanks for the info. I'll bear it in mind Cheers MatthewOn Thu, 26 Feb 2004 13:30:03 +1100, Matthew =<matthew.hat stlsoft.dot.org> wrote:"Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c1jj5r$12jl$1 digitaldaemon.com..."Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1jfi0$shf$1 digitaldaemon.com...Great! FYI, I'm pretty happy with the libs so far, but it's been six =memonthssincethe last major release - 1.6.5. I've been promising 1.7.1 for so=aytime,hence the betas available on the downloads page (http://stlsoft.org/downloads.html) - but we're still a little w=off, dueto my having too many commitments at the moment. The stuff =ralavailablein thelatest beta is largely what will appear, although there are seve=I'mthingsyet to do, including your item-data enumeration. :)Thanks, I've been following the C++ and D newsgroups for a while now, so, =ichkindaup to date with your current activities. BTW good luck with your book...The main area of weakness at the moment is the documentation, wh=isyoucriticisms -pretty pants, if I'm honest. I'd be very happy to receive anyhowever negative they might be - or suggestions for improvement =remighthave on this.That's right, the docs kinda s**k, but, I figure it's because you'=tryingto use a "common" documentation layout, with a library that's not ==quitethatcommon... I mean, when something's documented, you usually have no=vemorethana few overloads for the same name, while in the case of shims you'=gotthesame name all over the place, well, that's what I think anyway...Yep. It's a big problem. I'm going to have to spend a lot of time =),makingit better, I think. :-(Also, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx=youe =could go the way that the Windows PSDK does, and just document onc==andstate somewhere that everything has a '_a' and '_w' variantAlso, I'm hoping to have a little Users' List on the site, so if==you(oranyone else) use STLSoft and want to be mentioned, I'd be happy to hear how/where='veso Icanpost it.Fine by me... only, I don't think I qualify as a user yet (since I=sojust yesterday started using the libraries, and just a couple of items =asfar)...Actually, I did download the library (back on version 1.6.3) but w=kinda put off by both the docs, and the fact that what I was most =interestedin (the item data stuff) wasn't in it... and I didn't get around to commeting on it back then...Understood. That's clear evidence that the docs need the attention.==Thanks for the feedback. Maybe when I do the new item-data classes,=youcan give me detailed feedback on the docs, and then I can take that and=2/apply it elsewhere. Cheers Matthew-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m=-- = Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
Mar 02 2004
I already do use chm, as part of the Doxygen preparation, available in a separate zip from http://stlsoft.org/downloads.html. I guess this may not be precisely what you want, but there's no way I'm ever going to have the time to devote to preparing all the help files manually. There's only me, you know! ;) Matthew "C" <dont respond.com> wrote in message news:opr375xfneehmtou localhost... What about just the .chm approach ? It is very time consuming though , and the free help tools out there leave alot to be desired http://www.accviz.com/?src=hm Is an OK tool , has .chm plus HTML online browsable stuff. C On Tue, 2 Mar 2004 14:07:23 +1100, Matthew <matthew.hat stlsoft.dot.org> wrote:-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/"C" <dont respond.com> wrote in message news:opr37vhqidehmtou localhost... Just my opinion , but I really don't like doxygen, I like the idea of self-documenting code but all the docs I read created by Doxygen are just really hard to read, and especially to navigate.Do you have a better suggestion? I'm always open to new things. One thing I should think about doing is tailoring the styles and all that stuff, but it's a time thing ...Some more examples would be good also ;).Thanks for the info. I'll bear it in mind Cheers MatthewOn Thu, 26 Feb 2004 13:30:03 +1100, Matthew <matthew.hat stlsoft.dot.org> wrote:is"Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c1jj5r$12jl$1 digitaldaemon.com...months"Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1jfi0$shf$1 digitaldaemon.com...Great! FYI, I'm pretty happy with the libs so far, but it's been sixsinceavailablethe last major release - 1.6.5. I've been promising 1.7.1 for sometime,hence the betas available on the downloads page (http://stlsoft.org/downloads.html) - but we're still a little wayoff, dueto my having too many commitments at the moment. The stuffin thethingslatest beta is largely what will appear, although there are severalkindayet to do, including your item-data enumeration. :)Thanks, I've been following the C++ and D newsgroups for a while now, so, I'mup to date with your current activities. BTW good luck with your book...The main area of weakness at the moment is the documentation, whichgotquitecriticisms -pretty pants, if I'm honest. I'd be very happy to receive anymighthowever negative they might be - or suggestions for improvement youtryinghave on this.That's right, the docs kinda s**k, but, I figure it's because you'reto use a "common" documentation layout, with a library that's notthatmorecommon... I mean, when something's documented, you usually have nothana few overloads for the same name, while in the case of shims you'veyouthemakingsame name all over the place, well, that's what I think anyway...Yep. It's a big problem. I'm going to have to spend a lot of timeit better, I think. :-(Also, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx),andcould go the way that the Windows PSDK does, and just document onceyoustate somewhere that everything has a '_a' and '_w' variantAlso, I'm hoping to have a little Users' List on the site, so ifso I(oranyone else) use STLSoft and want to be mentioned, I'd be happy to hear how/wherecaninterestedfar)...post it.Fine by me... only, I don't think I qualify as a user yet (since I've just yesterday started using the libraries, and just a couple of items soActually, I did download the library (back on version 1.6.3) but was kinda put off by both the docs, and the fact that what I was mostyouin (the item data stuff) wasn't in it... and I didn't get around to commeting on it back then...Understood. That's clear evidence that the docs need the attention. Thanks for the feedback. Maybe when I do the new item-data classes,can give me detailed feedback on the docs, and then I can take that and apply it elsewhere. Cheers Matthew-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
Mar 02 2004
On Tue, 2 Mar 2004 20:45:09 +1100, Matthew <matthew.hat stlsoft.dot.org> wrote:I already do use chm, as part of the Doxygen preparation, available in a separate zip from http://stlsoft.org/downloads.html. I guess this may not be precisely what you want, but there's no way I'm ever going to have the time to devote to preparing all the help files manually. There's only me, you know! ;)Look into http://python.planetmirror.com/sigs/doc-sig/otherlangs.html. In particular, I've heard good things about Synopsis (though never used it). Cheers, Niall
Mar 02 2004
I've just started playing with the clipboard, and thought of an idea you might be interested in: RAII classes for the clipboard (OpenClipboard/CloseClipboard pair) and HGLOBAL locking (GlobalLock/GlobalUnlock pair, maybe something like hg_lock<T>(HGLOBAL hg) )
Mar 04 2004
I just finished writing both, let me know if you're interestedI've just started playing with the clipboard, and thought of an idea you might be interested in: RAII classes for the clipboard (OpenClipboard/CloseClipboard pair) and HGLOBAL locking (GlobalLock/GlobalUnlock pair, maybe something like hg_lock<T>(HGLOBALhg) )
Mar 04 2004
Sure. Great! Send 'em in. I'll take a look at them, and probably do another beta next week. (I expect to release 1.7.1 before the end of this month.) I'll send you any changes in private before we agree to incorporate them into the libraries. :) Cheers Matthew "Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c28o0n$2bqr$1 digitaldaemon.com...I just finished writing both, let me know if you're interestedI've just started playing with the clipboard, and thought of an idea you might be interested in: RAII classes for the clipboard (OpenClipboard/CloseClipboard pair) and HGLOBAL locking (GlobalLock/GlobalUnlock pair, maybe something like hg_lock<T>(HGLOBALhg) )
Mar 04 2004
Here they are then... Comments are more than welcome... don't know about portability issues, I just did 'em in VC6, tested, worked... I'm happy... but, like I said, comments are greatly appreciated Here's a small sample of how to use 'em: void MyWindow::OnSomething() { std::string text; { clip_lock<CF_TEXT> cl(m_hWnd); if( cl ) { hg_lock<LPCTSTR> str(::GetClipboardData(cl.requested_type())); if( str.locked() ) text = str; } } } "Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c28qkc$2gbj$1 digitaldaemon.com...Sure. Great! Send 'em in. I'll take a look at them, and probably do another beta next week. (I expect to release 1.7.1 before the end of this month.) I'll send you any changes in private before we agree to incorporate them into the libraries. :) Cheers Matthewbegin 666 clipboard_lock.h M(VEF;F1E9B!?7T-,25!"3T%21%],3T-+7TA?7TE.0TQ51$5$7U\-"B-D969I M;B!I;B!T:&4 :&5A< T*"2\O+R\ *&-A;B!B92!W;W)K960 87)O=6YD('=I M=& .CIN97< ;V8 8V]U<G-E*0T*"6-L87-S(&YO:&5A< T*"7L-" EP<FEV M871E. T*"2 ('9O:60J(&]P97)A=&]R(&YE=RAS:7IE7W0I.PT*"2 ('9O M8W5S=&]M(&5X8V5P=&EO; T*"6-L87-S(&-L:7!B;V%R9%]L;V-K7V5X8V5P M=&EO; T*"0DZ('!U8FQI8R!S=&0Z.F5X8V5P=&EO; T*"7L-" EP=6)L:6,Z M<F1?;&]C:U]E>&-E<'1I;VXF(')H<RD =&AR;W<H*0T*"0D).B!S=&0Z.F5X M:V5D5'EP93X-" D)<W1A=&EC('9O:60 8VAE8VLH0VAE8VME9%1Y<&4 <'1R M+R!);F=O<F5S(&9A:6QU<F4L('=H:6-H(&-A;B!B92!C:&5C:V5D(&QA=&5R M('1Y<&5N86UE($-H96-K:6YG4&]L:6-Y(#T 1F%I;$]K/ T*"6-L87-S(&-L M:7!?;&]C:PT*"0DZ('!U8FQI8R!B;V]S=#HZ;F]N8V]P>6%B;&4-" D)+"!P M<T-L:7!B;V%R9$9O<FUA=$%V86EL86)L92A$871A5'EP92D *0T*"0D)"6U? M8DQO8VME9" ]("A/<&5N0VQI<&)O87)D*&A/=VYE<BD (3T 1D%,4T4I.PT* M:6Q/:SX-" EC;&%S<R!C;&EP7VQO8VM?97 -" D).B!P=6)L:6, 8F]O<W0Z M"0DZ(&U?8DQO8VME9"AF86QS92D-" D)"2P ;5]U:51Y<&4H3E5,3"D-" D) M>PT*"0D)271E<F%T;W( 870 /2!S=&0Z.F9I;F1?:68H:70L(&5N9"P <W1D M.CIP=')?9G5N*"9)<T-L:7!B;V%R9$9O<FUA=$%V86EL86)L92DI.PT*"0D) M93QT>7!E;F%M92!0;VEN=&5R5'EP90T*"0DL(&-L87-S($-H96-K:6YG4&]L M:6-Y(#T 1F%I;$]K/ T*"6-L87-S(&AG7VQO8VL-" D).B!P=6)L:6, 8F]O M7V-A<W0\4&]I;G1E<E1Y<&4^*$=L;V)A;$QO8VLH:&<I*2D-" D)"2P ;5]H M9RAH9RD-" D)"7L 0VAE8VMI;F=0;VQI8WDZ.F-H96-K*&U?<'1R*3L ?0T* M+R\ 4VAO=6QD('1H:7, 8F4 :&5R93\-" D)"0DO+R!O<B!S:&]U;&0 :70 M8F4 <&%R="!O9B!C:&5C:VEN9R!P;VQI8WD =&]O/PT*"0D)"2\O87-S97)T M<F%T;W( 4&]I;G1E<E1Y<&4H*2!C;VYS= T*"0D)>R!R971U<FX ;5]P='([ ` end
Mar 05 2004
If anyone would be interested in putting there C++, STL, Unix and Kernel skills to use in return for £75k package then please call Charlie on 01273 200300 to find out more. In article <c01k16$8sf$1 digitaldaemon.com>, Matthew says...Hi everyone [First, apologies to any D folks who do not use, and aren't interested in, C++/STL/STLSoft. It's just that there are so many good ideas in there, that I wanted to snag any that might be transferable over to STLSoft.] STLSoft v1.7.1 will be released within the next 4-6 weeks, and it's the last chance for getting in any feature requests. Available now from the STLSoft main site - http://stlsoft.org/ - is STLSoft v1.7.1 beta 3 (stlsoft_1_7_1_beta3.zip), containing much of what will constitute the final 1.7.1 release. To whet your appetite, I'm including a list of additions and a list of changes to the libraries at the end of this post. Many of these appear in my book "Imperfect C++" which will be out later in the year. As yet, the documentation has not had any new work. I'd *really* appreciate any suggestions for improvements for the documentation, as I know it's the Achilles' Heel of the project. From the feedback I've had, this is the only area of the libraries that is putting people off from using them more. If anyone wants to volunteer to help out on this, it'd be fantastic. (Sounds of thousands of people taking a step back ...) Thanks for listening. Please feel free to post any questions via the FAQ website (http://stlsoft.gregpeet.com/). Cheers (changes & additions follow below:) Matthew Wilson Director, Synesis Software (www.synesis.com.au) STLSoft moderator (http://www.stlsoft.org) Contributing editor, C/C++ Users Journal (www.synesis.com.au/articles.html#columns) ----------------------------------------------------- ADDITIONS ========== The additions to the libraries are as follows: General Many of the standard-offending symbols with leading underscores have been changed. I intend to do the rest before the final release Compilers Intel 8.0 CodePlay VectorC 2.06 Comeau 4.3.3. (not quite complete yet, though ;)) GCC v3+ now supported for COMSTL STLSoft (v1.6.5 => 1.7.1) array_proxy template class - type-safe & size-safe aid for passing arrays of object types to functions. Controls passing of derived arrays in a safe manner explicit_cast template class - implements explicit conversion operators fast_string_concatenator template class - a helper class for implementing fast, non-intrusive, string concatenation (Featured in Imperfect C++, and in the article "Fast, Non-Intrusive String Concatenation" in April's CUJ) basic_fixed_substring template class - provides a non-resizable "view" onto a part of an existing string, useful for high efficiency string manipulation literal_cast template class - used to provide type-to-range validation of literal constants Meta Programming Constructs - including is_pointer_type<>, is_array_type<>, is_convertible_to_bool<>, is_numeric_type<>, is_integral_type<>, is_bool_type<>, is_void_type<>, is_fundamental_type<>, is_compound_type<>, is_class_type<>, is_const<>, is_volatile<>, (void-able) size_of<>, is_same_type<>, has_value_type<>, has_iterator<>, has_const_iterator<> pod_vector template class - highly efficient vector for POD types (only) proxy_sequence template class - highly efficient pseudo-sequence, for layering on top of arrays with providing parameterisable value_type. Size Traits - providing type-definitions of signed and unsigned types of a corresponding bit-size Type Traits - for a given type: providing is_pointer, is_reference, is_const and is_volatile attributes; defining two pointer/reference-stripped types: the base_type (non-cv-qualified) and cv_type (cv-qualifiers retained) unused_return_value_monitor template class - used for detecting when a potentially expensive return value is not used; ideal for post-increment operators; has parameterisable "failure" policy stlsoft.h: STLSOFT_DECLARE_TEMPLATE_PARAM_AS_FRIEND(), STLSOFT_SUPPRESS_UNUSED() ATLSTL (v1.2.8 => 1.3.1) ccombstr_veneer template adaptor class - makes CComBSTR conformant to the STL String concept SupportErrorInfoImpl / SupportErrorInfoImpl2 / SupportErrorInfoImpl3 template classes - simple ATL template that provides ISupportErrorInfo implementation COMSTL (v1.2.5 => 1.4.1) collection_sequence template class - maps COM Collections to STL-like sequence set_error_info() function - sets the calling thread's error-info for a given description string interface_ptr template class - smart-enough interface pointer class MFCSTL (v1.3.4 => 1.3.5) no additions UNIXSTL (v1.0.3 => 1.1.1) basic_current_directory template class - provides access to current directory in string form basic_environment_variable template class - provides access to a given environment value in string form compare_path template function object - compares file-system paths via fully-qualified path form process_mutex class spin_mutex class thread_mutex class WinSTL (v1.3.7 => 1.4.1) acl_sequence class - provides STL-like sequence semantics over Access Control Lists Atomic Functions - a suite of functions that provide optimal performance for single-processor/SMP/mixed Intel processors using inline assembler clipboard_format_sequence class - provides STL-like sequence semantics over the system's supported clipboard formats basic_error_desc template class - provides access to the string form of a given Win32 Error Code last_error_scope - provides scoping of last error code, for maintaining correct state when doing intermediate error processing event class - a thin wrapper for the Win32 event kernel synchronisation kernel object listview_sequence class - provides STL-like sequence semantics over the items in a ListView common control basic_module_directory template class - provides access to a given (or the calling process's) module's directory process_mutex class setcursor_scope class - provides scoping of the cursor setfocus_scope class - provides scoping of the window with the focus Time Functions - functions to convert between time_t and FILETIME token_information template class - type-safe, resource-managed accessor class to token information (via GetTokenInformation()) window_text_scope template class - provides scoping of a window's text CHANGES ======== The changes to the libraries are as follows: STLSoft (v1.6.5 => 1.7.1) auto_buffer - it's now resizable, without any loss of efficiency. This supports the new pod_vector template class minor rationalisations to char_traits Renaming of constraits: has_base => must_have_base, is_veneer => must_be_same_size, type_is_non_class_or_trivial_class => must_be_pod fixed_array_d1/2d/3d/4d template classes - improved efficiency, by using an additional template parameter to determine, at compile-time, whether slices "own" their memory; previously this was achieved at runtme by a member variable frame_array_1d/2d/3d/4d renamed to static_array_1d/2d/3d/4d frame_string: bug fixes sign_traits: bug fixes; addition of "bytes" member value simple_string: bug fixes; improvements in performance ATLSTL (v1.2.8 => 1.3.1) COMSTL (v1.2.5 => 1.4.1) simplification of interface_cast; addition of interface_cast_test enum_sequence - this has simplified, and now only has three non-default parameters for the template MFCSTL (v1.3.4 => 1.3.5) minor enhancements to cstring_veneer UNIXSTL (v1.0.3 => 1.1.1) findfile_sequence renamed to glob_sequence (findfile_sequence is retained for backwards compatibility) tls_index renamed to tss_index (tls_index is retained for backwards compatibility) filesystem_traits: lots of new features readdir_sequence: now supports flags "includeDots", "directories" and "files" WinSTL (v1.3.7 => 1.4.1) ansi2Unicode & unicode2Ansi templates now have a second ctor which takes a length filesystem_traits: addition of file_exists() method findfile_sequence now correctly implements InputIterator semantics, and works correctly when iterators incremented in both prefix and postfix forms findvolume_sequence: same as for findfile_sequence performance_counter_init renamed to performance_counter_initialiser
Aug 26 2004
This kind of post is neither appropriate nor welcome on these forums. Hopefully the admin will delete it shortly <ctillman rdfgroup.com> wrote in message news:cgka9p$4cs$1 digitaldaemon.com...If anyone would be interested in putting there C++, STL, Unix and Kernel skills to use in return for £75k package then please call Charlie on 01273 200300 to find out more. In article <c01k16$8sf$1 digitaldaemon.com>, Matthew says...Hi everyone [First, apologies to any D folks who do not use, and aren't interested in, C++/STL/STLSoft. It's just that there are so many good ideas in there, that I wanted to snag any that might be transferable over to STLSoft.] STLSoft v1.7.1 will be released within the next 4-6 weeks, and it's the last chance for getting in any feature requests. Available now from the STLSoft main site - http://stlsoft.org/ - is STLSoft v1.7.1 beta 3 (stlsoft_1_7_1_beta3.zip), containing much of what will constitute the final 1.7.1 release. To whet your appetite, I'm including a list of additions and a list of changes to the libraries at the end of this post. Many of these appear in my book "Imperfect C++" which will be out later in the year. As yet, the documentation has not had any new work. I'd *really* appreciate any suggestions for improvements for the documentation, as I know it's the Achilles' Heel of the project. From the feedback I've had, this is the only area of the libraries that is putting people off from using them more. If anyone wants to volunteer to help out on this, it'd be fantastic. (Sounds of thousands of people taking a step back ...) Thanks for listening. Please feel free to post any questions via the FAQ website (http://stlsoft.gregpeet.com/). Cheers (changes & additions follow below:) Matthew Wilson Director, Synesis Software (www.synesis.com.au) STLSoft moderator (http://www.stlsoft.org) Contributing editor, C/C++ Users Journal (www.synesis.com.au/articles.html#columns) ----------------------------------------------------- ADDITIONS ========== The additions to the libraries are as follows: General Many of the standard-offending symbols with leading underscores have been changed. I intend to do the rest before the final release Compilers Intel 8.0 CodePlay VectorC 2.06 Comeau 4.3.3. (not quite complete yet, though ;)) GCC v3+ now supported for COMSTL STLSoft (v1.6.5 => 1.7.1) array_proxy template class - type-safe & size-safe aid for passing arrays of object types to functions. Controls passing of derived arrays in a safe manner explicit_cast template class - implements explicit conversion operators fast_string_concatenator template class - a helper class for implementing fast, non-intrusive, string concatenation (Featured in Imperfect C++, and in the article "Fast, Non-Intrusive String Concatenation" in April's CUJ) basic_fixed_substring template class - provides a non-resizable "view" onto a part of an existing string, useful for high efficiency string manipulation literal_cast template class - used to provide type-to-range validation of literal constants Meta Programming Constructs - including is_pointer_type<>, is_array_type<>, is_convertible_to_bool<>, is_numeric_type<>, is_integral_type<>, is_bool_type<>, is_void_type<>, is_fundamental_type<>, is_compound_type<>, is_class_type<>, is_const<>, is_volatile<>, (void-able) size_of<>, is_same_type<>, has_value_type<>, has_iterator<>, has_const_iterator<> pod_vector template class - highly efficient vector for POD types (only) proxy_sequence template class - highly efficient pseudo-sequence, for layering on top of arrays with providing parameterisable value_type. Size Traits - providing type-definitions of signed and unsigned types of a corresponding bit-size Type Traits - for a given type: providing is_pointer, is_reference, is_const and is_volatile attributes; defining two pointer/reference-stripped types: the base_type (non-cv-qualified) and cv_type (cv-qualifiers retained) unused_return_value_monitor template class - used for detecting when a potentially expensive return value is not used; ideal for post-increment operators; has parameterisable "failure" policy stlsoft.h: STLSOFT_DECLARE_TEMPLATE_PARAM_AS_FRIEND(), STLSOFT_SUPPRESS_UNUSED() ATLSTL (v1.2.8 => 1.3.1) ccombstr_veneer template adaptor class - makes CComBSTR conformant to the STL String concept SupportErrorInfoImpl / SupportErrorInfoImpl2 / SupportErrorInfoImpl3 template classes - simple ATL template that provides ISupportErrorInfo implementation COMSTL (v1.2.5 => 1.4.1) collection_sequence template class - maps COM Collections to STL-like sequence set_error_info() function - sets the calling thread's error-info for a given description string interface_ptr template class - smart-enough interface pointer class MFCSTL (v1.3.4 => 1.3.5) no additions UNIXSTL (v1.0.3 => 1.1.1) basic_current_directory template class - provides access to current directory in string form basic_environment_variable template class - provides access to a given environment value in string form compare_path template function object - compares file-system paths via fully-qualified path form process_mutex class spin_mutex class thread_mutex class WinSTL (v1.3.7 => 1.4.1) acl_sequence class - provides STL-like sequence semantics over Access Control Lists Atomic Functions - a suite of functions that provide optimal performance for single-processor/SMP/mixed Intel processors using inline assembler clipboard_format_sequence class - provides STL-like sequence semantics over the system's supported clipboard formats basic_error_desc template class - provides access to the string form of a given Win32 Error Code last_error_scope - provides scoping of last error code, for maintaining correct state when doing intermediate error processing event class - a thin wrapper for the Win32 event kernel synchronisation kernel object listview_sequence class - provides STL-like sequence semantics over the items in a ListView common control basic_module_directory template class - provides access to a given (or the calling process's) module's directory process_mutex class setcursor_scope class - provides scoping of the cursor setfocus_scope class - provides scoping of the window with the focus Time Functions - functions to convert between time_t and FILETIME token_information template class - type-safe, resource-managed accessor class to token information (via GetTokenInformation()) window_text_scope template class - provides scoping of a window's text CHANGES ======== The changes to the libraries are as follows: STLSoft (v1.6.5 => 1.7.1) auto_buffer - it's now resizable, without any loss of efficiency. This supports the new pod_vector template class minor rationalisations to char_traits Renaming of constraits: has_base => must_have_base, is_veneer => must_be_same_size, type_is_non_class_or_trivial_class => must_be_pod fixed_array_d1/2d/3d/4d template classes - improved efficiency, by using an additional template parameter to determine, at compile-time, whether slices "own" their memory; previously this was achieved at runtme by a member variable frame_array_1d/2d/3d/4d renamed to static_array_1d/2d/3d/4d frame_string: bug fixes sign_traits: bug fixes; addition of "bytes" member value simple_string: bug fixes; improvements in performance ATLSTL (v1.2.8 => 1.3.1) COMSTL (v1.2.5 => 1.4.1) simplification of interface_cast; addition of interface_cast_test enum_sequence - this has simplified, and now only has three non-default parameters for the template MFCSTL (v1.3.4 => 1.3.5) minor enhancements to cstring_veneer UNIXSTL (v1.0.3 => 1.1.1) findfile_sequence renamed to glob_sequence (findfile_sequence is retained for backwards compatibility) tls_index renamed to tss_index (tls_index is retained for backwards compatibility) filesystem_traits: lots of new features readdir_sequence: now supports flags "includeDots", "directories" and "files" WinSTL (v1.3.7 => 1.4.1) ansi2Unicode & unicode2Ansi templates now have a second ctor which takes a length filesystem_traits: addition of file_exists() method findfile_sequence now correctly implements InputIterator semantics, and works correctly when iterators incremented in both prefix and postfix forms findvolume_sequence: same as for findfile_sequence performance_counter_init renamed to performance_counter_initialiser
Aug 26 2004
If anyone would be interested in putting there C++, STL, Unix and Kernel skills to use in return for £75k package then please call Charlie on 01273 200300 to find out more. In article <c01k16$8sf$1 digitaldaemon.com>, Matthew says...Hi everyone [First, apologies to any D folks who do not use, and aren't interested in, C++/STL/STLSoft. It's just that there are so many good ideas in there, that I wanted to snag any that might be transferable over to STLSoft.] STLSoft v1.7.1 will be released within the next 4-6 weeks, and it's the last chance for getting in any feature requests. Available now from the STLSoft main site - http://stlsoft.org/ - is STLSoft v1.7.1 beta 3 (stlsoft_1_7_1_beta3.zip), containing much of what will constitute the final 1.7.1 release. To whet your appetite, I'm including a list of additions and a list of changes to the libraries at the end of this post. Many of these appear in my book "Imperfect C++" which will be out later in the year. As yet, the documentation has not had any new work. I'd *really* appreciate any suggestions for improvements for the documentation, as I know it's the Achilles' Heel of the project. From the feedback I've had, this is the only area of the libraries that is putting people off from using them more. If anyone wants to volunteer to help out on this, it'd be fantastic. (Sounds of thousands of people taking a step back ...) Thanks for listening. Please feel free to post any questions via the FAQ website (http://stlsoft.gregpeet.com/). Cheers (changes & additions follow below:) Matthew Wilson Director, Synesis Software (www.synesis.com.au) STLSoft moderator (http://www.stlsoft.org) Contributing editor, C/C++ Users Journal (www.synesis.com.au/articles.html#columns) ----------------------------------------------------- ADDITIONS ========== The additions to the libraries are as follows: General Many of the standard-offending symbols with leading underscores have been changed. I intend to do the rest before the final release Compilers Intel 8.0 CodePlay VectorC 2.06 Comeau 4.3.3. (not quite complete yet, though ;)) GCC v3+ now supported for COMSTL STLSoft (v1.6.5 => 1.7.1) array_proxy template class - type-safe & size-safe aid for passing arrays of object types to functions. Controls passing of derived arrays in a safe manner explicit_cast template class - implements explicit conversion operators fast_string_concatenator template class - a helper class for implementing fast, non-intrusive, string concatenation (Featured in Imperfect C++, and in the article "Fast, Non-Intrusive String Concatenation" in April's CUJ) basic_fixed_substring template class - provides a non-resizable "view" onto a part of an existing string, useful for high efficiency string manipulation literal_cast template class - used to provide type-to-range validation of literal constants Meta Programming Constructs - including is_pointer_type<>, is_array_type<>, is_convertible_to_bool<>, is_numeric_type<>, is_integral_type<>, is_bool_type<>, is_void_type<>, is_fundamental_type<>, is_compound_type<>, is_class_type<>, is_const<>, is_volatile<>, (void-able) size_of<>, is_same_type<>, has_value_type<>, has_iterator<>, has_const_iterator<> pod_vector template class - highly efficient vector for POD types (only) proxy_sequence template class - highly efficient pseudo-sequence, for layering on top of arrays with providing parameterisable value_type. Size Traits - providing type-definitions of signed and unsigned types of a corresponding bit-size Type Traits - for a given type: providing is_pointer, is_reference, is_const and is_volatile attributes; defining two pointer/reference-stripped types: the base_type (non-cv-qualified) and cv_type (cv-qualifiers retained) unused_return_value_monitor template class - used for detecting when a potentially expensive return value is not used; ideal for post-increment operators; has parameterisable "failure" policy stlsoft.h: STLSOFT_DECLARE_TEMPLATE_PARAM_AS_FRIEND(), STLSOFT_SUPPRESS_UNUSED() ATLSTL (v1.2.8 => 1.3.1) ccombstr_veneer template adaptor class - makes CComBSTR conformant to the STL String concept SupportErrorInfoImpl / SupportErrorInfoImpl2 / SupportErrorInfoImpl3 template classes - simple ATL template that provides ISupportErrorInfo implementation COMSTL (v1.2.5 => 1.4.1) collection_sequence template class - maps COM Collections to STL-like sequence set_error_info() function - sets the calling thread's error-info for a given description string interface_ptr template class - smart-enough interface pointer class MFCSTL (v1.3.4 => 1.3.5) no additions UNIXSTL (v1.0.3 => 1.1.1) basic_current_directory template class - provides access to current directory in string form basic_environment_variable template class - provides access to a given environment value in string form compare_path template function object - compares file-system paths via fully-qualified path form process_mutex class spin_mutex class thread_mutex class WinSTL (v1.3.7 => 1.4.1) acl_sequence class - provides STL-like sequence semantics over Access Control Lists Atomic Functions - a suite of functions that provide optimal performance for single-processor/SMP/mixed Intel processors using inline assembler clipboard_format_sequence class - provides STL-like sequence semantics over the system's supported clipboard formats basic_error_desc template class - provides access to the string form of a given Win32 Error Code last_error_scope - provides scoping of last error code, for maintaining correct state when doing intermediate error processing event class - a thin wrapper for the Win32 event kernel synchronisation kernel object listview_sequence class - provides STL-like sequence semantics over the items in a ListView common control basic_module_directory template class - provides access to a given (or the calling process's) module's directory process_mutex class setcursor_scope class - provides scoping of the cursor setfocus_scope class - provides scoping of the window with the focus Time Functions - functions to convert between time_t and FILETIME token_information template class - type-safe, resource-managed accessor class to token information (via GetTokenInformation()) window_text_scope template class - provides scoping of a window's text CHANGES ======== The changes to the libraries are as follows: STLSoft (v1.6.5 => 1.7.1) auto_buffer - it's now resizable, without any loss of efficiency. This supports the new pod_vector template class minor rationalisations to char_traits Renaming of constraits: has_base => must_have_base, is_veneer => must_be_same_size, type_is_non_class_or_trivial_class => must_be_pod fixed_array_d1/2d/3d/4d template classes - improved efficiency, by using an additional template parameter to determine, at compile-time, whether slices "own" their memory; previously this was achieved at runtme by a member variable frame_array_1d/2d/3d/4d renamed to static_array_1d/2d/3d/4d frame_string: bug fixes sign_traits: bug fixes; addition of "bytes" member value simple_string: bug fixes; improvements in performance ATLSTL (v1.2.8 => 1.3.1) COMSTL (v1.2.5 => 1.4.1) simplification of interface_cast; addition of interface_cast_test enum_sequence - this has simplified, and now only has three non-default parameters for the template MFCSTL (v1.3.4 => 1.3.5) minor enhancements to cstring_veneer UNIXSTL (v1.0.3 => 1.1.1) findfile_sequence renamed to glob_sequence (findfile_sequence is retained for backwards compatibility) tls_index renamed to tss_index (tls_index is retained for backwards compatibility) filesystem_traits: lots of new features readdir_sequence: now supports flags "includeDots", "directories" and "files" WinSTL (v1.3.7 => 1.4.1) ansi2Unicode & unicode2Ansi templates now have a second ctor which takes a length filesystem_traits: addition of file_exists() method findfile_sequence now correctly implements InputIterator semantics, and works correctly when iterators incremented in both prefix and postfix forms findvolume_sequence: same as for findfile_sequence performance_counter_init renamed to performance_counter_initialiser
Aug 26 2004