我正在开发一些 OLE DB 代码,这些代码通过ICommand::Execute
. 我通过DBPROPVAL_ASYNCH_INITIALIZE
在执行之前设置命令上的属性来将此代码转换为异步操作。
我更喜欢注册一个IDBAsynchNotify
接收器,以便我的代码可以收到事件通知,而不是通过ISSAsynchStatus
.
的文档ICommand::Execute
并未显示为IConnectionPointContainer
可接受的riid
参数,但同一文档在讨论DB_S_ASYNCHRONOUS
返回代码时表明可以请求IConnectionPointContainer
我可以用来注册我的事件接收器的接口。
当我调用,作为参数ICommand::Execute
传递时,我收到错误。我之前也尝试过设置属性,但我收到了相同的结果。IID_IConnectionPointContainer
riid
E_NOINTERFACE
DBPROP_IConnectionPointContainer
Execute
如果必须,我会使用ISSAsynchStatus
,但我更愿意使用IDBAsynchNotify
. 可能吗?