a couple of questions regarding Indy TIdNNTP


I've got a couple of questions that deal with the TIdNNTP component.

1. I would like to get the new messages from a server that does not
support the
"GetNewNewsList" command. Currently to get messages I'm using
SendXOVER(IntToStr(NNTP.MsgLow) + '-' + IntToStr(NNTP.MsgHigh), sl);
but that procedure downloads messages I already have. There has got to
be a way to get new messages from this server because I do it in Forte
Agent all the time.

2. I created a thread to do misc indy tasks, like getting messages
from server. Then
I passed the thread to TIdNNTP tag ,ie - NNTP.Tag := Integer(Self);
The problem is in the
TidNNTP.OnStatus in which I'm trying to get the pointer to the thread
that passed it. This code work the first 2 times it's called, but
after that it tells me the TIdIOHandlerSocket.Owner is nil.

procedure TForm1.ThreadStatus(ASender: TObject; const AStatus:
  const AStatusText: string);
  Thread: TThread;
  Node: PVirtualNode;
  data: pStatusTreeData;
  s: string;
  io: TIdIOHandlerSocket;
  nntp: TIdMessageClient;
  io := TIdIOHandlerSocket(ASender);
  nntp := TIdMessageClient(io.Owner);  //works fine first 2 times
after that returns nil
  if nntp <> nil then
    Thread := TThread(nntp.Tag);
    Node := FindStatusNode(Thread);
    data := StatusTree.GetNodeData(Node);
    Data.msg := AStatusText;

Please Help Me.

Thank you
Josh Sanford