Microsoft DirectX 8.0 |
CBaseBasicAudio クラスは、IBasicAudio インターフェイスの IDispatch インターフェイス コンポーネントを処理し、派生フィルタ クラスによって実装される IBasicAudio のプロパティおよびメソッドは純粋仮想のままにしておく。
CBasicAudio::GetIDsOfNames、CBasicAudio::GetTypeInfo、CBasicAudio::GetTypeInfoCount、および CBasicAudio::Invoke メンバ関数は、IDispatch インターフェイスの標準的な実装で、CBaseDispatch クラス (およびタイプ ライブラリ) を使用してコマンドを解析し、IBasicAudio インターフェイスの純粋仮想メソッドに渡す。
Microsoft® DirectShow® では、ボリュームのスケールとして 100 分の 1 デシベルの単位を使用する。この値が 0 の場合、デバイスでサポートされている最大ボリュームを示す。この値が -10,000 の場合は、最小ボリューム (通常、無音) である。バランスは -10,000 〜 10,000 の範囲で表され、0 が中間である。バランス値が負の場合、右チャンネルがそのデシベル値の分だけ減衰される (つまり音が小さくなる) ことを意味する。同様に、バランス値が正の場合は、右チャンネルの音が左チャンネルよりも大きくなる。つまり、左チャンネルがそのデシベル値の分だけ減衰される。
CBasicAudio CBasicAudio オブジェクトを作成する。
実装される INonDelegatingUnknown メソッド
NonDelegatingQueryInterface 指定された参照カウントのインターフェイスを取得する。
GetIDsOfNames 単一のメンバおよびオプションのパラメータのセットを、対応する整数のディスパッチ識別子にマップする。この識別子は、以降の CBasicAudio::Invoke メンバ関数の呼び出しで使用できる。 GetTypeInfo タイプ情報オブジェクトを取得する。インターフェイスのタイプ情報を取得できる。 GetTypeInfoCount オブジェクトによって提供されるタイプ情報インターフェイスの数を取得する。 Invoke オブジェクトによって公開されるプロパティおよびメソッドへのアクセスを提供する。
CBasicAudio オブジェクトを作成する。
構文
CBasicAudio(
const TCHAR *pName,
LPUNKNOWN pUnk
);
パラメータ
- pName
- デバッグのために CBasicAudio コンストラクタで使用されるオブジェクトの名前へのポインタ。
- pUnk
- このオブジェクトの所有者へのポインタ。
戻り値
戻り値なし。
注意
スタティック メモリに pName パラメータを割り当てる。オブジェクトを作成および削除するときに、デバッグ画面にこの名前が表示される。
単一のメンバ関数およびオプションのパラメータのセットを、対応する整数のディスパッチ識別子にマップする。この識別子は、以降の CBasicAudio::Invoke メンバ関数の呼び出しで使用できる。
構文
HRESULT GetIDsOfNames(
REFIID riid,
OLECHAR **rgszNames,
UINT cNames,
LCID lcid,
DISPID *rgdispid
);
パラメータ
- riid
- 参照識別子。将来的な使用のために予約されている。NULL でなければならない。
- rgszNames
- 渡されたマップする名前の配列へのポインタのアドレス。
- cNames
- マップされる名前の数。
- lcid
- 名前を解釈するロケール コンテキスト。
- rgdispid
- 呼び出し元割り当て済み配列へのポインタ。各要素には、rgszNames 配列に渡される名前の 1 つに対応する ID が含まれる。最初の要素はメンバの名前を表し、以降の要素は各メンバのパラメータを表す。
戻り値
次のいずれかの値を返す。
DISP_E_UNKNOWN_CLSID CLSID が認識されなかった。 DISP_E_UNKNOWNNAME 1 つ以上の名前が不明だった。返された DISPID には、不明な名前に対応する各エントリの DISPID_UNKNOWN が含まれる。 E_OUTOFMEMORY メモリ不足。 S_OK 成功。
タイプ情報オブジェクトを取得する。インターフェイスのタイプ情報を取得できる。
構文
HRESULT GetTypeInfo(
UINT itinfo,
LCID lcid,
ITypeInfo **pptinfo
);
パラメータ
- itinfo
- 返されるタイプ情報。ゼロを渡して、IDispatch 実装のタイプ情報を取得する。
- lcid
- タイプ情報のロケール ID。ローカライズされたメンバ名をサポートするクラスの場合、オブジェクトは異なる言語の異なるタイプ情報を返すことができる場合がある。これは、ローカライズされたメンバ名をサポートするクラスで重要である。ローカライズされたメンバ名をサポートしないクラスの場合、このパラメータは無視することができる。
- pptinfo
- 要求されたタイプ情報オブジェクトへのポインタのアドレス。
戻り値
pptinfo が無効な場合は、E_POINTER を返す。itinfo がゼロ以外の場合は、TYPE_E_ELEMENTNOTFOUND を返す。成功した場合は、S_OK を返す。それ以外の場合は、タイプを取得するための呼び出しの 1 つから HRESULT を返す。HRESULT はエラーを示し、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL 失敗。 E_POINTER Null ポインタ引数。 E_INVALIDARG 無効な引数。
オブジェクトによって提供されるタイプ情報インターフェイスの数を取得する。
構文
HRESULT GetTypeInfoCount(
UINT *pctinfo
);
パラメータ
- pctinfo
- オブジェクトが提供するタイプ情報インターフェイスの数を受け取る場所へのポインタ。オブジェクトがタイプ情報を提供した場合、この数は 1 である。それ以外の場合は、0 である。
戻り値
pctinfo が無効な場合は、E_POINTER を返す。それ以外の場合は、S_OK を返す。
オブジェクトによって公開されるプロパティおよびメソッドへのアクセスを提供する。
構文
HRESULT Invoke(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS *pdispparams,
VARIANT *pvarResult,
EXCEPINFO *pexcepinfo,
UINT *puArgErr
);
パラメータ
- dispidMember
- メンバの識別子。ディスパッチ識別子を取得するには、CBasicAudio::GetIDsOfNames またはオブジェクトのドキュメントを使用する。
- riid
- 将来的な使用のために予約されている。IID_NULL でなければならない。
- lcid
- 引数を解釈するロケール コンテキスト。
- wFlags
- CBasicAudio::Invoke 呼び出しのコンテキストを記述するフラグ。
- pdispparams
- 引数の配列、名前付き引数の引数ディスパッチ ID の配列、および配列内の要素の数を含む DISPPARAMS 構造体へのポインタ。
- pvarResult
- 結果が格納されるポインタ、または呼び出し元が結果を求めていない場合は NULL。
- pexcepinfo
- 例外情報を含む構造体へのポインタ。
- puArgErr
- rgvarg 配列内で、エラーがある最初の引数のインデックスへのポインタ。rgvarg 配列は DISPPARAMS 構造体のメンバである。
戻り値
riid が IID_NULL 以外の場合は、DISP_E_UNKNOWNINTERFACE を返す。呼び出しが失敗した場合は、CBasicAudio::GetTypeInfo からエラー コードの 1 つを返す。それ以外の場合は、IDispatch::Invoke への呼び出しから HRESULT を返す。
指定された参照カウントのインターフェイスを返す。
構文
HRESULT NonDelegatingQueryInterface(
REFIID riid,
void **ppv
);
パラメータ
- riid
- 参照識別子。
- ppv
- インターフェイスへのポインタのアドレス。
戻り値
ppv が無効な場合は、E_POINTER を返す。クエリが成功した場合は NOERROR、失敗した場合は E_NOINTERFACE を返す。
注意
デフォルトでは、IBasicAudio および IUnknown インターフェイスへのポインタを返す。このメンバ関数をオーバーライドして、派生クラスで実装された追加のインターフェイスを公開する。
このメンバ関数は、INonDelegatingUnknown::NonDelegatingQueryInterface メソッドを実装する。