Hmm..
Oder mach es so:
Delphi-Quellcode:
type
TSOAPFunc =
function( ServerPort: DevicePortType):boolean;
function TKommunikation.SOAPComWrapper(aFunc: TSOAPFunc): Boolean;
var
ServerPort: DevicePortType;
// aus automatisch erzeugten SOAP.pas
begin
Result := False;
{$IFDEF MSWINDOWS}
CoInitialize(
nil);
{$ENDIF MSWINDOWS}
ServerPort := GetDevicePortType(False, fConfig.SoapServerAdress);
if fConnectionOK
then
begin
Result := aFunc(ServerPort);
// mit übergeben wird der ServerPort
end;
{$IFDEF MSWINDOWS}
CoUninitialize;
{$ENDIF MSWINDOWS}
end;
mit deiner Funtion für z.B. Shutdown:
Delphi-Quellcode:
function ServerShutdown(aServerPort: DevicePortType):boolean;
begin
Result := aServerPort.Shutdown(aShutDownType) = 'Done';
end;
AUfruf mit:
// Aufrufen
if SOAPComWrapper(ServerShutdown) then ...;