SoundGetInterface

サウンドデバイスまたはコンポーネントのネイティブCOMインタフェースを取得します。

InterfacePtr := SoundGetInterface(IID, Component, Device)

パラメータ

IID

型:文字列

インターフェース識別子(GUID)。"{xxxxxxx-xxxx-xxxx-xxxx-xxxx}"の形式をとる。

Component

型:文字列または整数

If blank or omitted, an interface implemented by the device itself will be retrieved. そうでないときは、1"Line in"のようにコンポーネントの表示名とインデックスのいずれかを指定するか、"Line in:2"のようにその両方を指定します。

詳しくは「Component(Sound関数)」をご覧ください。

Device

型:文字列または整数

空白または省略したときは、初期値はシステムのデフォルトの再生デバイス(必ずしもデバイス1である必要はありません)になります。そうでないときは、1"Speakers""Speakers (Example HD Audio)"のようにコンポーネントの表示名とインデックスのいずれかを指定するか、"Speakers:2"のようにその両方を指定します。

詳しくはDevice(Sound関数)をご覧ください。

戻り値

型:整数

成功した場合の戻り値はインターフェース・ポインターである。

インターフェイスがサポートされていない場合、戻り値は0である。

エラー処理

デバイスまたはコンポーネントが見つからないときは、TargetErrorがスローされます。そうでないときは、失敗したときにOSErrorがスローされます。

備考

インターフェイスは以下のいずれかのソースから取得される:

インターフェイスポインターを取得したら、ComCallを使ってそのメソッドを呼び出すことができる。正しいメソッド・インデックスを特定するために、Windows SDKヘッダーファイルを参照すること。

インターフェース・ポインターは、不要になったらObjReleaseに渡して解放しなければならない。これは、ComValueで"ラップ"することで可能になる。ラップされた値(オブジェクト)は、直接ComCallに渡すことができる。

Interface := ComValue(13, InterfacePtr)

Sound関数DeviceTopology API

Peak meter. ピーク値がゼロ(サウンドが再生されていない)の場合を除き、ツールチップに現在のピーク値が表示される。

; IAudioMeterInformation
audioMeter := SoundGetInterface("{C02216F6-8C67-4B5B-9D00-D008E73E0064}")
if audioMeter
{
    try loop  ; Until the script exits or an error occurs.
    {
        ; audioMeter->GetPeakValue(&peak)
        ComCall 3, audioMeter, "float*", &peak:=0
        ToolTip peak > 0 ? peak : ""
        Sleep 15
    }
    ObjRelease audioMeter
}
else
    MsgBox "Unable to get audio meter"