throbber

`-» 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

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