CPullPin.Connect 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 Connect 完成与输出引脚的连接。

语法

HRESULT Connect(
   IUnknown      *pUnk,
   IMemAllocator *pAlloc,
   BOOL          bSync
);

参数

pUnk

指向输出引脚的 IUnknown 接口的指针。

pAlloc

指向输入引脚首选分配 器的 IMemAllocator 接口的指针,或 NULL

bSync

指定是否使用同步读取的布尔值。 如果 为 TRUE,则引脚对输出引脚执行同步读取操作。 如果 为 FALSE,则引脚发出异步读取请求。

返回值

返回 HRESULT。 可能的值包括以下值。

返回代码 说明
S_OK
成功。
VFW_E_ALREADY_CONNECTED
输入引脚已连接。
E_NOINTERFACE
输出引脚不公开 IAsyncReader

备注

在输入引脚的连接过程中调用此方法。 如果方法失败,则引脚应使连接失败。

此方法查询 IAsyncReader 接口的输出引脚。 如果成功,它将调用 CPullPin::D ecideAllocator 来协商连接的分配器。 如果输入引脚具有首选分配器,请在 pAlloc 参数中指定它; DecideAllocator 方法将此指针传递到输出引脚的 IAsyncReader::RequestAllocator 方法。 否则,请将 pAlloc 设置为 NULL

如果 bSync 的值为 TRUE,则 CPullPin 对象通过调用输出引脚的 IAsyncReadEr::SyncReadAligned 发出同步读取请求。 否则,它会调用 IAsyncReader::Request 方法发出重叠的读取请求。

要求

要求
标头
Pullpin.h

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CPullPin 类