を介してMSSQLServerでクエリを実行するOLEDBコードに取り組んでいますICommand::Execute。DBPROPVAL_ASYNCH_INITIALIZE実行する前にコマンドのプロパティを設定することで、このコードを非同期で動作するように変換しています。
IDBAsynchNotifyを介してポーリングまたはブロックするのではなく、コードにイベントを通知できるように、シンクを登録したいと思いISSAsynchStatusます。
のドキュメントは受け入れ可能なパラメータとしてICommand::Execute示されていませんが、同じドキュメントでリターンコードについて説明している場合、イベントシンクの登録に使用できるインターフェイスを要求できることが示されています。IConnectionPointContainerriidDB_S_ASYNCHRONOUSIConnectionPointContainer
パラメータとしてICommand::Execute渡してを呼び出すと、エラーが発生します。以前にもプロパティを設定してみましたが、同じ結果になりました。IID_IConnectionPointContainerriidE_NOINTERFACEDBPROP_IConnectionPointContainerExecute
必要に応じて、を使用しますがISSAsynchStatus、むしろ使用したいと思いますIDBAsynchNotify。出来ますか?