Messenger service

From
Leonid Troyanovsky ()
To
Roman Scherbina
Date
2002-02-07T10:00:50Z
Area
SU.WINDOWS.NT.PROG
From: "Leonid Troyanovsky" <lv.t@eco-pro.ru>

Fri Jan 25 2002 13:09, Roman Scherbina wrote to All:

 > Никто не пробовал посылать из своей проги мессаги на
 > Messenger service ? Что-то у меня не получается.
 > открываю mailslot \\computername\mailslot\messngr и
 > пишу туда. Но Messenger service на той машине не
 > вываливает окошко с мессагой. в чем грабли ?

 С NT отправляется без особых проблем.

procedure Netsend(const compname, messagetext: String);
{NT only}
var
  fnetsend: function ( servername :PWChar;
                      msgname :PWChar;
                      fromname :PWChar;
                      buf : PByte;
                      buflen :DWord
                      ): DWord; stdcall;
  netapilib : THandle;
  buf : PByte;
  buflen :DWord;
  msgname :PWChar;
  msgnamelen: DWord;
begin
  buflen := Length(messagetext) * 2 + 1;
  GetMem(buf, buflen);
  StringToWideChar(messagetext, PWideChar(buf), buflen);
  msgnamelen := Length(compname) * 2 + 1;
  GetMem(msgname, msgnamelen);
  netapilib := LoadLibrary('Netapi32.dll');
  Win32Check(netapilib <> 0);
  @fnetsend := GetProcAddress(netapilib, 'NetMessageBufferSend');
  try
    Win32Check(Assigned(fnetsend));
    StringToWideChar(messagetext, PWChar(buf), buflen);
    StringToWideChar(compname, msgname, msgnamelen);
    fnetsend(nil, msgname, nil, buf, buflen);
  finally
    FreeMem(buf);
    FreeMem(msgname);
    FreeLibrary(netapilib);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  netsend(Edit1.Text, Memo1.Text);
end;

С уважением,   LVT

--- ifmail v.2.15dev5
 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)