I do not know if this question goes more into the VB section, but it also has to do with DTS packages
I am trying to execute an DTS package in VB .NET, and I have actually seen a similar question on 08-09-02 by Eugen Feraru. I did all of the suggestion but I am still getting the same error.

System.InvalidCastException has ocurred at XXXXXX.exe
Specifically in the code at:
oCustomTask1 = oTask.CustomTask
QueryInterface for interface DTS.CustomTask failed

all of the answer said that it has to do with the Service Packs and I install service pack 3 in the Server and SP3 of the SQL SErver 2000 Client tools in my test computer.

Here is some of the code where the problem is located

Public Sub Task_Sub1(ByVal goPackage As DTS.Package2)
Dim DTS As Object

Dim oTask As DTS.Task
Dim oLookup As DTS.Lookup
Dim oCustomTask1 As DTS.DataPumpTask2
oTask = goPackage.Tasks.New("DTSDataPumpTask")
oCustomTask1 = oTask.CustomTask (ERROR)

oCustomTask1.Name = "Copy Data from BOL_CLEVELAND_FINAL to [Marketing].[dbo].[BOL_CLEVELAND_FINAL1] Task"
oCustomTask1.Description = "Copy Data from FINAL to [Mark].[dbo].[FINAL1] Task"
oCustomTask1.SourceConnectionID = 1
oCustomTask1.SourceSQLStatement = "select `Field5`,`Field2`,`ACCOUNT,`INDEX` from `FINAL`"
oCustomTask1.DestinationConnectionID = 2
oCustomTask1.DestinationObjectName = "[Mark].[dbo].[FINAL1]"
oCustomTask1.ProgressRowCount = 1000
oCustomTask1.MaximumErrorCount = 0
oCustomTask1.FetchBufferSize = 1
oCustomTask1.UseFastLoad = True
oCustomTask1.InsertCommitSize = 0
oCustomTask1.ExceptionFileColumnDelimiter = "|"
oCustomTask1.ExceptionFileRowDelimiter = vbCrLf
oCustomTask1.AllowIdentityInserts = False
oCustomTask1.FirstRow = 0
oCustomTask1.LastRow = 0
oCustomTask1.FastLoadOptions = 2
oCustomTask1.ExceptionFileOptions = 1
oCustomTask1.DataPumpOptions = 0

Call oCustomTask1_Trans_Sub1(oCustomTask1)
oCustomTask1 = Nothing
oTask = Nothing

End Sub

I appreciate your help in advance