2008-09-25 75 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

相關問題