解決したので、一応ご報告しときます。
全然違う所で引っかかってたようです、すみません。

Win95で開発当時、OPENFILENAME構造体を次のように定義していたのですが…
  Type
   …
   lpstrFilter As String
   …
  End Type
2000では、こうするとまともになりました。
  Type
   …
   lpstrFilter As Long
   …
  End Type
95でも、これで大丈夫みたいです。

ここはVBではStringにするようになってたはずだと思うんですが、なぜLongに変える必要があったんでしょうか?
結果オーライでは今一つ不安なので、どなたか理由を教えて下さいです。