VB6SP5で開発を進めているのですが、コモンダイアログを使わず、
APIのGetOpenFileNameを使用したいと考えております。
Windows95/98では問題なく動く事は確認できたのですが、Windows2000では
構造体(OPENFILENAME)のメンバが増えているらしく動作しません。
いろいろ調べたつもりですが、何が違うのかわかりませんのでなたか教えて
下さい。お願いします。
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を与えるときのみですが。
YuOさん、ご回答有難うございます。
OPENFILENAMEの構造体を確認しましたが、追加されている部分がVBでは
どうの様な記述になるか教えて頂けませんか。
宜しくお願いします。
<<追加分>>
#if (_WIN32_WINNT >= 0x0500)
void * pvReserved;
DWORD dwReserved;
DWORD FlagsEx;
#endif // (_WIN32_WINNT >= 0x0500)
VBのヘルプにどのようにCのデータ型とVBのデータ型のマッピングが載っています。
それを調べればわかる話だと思いますが。
まぁ,今回は全てLong型にしてしまえば終わりですけどね。
とりあえず、いろいろやってみたらうまく行きました。
ご協力、ご指導ありがとうございました。
ツイート | ![]() |