>>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だとクラッシュするのお・・・。