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