別のインターフェイスを返すCOMインターフェイスでメソッドを呼び出すと、毎回punkValが異なります。COMインターフェイスが同じ呼び出しメソッドに対して異なる値を返すのはなぜですか?
しかし、古いpunkValを使用してそのインターフェイスメソッドを呼び出すと、それも機能します。それは不要なオブジェクト(またはおそらくオブジェクトへのポインタ)がたくさん作成されているようですが、返されたインターフェイスが一意であるかどうかを判断するためには幾分か必要です。私が知っているのは、私が呼び出すインターフェイス(punkVal)を返すことであり、その値はすべてのインスタンスごとに異なります。その値が指す値は常に同じですが、vtableまたは何かを指しているため信頼できるチェックではないようです。それは、まったく異なるインターフェースでも、実際は同じインターフェースです。
someCOMInterface foo();
私がfooに呼び出し、punkValは私が後で呼び出すためのクエリにそれを呼び出す方法を使用していなければなりませんsomeCOMInterface、あることを期待呼び出し:明確にすることが
。しかし、私が最初の呼び出しを呼び出すたびに、私は別のsomeCOMInterface(呼び出すことによって返される値と同じ "しかし"異なる ")を取得します。