Delphi & MSMQ
От: _Alexei  
Дата: 27.02.03 10:02
Оценка:
Hi all,

Пытаюсь использовать MSMQ в программе на Delphi.
Сделал Import Type Library, получил MSMQ_TLB.PAS.
Пишу следующий код (см. ниже). Все ОК, сообщения отправляются.
Открываю Computer Management->Message Queuing->Private->Test и вижу,что
текст сообщения (Body) показывается следующим образом:

T.e.s.t. .a.p.p.l.i.c.a.t.i.o.n. и т.д.

т.е. после каждой буквы добавлен байт 00h (WideString ?).
Label сообщения отображается нормально.

С чем это связано и как это устранить?




var MSMQQueueInfo: IMSMQQueueInfo2;
  MSMQQueue: IMSMQQueue2;
  MSMQMsg: IMSMQMessage2;
  IsTransactional: OleVariant;
  IsWorldReadable: OleVariant;
   EmptyParam: OleVariant;
.........
  IsTransactional := False;
  IsWorldReadable := False;
  MSMQQueueInfo := CoMSMQQueueInfo.create;
  MSMQQueueInfo.FormatName := 'DIRECT=OS:comp\Private$\Test';
  
  MSMQQueue := MSMQQueueInfo.Open(MQ_SEND_ACCESS, MQ_DENY_NONE);
 
  MSMQMsg := CoMSMQMessage.Create;
  MSMQMsg.Body := 'Test application';// message text
  MSMQMsg.Label_ := 'My Test';
  MSMQMsg.Send(MSMQQueue, EmptyParam);
  MSMQQueue.Close;
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.