1

間違った数/型の引数を使用して IDispatch (レイト バインディング) を介して COM オブジェクトのメソッドを呼び出した場合、エラー コードが返されるか、プログラムがクラッシュするか、その他の誤動作が発生しますか? IDispatch による遅延バインディングがタイプ セーフかどうかを知りたいだけです。

4

1 に答える 1

2

Invokeのメソッドの実際の実装に依存しIDispatchます。渡されたパラメーターpDispParamsが正しいかどうかをチェックするか、やみくもに使用するか、間違った方法で操作したために発生する COM エラーを無視するか、これらのエラーを呼び出し元に報告するか、...

それでも、呼び出しているインターフェイスがデフォルトのDispInvoke関数を使用して実装しているIDispatch::Invoke場合は、安全なはずです。これは、引数に対して妥当な健全性チェックを実装しているためです。

于 2012-12-09T17:19:42.970 に答える