or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
More Buying Choices
Have one to sell? Sell yours here
Advanced Visual Basic 6: Power Techniques for Everyday Programs
 
See larger image
 
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Advanced Visual Basic 6: Power Techniques for Everyday Programs [Paperback]

Matthew Curland (Author)
4.2 out of 5 stars  See all reviews (22 customer reviews)

List Price: $39.95
Price: $31.54 & this item ships for FREE with Super Saver Shipping. Details
You Save: $8.41 (21%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 3 left in stock--order soon (more on the way).
Want it delivered Monday, January 30? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for Students. Learn more


Book Description

0201707128 978-0201707120 July 23, 2000
In Advanced Visual Basic 6, two of the world's leading VB experts take experienced developers "under the hood" with VB, introducing powerful techniques for writing high-performance, reusable code that leverages the close relationships between VB, COM, and OLE Automation. This book presents advanced VB programming from a COM data type approach, helping developers build more robust, effective code -- and overcome obstacles that appear as they "push the envelope" with VB. Developers learn how VB describes arrays, and how to duplicate that definition manually to perform simple type casting, and gain unprecedented control over how their programs use memory. The authors introduce best practices for interface-based design using normal VB class modules; show how to partition code for optimal reuse; and more. Next, they present advanced techniques for creating COM lightweight objects; and alternate memory management techniques that allow the creation of complex systems with many objects and minimal overhead. The book also covers threading, type libraries, component versioning, and more.

Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $5 in Amazon MP3 Credit. Here's how (restrictions apply)

Frequently Bought Together

Customers buy this book with Visual Basic 6 Complete $13.99

Advanced Visual Basic 6: Power Techniques for Everyday Programs + Visual Basic 6 Complete
Price For Both: $45.53

One of these items ships sooner than the other. Show details

  • This item: Advanced Visual Basic 6: Power Techniques for Everyday Programs

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Visual Basic 6 Complete

    Usually ships within 1 to 3 weeks.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details



Editorial Reviews

Amazon.com Review

Written by a Microsoft insider and well-respected Visual Basic expert, Matthew Curland's Advanced Visual Basic 6: Power Techniques for Everyday Programs is a unique guide to extending the reach of VB into COM and object design. This compendium of tips and strategies for doing more in VB is perfect for intermediate to advanced developers who seek to overcome bottlenecks in performance and functionality in their favorite programming tool.

The underlying message is that VB lets you work more efficiently with Microsoft COM if you implement a few extra routines that look under its hood. The more notable techniques use memory more efficiently (including code that creates large numbers of objects faster). More advanced readers will appreciate the in-depth guide to building COM objects programmatically within VB. (The book shows you how to create lightweight COM objects by using custom routines.) For the real guru, there's even a section on how to use inline assembly language within VB. Later sections turn to a host of techniques for multithreading, doing more with windows, and how to manage and customize COM-type libraries for successful real-world deployment. Armed with these custom routines and an expert's-eye view of VB internals, you'll be able to get more out of VB with faster, more versatile programs. --Richard Dragan

Topics covered:

  • Tips and strategies for extending Visual Basic by using COM
  • VB pointers and memory management
  • Extending VB arrays (accessing underlying SAFEARRAY COM objects and speeding up array performance)
  • Accessing the IUnknown COM interface from within VB
  • Binding names and COM vtables in VB
  • Improving code reuse by using aggregation in VB (overriding functions in child classes and simulating polymorphism)
  • Improving object cleanup in VB (circular, weak, and strong references and strategies for improving memory use in class hierarchies)
  • Using COM class factory APIs within VB
  • Loading DLLs and OCX controls directly
  • Lightweight COM objects in VB
  • Strategies for creating large numbers of objects efficiently
  • Accessing the VB Running Object Table (ROT)
  • Calling function pointers in VB
  • Simulating inline assembly instructions
  • Threads in VB (apartment models, worker and UI threads, and synchronization tips)
  • Improving VB performance with strings
  • Generating and customizing type libraries
  • Binary compatibility of COM objects
  • Tips for working with windows in VB (subclassing, custom window creation, and windowless controls)
  • VBoost (custom library of advanced VB routines)

From the Inside Flap

Microsoft Visual Basic has always been positioned by Microsoft as a high-level tool specifically designed to let even inexperienced programmers create Windows applications. VB squarely hits the target of being a high-level language with a rich toolset of rapid-application development features. In addition, VB is also used by a growing number of advanced programmers who make it their language of choice because it gets the job done faster and with fewer bugs than other languages.

This advanced group of VB programmers has a love-hate relationship with VB. They love VB because it takes care of the low-level details and lets them concentrate on their customer's business problems. But they hate VB because it doesn't give them control of their program at a low enough level to fully control the system. Since low-level code generally comprises only a small part of a large application, the love wins out and the programmers tolerate the problems. The vast majority of applications require only a little bit of low-level coding: to provide special UI effects, remove performance bottlenecks, reduce memory usage, and solve other problems. These finishing touches might make up only a small percentage of your application, but they are absolutely essential for shipping a professional software product.

This book focuses on blowing away the wall that many VB programmers hit as they try to polish their application. This is the same wall that managers must consider as they evaluate technologies to apply to new software projects. Managers often choose to code in a lower-level language because they fear that the project cannot be completed in VB. This choice is often unfortunate, because low-level languages are simply not needed for the bulk of today's application development. Precious weeks and months are squandered laboring through mundane C++ code just in case the project requires some low-level code later on.

The easiest way to breach the VB wall is to make use of VB's underlying data types. VB6 works very closely with COM and OLE Automation to do everything from creating objects to managing arrays and strings. Although you don't see the underlying COM types directly in VB, they are always just under the surface: you don't have to dig very far beneath VB's objects, strings, arrays, and Variants in order to find the corresponding IUnknown, BSTR, and SAFEARRAY, and VARIANT data types. COM is based on a binary standard, so the memory layout of all COM types is well documented and easily duplicated.

By learning how VB works with COM types, you can open up a whole new world of possibilities in VB. By exploring these data types, I'll break through the thin VB veneer and show you not only what is happening under the surface of normal VB code, but also how to produce your own customized objects. Once you've convinced VB that a piece of customized memory is actually an array or an object, you can use normal VB code to manipulate your data. I am not trying to show you how to write C++ code in VB. I'll show you how to give VB a boost so that VB code runs better and supports otherwise unavailable capabilities.

I have three main goals for readers of this book. Learn how to write better standard VB code. Even if you come away from this book and decide that you don't want to use the advanced techniques, you will still be able to write VB code that is fundamentally more sound and that performs better. Learn a new set of advanced VB programming techniques. You can use these programming techniques to enhance your everyday coding productivity by minimizing code reuse and enabling otherwise unavailable algorithms. Following VB's lead, I have made every attempt to package the low-level technology in this book in such a way that you can easily use it without fully understanding what is happening beneath the surface. Intended Audience

This book is specifically for advanced Visual Basic programmers, but it is also for all VB and COM programmers who want a better understanding of how VB works. I strongly advise that anyone reading this text have a working knowledge of either VB or COM. If you don't have a working knowledge of VB, then please buy another book along with this one.

You will get a lot of value out of this book even if you don't consider yourself an advanced VB programmer and don't understand the low-level manipulations as well as I do. The Web site provides easily accessible code that enables common tasks such as subclassing, as well as the previously inaccessible constructs of object aggregation, calls to function pointers, direct memory sharing, and worker thread creation. With just a little bit more of your own code, you get scoped termination events on user-defined types, lightweight object systems that scale painlessly to thousands of objects, custom window creation, and function overriding. You also get three powerful type library add-ins that let you modify both the type libraries VB consumes and the ones it generates.

Although much of the enabling code in this book is very low-level, the book doesn't focus on how to write code at this level. Rather, the goal is to produce a set of tools that you can use repeatedly for everything from full interface implementation reuse to painless hierarchical object models. You can take advantage of the aggregation technologies to greatly improve code reuse by making composite objects that use stock implementations of common interfaces. The longer I use this technology, the more I find myself using it to simplify my day-to-day code. Every VB6 programmer will find code in this book that can be applied to their everyday programming problems. Future Compatibility

The marketing machine for VB7 is already in motion, so you may already be aware that some of the technology I'll show you is natively available in VB7. For example, VB7 has native support for overriding functions with inheritance, calling function pointers, and providing pointers to class functions. If you make use of the technology in this book to use these design principles now, you can move your application to VB7 simply by replacing the framework calls with the native VB7 equivalents. Only the framework code should change: your design constructs and code logic can remain the same. I'll post more information on VB7 compatibility on the book's web site at PowerVB as more information is made available, and I may also be reached via email at Matt@PowerVB. What You're Getting

The book is laid out in sixteen chapters and one appendix. The text alternates between a low-level look at the data underlying array, object, and string types and practical applications of these structures. 1: Building Blocks

Many of the techniques in this book rely heavily on the ability to manipulate the memory underlying VB's array and object types. Reading and writing this low-level data requires direct memory access, otherwise known as "pointer manipulation." VB doesn't provide much explicit support for pointer operations, but it does provide enough to launch us on our journey. The first chapter looks at how VB constantly handles pointers for you, as well as how to access real pointers in VB. You'll also see an introduction to the supporting VBoost objects that come with the book. Many of the samples in the book require VBoost objects, so you need to know how to initialize VBoost before you can run other samples. 2: Leveraging Arrays

I'm starting with arrays, not because I think they're the most commonly used construct in and of themselves, but because they allow you to use standard code to make VB modify arbitrary memory locations. VB's array variables are pointers to an array descriptor structure called a SAFEARRAY. VB automatically allows you to write to the data portion of an array, but you can open up a whole world of direct memory access by reading and writing to the descriptor and the array variable in addition to the data. You'll also see how to best use arrays in straight VB code. The techniques shown in this chapter are used throughout the book to enable and optimize other technologies. 3: IUnknown: An Unknown Quantity

VB is constantly interacting with the COM IUnknown interface, but you never see this interface in normal VB code. IUnknown calls are costly in terms of runtime overhead and code generation so understanding the IUnknown interface is very important. Visual Basic frequently calls IUnknown for you, even though you don't call it yourself. Familiarity with IUnknown is also required to build COM objects from the ground up, as you'll see in later chapters. You can't get very far into customizing VB's COM objects without knowing something about VBs interactions with the QueryInterface, AddRef, and Release functions. 4: Binding Functions to Objects

"Binding" is the general term used to describe how one function calls code in another function. Binding to an object implies that code associated with an object class is applied to a specific instance of that class. You'll see how the VB compiler determines when and how to bind, and how to enable fully dynamic binding at runtime. You'll also see how to bypass the layers that VB puts around a custom control in order to minimize runtime overhead by talking directly to a control's native vtable interface. 5: Object Design Constructs

A well-designed architecture, regardless of the technology employed, is probably the most important factor in the success of your program. You can refer to your program design philosophy as object-oriented, interface-based, optimized for reuse, or all of the above. Regardless of your phraseology, your goal is to write a stable and easily maintained program. This chapter looks at VB approaches to the tried-and-true principles of pluggable components, abstraction, and code reuse. VB natively offers the Implements keyword to provide a shape for your object, and this keyword can take you a long way towards reaching your design goals with interface-based programming. However, you'll find yourself chafing at the inability to achieve easy implementation reuse. I'll take you outside the confines of VB in order to enable full implementation reuse by aggregating existing objects. This gives you the ability to combine multiple implementations into a single object. 6: Circular References

You will run into circular-reference problems almost every time you design an object model. If you know in advance how to handle this situation by using strong references (normal object variables) and weak references (pointers to objects), you will have the tools you need to design object systems without any teardown surprises. To help you compare different approaches, I'll also show you the steps required to solve circular reference problems without pointers (including the pitfalls that make this solution incomplete and overly cumbersome). I'll then apply the weak reference techniques to collections, object ownership, and pain-free hierarchical object models. 7: External Object Creation

All COM objects can be placed within one of two categories: those inside your project and those outside of your project. COM objects are never created directly. Instead, COM uses the registry to create class factory objects, which are then used to create actual class instances. It is surprisingly easy to deal directly with the factory in order to load objects directly from ActiveX DLL and OCX components based on the application path rather than the registry. You'll see how to use aggregation and class factory loading to dynamically specify controls as MDI pages. I'll finish by showing you how to use the CoRegisterClassObject and CoGetClassObject APIs to offer your own application-level singleton objects, creating an easily retrievable context object across multiple components. 8: Lightweight COM Objects

VB creates full-blown COM objects for you, even when you don't need to use all of the COM support. Lightweight COM objects have just enough COM capabilities to be recognized as objects by VB, but not enough to add the large memory overhead of VB-created objects. The only difference between an exciting COM object and a boring (but lightweight) user-defined type (UDT) is a vtable pointer, so you can turn a UDT into a COM object by providing your own vtable to the UDT. You'll see a few simple lightweight objects that give you stack-based local objects, termination code in local- or module-level structures, and the ability to implement arbitrary interfaces that can be aggregated into normal VB objects. Along the way, you'll see all the steps needed to create arbitrary objects: vtable layout, memory-allocation options, reference counting, interface recognition with QueryInterface, and a number of options for generating and handling errors. 9: Large Systems of Objects

VB class modules are perfect for creating a small number of highly complex objects. But the overhead of each object makes it prohibitively expensive to create a large number of very simple objects. Algorithms ranging from scheduling tools to compilers often require thousands of small objects rather than a few large ones. You'll see how to use a custom memory manager to allocate lightweight objects without compromising the coding experience of consuming those objects. When you're done with the objects, you can free them individually or use a single call to reclaim the memory used by the entire object system. 10: VB Objects and the Running Object Table

You can't retrieve VB objects with the GetObject keyword because VB doesn't provide a mechanism for registering public objects in the running object table (ROT). This chapter describes the use and implementation of a lightweight object that lets you place an object in the ROT and automatically remove it when your object terminates. The implementation details look at advanced lightweight objects topics, such as support for multiple interfaces in a single lightweight object and how to hold weak references to secondary interfaces safely. 11: Calling Function Pointers

VB first offered support for proffering function pointers with the addition of the AddressOf operator in VB5. In addition to its primary purpose of enabling a host of Win32 API calls from within VB AddressOf also enables you to create the vtables for lightweight objects. This chapter defines a lightweight object that turns the tables on VB by letting you call a function pointer as well as provide one. Function pointers open the door to a number of possibilities, such as dynamically loading (and unloading) DLLs, writing arbitrary sort routines, using explicit stack allocation in VB, and calling inline assembly code. The ability to call standard function pointers still leaves a couple of holes, so I'll also show you how to associate an object instance with a function pointer (greatly simplifying standard operations, such as subclassing windows), and how to call cdecl functions, enabling you to call entrypoints in MSVCRT and other cdecl DLLs. 12: Overriding Functions

Somewhere in between Implements, which offers no implementation reuse, and aggregation, which offers full implementation reuse, lies partial implementation reuse, which is one of the key benefits of inheritance. The usefulness of inheritance relies heavily on a derived class's ability to override the implementation of specific functions in order to make calls to the base class's functions reach the derived class first. This chapters shows you how to override functions either by using function pointers to redirect calls from the base class or by customizing the aggregation techniques for individual objects in order to override functions without any cooperation from the base class. You have to write a little extra code to use inheritance in VB6, but that's far better than not being able to do it at all. 13: Threads in VB

"VB supports multithreaded components" is a simple statement, but it can mean many things. This chapter tries to make some sense of the term multithreaded, and shows you how to make full use of VB's threading capabilities. You'll see how VB runs within the context of COM apartments to initialize itself thread by thread, and you'll see how to spin extra threads in a VB ActiveX EXE project. I'll also show you how to launch worker threads in a DLL with cross-thread object support (offering optimal programming flexibility) orwithout object support (offering optimal performance). 14: Strings in VB

Visual Basic makes string manipulation very easy. You have a number of operators and string functions at your disposal. However, this does not mean that string manipulation is free. Every string is a block of memory, and larger strings are much more expensive than smaller strings. Automatic string caching can lull you into a false sense of security that vanishes instantly when strings grow beyond the cache size. Learn the true costs associated with VB's String type and how to minimize your string overhead, including how to treat a string as an array of numbers for blazingly fast string algorithms. 15: Type Libraries and VB

Although VB relies on type libraries to compile components and to expose those components to external applications, the day-to-day work of consuming and generating typelibs takes place almost completely behind the scenes. The only direct contact you have with typelibs is through the Project/References dialog. Integrated typelib generation is almost always the right thing, but in most large projects there will be times when you desperately need to get a hand inside a typelib. This chapter shows you how to create typelibs for VB to consume and the reasons why you might want to make custom edits to binary compatibility files and the typelibs that are generated with all ActiveX projects. This chapter does not document the PowerVB Type Library Editor, PowerVB Binary Compatibility Editor, or PowerVB Post-Build Type Library Modifier add-ins included on the book's Web site. Instead, it lays out the requirements for the actions you can perform with these tools. 16: Controlling Windows

Most client-side VB programs are built around windows. In fact, VB gained its first foothold in the programming world because it made it so easy to create Windows applications by separating you from the complexities of direct interaction with window objects. But this protective layer brings with it a certain amount of frustration if you try to interact with windows at the level of creation and window procedure. This chapter applies the function pointer, direct memory access, lightweight object, and function overriding techniques from earlier chapters to window objects in general and custom controls in particular. You'll learn about a lightweight and pain-free subclassing approach to control incoming window messages. With subclassing tamed, I'll move on to custom window creation and creating windowless controls that act just like windowed controls. A: VBoost Reference

The VBoost objects are a small library of functions that provide the base technology pieces required for many of the techniques in the book. The book comes with both a C++ implementation of VBoost (VBoost6.Dll) and a VB implementation in VBoost.Bas, which allows you to remove the external VBoost dependency. Both implementations provide everything you need to perform aggregation, custom IUnknown hooking, and function overriding. You also get two optimized memory-management variations and a set of assignment and arithmetic functions that greatly simplify the manipulation of pointers in VB. In addition to the code, VBoost includes a set of typelibs categorized by functionality. These typelibs enable easy compilation of all the files in the Code directory on the Web site. Acknowledgments

I would like to thank first and foremost my talented and beautiful wife Lynn for putting her own endeavors on a compressed schedule while this one mushroomed and took on a life of its own. Thanks to my daughter Elizabeth, who has grown during this book from dragging me away from the computer to telling me when it's time to come play. Young children always know what's most important.

Thanks to the tech reviewers who worked through the many details of the book: Troy Cambra, Dan Fergus, Michael Kaplan, Karl Peterson, Ben Wulfe, and especially Brian Harris, who has often been the first user of early (and painfully unrefined) incarnations of many of the techniques shown in this book.

Special thanks goes to Bill Storage for his help in defining the shape for this project, for being a good friend, and for always being so enthusiastic about my work. Bill, I've thoroughly enjoyed working on articles with you and defining the VB black-belt space together.

Thanks to Glenn Hackney, who has endured many unplanned interruptions over the years to act as a sounding board for my new ideas and a rock-solid source of technical direction.

Thanks to my Italian friends Giovanni Librando, for believing in me over two book projects; and Francesco Balena, for writing an unparalleled foreword. It has been an honor to associate with both of you gentlemen.

Thanks to Kristin Erickson, Rebecca Bence, and Jacquelyn Doucette at Addison-Wesley for being friendly and patient as deadlines loomed. Slightly less thanks to Gary Clarke, who talked me into this project a year ago with the lure of a small book. It grew. He knew it would.

Thanks to the birds who've reminded me the last month that it was past time to go to bed. I'll miss the peace at dawn, but not as much as I've missed going to sleep in the dark.

0201707128P04062001


Product Details

  • Paperback: 528 pages
  • Publisher: Addison-Wesley Professional (July 23, 2000)
  • Language: English
  • ISBN-10: 0201707128
  • ISBN-13: 978-0201707120
  • Product Dimensions: 9.2 x 7.1 x 1.1 inches
  • Shipping Weight: 1.9 pounds (View shipping rates and policies)
  • Average Customer Review: 4.2 out of 5 stars  See all reviews (22 customer reviews)
  • Amazon Best Sellers Rank: #1,119,486 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

22 Reviews
5 star:
 (15)
4 star:
 (1)
3 star:
 (3)
2 star:
 (1)
1 star:
 (2)
 
 
 
 
 
Average Customer Review
4.2 out of 5 stars (22 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

57 of 61 people found the following review helpful:
3.0 out of 5 stars For Gurus Only ?, December 21, 2000
By 
This review is from: Advanced Visual Basic 6: Power Techniques for Everyday Programs (Paperback)
A most well-written book with (for this programmer) some structural problems that do not diminish its technical value as an aid to deeper understanding of the "machinery" behind the "user illusion" of Visual Basic.

This book requires a type of deep knowledge about COM and the underlying interface between Visual Basic and the Windows 32 operating system which you will probably not have unless you have been a C/C++ programmer ... or have done extensive work with trying to optimize applications writen in VB using the API interfaces to Windows provided by VB.

It offers very complex solutions to very complex problems. Implementing the solutions requires you to depend upon the author's provided bridging-code ... a package called "VBBoost" ... which, for most mortals, will be a set of "black boxes."

The problem with that is that as soon as Windows and VB change ... and they soon will undergo a most profound transformation when .Net and VB7 arrive ... how will any real-world solution implemented using the author's bridging-code tools be reliably maintainable ? Or even be usable in the radically different architecture ?

Personally, I would not dare use the tools provided by the author ... which he will update and maintain on his web-site as he has time ... for any commercial code. For me there is difficulty with the MS provided controls whose quirks require staying on top of so many Knowledge Base articles, and which often have to be extended through API code to really tap their full functionality.

To use the techniques in this book with confidence I would have to spend more time than I wish to going back and learning the depths of COM and Win32 ... and I'd just about have to do that by studying the C/C++ literature ... which I'd then have to mentally translate back to VB.

This would undoubtedly make me a better programmer through sleep deprivation, but it is not consistent with my use of VB for rapid prototyping and application development at a fairly high level of abstraction.

If you are a VB Guru already ... or are really ready to step out of the "VB Bubble" into the depths of COM and Win32 ... then I think ... as the other reviews attest ... this is THE book for you. The author, imho, has a genius for explaining very complex interactions between the different internal layers of software in Windows.

I do not regret buying this book, and I really enjoyed the author's clear, expository, style. To me he writes as cleanly and enjoyably as Francesco Balena, Karl Peterson, and a very few others about such a deeply technical aspect of VB.

His web site with updates to the software examples and revisions and corrections for the book shows he is committed to helping people use his work.

So, in conclusion, I have to say that while I wish I was at the level where I could understand and use the knowledge presented so well in this book, I am not.

I have mixed feelings about writing this review ... as I do about the book; I wouldn't want to discourage anyone from buying this book which is an important contribution to the "distaff" VB literature (a universe until now mainly populated by Appleman and McKinney).

What I would love to see would be a book by Francesco Balena, my favorite VB author, that would somehow get me to the point where I could grok Curland's book without spending a year in the C/C+/API gulag. But perhaps Francesco has better uses of his time :)

Please do check out this book yourself !

Bill Woodruff, dotScience

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


18 of 18 people found the following review helpful:
5.0 out of 5 stars I wish I could give this Ten Stars -- it is well deserved., March 2, 2001
By 
Brian S (Ashburn, VA USA) - See all my reviews
This review is from: Advanced Visual Basic 6: Power Techniques for Everyday Programs (Paperback)
I wish I could give this Ten Stars -- it is well deserved.
Let's face it Visual Basic, by design, has many pitfalls, walls and cages -- with Matt Curland's Advanced Visual Basic 6 any developer can be free to design creatively without keeping track of what they can and cannot do.
This book is a must for Software Engineers developing in VB. After reading many books on Visual Basic and growing utterly exhausted by the phrase "beyond the scope of this book" I have finally found a VB book that caters to the Visual Basic Developer who needs to extend VB beyond the basics and bring professional quality level applications/components to the Windows Market.
The techniques offered are not only applicable to 'everyday programs', but also absolutely indispensable for creating VB applications with a fully professional look and feel.
For any Software Engineer who grew up writing Windows applications in C or COM components in ATL and who want to parlay that knowledge in the Visual Basic Environment, this book will take you there and beyond.
The text on the infamous VBized TypeLibrary is the only concise writing I have ever come across that fully defines what Visual Basic does when you add to an existing interface and rebuild as well as what you can do to prevent additional Interface IDs from being created.
For large development teams sharing components, the binary compatibility tools,(...), are worth the price of admission alone. The binary compatibility tools is a must for any large extended VB project, and the post-build pieces give you simple point and click control over your finished product -- including elimination of external typelib dependencies and changing default interfaces.
I cannot say enough just how much this book has been a great addition in the development of new components and applications.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


19 of 20 people found the following review helpful:
5.0 out of 5 stars The title/subtitle is accurate!!!!!!, October 6, 2000
This review is from: Advanced Visual Basic 6: Power Techniques for Everyday Programs (Paperback)
Matthew Curland is a world class Windows programmer and he really knows about VB6. Skilful people like Mathew Curland mostly write about the Windows platform in terms of C++. But Matthew Curland takes VB to the same level as any other recognized authority in the progr. book market. This guy seem to know secret things about VB runtime that no other available source has ever shared with the many VB users. And he is not just showing of. The book is actually accompanied with some very nice source code that I myself are prepared to use in real life projects. The list of key topics is too long to present but it is exciting, unique and do not exist anywhere else (MSDN, other books). It's a heavy book! Not like other VB books measured in size, but in style. Many chapters present really hard core techniques so be prepared to study the book (read the source code) very carefully. But I feel the return is worth the effort. After reading this book I am converting C++/ATL binaries into VB source code to minimize DLL dependencies. This is stuff I created in C++ because I never imagined VB would stand a chance doing it right. In short its a *GREAT* book and I am not even half finished 'stealing' all Matt's great code.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums


Listmania!


Create a Listmania! list

So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject