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