CImagePalette.PreparePalette 方法
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 PreparePalette
根据拥有筛选器中的媒体类型设置调色板。
语法
HRESULT PreparePalette(
const CMediaType *pmtNew,
const CMediaType *pmtOld,
LPSTR szDevice
);
参数
-
pmtNew
-
指向新媒体类型的指针。 格式块必须是 VIDEOINFOHEADER 结构。
-
pmtOld
-
指向旧媒体类型的指针。 如果首次设置媒体类型,则此参数可以是没有格式块的空类型。 否则,格式块必须是 VIDEOINFOHEADER 结构。
-
szDevice
-
指向包含显示设备名称的字符串的指针,由 GDI EnumDisplayDevices 函数返回。 若要使用main显示设备,请将此参数设置为 NULL。
返回值
如果调色板已更新,则返回S_OK;如果调色板未更改,则返回S_FALSE。
备注
如果需要更新调色板,此方法将执行以下操作:
- 调用 CImagePalette::MakePalette 创建新的逻辑调色板。
- 将 EC_PALETTE_CHANGED 事件发送到 Filter Graph 管理器。
- 在 CBaseWindow 对象上调用 CBaseWindow::SetPalette。
- 在 CDrawImage 对象上调用 CDrawImage::IncrementPaletteVersion。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|