16/10/11 17:47:59.14 yDjM8vhd0.net
>>36
pinvoke.netのDllImport定義使ってる?
なんでかFindFirstUrlCacheEntryだけEntryPoint書いてるけどなぜかそれが
FindFirstUrlCacheEntryAを明示してるからそっちはANSIでNextのほうはUnicode呼び出しになる
EntryPoint消して、stringへの変換はMarshal.PtrToStringAuto使うようにする
あとFindNextUrlCacheEntryは返値見て失敗したらMarshal.GetLastError呼び出し
バッファ不足か列挙終了か確認する必要がある
そもそも最初に呼び出したFindFirstUrlCacheEntryで得られたバッファサイズはFindNextUrlCacheEntryでさらに拡張される可能性があるし
もし拡張されたらまたFindFirstUrlCacheEntryから呼び出し直しだから
はじめっから65536とか適当に大きいバッファ確保しておいて
FindNextUrlCacheEntryに渡すbufferSizeは毎回入れ直しておいた方がいい