WM_DRAWCLIPBOARD、WM_CHANGECBCHAIN の2つのメッセージを処理することでクリップボードを監視
するコードを書いているのですが、Win98SE+Delphi5 でコンパイルしたものが WinXp では正常に動作
しません。98とXpでは上記の2つの処理に何か違いがあるのでしょうか?

procedure TForm1.FormCreate(Sender: TObject);
begin
 hNextChain := SetClipboardViewer(Form1.Handle);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 ChangeClipboardChain(Form1.Handle,hNextChain);
end;

procedure TForm1.ClipChange(var Msg: TMessage);
begin
 if Clipboard.HasFormat(CF_TEXT) then
 Memo1.Text := Clipboard.AsText;
 SendMessage(hNextChain,WM_DRAWCLIPBOARD,0,0);
end;

procedure TForm1.ChangeChain(var Msg:TWMChangeCBChain);
begin
 if Msg.Remove = hNextChain then begin
 hNextChain := Msg.Next;
 Msg.Result := 0;
 end else
 Msg.Result := SendMessage(hNextChain,WM_CHANGECBCHAIN,
 Msg.Remove,Msg.Next);
end;