 |
Регистрация OCX, без использования regsvr32
Note: Для корректного применения кода, вам необходимо в функциях перехватить error 1754 (Cannot find entry point "name" in the DLL.) Эта ошибка генерирутся в случае передачи в качестве параметра имени файла, не являющемся OCX/ActiveX control или OLE сервером.
Функция: RegisterControl
*-- Функция регистрации OCX/ActiveX контрола или OLE сервера
FUNCTION RegisterControl
*-- Параметр:
* Имя файла, с указанием пути
*-- Функция возвращает:
* Logical TRUE если регистрация прошла успешно, в противном случае FALSE .
* В случае отсутствия файла, функция вернет также FALSE .
*-- Пример вызова функции:
* llRegistered = RegisterControl("c:\windows\system\comctl32.ocx")
LPARAMETERS tcFileName
LOCAL llSuccess
IF FILE(tcFileName)
DECLARE INTEGER DllRegisterServer ;
IN (tcFileName) ;
AS __DllRegisterServer__
*-- This function returns 0 if successful
IF __DllRegisterServer__() = 0
llSuccess = .T.
ELSE
llSuccess = .F.
ENDIF
ELSE
llSuccess = .F.
ENDIF
RETURN llSuccess
**Обратная функция
FUNCTION UnregisterControl
LPARAMETERS tcFileName
LOCAL llSuccess
IF FILE(tcFileName)
DECLARE INTEGER DllUnregisterServer ;
IN (tcFileName) ;
AS __DllUnregisterServer__
*-- This function returns 0 if successful
IF __DllUnregisterServer__() = 0
llSuccess = .T.
ELSE
llSuccess = .F.
ENDIF
ELSE
llSuccess = .F.
ENDIF
RETURN llSuccess
|
|