• 締切済み

Windows2000のAPIの使い方について

以前、Win95、NT開発環境でAPI関数のGetOpenFileNameを使用し、 ファイルを選択するダイアログを表示するようなプログラムをVBAで作りました。 Win95、NTでは正常に動作するのですが、 Win2000ワークステーションではダイアログが表示されません。エラーもでません。2000では構造体が3つ追加されていることはわかったのですが、 実際プログラミングしてみたところ正常に作動しません。 いろいろ調べたのですがよく分からないので、サンプルのプログラム等を教えていただきたいのですが・・・。よろしくお願いします。

みんなの回答

  • hanimaro
  • ベストアンサー率44% (22/50)
回答No.2

ちゃんと、OPENFILENAME構造体を初期化してますか? それから、構造体サイズもちゃんとセットしてます? こちらの環境では特に問題が出たことはないですが・・・

n-michan
質問者

補足

回答ありがとうございます。 pvReserved,dwReserved,FlagsEx は Long型で定義し、0を代入しています。 lStructSize には関数で構造体の長さ(88)を入れています。 CommdlgExtendedError関数の返り値は11でした。 フックの指定か何かがおかしいのでしょうか? APIはあまりよく理解できていない状態なので詳しく質問内容を説明できなくて すみません。

noname#9414
noname#9414
回答No.1

基本的にNTと同じ関数名のはずですが・・・ #もっともVBAはあまり知らないので、何とも #言えませんが。 仮に引数を3つ追加したものをWindows 2000で 動作させるとどうなりますか? ではでは☆

n-michan
質問者

補足

回答ありがとうございます。 pvReserved,dwReserved,FlagsEx は Long型で定義し、0を代入しています。 lStructSize には関数で構造体の長さ(88)を入れています。 CommdlgExtendedError関数の返り値は11でした。 フックの指定か何かがおかしいのでしょうか? APIはあまりよく理解できていない状態なので詳しく質問内容を説明できなくて すみません。