DeleteMediaType 函数
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
DeleteMediaType 函数删除分配的AM_MEDIA_TYPE结构,包括格式块。
语法
void WINAPI DeleteMediaType(
AM_MEDIA_TYPE *pmt
);
参数
-
Pmt
-
指向 AM_MEDIA_TYPE 结构的指针。
返回值
此函数不返回值。
注解
使用此函数可释放使用 CoTaskMemAlloc 或 CreateMediaType 分配的任何媒体类型结构。
此函数在 DirectShow 基类 库中定义。 如果不想链接到基类库,可以使用以下代码:
// Release the format block for a media type.
void _FreeMediaType(AM_MEDIA_TYPE& mt)
{
if (mt.cbFormat != 0)
{
CoTaskMemFree((PVOID)mt.pbFormat);
mt.cbFormat = 0;
mt.pbFormat = NULL;
}
if (mt.pUnk != NULL)
{
// pUnk should not be used.
mt.pUnk->Release();
mt.pUnk = NULL;
}
}
// Delete a media type structure that was allocated on the heap.
void _DeleteMediaType(AM_MEDIA_TYPE *pmt)
{
if (pmt != NULL)
{
_FreeMediaType(*pmt);
CoTaskMemFree(pmt);
}
}
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|