Microsoft DirectX 8.0

DLL セットアップ関数

宣言 : Dllsetup.h

AMovieDllRegisterServer使わない。
AMovieDllRegisterServer2フィルタを登録および登録解除する。
AMovieDllUnregisterServer使わない。
AMovieSetupRegisterFilter使わない。
AMovieSetupRegisterFilter2フィルタのメリット、ピン、およびメディア タイプを登録する。

AMovieDllRegisterServer

DLL セットアップ関数

使わない。代わりに AMovieDllRegisterServer2 を使用する。

構文

HRESULT AMovieDllRegisterServer(void);

AMovieDllRegisterServer2

DLL セットアップ関数

フィルタを登録および登録解除する。

構文

HRESULT AMovieDllRegisterServer2(
    BOOL bRegister
);

パラメータ

bRegister
TRUE はフィルタを登録することを表し、FALSE はフィルタの登録を解除することを表す。

戻り値

成功した場合は HRESULT 値 NOERROR を返す。それ以外の場合はエラー コードを返す。

注意

この関数はフィルタを設定するために使用する。詳細については、「DirectShow オブジェクトの登録方法」および SDK に含まれるサンプル フィルタを参照すること。

注 :  フィルタ登録プロセスでは、カテゴリ別によるフィルタの登録が可能になっている。たとえば、キャプチャ フィルタと圧縮フィルタをそれぞれ対応するカテゴリにまとめて列挙することができる。以下の関数は、フィルタのカテゴリ別の登録および登録解除がどのように行われるかを示す。 以下の関数では、IFilterMapper2 インターフェイスを使用している。

static const WCHAR *g_wszName = L"Sample Compressor Filter" ;

// サンプル コンプレッサ フィルタを登録する。
STDAPI
DllRegisterServer( void )
{

    // サーバーを登録する。
    HRESULT hr = AMovieDllRegisterServer2( TRUE );
    if( FAILED(hr) )
        return hr;

    IFilterMapper2 *pFm2 = 0;

    hr = CoCreateInstance( CLSID_FilterMapper2
                           , NULL
                           , CLSCTX_INPROC_SERVER
                           , IID_IFilterMapper2
                           , (void **)&pFm2 );
    
    if(FAILED(hr))
        return hr;

    static const AMOVIESETUP_MEDIATYPE sudAVICoTypeOut =  {
        &MEDIATYPE_Video,
        &MEDIASUBTYPE_SampleVideoType };

    static const AMOVIESETUP_MEDIATYPE sudAVICoTypeIn =  {
        &MEDIATYPE_Video,
        &GUID_NULL };

    static const AMOVIESETUP_PIN psudAVICoPins[] =
    {
        {
            L"Input"        // strName
            , FALSE         // bRendered
            , FALSE         // bOutput
            , FALSE         // bZero
            , FALSE         // bMany
            , &CLSID_NULL   // clsConnectsToFilter
            , 0             // strConnectsToPin
            , 1             // nTypes
            , &sudAVICoTypeIn } // lpTypes
        , { L"Output"       // strName
            , FALSE         // bRendered
            , TRUE          // bOutput
            , FALSE         // bZero
            , FALSE         // bMany
            , &CLSID_NULL   // clsConnectsToFilter
            , 0             // strConnectsToPin
            , 1             // nTypes
            , &sudAVICoTypeOut
        }
    };   // lpTypes     

    REGFILTER2 rf2;
    rf2.dwVersion = 1;
    rf2.dwMerit = MERIT_DO_NOT_USE;
    rf2.cPins = NUMELMS(psudAVICoPins);
    rf2.rgPins = psudAVICoPins;

    hr = pFm2->RegisterFilter(
        CLSID_SampleCompressorFilter,
        g_wszName,              // ユーザーに表示する名前
        0,                      // デバイス モニカ
        &CLSID_VideoCompressorCategory,
        g_wszName,              // 一意なインスタンス名
        &rf2);

    pFm2->Release();
 
    return hr;

}

// サンプル コンプレッサ フィルタの登録を解除する。
STDAPI
DllUnregisterServer( void )
{

    HRESULT hr = AMovieDllRegisterServer2( FALSE );
    if( FAILED(hr) )
        return hr;

    IFilterMapper2 *pFm2 = 0;

    hr = CoCreateInstance( CLSID_FilterMapper2
                           , NULL
                           , CLSCTX_INPROC_SERVER
                           , IID_IFilterMapper2
                           , (void **)&pFm2       );
    
    if(FAILED(hr))
        return hr;

    hr = pFm2->UnregisterFilter(
        &CLSID_VideoCompressorCategory,
        g_wszName,
        CLSID_SampleCompressorFilter);

    pFm2->Release();
 
    return hr;
}

AMovieDllUnregisterServer

DLL セットアップ関数

使わない。代わりに AMovieDllRegisterServer2 を使用する。

構文

HRESULT AMovieDllUnregisterServer(void);

AMovieSetupRegisterFilter

DLL セットアップ関数

使わない。代わりに AMovieSetupRegisterFilter2 を使用する。

構文

HRESULT AMovieSetupRegisterFilter(
    const AMOVIESETUP_FILTER const *psetupdata,
    IFilterMapper *pIFM,
    BOOL bRegister
);

AMovieSetupRegisterFilter2

DLL セットアップ関数

IFilterMapper2 を使用して、フィルタのメリット、ピン、およびメディア タイプをレジストリに登録する。

構文

HRESULT AMovieSetupRegisterFilter2(
    const AMOVIESETUP_FILTER const *psetupdata,
    IFilterMapper2 *pIFM2,
    BOOL bRegister
);

パラメータ

psetupdata
AMOVIESETUP_FILTER データへのポインタ。
pIFM
IFilterMapper2 インターフェイスへのポインタ。
bRegister
フィルタを登録するかどうかを示す値。TRUE はフィルタを登録することを表し、FALSE はフィルタの登録を解除することを表す。

戻り値

成功した場合は HRESULT 値 NOERROR を返す。それ以外の場合はエラー コードを返す。

注意

AMovieDllRegisterServer2 は、COM サーバーが登録された後に、このヘルパー関数を使用してフィルタを登録する。

通常、フィルタは AMovieDllRegisterServer2 を使用し、この関数は直接呼び出さない。