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, 可以在一個進程中申請內存,而在另一個進程中使用或者釋放。