$VAR1 = [ { 'FILE' => 'test.idl', 'NAME' => 'winspool', 'PROPERTIES' => { 'ms_union' => '1', 'version' => '1.0', 'uuid' => '12345678-1234-ABCD-EF00-0123456789AB', 'endpoint' => '"ncacn_np:[\\\\pipe\\\\spoolss]"', 'pointer_default' => 'unique' }, 'DATA' => [ { 'FILE' => 'test.idl', 'NAME' => 'BIDI_TYPE', 'POINTERS' => 0, 'TYPE' => 'TYPEDEF', 'BASEFILE' => 'test', 'DATA' => { 'FILE' => 'test.idl', 'TYPE' => 'ENUM', 'LINE' => 23, 'ELEMENTS' => [ 'BIDI_NULL=0', 'BIDI_INT=1', 'BIDI_FLOAT=2', 'BIDI_BOOL=3', 'BIDI_STRING=4', 'BIDI_TEXT=5', 'BIDI_ENUM=6', 'BIDI_BLOB=7' ] }, 'LINE' => 23 }, { 'FILE' => 'test.idl', 'NAME' => 'LANGID', 'POINTERS' => 0, 'TYPE' => 'TYPEDEF', 'BASEFILE' => 'test', 'DATA' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned short', 'LINE' => 26 }, 'LINE' => 26 }, { 'FILE' => 'test.idl', 'NAME' => 'GDI_HANDLE', 'POINTERS' => 1, 'TYPE' => 'TYPEDEF', 'BASEFILE' => 'test', 'PROPERTIES' => { 'handle' => '1' }, 'DATA' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'TYPE_' => 'void', 'LINE' => 27 }, 'LINE' => 27 }, { 'FILE' => 'test.idl', 'NAME' => 'PRINTER_HANDLE', 'POINTERS' => 1, 'TYPE' => 'TYPEDEF', 'BASEFILE' => 'test', 'PROPERTIES' => { 'handle' => '1' }, 'DATA' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'TYPE_' => 'void', 'LINE' => 28 }, 'LINE' => 28 }, { 'FILE' => 'test.idl', 'NAME' => 'STRING_HANDLE', 'POINTERS' => 1, 'TYPE' => 'TYPEDEF', 'BASEFILE' => 'test', 'PROPERTIES' => { 'handle' => '1' }, 'DATA' => { 'FILE' => 'test.idl', 'TYPE' => 'USER_DEFINED', 'DTYPE' => 'wchar_t', 'LINE' => 29 }, 'LINE' => 29 }, { 'FILE' => 'test.idl', 'NAME' => 'SIZE', 'POINTERS' => 0, 'TYPE' => 'TYPEDEF', 'BASEFILE' => 'test', 'DATA' => { 'FILE' => 'test.idl', 'TYPE' => 'STRUCT', 'LINE' => 35, 'ELEMENTS' => [ { 'FILE' => 'test.idl', 'NAME' => 'cx', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed long', 'LINE' => 33 }, 'LINE' => 33 }, { 'FILE' => 'test.idl', 'NAME' => 'cy', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed long', 'LINE' => 34 }, 'LINE' => 34 } ] }, 'LINE' => 35 }, { 'FILE' => 'test.idl', 'NAME' => 'RECTL', 'POINTERS' => 0, 'TYPE' => 'TYPEDEF', 'BASEFILE' => 'test', 'DATA' => { 'FILE' => 'test.idl', 'TYPE' => 'STRUCT', 'LINE' => 42, 'ELEMENTS' => [ { 'FILE' => 'test.idl', 'NAME' => 'left', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed long', 'LINE' => 38 }, 'LINE' => 38 }, { 'FILE' => 'test.idl', 'NAME' => 'top', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed long', 'LINE' => 39 }, 'LINE' => 39 }, { 'FILE' => 'test.idl', 'NAME' => 'right', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed long', 'LINE' => 40 }, 'LINE' => 40 }, { 'FILE' => 'test.idl', 'NAME' => 'bottom', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed long', 'LINE' => 41 }, 'LINE' => 41 } ] }, 'LINE' => 42 }, { 'FILE' => 'test.idl', 'NAME' => '_devicemode', 'BASEFILE' => 'test', 'TYPE' => 'STRUCT', 'LINE' => 86, 'ELEMENTS' => [ { 'FILE' => 'test.idl', 'NAME' => 'dmDeviceName', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'USER_DEFINED', 'DTYPE' => 'wchar_t', 'LINE' => 46 }, 'LINE' => 46, 'ARRAY_LEN' => [ '32' ] }, { 'FILE' => 'test.idl', 'NAME' => 'dmSpecVersion', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned short', 'LINE' => 48 }, 'LINE' => 48 }, { 'FILE' => 'test.idl', 'NAME' => 'dmDriverVersion', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned short', 'LINE' => 49 }, 'LINE' => 49 }, { 'FILE' => 'test.idl', 'NAME' => 'dmSize', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned short', 'LINE' => 50 }, 'LINE' => 50 }, { 'FILE' => 'test.idl', 'NAME' => 'dmDriverExtra', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned short', 'LINE' => 51 }, 'LINE' => 51 }, { 'FILE' => 'test.idl', 'NAME' => 'dmFields', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 53 }, 'LINE' => 53 }, { 'FILE' => 'test.idl', 'NAME' => 'dmOrientation', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 55 }, 'LINE' => 55 }, { 'FILE' => 'test.idl', 'NAME' => 'dmPaperSize', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 56 }, 'LINE' => 56 }, { 'FILE' => 'test.idl', 'NAME' => 'dmPaperLength', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 57 }, 'LINE' => 57 }, { 'FILE' => 'test.idl', 'NAME' => 'dmPaperWidth', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 58 }, 'LINE' => 58 }, { 'FILE' => 'test.idl', 'NAME' => 'dmScale', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 59 }, 'LINE' => 59 }, { 'FILE' => 'test.idl', 'NAME' => 'dmCopies', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 60 }, 'LINE' => 60 }, { 'FILE' => 'test.idl', 'NAME' => 'dmDefaultSource', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 61 }, 'LINE' => 61 }, { 'FILE' => 'test.idl', 'NAME' => 'dmPrintQuality', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 62 }, 'LINE' => 62 }, { 'FILE' => 'test.idl', 'NAME' => 'dmColor', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 63 }, 'LINE' => 63 }, { 'FILE' => 'test.idl', 'NAME' => 'dmDuplex', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 64 }, 'LINE' => 64 }, { 'FILE' => 'test.idl', 'NAME' => 'dmYResolution', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 65 }, 'LINE' => 65 }, { 'FILE' => 'test.idl', 'NAME' => 'dmTTOption', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 66 }, 'LINE' => 66 }, { 'FILE' => 'test.idl', 'NAME' => 'dmCollate', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'signed short', 'LINE' => 67 }, 'LINE' => 67 }, { 'FILE' => 'test.idl', 'NAME' => 'dmFormName', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'USER_DEFINED', 'DTYPE' => 'wchar_t', 'LINE' => 69 }, 'LINE' => 69, 'ARRAY_LEN' => [ '32' ] }, { 'FILE' => 'test.idl', 'NAME' => 'reserved0', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned short', 'LINE' => 71 }, 'LINE' => 71 }, { 'FILE' => 'test.idl', 'NAME' => 'reserved1', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 73 }, 'LINE' => 73 }, { 'FILE' => 'test.idl', 'NAME' => 'reserved2', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 74 }, 'LINE' => 74 }, { 'FILE' => 'test.idl', 'NAME' => 'reserved3', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 75 }, 'LINE' => 75 }, { 'FILE' => 'test.idl', 'NAME' => 'dmNup', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 76 }, 'LINE' => 76 }, { 'FILE' => 'test.idl', 'NAME' => 'reserved4', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 77 }, 'LINE' => 77 }, { 'FILE' => 'test.idl', 'NAME' => 'dmICMMethod', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 78 }, 'LINE' => 78 }, { 'FILE' => 'test.idl', 'NAME' => 'dmICMIntent', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 79 }, 'LINE' => 79 }, { 'FILE' => 'test.idl', 'NAME' => 'dmMediaType', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 80 }, 'LINE' => 80 }, { 'FILE' => 'test.idl', 'NAME' => 'dmDitherType', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 81 }, 'LINE' => 81 }, { 'FILE' => 'test.idl', 'NAME' => 'reserved5', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 82 }, 'LINE' => 82 }, { 'FILE' => 'test.idl', 'NAME' => 'reserved6', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 83 }, 'LINE' => 83 }, { 'FILE' => 'test.idl', 'NAME' => 'reserved7', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 84 }, 'LINE' => 84 }, { 'FILE' => 'test.idl', 'NAME' => 'reserved8', 'POINTERS' => 0, 'TYPE' => { 'FILE' => 'test.idl', 'TYPE' => 'BASIC_TYPE', 'DTYPE' => 'unsigned long', 'LINE' => 85 }, 'LINE' => 85 } ] } ], 'TYPE' => 'INTERFACE', 'LINE' => 89 } ];