11/09/01 20:45:44.79
>>790
1 W系は文字列がUnicode(UTF-16)
2 dwOutが0だと書き込むメモリ領域も0扱い
package require Ffidl
ffidl::callout AssocQueryString \
{int int pointer-utf16 pointer-utf16 pointer-var int} int \
[ffidl::symbol shlwapi.dll AssocQueryStringW]
set ASSOCF_NOTRUNCATE 32
set ASSOCSTR_EXECUTABLE 2
set dwOut 1000
set pszFile [binary format x$dwOut]
set result [AssocQueryString \
$ASSOCF_NOTRUNCATE \
$ASSOCSTR_EXECUTABLE \
"c:\\sample.txt" \
"open" \
pszFile \
$dwOut]
puts result=$result
puts pszFile=[string trim [encoding convertfrom unicode $pszFile] \x00]
XPだと動くけど、64bit版Vistaだとクラッシュするのお・・・。