Visual Basic Q&A

As a software engineer, I focus on .NET, especially asp.net, C#, WCF and so on, and I am also very interested in Search Engine Optimization.

Entries Tagged ‘IssuesPart’

INFO: VB 6.0 Readme Part 7: Error Message Issues

Symptoms
The information below includes the documentation and workarounds for VisualBasic 6.0. This information can also be found in the README.htm file thatships with Visual Basic 6.0 on the Visual Basic 6.0 CD-ROM. Please see theREFERENCES section of this article for a list of the Microsoft KnowledgeBase articles relating to the Visual Basic 6.0 readme.
Following is a list of all parts of the readme file:
Part 1.Important Issues – Please Read First!
Part 2.Data Access Issues and DataBinding Tips
Part 3.Control Issues
Part 4.Language Issues
Part 5.Samples Issues
Part 6.Wizard Issues
Part 7.Error Message Issues
Part 8.WebClass Designer Issues
Part 9.DHTML Page Designer Issues
Part 10. Extensibility issues
Part 11. Miscellaneous Issues
Part 12. Microsoft Transaction Server (MTS) Issues
Part 13. Dictionary Object
Part 14. Visual Component Manager
Part 15. Application Performance Manager
Resolution
No Help Topic for the Following Error MessagesThere are currently no Help topics for the following error messages:
“Object module needs to implement ‘<name>’ for interface ‘<classname>’.”An interface is a collection of unimplemented procedure prototypes. Thiserror occurs when you specified an interface in an Implements statement,but you failed to add code for all the procedures in the interface.
You must write code for all procedures specified in the interface. An emptyprocedure containing only a comment is sufficient.
For additional information, select the item in question and press F1.
“Private Enum types and Enum types defined in standard modules orprivate classes cannot be used in public object modules as parameters orreturn types for public procedures, as public data members, or as fieldsof public user defined types.”This error occurs when you attempt to use an Enum type (or private Enumtype) as:
A parameter for a public object moduleA return type for a public procedureA public data memberFields of public user-defined typesAvoid using Enum or private Enum types in these circumstances.
“Can’t ReDim, Erase, or assign to Variant that contains array whoseelement is With object.”This error occurs when you attempt to ReDim, Erase, or assign to a Varianta variable whose element is a With object. For example, the following codewill produce this error:

Type TestName as IntegerEnd TypeSub Main()Dim c(0) As TestDim ee = cWith e(0)ReDim e(1)End WithEnd Sub

INFO: VB 6.0 Readme Part 15: Application Performance Explorer

Symptoms
The information below includes the documentation and workarounds for VisualBasic 6.0. This information can also be found in the README.htm file thatships with Visual Basic 6.0 on the Visual Basic 6.0 CD-ROM. Please see theREFERENCES section of this article for a list of the Microsoft KnowledgeBase articles relating to the Visual Basic 6.0 readme.
Following is a list of all parts of the readme file:

Part 1.Important Issues – Please Read First!Part 2.Data Access Issues and DataBinding TipsPart 3.Control IssuesPart 4.Language IssuesPart 5.Samples IssuesPart 6.Wizard IssuesPart 7.Error Message IssuesPart 8.WebClass Designer IssuesPart 9.DHTML Page Designer IssuesPart 10. Extensibility issuesPart 11. Miscellaneous IssuesPart 12. Microsoft Transaction Server (MTS) IssuesPart 13. Dictionary ObjectPart 14. Visual Component ManagerPart 15. Application Performance Manager
Resolution
Known Problems in Application Performance Explorer:
Configuring Remote Automation Security When Using Remote APE ComponentsIn order to use Remote Automation (RA) to communicate with remote APEcomponents, you may have to configure RA security using the RemoteAutomation Connection Manager (Racmgr32.exe).
To configure RA security:
Start Racmgr32.exe and click the Client Access tab.Select either “Allow All Remote Creates” or “Allow Remote Creates byKey”.If “Allow Remote Creates by Key” is selected, make sure the “AllowRemote Activation” check box is checked for each APE component.RA supports the following levels of authentication:

NameValueDescription———————————————————————Default0Use Network default.None1No authentication.Connect2Connection to the server is authenticated.Call3Authenticates only at the beginning of eachremote procedure call, when the serverreceives the request. Does not apply toconnection-based protocol sequences (thosethat start with the prefix “ncacn”).Packet4Verifies that all data received is from theexpected client.Packet5Verifies that none of the data transferredIntegritybetween client and server has beenmodified.Packet Privacy 6Verifies all other levels and encrypts theargument values of each remote procedurecall.
APE profiles are initially installed with an authentication level of 1(“None”) because Windows 95 supports only that level of authentication.However, if additional security is desired, the level of authentication ofa profile can be changed by modifying the profile collection file (theAemanagr.ini file) by using a text editor such as Notepad.
Each profile in the profile collection file begins with the name of theprofile within square brackets, such as [Peak performance, synchronous(CPU, Pool)]. The attributes of the profile follow, using the format<name>=<value> (such as “Task Duration=1″). To change the authenticationlevel, change the value of the “Authentication” attribute of the selectedprofile and save the file.
Compatibility Issues Between the Application Performance Explorer (APE)that Ships with Visual Studio 6.0 and the Version that Shipped with Visual
Basic 5.0There are known compatibility issues between the Application PerformanceExplorer (APE) that ships with Visual Studio 6.0 and the APE that shippedwith Visual Basic 5.0.
To avoid the compatibility issues, do one of the following:
Before installing Visual Studio 6.0 and APE on the computer that has theversion of APE shipped with VB 5, first uninstall APE from Visual Basic,and then install Visual Studio and APE.If you have installed Visual Studio 6.0 and APE on the same computerthat has the VB5 APE, uninstall the VB APE and then reinstall the VisualStudio APE.
Adjusting Default Settings To Use APE and MTSAfter installing the APETEST database onto your SQL Server, you must adjustsome of the default settings in order to use APE and MTS.
NOTE: If you haven’t already installed the APETEST database on your SQLServer, you should do that first. To learn how to install the APETESTdatabase, search for the topic “APE Database Setup Wizard” in MSDN LibraryVisual Studio 6.0.
To configure the APETEST database installation to work with MTS:
Start Microsoft SQL Enterprise Manager.In the Databases folder, right-click the APETEST database and clickEdit.Click the Options tab.Select the Truncated Log on Checkpoint check box and click OK.In the Databases folder, right-click the tempdb database and click Edit.Click Expand.In the Data Device box, select <new>.In the New Database Device dialog box, in the Name box, type tempdbData.In the Size (MB) box, type 10.Click Create Now, and finally click OK.Click Expand Now.Click Expand.In the Log Device box, select <new>.In the New Database Device dialog box, in the Name box, type tempdbLog.In the Size (MB) box, type 10.Click Create Now, and finally click OK.To configure the allowable number of user connections:
Start Microsoft SQL Enterprise Manager.Right-click the server and click Configure.For example, if your server is named CORONA, in the Server Manager childwindow, right-click CORONA and then click Configure.Click the Configuration tab.In the Configuration box, increase the number of user connections by atleast 15.
NOTE: If you are running APETEST on an established production databaseserver, you may not have access permission to adjust the current number ofuser connections. In this case, you should ask your database administratorto increase the number of current user connections by at least 15connections to support APE testing.
Application Performance Explorer Server-Side Setup May Generate ErrorWhile installing the APE server-side components, you may see an errorreferring to an incorrect version of OLEAUT32.dll. You may dismiss thiserror and continue with the installation.
However, this error message may indicate that the Microsoft TransactionServer Package was not installed correctly. To confirm that it wasinstalled correctly, run the Transaction Server Explorer and look for allinstalled MTS packages on your computer. Visual Studio APE Package shouldbe listed.
To install the package, AEMTSSVC.pkg, run the MTS Transaction ServerExplorer from the Start menu and install the package to the local computerusing the MTS Explorer.

INFO: VB 6.0 Readme Part 2: Data Access/Databinding Issues

Symptoms
The information below includes the documentation and workarounds for VisualBasic 6.0. This information can also be found in the README.htm file thatships with Visual Basic 6.0 on the Visual Basic 6.0 CD-ROM. Please see theREFERENCES section of this article for a list of the Microsoft KnowledgeBase articles relating to the Visual Basic 6.0 readme.
Following is a list of all parts of the readme file:
Part 1.Important Issues – Please Read First!
Part 2.Data Access Issues and DataBinding Tips
Part 3.Control Issues
Part 4.Language Issues
Part 5.Samples Issues
Part 6.Wizard Issues
Part 7.Error Message Issues
Part 8.WebClass Designer Issues
Part 9.DHTML Page Designer Issues
Part 10. Extensibility issues
Part 11. Miscellaneous Issues
Part 12. Microsoft Transaction Server (MTS) Issues
Part 13. Dictionary Object
Part 14. Visual Component Manager
Part 15. Application Performance Manager
Resolution
Error in Data Environment Designer Code ExampleIn the topic, “Programmatically Accessing Objects in Your Data EnvironmentDesigner,” the example under “Executing a Command Object with MultipleParameters” erroneously uses the Open method:

MyDE.Commands(“InsertCustomer”).Parameters(“ID”).value = “34″MyDE.Commands(“InsertCustomer”).Parameters(“Name”).value = “Fred”MyDE.Commands(“InsertCustomer”).Open
There is no Open method for the Commands object. You must use the Executemethod instead.
Incompatibilities with Data-bound ControlsDue to changes in Visual Basic 6.0, not all data-bound controls arecompatible with all data sources. This incompatibility is due to adifference in the internal binding mechanisms of ADO versus DAO/RDO.Controls that were created specifically to work with DAO/RDO can’t be boundto an ADO Data control; controls created for use with ADO can’t be bound tothe standard Data control or the Remote Data Control.
This incompatibility primarily applies to complex-bound controls such asgrids or lists that bind to multiple fields in a data source; simple-boundcontrols such as text boxes or labels that bind to a single field will workwith either type of data source. Some examples are as follows:
The Microsoft Data Bound Grid control (Dbgrid32.ocx) can be bound to theDAO or RDO Data controls; it can’t be bound to the ADO Data control. The Microsoft DataGrid control (Msdatgrd.ocx) can be bound to the ADOData control; it can’t be bound to the DAO or RDO Data controls. The Microsoft Masked Edit Control (Msmask32.ocx) can be bound to any ofthe Data controls. The intrinsic controls (TextBox, PictureBox, Label, and so on) can bebound to any of the Data controls. Third-party controls and Visual Basic-authored User controls should betested on a case-by-case basis. When attempting to bind a control to a data source at design-time, you mayencounter a “No compatible data source” error message. In this case, youwill need to substitute another control that is compatible with your datasource.
Binding to Properties of Objects May Yield Unexpected ResultsWhile it is possible to bind any object to any other object, the resultsmay not always be what you expect. Some properties are read-only bindableand will not update their bound source.
For example, if you were to bind the Caption property of a Frame control toa field named Foo in an ADO Recordset object, the Caption would change toreflect the value of Foo as you scrolled through the Recordset. If,however, you changed the Caption property programmatically (Frame1.Caption= “Bar”), the value of Foo would not be updated. Because the Captionproperty of the Frame is read-only bindable, it doesn’t providenotification that its data has changed.
This isn’t a problem for Visual Basic-authored objects, since you can callthe PropertyChanged method in your object’s code. For other objects, youcan determine if a property is update bindable by checking the DataBindingscollection. If a property is enumerated in the DataBindings collection, itis update bindable and the data source will receive updates to data; if itisn’t enumerated, the property is read-only bindable.
Complex Binding to an ADO Recordset Requires CursorTypeWhen binding an ADO Recordset object to a complex-bound control (such as aGrid control), it is necessary to explicitly set the CursorType property toeither adOpenStatic or adOpenKeyset. If you don’t set this property, nodata will be displayed. The following code shows the use of the CursorTypeproperty:

Private Sub DataClass_Initialize()Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordsetrs.CursorType = adOpenStaticcn.Open “northwind”rs.Open “customers”, cnEnd SubBinding to a simple-bound control (such as a TextBox) doesn’t requirea specific CursorType.
Creating Visual Basic Data Sources: Type the Fields as adVarChar
for SQL Server and Access Databases Instead of adBSTRWhen appending fields to an ADO Recordset object for use with a SQLServer or Access database, type the fields as adVarChar instead ofadBSTR (as shown in some sample code). When reading data out of eitherSQL Server or Access databases, ADO will use the adVarChar type.
Incorrect References for Creating OLE DB ProvidersThe documentation erroneously states that it is possible to set a classmodule’s DataSourceBehavior property to 2 – vbOLEDBProvider to create anOLE DB data provider. The correct values for DataSourceBehavior are 0 -vbNone and 1 – vbDataSource.
The documentation also erroneously refers to a non-existent event in classmodules called OnDataConnection.
Finally, in the topic “Creating the MyDataSource Class,” the step-by-stepexample incorrectly states that you should set DataSourceBehavior to 2 -vbOLEDBProvider. Instead, you should set DataSourceBehavior to 1 -vbDataSource.
To create OLE DB data providers using Visual Basic, use the Provider WriterToolkit included with the OLE DB SDK. For more information, see the OLE DBSimple Provider Toolkit in the Platform SDK Documentation on MSDN.
Finding Help For ADO ObjectsWhen using the ADO objects, (for example, Recordset, Connection, Command,Parameter, ADOR, RDS, and RDS Server object), you cannot get context-sensitive help on the object or its properties, events, or methods. Thatis, if you have a reference to the object and you use one of its features,selecting the code and pressing F1 does not result in a help topic.Instead, you will get either a wrong topic or the “Keyword Not Found”topic.
However, you can get help on any of the object’s properties, events, ormethods by using the online documentation Index:
If the MSDN documentation viewer is not open, on the Help menu, clickContents.Click the Index tab.Type the name of the property, event, or method including the word”collection”, “property”, “event”, or “method” as appropriate.From the list of available topics, select the topic that includes “ADO”in its title.
NOTE: You can also find additional help on other ADO topics, such as theADO object model, by looking in the MSDN Library Table of Contents: openPlatform SDK and under Database and Messaging Services, go to MicrosoftData Access SDK.
SQL Server OLE DB Provider Requires New instcat.sqlBefore using the SQL Server OLE DB data provider, you must run the versionof instcat.sql distributed with Microsoft Visual Basic 6.0 on SQL Server(version 6.5 and later). Instcat.sql is distributed with Visual Basic 6.0and can be found in the \winnt\system32 directory upon installation.
If Instcat.sql is not run on your SQL Server, the provider is unable toretrieve metadata from the SQL Server, and thus will not be able to connectto that server.
Setup for Data Access Applications May Fail on Windows 95/98When redistributing a Visual Basic 6.0 application that includes dataaccess components, setup will fail if DCOM for Windows 95 and Windows 98isn’t present on Windows 9x client machines.
The file Mdac_typ.exe is added to your setup package by the Package andDeployment Wizard if your project includes references to ADO, OLEDB, orODBC (you can check for this on the Included Files page of the wizard).This file installs MDAC 2.0 files on the client computer. MDAC 2.0 requiresDCOM for Windows 95 and Windows 98 in order to function properly, howeverit does not perform a check for this during setup. The setup will fail ifDCOM for Windows 95 and Windows 98 isn’t present on the client machine.Some of the older data access components will be overwritten prior to thefailure, possibly causing older data access applications on the client tofail.
When distributing data access applications for Windows 9x, you need to makesure that DCOM for Windows 95 and Windows 98 is installed on the client.DCOM98.EXE is a self-extracting executable file that installs the updatedDCOM components for Windows 95 or Windows 98. It can be found in the DCOM98directory of the Visual Basic 6.0 CD. This file may be freely distributedwith your Visual Basic application.

INFO: VB 6.0 Readme Part 11: Miscellaneous Issues

Symptoms
The information below includes the documentation and workarounds for VisualBasic 6.0. This information can also be found in the README.htm file thatships with Visual Basic 6.0 on the Visual Basic 6.0 CD-ROM. Please see theREFERENCES section of this article for a list of the Microsoft KnowledgeBase articles relating to the Visual Basic 6.0 readme.
Following is a list of all parts of the readme file:
Part 1.Important Issues – Please Read First!
Part 2.Data Access Issues and DataBinding Tips
Part 3.Control Issues
Part 4.Language Issues
Part 5.Samples Issues
Part 6.Wizard Issues
Part 7.Error Message Issues
Part 8.WebClass Designer Issues
Part 9.DHTML Page Designer Issues
Part 10. Extensibility issues
Part 11. Miscellaneous Issues
Part 12. Microsoft Transaction Server (MTS) Issues
Part 13. Dictionary Object
Part 14. Visual Component Manager
Part 15. Application Performance Manager
Resolution
Returning an Error Value from a DLLTo return an error value from a dynamic link library (DLL) procedure, the Clanguage prototype must be coded so that the return value is an HRESULT.Refer to the Microsoft Press OLE 2 Programmer’s Reference, Volume 2 formore information on how to do this.
Data Access Guide: DataFormats Tutorial Has Wrong File ExtensionThe topic named “Format Objects Tutorial” contains a wrong reference to afile with the extension .mdl. The actual file extension is .udl. For moreinformation, search online, with Search titles only selected, for “FormatObjects Tutorial” in the MSDN Library Visual Studio 6.0 documentation.The file in question is listed as “Northwind.mdl,” but should be”Northwind.udl.”
External Editor Field Added to Options Dialog BoxThe Advanced tab of the Options dialog box has a new text box calledExternal HTML Editor. This option allows you to select the HTML editingprogram that appears when you select Launch Editor from either the DHTMLPage Designer or the Webclass Designer. You must enter the drive, path, andexecutable name of the program you want to use. You can choose an HTMLediting program, a word processing program, or the text editor you preferto use.
CodeBase Fixup Utility in Internet Component DownloadThe “Downloading ActiveX Components” section of the Building InternetApplications book makes reference to a utility called the CodeBase FixupUtility that can be used to manually set codebase information in an ActiveXdocument. This information is incorrect. The utility is not shipped in the\Tools directory with Visual Basic, and you do not need to perform thisprocess manually for Internet Explorer 4.0 because the Package andDeployment wizard automatically inserts the appropriate codebaseinformation for these and other applicable projects.
Text in Project Properties/Open Dialogs Truncated
in Japanese, Chinese, and Korean Versions of WindowsWhen you run Visual Basic in the Japanese, Chinese, or Korean version ofWindows, you may notice that text in the Project Properties or Open dialogsis truncated. If this occurs, shut down Windows, restart it, then restartVisual Basic and the problem will be fixed.
Avoid Using Repository Add-In with ActiveX DesignersYou should avoid using the Repository add-in with projects that containActiveX designers.
For a complete list of available designers, on the Project menu in VisualBasic, click Components, and then click the Designers tab in the Componentsdialog box.

INFO: VB 6.0 Readme Part 14: Visual Component Manager

Symptoms
The information below includes the documentation and workarounds for VisualBasic 6.0. This information can also be found in the README.htm file thatships with Visual Basic 6.0 on the Visual Basic 6.0 CD-ROM. Please see theREFERENCES section of this article for a list of the Microsoft KnowledgeBase articles relating to the Visual Basic 6.0 readme.
Following is a list of all parts of the readme file:

Part 1.Important Issues – Please Read First!Part 2.Data Access Issues and DataBinding TipsPart 3.Control IssuesPart 4.Language IssuesPart 5.Samples IssuesPart 6.Wizard IssuesPart 7.Error Message IssuesPart 8.WebClass Designer IssuesPart 9.DHTML Page Designer IssuesPart 10. Extensibility issuesPart 11. Miscellaneous IssuesPart 12. Microsoft Transaction Server (MTS) IssuesPart 13. Dictionary ObjectPart 14. Visual Component ManagerPart 15. Application Performance Manager
Resolution
Known Problems in Visual Component Manager:
Related Files Tab (Component Properties Dialog Box)” Topic IncorrectVisual Component Manager User Interface Reference: The topic “Related FilesTab (Component Properties Dialog Box)” incorrectly states that the tab isused to display and enter files that are related to the selected component.In fact, none of the information displayed on this tab can be modified. Youcan add related files to a component only when publishing or re-publishingthe component. For more information, search online, with Search titles onlyselected, for “Publishing Components” in the MSDN Library Visual Studio 6.0documentation.
Removing Repository 1.0 Registry KeysIf you installed VCM 5.0 (previously available for Web download) you willhave the following Windows Registry keys setup. They were necessary for VCM5.0 and the 1.0 version of the Repository. If you find the followingRegistry entries then it is safe to remove them and may, in fact, improveVCM 6.0 performance:
HKEY_LOCAL_MACHINE\Software\Microsoft\Repository\CacheMaxAnnPropsHKEY_LOCAL_MACHINE\Software\Microsoft\Repository\CacheMaxObjectsHKEY_LOCAL_MACHINE\Software\Microsoft\Repository\CacheRelshipMaxCollectionsHKEY_LOCAL_MACHINE\Software\Microsoft\Repository\CacheRelshipMaxRowsHKEY_LOCAL_MACHINE\Software\Microsoft\Repository\MaxRowCacheAge
Adding Repository Tables to an Existing .mdb FileIf you try to open an existing .mdb file from within VCM that is not arepository database (i.e., it does not contain the repositorystructure/tables), you will be asked if you want the repository tablesadded to the database. You should not do this for normal use; therepository should generally be in a separate database. This will work, butit can take as long as 10 minutes to create the repository structure in anexisting .mdb file.
To create a brand new .mdb file containing the repository structure, right-click in the folder outline, click Repository, click New, and then enterthe name of the file you want to create.

INFO: VB 6.0 Readme Part 10: Extensibility Issues

Symptoms
The information below includes the documentation and workarounds for VisualBasic 6.0. This information can also be found in the README.htm file thatships with Visual Basic 6.0 on the Visual Basic 6.0 CD-ROM. Please see theREFERENCES section of this article for a list of the Microsoft KnowledgeBase articles relating to the Visual Basic 6.0 readme.
Following is a list of all parts of the readme file:

Part 1.Important Issues – Please Read First!Part 2.Data Access Issues and DataBinding TipsPart 3.Control IssuesPart 4.Language IssuesPart 5.Samples IssuesPart 6.Wizard IssuesPart 7.Error Message IssuesPart 8.WebClass Designer IssuesPart 9.DHTML Page Designer IssuesPart 10. Extensibility issuesPart 11. Miscellaneous IssuesPart 12. Microsoft Transaction Server (MTS) IssuesPart 13. Dictionary ObjectPart 14. Visual Component ManagerPart 15. Application Performance Manager
Resolution
“Command-Line Safe” Add-In BehaviorYou can use the Load Behavior box in the Add-In Manager to control how andwhen an add-in loads in Visual Basic:
Loaded/Unloaded — either loads or unloads a selected add-in when thebox is checked or unchecked.Load On Startup — indicates whether the selected add-in should loadwhen the Visual Basic IDE is started.Command Line — indicates whether an add-in should load when VisualBasic is started from a command line, either through a DOS prompt or ascript.When you select Command Line load behavior for an add-in, you may get thefollowing warning message:

“The selected add-in has not been confirmed to be ‘command-line safe’,and may require some user intervention (possible UI). Do you wish toproceed?”
This occurs when you select an add-in for Command Line load behavior thatwas not declared by the author of the add-in to be “command line safe” whenit was created. (This can be indicated with the Add-In Designer through acheckbox.)
“Command-line safe” means that the add-in is registered in a way toindicate that it contains no user interfaces that require user input whenVisual Basic is invoked through a command-line. A user interface caninterfere with the operation of unattended processes (such as buildscripts).
If you don’t indicate that an add-in is command-line safe (even if it iscommand-line safe), when a user selects your add-in and then Command Linein the Load Behavior box, they’ll receive the warning message. This isn’t aserious problem, but merely a warning to the user that the selected add-inmight possibly contain UI elements that can pop up unexpectedly and halttheir automated scripts by pausing for user input.
Manually Setting Add-In Registry ValuesYou can also manually set the command-line safe flag (as well as the othervalues) for an add-in through the Windows registry.
NOTE: You should not attempt to directly manipulate any Windows registryentries unless you are familiar with doing so. Setting an invalid registryentry can cause problems with Windows, even preventing you from being ableto load Windows.
In Visual Basic 6.0, the key that holds add-in information is located in:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Basic\6.0\Addins\<add-in.name>.
For Visual Basic 6.0, the LoadBehavior DWord values are:
None = 0Startup = 1Command Line = 4Command Line / Startup = 5There is also an additional DWord value that indicates whether the add-inis command-line safe: CommandLineSafe. A value of 1 indicates the add-in iscommand-line safe, while a value of 0 (the default) indicates that it isnot command-line safe. A value of 0 is implied if you forget to check thecommand-line safe box in the Add-In Designer since the default value of 0is assumed, and the add-in isn’t considered command-line safe.
So, to demonstrate how to use these values to indicate that a fictitiousadd-in (My.Addin) is command-line safe and to have it load when VisualBasic is started by command-line, you would set the following registryvalues, using a tool such as RegEdit:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Basic\6.0\Addins\My.Addin

“FriendlyName”=”A friendly name for your add-in”"Description”=”This value describes the add-in”"LoadBehavior”=dword:4″CommandLineSafe”=dword:1
Using the Add-In DesignerVisual Basic 6.0 includes a new tool, called the Add-In designer, to aidyou in creating add-ins. To open it:
Create a new add-in project.In the Project Explorer, under Designers, is a designer called Connect.Double-click it to activate the Add-In designer.Unfortunately, context-sensitive help currently isn’t available for the Add-In designer. Help topics are available, however. You can find theappropriate topics by searching for Add-In Designer in the MSDN index. Youshould see a list of three associated topics:
“Using the Add-In Designer”"General Tab (Add-In Designer)”"Advanced Tab (Add-In Designer)”For more information, search online, with Search titles only selected, for”Registering Add-Ins” in the MSDN Library Visual Studio 6.0 documentation.
Add-In Designer: More Information About Specifying Satellite DLLWhen creating an add-in with the Add-In designer, you can specify a DLL onthe Advanced tab. Be sure, however, to type only the name of the DLL file,and not its fully-qualified path. For example:
MyAddinName.DLL
not:
Addins\MyAddinName\MyAddinName.DLL
Localized Satellite DLLsIf you create a localized satellite DLL, you should also create a resourcesdirectory and a locale ID directory for the satellite DLL and install theDLL in the appropriate directory. The schematic for such a path is:
<AddIn Directory>\Resources\<Locale ID>\<MySatellite.DLL>
For example, a satellite DLL for the German version (Locale ID = 1031)would go into the directory:
C:\Program Files\MyAddin\Resources\1031\MyAddinName.DLL