PRB: COMAdminCatalog::InstallMultipleComponents Method Fails in VBScript (277984)



The information in this article applies to:

  • Microsoft COM+ 1.0, when used with:
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
  • Microsoft COM+ 1.5, when used with:
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP

This article was previously published under Q277984

SYMPTOMS

The COM+ COMAdminCatalog::InstallMultipleComponents method that works under Microsoft Visual Basic fails under Visual Basic Scripting Edition (VBScript) with a type mismatch error.

CAUSE

The call to InstallMultipleComponents fails because this method takes parameters of the form SafeArray(Variant)*. However, for this method to work in VBScript, the parameters are passed as Variant *.

MORE INFORMATION

The following code adds multiple components to a COM+ application when it is called from Visual Basic but fails in VBScript with a type mismatch error:
Set objAdminCat = CreateObject ("COMAdmin.COMAdminCatalog")
Dim rgFiles(1)
Dim rgCLSID(1)
rgFiles(0) = "Q277984.dll" 
rgFiles(1) = 

rgCLSID(0) = "{44DAAEC9-F383-42CC-BA1A-8F3A036B0DAE}"
rgCLSID(1) = "{DB2E2C08-2285-4105-925E-B7ECBA8C6C5D}"

cat.InstallMultipleComponents "Q277984", rgFiles, rgCLSID
				
NOTE: The preceding code sample assumes that a COM+ application named Q277984 is already installed.

To call InstallMultipleComponents from VBScript, use the following code sample:
Dim cat 

Set cat = CreateObject("COMAdmin.COMAdminCatalog")

'The following line works in VBScript.
cat.InstallMultipleComponents "Q277984",Array("Q277984.dll","Q277984b.dll"),
Array("{44DAAEC9-F383-42CC-BA1A-8F3A036B0DAE}", "{DB2E2C08-2285-4105-925E-B7ECBA8C6C5D}")

Set cat = Nothing
				

Modification Type:MajorLast Reviewed:5/28/2003
Keywords:kbcode kbprb KB277984