title: Most efficient way to send images across processes
body: <p><strong>Goal</strong></p>
  
  <p>Pass images generated by one process efficiently and at very high speed to another process. The two processes run on the same machine and on the same desktop. The operating system may be WinXP, Vista and Win7.</p>
  
  <p><strong>Detailed description</strong></p>
  
  <p>The first process is solely for controlling the communication with a device which produces the images. These images are about 500x300px in size and may be updated up to several hundred times per second. The second process needs these images to process them. The first process uses a third party API to paint the images from the device to a HDC. This HDC has to be provided by me.</p>
  
  <p>Note: There is already a connection open between the two processes. They are communicating via anonymous pipes and share memory mapped file views.</p>
  
  <p><strong>Thoughts</strong></p>
  
  <p>How would I achieve this goal with as little work as possible? And I mean both work for the computer and me (of course ;)). I am using Delphi, so maybe there is some component available for doing this? I think I could always paint to any image component's HDC, save the content to memory stream, copy the contents via the memory mapped file, unpack it on the other side and paint it there to the destination HDC. I also read about a IPicture interface which can be used to marshal images. I need it as quick as possible, so the less overhead the better. I don't want the machine to be stressed just by copying some images.</p>
  
  <p>What are your ideas? I appreciate every thought on this!</p>