2008-09-25 72 views
0

我知道GDI句柄是独一无二的,在“大视窗”的过程,但具体做他们的工作在Windows CE 6.0的一样吗?共享GDI在Windows CE进程之间处理6.0

例如: 我有一个字体管理服务,其他几个服务和应用程序将使用。该服务具有用于打印和显示的有效字体和配置的列表; CreateFontIndirect()已经在它们中的每一个上调用过。当其中一个客户端应用程序请求特定的字体(和配置)时,我可以将它返回给适当的HFONT吗?如果没有,是否有一个安全/有效的方式来复制句柄,内核句柄ala DuplicateHandle。

我之所以这样问,是我见过的传递通过PostMessage的工作另一个应用程序正确HFONTs,但我不认为他们是“应该”来。

回答

1

我相信你是正确的,你不能依靠HFONTs是安全的跨越过程。

'我问的原因是,我看到HFONTs通过PostMessage传递给另一个应用程序正常工作,但我不认为它们'应该'。

他们没有正确通过,所以没有'应该'。虽然HFONT不能保证跨进程工作,但它们也不能保证跨过程独特。 'Arial'在每个应用程序的特定版本的某个时间点可能具有相同的HFONT值,并且可能随时改变(包括使用它的中途)。

这就好像是我我的绘画,用完了橙色的油漆,我把它当作第三根管子放在我的easle上。我可以达到你的easle,并抓住第三个tupe ......但我不能保证它是橙色的......我不能保证它甚至包含油漆!也许你今天在easle刷牙。哎呀!

GDI句柄就像那个例子中的数字'3'。今天,GDI可能会在所有的easles上保持相同的顺序。它可能会保留其中的一些,有些则不会(例如,橙色'sorta works',但'seafoam green'被破坏)。他们可以在一台CE设备上,但不能在另一台设备上。

与往常一样,YMMV。

+0

感谢您的解释。我问了关于[msft.public.windowsce.embedded] [1]和光盘的问题。 (我认为)展示了一些与WinCE实现的混淆。 [1]:http://groups.google.com/group/microsoft.public.windowsce.embedded/browse_thread/thread/507a6fe50e1f2697?hl=en# – DavidEBest 2008-09-26 12:26:21

相关问题