メモリ割り当ての管理
COM では、ほとんどではないにしても、多くのインターフェイス メソッドが、あるプログラミング組織によって記述されたコードによって呼び出され、別のプログラミング組織によって記述されたコードによって実装されます。 これらの関数のパラメーターと戻り値の多くは、値によって受け渡すことができる型です。 ただし、場合によっては、これに当てはまらないデータ構造を渡す必要があるため、呼び出し側と呼び出される側の両方が互換性のある割り当ておよび割り当て解除ポリシーを持つ必要があります。 COM は、ケースバイケースのルールを定義するよりも合理的であり、COM リモート プロシージャ コールの実装がメモリを正しく管理できるようにするため、メモリ割り当ての汎用規則を定義します。
COM インターフェイスのメソッドは、他のすべての COM インターフェイスが派生する IUnknown インターフェイスにある AddRef および Release 関数を呼び出すことによって、インターフェイスへのポインターのメモリ管理を常に提供します。 (詳細については、「参照カウントの管理に関する規則」を参照してください。)
このセクションでは、値によって渡されないパラメーター (インターフェイスへのポインターではなく、文字列や構造体へのポインターなど) にメモリを割り当てる方法のみを説明します。
詳細については、次のトピックを参照してください。