如果不重置剪贴板链,可以中止一个进程吗?

我有一个程序在启动时调用SetClipboardViewer来注册剪贴板更改通知。 在关机时,它会调用ChangeClipboardChain从链中正确地移除它自己。

只要程序正常运行,这一切都很棒。 但是,这让我想知道,如果程序被终止,或者我在debugging器下杀死它,崩溃,或者由于用户因为出错而杀了进程,会发生什么? 那么清理就不会发生。 能以某种方式给系统造成麻烦吗?

具体来说,我知道Windows可以毫无困难地删除我的查看器,因为它是一个句柄,当进程终止时,Windows可以清理所有的句柄,但是这会导致链中的下一个值,我持有一个引用,迷路不知何故?

是的,如果不能将自己从连锁店中移除,将会打破连锁。 致命的罪#2。 请阅读整个列表,确保您遵守所有规则。 http://www.clipboardextender.com/developing-clipboard-aware-programs-for-windows/6很多应用程序都受此影响,包括Delphi IDE。 即如果德尔福在某些方面崩溃,它会杀死剪贴板链(无论如何D2005)。

考虑在Vista / Windows7上使用Vista风格的通知。