ビュアチェインに関してです
例えば現在4個のクリッポボードビュアA,B,C,Dが起動してるとします。
そしてそれぞれのビュアの順位はAを最上として
A B C Dとします。

例えばBがChangeClipboard()を実行しますと、AにはWM_CHANGECBCHAINが送られてきますよね。
WPARAMにはBのhWndが、LPARAMにはCのhWndが格納されているはずですので、
Aは自分の次のビュアのウィンドウハンドルを確認し、もしWPARAMと等しければAの次のビュアのハンドルを、
LPARAMのハンドルに入れ替えればいいと思います。
しかしBではなくCがChangeClipboard()を実行した場合どうしますか?もし上の手順をしてしまったら、
Aの次のビュアはDとなってしまい、Bの存在がまずい事になります・・・
かといってこのメッセージを無視し、実行するとBの次のウィンドウはCだが・・・Cのハンドルは無効
という事態になると思います。
長くなりましたが、上のような場合はSendMessageでBにWM_CHANGECBCHAINを送れば回避されます。※1
しかし、例えばA B C D E Fとチェインがあった場合、DがChangeClipboard()を実行し、Aが※1を実行するとなると
Cのハンドルを知る必要があるのです。ですが、WM_CHANGECBCHAINのパラメータにはDとEしかありません。
どうすればよろしいでしょうか・・