Most common idiom for intra-process communciation on Windows?
<p>I have a very simple interface which needs to communicate between processes.  It's currently implemented in a very simple manner (all single proc):</p>

<pre><code>bool GetFoo(struct Foo *outFoo);
bool GetBar(struct Bar *getBar);
</code></pre>

<p>Such as:</p>

<pre><code>Foo foo;
if (!GetFoo(&amp;foo))
{
    ReportError();
}
</code></pre>

<p>GetFoo fills out the "Foo" data structure with pure data (that is, no pointers - it's purely blitable data).</p>

<p>I need to convert this in-process function call to be between two processes on the same machine (in this case it's always the same machine).  Is there a commonly followed idiom for cross-process calls in C++ on Windows?  Is there some kind of intra-process communication supported by Windows?  Should I be using shared memory instead?</p>

<p>One note: I don't want to take a dependency on anything other than the Windows APIs if at all possible.</p>
