6

CoCreateInstance を使用してローカル COM サーバーをインスタンス化しています。サーバーを提供するアプリケーションの起動に時間がかかることがあります。これが発生すると、Windows は次のようなダイアログ ボックスを表示します。

サーバービジー状態

他のプログラムがビジーであるため、アクションを完了できません。[切り替え] を選択して、使用中のプログラムをアクティブにし、問題を修正します。

[切り替え] [リトライ] [キャンセル]

このダイアログが表示されるまでの時間を制御するために使用できる、Application オブジェクト OleRequestPendingTimeout の Visual Basic プロパティについての言及を見つけました。これに関する適切なドキュメントや、C++ で役立つ同等のドキュメントが見つかりません。誰かが私を正しい方向に向けることができますか?

4

3 に答える 3

9

MFC を使用している場合、以前は次のようなことを行っていました。

// prevent the damned "Server Busy" dialog.
AfxOleGetMessageFilter()->EnableBusyDialog(0);
AfxOleGetMessageFilter()->EnableNotRespondingDialog(0); 
于 2008-11-11T23:03:33.843 に答える
4

とを見てIMessageFilterくださいCoRegisterMessageFilter

于 2008-11-11T22:10:12.157 に答える
3

タイムアウト呼び出しを増やすには:

AfxOleGetMessageFilter()->SetMessagePendingDelay(nTimeout);

ここで詳細を参照してください。 長時間の COM 操作中に OLE サーバー ビジー ダイアログ ボックスが表示されないようにする方法

于 2009-11-24T13:42:07.567 に答える