次の方法で共有


CBaseObject クラス

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

CBaseObject クラスは、DirectShow オブジェクトを実装するための抽象クラスです。 コンポーネント オブジェクト モデル (COM) オブジェクトを実装するには、CBaseObject から派生した CUnknown クラスを使用します。

クラス メソッド 説明
CBaseObject コンストラクター メソッド。
~CBaseObject デストラクター メソッド。
ObjectsActive アクティブなオブジェクトの数を取得します。

解説

DirectShow 基底クラスのほとんどは 、CBaseObject から派生します。 このクラスは、実行時にすべての DirectShow オブジェクトの数をアクティブにすることで、デバッグの支援を提供します。 オブジェクト数は、クラス静的メンバー変数に格納されます。

class CBaseObject
{
private:
    static LONG m_cObjects;  // Total number of objects active. 
/* ... */
};

デバッグ ビルドでは、オブジェクト数が 0 より大きい間にアンロードされた場合、DLL はアサートします。 これにより、参照カウントの問題によって発生するリークを簡単に追跡できます。

CBaseObject コンストラクターは、オブジェクトのデバッグ名である 1 つの引数を受け取ります。 この名前は、DLL のグローバル テーブルに格納されます。 DbgDumpObjectRegister 関数は、DLL でアクティブなオブジェクトの一覧を書式設定し、デバッグ出力に送信します。

要件

要件
ヘッダー
Combase.h (Stream.h を含む)
ライブラリ
Strmbase.lib (小売ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

DirectShow 基本クラス