>305
IDirectDrawはIDirectDrawでしかない。が、
IDirectDraw *が指している先の実体は、IDirectDraw7のインターフェイスを持っているかもしれない。
(というか、実行環境にDirectX7がインストールされているなら持ってるはず?)
で、その実体が持っている別のインターフェイスを貰う手段がQueryInterface()と言うわけ。

ついでに、IDirectDrawとIDirectDraw7の間に継承関係はないから、
dynamic_castすること自体間違ってる。
そもそもCOMというのはC++に依存するものじゃなくてだな、(以下略