#line 22 "API.xs" #pragma optimize("", off) #line 41 "API.xs" #pragma warning( disable : 4003 ) #line 52 "API.xs" void pointerCallPack(SV* param, int idx, AV* types) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); SV* type; type = *( Perl_av_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), types,idx,0) ); Perl_push_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_save_int(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (int*)&(*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))), (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); if (++(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) == (*Perl_Tmarkstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_markstack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); *(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (sp) - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); do { do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); (*++sp = (Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVsv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), type)))); } while (0); do { do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); (*++sp = (param)); } while (0); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; Perl_call_pv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::Type::Pack",2); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; if ((*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) > (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_free_tmps(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_pop_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); } void pointerCallUnpack(SV* param, int idx, AV* types) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); SV* type; type = *( Perl_av_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), types,idx,0) ); Perl_push_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_save_int(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (int*)&(*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))), (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); if (++(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) == (*Perl_Tmarkstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_markstack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); *(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (sp) - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); do { do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); (*++sp = (Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVsv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), type)))); } while (0); do { do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); (*++sp = (param)); } while (0); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; Perl_call_pv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::Type::Unpack",2); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; if ((*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) > (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_free_tmps(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_pop_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); } #line 123 "API.c" void XS_Win32__API_LoadLibrary(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_LoadLibrary(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items != 1) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::LoadLibrary(name)"); { char * name = (char *)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])); HINSTANCE RETVAL; SV * targ = (((*Perl_Top_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))->op_private & 32) ? ((*Perl_Tcurpad_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[(*Perl_Top_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))->op_targ]) : Perl_sv_newmortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); #line 121 "API.xs" RETVAL = LoadLibraryA(name); #line 136 "API.c" (sp = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax - 1); do { Perl_sv_setiv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), targ,(IV)((IV)RETVAL)); do { do { if (((targ)->sv_flags & 0x00004000)) Perl_mg_set(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), targ); } while (0); (*++sp = (targ)); } while (0); } while (0); } do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } void XS_Win32__API_GetProcAddress(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_GetProcAddress(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items != 2) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::GetProcAddress(library, name)"); { HINSTANCE library = (HINSTANCE)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])); char * name = (char *)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (1)])->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (1)])->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (1)])); long RETVAL; SV * targ = (((*Perl_Top_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))->op_private & 32) ? ((*Perl_Tcurpad_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[(*Perl_Top_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))->op_targ]) : Perl_sv_newmortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); #line 130 "API.xs" RETVAL = (long) GetProcAddress(library, name); #line 155 "API.c" (sp = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax - 1); do { Perl_sv_setiv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), targ,(IV)((IV)RETVAL)); do { do { if (((targ)->sv_flags & 0x00004000)) Perl_mg_set(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), targ); } while (0); (*++sp = (targ)); } while (0); } while (0); } do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } void XS_Win32__API_FreeLibrary(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_FreeLibrary(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items != 1) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::FreeLibrary(library)"); { HINSTANCE library = (HINSTANCE)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])); char RETVAL; #line 138 "API.xs" RETVAL = FreeLibrary(library); #line 172 "API.c" (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = ((RETVAL) ? &(*Perl_Isv_yes_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) : &(*Perl_Isv_no_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))); Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)]); } do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } void XS_Win32__API_IsUnicode(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_IsUnicode(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items != 0) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::IsUnicode()"); { char RETVAL; #line 145 "API.xs" RETVAL = (0); #line 150 "API.xs" #line 193 "API.c" (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = ((RETVAL) ? &(*Perl_Isv_yes_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) : &(*Perl_Isv_no_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))); Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)]); } do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } void XS_Win32__API_ToUnicode(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_ToUnicode(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items != 1) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::ToUnicode(string)"); sp -= items; { LPCSTR string = (LPCSTR)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])); #line 158 "API.xs" LPWSTR uString = 0; int uStringLen; #line 212 "API.c" #line 161 "API.xs" uStringLen = MultiByteToWideChar(0, 0, string, -1, uString, 0); if(uStringLen) { uString = (LPWSTR) Perl_safesysmalloc(uStringLen * 2); if(MultiByteToWideChar(0, 0, string, -1, uString, uStringLen)) { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVpv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (char *) uString,0))); Perl_safesysfree(uString); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } else { Perl_safesysfree(uString); do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = &(*Perl_Isv_no_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); } } else { do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = &(*Perl_Isv_no_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); } #line 228 "API.c" (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; return; } } void XS_Win32__API_FromUnicode(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_FromUnicode(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items != 1) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::FromUnicode(uString)"); sp -= items; { LPCWSTR uString = (LPCWSTR)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])); #line 181 "API.xs" LPSTR string = 0; int stringLen; #line 246 "API.c" #line 184 "API.xs" stringLen = WideCharToMultiByte(0, 0, uString, -1, string, 0, 0, 0); if(stringLen) { string = (LPSTR) Perl_safesysmalloc(stringLen); if(WideCharToMultiByte(0, 0, uString, -1, string, stringLen, 0, 0)) { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVpv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (char *) string,0))); Perl_safesysfree(string); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } else { Perl_safesysfree(string); do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = &(*Perl_Isv_no_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); } } else { do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = &(*Perl_Isv_no_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); } #line 262 "API.c" (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; return; } } void XS_Win32__API_PointerTo(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_PointerTo(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (0) ax = ax; sp -= items; { #line 208 "API.xs" do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSViv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (long) ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])))) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); #line 279 "API.c" (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; return; } } void XS_Win32__API_PointerAt(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_PointerAt(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items != 1) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::PointerAt(addr)"); sp -= items; { long addr = (long)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])); #line 216 "API.xs" do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVpv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (char *) ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])),0))); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); #line 298 "API.c" (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; return; } } void XS_Win32__API_ReadMemory(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_ReadMemory(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items != 2) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::ReadMemory(addr, len)"); sp -= items; { long addr = (long)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)])); long len = (long)((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (1)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (1)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (1)])); #line 225 "API.xs" do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); do { do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); (*++sp = (Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVpv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (char *) addr,len)))); } while (0); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); #line 318 "API.c" (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; return; } } void XS_Win32__API_Call(register PerlInterpreter *my_perl , CV* cv); void XS_Win32__API_Call(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; if (items < 1) Perl_croak(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Usage: Win32::API::Call(api, ...)"); sp -= items; { SV * api = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)]; #line 233 "API.xs" FARPROC ApiFunction; APIPARAM *params; SV** origST; ApiPointer *ApiFunctionPointer; ApiNumber *ApiFunctionNumber; ApiFloat *ApiFunctionFloat; ApiDouble *ApiFunctionDouble; ApiVoid *ApiFunctionVoid; ApiInteger *ApiFunctionInteger; long lParam; float fParam; double dParam; char *pParam; LPBYTE ppParam; int iReturn; long lReturn; float fReturn; double dReturn; char *pReturn; char *cReturn; HV* obj; SV** obj_proc; SV** obj_proto; SV** obj_in; SV** obj_out; SV** obj_intypes; SV** in_type; AV* inlist; AV* intypes; AV* pparray; SV** ppref; SV** code; int nin, tin, tout, i; BOOL has_proto = (0); obj = (HV*) ((XRV*) (api)->sv_any)->xrv_rv; obj_proc = Perl_hv_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), obj,"proc",4,(0)); ApiFunction = (FARPROC) (((*obj_proc)->sv_flags & 0x00010000) ? ((XPVIV*) (*obj_proc)->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *obj_proc)); obj_proto = Perl_hv_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), obj,"proto",5,(0)); if(obj_proto != 0 && (((*obj_proto)->sv_flags & 0x00010000) ? ((XPVIV*) (*obj_proto)->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *obj_proto))) { has_proto = (1); obj_intypes = Perl_hv_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), obj,"intypes",7,(0)); intypes = (AV*) ((XRV*) (*obj_intypes)->sv_any)->xrv_rv; } obj_in = Perl_hv_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), obj,"in",2,(0)); obj_out = Perl_hv_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), obj,"out",3,(0)); inlist = (AV*) ((XRV*) (*obj_in)->sv_any)->xrv_rv; nin = Perl_av_len(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), inlist); tout = (((*obj_out)->sv_flags & 0x00010000) ? ((XPVIV*) (*obj_out)->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *obj_out)); if(items-1 != nin+1) { Perl_croak_nocontext("Wrong number of parameters: expected %d, got %d.\n", nin+1, items-1); } if(nin >= 0) { params = (APIPARAM *) Perl_safesysmalloc((nin+1) * sizeof(APIPARAM)); origST = (SV**) Perl_safesysmalloc((nin+1) * sizeof(SV*)); for(i = 0; i <= nin; i++) { in_type = Perl_av_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), inlist,i,0); tin = (((*in_type)->sv_flags & 0x00010000) ? ((XPVIV*) (*in_type)->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *in_type)); switch(tin) { case 1: params[i].t = 1; params[i].l = ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])); break; case 6: params[i].t = 6; params[i].p = (char *) ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])); params[i].l = (long) (params[i].p)[0]; break; case 4: params[i].t = 4; params[i].f = ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00020000) ? ((XPVNV*)((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xnv_nv : Perl_sv_2nv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])); break; case 5: params[i].t = 5; params[i].d = ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00020000) ? ((XPVNV*)((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xnv_nv : Perl_sv_2nv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])); break; case 2: params[i].t = 2; origST[i] = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)]; if(has_proto) { pointerCallPack((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)], i, intypes); params[i].p = (char *) ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])); } else { if((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00010000) && ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])) == 0) { params[i].p = 0; } else { params[i].p = (char *) ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])); } } break; case 22: params[i].t = 22; if((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00080000) && ((((XRV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xrv_rv)->sv_flags & 0xff) == SVt_PVAV) { pparray = (AV*) ((XRV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xrv_rv; ppref = Perl_av_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), pparray,0,0); if(((*ppref)->sv_flags & 0x00010000) && (((*ppref)->sv_flags & 0x00010000) ? ((XPVIV*) (*ppref)->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *ppref)) == 0) { params[i].b = 0; } else { params[i].b = (LPBYTE) (((*ppref)->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) (*ppref)->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *ppref)); } } else { Perl_croak_nocontext("Win32::API::Call: parameter %d must be an array reference!\n", i+1); } break; case 3: params[i].t = 1; params[i].l = (long) (int) ((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00010000) ? ((XPVIV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])); break; case 51: { MAGIC* mg; params[i].t = 51; if((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00080000)) { mg = Perl_mg_find(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), ((XRV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xrv_rv,'P'); if(mg != 0) { origST[i] = mg->mg_obj; } else { origST[i] = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)]; } } } break; case 101: params[i].t = 101; if((((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_flags & 0x00080000)) { code = Perl_hv_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (HV*) ((XRV*) ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)])->sv_any)->xrv_rv,"code",4,0); if(code != 0) { params[i].l = (((*code)->sv_flags & 0x00010000) ? ((XPVIV*) (*code)->sv_any)->xiv_iv : Perl_sv_2iv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *code)); origST[i] = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (i+1)]; } else { Perl_croak_nocontext("Win32::API::Call: parameter %d must be a Win32::API::Callback object!\n", i+1); } } else { Perl_croak_nocontext("Win32::API::Call: parameter %d must be a Win32::API::Callback object!\n", i+1); } break; } } for(i = 0; i <= nin; i++) { if(params[i].t == 51) { SV** buffer; int count; Perl_push_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_save_int(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (int*)&(*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))), (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); if (++(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) == (*Perl_Tmarkstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_markstack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); *(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (sp) - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); do { do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); (*++sp = (Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVsv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), origST[i])))); } while (0); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; count = Perl_call_method(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Pack",2); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; if ((*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) > (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_free_tmps(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_pop_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); buffer = Perl_hv_fetch(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (HV*) ((XRV*) (origST[i])->sv_any)->xrv_rv,"buffer",6,0); if(buffer != 0) { params[i].p = (char *) (LPBYTE) (((*buffer)->sv_flags & (0x00040000)) == 0x00040000 ? ((XPV*) (*buffer)->sv_any)->xpv_pv : Perl_sv_2pv_nolen(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *buffer)); } else { params[i].p = 0; } } if(params[i].t == 101) { int count; Perl_push_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_save_int(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (int*)&(*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))), (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); if (++(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) == (*Perl_Tmarkstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_markstack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); *(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (sp) - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); do { do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); (*++sp = (origST[i])); } while (0); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; count = Perl_call_method(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "PushSelf",2); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; if ((*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) > (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_free_tmps(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_pop_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); } } for(i = nin; i >= 0; i--) { switch(params[i].t) { case 2: case 51: pParam = params[i].p; { __asm { mov eax, dword ptr pParam }; __asm { push eax }; }; break; case 22: ppParam = params[i].b; { __asm { mov eax, dword ptr ppParam }; __asm { push eax }; }; break; case 1: case 6: lParam = params[i].l; { __asm { mov eax, lParam }; __asm { push eax }; }; break; case 4: fParam = params[i].f; { __asm { mov eax, fParam }; __asm { push eax }; }; break; case 5: dParam = params[i].d; __asm { mov eax, dword ptr [dParam + 4] ; push eax ; mov eax, dword ptr [dParam] ; push eax ; }; #line 557 "API.xs" break; case 101: lParam = params[i].l; { __asm { mov eax, lParam }; __asm { push eax }; }; break; } } } switch(tout) { case 1: ApiFunctionNumber = (ApiNumber *) ApiFunction; lReturn = ApiFunctionNumber(); break; case 4: ApiFunctionFloat = (ApiFloat *) ApiFunction; break; case 5: ApiFunctionDouble = (ApiDouble *) ApiFunction; fReturn = ApiFunctionDouble(); #line 606 "API.xs" break; case 2: ApiFunctionPointer = (ApiPointer *) ApiFunction; pReturn = ApiFunctionPointer(); cReturn = (char *) Perl_safesysmalloc(strlen(pReturn)); strcpy(cReturn, pReturn); break; case 3: ApiFunctionInteger = (ApiInteger *) ApiFunction; iReturn = ApiFunctionInteger(); break; case 0: default: ApiFunctionVoid = (ApiVoid *) ApiFunction; ApiFunctionVoid(); break; } for(i = 0; i <= nin; i++) { if(params[i].t == 2 && has_proto) { pointerCallUnpack(origST[i], i, intypes); } if(params[i].t == 51) { Perl_push_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_save_int(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (int*)&(*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))), (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); if (++(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) == (*Perl_Tmarkstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_markstack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); *(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (sp) - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); do { do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); (*++sp = (origST[i])); } while (0); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; Perl_call_method(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Unpack",2); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; if ((*Perl_Ttmps_ix_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) > (*Perl_Ttmps_floor_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))) Perl_free_tmps(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); Perl_pop_scope(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))); } if(params[i].t == 22) { pparray = (AV*) ((XRV*) (origST[i])->sv_any)->xrv_rv; Perl_av_extend(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), pparray,2); Perl_av_store(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), pparray,1,Perl_newSViv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), *(params[i].b))); } } if(nin >= 0) { Perl_safesysfree(params); Perl_safesysfree(origST); } do { if ((*Perl_Tstack_max_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) - sp < (int)(1)) { sp = Perl_stack_grow(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), sp,sp,(int) (1)); } } while (0); switch(tout) { case 1: do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSViv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), lReturn)) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); break; case 4: do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVnv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), (double) fReturn)) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); break; case 5: _asm { call dword ptr [ApiFunctionDouble] ; fstp qword ptr [dReturn] ; } #line 708 "API.xs" break; case 2: if(pReturn == 0) { do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSViv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), 0)) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); } else { do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSVpv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), cReturn,0))); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); } break; case 3: do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = Perl_sv_2mortal(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), Perl_newSViv(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), iReturn)) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); break; case 0: default: do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = &(*Perl_Isv_undef_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); break; } #line 837 "API.c" (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = sp; return; } } void boot_Win32__API(register PerlInterpreter *my_perl , CV* cv); void boot_Win32__API(register PerlInterpreter *my_perl , CV* cv) { register SV **sp = (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))); register SV **mark = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + (*(*Perl_Tmarkstack_ptr_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))--); I32 ax = mark - (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + 1; I32 items = sp - mark; char* file = "API.c"; ; Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::LoadLibrary",XS_Win32__API_LoadLibrary,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::GetProcAddress",XS_Win32__API_GetProcAddress,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::FreeLibrary",XS_Win32__API_FreeLibrary,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::IsUnicode",XS_Win32__API_IsUnicode,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::ToUnicode",XS_Win32__API_ToUnicode,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::FromUnicode",XS_Win32__API_FromUnicode,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::PointerTo",XS_Win32__API_PointerTo,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::PointerAt",XS_Win32__API_PointerAt,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::ReadMemory",XS_Win32__API_ReadMemory,file); Perl_newXS(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))), "Win32::API::Call",XS_Win32__API_Call,file); do { ((*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0))))))[ax + (0)] = &(*Perl_Isv_yes_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) ); do { IV tmpXSoff = (1); (*Perl_Tstack_sp_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) = (*Perl_Tstack_base_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(0)))))) + ax + (tmpXSoff - 1); return; } while (0); } while (0); }