Fixed WM_GETTEXTLENGTH handling.
[wine/multimedia.git] / tools / winapi_check / winapi_function.pm
blobe6b187903827ffc894757e1523a8fbad6885330e
1 package winapi_function;
3 use strict;
5 sub new {
6 my $proto = shift;
7 my $class = ref($proto) || $proto;
8 my $self = {};
9 bless ($self, $class);
11 return $self;
14 sub file {
15 my $self = shift;
16 my $file = \${$self->{FILE}};
18 local $_ = shift;
20 if(defined($_)) { $$file = $_; }
22 return $$file;
25 sub documentation {
26 my $self = shift;
27 my $documentation = \${$self->{DOCUMENTATION}};
29 local $_ = shift;
31 if(defined($_)) { $$documentation = $_; }
33 return $$documentation;
36 sub linkage {
37 my $self = shift;
38 my $linkage = \${$self->{LINKAGE}};
40 local $_ = shift;
42 if(defined($_)) { $$linkage = $_; }
44 return $$linkage;
47 sub return_type {
48 my $self = shift;
49 my $return_type = \${$self->{RETURN_TYPE}};
51 local $_ = shift;
53 if(defined($_)) { $$return_type = $_; }
55 return $$return_type;
58 sub calling_convention {
59 my $self = shift;
60 my $calling_convention = \${$self->{CALLING_CONVENTION}};
62 local $_ = shift;
64 if(defined($_)) { $$calling_convention = $_; }
66 return $$calling_convention;
69 sub external_name16 {
70 my $self = shift;
71 my $external_name16 = \${$self->{EXTERNAL_NAME16}};
73 local $_ = shift;
75 if(defined($_)) { $$external_name16 = $_; }
77 return $$external_name16;
80 sub external_name32 {
81 my $self = shift;
82 my $external_name32 = \${$self->{EXTERNAL_NAME32}};
84 local $_ = shift;
86 if(defined($_)) { $$external_name32 = $_; }
88 return $$external_name32;
91 sub internal_name {
92 my $self = shift;
93 my $internal_name = \${$self->{INTERNAL_NAME}};
95 local $_ = shift;
97 if(defined($_)) { $$internal_name = $_; }
99 return $$internal_name;
102 sub argument_types {
103 my $self = shift;
104 my $argument_types = \${$self->{ARGUMENT_TYPES}};
106 local $_ = shift;
108 if(defined($_)) { $$argument_types = $_; }
110 return $$argument_types;
113 sub argument_names {
114 my $self = shift;
115 my $argument_names = \${$self->{ARGUMENT_NAMES}};
117 local $_ = shift;
119 if(defined($_)) { $$argument_names = $_; }
121 return $$argument_names;
124 sub argument_documentations {
125 my $self = shift;
126 my $argument_documentations = \${$self->{ARGUMENT_DOCUMENTATIONS}};
128 local $_ = shift;
130 if(defined($_)) { $$argument_documentations = $_; }
132 return $$argument_documentations;
135 sub module16 {
136 my $self = shift;
137 my $module16 = \${$self->{MODULE16}};
139 local $_ = shift;
141 if(defined($_)) { $$module16 = $_; }
142 return $$module16;
145 sub module32 {
146 my $self = shift;
147 my $module32 = \${$self->{MODULE32}};
149 local $_ = shift;
151 if(defined($_)) { $$module32 = $_; }
152 return $$module32;
155 sub statements {
156 my $self = shift;
157 my $statements = \${$self->{STATEMENTS}};
159 local $_ = shift;
161 if(defined($_)) { $$statements = $_; }
163 return $$statements;
166 sub module {
167 my $self = shift;
168 my $module16 = \${$self->{MODULE16}};
169 my $module32 = \${$self->{MODULE32}};
171 my $module;
172 if(defined($$module16) && defined($$module32)) {
173 $module = "$$module16 & $$module32";
174 } elsif(defined($$module16)) {
175 $module = $$module16;
176 } elsif(defined($$module32)) {
177 $module = $$module32;
178 } else {
179 $module = "";
183 sub function_called {
184 my $self = shift;
185 my $called_function_names = \%{$self->{CALLED_FUNCTION_NAMES}};
187 my $name = shift;
189 $$called_function_names{$name}++;
192 sub function_called_by {
193 my $self = shift;
194 my $called_by_function_names = \%{$self->{CALLED_BY_FUNCTION_NAMES}};
196 my $name = shift;
198 $$called_by_function_names{$name}++;
201 sub called_function_names {
202 my $self = shift;
203 my $called_function_names = \%{$self->{CALLED_FUNCTION_NAMES}};
205 return sort(keys(%$called_function_names));
208 sub called_by_function_names {
209 my $self = shift;
210 my $called_by_function_names = \%{$self->{CALLED_BY_FUNCTION_NAMES}};
212 return sort(keys(%$called_by_function_names));