#! perl -slw use strict; use Inline C => Config => BUILD_NOISY => 1; use Inline C => <<'END_C', NAME => 'GWTPI', CLEAN_AFTER_BUILD =>0; #include #define IS_VARS Inline_Stack_Vars #define IS_RESET Inline_Stack_Reset #define IS_PUSHIV( iv ) Inline_Stack_Push( sv_2mortal( newSViv( iv ) ) ) #define IS_PUSHUV( uv ) Inline_Stack_Push( sv_2mortal( newSVuv( uv ) ) ) #define IS_DONE Inline_Stack_Done void getWindowThreadProcessId( SV* hwnd ) { IS_VARS; DWORD pid; DWORD tid = GetWindowThreadProcessId( (HWND)SvUV(hwnd), &pid ); IS_RESET; IS_PUSHUV( tid ); IS_PUSHUV( pid ); IS_DONE; return; } END_C my( $tid, $pid ) = getWindowThreadProcessId( 0 ); print "$tid $pid";