潘叔在《COM原理与应用》p/77页中提到,在使用
CoGetMalloc()来获得COM内存管理器时候,如果第一个参数传入MEMCTX_SHARED时,则使用共享内存管理器,可以在一个进程内申请内存传入第二个进程,在第二个进程内使用此内存,并且可以释放掉此内存。
然而,现实中我们并不能这么做因为CoGetMalloc()的第一个参数无法使用MEMCTX_SHARED,详见https://msdn.microsoft.com/en-us/library/windows/desktop/ms693395(v=vs.85).aspx。也许《COM原理与应用》这本书太老了吧。
我们在跨进程时候仍可以使用CoTaskMemAlloc/CoTaskMemFree 和 SysAllocString/SysFreeString, 可以在一个进程中申请内存,而在另一个进程中使用或者释放。