throbber

`
`D DEVELOPERs .IounNAI.
`I The Magazine for Windows Programmers
`
`. A More Accurate Timing Tool
`I A Palette Spy Tool
`
`
`
`
`
`
`
`sChecIIerIi
`I
`-
`I
`IndsChecII:3ug++ 0f the Month H!
`.IIisucII CH
`
`Compiler Benchmark: InIiningT’
`Wilding. Win32 ”us. the High! WaII__--.
`
`533:; The Missing @9 _
`
`IIIIIIII Warning Message
`y Ugs
`illreleoseifi’reCh Tips
`__
`Combaboxes In Toolbars I
`_'....................
`
`er” Understanding NT
`...................
`I
`
`31E inierlwi
`IIIIIIIIIII Debugging Services
`
`WMIBooks in Brief
`
`Mfg“: The MindShare Series,
`I
`.Delphi and more
`
`me”
`
`'
`
`Io order!
`are 0wa h’
`IICIIecIII3
`n/bid'fldh
`
`Volume "I. Numbers
`
`
`
`
`
`
`
`
`
`IIIIIIIIII'nonIM'I? o
`
`
`
`
`
`
`.
`
`_ .esma‘flmwnWEmm;
`
`Toshiba_Apricorn 1012-0001
`Toshiba_Apricorn 1012-0001
`IPR2018-01067
`|PR2018—01067
`
`

`

`i
`
`
`
`Wll‘ldOWS’
`D DEVELOPERS JounNAL
`The Magazine for Windows Programmers
`
`Features
`
`
`
`.
`.
`.
`.
`. . . .
`A Palette Spy Utility ..... .
`Using an identity patette is essentiat for test graphics, but how can you be sure yon got
`need
`it right? This toot uses some undocumented techniques to give you the information you
`Chris Branch
`
`AMoreAccurateTimingTool14 i
`
`Lear Zolman
`
`Mike Dawdy
`
`. . . . .27
`.
`. . .
`. . .
`. . . .
`.
`Compiler Benchmark: C++ lnlining ... .
`How much overhead do you pay for using C++ instead effust C? We start looking for
`some answers to that question by benchmarking how efficientw five 32—bit Windows
`compiiers can handte a simpie intine iunction.
`Ron Burk
`
`’
`
`
`
`spawn and waitprobiem,
`
`I
`
`u—
`
`CMI' Wage by tha Watson Bogaard.
`
`.
`
`ASTER.
`45nd
`
`aims: thnflgas In Windows Drwiapershim-nut. PI). am: 565M. Boulder.('030312.55“ 115k S“h5‘-fip1'm"s: “ma; 21“,,“
`'.
`Id at San Framsco. CA and
`.t-I m was-22m. l’enndica!
`'
`. 5M
`. 545 Canada In} M
`.
`elswhuc. Paynacnll mm] be made In US dollars. Make checks payahlr to Mariam Mtnpw'noamai
`“
`""1“
`651' [M]: "39065819
`at 1995
`A
`Page 2 —Windows Developer‘sJournal
`
`
`.__.,_.__....,__._..-—.___..
`
`ugu
`
`Toshiba_Apricorn 1012-0002
`Toshiba_Apricorn 1012-0002
`IPR2018-01067
`|PR2018-01067
`
`

`

`
`
`Rm b'urk
`Ann Brother
`Paula Tomtinson
`'r'ictor R. Wribnan
`Lear Zain'tan
`Mark Nelson
`lr'.’ Nomehundron
`Send render mail. to: wdlouoremfmom.
`PU BUSH E R
`Rem- Hutchinson
`Pubiishing Dirccwr
`Manila Mat-inter:
`Associate Publisher
`ADVERTISING AND MARKETING
`Director ofSaJes and
`Marketing
`Acct, Manager. East
`
`Acct. Manager. Midwest
`
`Brit miter
`Ed Day
`[Slut 833-?54?‘
`eduy®mfi.corn
`Chritrin: Wmdtey
`f9i3J 338-7540
`cwoott‘ie-CemfiIoi-n
`Julie Thornton
`WU} 333-75“
`jrhomto @rnfi.ct.tm
`breakout! marketing
`Dmeirbeker Wag 4
`24i05 Kiel
`Germany
`+49 43i-3OU'40
`+49431-801‘W?
`JUGJJZJ F04
`@t‘w‘l’lpusen‘ht‘am
`Joni Hemiy
`Sales Support Manager
`Circulation Manager
`Cheri'l'yn Olmsted
`P R0 D U CTION
`Graphic Anist
`Tug-ta Watson Bogaard
`Production Editors
`Amy Petite
`Lori White
`Ad Materials Lari ‘rlr'i'tirti
`
`Acct. Managen West
`
`Emopean
`Advertising
`Representative
`
`FAX:
`Email:
`
`
`
`
`
`.
`.
`BookstnBrtef-......................................51
`Paula Tomiinson renews the System Architecture series at books by MindShare. Also.
`The Revolutionary Guide to MFC 4 Programming with Visual C++, by Mitre Bieszczek;
`Teach Yourself Delphi 2 in 21 Days. by Dan Osier, Steve Grobman. and Steve Batson
`(reviewed by George Tyiutkt‘).
`Ron Burk
`
`Bug++ottheMonth..................................67
`lfyou use the deiete operator. the compiier has to generate code to caii the destructor
`for that object. But what it the compiler doesn't yet know whether or not you defined a
`destructor? isn't it a bug it it doesn’t warn you that it may be generating incorrect code?
`Yes and no. as this month '5 non-bug shows.
`Mark Nelson
`
` SDK Annotationsf'i -..-. -'_
`
`
`
`Annotation #123—GetDialogElaseUnits 58
`Annotation #129—GetShortPathName 60
`Annotation #130-—CCheckListBox::Create 62
`Annotationtt131—TBBUTTON 68
`Annotation#132—EM_POSFROMCHAR 69
` Departments --
`_
`_
`_
`FromtheEditor...................................."'..........4
`Advertiserlndex
`48
`CalliorPapers..............................................51
`NewProducts
`70
`Headers‘Forum.............................................74
`Developer’slilarketplace 75
`
`
`Né‘xtManm
`Thread Scheduiing in Win95 and NT.
`
`Drop in on our Wet: siteiYou’tI find us at:
`l
`http:iiwww.wd].corn
`You‘ll find information and excerpts from the Current
`including cur SDK Annotations.
`Check it out — and let us know what you think.
`
`issue, along with links to WDJ code.
`
`l
`
`_|
`
`I Online Source Code
`
`
`Except where copyright is expticithr asserted. at! code publishedin WindoweDeuoloper‘s
`Journal may be treaty used and distributed in personal and commercial applications.
`You can obtain source code for Windows Deteiopers Journei. including unpublished code and the
`latest compilation 01 our SDK Annotations. trom:
`CompuServe — GO SDFOFLUM. Library ?.
`GEnie -— in the Windows Ftoundtahle at page 1335 {Kaywordeindowsl-
`l-‘l'P site: flp.m1'i.r;om in qulndev
`BESS:
`Phoenix Chapter ACM Library —(602)821-1162:
`The Courts of Chaos — (501) 935-0059}
`EmmaSoil Shareware Board — (60?) 533—?0?2:
`cfieos {The Netherlands), whim-493020361 or +31-(o)493ozore2.
`‘
`Code Disk:
`Code disks are available per issue ($51. Contact Miller Freeman. Inc.. Customer Flteiallons.
`16004444881: (91:!) 633-7500;tax (913) 841-2624: or. via email. wdsubflrnfmom.
`
`Angust 1996
`
`.
`.
`'
`
`U)-
`
`n..-..
`
`”'1!"
`
`"I""“Y....
`
`
`
`"V'".
`
`i i
`
`'
`|———’__|
`August 1996
`Volume 7, Number 8 WM— 3
`I1 gemstones Jourtnm.
`,
`i
`
`The
`agazine or Windows Programmers
`:
`EDITORIAL
`Senior Edilor
`Managing Editor
`Conuibuting Editors
`
`
`
`
`
`
`
`
`
`Vera.
`
`Subscriptions: mutual
`turntable subson'otirms
`to
`Mnduws wriolpff'i Joanna-f are 554.99 US. $45 Camel: and
`Merton. $64 elsewhere. Payment: must be made in US do:-
`lats. Make checks payable In Window: Drvdqwr‘r Jun-moi.
`Entire oonlents Cum“ 0 H96 Miller Freeman. Inn.
`“up! when: otherw'ne noted. No portion of this publication
`may be rcprmiuocd. stored. or uantmum! in any form.
`including computer mtricvn]. widtout wnlten Pflfllitsrfln
`[torn the publisher. Ail Rights Res-enter]. Quanltty reprints of
`selected Intclu may be ordered. Bit-lined armies carpi-no the
`Wmion at dx author and If! no: mtmly the opinion of
`the publisher. Printed in the United States urn-uteri“.
`Advertising: For m: cards or outi- information on
`placing advertising in Madam: Dewiwlfl‘s Joann-i. contort
`tile advertising department at
`[913) 1H t- loll. or write
`Wind-aw: Dal-taper! lounmt. IEIOI W. 23rd St.. Suite 200.
`lawtence. K5 «mo-2700 l'SA.
`Customer Service: For subscription Order; and
`address chum. contact Window: Derrinprr's Jot-mart. I’D.
`Box 56565. Bonitirrt CO 30322-6565 USA. Tetcphoruo l-
`Sui-3654425 mtJO3loTSrD‘WLIutX13}fi6l-lha5:email
`\t-idwbémfinam.
`For inimitm Will back iwtu and mid: rcpt-inns.
`call 'I-SmdM-Lwfil M913-8Mvifi3l.
`
`MILLER FREEMAN INC.
`.M'oan'l‘ W. Frzrwrn
`ChairmaniCEO .
`Presidenti'COO.
`..
`.....TitommLKrmp
`. F0
`Miran “Andy" attract-tire
`Senior Vice Pres
`
`Senior Vice President
`..... Dam” Denny
`
`Senior V'Icc President
`David Nurshrtum
`Senior Vice Presldcnl.
`mid it. fluent
`
`.. Wini D. Raga:
`SeniorVice President
`
`
`Vin: Presidentib‘oflwaro.
`gum: Starr Rid'l'qv
`
`\fice Presidtntm-odnclion.
`Andre-r it. Mich-s
`Vice PmrdonhtCinrutat'tun .
`”Jerry (Huh!
`
`A United News a Media publication
`m Miller Freeman
`
`
`Windows Devoioper's Journal — Page 3
`
`Toshiba_Apricorn 1012-0003
`Toshiba_Apricorn 1012-0003
`IPR2018-01067
`|PR2018-01067
`
`

`

`Lher
`$3”
`tual
`Ids,
`lays
`5m:
`Ian-
`and
`m.
`
`one
`t its
`iver
`
`itch
`was,
`we
`rith
`out
`
`my
`
`Books in Brief
`
`First Impressions of Recent Titles
`
`
`
`
`Ron Burk
`
`ISA System Architecture, 3rd Ed.
`Torn Shanley and Don Anderson
`51? pages
`MindShare, Inc. and Addison—Wesley, 1995
`$34.95
`ISBN 0-201-4G9%8
`
`80486 System Architecture, 3rd Ed.
`Torn Shanley
`188 pages
`Mindshare, Inc. and Addison-Wesiey, 1995
`$19.95
`[SEN film—409944
`
`PC! System Architecture, 3rd Ed.
`Torn Shanley and Don Anderson
`55? pages
`MindShare, inc, and Addison-Wesley, 1995
`$34.95
`ISBN til-2014109936
`
`EISA System Architecture, 2nd Ed.
`Torn Shanley and Don Anderson
`20? pages
`Mmdshare, inc. and Addison—Wesley, 1995
`$24.95
`SSBN 0—201-40995-X
`
`CARDBUS
`SYSTEM
`ARCHITECIURE
`
`
`
`
`
`PCMCIA System Architecture, 2nd Ed.
`Don Anderson
`440 pages
`MindShare, Inc. and Addison—Wesley, 1995
`$29.95
`ISBN 0—20‘1—409’9‘1—3I'
`
`PowerPC System Architecture
`Tom Stanley
`609 pages
`MindShare, Inc. and Addison—Wesley, 1995
`$34.95
`ISBN 0~2014D§90-9
`
`Plug and Ptay System Architecture
`Tom Shantcy
`32? pages
`MindShare, Inc. and Addison-Wesley, 1995
`$29.95
`ISBN 0201410133
`
`CardBus System Architecture
`Dan Anderson and Tom Shane-1y
`40? pages
`MindShare, an. and Addison—Wesley, I996
`$29.95
`ISBN {1201-4109916
`
`
`
`
`
`
`Pentium Processor System Architecture, 2nd Ed.
`Tom Shanley and Don Anderson
`433 pages
`MindShare, Inc. and Addison-Wesley, 1995
`$29.95
`ISBN 0-201410992—5
`
`Protected Mode Software Architecture
`Tom Shanley
`310 pages
`MindSharu, Inc. and Addison-Wesley, 1996
`$29.95
`ISBN 0401409963
`
`
`
`tt‘S
`
`ith
`
`Got an opinion about these or Other programming books? Send them to 70302.2566@compuserue.com. You can Order any of the books
`that appear in Books in Brfgffi‘onf Mitter Freeman,
`inc. by calling (913) 841-1631, faxing (913) 841-2624, or sending emait to
`rdorders®rdpubcom if usingfor or email, sendT the book title, author, and publisher atong with your MasterCard or Visa number, expi~
`ration date, and phone number.
`
`To submit booksfor review, send them to: Ron Burk, 13846 NE 60th Way, #120, Redmond, WA 98052-4542. Ptease do not send press reteases to
`this address.
`
`August 1996
`
`Windows Developer‘s Journal — Page 61
`
`Toshiba_Apricorn 1012-0004
`Toshiba_Apricorn 1012-0004
`IPR2018-01067
`|PR2018—01067
`
`
`
`5......“
`
`

`

`_—_fl
`
`ware design and are not adequate references for device dri-
`ver writers. This is especially true of bus architectures; fol-
`example,
`it is extremely difficult to find good technical
`information about the PCI or PCMCIA buses. When I do
`manage to find an occasional hardware reference on the
`bookshelf, I almost hesitate to pick it. up for fear of seeing
`the inevitable $89+ price tag. As a welcome relief,
`the
`MindShare series titles range from $19.95 to $34.95. At this
`price,
`I don't feel bad spending the money on a bookl
`might use only as an occasional
`reference.
`Ironically,
`though, my office copy of EISA System Architecture current.
`1y holds the title of ”most likely to be borrowed by a
`coworker."
`
`The format of these books is quite different than that of
`the average computer book. Each book is based on a semi-
`nar taught by the author and that heritage is evident in the
`book’s structure — it flows more like modules than chap-
`ters. Like most hardware books, they get right to the point;
`there are none of the self-indulgent authorial digressions
`that you see in some software development books. But,
`unlike most hardware books, these are actually readable.
`Most hardware references read like encyclopedias ——- even
`the publishers don’t expect anyone to actually read the
`
`[Editor’s note: this review was provided by Paula Tomlinsonl
`I first discovered the System Architecture series a couple
`years ago at the bookstand that Computer Literacy always
`runs during the Software Development conferences. At that
`time, these books were published directly by MindShare
`and had very generic and nondescript black—and—white
`covers, so I almost Overlooked them. I spotted the ISA and
`EISA books first. After leafing through them that night, I
`ran back to the bookstand the following day to buy any
`other books in the series, not dissuaded in the least by the
`prospect of hauling them back home with me. CardBus
`System Architecture is just the latest in this PC Architecture
`Series that currently totals 10 books. Addison—Wesiey is
`now publishing these books with MindShare, so the more
`colorful cover art and wider distribution should ensure that
`you will be able to find them at any bookstore with a rea-
`sonable stock of computer titles.
`I admit that there are so few good hardware books avail-
`able that I tend to get enthusiastic about even mediocre
`attempts. But this series of books is truly an important part
`of my library. The series is generally based around proces-
`sor architectures and bus architectures (with a few miscella-
`neous topics such as Plug—and—Play). 1 find that most books
`that call themselves processor architecture books are really
`references for the assembly language instruction set of that
`particular processor. While those books fill a need, they
`don't give readers an understanding of the overall hard-
`
`WlNGHAF 2.0
`[for MS Windows)
`
`INGRAF 7.0
`(for DOSfDOS Exlenders)
`
`. A
`
`SDK Annotation #130
`
`TYPE: MFG
`TOPIC: CCheckListBox::Create
`KEYWORD: CCheckListBox::Create
`
`The documentation mentions that the deter
`parameter could be any of the specified
`iistbox styles. However, the detyle
`parameter should NOT be
`LBS_MULTICOLUMN or
`
`LBS_USETABSTOPS. Morevar, you need to
`specify LBS_OWNERDHAWFIXED and
`LEIS_HASSTFtINGS. You can specify
`LBS_OWNEFtDFlAWVAFtIABLE instead of
`LBS_0WNEFIDF1AWFIXED, but then you
`need to override CCheckListBox::Drawltem.
`othanvise the debug version will ASSEFIT.
`
`Submitted by Sudhir Menon.
`
`Get the entire set of annotations from modicum or
`CompuSene (lite sdkannzip in section 7 "Han Puoticanbns’
`at tarum SDFORJM). Contribute your own annotations Via
`email? to messsocnmpusememm (indicate which we
`in which help fits you are annotating).
`
`wwm r1. -.
`
`.... ... ....- a. .fit-w'maflg. In; “13;...“
`
`uguSl 1995
`
`Toshiba_Apricorn 1012-0005
`Toshiba_Apricorn 1012-0005
`IPR2018-01067
`|PR2018—01067
`
`WfNGHAF & INGRAF are Graphics libraries for Scientific.
`Engineering and Business applications. Each library contains over
`
`
`150 routines. C, FORTRAN, BASIC and PASCAL versions.
`
`FULL SOURCE CODE
`NO ROYALTIES
` "SD
`HORNER PLOT
`
`
`
` {ear
`
`me
`“In
`can
`
`
`
`PRESSURE(pail
`
`
`
`
`
`
`
`|||||ll I
`llllllll
`I
`ltlllllll
`
`
`
`
`
`
`
`Ililllil
`I
`llllllll
`I
`
`
`
`to:
`to
`
`
`iT-‘dtl 1dr.
`
`
`
`IMDLIC‘IU'E Rent-.mck
`
`
`
`”PAC I1 [PE nmmc:
`
`
`'Sutrasott
`RO. Box I733
`Sugar Land. TX TTTS7—iT33
`
`
`Tel: [713) 491-2088
`
`Fax: (713) 24-0—6833
`
`76 I611 164®compuservecom
`
`: Floquesl Reader Semice H14? 1.:
`Page 52 —— Windows Developer's Journal
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`
`ISBN 1%?441692—3
`
`
`
`The leutionmy Guide to MFC 4
`Programming with Visual C++
`Mike Blaszczak
`
`8?1 pages
`WROX Press, 1996
`$49.95
`
`entire book. For developers who do not already have a
`strong hardware background, this lack of truly readable
`information makes learning about the hardware a particu-
`larly daunting task. As long as readers bear in mind that
`some of the books are prerequisites for others, then these
`books should be aCcessible to developers with very little
`previous hardware background. In the front of each book is
`a chart that describes which books build on others. Some of
`them, such as PowerPC System Archicture. stand alone. But,
`for example,
`it’s recommended that you first read 15A
`System Architecture before reading ElSA System Architecture.
`Although these books are not the most comprehensive
`references available on each topic, they are consistently
`accurate (several of them are already in their third editions)
`and very accessible to hardware novices. I would recom—
`mend them to anyone doing hardWare design or support,
`as well as to any developers who write low—level system
`code (such as device drivers}. 1 find the bus architecture
`books especially useful references.
`Addison—Wesley informs me that books on the Pentium
`Pro processor and the Universal Serial Bus are due out later
`this year. If Tom Shanley and Don Anderson (as well as
`Addison-Wesley) are listening,
`1 will cast my vote for
`adding the following books to the future lineup: 1394, SCSI,
`DEC Alpha Processor, and the MIPS R44xx/ RIOUOO proces-
`set.
`
`SENTBY
`spELLmG _
`onscreen ,3“
`ENG'NE
`
`> Checks text strings and edit controls
`> Jncludcsl [lump—word American and
`British dictionaries
`) Use our built-in dialogs or write your
`
`This is the second edition of this book, and in the PC pro-
`gramming book market. books rarely improve with time (in
`fact. they usually disappear after the first printing}. The
`Windows 3.1 update of Petzold's book was a disappoint-
`ment. the second edition of Marshall Brain’s Win32 System
`Services is mostly a name change that attempts to attract
`Win95 programmers, and there are other examples. This
`book is an exception because this edition is better than the
`first — much better.
`I reviewed the first edition of Hits book in December 1995
`
`column, and though it had some redeeming qualities, I just
`couldn’t recommend it. The Writing was in dire need of edit-
`ing, the choice of topics didn’t always make sense, and its
`900 pages consisted of as much white space as useful infor—
`mation «— the sort of general mediocrity you find in most
`programming books at your lecal bookstore. At Software
`Development ‘96. 1 stopped by the WROX booth and heard
`
`Broil-[Mm
`
`Full-Text Indexing and Retrieval
`Development Toolkit!
`
`(801)121-5901 Flu (Ml) III-5903
`
`Powerful—-~---—-_-__-_— Portable --~-
`Unlimited dmummmd quantity
`DDS, i‘tindocsll]. flfiLhd'
`Full control otdutumenl parsing
`03/2. hidiinlosll. HeiiL__Llniitw
`“9?“de 309'“- ‘ll'dmld
`UC+ +. vi. neiphi and other?
`l’l‘litlse. homily..."
`Pumphrnse, Delimited Search
`Unicode,
`lioion. and European
`Milli-level nested emissions
`thunder support
`'3"
`
`p
`
`iill'iiiiiiii'liéiliiiipi’r't‘
`Unequolod indexing lulled
`ill'l'oilis'iiiit‘li MWAlfiiirl Internet
`Fast tomnld'iénl’dies
`Z.Sinwlsirals_,ili.dslisiinfi_stiiairuL __ Flotilla. 9W Winn via midi
`Ellitienl index base liming
`"Panes ipi' tolioli ipplirpiipnsi
`
`
`
`
`
`
`
`) Dutch. Finnish. French. Italian. German. Spanish. and
`Swedish dictionaries available
`> integrates easily with circa, vs. and Delphi apps
`> Royalty Free
`) Portable C source code available
`> 16- and 32-bit SDKs inst $169.00 each
`
`AV
`. THESU
`*5. THESAURES
`”nus
`“K
`
`)' Synonyms and antonyms for over
`40.000 key words
`" Words classified by parts oi speech:
`Adjectives. adverbs. nouns. and verbs
`it Integrates easily with Glen, its, and Delphi apps
`) Add your own synonyms to a user thesaurus
`> Royalty Free
`J‘ Portable C source code available
`
`> 15- and 32-bit SDKs just $399.00 each
`
`[FREEDemosropwnipadssctrirptrHEsoBzirfromCompuServe‘s
`
`WINSDK forum. Public Utilities library. Or call for your free copy.
`‘L‘QREINFQIVESEI our Web page at httplitptthstnw-wsi or can.
`Sales: 1 -800-340-8803
`Phone: 613-825—6271
`Winterir‘ee
`FAX: 613-825-5521
`Email: wsi@i‘ox.nstn.ca
`S
`0 F
`l w in
`R
`t
`
`August 1996
`
`a Request Reader Service #148 0
`
`: Request Reader Sewioe #149 :1
`Windows Developer's Journal — Page 53
`
`Toshiba_Apricorn 1012-0006
`Toshiba_Apricorn 1012-0006
`IPR2018-01067
`|PR2018-01067
`
`

`

`
`
`
`
`
`
`
`
`
`
`
`
`
`about their extensive efforts to revise this book and make it
`
`better. I listened politely, but with a lot of skepticism. If a
`publisher makes little money on the first editi0n, the book is
`usually abandoned; If it makes decent money, pouring that
`money back into improving the book is often not a priority,
`and make no mistake about it — quality technical writing
`costs money. This book seemed to be selling well for WROX.
`which led me to expect only inexpensive cosmetic improve-
`ments in the second edition. 50 it was wifl'i at least a little
`
`dread that I opened the box containing the new version of
`the book. Boy, was I surprised!
`As soon as I opened the book, I knew something was very
`different. I love books, down to the way they feel and smell (I
`hope this is not due to some kind of addictive glue used in the
`binding), and something felt very different from the previous
`edition. They were the same shape and weight, so 1 got Out
`the old version to compare. The difference was immediately
`obvious — the new edition has much more information
`packed into approximately the same number of pages. How
`can that be? Simple: most programming books are padded
`with white space, code, screen shots, etc., to achieve the spe—
`cific bulk (900 pages in this case) desired. In this new edition,
`the margins shrank, the font shrank, and the amount of infor-
`mation grew. Okay, they replaced the padding with content,
`but was the quality any better? I chose a topic I knew some-
`thing about and that I was fairly sure the book would not
`cover well: listview controls.
`
`
`Tired of Wrestling with OCX/DLL5??
`
`You need SEC+ +uand Objective Grid «HI-two new MFC
`
`extensions that are I00% MFC compatible!
`
`
`Dbiective Grid '
`unmanned” J.\._'I
`
`summation-Ilia!” .
`1 FW— u' I
`
`
`ridi'ia
` CView. Claim and even as 3 Donna. Tile grid can be bound to any external data source
`with one virtual override. Objective Grid also tealures oornpiele ODBCI'DAD swoon. print
`preview, iinol'rebdaoe. undoiredo. UNIODDEJDBCS and an amenable oonltol architecture.
`
`SEC“ l5 9 gram: of Over 40 MFC ”tensions iicludirig: docking views.MDl.e|1emalhres.
`zoom and pannrnq CVrews. image classes for DiniFiJF'GIPCKI'I'G-NWIF F, masked
` edit,
`
`nndar. mller well. menu button. excel-Eire tabbed windows. a tilesystem class.
`encrypting and omnnressing CFile derivalives and rnudi me.
`
`Both ereducls are VC++ 1.5:. 4.x compatible and come with Iul souroe code and
`
`royalties. Prices: Objective Grid: $395 SEC“: 5495. Subscriptions ave-labia.
`www.siingsofi.com
`Buy now and save a bundle...
`Stingray Software, Inc.
`
`leiled time oflen SECHlDbjeotive Grid
`Te; ram: 9244223 r [91919me
`bundle for only 5195'. Full souroe
`
`Fax: {919193343592
`code. no loyalties. Order Today!
`
`
`All major mail cards ammo.
`Email; saleefistlngsofloom
`
`
`
`u Requssl Reader Service #150 o
`Page 64 — Windows Developer's Journal
`
`
`
`
`
`nu
`
`
`
`I may not know MFC, but I know a little about listview
`controls. They have one of the goofiest designs of any con-
`trol Microsoft has ever made. When the listview control
`needs the text to draw a particular item, it sends you a noti-
`fication, and you are supposed to return a pointer to the
`string containing the text. Think about that. Your window
`procedure gets called asynchronously and asked to return a
`pointer to text. Obviously, your text had better not reside in
`a stack variable, or the listview control will most likely
`have a little problem on its hands! Just how long are you
`supposed to ensure that that silly pointer is valid? in fact, a
`Knowledge Base note says you need to keep it valid until at
`least two more messages arrive. I am not making this up.
`Even more incredibly, none of the books I‘ve seen that dig-
`cuss the listview control (see, for example, the clear but
`superficial Programming the Windows .95 User Interface, by
`Nancy Winnick Cluts) describe this fundamental problem
`in its design. Much to my surprise,
`the author clearly
`describes this problem in the section on how to use MFC
`with listview controls. To my delight, where I have been
`unable to devise a reasonable workaround for this ugly
`listview interface, the author provides a workaround that is
`simple, effectiVe, and no more distasteful than the problem
`it has to solve. I definitely did not expect to find a very
`handy piece of generic Windows programming information
`in an MFC book!
`
`Now I was hooked —I then compared the two editionsin
`detail to see what had been changed or added. Start with the
`book title: this is a book about M FC, and now the title reflects
`that. The chapter on application architecture hierarchy is
`mostly unchanged, though there are a few new (and wel-
`come) pages on startup issues (registry usage, command—line
`parsing, etc). The text on the crucial subject of the docu-
`ment/ view architecture shows only minor changes, but the
`two figures that describe SDI and MDI class relationships are
`significantly improved. That may sound trivial, but I found
`these new figures useful enough to copy and display wherel
`can see them. The OLE coverage is beefed up. The important
`topic of the Windows 95 common controls is larger and more
`detailed now; listview controls got 3 pages in the first edition,
`but get 13 pages of much denser text in the second edition»
`The chapter on using the new common controls with MFC is
`by itSElf more useful than some entire MFC books I’ve seen.
`
`The parts of the book that remain largely similar to the first
`edition often have minor impmvements scattered here and
`there.
`
`Is there still room for improvement? There always is, butI
`believe that the most significant point about this book is that
`WROX made a substantial investment in quality. These fOIkS
`spent time and money to improve the quality of a book that
`“’35 P1"obitbly already making a profit. Not broaden the
`SCOPE; 1'10t make it appear fatter, but improve the quality-
`And they succeeded! This may not be die only bODk You!”
`ever need on MFC, but it's the best one I’ve seen and the only
`one I'm willing to recommend so far. I hope that readers Will
`reward WROX's effort by buying this book, instead of if“!
`many inferior MFC titles on H19 market. Maybe we as COW
`somers can send the message that quality really is worth
`investing in.
`
`August 1996
`
`Toshiba_Apricorn 1012-0007
`Toshiba_Apricorn 1012-0007
`IPR2018-01067
`|PR2018—01067
`
`

`

`
`
`
`Teach Yourself Delphi 2 in 21 Days
`Dan Osier, Steve Gmbman, and Steve Balson
`982 pages
`Sams Publishing, 1996
`535.00
`ISBN 0672-3086341
`
`File3, EditZ, etc), which makes even simple code difficult to
`understand. Although they discuss exceptions, they employ
`almost no error trapping/handling. The front cover says
`"Learn what you need to get the Wind0w5 95 logo on your
`programs,” but the authors acknowledge that they cover only
`a few of the requirements.
`In general,
`the explanations are unclear. Chapter 7
`("Object—Oriented Programming") contains two pages of con-
`crete information and thirteen pages of an abstract discussion
`of "software engineering" (Grady Bood'i is "God of all that is
`Object Oriented"). The authors define modal only as "a win-
`dow that pops up to provide or request information" and
`assert that it "is not . . . your application's primary window."
`Chapter 7 addresses the issues of conserving resources and
`space, but "space" is defined as disk space (not memory), and
`"resources" are defined as CPU cycles (not Windows
`resources or memory). No indication is given about how to
`conserve either.
`
`When writing for novices, precision and consistency in
`word choice are crucial. But the authors call a procedure a
`function (in the section in which they attempt to distinguish
`between the two) and refer to the Textllutl) method as a
`property; they call a check mark before a menu item a check—
`box (six pages later they discuss the checkbox control); they
`refer to visual and nonvisual components as "visible" and
`"invisible.” They claim that the Wait“? and Tfluerv compo-
`nents are "ancestors of a dataset class” (they’re descendants).
`The authors are also forgetful: in Chapter 14, they promise to
`
`
`
`
`
`this review ms provided by George Tylm‘kil
`[Editor’s note:
`From the dedication (in which one author thanks 24 people
`and their families and another thanks his wife and dog in the
`same sentence) to the appendices (a five-page ASCII chart and
`a five-page ANSI chart), this is a bad book.
`The authors say that no "prior knowledge of writing code
`is assumed," and they do attempt to define things such as
`"subroutine" and "variable." In Chapter 8, they even employ
`”Mr. DOS," "Mr. Windows," and “Mr. Win32" to explain the
`"operating systems that Microsoft has released." However,
`so many items are not explained, and so much material is
`inaccurate, that a true novice will learn little. Of course, there
`are descriptions and illustrations of every menu item, tool—
`bar button, and option. But there is no logical development
`in the "course" material; pointers (which can be avoided for
`the most part with Object Pascal} are discussed on the fourth
`day (before the Project Manager) and the Visual Component
`Library isn‘t discussed until 250 pages into the book.
`Chapters 3 and 4 are a "Readers Digest version of the refer-
`ence manual."
`
`Each chapter ends with questions and exercises that are
`pedagogically unsound. Often, the reader cannot poSsibly
`answer the questions based on the information in the chap-
`ter. One "exercise" is to run Borland‘s tutorial. Another
`
`requires the student to "create a database application that
`uses all me data-aware controls." And "to demonstrate drag-
`and-drop to yourself .
`. . open Explorer and drag a worthless
`tend file onto the Recycle Bin (make sure to retrieve it if it was
`an important file}.”
`The quality of the authors“ code is poor. The errors are
`numerous and are typical of novices and former BASIC pro-
`grammers; they include (but are not limited to) using double
`instead of single quotation marks, using variables before they
`have been initialized, and omitting semicolons. In Chapter 4,
`there are 29 chunks of code (complete listings or fragments in
`the text), eight of these won’t compile and three of which
`don’t do what the authors claim. For example, the line
`
`llhile it (> 'q'l or {I 0 '0'
`
`)9!)
`
`makes a simple get-a-key program run forever. All of the code
`is simple and most is inefficient. It’s available from an Internet
`site (no disk or CD is included}. The book’s cover claims that it
`is "Endorsed by Borland International Inc." and "Approved
`for Technical Accuracy" by two Borland employees. Clearly,
`l3-Cll'lancl‘s imprimahir is no assurance of quality.
`In Chapter 5, the authors devote three pages to the impor-
`tance of using meaningful variable names, but fail to heed
`their own advice: they use Delphi's default names (Buttonl,
`
`OBJECT REPORTS
`STOPwaiting 10 minutes lor a 2 page report!
`STOP coding your report logic in some slow.
`unfamiliar, interpreted macro language!
`STOP exporting your object-oriented databaseto a.
`relational database just to produce reports!
`STOPwasling your time filling in gaps with DDE!
`STOP querying. filtering, and extracting temporary
`tables just to make your report writer happy!
`STOP creating simple reporting applications that
`require 5MB of diskspace and 8MB of RAM!
`STOP explaining to your users why your report writer
`can't generate the reports they want!
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`STARTusing OBJECT REPORTS!
`Object Reports is not another report writer. Object
`Reports is a C++ class library that positions your data on
`the page. Create your reports layer by layer in C++.
`
`
`Code your entire report in C++. Preview the output.
`
`
`Works with any GU! library. Static- or dynamic-link.
`SMALL! FAST! EFFtciENT! FLEXIBLE! EmnslaLEl ReusAHLEl
`
`
`source code included!!!
`
`
`. Borland. Microsoft. Symantec
`
`
`16- and 32-bit Windows
`
`
`Rollins Software Inc
`http:!fwww.rollinssoft.com
`
`August 1996
`
`Windows Developer‘s Journal — Page 65
`
`Toshiba_Apricorn 1012-0008
`Toshiba_Apricorn 1012-0008
`IPR2018-01067
`|PR2018—O1067
`
`

`

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`discuss triggers in the next chapter, but don’t; at the end of
`Chapter 16 they claim to have covered "how to add graphs to
`your reports,” but they haven't.
`In the Acknowledgments, the authors admit that the edi—
`tors made them feel "like we were in English class again, but it
`was worth it!" In Chapter 18, they say that the “Microsoft
`Developer’s Network CD .
`.
`. is the single largest wealth of
`information we have ever seen in one place" (what about a
`library?) Simply put, their writing skills are very weak. In
`addition to hundreds of punctuation, grammar, spelling and
`usage errors {89 fragments and run—on sentences alone), the
`writing is vague. repetitious, and cliche.
`If it cost $2.95, I would recommend this book; it’s replete
`with bowlers: "code that bring tears of joy to my eye"; ”In my
`mind, there are two things that really stick out"; "I want to
`give you the big picture in an easily digestible format"; "there
`always comes a time where you must print‘; ”use properties.
`. only if it is logical to do so. Methods .
`.can be used any
`time"; "Use the with statement auspiciously." Norm Crosby
`couldn’t have said it any better.
`in Chapter 13, which the authors refer to as "merely a teas-
`er," they address the important topic of how to pronounce
`“OLE 2” and conclude that “it’s better to look and sound like
`
`you know What you’re doing than actually doing anything."
`As with the book as a whole, 1 think I know what they‘re say-
`ing here, but I’m not sure.
`
` THE flTEXTSUITE
`
`
`H WA + HLPDK/PA + Interactive Help + OSHTools +
`Hyper-Image = The ultimate on-llne authoring tool
`for Windows, WlndostE, 05/2 and WWW HTML l
`
`
`
`
`- Import existing help files {hip} and HTML files [.htmlj for editing!
`
`0 A lull lealure true WYSIWYG Visual editor with a power topic tree and an image editor.
` ' Automalic lntemel World Wide Web HTML and 034‘? IPF generalion !
`
`.-
`.__m.n.-.p.-.mr
`' Interactive lorms, dialogs. dynamic topics embedded video dips.
`
`
`
`control WrnHelp events.
`n-L-o-.hu-M

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket