Artículo: Q173091
Los controles ActiveX contienen unas funciones llamadas DllRegisterServer y DllUnregisterServer que sirven para registrar y desregistrarlos.
Podemos llamar as estas funciones desde Visual Basic :
Public Declare Function RegUnOCX Lib "UnOCX.OCX" Alias "DllRegisterServer" () As Long
Public Declare Function UnRegUnOCX Lib "UnOCX.OCX" Alias "DllUnregisterServer" () As Long
Public Const S_OK = &H0
Y creamos un par de funciones :
Sub RegistrarUnOCX()
On Error GoTo Err_Registration_Failed
If RegUnOCX = S_OK Then
MsgBox "Registro realizado"
Else
MsgBox "No Registrado"
End If
Exit Sub
Err_Registration_Failed:
MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
Sub DesRegistrarUnOCX()
On Error GoTo Err_Unregistration_Failed
If UnRegUnOCX = S_OK Then
MsgBox "Desregistro realizado"
Else
MsgBox "No Desregistrado"
End If
Exit Sub
Err_Unregistration_Failed:
MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
Nota: DllRegisterServer y DllUnregisterServer son "case-sensitive".
Otra manera es la siguiente :
'En el modulo
Declare Function DLLSelfRegister Lib "VB6STKIT.DLL" (ByVal lpDllName As
String) As Integer
Public Function SelfRegisterDLL(NombreDll As String) As Boolean
Dim liRet As Integer
On Error Resume Next
liRet = DLLSelfRegister(NombreDll)
If liRet = 0 Then
SelfRegisterDLL = True
Else
SelfRegisterDLL = False
End If
End Function