为什么我将IP2赋值(fromname不为空)后,就无法发送,只有fromname:=''才行呢!
function NetSend(dest, Source, Msg: string): Longint; overload;
type 
  TNetMessageBufferSendFunction = function(servername, msgname, fromname: PWideChar; 
    buf: PWideChar; buflen: Cardinal): Longint;  
  stdcall; 
var 
  NetMessageBufferSend: TNetMessageBufferSendFunction; 
  SourceWideChar: PWideChar;
  DestWideChar: PWideChar; 
  MessagetextWideChar: PWideChar; 
  Handle: THandle; 
begin 
  Handle := LoadLibrary('NETAPI32.DLL'); 
  if Handle = 0 then 
  begin 
    Result := GetLastError; 
    Exit; 
  end; 
    @NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend'); 
  if @NetMessageBufferSend = nil then 
  begin 
    Result := GetLastError; 
    Exit; 
  end;   MessagetextWideChar := nil; 
  SourceWideChar      := nil; 
  DestWideChar        := nil;   try 
    GetMem(MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1); 
    GetMem(DestWideChar, 20 * SizeOf(WideChar) + 1); 
    StringToWideChar(Msg, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1); 
    StringToWideChar(Dest, DestWideChar, 20 * SizeOf(WideChar) + 1);     if Source = '' then 
      Result := NetMessageBufferSend(nil, DestWideChar, nil, 
        MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1) 
    else 
    begin 
      GetMem(SourceWideChar, 20 * SizeOf(WideChar) + 1);
      StringToWideChar(Source, SourceWideChar, 20 * SizeOf(WideChar) + 1);
      Result := NetMessageBufferSend(nil, DestWideChar, SourceWideChar,
        MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1); 
      FreeMem(SourceWideChar); 
    end; 
  finally 
    FreeMem(MessagetextWideChar); 
    FreeLibrary(Handle); 
  end; 
end; {function NetSend(Dest, Msg: string): Longint; overload;
begin 
  Result := NetSend(Dest, '', Msg);
end; function NetSend(Msg: string): Longint; overload; 
begin 
  Result := NetSend('', '', Msg); 
end;   }
procedure TForm1.Button1Click(Sender: TObject);
const
  NERR_BASE = 2100; 
  NERR_NameNotFound = NERR_BASE + 173; 
  NERR_NetworkError = NERR_BASE + 36; 
  NERR_Success = 0; 
var 
  Res: Longint; 
  sMsg,TEXT1,IP1,IP2: string;
begin
  TEXT1:=MEMO1.Lines.TEXT;
  IP1:=EDIT1.Text;
  IP2:='';
  Res := NetSend(IP1,IP2,TEXT1);
  case Res of
    ERROR_ACCESS_DENIED: sMsg := 'user does not have access to the requested information.';
    ERROR_INVALID_PARAMETER: sMsg := 'The specified parameter is invalid.';
    ERROR_NOT_SUPPORTED: sMsg := 'This network request is not supported.'; 
    NERR_NameNotFound: sMsg := 'The user name could not be found.'; 
    NERR_NetworkError: sMsg := 'A general failure occurred in the network hardware.'; 
    NERR_Success: sMsg := 'Message sent!'; 
  end; 
  ShowMessage(sMsg); end;