参照カウント
オブジェクトは、使用されなくなったことを考えると COM 自体は自動的にメモリからオブジェクトを削除することはありません。代わりに、オブジェクト プログラマは、使われていないオブジェクトを削除する必要があります。プログラマは、オブジェクトが参照カウントに基づいて削除できるかどうかを判定します。
COM オブジェクトはインターフェイスの参照カウントを管理するために IUnknown のメソッド、AddRef と [リリース]を使用します。これらのメソッドを呼び出すための一般規則は次のとおりです:
クライアントがインターフェイス ポインターを受け取るたびに、AddRef は、インターフェイス頼まれなければ必要があります。
クライアントがインターフェイス ポインターを使用して終了するたびに、**[リリース]**を呼び出す必要があります。
簡単な実装では、AddRef の各呼び出しのインクリメントとデクリメントを [リリース] は、各オブジェクト内のカウンター変数にを呼び出します。ゼロへの計算が戻ると、インターフェイス、ユーザーがなく、メモリから自身を削除 free があります。
参照カウントは、各オブジェクトへの参照 (個々のインターフェイスにではなく) 反映させるように実装できます。この場合、参照カウントがゼロに達すると、各 AddRef と [リリース] は、オブジェクトの中央実装に、デリゲートと [リリース] の可用性オブジェクト全体を呼び出します。
[!メモ]
CComObjectと派生オブジェクトは new の演算子を使用して、参照カウントが 0 構成されます。したがって、AddRef の呼び出しが正常に CComObject派生オブジェクトを作成した後で行う必要があります。