`-» A More AccurateTiming Tool
`A Palette SPY Tool
`
`
`
`
`
`
`nieBug++ of the Month
`t Visual Ca"
`Eyouene The Missing
`Jing source
`itn Warning Message
`ill releosehiTech Tips
`y Ugs.
`by
`_Comboboxesin Toolbars |
`40 Jnderstanding NT
`OLEinterlces
`view’ Debugging Services
`sows200Kks in Brief
`+ae The MindShare Series,
`s
`. Delphi and mare
`to ordel
`ore abou #he
`Checker 49
`n/bed.hit!
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`~~ WESTERNDIGITAL CORPORATION, EXHIBIT 1012
`Page 1 of 9
`
`sChacker 4
`
`Volume 7, Number8
`$4.95 U.S. Canada $5.95
`
`|P44 70"7 7877
`
`g ies
`
`A Miller Freeman Publication
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1012
`Page 1 of 9
`
`
`
`
`
`
`
`Paula Tomlinson
`
`Tech Tips
`Gorkhmaz E. Mikailov shows howto create a comboboxor other control in an MFC
`toolbar. Trevor Harmonprovides an MFC class for DIB sections. Simon Fan revisits the
`Spawn and wait problem,
`Leor Zolman
`
`an you protect yourself against a service that locks up your
`1
`System atboottime? Whatdebuggers are available fordebugging services? The
`.
`answers are ail here, along with the undocumented method lorattaching a process with
`the Visual C++ Gebugger.
`
`Coverimage by Twyla Watson Bogaard.
`
`
`
`~~
`
`ooo
`
`oN
`wtpee
`
`soy
`
`“wa
`
`
`
`Windows
`Ky DEVELOPER’s JOURNAL
`The Magazine for Windows Programmers
`
`
`A Palette Spy Utilityee
`Using an identitypalette is essential for fast graphics, but how can you be sure you got
`it right? This tool uses some undocumented techniquesto give youthe information you
`need.
`Chris Branch
`
`A More Accurate Timing Tool teen e cece cece eens en eee. AG
`The only way to squeeze those extra cycles outof the CPUis to make changes and
`measurethe results, Abrash’s “Zen timer”has often been usedfor that purpose, but
`how accurateis it? Here’s a look at someproblemsthis kind of timer has and how to
`improveit
`Mike Dawdy
`
`Compiler Benchmark: C++ Inlining ............ eee ee el
`Howmuch overhead do youpay forusing C++ instead ofjust C? We start looking for
`some answers to that question by benchmarking how efficiently five 32-bit Windows
`compilers can handle a simpleinline function.
`Ron Burk
`
`Building Win32 DLLs the Right Way.....................33
`Richter’s Advanced Windows shows you how to build general-purpose Win32 DLLs,
`right? Wrong — you end up with DLLs that can only be conveniently called by appli-
`cations compiled with Visual C++. Here's the right way to write code and build your
`DLL soit can be compiled with Mic
`rosoft or Borland, and easily called by any Win32
`Programmingtool.
`Ron Burk
`
`
`
`
`Prancisc
`an
`i
`WindowsDeveloper'sJournal{ISSN1083-9887)isPublishedmonthlybyMillerFreeman, Inc 600
`i
`od:
`additionalmailingoffices.SeASTER:pendeeerestoWindowsDeveloper'sJournal,P.O, Box56565,Boulder,CO80322-6565USA Subscriptions:Annualrenewable
`1
`Harrison St., San Francisco, CA 94107 USA. (415) 905-2200. Periodi
`de
`el
`.
`Inc.,
`i
`:
`:
`SCO,
`.
`S-
`.
`Periodicals
`Francisco, CA an
`paid at San
`subscnptions to Wi
`'S
`Developer's
`Journal are
`$34.99 U'
`.
`$45 Canada
`and Mexi
`st
`i
`checks
`1
`°Moonee
`$4:
`ta
`and
`Mexico,$64elsewhere,PaymentsmustbemadeinUSdollars.MakecheckspayabletoWindowsDeveloper'sJournal.
`
`:
`
`d
`
`Page 2 — Windows Developer's Journal
`
`August 1996
`
`"WESTERN DIGITAL CORPORATION,EXHIBIT 1012
`
`
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1012
`Page 2 of 9
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Bill Uhler
`Ed Day
`(913) 838-7547
`eday@ mfi.com
`Christine Woodley
`(913) 838-7546
`cwoodley @ mfi.com
`Julie Thornton
`(913) 838-7541
`jthornto@ mfi.com
`breakout! marketing
`Duevelsbeker Weg 4
`24105 Kiel
`Germany
`+49 431-801740
`+49 431-801797
`100332,1704
`@compuserve.com
`
`
`Joni Hernly
`Sales Support Manager
`Cherilyn Olmsted
`Circulation Manager
`
`
`
`PRODUCTION
`
`
`
`Twyla Waison Bogaard
`GraphicArtist
`
`Production Editors
`Amy Pettle
`Lori White
`
`Lori White
`Ad Materials
`
`
`WBPA.
`
`Subscriptions: Annual
`renewable
`subscriptions
`to
`
`
`Windows Developer's Journalare $34.99 US, $45 Canada and
`Mexico, $64 elsewhere. Payments must be made in US dol-
`
`
`lars. Make checks payable to Windows Developer's Journal.
`
`
`Entire contents Copyright © 1996 Miller Freeman,Inc.,
`
`
`except where otherwise noled. Ne portion ofthis publication
`
`
`may be reproduced, stored, or transmitted in any form,
`
`
`including computer
`retrieval, without written permission
`
`
`from the publisher. All Rights Reserved. Quantity reprints of
`
`
`selected articles may be ordered. By-lined articles express the
`
`
`opinion of the author and are not necessarily the opinion of
`
`
`the publisher. Printed in the United States of America.
`
`
`Advertising: For rate cards or other information on
`
`
`placing advertising in Windows Developer’s Journal, contact
`
`
`the advertising department ar
`(913) 841-1631, or write
`
`
`Windows Developer's Journal, 1601 W. 23rd St, Suite 200,
`
`
`Lawrence, KS 66046-2700 USA.
`
`
`Customer Service: For subscripiion orders and
`
`
`address changes, contact Windows Developer's Journal, PO.
`
`
`Box 56565, Boulder, CO 80322-6565 USA. Telephone 1-
`
`
`800-365-1425 or (303) 678-0439;fax (303) 661-1885; email
`
`
`wdsub@ mfi.com.
`For information about back issues and article reprints.
`
`
`call 1-800-444-4881 or 913-841-1631.
`
`
`
`
`
`MILLER FREEMAN, INC.
`Chairman/CEO..
`.... Marshall W. Freeman
`
`PresidenUCOO,....sc5.seeereeeeneeeecn eee Thomas L. Kemp
`
`
`
`
`Senior Vice President, CFO
`Warren “Andy” Ambrose
`Senior Vice President ....
`arenes Darrell Denny
`
`
`David Nussbaum
`Senior Vice President .
`
`
`
`.. Donald A. Pazour
`
`Senior Vice President.
`
`
`
`weve Wini D. Ragus
`Senior Vice President .
`
`
`
`Vice President/Software.
`Regina Starr Ridley
`. Andrew A, Mickus
`
`
`Vice PresidenvProduction..
`
`
`saseneees Jerry Okabe
`Vice President/Circulation ........
`
`
`
`
`Windows Developer’s Journal — Page 3
`
`
`
`
`
`
`
`on
`prom
`WESTERNDIGITAL CORPORATION, EXHIBIT 1012
`
`
`
`Windows
`oO DEVELOPER'S JOURNAL
`
`
` The Magazine for Windows Programmers
`
`
`EDITORIAL
`Ron Burk
`Senior Editor
`Ann Brécker
`Managing Editor
`Paula Tomlinson
`Contributing Editors
`
`Victor R. Volkman
`Leor Zolman
`Mark Nelson
`V. Ramachandran
`
`
`Send reader mail to: wdlotter@mfi.com.
`PUBLISHER
`
`Peter Hutchinson
`Publishing Director
`
`Martha Masinton
`Associate Publisher
`
`
`
`
`ADVERTISING AND MARKETING
`Director of Sales and
`
`
`Marketing
`Acct. Manager, East
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Acct. Manager, Midwest
`
`Acct. Manager, West
`
`European
`Advertising
`Representative
`
`FAX:
`Email:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`August 1996
`Volume 7, Number 8
`
`Booksin Brief ccc een uaeueceunusenennenvseeneesesss OT
`Paula Tomlinson reviews the System Architecture series of books by MindShare.Also,
`The Revolutionary Guide to MFC 4 Programmingwith Visual C++, by Mike Blaszczak;
`Teach Yourself Delphi 2 in 21 Days, by Dan Osier, Steve Grobman, and Steve Batson
`(reviewed by George Tylutki).
`Ron Burk
`
`v
`
`_oCY
`voto
`
`| a
`
`o
`
`
`
`SYeynnnmenage
`
`acy
`
`w
`
`— -
`
`August 1996
`
`1 W
`
`Bug++ of the Month .........cesseeeeeeee eee ree G7
`ifyou use the delete operator, the compiler has to generate code to call the destructor
`for that object. But whatif the compiler doesn’t yet know whether or not you defined a
`destructor? Isn'tit a bugif it doesn’t warn youthatit may be generating incorrect code?
`Yes and no, as this month’s non-bug shows.
`Mark Nelson
`
`
`Annotation#128 —GetDialogBaseUnits wees
`DmS
`Annotation #129 — GetShortPathName .....
`Annotation #130 — CCheckListBox::Create .
`Annotation #131 — TBBUTTONrr)
`Annotation #132 —EMPOSFROMCHAR ......-ceseeeee erence -69
`
` From theEditor vevuueuees
`
`Advertiser Index ccc eee veveteeeeeetetesesereseeeeeeeeen ens (B
`Call for Papers ...200c ccc eeeec eee e reece recess eneneeeeenen ss OT
`New Products sc ceeeunetnvseceeneseeeeeeteeenseeeceesess
`LO
`Readers’ FOrum ..cccccccecccecteeeseetseeessereseneeeesan sc lf
`Developer’s Marketplace ccc nueneaeeeeersereeeseeeeneneeen en LO
`
`eSaa elit
`
`
`Drop in on our Website! You'll find usat:
`
`
`http:/Awww.wdj.com
`You'll find information and excerpts from the currentissue, along with links to WDJ code,
`
`including our SDK Annotations.
`Checkit out — and let us know whatyouthink.
`
`
`Online Source Code
`
`
`
`Except where copyrightis explicitly asserted, all code publishedin WindowsDeveloper's
`
`Journal may be freely used and distributed in personal and commercialapplications.
`You can obtain source code for Windows Developer's Journal, including unpublished code and the
`
`
`latest compilation of our SDK Annotations, from:
`/
`CompuServe — GO SDFORUM,Library 7.
`
`
`GEnie — in the Windows Roundtable at page 1335 (Keyword:Windows).
`
`
`
`
`FTPsite: ftp.mfi.com in pub/windev
`BBSs:
`Phoenix Chapter ACM Library — (602) 821-1162;
`
`
`The Courts of Chaos — (501) 985-0059;
`
`
`
`
`EmmaSoft Shareware Board — (607) 533-7072;
`
`
`C_BBS(The Netherlands), 431-(0)-4930-20361 or +31-(0)-4930-20792.
`.
`Code Disk:
`
`
`
`
`
`
`
`WM Miller Freeman
`Code disks are available perissue ($5). ContactMiller Freeman, Inc., CustomerRelations,
`
`A United News & Media publication
`1-800-444-4881; (913) 838-7500;fax (913) 841-2624;or, via e-mail, wdsub@ mfi.com.
`
`
`
`
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1012
`Page 3 of 9
`
`
`
`ram
`rbol
`
`ther
`sger
`tual
`
`ads,
`lays
`ove
`
`one
`f its
`iver
`eri-
`rich
`vas,
`
`3ys-
`vith
`out
`
`any
`
`1to
`ng,
`(or
`iny
`LYS,
`‘a's
`NT.
`ent
`‘e's
`WS
`for
`rol.
`
`of
`m,
`
`ws
`
`45
`
`196
`
`
`
`Books in Brief
`
`First Impressions of RecentTitles
`
`
`
`
`Ron Burk
`
`ee
`
`CarpBus
`SYSTEM
`ARCHITECTURE
`
`
`
`
`
`
`
`ISA System Architecture, 3rd Ed.
`Tom Shanley and Don Anderson
`517 pages
`MindShare, Inc. and Addison-Wesley, 1995
`$34.95
`ISBN 0-201-40996-8
`
`80486 System Architecture, 3rd Ed.
`Tom Shanley
`188 pages
`MindShare, Inc. and Addison-Wesley, 1995
`$19.95
`ISBN 0-201-40994-1
`
`PCI System Architecture, 3rd Ed.
`Tom Shanley and Don Anderson
`557 pages
`MindShare, Inc. and Addison-Wesley, 1995
`$34.95
`ISBN 0-201-40993-3
`
`EISA System Architecture, 2nd Ed.
`Tom Shanley and Don Anderson
`207 pages
`MindShare, Inc. and Addison-Wesley, 1995
`$24.95
`ISBN 0-201-40995-X
`
`Pentium Processor System Architecture, 2nd Ed.
`Tom Shanley and Don Anderson
`433 pages
`MindShare, Inc. and Addison-Wesley, 1995
`$29.95
`ISBN 0-201-40992-5
`
`PCMCIASystem Architecture, 2nd Ed.
`Don Anderson
`440 pages
`MindShare, Inc. and Addison-Wesley, 1995
`$29.95
`ISBN 0-201-40991-7
`
`PowerPC System Architecture
`Tom Shanley
`609 pages
`MindShare,Inc. and Addison-Wesley, 1995
`$34.95
`ISBN 0-201-40990-9
`
`Plug and Play System Architecture
`Tom Shanley
`327 pages
`MindShare,Inc. and Addison-Wesley, 1995
`$29.95
`ISBN 0-201-41013-3
`
`CardBus System Architecture
`Don Anderson and Tom Shanely
`407 pages
`MindShare, Inc. and Addison-Wesley, 1996
`$29.95
`ISBN 0-201-40997-6
`
`Protected Mode Software Architecture
`Tom Shanley
`310 pages
`MindShare,Inc. and Addison-Wesley, 1996
`$29.95
`ISBN 0-201-40996-8
`
`mn
`
`Got an opinion about these or other programming books? Send them to 70302.2566@compuserve.com. You can order anyof the books
`that appear in Books in Brief from Miller Freeman, Inc. by calling (913) 841-1631, faxing (913) 841-2624, or sending email to
`rdorders@rdpub.com. If usingfax or email, send the booktitle, author, and publisher along with your MasterCardor Visa number, expi-
`ration date, and phone number.
`To submit booksforreview, send them to: Ron Burk, 13846 NE 60th Way, #120, Redmond, WA 98052-4542. Please do not send press releases to
`this address,
`
`August 1996
`
`WindowsDeveloper's Journal — Page 61
`
`WESTERN DIGITAL CORPORATION,EXHIBIT 1012
`
`
`
`
`
`
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1012
`Page 4 of 9
`
`
`
`aa
`
`ware design and are not adequate referencesfor device dri.
`ver writers. This is especially true of bus architectures; for
`example, it is extremely difficult to find good technical
`information about the PCI or PCMCIAbuses. 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 welcomerelief, the
`MindShareseries titles range from $19.95 to $34.95. At this
`price, I don’t feel bad spending the money on a book J
`might use only as an occasional reference.
`Ironically,
`though, myoffice copy of EISA System Architecture current-
`ly 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 bookis based on a semi-
`nar taught by the author and thatheritage is evidentin the
`book’s structure — it flows more like modules than chap-
`ters. Like most hardware books, they get rightto 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 Tomlinson.]
`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 booksfirst. After leafing through them that night, I
`ran back to the bookstand the following day to buy any
`other booksin 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-Wesley is
`now publishing these books with MindShare, so the more
`colorful cover art and widerdistribution should ensurethat
`you will be able to find them at any bookstore with a rea-
`sonable stock of computertitles.
`I admit that there are so few good hardware booksavail-
`able that I tend to get enthusiastic about even mediocre
`attempts. But this series of books is truly an importantpart
`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). I find that most books
`that call themselves processor architecture booksare really
`references for the assembly languageinstruction set of that
`particular processor. While those books fill a need, they
`don’t give readers an understanding of the overall hard-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`s
`
`a
`
`HHf
`
`
`
`CAPACITIVE REACTANCE
`
`
`Sutrasoft
`P.O. Box 1733
`Sugar Land, TX 77787-1733
`Tel: (713) 491-2088
`Fax: (713) 240-6883
`
`76163.1164@compuserve.com
` a Request Reader Service #1470
`Page 62 — Windows Developer's Journal
`
`INGRAF7.0
`WINGRAF2.0
`(for DOS/DOS Extenders)
`(for MS Windows)
`WINGRAF& INGRAFareGraphicslibraries for Scientific,
`Engineering and Business applications. Each library contains over
`
`
`150 routines. C, FORTRAN, BASIC and PASCALversions.
`FULL SOURCE CODE
`NO ROYALTIES
`
`
`
`HORNER PLOT
`
`
`
`
`aSz
`
`
`QL! |
`The documentation mentions that the dwStyle
`PRESSURE(psi)
`
`ili tt
`Witt
`
`
`
`ait
`parameter could be any of the specified
`(eid |
`WHT Ef
`
`
`
`ailsHen
`listbox styles. However, the dwStyle
`HITE ET
`HHIERL
`
`
`asso HILLEL
`parameter should NOT be
`AIEEE
`HURET dT
`To HWE
`fb
`
`
`
`LBS_MULTICOLUMN or
`
`WIE
`Ed Tea eda
`
`asoo WITT|tLtettd1090 109 40 1
`LBS_USETABSTOPS.Morever, you need to
`
`
`
`(T+dt) /dt
`specify LBS_OWNERDRAWFIXED and
`
`LBS_HASSTRINGS.You can specify
`LBS_OWNERDRAWVARIABLE instead of
`
`LBS_OWNERDRAWFIXED,but then you
`
`RAINFALL(inches)
` 74.5
`
`errerporirs}
`needto override CCheckListBox::Drawltem,
`
`otherwise the debug version will ASSERT.
`
`
`
`
`
`SDK Annotation #130
`
`TYPE: MFC
`TOPIC: CCheckListBox::Create
`KEYWORD: CCheckListBox::Create
`
`Submitted by Sudhir Menon.
`
`Getthe entire set of annotations from www.waj.com or
`CompuServe(file Sdkann.zip in section 7 “R&D Publications”
`of forum SDFORUM). Contribute your own annotations via
`email to 70302.2566 @compuserve.com (indicate which topic
`in which help file you are annotating).
`
`August 1996
`
`WESTERNDIGITAL CORPORATION, EXHIBIT 1012
`Page 5 of 9
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1012
`Page 5 of 9
`
`
`
`
`
`
`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 bookis
`a chart that describes which books build on others. Someof
`them, such as PowerPC System Archicture, stand alone. But,
`for example,
`it’s recommended that you first read ISA
`System Architecture before reading EISA System Architecture.
`Although these books are not the most comprehensive
`references available on each topic, they are consistently
`accurate (several of them are alreadyin 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). I find the bus architecture
`books especially useful references.
`Addison-Wesley informs me that books on the Pentium
`Pro processor and the UniversalSerial Bus are due outlater
`this year. If Tom Shanley and Don Anderson (as well as
`Addison-Wesley) are listening,
`I will cast my vote for
`adding the following booksto the future lineup: 1394, SCSI,
`DEC Alpha Processor, and the MIPS R44xx/R10000 proces-
`sor.
`
`or
`al
`lo
`ae
`
`%a
`
`e
`is
`
`ly,
`it
`
`» Checkstext strings andedit controls
`» Includes 100,000-word American and
`British dictionaries
`> Use our built-in dialogs or write your
`» Dutch, Finnish, French,Italian, German, Spanish, and
`Swedish dictionaries available
`> Integrates easily with C/C++, VB, and Delphi apps
`> Royalty Free
`Portable C source code available
`
`
`
`The Revolutionary Guide to MFC 4
`Programming with Visual C++
`Mike Blaszczak
`
`871 pages
`WROxXPress, 1996
`$49.95
`ISBN 1-874416-92-3
`
`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 — muchbetter.
`Ireviewedthefirst edition of this book in December 1995
`column, and though it had some redeeming qualities, I just
`couldn't recommendit. The writing was in dire needof 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 local bookstore. At Software
`Development ‘96, I stopped by the WROXbooth and heard
`
`Prolndex™
`Full-Text Indexing and Retrieval
`Development Toolkit!
`
`Powerful -------------~ Portable-—~-----—y
`Unlimited documentsizeand quontity BOS, Windows(3.1,NT.95) na"
`Full control ofdocument parsing
`OS/2, Macintosh, NeXT,Unix
`Keyword, Boolean, Wildcard
`UC-++, VB, Delphi, and 0then
`~
`NB, Delphi,
`ond
`of
`Phrase, Proximity.”
`Paraphrase,Delimited Search
`Unicode, Asion, and European
`Multi-level nested expressions
`character support
`i
`Brnrintentetiy
`comms enn
`
`Fast
`Dynamic©.
`coat
`Fullicasrsippot
`Unequaled indexing speed
`Fast complexSearches
`WorkswithTAN,WAN,and Internet
`Simultaneousindexingandretrieval...FindtheEXACT location of a search
`Fificient index base tuning
`Perfect for CD-ROM Applications!
`
`£2
`
`ae
`
`mS
`
`InfoSphere
`
`Enhancing the accessibility ofinformation!
`
`PO Box 225, Pleasant Grove, UT 84062
`(801) 221-5902 Fax (801) 221-5903
`
`
`
`
`
`
`
`
`
`Af
`> 16- and 32-bit SDKsjust $169.00 each
`> Synonymsand antonyms for over Aue
`40,000 k
`<a
`ey wore
`PAULL
`» Words classified by parts of speech:
`Adjectives, adverbs, nouns, and verbs
`“sy
`> Integrates easily with C/C++, VB, and Delphi apps
`Add your own synonyms to a user thesaurus
`> Royalty Free
`Portable C source code available
`>» 16- and 32-bit SDKs just $399.00 each
`FREE DEMOS! Download SSCE.ZIP or THESDB.ZIP from CompuServe's
`WINSDKforum, Public Utilities library. Or call for your free copy.
`MORE INFO!Visitour Web paceat htip://fox.nstn.ca/~wsi or call.
`Sales: 1-800-340-8803
`WwW ‘
`Phone: 613-825-6271
`l nte rtree
`FAX: 613-825-5521
`Email: wsi@fox.nstn.ca
`SOF TWARE
`
`
`
`August 1996
`
`a Request Reader Service #148 a
`
`a Request Reader Service #149 a
`Windows Developer's Journal — Page 63
`
`WESTERNDIGITAL CORPORATION, EXHIBIT 1012
`Page 6 of 9
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1012
`Page 6 of 9
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`abouttheir extensive efforts to revise this book and makeit
`[may not know MFC,but I knowa little about listview
`controls. They have one of the goofiest designs of any con-
`better. I listened politely, but with a lot of skepticism.If a
`trol Microsoft has ever made. When the listview control
`publisher makeslittle money onthefirst edition, the book is
`needs the text to drawaparticular item, it sends you a not-
`usually abandoned.If it makes decent money, pouring that
`fication, and you are supposed to return a pointer to the
`money back into improving the bookis often not a priority,
`string containing the text. Think about that. Your window
`and make no mistake about it — quality technical writing
`procedure gets called asynchronously and asked to return a
`costs money. This book seemedto be selling well for WROX,
`which led me to expect only inexpensive cosmetic improve-
`pointer to text. Obviously, your text had betternotreside in
`ments in the second edition. So it was with at least a little
`a stack variable, or the listview control will most likely
`dread that I opened the box containing the new version of
`havea little problem on its hands! Just how long are you
`the book. Boy, was I surprised!
`supposed to ensure thatthatsilly pointer is valid? In fact, a
`Knowledge Base note says you need to keep it valid until at
`As soon as I opened the book, I knew something was very
`different. I love books, down to the waythey feel and smell (I
`least two more messagesarrive. I am not making this up.
`hopethis is not due to somekind of addictive glue used in the
`Even moreincredibly, none of the booksI’ve seen that dis-
`binding), and somethingfelt very different from the previous
`cuss the listview control (see, for example, the clear but
`edition. They were the same shape and weight, so I got out
`superficial Programming the Windows 95 User Interface, by
`the old version to compare. The difference was immediately
`Nancy Winnick Cluts) describe this fundamental problem
`obvious — the new edition has much more information
`in its design. Much to my surprise,
`the author clearly
`packed into approximately the same number of pages. How
`describes this problem in the section on how to use MFC
`can that be? Simple: most programming books are padded
`with listview controls. To my delight, where I have been
`with white space, code, screen shots,etc., to achieve the spe-
`unable to devise a reasonable workaround for this ugly
`cific bulk (900 pagesin this case) desired. In this new edition,
`listview interface, the author provides a workaroundthatis
`the margins shrank, the font shrank, and the amountof infor-
`simple, effective, and no more distasteful than the problem
`mation grew. Okay, they replaced the padding with content,
`it has to solve. I definitely did not expect to find a very
`but was the quality any better? I chose a topic I knew some-
`handypiece of generic Windows programminginformation
`in an MFC book!
`thing about and that I was fairly sure the book would not
`cover well: listview controls.
`Now I was hooked — I then compared the twoeditionsin
`detail to see what had been changed or added.Start with the
`booktitle: this is a book about MFC, and nowthetitle reflects
`that. The chapter on application architecture hierarchy is
`mostly unchanged, though there are a few new (and wel-
`come) pages onstartup 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 MDIclassrelationshipsare
`significantly improved. That may soundtrivial, but I found
`these new figures useful enough to copy and display where I
`can see them. The OLE coverage is beefed up. The important
`topic of the Windows 95 commoncontrols is larger and more
`detailed now;listview controls got 3 pagesin thefirst edition,
`but get 13 pages of much densertext in the secondedition.
`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 thefirst
`edition often have minor improvements scattered here and
`there.
`Is there still room for improvement? There alwaysis, butI
`believe that the mostsignificant point aboutthis book is that
`WROX made a substantial investmentin quality. Thesefolks
`spenttime and moneyto improve the quality of a book that
`was probably already making a profit. Not broaden the
`scope, not make it appear fatter, but improve the quality.
`And they succeeded! This may not be the only book you'll
`ever need on MFC,butit’s the best oneI’ve seen andthe only
`oneI'm willing to recommendsofar. I hope that readers will
`reward WROX’s effort by buying this book, instead of the
`many inferior MFC titles on the market. Maybe we ascon-
`sumers can send the message that quality really is worth
`investingin.
`
`
`
`Both products are VC++ 1.5x, 4.x compatible and comewith full source code and no
`royalties. Prices: Objective Grid: $395 SEC++: $495, Subscriptions available.
`
`www.stingsoft.com
`
`
`
`"We add class to MFC!"
`
`Buy now and save a bundle...
`
`
`
`Stingray Software, Inc.
`Limited time offer: SEC++/Objective Grid
`
`
`Tel: (800) 924-4223 / (919) 933-0863
`bundle for onty $795! Full source
`:
`Fax: (919) 933-0892
`code, no royalties. Order Today!
`
`
`Ail major credit cards accepted.
`
`
`Email: sales@stingsoft.com
`
`
`
`a Request Reader Service #150 a
`Page 64 — WindowsDeveloper's Journal
`
`
`
`
`
`
`
`Tired of Wrestling with OCX/DLLs??
`You need SEC++'and Objective Grid “two new MFC
`
`extensions that are 100% MFC compatible!
`Reei
`
`
`
`|
`eealbed
`19 Maaeeueey mes
`
`
`
`
`Objective Grid
`OHS
`
`
`
`
`
`
`
`
`
` Objective Grid (pictured) is a complete grid MFC extension. You can use the grid ina
`
`CView, CWnd and even as a popup. The grid can be bound to any external data sourca
`
`with onevirtual override. Objective Grid also features complete ODBC/DAO support, print
`
`preview,find/replace, undo/redo, UNICODE/DBCSand an extensible control architecture.
`
`
`SEC++ is a group of over 40 MFC extensionsincluding: docking views, MDIalternatives,
`zooming and panning CViews, image classes for DIB/GIF/JPG/PCX/TGA/TIFF, masked
`edit, calendar, collor well, menu button, excel-like tabbed windows,a filesystem class,
`encrypting and compressing CFile derivatives and much more.
`
`
`
`August 1996
`
`WESTERNDIGITAL CORPORATION, EXHIBIT 1012
`Page 7 of 9
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1012
`Page 7 of 9
`
`
`
`
` File3, Edit2, 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 Windows 95 logo on your
`programs,” but the authors acknowledgethat they cover only
`a few of the requirements.
`In general,
`the explanations are unclear. Chapter 7
`(“Object-Oriented Programming”) contains two pagesof con-
`crete information and thirteen pages of an abstract discussion
`of “software engineering” (Grady Booch is “Godofall thatis
`Object Oriented”). The authors define modal only as “a win-
`dow that pops up to provide or request information” and
`assert thatit “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
`conserveeither.
`Whenwriting for novices, precision and consistency in
`word choice are crucial. But the authors call a procedure a
`function (in the section in which they attemptto distinguish
`between the two) and refer to the TextQut() 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 TTable and TQuery compo-
`nents are “ancestors of a dataset class” (they’re descendants).
`The authorsare also forgetful: in Chapter 14, they promiseto
`
`Teach Yourself Delphi 2 in 21 Days
`Dan Osier, Steve Grobman,and Steve Batson
`
`982 pages
`Sams Publishing, 1996
`$35.00
`ISBN 0-672-30863-0
`
`this review was provided by George Tylutki.]
`[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 ANSIchart), this is a bad book.
`The authors say that no “prior knowledgeof writing code
`is assumed,” and they do attempt to define things such as
`“subroutine” and “variable.” In Chapter8, 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 materialis
`inaccurate, that a true novice will learnlittle. Of course, there
`are descriptions andillustrations 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 the data-aware controls.” And “to demonstrate drag-
`and-drop to yourself... open Explorer and drag a worthless
`text file onto the Recycle Bin (makesureto retrieveit if it was
`an importantfile).”
`,
`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 beeninitialized, and omitting semicolons. In Chapter 4,
`there are 29 chunks of code (completelistings 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
`
`While (I © 'g") or (1 <> 'Q"
`
`) Do
`
`makes a simple get-a-key program run forever. All of the code
`is simple and mostis inefficient. It’s available from an Internet
`site (no disk or CDis included). The book’s coverclaimsthatit
`is “Endorsed by Borland InternationalInc.” and “Approved
`for Technical Accuracy” by two Borland employees.Clearly,
`Borland’s imprimaturis no assuranceofquality.
`In Chapter5, the authors devote three pages to the impor-
`tance of using meaningful variable names, butfail to heed
`their own advice: they use Delphi’s default names (Button1,
`
`
`
`
`
`
`
`
`
`OBJECT REPORTS
`
`
`
`
`
`
`
`
`
`
`
`STOP waiting 10 minutes for a 2 page report!
`STOPcoding your report logic in some slow,
`unfamiliar, interpreted macro language!
`STOPexporting your object-oriented databaseto a
`relational database just to produce reports!
`STOPwasting your time filling in gaps with DDE!
`STOPquerying,filtering, and extracting temporary
`tables just to make your report writer happy!
`STOPcreating 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 GUI library. Static- or dynamic-link.
`
`
` SMALL! Fast! EFFicieNt! FLEXIBLE! EXTENSIBLE! REUSABLE!
`
`
`source code included!!!
`
`
`@ Borland, Microsoft, Symantec
`
`16- and 32-bit Windows
`Rollins Software Inc
`http://www.rollinssoft.com
`
`
`August 1996
`
`WindowsDeveloper's Journal — Page 65
`
`WESTERNDIGITAL CORP