API - registrando uma dll via delphi ao inves de via regsvr32 |
Top Previous Next |
|
// Can any one suggest me how can register DLL through Delphi by code, for // eg: we type regsvr32 then DLL name on command line.
function RegisterActiveXServer(const ServerLocation: string; Register: Boolean): Boolean; var ServerDllRegisterServer: function: HResult; stdcall; ServerDllUnregisterServer: function: HResult; stdcall; ServerHandle: THandle;
procedure UnloadServerFunctions; begin @ServerDllRegisterServer := nil; @ServerDllUnregisterServer := nil; FreeLibrary(ServerHandle); end;
function LoadServerFunctions: Boolean; begin Result := False; ServerHandle := SafeLoadLibrary(ServerLocation); if (ServerHandle <> 0) then begin @ServerDllRegisterServer := GetProcAddress(ServerHandle, 'DllRegisterServer'); @ServerDllUnregisterServer := GetProcAddress(ServerHandle, 'DllUnregisterServer'); if (@ServerDllRegisterServer = nil) or (@ServerDllUnregisterServer = nil) then UnloadServerFunctions else Result := True; end; end;
begin Result := False; try if (LoadServerFunctions) then try case (Register) of False: Result := ServerDllUnregisterServer = S_OK; True: Result := ServerDllRegisterServer = S_OK; end; finally UnloadServerFunctions; end; except end; end; |