Advanced Visual Basic 6: Power Techniques for Everyday Programs, 1st edition

  • Matthew Curland

Unfortunately, this item is not available in your country.


"This book takes you to places that no other book on VB and COM has ever dared to go. If you're a Visual Basic developer who refuses to recognize the commonly accepted limitations of VB, this book is definitely for you. You'll learn programming techniques that will give your applications unbelievable boosts in performance and flexibility."
--Ted Pattison

In Advanced Visual Basic 6, leading Visual Basic expert Matthew Curland demonstrates powerhouse techniques programmers can use to write high-performance, robust, and reusable VB code. Readers learn how to leverage the close relationships between VB, COM, and OLE Automation, extending the envelope of VB's capabilities and building high-quality, object-based systems.

Key topics include how to:

  • Control VB array variables explicitly to directly access arbitrary memory locations
  • Call pointers to standard, cdecl, and class module functions
  • Aggregate complete interface implementations into any VB object
  • Override functions on any interface, including those implemented automatically by VB
  • Turn any user-defined type into a lightweight COM object
  • Minimize memory usage in systems with a large number of objects
  • Safely create and manage threads in ActiveX EXEs and DLLs
  • Interact with messages to customize windowed and windowless UserControl objects

The web site accompanying this book contains extensive source code samples to enable all techniques without external DLLs. It also provides integrated type library add-ins for creating and editing referenced libraries, modifying binary compatibility files, and customizing the type libraries that VB generated for ActiveX components.

With this compendium of best practices, sophisticated techniques, and valuable utilities, VB programmers will gain a deeper understanding of VB's inner workings and be able to extend its object-oriented capabilities.


Table of contents



1. Building Blocks.

Phantom Pointers.

Living Pointers.

VBoost Objects.

2. Leveraging Arrays.

Array Descriptors.

Reading Array Variables.

Writing to Array Variables.

Array Options: Beyond Fixed or Variable Size.

Miscellaneous Tips for Using Arrays.

3. IUnknown: An Unknown Quantity.

VB and IUnknown.

Declaring IUnknown and Calling Its Functions.

4. Binding Functions to Objects.

When are objects bound to?

Name Binding at Runtime.

VTable-Binding Custom Control Interfaces.

5. Object Design Constructs.

Abstraction with Implements.

Pluggability of Calling Code.

Implements and Implementation Reuse.


6. Circular References.

Intermediate Object Solutions.

Weak References and Collections.

Transferring Object Ownership.

Hierarchical Object Models.

7. External Object Creation.

Object Creation with Class Factories.

Loading DLL Objects Directly.

Custom Loading Custom Controls.

Custom Class Objects.

8. Lightweight COM Objects.

Lightweight Basics.

Termination Code on Structures.

LastIID Lightweight.

ArrayOwner Lightweight.

Where's the Interface?

To Err or Not to Err.

Returning Errors from Lightweights.

Aggregating Lightweight Objects.

Coding the QueryInterface Function.

9. Large Systems of Objects.

Using a Fixed-Size Memory Manager.

Scribble Sample.

10. VB Objects and the Running Object Table.

Registering VB Objects with The ROT.

ROTHook Implementation Details.

11. Calling Function Pointers.

Sample: Calling DllRegisterServer.

Sample: QuickSort, Once and for All.

Function Pointers in VB for Alpha.

Stack Allocation.

Generating Your Own In-Line Assembly.

Pointers to Class Functions.

Using CDECL Functions.

12. Overriding Functions.

Cooperative Redirection.

Interface Wrapping.

Thinner Interface Wrapping.

Wrapping Issues.

13. Threads in VB.

Thread Local Storage.

Can You Avoid the Marshaling Overhead?

To Thread or Not to Thread.

Creating Threads in a Client EXE.

Coordinated Gate-Crashing in STA Apartments.

Creating Worker Threads in DLLs.

14. Strings in VB.

UNICODE Conversions.

String Allocation.

Strings as Numbers.

15. Type Libraries and VB.

VB-Generated Type Libraries.

VB-Friendly Custom Type Libraries.

Binary Compatibility.

Post-Build Type Library Modifications.

16. Controlling Windows.


Custom Window Creation.

Windowless Controls.

Appendix: VBoost Reference.

Assignment and Arithmetic Functions.

Memory Allocation Objects.

Aggregation Functions.

Index. 0201707128T04062001

Published by Addison-Wesley Professional (July 13th 2000) - Copyright © 2000