volatile is legal (and used now!) in a typedef struct {}.

diff --git a/tools/winapi/winapi_parser.pm b/tools/winapi/winapi_parser.pm
index ee2443c..368853c 100644
--- a/tools/winapi/winapi_parser.pm
+++ b/tools/winapi/winapi_parser.pm
@@ -359,8 +359,9 @@
 		    $statements = undef;
 		} elsif($in_type) {
 		    if(/^\s*((?:(?:FAR\s*)?\*\s*(?:RESTRICTED_POINTER\s+)?)?
+			    (?:volatile\s+)?
 			    (?:\w+|WS\(\w+\))\s*
-			    (?:\s*,\s*(?:(?:FAR\s*)?\*+\s*(?:RESTRICTED_POINTER\s+)?)?(?:\w+|WS\(\w+\)))*\s*);/sx) {
+			    (?:\s*,\s*(?:(?:FAR\s*)?\*+\s*(?:RESTRICTED_POINTER\s+)?)?(?:volatile\s+)?(?:\w+|WS\(\w+\)))*\s*);/sx) {
 			my @parts = split(/\s*,\s*/, $1);
 			&$type_end([@parts]);
 		    } elsif(/;/s) {