投稿者 neptune  (社会人) 投稿日時 2009/4/6 07:55:49
葉月さん
アドバイスありがとうございます。

私は、汎用性を持たせるときは、特殊フォルダ取得にはSHGetSpecialFolderPath APIを
使用するようにしています。
と、言ってもまだ、vb6以降では配布するようなものを作ったことないので、
本当の汎用性を持たせる際参考にさせていただきます。

所で、今日GetOpenFileNameの方でクラス作成していたんですが、構造体の
宣言って、ややこしいですねぇ。OPENFILENAME構造体なんですが、
構造体のサイズって、
.lStructSize = Marshal.SizeOf(ofn)
とやらなければならないのがなかなかわかりませんでした。

文字列のメンバも
MarshalAs(UnmanagedType・・・
ってな感じで宣言しなければならないし。
自由度は高くなりますけどその分鬱陶しいです。
Unmanaged扱いしなければならなくなった事でAPIは本当に使いにくくなった様に感じます。

なのでできれば使わないに越したことはないですね。