Windowsアプリに、チャットセッションのユーザーを一覧表示するリストボックスがあります。これは次のように定義されます。
Win32::API::Struct->typedef('UserItem', qw {
USHORT uid;
TCHAR realName[256];
TCHAR aliasName[256];
}
) or die "Typedef error $! \n";
my $user_data = Win32::API::Struct->new('UserItem');
次に、LB_GETITEMDATAメッセージをウィンドウに送信して、構造体によって定義された出席者アイテムの詳細を取得します。
Win32 :: APIを使用して、これを行います。
my $LB_GETITEMDATA = 0x0199;
my $SendMessage = Win32::API->new("user32", "SendMessage", "NNNN", "S");
... # Here is the code to find the window handle, which is $hwnd.
$user_data = $SendMessage->Call($hwnd, $LB_GETITEMDATA, 0, 0); # Get the first item.
さて、$ user_data構造体には最初のアイテムの詳細が含まれていると思いますが、実際にはundefであり、LB_ERRも取得しません。私は何が間違っているのですか?