ATL を使用して記述した ActiveX コントロールがあり、やや深刻で紛らわしい問題に直面しています。iDispatch::Invoke が DISPATCH_PROPERTYPUT/METHOD で呼び出されると、すべて問題ありません。IE javascript に値を返すと、有効な BSTR を使用して VT_BSTR のメソッドを呼び出した後、正常に動作します。
しかし、私がしようとすると:
var stringValue = Object.stringValue;
DISPATCH_PROPERTYGET フラグで呼び出された iDispatch を呼び出し、有効な BSTR (メソッド呼び出しで使用するものとまったく同じ) を使用して戻り値を VT_BSTR に設定すると、IE でアクセス許可拒否エラー ボックスが表示されます。
他のさまざまなデータ型 (long、integer、bool など) を IE javascript に返すと、正常に動作します (propertyGet() メソッドを使用)。VT_BSTR を返すときにのみアクセス許可が拒否されます。
何か案は?