APIを使用した「ファイルを開く」について

解決


マンボ  2002-11-13 15:44:46  No: 76349  IP: [192.*.*.*]

VB6SP5で開発を進めているのですが、コモンダイアログを使わず、
APIのGetOpenFileNameを使用したいと考えております。
Windows95/98では問題なく動く事は確認できたのですが、Windows2000では
構造体(OPENFILENAME)のメンバが増えているらしく動作しません。
いろいろ調べたつもりですが、何が違うのかわかりませんのでなたか教えて
下さい。お願いします。

編集 削除
YuO  2002-11-13 16:52:43  No: 76350  IP: [192.*.*.*]

95/NT4/98/ME(?)用のOPENFILENAMEA構造体を利用すれば,
2000/XPでも問題なく動くと思うのですが。

詳しくは
http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/CommonDialogBoxLibrary/CommonDialogBoxReference/CommonDialogBoxStructures/OPENFILENAME.asp
などを参照。
まぁ,新しい構造体を使うのは,The Places Barを表示しないために,
FlagsExにOFN_EX_NOPLACESBARを与えるときのみですが。

編集 削除
マンボ  2002-11-13 20:02:00  No: 76351  IP: [192.*.*.*]

YuOさん、ご回答有難うございます。
OPENFILENAMEの構造体を確認しましたが、追加されている部分がVBでは
どうの様な記述になるか教えて頂けませんか。
宜しくお願いします。

<<追加分>>
#if (_WIN32_WINNT >= 0x0500)
  void *        pvReserved;
  DWORD         dwReserved;
  DWORD         FlagsEx;
#endif // (_WIN32_WINNT >= 0x0500)

編集 削除
YuO  2002-11-14 00:19:15  No: 76352  IP: [192.*.*.*]

VBのヘルプにどのようにCのデータ型とVBのデータ型のマッピングが載っています。
それを調べればわかる話だと思いますが。

まぁ,今回は全てLong型にしてしまえば終わりですけどね。

編集 削除
マンボ  2002-11-14 17:59:27  No: 76353  IP: [192.*.*.*]

とりあえず、いろいろやってみたらうまく行きました。
ご協力、ご指導ありがとうございました。

編集 削除