Readme
This is an extract of information provided by Microsoft to those that has already bought Visual Basic 4.0. It's kinda useless when you already have it, so read it before you buy it.
Author: Microsoft

Will the 16-bit and 32-bit versions of Visual Basic 4.0 run on Windows 95?

The 16-bit version of Visual Basic for Windows version 4.0 will run on Windows, Windows for Workgroups, Windows NT, and Windows 95. Under Windows NT and Windows 95, it is handled as any other 16-bit application. The 32-bit version will run only on Windows 95 and Windows NT version 3.51 or greater. On Windows NT, your application will run in a 16-bit environment provided by the Windows On Windows (WOW) layer, which allows Windows NT to run 16-bit applications in a protected environment.

Can I load a VBX control in the 32-bit version of Visual Basic?

VBX custom controls are limited to 16-bit and are fully supported only by Visual Basic 3.0 and the 16-bit version of Visual Basic 4.0. Visual Basic 4.0 uses the new OLE control model as its main control architecture. Visual Basic has moved to this new, open control model to support controls in both 16- and 32-bit environments. The OLE Control architecture merges all of the benefits of the VBX custom control with OLE. The new OLE Controls can be used in any OLE client application and are available on 16-bit as well as 32-bit platforms. Visual Basic 4.0 includes OLE controls (.OCX) that are upgrades to the VBX custom controls that shipped in previous versions. Automatic conversion is provided to replace the VBX references in projects with references to OLE controls. Visual Basic 4.0 will ship with OLE equivalents of all of the controls shipped in Visual Basic 3.0, in addition to several brand new OLE controls in both 16- and 32-bit versions. Visual Basic will continue to support VBXs in the 16-bit version only.

How can I write an application for 16-bit and 32-bit systems at the same time?

Microsoft has taken a number of steps to assure source code compatibility between 16-bit and 32-bit applications:
  • All Visual Basic-provided language is portable.
  • All custom controls in the product have identical object models.
  • Basic file I/O enables files to be shared by applications running on different platforms.
Visual Basic 4.0, Professional and Enterprise Editions include both 16-bit and 32-bit versions of VB.EXE. Using a single source code tree, you can create 16-bit applications that run on Microsoft Windows 3.X, 32-bit applications that run on Microsoft Windows NT 3.X (Intel), and 32-bit Windows 95-based applications. By taking advantage of the new conditional compilation switches in Visual Basic 4.0, you can quickly recompile the same source code to target and exploit the capabilities of different Windows platforms. Conditional compilation switches allow you to easily target different platforms or languages using a single source code tree and a simple recompile. Visual Basic provides both the language and command-line support for conditionally compiling declarations and procedural code into an application. Both the Project Options dialog and the Visual Basic 4.0 command line allow the setting of constants that are subsequently used in evaluating #If...#Else...#End If structures.
#If Win16 Then	' Use Win16 calls.
	Declare Function GetWindow Lib "User" (ByVal hWnd As _
	 Integer, ByVal wCmd As Integer) As Integer
	#Const ANSI=True
#Else		' Use Win32 calls.
	Declare Function GetWindow Lib "User32" (ByVal hWnd As _
	 Long, ByVal wCmd As Integer) As Long
	#Const ANSI=False4
#End If

Can a Visual Basic 4.0 32-bit application run on Win32s?

No. Win32s is a subsystem of DLLs which extends the Windows 3.1 16-bit operating system by translating 32-bit calls to the underlying 16-bit operating system. Programs written with the 32-bit version of Visual Basic running on Windows 3.1 with Win32s would generally run slower (due to the extra memory and overhead of the translation layer) than the same program created with the 16-bit version of Visual Basic. Instead of using the more limited Win32s features, Microsoft chose to have the 32-bit version exploit the more advanced 32-bit features available only on Windows 95 and Windows NT.

Can a developer create DLL files with Visual Basic 4.0?

Visual Basic version 4.0 includes an option to make OLE DLL files. These files behave similarly to standard DLLs except that they use OLE as an interface to the objects described by the DLL. With Visual Basic 4.0, you can create reusable business objects that can be shared across applications. Rather than having to create DLLs using a C compiler or other language, you can now easily create reusable objects entirely from within Visual Basic. These OLE components accomplish the reusability of DLLs and are easier to reuse because they are essentially self-documenting. At design time you can browse the components with the Object Browser and examine what methods and properties the OLE objects expose. Similar to the way in which VBX vendors encapsulated their expertise into controls, Visual Basic programmers can now rapidly package their business rules, commonly used code libraries, as well as any legacy code into reusable, programmable objects. Once created, these libraries of reusable objects, complete with custom properties and methods, can be used by any application capable that supports OLE Automation. A few examples of applications that can reuse these objects are Visual Basic 4.0 (which can both use and create OLE objects), Microsoft Excel 5.0, Microsoft Access 2.0, and Microsoft Project. Future versions of Microsoft SQL Server, Microsoft FoxPro, Microsoft Word For Windows, and Windows will also take advantage of these objects.

Does this mean that I can use a Visual Basic created DLL from other languages?

Yes, you can use the OLE DLLs from other languages (such as Microsoft Visual C++), but you do not declare the functions in the DLL like you would a Windows DLL function. Instead you access the functions via the OLE interface.

Will Visual Basic 4.0 exist for MS-DOS and Macintosh platforms?

Visual Basic 4.0 incorporates the portable Visual Basic, Applications Edition language engine. Microsoft Excel 5.0 was recently released for the Macintosh and along with it the Visual Basic for applications component of Microsoft Excel, so the language engine is there. There are no commitments at this time for a version of Visual Basic for the Macintosh or for MS-DOS, but consideration is one based strictly on a good business case.

Does a specific version of 32-bit Visual Basic exist for Windows NT on MIPS, ALPHA, PPC, platforms?

Preliminary discussions have occurred concerning all other major architectures that support Windows NT, and although no commitments have been made, this is certainly a possibility for the future. The 16-bit version of Visual Basic 4.0 will run on any machine which can run Windows NT. Windows NT includes a Windows On Windows (WOW) emulation layer which can run 16-bit applications.

Does the 32-bit version of Visual Basic provide statements and functions for multitasking?

Currently Visual Basic 4.0 does not support threads on Windows NT 3.5 or Windows 95. Research indicates that the main reasons Visual Basic programmers would want to use threads in a Visual Basic application would be for asynchronous database queries, printing, or file I/O operations. Microsoft is expecting providers of data sourcing OLE controls to provide the former, and will consider the latter for future versions. Does Visual Basic 4.0 use the new controls of Windows 95? Visual Basic does use the new Windows 95 controls, but because these are 32-bit controls for a 32-bit operating system, they are only available in the 32-bit version of Visual Basic.

Do you know if the third party vendors will be selling OLE Controls soon?

There a large number of control developers who are migrating existing VBX controls to the OLE control model as well as those who are writing new controls. There should be a large number of controls available immediately after Visual Basic releases.

Do I need to change my Visual Basic 3.0 applications to compile with the 32-bit version of Visual Basic 4.0?

There are two significant changes that need to be addressed to re-compile a Visual Basic 3.0 application to Visual Basic 4.0 32-bit. First, if API calls are being used by the application, you must change your API calls to the appropriate target environment. Win16 and Win32 provide APIs with similar functions but different Declare statements (to take into account the size of the data types). Visual Basic 3.0 typically uses the 16-bit declarations. The 32-bit version of Visual Basic 4.0 must use the 32-bit API declarations. Rather than simply replacing the existing API calls, you can use Visual Basic 4.0's conditional compilation feature to target both 16- and 32-bit platforms from a single source code tree. Second, the 32-bit version of Visual Basic 4.0 makes use of the newer OLE Control architecture exclusively. VBXs are not supported for the 32-bit version. This is not a problem for VBX controls shipped with previous versions of Visual Basic. All of these controls have OLE Control counterparts (in Visual Basic 4.0, these files all end in .OCX). You will be prompted to upgrade these controls the first time you load your project into Visual Basic 4.0. However, you will need to acquire OLE Control upgrades to any third-party controls used in your applications. While Microsoft has made the technology available for control developers to easily port their existing VBX controls to the new OLE Control technology, there is no guarantee that all of the available VBX controls will be available as OLE Controls. Contact the control vendor for upgrade information. The 'Basic Language' code of both the 16-bit and 32-bit versions of Visual Basic are fully compatible. Creating a 32-bit application that runs on either Windows NT 3.5 or Windows 95 from a Visual Basic 3.0 (or 16-Bit Visual Basic 4.0) application is a simple matter of loading an existing 16-bit Visual Basic application into the 32-bit version of Visual Basic and choosing the Make EXE File command from the File menu.

Do I need to change my Visual Basic 3.0 application to compile with the 16-bit version of Visual Basic?

No. To run a Visual Basic 3.0 application with the 16-bit version of Visual Basic, load the source code into the 16-bit version of Visual Basic 4.0 running under Microsoft Windows 3.x, Microsoft Windows 3.x, Windows NT 3.51, or Windows 95, and make an .EXE file.

Does Visual Basic 4.0 support DBCS?

All versions of Visual Basic 4.0 are Double-Byte Character Set (DBCS) enabled, in that all dialogs accept DBCS characters, all edit controls can accept DBCS text, and strings specified in code can contain DBCS characters.

In what languages is Visual Basic 4.0 available?

Visual Basic for Windows version 4.0 is slated for release in French, German, Italian, Spanish, Chinese, and Japanese.

What is the difference between Standard and Professional versions ?

Feature Highlights Standard Professional and Enterprise
Visual development environment for fast assembly through drag-and-drop of pre-built components and controls Yes Yes
New extensible design environment lets you add third party products such as source code control and CASE tools as well as wizards you create yourself in Visual Basic (Professional and Enterprise only) to further customize your design environment Yes Yes
Support for the widest use of pre-built component types for rapid development: OLE controls, VBX controls (16-bit only),OLE objects, and DLLs Yes Yes
Advanced structured programming language common across many Microsoft applications. Now includes object-oriented constructs For Each and With Yes Yes
Color-coding editor and incremental compiler with syntax checking "on-the-fly" and new line continuation character Yes Yes
Full-featured debugging with watch variables, breakpoints, and procedure stack Yes Yes
Rich set of standard controls: Grid, Label, Frame, CheckBox, ComboBox, CommandButton, DirListBox, Line, Shape, DriveListBox, FileListBox, OptionButton, PictureBox, HScrollBar, VScrollBar, TextBox, Timer, and CommonDialog Yes Yes
Conditional Compilation for advanced debugging or targeting of both 16- and 32-bit operating systems from a single source code tree Yes Yes
Support for Windows Resource files provide no-recompile customization Yes Yes
Professional controls: six more 3-D Interface Controls, Animated Button, Gauge, Graph, Key State, Bitmap Clipping, Messaging API (2 MAPI controls), Multimedia MCI, Communications, Outline, Masked Edit, and Spin Button No Yes
Support for Windows 3.X, Windows NT 3.51 and Windows 95 No Yes
Enhanced Jet database engine (includes query optimizer, transaction processing, multiuser support, cascading updates and deletes, optimistic and pessimistic locking, and more) Yes Yes
Data exchange with the Microsoft Access, Visual FoxPro, dBASE, Paradox, and Btrieve (16-bit only) databases as well as Microsoft Excel and Text formats Yes Yes
Data Manager, for creating and manipulating databases, tables, and indexes Yes Yes
Data control, to access databases without writing code, can now supply dynasets, tables, and snapshots Yes Yes
Many data-aware controls, for building database front ends without writing code: TextBox, CheckBox, Label, PictureBox, Image, DBGrid, DBList, DBCombo, Masked Edit, 3D Panel, and 3D Check Box Yes Yes
Support for data sourcing OLE Controls for direct access and control binding to remote data Yes Yes
Full ODBC 2.0 support, including scrollable cursors No Yes
Microsoft SQL Server driver No Yes
Full programmatic data-access layer for fine-tuned control of the integrated Jet database engine through data access objects No Yes
OLE container control for using OLE components in your application dynamically at run time Yes Yes
OLE Automation support for controlling OLE components Yes Yes
OLE Object Browser provides fast navigation of OLE objects and their syntax as well as providing direct cut-and-paste capability into Code window Yes Yes
OLE Compound Document objects on the Toolbox for quick drag-and-drop access to pre-built components such as the Microsoft Excel charting object with full in-place editing and toolbar and menu negotiation Yes Yes
OLE Automation server creation allows the building of reusable libraries of your own objects that can be used by any tool with OLE Automation support (Excel, Project, Access, Visual C++) No Yes
Context sensitive Help puts the information you need at your finger tips Yes Yes
Improved Setup Toolkit and SetupWizard for creating custom setup programs and automating the process of distributing applications Yes Yes
Sample projects and hundreds of usable code clips in online Help Yes Yes
Icon Library with over 450 icons to enhance your applications Yes Yes
New Crystal Reports for Visual Basic 4.0, including improved database engine integration, fine-tuning during print preview, integrated e-mail support for report distribution, two-pass reporting, grouping, mailing labels, and drag and drop all with no run- No Yes
Crystal Reports Control allows easy report runs from an application No Yes
Online Windows 3.1 API reference (Win32 API reference on the CD-ROM) No Yes
Over 250 assorted bitmaps and metafiles for use in your applications No Yes
Help Compiler for authoring Help files for Windows-based applications No Yes

What does the Enterprise Edition add to this?

The Enterprise Edition contains all of the features listed above for the Professional Edition. In addition, the Enterprise Edition adds the following features. Remote Data Objects (RDO) and RemoteData control (RDC) Visual Basic 4.0, Enterprise Edition is bringing an entirely new paradigm to front-end developers. RDO has a set of data access objects not unlike Jet but tuned and optimized specifically for SQL Server. It will also run against Oracle. This means that it can gracefully and efficiently deal with server-side cursors, asynchronous queries, multiple result sets, input, output, and return value parameters from stored procedures and much, much more but using the same programming paradigm that Jet uses. RDO can create a "cursorless" result set and three other types of cursors (static, dynamic, and keyset). It promises to become the new standard for accessing SQL Server from Visual Basic. The RemoteData control is a replacement for the Jet Data control. It can connect bound controls to a selected ODBC data source. Neither the RemoteData control nor RDO require any vestige of Jet, which gives it a much smaller footprint (about 250K).

Visual SourceSafe

The Enterprise Edition of Visual Basic includes Visual SourceSafe, a fully integrated source code control system. It is an easy-to-use tool for team software development. Visual SourceSafe tracks changes to files and stores the changes so that files, such as code modules, can be easily and economically reused.

Remote Automation

OLE Automation servers are an ideal mechanism for providing business, data, and application services. Once a service has been implemented as an OLE server, it can be used as an application component by developers throughout the enterprise. Such services can be implemented very rapidly using Visual Basic. Remote Automation provides the infrastructure for easily extending the OLE client/server relationship across networks. It allows an application's OLE client components to access services provided by OLE servers anywhere on the network.

What is new in Visual Basic 4.0?

Visual Basic, Applications Edition

Visual Basic, Applications Edition, version 2.0 (VBA) is added as the language engine in Visual Basic. This version of VBA is fully backward-compatible with earlier versions of the stand-alone Visual Basic product, and with Visual Basic, Applications Edition, version 1.0, which is included in Microsoft Excel version 5.0 and Microsoft Project version 4.0. The insertion of VBA in Visual Basic 4.0 makes it easier to program OLE Automation objects, and means that Visual Basic code can be easily moved between modules in the applications that support OLE Automation.

Creating Custom Objects and Collections

You can create custom objects, with their own properties and methods, and assemble them into an object model. The definitions of these objects are called classes, and are contained in Visual Basic's new class modules. Your object model can include custom collections, built using Visual Basic's new Collection object.

OLE Automation Servers

Using OLE Automation in Visual Basic, you can borrow the functionality of other applications by controlling their objects from within your Visual Basic application. Visual Basic 4.0 also gives you the capability of creating your own OLE Automation servers. You can use Visual Basic 4.0, Professional Edition to create applications which expose objects with an interface of your own design, and are callable from applications supporting OLE Automation, including Visual Basic, Visual C++, Microsoft Project, Microsoft Access, and Microsoft Excel.

Property Procedures

Property procedures allow you to add custom properties to form modules, standard modules, and class modules, and to execute code when the property is set or retrieved. For example, you could add an Inverted property to a form. When Inverted is set to True, the code in the associated property procedure invokes an API to invert a bitmap on the form.

32-Bit Support and Conditional Compilation

The 32-bit version of Visual Basic is designed to let you create versions of your programs to run on 32-bit systems, using the same source code as for 16-bit versions. The 32-bit version of Visual Basic supports long filenames in all project components and relaxation of most of the 64K capacity constraints for properties and the Visual Basic language. With conditional compilation, you can embed platform-specific code segments in #If...Then statements, and selectively build versions of your application for different platforms. Jet 3.0 Many additional features of the Jet 3.0 database engine are available in Visual Basic 4.0, Professional Edition, including the ability to create new databases, change database structure, and the ability to manipulate database security and referential integrity. In addition, Visual Basic 4.0 adds the following features:
  • A 32-bit development tool for creating 32-bit applications
  • Migration to OLE controls
  • OLE insertable objects in the Toolbox
  • Open IDE extensibility
  • Source code management (SourceSafe)
  • Improved Crystal report writer
  • New data-aware controls
  • Line continuation character, a much requested feature
  • Commands to allow use of Resource files

How do I apply for a Microsoft Beta program?

You can request to become a beta site by writing to:
Microsoft Corporation
Attn: XXXX Beta Test Administrator
One Microsoft Way
Redmond, WA 98052-6399
where XXXX is the product you want to apply for. Various products within Microsoft have varying capacity to respond to those who are not selected. Unfortunately, due to the volume of requests, the Visual Basic group is not able to inform those who were not selected for the beta.

Where can I find out more about Visual Basic certification?

For information regarding the Microsoft Certified Professional program, the developer certification, or the Visual Basic or Microsoft Access exams, please refer to the Microsoft Education & Certification Roadmap. This can be downloaded from CompuServe (GO MSEDCERT, Library #5, filename E&CMAP.ZIP) or can be ordered direct from Microsoft by calling 800-636-7544.

How do I send suggestions for product features/improvements to Microsoft?

Contact the Microsoft Wish Line at (206) 936-WISH [936-9474]. If it takes more than two minutes to describe, you can do one of the following: Fax it to us at 206-936-7329 Write to us at:
Attn: Microsoft Wish
One Microsoft Way
Redmond WA, 98052

How can I find out more about calling the Windows API?

The Windows SDK Help file discusses Windows API general topics, functions, structures and messages. Its companion Help file, Windows 3.1 API Help, offers Help on the Visual Basic Declare Statements, Type Declarations and Global Constants used to access much of the Windows API. In addition, there are the following resources:
  • Chapter 26, "Calling Procedures in DLLs," and Chapter 28, "Programming for 16-Bit Systems," of the Programmer's Guide are good places to start looking at DLL and Visual Basic issues.
  • Article Q106553 (How to write C DLL's and call them from Visual Basic) continues this discussion and comments on some memory management issues.
  • Article Q110219 (LONG: How to call windows API from Visual Basic - General Guidelines) may prove a useful reference. Visual Basic and C data types do not always translate 1:1, and looking at how an API call handles a given data type may give you the type declaration you will need for your DLL's.
  • Article Q109290 (Popular Windows API Functions Used from Visual Basic 3.0) discusses the more commonly used API calls by Visual Basic programmers.

How do I create an OLE Control?

Visual C++ 2.0 comes with the OLE Control Development Kit, which will enable you to create an OLE control. Article Q113895 (Intro to Microsoft OLE Custom Control Architecture & Tools) discusses OLE controls and their future within Visual Basic and Windows.

Where can I place an order or get upgrade and pricing information about Microsoft Visual Basic for Windows?

For information regarding product updates, prices, and sales, please call the Microsoft Sales Information Center (MSIC) at the following number. Note that no technical support is provided on this line.
  • In the United States, call 800-426-9400.
  • In the United Kingdom, call 0734-270000.

Where can I get the latest updates for Visual Basic files?

You can identify available updates by searching for the pointer article in the Knowledge Base (described elsewhere in this document). Search on the keyword UPD or SOFTLIB. To get the latest release of Visual Basic updated files, download the appropriate file (the updates are all stored as self-extracting files *.EXE) from the Microsoft Software Library (MSL) on the following services:

CompuServe

GO MSL
Search for .EXE
Display results and download

Microsoft Download Service (MSDL)

Dial (206) 936-6735 to connect to MSDL
Download .EXE

Internet (anonymous FTP)

ftp ftp.microsoft.com
Change to the \softlib\mslfiles directory
Get .EXE

What can you tell me about the next version of ...

Stop! The answer is, Microsoft can tell you nothing. It is standard Microsoft policy to not discuss unannounced products. Individuals involved in Beta testing Microsoft products are bound by a similar non-disclosure agreement which requires that they not discuss the product.

What do I do if I have a problem with Visual Basic?

You have a number of options for assistance from Microsoft as well as other developers. They include: Telephone support, CompuServe, Internet, and Microsoft Solutions Providers. For details, you can look in Visual Basic 4.0 online Help. Choose Obtaining Technical Support from the Visual Basic Help menu for more information. You can also download Knowledge Base article Q108102 which details the same support options and article Q80850 for support phone numbers.

What should I do before I ask for help?

Read the manuals. The Visual Basic manuals cover every keyword and most common programming situations. This information is also available in the online Help files. Look in the Knowledge Base. The Microsoft Developer Knowledge Base (GO MDKB) is a tremendous resource for dealing with Microsoft products. Developer Support Engineers at Microsoft create solutions and explain problems or techniques that come up in the course of using Microsoft products. These discussions are written up into articles and placed into the Knowledge Base (KB) which is periodically updated on CompuServe. The Visual Basic Knowledge Base (VBKB_FT.EXE) is a downloadable subset of the Knowledge Base which contains articles relevant to Visual Basic. It contains a full text search engine to help you locate the information you want. This file is available in the Microsoft Software Library (GO MSL). CAUTION: This file is over four megabytes in compressed form; it will take a while to download. Look at the FAQ list. FAQ: A Frequently Asked Questions list is currently available on the Internet (not an MS document) and Microsoft will have a FAQ on CompuServe in the near future. Isolate the problem. Isolating the problem often leads to the solution. Also, if you can't accurately describe how and when the problem occurs, then any support engineer would have to take you back through your code to attempt to isolate the problem.

What are some things I can do to isolate the problem?

First and foremost, make a backup. This is the point at which even experienced programmers frequently lose many hours of work. When you experiment, it is far too easy to accidentally overwrite or delete necessary sections of code. Use the debugging facilities built in to Visual Basic 4.0. See Chapter 20, "Debugging," in the Programmer's Guide. Attempt to identify the line or lines of code generating the error. Isolate the code. If you can isolate the problem to one block of code, try to reproduce the same problem with this block of code separated from the rest of your program. Select the code, copy it, start a new project, paste the code into the new project, run the new project, and see if the error still occurs. Create a log file. If you cannot isolate the code or if the problem is erratic or if the problem only happens when compiled, then the debugging facility of Visual Basic will be less effective. In these situations you can create a log file which records the activity of your program. This will allow you to progressively isolate the location of the suspect code. Call the following procedure from various points in your program. You should pass in a string of text which indicates the current location of the code executing in your program.

Sub LogFile (Message As String)
	Dim LogFile As Integer
	LogFile = FreeFile
	Open "C:\VB\LogFile.Log" For Append As #LogFile
	Print #LogFile, Message
	Close #LogFile
End Sub

Sub Sub1 ()
	'...
	Call LogFile("Here I am in Sub1")
	'...
End Sub

Simplify the problem. If possible, remove any third party controls and custom controls from your project. Replace them with Visual Basic standard controls. Eliminate any code that does not seem to relate to the problem. Reduce the search space. If you cannot resolve the problem with any of the above methods, then it is time to eliminate all other non-Visual Basic causes from the problem search space. Copy your AUTOEXEC.BAT and CONFIG.SYS files to backup files. Comment out any and all drivers and programs from these two files that are not absolutely essential to running your program under Windows. Change your Windows video driver to the standard Windows VGA driver. Shut down Windows and reboot your machine. This will eliminate the possibility that there is some other program or driver which is interfering with your program. If you cannot locate a solution and are unable to isolate or resolve the problem with any of these methods, it's time to look for help. See the online Help under "Technical Support" or check into the other resources mentioned in this file.

How can I get Knowledge Base articles?

You can request individual articles to be faxed to you via the FastTips service. Microsoft FastTips is an automated fax and voice service that provides technical product support information at no charge through 800 numbers available 24 hours a day, 7 days a week (including holidays). You can use FastTips services with your touch-tone phone. Each of the specific FastTips services listed at the end of this article includes the following:
  • A comprehensive map for easy navigation.
  • A Microsoft FastTips Technical Library catalog, from which you can obtain current technical support information by ordering Microsoft Knowledge Base articles and Application Notes.
  • Recorded questions and answers for the most frequently asked questions about Microsoft products. Faxes of these questions and answers are also available with the FastTips services.
  1. Microsoft Desktop Applications: (800) 936-4100
  2. Microsoft Personal Operating Systems: (800) 936-4200
  3. Microsoft Development Tools: (800) 936-4300
  4. Microsoft Advanced Systems: (800) 936-4400
For best use of the FastTips services, request a map and catalog during your first call. If you cannot determine which article is best for you, you can get assistance by calling the Product Support numbers. Engineers have access to the complete Microsoft Knowledge Base and can fax or mail the individual articles.

Can I get a copy of the entire Knowledge Base?

Due to its size, the Microsoft Knowledge Base is made available to the public by the individual product groups in separate pieces. The Visual Basic Knowledge Base (VBKB_FT.EXE) is a downloadable subset of the Knowledge Base which contains articles relevant to Visual Basic. It contains a full text search engine to help you locate the information you want. There are over 600 categorized articles in the Visual Basic for Windows collection. The two Help files that hold these articles have been placed in a self-extracting file that you can download from several different places (listed later in this section). Choose to download either VBKB_FT.EXE (the full-text search version) or VBKB.EXE (the version without full-text search). The Help files in VBKB_FT.EXE have an additional Find button that allows full-text search. The Help files in VBKB.EXE do not have the Find button and do not allow full-text search. The technical content in VBKB.EXE is identical to that in VBKB_FT.EXE. VBKB.EXE is 1.5 megabytes in size while VBKB_FT.EXE is approximately 4 megabytes. VBKB_FT.EXE is larger because it includes index and .DLL files needed for full-text search. To obtain the Help files, download VBKB.EXE or VBKB_FT.EXE. Then run it in an empty directory to extract the files.
  • Download VBKB_FT.EXE if you want to use full-text search to query the Microsoft Visual Basic Knowledge Base. The Help files in this package include a Find button that allows you to search the Microsoft Knowledge Base for any word you choose.
  • Download VBKB.EXE if you want a smaller package and don't need full-text search. The Help files in this package have only the Search button, which allows you to search for article Q numbers (the number that identifies each Microsoft Knowledge Base article).

Where to Find VBKB.EXE and VBKB_FT.EXE

Download either VBKB.EXE or VBKB_FT.EXE (both are self-extracting files) from the Microsoft Software Library (MSL) on the following services:
CompuServe
GO MSL
Search for and download VBKB.EXE
-or-
Search for and download VBKB_FT.EXE
Microsoft Download Service (MSDL)
Dial (206) 936-6735 to connect to MSDL
Download VBKB.EXE or VBKB_FT.EXE
Internet (anonymous FTP)
ftp ftp.microsoft.com
Change to the \softlib\mslfiles directory
Get VBKB.EXE
-or-
Get VBKB_FT.EXE

After downloading either VBKB.EXE or VBKB_FT.EXE, run it to extract the files it contains.

What are some books that might be of use to a Visual Basic developer?

Title: PC Magazine: Visual Basic Programmer's Guide to the Windows API
Author: Appleman
ISBN: 1-56276-073-4
Publisher: Ziff-Davis Press
Title: Windows 3.1 Programming for Mere Mortals
Author: Woody Leonhard
ISBN: 0-201-60832-4
Publisher: Addison-Wesley
Title: Database Developer's Guide with Visual Basic 3
Author: Roger Jennings
ISBN: 0-672-30440-6
Publisher: Sams Publishing
Title: Running Visual Basic for Windows (2nd Ed.) [covers 3.0]
Author: Ross Nelson
ISBN: 1-55615-564-6
Publisher: Microsoft Press Div. of Microsoft Corp.
Title: Guide to the SQL Standard, A: A User's Guide to the Standard Relational Language SQL
Author: C.J. Date
ISBN: 201502097
Publisher: Addison-Wesley Publishing Co. Inc.
Title: Inside Windows 95
Author: Adrian King
ISBN: 1-55615-626-X
Publisher: Microsoft Press
Title: Programming Windows 3.1, Third Edition
Author: Charles Petzold
ISBN: 1-55615-395-3
Publisher: Microsoft Press

In addition, there is a reading list of books, periodicals, and other information in the Knowledge Base in article number Q118782.

When I load an existing application into Visual Basic 4.0, it says it's going to 'upgrade' my controls. Is it actually changing my controls and should I back them up?

No. Your controls are fine. Visual Basic 4.0 contains newer, backward-compatible controls that replace controls shipped with previous versions of Visual Basic. Your project's .VBP file will be updated to use these newer controls if you click Yes. It is recommended that you use the latest controls so that you can take advantage of any new features that have been implemented.

Why are the distributables so large?

Visual Basic 4.0 uses the OLE Control architecture on a scale unmatched by any other in the industry. This means that until the OLE Control architecture becomes the industry standard and part of the Windows operating system, Visual Basic programs have to include the support files which enable this powerful new technology. It is expected that as the OLE model becomes integrated at the operating system level, this requirement will fall away and the size of the distributable will drop dramatically.