Win32 applications run in separate address spaces. Graphical objects are specific to the application and cannot be manipulated by other processes as in Windows 3.x. A handle to a bitmap passed to another process cannot be used because the original process retains ownership.
Each process should create its own pens and brushes. A cooperative process may access the bitmap data in shared memory (by way of standard interprocess communications) and create its own copy of the bitmap. Bitmap alterations must be communicated between the cooperative processes by way of interprocess communication, such as DDE.
Win32 adds an explicit ownership transfer API function for graphical objects to explicitly allow cooperative applications to share graphical objects.