Microsoft KB Archive/11689

PRB: Passing and Discarding Handles in Windows ID Number: Q11689

2.00 3.00 WINDOWS

SYMPTOMS If program A passes the handle of its own icon to program B and if A then terminates, B cannot continue to use the icon handle safely. If this icon is discardable, Windows cannot reload the icon properly if B tries to use it after A terminates.

CAUSE Icons are resources, resources are segments, and segments are global memory blocks. Global memory blocks are not equivalent to task handles; if a segment is discarded, Windows invalidates the handle.

RESOLUTION One alternative to passing the icon data handle is to use a shareable library or a property list for managing of data handles. Be careful, however. Other applications can use only shared, global memory handles, such as GDI drawing objects. Applications share global memory handles through the Windows clipboard. Local memory handles cannot be shared.