手順 2. フィルタ クラスの宣言
初めに、基底クラスを継承する C++ クラスを宣言する。
class CRleFilter : public CTransformFilter
{
/* ここに宣言が入る。 */
};
各フィルタ クラスには関連するピン クラスがある。フィルタ固有のニーズに従い、場合によっては、ピン クラスのオーバーライドが必要になる。CTransformFilter の場合、ピンはほとんどの作業をフィルタに委任するため、ピンのオーバーライドは必要ないことが多い。
フィルタに対して一意の CLSID を生成する必要がある。Guidgen または Uuidgen ユーティリティを使える。既存の GUID はコピーしないこと。CLSID を宣言するには、いくつかの方法がある。次の例では DEFINE_GUID マクロを使っている。
[RleFilt.h]
// {1915C5C7-02AA-415f-890F-76D94C85AAF1}
DEFINE_GUID(CLSID_RLEFilter,
0x1915c5c7, 0x2aa, 0x415f, 0x89, 0xf, 0x76, 0xd9, 0x4c, 0x85, 0xaa, 0xf1);
[RleFilt.cpp]
#include <initguid.h>
#include "RleFilt.h"
次に、フィルタのコンストラクタ メソッドを書き込む。
CRleFilter::CRleFilter()
: CTransformFilter(NAME("My RLE Encoder"), 0, CLSID_RLEFilter)
{
/* ここでプライベート変数を初期化する。 */
}
CTransformFilter コンストラクタのパラメータの 1 つは、前に定義した CLSID である点に注意すること。