ビデオカラーソース

Note

[非推奨。 この API は、Windowsの今後のリリースから削除される可能性があります。

 

ビデオカラーソースは、単色の連続ビデオ画像を作成します。

クラス ID (CLSID): {0CFDD070-581A-11D2-9EE6-006008039E37}

CLSID 変数名: CLSID_ColorSource

プロパティ

プロパティ Type Default 説明
"Color" DWORD 0 生成する色を指定します。 「解説」を参照してください。

 

Remarks

ビデオ カラー ソースは、ソース オブジェクトと共に使用されます。 まず、新しいソース オブジェクトを作成します。 次に、 IAMTimelineObj::SetSubObjectGUID メソッドを呼び出して、ソース オブジェクトのサブオブジェクト GUID をCLSID_ColorSourceに設定します。

色を設定するには、 Property Setter オブジェクトを作成し、時刻 0 に "Color" プロパティを適用します。 このプロパティの値は 0xAARRGGBB という形式の 16 進数です。 ここで、AA はアルファ値、 RR は赤の値、 GG は緑の値、 BB は青の値です。 アルファ値は、0x00 (透明) から0xFF (不透明) までの範囲です。 プロパティは静的であり、時刻 0 に適用する必要があります。

アルファ値を指定しない場合、既定値は 0 (透明) になります。 32 ビットカラービデオプロジェクトでは、アルファを使用してビデオカラーソースを完全に透明にレンダリングするトランジションまたはエフェクトが発生します。 安全を確保するには、常にアルファを指定します。 たとえば、不透明な黒は 0xFF000000

次のコード例は、このオブジェクトの使用方法を示しています。 IPropertySetter の使用の詳細については、「効果と切り替えのプロパティの設定」を参照してください。

DWORD           dwYellow = 0xFFFF00;
IAMTimelineObj  *pSource = NULL;

// Create the source.
HRESULT hr = pTimeline->CreateEmptyNode(&pSource, TIMELINE_MAJOR_TYPE_SOURCE);
if (SUCCEEDED(hr))
{
    hr = pSource->SetStartStop(0, 50000000);
}

if (SUCCEEDED(hr))
{
    hr = pSource->SetSubObjectGUID(CLSID_ColorSource);
}

// Create a property setter.
if (SUCCEEDED(hr))
{
    IPropertySetter *pProp = NULL;
    
    hr = CoCreateInstance(CLSID_PropertySetter, NULL, CLSCTX_INPROC_SERVER, 
        IID_PPV_ARGS(&pProp));

    if SUCCEEDED(hr))
    {
        // Set the color.    
        DEXTER_PARAM param;
        DEXTER_VALUE val;

        param.Name = SysAllocString(OLESTR("Color"));
        param.dispID = 0;
        param.nValues = 1;

        if (param.Name == NULL)
        {
            hr = E_OUTOFMEMORY;
        }
        else
        {
            val.v.vt = VT_I4;
            val.v.lVal = dwYellow;
            val.rt = 0;  // Time must be zero.
            val.dwInterp = DEXTERF_JUMP;

            hr = pProp->AddProp(param, &val);
            
            SysFreeString(param.Name);
        }

        if (SUCCEEDED(hr))
        {
            hr = pSource->SetPropertySetter(pProp); 
        }
        pProp->Release();
    }
}

次の例は、前の例で作成したオブジェクトの XML 表現を示しています。 この場合、オブジェクトは動的プロパティをサポートしていないため、 param 要素は at または linear 要素をサポートしません。

<clip start="0" stop="5" clsid="{0CFDD070-581A-11D2-9EE6-006008039E37}">
    <param name="Color" value="16776960"/>
</clip>