This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
213471210952809f8fc08e775ba6cda78159c363
[perl5.git] / ext / Win32API / File / typemap
1 BOOL                    T_BOOL
2 LONG                    T_IV
3 HKEY                    T_UV
4 HANDLE                  T_UV
5 DWORD                   T_UV
6 oDWORD                  O_UV
7 UINT                    T_UV
8 REGSAM                  T_UV
9 SECURITY_INFORMATION    T_UV
10 char *                  T_BUF
11 WCHAR *                 T_BUF
12 BYTE *                  T_BUF
13 void *                  T_BUF
14 ValEntA *               T_BUF
15 ValEntW *               T_BUF
16 SECURITY_DESCRIPTOR *   T_BUF
17 SECURITY_ATTRIBUTES *   T_BUF
18 LPOVERLAPPED            T_BUF
19 LONG *                  T_IVBUF
20 DWORD *                 T_UVBUF
21 LPDWORD                 T_UVBUF
22 oDWORD *                O_UVBUF
23 HKEY *                  T_UVBUFP
24 oHKEY *                 O_UVBUFP
25 FILETIME *              T_SBUF
26
27 #############################################################################
28 INPUT
29 T_BOOL
30         $var= null_arg($arg)||!SvTRUE($arg) ? ($type)0 : looks_like_number($arg) ? ($type)SvIV($arg) : ($type)1
31 T_BUF
32         if(  null_arg($arg)  )
33             $var= NULL;
34         else
35             $var= ($type) SvPV_nolen( $arg )
36 T_SBUF
37         grow_buf( $var,$arg, $type )
38 T_IV
39         $var= null_arg($arg) ? ($type)0 : INT2PTR($type,SvIV($arg))
40 T_UV
41         $var= null_arg($arg) ? ($type)0 : INT2PTR($type,SvUV($arg))
42 O_IV
43         $var= optIV($arg)
44 O_UV
45         $var= optUV($arg)
46 T_IVBUF
47         if(  null_arg($arg)  )
48             $var= NULL;
49         else
50             *( $var= ($type) TempAlloc( sizeof(*($var)) ) )= SvIV($arg)
51 T_UVBUF
52         if(  null_arg($arg)  )
53             $var= NULL;
54         else
55             *( $var= ($type) TempAlloc( sizeof(*($var)) ) )= SvUV($arg)
56 O_IVBUF
57         if(  null_arg($arg)  )
58             $var= NULL;
59         else
60             *( $var= ($type) TempAlloc( sizeof(*($var)) ) )=
61               SvOK($arg) ? SvIV($arg) : 0;
62 O_UVBUF
63         if(  null_arg($arg)  )
64             $var= NULL;
65         else
66             *( $var= ($type) TempAlloc( sizeof(*($var)) ) )=
67               SvOK($arg) ? SvUV($arg) : 0;
68 T_IVBUFP
69         if(  null_arg($arg)  )
70             $var= NULL;
71         else
72             *( $var= ($type) TempAlloc( sizeof(*($var)) ) )= (void *)SvIV($arg)
73 T_UVBUFP
74         if(  null_arg($arg)  )
75             $var= NULL;
76         else
77             *( $var= ($type) TempAlloc( sizeof(*($var)) ) )= (void *)SvUV($arg)
78 O_IVBUFP
79         if(  null_arg($arg)  )
80             $var= NULL;
81         else
82             *( $var= ($type) TempAlloc( sizeof(*($var)) ) )=
83               SvOK($arg) ? (void *)SvIV($arg) : 0;
84 O_UVBUFP
85         if(  null_arg($arg)  )
86             $var= NULL;
87         else
88             *( $var= ($type) TempAlloc( sizeof(*($var)) ) )=
89               SvOK($arg) ? (void *)SvUV($arg) : 0;
90
91 #############################################################################
92 OUTPUT
93 T_BOOL
94         if(  ! null_arg($arg)  &&  ! SvREADONLY($arg)  ) {
95             if(  $var  ) {
96                 sv_setiv( $arg, (IV)$var );
97             } else {
98                 sv_setsv( $arg, &PL_sv_no );
99             }
100         }
101 T_BUF
102         ;
103 T_SBUF
104         trunc_buf( RETVAL, $var,$arg );
105 T_IV
106         if(  ! null_arg($arg)  &&  ! SvREADONLY($arg)  )
107             sv_setiv( $arg, PTR2IV($var) );
108 T_UV
109         if(  ! null_arg($arg)  &&  ! SvREADONLY($arg)  )
110             sv_setuv( $arg, PTR2UV($var) );
111 O_IV
112         if(  ! null_arg($arg)  )
113             sv_setiv( $arg, PTR2IV($var) );
114 O_UV
115         if(  ! null_arg($arg)  )
116             sv_setuv( $arg, PTR2UV($var) );
117 T_IVBUF
118         if(  ! null_arg($arg)  &&  ! SvREADONLY($arg)  )
119             sv_setiv( $arg, (IV)*($var) );
120 T_UVBUF
121         if(  ! null_arg($arg)  &&  ! SvREADONLY($arg)  )
122             sv_setuv( $arg, (UV)*($var) );
123 O_IVBUF
124         if(  ! null_arg($arg)  )
125             sv_setiv( $arg, (IV)*($var) );
126 O_UVBUF
127         if(  ! null_arg($arg)  )
128             sv_setuv( $arg, (UV)*($var) );
129 T_IVBUFP
130         if(  ! null_arg($arg)  &&  ! SvREADONLY($arg)  )
131             sv_setiv( $arg, (IV)*($var) );
132 T_UVBUFP
133         if(  ! null_arg($arg)  &&  ! SvREADONLY($arg)  )
134             sv_setuv( $arg, (UV)*($var) );
135 O_IVBUFP
136         if(  ! null_arg($arg)  )
137             sv_setiv( $arg, (IV)*($var) );
138 O_UVBUFP
139         if(  ! null_arg($arg)  )
140             sv_setuv( $arg, (UV)*($var) );