la cuestion es que solo estás creando un solo objeto parámetro y debes crear uno por cada uno que necesites
haciendo unos pequeños ajustes a tu código quedaría de la siguiente forma:
Cita: ...
...
Dim conPubs As SqlConnection
Dim cmdLastName As SqlCommand
Dim parmLP As SqlParameter
Dim parmName As New SqlParameter("@Nombres", SqlDbType.VarChar, 40)
parmName.Direction = ParameterDirection.Output
cmdLastName.Parameters.Add(parmName)
Dim parmLastName As New SqlParameter("@Apellido", SqlDbType.VarChar, 40)
parmLastName.Direction = ParameterDirection.Output
cmdLastName.Parameters.Add(parmLastName)
' Ejecuta el Comando
conPubs.Open()
cmdLastName.ExecuteNonQuery()
' Recupera el valor de salida del Parametro
If Not IsDBNull(parmLastName.Value) Then
strLastName = parmName.Value
Else
strLastName = "DESCONOCIDO !!!"
End If
conPubs.Close()
%>
El apellido es <%=strLastName%>
salu2