How to effectively send a file from my own process to a program such as Photoshop, Word, Paint. I do not want to save the whole file to disk and then open the program from the startup parameters using CreateProcess, ShellExecute, etc. Maybe the only way out is Memory Maped Files? Maybe I should look to COM, IPC, Pipes?
A:
You cannot tell these programs that your file data is actually a memory mapped file. That really doesn't matter, files are already memory mapped by default. Much more efficiently than a MMF, file data is stored in RAM and doesn't take any space in the paging file.
The file system cache takes care of that. Think of it as a large RAM disk without actually having to pay for the RAM. This works so well that there never was a need for these programs to do something else than accept their input from a file.
Hans Passant
2010-06-04 21:37:18