github.com/jdgcs/sqlite3@v1.12.1-0.20210908114423-bc5f96e4dd51/internal/mptest/main_windows_386.go (about)

     1  // Code generated by 'ccgo -o internal/mptest/main_windows_386.go -trace-translation-units testdata/sqlite-src-3330000/mptest/mptest.c -Itestdata/sqlite-amalgamation-3330000 -l modernc.org/sqlite/lib -DNDEBUG -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DSQLITE_CORE -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_MUTEX_APPDEF=1 -DSQLITE_MUTEX_NOOP -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_OS_WIN=1 -D_MSC_VER=1900', DO NOT EDIT.
     2  
     3  package main
     4  
     5  import (
     6  	"math"
     7  	"reflect"
     8  	"sync/atomic"
     9  	"unsafe"
    10  
    11  	"modernc.org/libc"
    12  	"modernc.org/sqlite/lib"
    13  )
    14  
    15  var _ = math.Pi
    16  var _ reflect.Kind
    17  var _ atomic.Value
    18  var _ unsafe.Pointer
    19  
    20  func main() { libc.Start(main1) }
    21  
    22  // *
    23  // This file is part of the mingw-w64 runtime package.
    24  // No warranty is given; refer to the file DISCLAIMER within this package.
    25  
    26  // *
    27  // This file is part of the mingw-w64 runtime package.
    28  // No warranty is given; refer to the file DISCLAIMER within this package.
    29  
    30  // *
    31  // This file is part of the mingw-w64 runtime package.
    32  // No warranty is given; refer to the file DISCLAIMER within this package.
    33  
    34  const ( /* memoryapi.h:18:3: */
    35  	LowMemoryResourceNotification  = 0
    36  	HighMemoryResourceNotification = 1
    37  )
    38  
    39  const ( /* minwinbase.h:100:3: */
    40  	FindExSearchNameMatch          = 0
    41  	FindExSearchLimitToDirectories = 1
    42  	FindExSearchLimitToDevices     = 2
    43  	FindExSearchMaxSearchOp        = 3
    44  )
    45  
    46  const ( /* minwinbase.h:107:3: */
    47  	GetFileExInfoStandard = 0
    48  	GetFileExMaxInfoLevel = 1
    49  )
    50  
    51  const ( /* minwinbase.h:91:3: */
    52  	FindExInfoStandard     = 0
    53  	FindExInfoBasic        = 1
    54  	FindExInfoMaxInfoLevel = 2
    55  )
    56  
    57  const ( /* sysinfoapi.h:70:3: */
    58  	ComputerNameNetBIOS                   = 0
    59  	ComputerNameDnsHostname               = 1
    60  	ComputerNameDnsDomain                 = 2
    61  	ComputerNameDnsFullyQualified         = 3
    62  	ComputerNamePhysicalNetBIOS           = 4
    63  	ComputerNamePhysicalDnsHostname       = 5
    64  	ComputerNamePhysicalDnsDomain         = 6
    65  	ComputerNamePhysicalDnsFullyQualified = 7
    66  	ComputerNameMax                       = 8
    67  )
    68  
    69  // TODO: Add RTL_UMS... to winnt.h header and add UMS-base API.
    70  
    71  const ( /* winbase.h:1191:3: */
    72  	ThreadMemoryPriority      = 0
    73  	ThreadAbsoluteCpuPriority = 1
    74  	ThreadInformationClassMax = 2
    75  )
    76  
    77  const ( /* winbase.h:1197:3: */
    78  	ProcessMemoryPriority      = 0
    79  	ProcessInformationClassMax = 1
    80  )
    81  
    82  const ( /* winbase.h:1298:3: */
    83  	DEPPolicyAlwaysOff  = 0
    84  	DEPPolicyAlwaysOn   = 1
    85  	DEPPolicyOptIn      = 2
    86  	DEPPolicyOptOut     = 3
    87  	DEPTotalPolicyCount = 4
    88  )
    89  
    90  const ( /* winbase.h:2147:3: */
    91  	FindStreamInfoStandard     = 0
    92  	FindStreamInfoMaxInfoLevel = 1
    93  )
    94  
    95  const ( /* winnls.h:720:3: */
    96  	COMPARE_STRING = 1
    97  )
    98  
    99  const ( /* winnls.h:756:3: */
   100  	GEO_NATION            = 1
   101  	GEO_LATITUDE          = 2
   102  	GEO_LONGITUDE         = 3
   103  	GEO_ISO2              = 4
   104  	GEO_ISO3              = 5
   105  	GEO_RFC1766           = 6
   106  	GEO_LCID              = 7
   107  	GEO_FRIENDLYNAME      = 8
   108  	GEO_OFFICIALNAME      = 9
   109  	GEO_TIMEZONES         = 10
   110  	GEO_OFFICIALLANGUAGES = 11
   111  	GEO_ISO_UN_NUMBER     = 12
   112  	GEO_PARENT            = 13
   113  )
   114  
   115  const ( /* winnls.h:772:3: */
   116  	GEOCLASS_NATION = 16
   117  	GEOCLASS_REGION = 14
   118  	GEOCLASS_ALL    = 0
   119  )
   120  
   121  const ( /* winnt.h:2945:5: */
   122  	SidTypeUser           = 1
   123  	SidTypeGroup          = 2
   124  	SidTypeDomain         = 3
   125  	SidTypeAlias          = 4
   126  	SidTypeWellKnownGroup = 5
   127  	SidTypeDeletedAccount = 6
   128  	SidTypeInvalid        = 7
   129  	SidTypeUnknown        = 8
   130  	SidTypeComputer       = 9
   131  	SidTypeLabel          = 10
   132  	SidTypeLogonSession   = 11
   133  )
   134  
   135  const ( /* winnt.h:3184:5: */
   136  	WinNullSid                                    = 0
   137  	WinWorldSid                                   = 1
   138  	WinLocalSid                                   = 2
   139  	WinCreatorOwnerSid                            = 3
   140  	WinCreatorGroupSid                            = 4
   141  	WinCreatorOwnerServerSid                      = 5
   142  	WinCreatorGroupServerSid                      = 6
   143  	WinNtAuthoritySid                             = 7
   144  	WinDialupSid                                  = 8
   145  	WinNetworkSid                                 = 9
   146  	WinBatchSid                                   = 10
   147  	WinInteractiveSid                             = 11
   148  	WinServiceSid                                 = 12
   149  	WinAnonymousSid                               = 13
   150  	WinProxySid                                   = 14
   151  	WinEnterpriseControllersSid                   = 15
   152  	WinSelfSid                                    = 16
   153  	WinAuthenticatedUserSid                       = 17
   154  	WinRestrictedCodeSid                          = 18
   155  	WinTerminalServerSid                          = 19
   156  	WinRemoteLogonIdSid                           = 20
   157  	WinLogonIdsSid                                = 21
   158  	WinLocalSystemSid                             = 22
   159  	WinLocalServiceSid                            = 23
   160  	WinNetworkServiceSid                          = 24
   161  	WinBuiltinDomainSid                           = 25
   162  	WinBuiltinAdministratorsSid                   = 26
   163  	WinBuiltinUsersSid                            = 27
   164  	WinBuiltinGuestsSid                           = 28
   165  	WinBuiltinPowerUsersSid                       = 29
   166  	WinBuiltinAccountOperatorsSid                 = 30
   167  	WinBuiltinSystemOperatorsSid                  = 31
   168  	WinBuiltinPrintOperatorsSid                   = 32
   169  	WinBuiltinBackupOperatorsSid                  = 33
   170  	WinBuiltinReplicatorSid                       = 34
   171  	WinBuiltinPreWindows2000CompatibleAccessSid   = 35
   172  	WinBuiltinRemoteDesktopUsersSid               = 36
   173  	WinBuiltinNetworkConfigurationOperatorsSid    = 37
   174  	WinAccountAdministratorSid                    = 38
   175  	WinAccountGuestSid                            = 39
   176  	WinAccountKrbtgtSid                           = 40
   177  	WinAccountDomainAdminsSid                     = 41
   178  	WinAccountDomainUsersSid                      = 42
   179  	WinAccountDomainGuestsSid                     = 43
   180  	WinAccountComputersSid                        = 44
   181  	WinAccountControllersSid                      = 45
   182  	WinAccountCertAdminsSid                       = 46
   183  	WinAccountSchemaAdminsSid                     = 47
   184  	WinAccountEnterpriseAdminsSid                 = 48
   185  	WinAccountPolicyAdminsSid                     = 49
   186  	WinAccountRasAndIasServersSid                 = 50
   187  	WinNTLMAuthenticationSid                      = 51
   188  	WinDigestAuthenticationSid                    = 52
   189  	WinSChannelAuthenticationSid                  = 53
   190  	WinThisOrganizationSid                        = 54
   191  	WinOtherOrganizationSid                       = 55
   192  	WinBuiltinIncomingForestTrustBuildersSid      = 56
   193  	WinBuiltinPerfMonitoringUsersSid              = 57
   194  	WinBuiltinPerfLoggingUsersSid                 = 58
   195  	WinBuiltinAuthorizationAccessSid              = 59
   196  	WinBuiltinTerminalServerLicenseServersSid     = 60
   197  	WinBuiltinDCOMUsersSid                        = 61
   198  	WinBuiltinIUsersSid                           = 62
   199  	WinIUserSid                                   = 63
   200  	WinBuiltinCryptoOperatorsSid                  = 64
   201  	WinUntrustedLabelSid                          = 65
   202  	WinLowLabelSid                                = 66
   203  	WinMediumLabelSid                             = 67
   204  	WinHighLabelSid                               = 68
   205  	WinSystemLabelSid                             = 69
   206  	WinWriteRestrictedCodeSid                     = 70
   207  	WinCreatorOwnerRightsSid                      = 71
   208  	WinCacheablePrincipalsGroupSid                = 72
   209  	WinNonCacheablePrincipalsGroupSid             = 73
   210  	WinEnterpriseReadonlyControllersSid           = 74
   211  	WinAccountReadonlyControllersSid              = 75
   212  	WinBuiltinEventLogReadersGroup                = 76
   213  	WinNewEnterpriseReadonlyControllersSid        = 77
   214  	WinBuiltinCertSvcDComAccessGroup              = 78
   215  	WinMediumPlusLabelSid                         = 79
   216  	WinLocalLogonSid                              = 80
   217  	WinConsoleLogonSid                            = 81
   218  	WinThisOrganizationCertificateSid             = 82
   219  	WinApplicationPackageAuthoritySid             = 83
   220  	WinBuiltinAnyPackageSid                       = 84
   221  	WinCapabilityInternetClientSid                = 85
   222  	WinCapabilityInternetClientServerSid          = 86
   223  	WinCapabilityPrivateNetworkClientServerSid    = 87
   224  	WinCapabilityPicturesLibrarySid               = 88
   225  	WinCapabilityVideosLibrarySid                 = 89
   226  	WinCapabilityMusicLibrarySid                  = 90
   227  	WinCapabilityDocumentsLibrarySid              = 91
   228  	WinCapabilitySharedUserCertificatesSid        = 92
   229  	WinCapabilityEnterpriseAuthenticationSid      = 93
   230  	WinCapabilityRemovableStorageSid              = 94
   231  	WinBuiltinRDSRemoteAccessServersSid           = 95
   232  	WinBuiltinRDSEndpointServersSid               = 96
   233  	WinBuiltinRDSManagementServersSid             = 97
   234  	WinUserModeDriversSid                         = 98
   235  	WinBuiltinHyperVAdminsSid                     = 99
   236  	WinAccountCloneableControllersSid             = 100
   237  	WinBuiltinAccessControlAssistanceOperatorsSid = 101
   238  	WinBuiltinRemoteManagementUsersSid            = 102
   239  	WinAuthenticationAuthorityAssertedSid         = 103
   240  	WinAuthenticationServiceAssertedSid           = 104
   241  	WinLocalAccountSid                            = 105
   242  	WinLocalAccountAndAdministratorSid            = 106
   243  	WinAccountProtectedUsersSid                   = 107
   244  	WinCapabilityAppointmentsSid                  = 108
   245  	WinCapabilityContactsSid                      = 109
   246  	WinAccountDefaultSystemManagedSid             = 110
   247  	WinBuiltinDefaultSystemManagedGroupSid        = 111
   248  	WinBuiltinStorageReplicaAdminsSid             = 112
   249  	WinAccountKeyAdminsSid                        = 113
   250  	WinAccountEnterpriseKeyAdminsSid              = 114
   251  	WinAuthenticationKeyTrustSid                  = 115
   252  	WinAuthenticationKeyPropertyMFASid            = 116
   253  	WinAuthenticationKeyPropertyAttestationSid    = 117
   254  )
   255  
   256  const ( /* winnt.h:3495:5: */
   257  	AclRevisionInformation = 1
   258  	AclSizeInformation     = 2
   259  )
   260  
   261  const ( /* winnt.h:3565:5: */
   262  	AuditEventObjectAccess           = 0
   263  	AuditEventDirectoryServiceAccess = 1
   264  )
   265  
   266  const ( /* winnt.h:3597:5: */
   267  	AccessReasonNone                     = 0
   268  	AccessReasonAllowedAce               = 65536
   269  	AccessReasonDeniedAce                = 131072
   270  	AccessReasonAllowedParentAce         = 196608
   271  	AccessReasonDeniedParentAce          = 262144
   272  	AccessReasonNotGrantedByCape         = 327680
   273  	AccessReasonNotGrantedByParentCape   = 393216
   274  	AccessReasonNotGrantedToAppContainer = 458752
   275  	AccessReasonMissingPrivilege         = 1048576
   276  	AccessReasonFromPrivilege            = 2097152
   277  	AccessReasonIntegrityLevel           = 3145728
   278  	AccessReasonOwnership                = 4194304
   279  	AccessReasonNullDacl                 = 5242880
   280  	AccessReasonEmptyDacl                = 6291456
   281  	AccessReasonNoSD                     = 7340032
   282  	AccessReasonNoGrant                  = 8388608
   283  )
   284  
   285  const ( /* winnt.h:3687:5: */
   286  	SecurityAnonymous      = 0
   287  	SecurityIdentification = 1
   288  	SecurityImpersonation  = 2
   289  	SecurityDelegation     = 3
   290  )
   291  
   292  const ( /* winnt.h:3714:5: */
   293  	TokenPrimary       = 1
   294  	TokenImpersonation = 2
   295  )
   296  
   297  const ( /* winnt.h:3719:5: */
   298  	TokenElevationTypeDefault = 1
   299  	TokenElevationTypeFull    = 2
   300  	TokenElevationTypeLimited = 3
   301  )
   302  
   303  const ( /* winnt.h:3725:5: */
   304  	TokenUser                            = 1
   305  	TokenGroups                          = 2
   306  	TokenPrivileges                      = 3
   307  	TokenOwner                           = 4
   308  	TokenPrimaryGroup                    = 5
   309  	TokenDefaultDacl                     = 6
   310  	TokenSource                          = 7
   311  	TokenType                            = 8
   312  	TokenImpersonationLevel              = 9
   313  	TokenStatistics                      = 10
   314  	TokenRestrictedSids                  = 11
   315  	TokenSessionId                       = 12
   316  	TokenGroupsAndPrivileges             = 13
   317  	TokenSessionReference                = 14
   318  	TokenSandBoxInert                    = 15
   319  	TokenAuditPolicy                     = 16
   320  	TokenOrigin                          = 17
   321  	TokenElevationType                   = 18
   322  	TokenLinkedToken                     = 19
   323  	TokenElevation                       = 20
   324  	TokenHasRestrictions                 = 21
   325  	TokenAccessInformation               = 22
   326  	TokenVirtualizationAllowed           = 23
   327  	TokenVirtualizationEnabled           = 24
   328  	TokenIntegrityLevel                  = 25
   329  	TokenUIAccess                        = 26
   330  	TokenMandatoryPolicy                 = 27
   331  	TokenLogonSid                        = 28
   332  	TokenIsAppContainer                  = 29
   333  	TokenCapabilities                    = 30
   334  	TokenAppContainerSid                 = 31
   335  	TokenAppContainerNumber              = 32
   336  	TokenUserClaimAttributes             = 33
   337  	TokenDeviceClaimAttributes           = 34
   338  	TokenRestrictedUserClaimAttributes   = 35
   339  	TokenRestrictedDeviceClaimAttributes = 36
   340  	TokenDeviceGroups                    = 37
   341  	TokenRestrictedDeviceGroups          = 38
   342  	TokenSecurityAttributes              = 39
   343  	TokenIsRestricted                    = 40
   344  	MaxTokenInfoClass                    = 41
   345  )
   346  
   347  const ( /* winnt.h:3893:5: */
   348  	MandatoryLevelUntrusted     = 0
   349  	MandatoryLevelLow           = 1
   350  	MandatoryLevelMedium        = 2
   351  	MandatoryLevelHigh          = 3
   352  	MandatoryLevelSystem        = 4
   353  	MandatoryLevelSecureProcess = 5
   354  	MandatoryLevelCount         = 6
   355  )
   356  
   357  const ( /* winnt.h:4019:5: */
   358  	SeLearningModeInvalidType = 0
   359  	SeLearningModeSettings    = 1
   360  	SeLearningModeMax         = 2
   361  )
   362  
   363  const ( /* winnt.h:4223:5: */
   364  	PMCCounter             = 0
   365  	MaxHardwareCounterType = 1
   366  )
   367  
   368  const ( /* winnt.h:4228:5: */
   369  	ProcessDEPPolicy                   = 0
   370  	ProcessASLRPolicy                  = 1
   371  	ProcessDynamicCodePolicy           = 2
   372  	ProcessStrictHandleCheckPolicy     = 3
   373  	ProcessSystemCallDisablePolicy     = 4
   374  	ProcessMitigationOptionsMask       = 5
   375  	ProcessExtensionPointDisablePolicy = 6
   376  	ProcessControlFlowGuardPolicy      = 7
   377  	ProcessSignaturePolicy             = 8
   378  	ProcessFontDisablePolicy           = 9
   379  	ProcessImageLoadPolicy             = 10
   380  	MaxProcessMitigationPolicy         = 11
   381  )
   382  
   383  const ( /* winnt.h:4426:5: */
   384  	ToleranceLow    = 1
   385  	ToleranceMedium = 2
   386  	ToleranceHigh   = 3
   387  )
   388  
   389  const ( /* winnt.h:4432:5: */
   390  	ToleranceIntervalShort  = 1
   391  	ToleranceIntervalMedium = 2
   392  	ToleranceIntervalLong   = 3
   393  )
   394  
   395  const ( /* winnt.h:4551:5: */
   396  	JobObjectBasicAccountingInformation         = 1
   397  	JobObjectBasicLimitInformation              = 2
   398  	JobObjectBasicProcessIdList                 = 3
   399  	JobObjectBasicUIRestrictions                = 4
   400  	JobObjectSecurityLimitInformation           = 5
   401  	JobObjectEndOfJobTimeInformation            = 6
   402  	JobObjectAssociateCompletionPortInformation = 7
   403  	JobObjectBasicAndIoAccountingInformation    = 8
   404  	JobObjectExtendedLimitInformation           = 9
   405  	JobObjectJobSetInformation                  = 10
   406  	JobObjectGroupInformation                   = 11
   407  	JobObjectNotificationLimitInformation       = 12
   408  	JobObjectLimitViolationInformation          = 13
   409  	JobObjectGroupInformationEx                 = 14
   410  	JobObjectCpuRateControlInformation          = 15
   411  	JobObjectCompletionFilter                   = 16
   412  	JobObjectCompletionCounter                  = 17
   413  	JobObjectReserved1Information               = 18
   414  	JobObjectReserved2Information               = 19
   415  	JobObjectReserved3Information               = 20
   416  	JobObjectReserved4Information               = 21
   417  	JobObjectReserved5Information               = 22
   418  	JobObjectReserved6Information               = 23
   419  	JobObjectReserved7Information               = 24
   420  	JobObjectReserved8Information               = 25
   421  	MaxJobObjectInfoClass                       = 26
   422  )
   423  
   424  const ( /* winnt.h:4575:5: */
   425  	FirmwareTypeUnknown = 0
   426  	FirmwareTypeBios    = 1
   427  	FirmwareTypeUefi    = 2
   428  	FirmwareTypeMax     = 3
   429  )
   430  
   431  const ( /* winnt.h:4600:5: */
   432  	RelationProcessorCore    = 0
   433  	RelationNumaNode         = 1
   434  	RelationCache            = 2
   435  	RelationProcessorPackage = 3
   436  	RelationGroup            = 4
   437  	RelationAll              = 65535
   438  )
   439  
   440  const ( /* winnt.h:4607:5: */
   441  	CacheUnified     = 0
   442  	CacheInstruction = 1
   443  	CacheData        = 2
   444  	CacheTrace       = 3
   445  )
   446  
   447  const ( /* winnt.h:467:1: */
   448  	UNSPECIFIED_COMPARTMENT_ID = 0
   449  	DEFAULT_COMPARTMENT_ID     = 1
   450  )
   451  
   452  const ( /* winnt.h:5229:3: */
   453  	PowerSystemUnspecified = 0
   454  	PowerSystemWorking     = 1
   455  	PowerSystemSleeping1   = 2
   456  	PowerSystemSleeping2   = 3
   457  	PowerSystemSleeping3   = 4
   458  	PowerSystemHibernate   = 5
   459  	PowerSystemShutdown    = 6
   460  	PowerSystemMaximum     = 7
   461  )
   462  
   463  const ( /* winnt.h:5235:3: */
   464  	PowerActionNone          = 0
   465  	PowerActionReserved      = 1
   466  	PowerActionSleep         = 2
   467  	PowerActionHibernate     = 3
   468  	PowerActionShutdown      = 4
   469  	PowerActionShutdownReset = 5
   470  	PowerActionShutdownOff   = 6
   471  	PowerActionWarmEject     = 7
   472  )
   473  
   474  const ( /* winnt.h:5241:3: */
   475  	PowerDeviceUnspecified = 0
   476  	PowerDeviceD0          = 1
   477  	PowerDeviceD1          = 2
   478  	PowerDeviceD2          = 3
   479  	PowerDeviceD3          = 4
   480  	PowerDeviceMaximum     = 5
   481  )
   482  
   483  const ( /* winnt.h:5246:3: */
   484  	PowerMonitorOff = 0
   485  	PowerMonitorOn  = 1
   486  	PowerMonitorDim = 2
   487  )
   488  
   489  const ( /* winnt.h:5250:3: */
   490  	PowerUserPresent    = 0
   491  	PowerUserNotPresent = 1
   492  	PowerUserInactive   = 2
   493  	PowerUserMaximum    = 3
   494  	PowerUserInvalid    = 3
   495  )
   496  
   497  const ( /* winnt.h:5266:3: */
   498  	LT_DONT_CARE      = 0
   499  	LT_LOWEST_LATENCY = 1
   500  )
   501  
   502  const ( /* winnt.h:5281:3: */
   503  	PowerRequestDisplayRequired   = 0
   504  	PowerRequestSystemRequired    = 1
   505  	PowerRequestAwayModeRequired  = 2
   506  	PowerRequestExecutionRequired = 3
   507  )
   508  
   509  const ( /* winnt.h:5309:5: */
   510  	SystemPowerPolicyAc                = 0
   511  	SystemPowerPolicyDc                = 1
   512  	VerifySystemPolicyAc               = 2
   513  	VerifySystemPolicyDc               = 3
   514  	SystemPowerCapabilities            = 4
   515  	SystemBatteryState                 = 5
   516  	SystemPowerStateHandler            = 6
   517  	ProcessorStateHandler              = 7
   518  	SystemPowerPolicyCurrent           = 8
   519  	AdministratorPowerPolicy           = 9
   520  	SystemReserveHiberFile             = 10
   521  	ProcessorInformation               = 11
   522  	SystemPowerInformation             = 12
   523  	ProcessorStateHandler2             = 13
   524  	LastWakeTime                       = 14
   525  	LastSleepTime                      = 15
   526  	SystemExecutionState               = 16
   527  	SystemPowerStateNotifyHandler      = 17
   528  	ProcessorPowerPolicyAc             = 18
   529  	ProcessorPowerPolicyDc             = 19
   530  	VerifyProcessorPowerPolicyAc       = 20
   531  	VerifyProcessorPowerPolicyDc       = 21
   532  	ProcessorPowerPolicyCurrent        = 22
   533  	SystemPowerStateLogging            = 23
   534  	SystemPowerLoggingEntry            = 24
   535  	SetPowerSettingValue               = 25
   536  	NotifyUserPowerSetting             = 26
   537  	PowerInformationLevelUnused0       = 27
   538  	SystemMonitorHiberBootPowerOff     = 28
   539  	SystemVideoState                   = 29
   540  	TraceApplicationPowerMessage       = 30
   541  	TraceApplicationPowerMessageEnd    = 31
   542  	ProcessorPerfStates                = 32
   543  	ProcessorIdleStates                = 33
   544  	ProcessorCap                       = 34
   545  	SystemWakeSource                   = 35
   546  	SystemHiberFileInformation         = 36
   547  	TraceServicePowerMessage           = 37
   548  	ProcessorLoad                      = 38
   549  	PowerShutdownNotification          = 39
   550  	MonitorCapabilities                = 40
   551  	SessionPowerInit                   = 41
   552  	SessionDisplayState                = 42
   553  	PowerRequestCreate                 = 43
   554  	PowerRequestAction                 = 44
   555  	GetPowerRequestList                = 45
   556  	ProcessorInformationEx             = 46
   557  	NotifyUserModeLegacyPowerEvent     = 47
   558  	GroupPark                          = 48
   559  	ProcessorIdleDomains               = 49
   560  	WakeTimerList                      = 50
   561  	SystemHiberFileSize                = 51
   562  	ProcessorIdleStatesHv              = 52
   563  	ProcessorPerfStatesHv              = 53
   564  	ProcessorPerfCapHv                 = 54
   565  	ProcessorSetIdle                   = 55
   566  	LogicalProcessorIdling             = 56
   567  	UserPresence                       = 57
   568  	PowerSettingNotificationName       = 58
   569  	GetPowerSettingValue               = 59
   570  	IdleResiliency                     = 60
   571  	SessionRITState                    = 61
   572  	SessionConnectNotification         = 62
   573  	SessionPowerCleanup                = 63
   574  	SessionLockState                   = 64
   575  	SystemHiberbootState               = 65
   576  	PlatformInformation                = 66
   577  	PdcInvocation                      = 67
   578  	MonitorInvocation                  = 68
   579  	FirmwareTableInformationRegistered = 69
   580  	SetShutdownSelectedTime            = 70
   581  	SuspendResumeInvocation            = 71
   582  	PlmPowerRequestCreate              = 72
   583  	ScreenOff                          = 73
   584  	CsDeviceNotification               = 74
   585  	PlatformRole                       = 75
   586  	LastResumePerformance              = 76
   587  	DisplayBurst                       = 77
   588  	ExitLatencySamplingPercentage      = 78
   589  	ApplyLowPowerScenarioSettings      = 79
   590  	PowerInformationLevelMaximum       = 80
   591  )
   592  
   593  const ( /* winnt.h:5393:5: */
   594  	UserNotPresent = 0
   595  	UserPresent    = 1
   596  	UserUnknown    = 255
   597  )
   598  
   599  const ( /* winnt.h:5429:5: */
   600  	MonitorRequestReasonUnknown                 = 0
   601  	MonitorRequestReasonPowerButton             = 1
   602  	MonitorRequestReasonRemoteConnection        = 2
   603  	MonitorRequestReasonScMonitorpower          = 3
   604  	MonitorRequestReasonUserInput               = 4
   605  	MonitorRequestReasonAcDcDisplayBurst        = 5
   606  	MonitorRequestReasonUserDisplayBurst        = 6
   607  	MonitorRequestReasonPoSetSystemState        = 7
   608  	MonitorRequestReasonSetThreadExecutionState = 8
   609  	MonitorRequestReasonFullWake                = 9
   610  	MonitorRequestReasonSessionUnlock           = 10
   611  	MonitorRequestReasonScreenOffRequest        = 11
   612  	MonitorRequestReasonIdleTimeout             = 12
   613  	MonitorRequestReasonPolicyChange            = 13
   614  	MonitorRequestReasonMax                     = 14
   615  )
   616  
   617  const ( /* winnt.h:5459:5: */
   618  	PoAc               = 0
   619  	PoDc               = 1
   620  	PoHot              = 2
   621  	PoConditionMaximum = 3
   622  )
   623  
   624  const ( /* winnt.h:5486:5: */
   625  	PlatformRoleUnspecified       = 0
   626  	PlatformRoleDesktop           = 1
   627  	PlatformRoleMobile            = 2
   628  	PlatformRoleWorkstation       = 3
   629  	PlatformRoleEnterpriseServer  = 4
   630  	PlatformRoleSOHOServer        = 5
   631  	PlatformRoleAppliancePC       = 6
   632  	PlatformRolePerformanceServer = 7
   633  	PlatformRoleSlate             = 8
   634  	PlatformRoleMaximum           = 9
   635  )
   636  
   637  const ( /* winnt.h:6623:5: */
   638  	IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1
   639  )
   640  
   641  const ( /* winnt.h:7494:5: */
   642  	IMPORT_OBJECT_CODE  = 0
   643  	IMPORT_OBJECT_DATA  = 1
   644  	IMPORT_OBJECT_CONST = 2
   645  )
   646  
   647  const ( /* winnt.h:7498:5: */
   648  	IMPORT_OBJECT_ORDINAL         = 0
   649  	IMPORT_OBJECT_NAME            = 1
   650  	IMPORT_OBJECT_NAME_NO_PREFIX  = 2
   651  	IMPORT_OBJECT_NAME_UNDECORATE = 3
   652  )
   653  
   654  const ( /* winnt.h:7504:5: */
   655  	COMIMAGE_FLAGS_ILONLY                = 1
   656  	COMIMAGE_FLAGS_32BITREQUIRED         = 2
   657  	COMIMAGE_FLAGS_IL_LIBRARY            = 4
   658  	COMIMAGE_FLAGS_STRONGNAMESIGNED      = 8
   659  	COMIMAGE_FLAGS_TRACKDEBUGDATA        = 65536
   660  	COR_VERSION_MAJOR_V2                 = 2
   661  	COR_VERSION_MAJOR                    = 2
   662  	COR_VERSION_MINOR                    = 0
   663  	COR_DELETED_NAME_LENGTH              = 8
   664  	COR_VTABLEGAP_NAME_LENGTH            = 8
   665  	NATIVE_TYPE_MAX_CB                   = 1
   666  	COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 255
   667  	IMAGE_COR_MIH_METHODRVA              = 1
   668  	IMAGE_COR_MIH_EHRVA                  = 2
   669  	IMAGE_COR_MIH_BASICBLOCK             = 8
   670  	COR_VTABLE_32BIT                     = 1
   671  	COR_VTABLE_64BIT                     = 2
   672  	COR_VTABLE_FROM_UNMANAGED            = 4
   673  	COR_VTABLE_CALL_MOST_DERIVED         = 16
   674  	IMAGE_COR_EATJ_THUNK_SIZE            = 32
   675  	MAX_CLASS_NAME                       = 1024
   676  	MAX_PACKAGE_NAME                     = 1024
   677  )
   678  
   679  const ( /* winnt.h:7909:5: */
   680  	UmsThreadInvalidInfoClass = 0
   681  	UmsThreadUserContext      = 1
   682  	UmsThreadPriority         = 2
   683  	UmsThreadAffinity         = 3
   684  	UmsThreadTeb              = 4
   685  	UmsThreadIsSuspended      = 5
   686  	UmsThreadIsTerminated     = 6
   687  	UmsThreadMaxInfoClass     = 7
   688  )
   689  
   690  const ( /* winnt.h:7920:5: */
   691  	UmsSchedulerStartup       = 0
   692  	UmsSchedulerThreadBlocked = 1
   693  	UmsSchedulerThreadYield   = 2
   694  )
   695  
   696  const ( /* winnt.h:7995:5: */
   697  	HeapCompatibilityInformation      = 0
   698  	HeapEnableTerminationOnCorruption = 1
   699  )
   700  
   701  const ( /* winnt.h:8023:5: */
   702  	ActivationContextBasicInformation                      = 1
   703  	ActivationContextDetailedInformation                   = 2
   704  	AssemblyDetailedInformationInActivationContext         = 3
   705  	FileInformationInAssemblyOfAssemblyInActivationContext = 4
   706  	RunlevelInformationInActivationContext                 = 5
   707  	CompatibilityInformationInActivationContext            = 6
   708  	ActivationContextManifestResourceName                  = 7
   709  	MaxActivationContextInfoClass                          = 8
   710  	AssemblyDetailedInformationInActivationContxt          = 3
   711  	FileInformationInAssemblyOfAssemblyInActivationContxt  = 4
   712  )
   713  
   714  const ( /* winnt.h:8036:5: */
   715  	ACTCTX_RUN_LEVEL_UNSPECIFIED       = 0
   716  	ACTCTX_RUN_LEVEL_AS_INVOKER        = 1
   717  	ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE = 2
   718  	ACTCTX_RUN_LEVEL_REQUIRE_ADMIN     = 3
   719  	ACTCTX_RUN_LEVEL_NUMBERS           = 4
   720  )
   721  
   722  const ( /* winnt.h:8044:5: */
   723  	ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN    = 0
   724  	ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS         = 1
   725  	ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION = 2
   726  )
   727  
   728  const ( /* winnt.h:8465:5: */
   729  	DriverType               = 1
   730  	FileSystemType           = 2
   731  	Win32ServiceOwnProcess   = 16
   732  	Win32ServiceShareProcess = 32
   733  	AdapterType              = 4
   734  	RecognizerType           = 8
   735  )
   736  
   737  const ( /* winnt.h:8470:5: */
   738  	BootLoad    = 0
   739  	SystemLoad  = 1
   740  	AutoLoad    = 2
   741  	DemandLoad  = 3
   742  	DisableLoad = 4
   743  )
   744  
   745  const ( /* winnt.h:8475:5: */
   746  	IgnoreError   = 0
   747  	NormalError   = 1
   748  	SevereError   = 2
   749  	CriticalError = 3
   750  )
   751  
   752  const ( /* winnt.h:8675:5: */
   753  	TapeDriveProblemNone         = 0
   754  	TapeDriveReadWriteWarning    = 1
   755  	TapeDriveReadWriteError      = 2
   756  	TapeDriveReadWarning         = 3
   757  	TapeDriveWriteWarning        = 4
   758  	TapeDriveReadError           = 5
   759  	TapeDriveWriteError          = 6
   760  	TapeDriveHardwareError       = 7
   761  	TapeDriveUnsupportedMedia    = 8
   762  	TapeDriveScsiConnectionError = 9
   763  	TapeDriveTimetoClean         = 10
   764  	TapeDriveCleanDriveNow       = 11
   765  	TapeDriveMediaLifeExpired    = 12
   766  	TapeDriveSnappedTape         = 13
   767  )
   768  
   769  const ( /* winnt.h:8685:3: */
   770  	TP_CALLBACK_PRIORITY_HIGH    = 0
   771  	TP_CALLBACK_PRIORITY_NORMAL  = 1
   772  	TP_CALLBACK_PRIORITY_LOW     = 2
   773  	TP_CALLBACK_PRIORITY_INVALID = 3
   774  	TP_CALLBACK_PRIORITY_COUNT   = 3
   775  )
   776  
   777  const ( /* winnt.h:8878:7: */
   778  	TransactionOutcomeUndetermined = 1
   779  	TransactionOutcomeCommitted    = 2
   780  	TransactionOutcomeAborted      = 3
   781  )
   782  
   783  const ( /* winnt.h:8884:7: */
   784  	TransactionStateNormal          = 1
   785  	TransactionStateIndoubt         = 2
   786  	TransactionStateCommittedNotify = 3
   787  )
   788  
   789  const ( /* winnt.h:8956:7: */
   790  	TransactionBasicInformation              = 0
   791  	TransactionPropertiesInformation         = 1
   792  	TransactionEnlistmentInformation         = 2
   793  	TransactionSuperiorEnlistmentInformation = 3
   794  	TransactionBindInformation               = 4
   795  	TransactionDTCPrivateInformation         = 5
   796  )
   797  
   798  const ( /* winnt.h:8965:7: */
   799  	TransactionManagerBasicInformation             = 0
   800  	TransactionManagerLogInformation               = 1
   801  	TransactionManagerLogPathInformation           = 2
   802  	TransactionManagerOnlineProbeInformation       = 3
   803  	TransactionManagerRecoveryInformation          = 4
   804  	TransactionManagerOldestTransactionInformation = 5
   805  )
   806  
   807  const ( /* winnt.h:8974:7: */
   808  	ResourceManagerBasicInformation      = 0
   809  	ResourceManagerCompletionInformation = 1
   810  )
   811  
   812  const ( /* winnt.h:8991:7: */
   813  	EnlistmentBasicInformation    = 0
   814  	EnlistmentRecoveryInformation = 1
   815  	EnlistmentCrmInformation      = 2
   816  )
   817  
   818  const ( /* winnt.h:9006:7: */
   819  	KTMOBJECT_TRANSACTION         = 0
   820  	KTMOBJECT_TRANSACTION_MANAGER = 1
   821  	KTMOBJECT_RESOURCE_MANAGER    = 2
   822  	KTMOBJECT_ENLISTMENT          = 3
   823  	KTMOBJECT_INVALID             = 4
   824  )
   825  
   826  const ( /* winsvc.h:106:3: */
   827  	SC_ACTION_NONE        = 0
   828  	SC_ACTION_RESTART     = 1
   829  	SC_ACTION_REBOOT      = 2
   830  	SC_ACTION_RUN_COMMAND = 3
   831  )
   832  
   833  const ( /* winsvc.h:139:3: */
   834  	SC_STATUS_PROCESS_INFO = 0
   835  )
   836  
   837  const ( /* winsvc.h:143:3: */
   838  	SC_ENUM_PROCESS_INFO = 0
   839  )
   840  
   841  type ptrdiff_t = int32 /* <builtin>:3:26 */
   842  
   843  type size_t = uint32 /* <builtin>:9:23 */
   844  
   845  type wchar_t = uint16 /* <builtin>:15:24 */
   846  
   847  type va_list = uintptr /* <builtin>:51:27 */
   848  
   849  // CAPI3REF: 64-Bit Integer Types
   850  // KEYWORDS: sqlite_int64 sqlite_uint64
   851  //
   852  // Because there is no cross-platform way to specify 64-bit integer types
   853  // SQLite includes typedefs for 64-bit signed and unsigned integers.
   854  //
   855  // The sqlite3_int64 and sqlite3_uint64 are the preferred type definitions.
   856  // The sqlite_int64 and sqlite_uint64 types are supported for backwards
   857  // compatibility only.
   858  //
   859  // ^The sqlite3_int64 and sqlite_int64 types can store integer values
   860  // between -9223372036854775808 and +9223372036854775807 inclusive.  ^The
   861  // sqlite3_uint64 and sqlite_uint64 types can store integer values
   862  // between 0 and +18446744073709551615 inclusive.
   863  type sqlite_int64 = int64           /* sqlite3.h:275:19 */
   864  type sqlite_uint64 = uint64         /* sqlite3.h:276:28 */
   865  type sqlite3_int64 = sqlite_int64   /* sqlite3.h:281:22 */
   866  type sqlite3_uint64 = sqlite_uint64 /* sqlite3.h:282:23 */
   867  
   868  // The type for a callback function.
   869  // This is legacy and deprecated.  It is included for historical
   870  // compatibility and is not documented.
   871  type sqlite3_callback = uintptr /* sqlite3.h:338:13 */
   872  
   873  // CAPI3REF: Result Codes
   874  // KEYWORDS: {result code definitions}
   875  //
   876  // Many SQLite functions return an integer result code from the set shown
   877  // here in order to indicate success or failure.
   878  //
   879  // New error codes may be added in future versions of SQLite.
   880  //
   881  // See also: [extended result code definitions]
   882  // beginning-of-error-codes
   883  // end-of-error-codes
   884  
   885  // CAPI3REF: Extended Result Codes
   886  // KEYWORDS: {extended result code definitions}
   887  //
   888  // In its default configuration, SQLite API routines return one of 30 integer
   889  // [result codes].  However, experience has shown that many of
   890  // these result codes are too coarse-grained.  They do not provide as
   891  // much information about problems as programmers might like.  In an effort to
   892  // address this, newer versions of SQLite (version 3.3.8 [dateof:3.3.8]
   893  // and later) include
   894  // support for additional result codes that provide more detailed information
   895  // about errors. These [extended result codes] are enabled or disabled
   896  // on a per database connection basis using the
   897  // [sqlite3_extended_result_codes()] API.  Or, the extended code for
   898  // the most recent error can be obtained using
   899  // [sqlite3_extended_errcode()].
   900  
   901  // CAPI3REF: Flags For File Open Operations
   902  //
   903  // These bit values are intended for use in the
   904  // 3rd parameter to the [sqlite3_open_v2()] interface and
   905  // in the 4th parameter to the [sqlite3_vfs.xOpen] method.
   906  
   907  // Reserved:                         0x00F00000
   908  // Legacy compatibility:
   909  
   910  // CAPI3REF: Device Characteristics
   911  //
   912  // The xDeviceCharacteristics method of the [sqlite3_io_methods]
   913  // object returns an integer which is a vector of these
   914  // bit values expressing I/O characteristics of the mass storage
   915  // device that holds the file that the [sqlite3_io_methods]
   916  // refers to.
   917  //
   918  // The SQLITE_IOCAP_ATOMIC property means that all writes of
   919  // any size are atomic.  The SQLITE_IOCAP_ATOMICnnn values
   920  // mean that writes of blocks that are nnn bytes in size and
   921  // are aligned to an address which is an integer multiple of
   922  // nnn are atomic.  The SQLITE_IOCAP_SAFE_APPEND value means
   923  // that when data is appended to a file, the data is appended
   924  // first then the size of the file is extended, never the other
   925  // way around.  The SQLITE_IOCAP_SEQUENTIAL property means that
   926  // information is written to disk in the same order as calls
   927  // to xWrite().  The SQLITE_IOCAP_POWERSAFE_OVERWRITE property means that
   928  // after reboot following a crash or power loss, the only bytes in a
   929  // file that were written at the application level might have changed
   930  // and that adjacent bytes, even bytes within the same sector are
   931  // guaranteed to be unchanged.  The SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN
   932  // flag indicates that a file cannot be deleted when open.  The
   933  // SQLITE_IOCAP_IMMUTABLE flag indicates that the file is on
   934  // read-only media and cannot be changed even by processes with
   935  // elevated privileges.
   936  //
   937  // The SQLITE_IOCAP_BATCH_ATOMIC property means that the underlying
   938  // filesystem supports doing multiple write operations atomically when those
   939  // write operations are bracketed by [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] and
   940  // [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE].
   941  
   942  // CAPI3REF: File Locking Levels
   943  //
   944  // SQLite uses one of these integer values as the second
   945  // argument to calls it makes to the xLock() and xUnlock() methods
   946  // of an [sqlite3_io_methods] object.
   947  
   948  // CAPI3REF: Synchronization Type Flags
   949  //
   950  // When SQLite invokes the xSync() method of an
   951  // [sqlite3_io_methods] object it uses a combination of
   952  // these integer values as the second argument.
   953  //
   954  // When the SQLITE_SYNC_DATAONLY flag is used, it means that the
   955  // sync operation only needs to flush data to mass storage.  Inode
   956  // information need not be flushed. If the lower four bits of the flag
   957  // equal SQLITE_SYNC_NORMAL, that means to use normal fsync() semantics.
   958  // If the lower four bits equal SQLITE_SYNC_FULL, that means
   959  // to use Mac OS X style fullsync instead of fsync().
   960  //
   961  // Do not confuse the SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL flags
   962  // with the [PRAGMA synchronous]=NORMAL and [PRAGMA synchronous]=FULL
   963  // settings.  The [synchronous pragma] determines when calls to the
   964  // xSync VFS method occur and applies uniformly across all platforms.
   965  // The SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL flags determine how
   966  // energetic or rigorous or forceful the sync operations are and
   967  // only make a difference on Mac OSX for the default SQLite code.
   968  // (Third-party VFS implementations might also make the distinction
   969  // between SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL, but among the
   970  // operating systems natively supported by SQLite, only Mac OSX
   971  // cares about the difference.)
   972  
   973  // CAPI3REF: OS Interface Open File Handle
   974  //
   975  // An [sqlite3_file] object represents an open file in the
   976  // [sqlite3_vfs | OS interface layer].  Individual OS interface
   977  // implementations will
   978  // want to subclass this object by appending additional fields
   979  // for their own use.  The pMethods entry is a pointer to an
   980  // [sqlite3_io_methods] object that defines methods for performing
   981  // I/O operations on the open file.
   982  type sqlite3_file1 = struct{ pMethods uintptr } /* sqlite3.h:683:9 */
   983  
   984  // CAPI3REF: Result Codes
   985  // KEYWORDS: {result code definitions}
   986  //
   987  // Many SQLite functions return an integer result code from the set shown
   988  // here in order to indicate success or failure.
   989  //
   990  // New error codes may be added in future versions of SQLite.
   991  //
   992  // See also: [extended result code definitions]
   993  // beginning-of-error-codes
   994  // end-of-error-codes
   995  
   996  // CAPI3REF: Extended Result Codes
   997  // KEYWORDS: {extended result code definitions}
   998  //
   999  // In its default configuration, SQLite API routines return one of 30 integer
  1000  // [result codes].  However, experience has shown that many of
  1001  // these result codes are too coarse-grained.  They do not provide as
  1002  // much information about problems as programmers might like.  In an effort to
  1003  // address this, newer versions of SQLite (version 3.3.8 [dateof:3.3.8]
  1004  // and later) include
  1005  // support for additional result codes that provide more detailed information
  1006  // about errors. These [extended result codes] are enabled or disabled
  1007  // on a per database connection basis using the
  1008  // [sqlite3_extended_result_codes()] API.  Or, the extended code for
  1009  // the most recent error can be obtained using
  1010  // [sqlite3_extended_errcode()].
  1011  
  1012  // CAPI3REF: Flags For File Open Operations
  1013  //
  1014  // These bit values are intended for use in the
  1015  // 3rd parameter to the [sqlite3_open_v2()] interface and
  1016  // in the 4th parameter to the [sqlite3_vfs.xOpen] method.
  1017  
  1018  // Reserved:                         0x00F00000
  1019  // Legacy compatibility:
  1020  
  1021  // CAPI3REF: Device Characteristics
  1022  //
  1023  // The xDeviceCharacteristics method of the [sqlite3_io_methods]
  1024  // object returns an integer which is a vector of these
  1025  // bit values expressing I/O characteristics of the mass storage
  1026  // device that holds the file that the [sqlite3_io_methods]
  1027  // refers to.
  1028  //
  1029  // The SQLITE_IOCAP_ATOMIC property means that all writes of
  1030  // any size are atomic.  The SQLITE_IOCAP_ATOMICnnn values
  1031  // mean that writes of blocks that are nnn bytes in size and
  1032  // are aligned to an address which is an integer multiple of
  1033  // nnn are atomic.  The SQLITE_IOCAP_SAFE_APPEND value means
  1034  // that when data is appended to a file, the data is appended
  1035  // first then the size of the file is extended, never the other
  1036  // way around.  The SQLITE_IOCAP_SEQUENTIAL property means that
  1037  // information is written to disk in the same order as calls
  1038  // to xWrite().  The SQLITE_IOCAP_POWERSAFE_OVERWRITE property means that
  1039  // after reboot following a crash or power loss, the only bytes in a
  1040  // file that were written at the application level might have changed
  1041  // and that adjacent bytes, even bytes within the same sector are
  1042  // guaranteed to be unchanged.  The SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN
  1043  // flag indicates that a file cannot be deleted when open.  The
  1044  // SQLITE_IOCAP_IMMUTABLE flag indicates that the file is on
  1045  // read-only media and cannot be changed even by processes with
  1046  // elevated privileges.
  1047  //
  1048  // The SQLITE_IOCAP_BATCH_ATOMIC property means that the underlying
  1049  // filesystem supports doing multiple write operations atomically when those
  1050  // write operations are bracketed by [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] and
  1051  // [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE].
  1052  
  1053  // CAPI3REF: File Locking Levels
  1054  //
  1055  // SQLite uses one of these integer values as the second
  1056  // argument to calls it makes to the xLock() and xUnlock() methods
  1057  // of an [sqlite3_io_methods] object.
  1058  
  1059  // CAPI3REF: Synchronization Type Flags
  1060  //
  1061  // When SQLite invokes the xSync() method of an
  1062  // [sqlite3_io_methods] object it uses a combination of
  1063  // these integer values as the second argument.
  1064  //
  1065  // When the SQLITE_SYNC_DATAONLY flag is used, it means that the
  1066  // sync operation only needs to flush data to mass storage.  Inode
  1067  // information need not be flushed. If the lower four bits of the flag
  1068  // equal SQLITE_SYNC_NORMAL, that means to use normal fsync() semantics.
  1069  // If the lower four bits equal SQLITE_SYNC_FULL, that means
  1070  // to use Mac OS X style fullsync instead of fsync().
  1071  //
  1072  // Do not confuse the SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL flags
  1073  // with the [PRAGMA synchronous]=NORMAL and [PRAGMA synchronous]=FULL
  1074  // settings.  The [synchronous pragma] determines when calls to the
  1075  // xSync VFS method occur and applies uniformly across all platforms.
  1076  // The SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL flags determine how
  1077  // energetic or rigorous or forceful the sync operations are and
  1078  // only make a difference on Mac OSX for the default SQLite code.
  1079  // (Third-party VFS implementations might also make the distinction
  1080  // between SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL, but among the
  1081  // operating systems natively supported by SQLite, only Mac OSX
  1082  // cares about the difference.)
  1083  
  1084  // CAPI3REF: OS Interface Open File Handle
  1085  //
  1086  // An [sqlite3_file] object represents an open file in the
  1087  // [sqlite3_vfs | OS interface layer].  Individual OS interface
  1088  // implementations will
  1089  // want to subclass this object by appending additional fields
  1090  // for their own use.  The pMethods entry is a pointer to an
  1091  // [sqlite3_io_methods] object that defines methods for performing
  1092  // I/O operations on the open file.
  1093  type sqlite3_file = sqlite3_file1 /* sqlite3.h:683:29 */
  1094  type sqlite3_io_methods1 = struct {
  1095  	iVersion               int32
  1096  	xClose                 uintptr
  1097  	xRead                  uintptr
  1098  	xWrite                 uintptr
  1099  	xTruncate              uintptr
  1100  	xSync                  uintptr
  1101  	xFileSize              uintptr
  1102  	xLock                  uintptr
  1103  	xUnlock                uintptr
  1104  	xCheckReservedLock     uintptr
  1105  	xFileControl           uintptr
  1106  	xSectorSize            uintptr
  1107  	xDeviceCharacteristics uintptr
  1108  	xShmMap                uintptr
  1109  	xShmLock               uintptr
  1110  	xShmBarrier            uintptr
  1111  	xShmUnmap              uintptr
  1112  	xFetch                 uintptr
  1113  	xUnfetch               uintptr
  1114  } /* sqlite3.h:683:9 */
  1115  
  1116  // CAPI3REF: OS Interface File Virtual Methods Object
  1117  //
  1118  // Every file opened by the [sqlite3_vfs.xOpen] method populates an
  1119  // [sqlite3_file] object (or, more commonly, a subclass of the
  1120  // [sqlite3_file] object) with a pointer to an instance of this object.
  1121  // This object defines the methods used to perform various operations
  1122  // against the open file represented by the [sqlite3_file] object.
  1123  //
  1124  // If the [sqlite3_vfs.xOpen] method sets the sqlite3_file.pMethods element
  1125  // to a non-NULL pointer, then the sqlite3_io_methods.xClose method
  1126  // may be invoked even if the [sqlite3_vfs.xOpen] reported that it failed.  The
  1127  // only way to prevent a call to xClose following a failed [sqlite3_vfs.xOpen]
  1128  // is for the [sqlite3_vfs.xOpen] to set the sqlite3_file.pMethods element
  1129  // to NULL.
  1130  //
  1131  // The flags argument to xSync may be one of [SQLITE_SYNC_NORMAL] or
  1132  // [SQLITE_SYNC_FULL].  The first choice is the normal fsync().
  1133  // The second choice is a Mac OS X style fullsync.  The [SQLITE_SYNC_DATAONLY]
  1134  // flag may be ORed in to indicate that only the data of the file
  1135  // and not its inode needs to be synced.
  1136  //
  1137  // The integer values to xLock() and xUnlock() are one of
  1138  // <ul>
  1139  // <li> [SQLITE_LOCK_NONE],
  1140  // <li> [SQLITE_LOCK_SHARED],
  1141  // <li> [SQLITE_LOCK_RESERVED],
  1142  // <li> [SQLITE_LOCK_PENDING], or
  1143  // <li> [SQLITE_LOCK_EXCLUSIVE].
  1144  // </ul>
  1145  // xLock() increases the lock. xUnlock() decreases the lock.
  1146  // The xCheckReservedLock() method checks whether any database connection,
  1147  // either in this process or in some other process, is holding a RESERVED,
  1148  // PENDING, or EXCLUSIVE lock on the file.  It returns true
  1149  // if such a lock exists and false otherwise.
  1150  //
  1151  // The xFileControl() method is a generic interface that allows custom
  1152  // VFS implementations to directly control an open file using the
  1153  // [sqlite3_file_control()] interface.  The second "op" argument is an
  1154  // integer opcode.  The third argument is a generic pointer intended to
  1155  // point to a structure that may contain arguments or space in which to
  1156  // write return values.  Potential uses for xFileControl() might be
  1157  // functions to enable blocking locks with timeouts, to change the
  1158  // locking strategy (for example to use dot-file locks), to inquire
  1159  // about the status of a lock, or to break stale locks.  The SQLite
  1160  // core reserves all opcodes less than 100 for its own use.
  1161  // A [file control opcodes | list of opcodes] less than 100 is available.
  1162  // Applications that define a custom xFileControl method should use opcodes
  1163  // greater than 100 to avoid conflicts.  VFS implementations should
  1164  // return [SQLITE_NOTFOUND] for file control opcodes that they do not
  1165  // recognize.
  1166  //
  1167  // The xSectorSize() method returns the sector size of the
  1168  // device that underlies the file.  The sector size is the
  1169  // minimum write that can be performed without disturbing
  1170  // other bytes in the file.  The xDeviceCharacteristics()
  1171  // method returns a bit vector describing behaviors of the
  1172  // underlying device:
  1173  //
  1174  // <ul>
  1175  // <li> [SQLITE_IOCAP_ATOMIC]
  1176  // <li> [SQLITE_IOCAP_ATOMIC512]
  1177  // <li> [SQLITE_IOCAP_ATOMIC1K]
  1178  // <li> [SQLITE_IOCAP_ATOMIC2K]
  1179  // <li> [SQLITE_IOCAP_ATOMIC4K]
  1180  // <li> [SQLITE_IOCAP_ATOMIC8K]
  1181  // <li> [SQLITE_IOCAP_ATOMIC16K]
  1182  // <li> [SQLITE_IOCAP_ATOMIC32K]
  1183  // <li> [SQLITE_IOCAP_ATOMIC64K]
  1184  // <li> [SQLITE_IOCAP_SAFE_APPEND]
  1185  // <li> [SQLITE_IOCAP_SEQUENTIAL]
  1186  // <li> [SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN]
  1187  // <li> [SQLITE_IOCAP_POWERSAFE_OVERWRITE]
  1188  // <li> [SQLITE_IOCAP_IMMUTABLE]
  1189  // <li> [SQLITE_IOCAP_BATCH_ATOMIC]
  1190  // </ul>
  1191  //
  1192  // The SQLITE_IOCAP_ATOMIC property means that all writes of
  1193  // any size are atomic.  The SQLITE_IOCAP_ATOMICnnn values
  1194  // mean that writes of blocks that are nnn bytes in size and
  1195  // are aligned to an address which is an integer multiple of
  1196  // nnn are atomic.  The SQLITE_IOCAP_SAFE_APPEND value means
  1197  // that when data is appended to a file, the data is appended
  1198  // first then the size of the file is extended, never the other
  1199  // way around.  The SQLITE_IOCAP_SEQUENTIAL property means that
  1200  // information is written to disk in the same order as calls
  1201  // to xWrite().
  1202  //
  1203  // If xRead() returns SQLITE_IOERR_SHORT_READ it must also fill
  1204  // in the unread portions of the buffer with zeros.  A VFS that
  1205  // fails to zero-fill short reads might seem to work.  However,
  1206  // failure to zero-fill short reads will eventually lead to
  1207  // database corruption.
  1208  type sqlite3_io_methods = sqlite3_io_methods1 /* sqlite3.h:782:35 */
  1209  
  1210  // CAPI3REF: OS Interface Object
  1211  //
  1212  // An instance of the sqlite3_vfs object defines the interface between
  1213  // the SQLite core and the underlying operating system.  The "vfs"
  1214  // in the name of the object stands for "virtual file system".  See
  1215  // the [VFS | VFS documentation] for further information.
  1216  //
  1217  // The VFS interface is sometimes extended by adding new methods onto
  1218  // the end.  Each time such an extension occurs, the iVersion field
  1219  // is incremented.  The iVersion value started out as 1 in
  1220  // SQLite [version 3.5.0] on [dateof:3.5.0], then increased to 2
  1221  // with SQLite [version 3.7.0] on [dateof:3.7.0], and then increased
  1222  // to 3 with SQLite [version 3.7.6] on [dateof:3.7.6].  Additional fields
  1223  // may be appended to the sqlite3_vfs object and the iVersion value
  1224  // may increase again in future versions of SQLite.
  1225  // Note that due to an oversight, the structure
  1226  // of the sqlite3_vfs object changed in the transition from
  1227  // SQLite [version 3.5.9] to [version 3.6.0] on [dateof:3.6.0]
  1228  // and yet the iVersion field was not increased.
  1229  //
  1230  // The szOsFile field is the size of the subclassed [sqlite3_file]
  1231  // structure used by this VFS.  mxPathname is the maximum length of
  1232  // a pathname in this VFS.
  1233  //
  1234  // Registered sqlite3_vfs objects are kept on a linked list formed by
  1235  // the pNext pointer.  The [sqlite3_vfs_register()]
  1236  // and [sqlite3_vfs_unregister()] interfaces manage this list
  1237  // in a thread-safe way.  The [sqlite3_vfs_find()] interface
  1238  // searches the list.  Neither the application code nor the VFS
  1239  // implementation should use the pNext pointer.
  1240  //
  1241  // The pNext field is the only field in the sqlite3_vfs
  1242  // structure that SQLite will ever modify.  SQLite will only access
  1243  // or modify this field while holding a particular static mutex.
  1244  // The application should never modify anything within the sqlite3_vfs
  1245  // object once the object has been registered.
  1246  //
  1247  // The zName field holds the name of the VFS module.  The name must
  1248  // be unique across all VFS modules.
  1249  //
  1250  // [[sqlite3_vfs.xOpen]]
  1251  // ^SQLite guarantees that the zFilename parameter to xOpen
  1252  // is either a NULL pointer or string obtained
  1253  // from xFullPathname() with an optional suffix added.
  1254  // ^If a suffix is added to the zFilename parameter, it will
  1255  // consist of a single "-" character followed by no more than
  1256  // 11 alphanumeric and/or "-" characters.
  1257  // ^SQLite further guarantees that
  1258  // the string will be valid and unchanged until xClose() is
  1259  // called. Because of the previous sentence,
  1260  // the [sqlite3_file] can safely store a pointer to the
  1261  // filename if it needs to remember the filename for some reason.
  1262  // If the zFilename parameter to xOpen is a NULL pointer then xOpen
  1263  // must invent its own temporary name for the file.  ^Whenever the
  1264  // xFilename parameter is NULL it will also be the case that the
  1265  // flags parameter will include [SQLITE_OPEN_DELETEONCLOSE].
  1266  //
  1267  // The flags argument to xOpen() includes all bits set in
  1268  // the flags argument to [sqlite3_open_v2()].  Or if [sqlite3_open()]
  1269  // or [sqlite3_open16()] is used, then flags includes at least
  1270  // [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE].
  1271  // If xOpen() opens a file read-only then it sets *pOutFlags to
  1272  // include [SQLITE_OPEN_READONLY].  Other bits in *pOutFlags may be set.
  1273  //
  1274  // ^(SQLite will also add one of the following flags to the xOpen()
  1275  // call, depending on the object being opened:
  1276  //
  1277  // <ul>
  1278  // <li>  [SQLITE_OPEN_MAIN_DB]
  1279  // <li>  [SQLITE_OPEN_MAIN_JOURNAL]
  1280  // <li>  [SQLITE_OPEN_TEMP_DB]
  1281  // <li>  [SQLITE_OPEN_TEMP_JOURNAL]
  1282  // <li>  [SQLITE_OPEN_TRANSIENT_DB]
  1283  // <li>  [SQLITE_OPEN_SUBJOURNAL]
  1284  // <li>  [SQLITE_OPEN_SUPER_JOURNAL]
  1285  // <li>  [SQLITE_OPEN_WAL]
  1286  // </ul>)^
  1287  //
  1288  // The file I/O implementation can use the object type flags to
  1289  // change the way it deals with files.  For example, an application
  1290  // that does not care about crash recovery or rollback might make
  1291  // the open of a journal file a no-op.  Writes to this journal would
  1292  // also be no-ops, and any attempt to read the journal would return
  1293  // SQLITE_IOERR.  Or the implementation might recognize that a database
  1294  // file will be doing page-aligned sector reads and writes in a random
  1295  // order and set up its I/O subsystem accordingly.
  1296  //
  1297  // SQLite might also add one of the following flags to the xOpen method:
  1298  //
  1299  // <ul>
  1300  // <li> [SQLITE_OPEN_DELETEONCLOSE]
  1301  // <li> [SQLITE_OPEN_EXCLUSIVE]
  1302  // </ul>
  1303  //
  1304  // The [SQLITE_OPEN_DELETEONCLOSE] flag means the file should be
  1305  // deleted when it is closed.  ^The [SQLITE_OPEN_DELETEONCLOSE]
  1306  // will be set for TEMP databases and their journals, transient
  1307  // databases, and subjournals.
  1308  //
  1309  // ^The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction
  1310  // with the [SQLITE_OPEN_CREATE] flag, which are both directly
  1311  // analogous to the O_EXCL and O_CREAT flags of the POSIX open()
  1312  // API.  The SQLITE_OPEN_EXCLUSIVE flag, when paired with the
  1313  // SQLITE_OPEN_CREATE, is used to indicate that file should always
  1314  // be created, and that it is an error if it already exists.
  1315  // It is <i>not</i> used to indicate the file should be opened
  1316  // for exclusive access.
  1317  //
  1318  // ^At least szOsFile bytes of memory are allocated by SQLite
  1319  // to hold the [sqlite3_file] structure passed as the third
  1320  // argument to xOpen.  The xOpen method does not have to
  1321  // allocate the structure; it should just fill it in.  Note that
  1322  // the xOpen method must set the sqlite3_file.pMethods to either
  1323  // a valid [sqlite3_io_methods] object or to NULL.  xOpen must do
  1324  // this even if the open fails.  SQLite expects that the sqlite3_file.pMethods
  1325  // element will be valid after xOpen returns regardless of the success
  1326  // or failure of the xOpen call.
  1327  //
  1328  // [[sqlite3_vfs.xAccess]]
  1329  // ^The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS]
  1330  // to test for the existence of a file, or [SQLITE_ACCESS_READWRITE] to
  1331  // test whether a file is readable and writable, or [SQLITE_ACCESS_READ]
  1332  // to test whether a file is at least readable.  The SQLITE_ACCESS_READ
  1333  // flag is never actually used and is not implemented in the built-in
  1334  // VFSes of SQLite.  The file is named by the second argument and can be a
  1335  // directory. The xAccess method returns [SQLITE_OK] on success or some
  1336  // non-zero error code if there is an I/O error or if the name of
  1337  // the file given in the second argument is illegal.  If SQLITE_OK
  1338  // is returned, then non-zero or zero is written into *pResOut to indicate
  1339  // whether or not the file is accessible.
  1340  //
  1341  // ^SQLite will always allocate at least mxPathname+1 bytes for the
  1342  // output buffer xFullPathname.  The exact size of the output buffer
  1343  // is also passed as a parameter to both  methods. If the output buffer
  1344  // is not large enough, [SQLITE_CANTOPEN] should be returned. Since this is
  1345  // handled as a fatal error by SQLite, vfs implementations should endeavor
  1346  // to prevent this by setting mxPathname to a sufficiently large value.
  1347  //
  1348  // The xRandomness(), xSleep(), xCurrentTime(), and xCurrentTimeInt64()
  1349  // interfaces are not strictly a part of the filesystem, but they are
  1350  // included in the VFS structure for completeness.
  1351  // The xRandomness() function attempts to return nBytes bytes
  1352  // of good-quality randomness into zOut.  The return value is
  1353  // the actual number of bytes of randomness obtained.
  1354  // The xSleep() method causes the calling thread to sleep for at
  1355  // least the number of microseconds given.  ^The xCurrentTime()
  1356  // method returns a Julian Day Number for the current date and time as
  1357  // a floating point value.
  1358  // ^The xCurrentTimeInt64() method returns, as an integer, the Julian
  1359  // Day Number multiplied by 86400000 (the number of milliseconds in
  1360  // a 24-hour day).
  1361  // ^SQLite will use the xCurrentTimeInt64() method to get the current
  1362  // date and time if that method is available (if iVersion is 2 or
  1363  // greater and the function pointer is not NULL) and will fall back
  1364  // to xCurrentTime() if xCurrentTimeInt64() is unavailable.
  1365  //
  1366  // ^The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces
  1367  // are not used by the SQLite core.  These optional interfaces are provided
  1368  // by some VFSes to facilitate testing of the VFS code. By overriding
  1369  // system calls with functions under its control, a test program can
  1370  // simulate faults and error conditions that would otherwise be difficult
  1371  // or impossible to induce.  The set of system calls that can be overridden
  1372  // varies from one VFS to another, and from one version of the same VFS to the
  1373  // next.  Applications that use these interfaces must be prepared for any
  1374  // or all of these interfaces to be NULL or for their behavior to change
  1375  // from one release to the next.  Applications must not attempt to access
  1376  // any of these methods if the iVersion of the VFS is less than 3.
  1377  type sqlite3_vfs1 = struct {
  1378  	iVersion          int32
  1379  	szOsFile          int32
  1380  	mxPathname        int32
  1381  	pNext             uintptr
  1382  	zName             uintptr
  1383  	pAppData          uintptr
  1384  	xOpen             uintptr
  1385  	xDelete           uintptr
  1386  	xAccess           uintptr
  1387  	xFullPathname     uintptr
  1388  	xDlOpen           uintptr
  1389  	xDlError          uintptr
  1390  	xDlSym            uintptr
  1391  	xDlClose          uintptr
  1392  	xRandomness       uintptr
  1393  	xSleep            uintptr
  1394  	xCurrentTime      uintptr
  1395  	xGetLastError     uintptr
  1396  	xCurrentTimeInt64 uintptr
  1397  	xSetSystemCall    uintptr
  1398  	xGetSystemCall    uintptr
  1399  	xNextSystemCall   uintptr
  1400  } /* sqlite3.h:1367:9 */
  1401  
  1402  // CAPI3REF: OS Interface Object
  1403  //
  1404  // An instance of the sqlite3_vfs object defines the interface between
  1405  // the SQLite core and the underlying operating system.  The "vfs"
  1406  // in the name of the object stands for "virtual file system".  See
  1407  // the [VFS | VFS documentation] for further information.
  1408  //
  1409  // The VFS interface is sometimes extended by adding new methods onto
  1410  // the end.  Each time such an extension occurs, the iVersion field
  1411  // is incremented.  The iVersion value started out as 1 in
  1412  // SQLite [version 3.5.0] on [dateof:3.5.0], then increased to 2
  1413  // with SQLite [version 3.7.0] on [dateof:3.7.0], and then increased
  1414  // to 3 with SQLite [version 3.7.6] on [dateof:3.7.6].  Additional fields
  1415  // may be appended to the sqlite3_vfs object and the iVersion value
  1416  // may increase again in future versions of SQLite.
  1417  // Note that due to an oversight, the structure
  1418  // of the sqlite3_vfs object changed in the transition from
  1419  // SQLite [version 3.5.9] to [version 3.6.0] on [dateof:3.6.0]
  1420  // and yet the iVersion field was not increased.
  1421  //
  1422  // The szOsFile field is the size of the subclassed [sqlite3_file]
  1423  // structure used by this VFS.  mxPathname is the maximum length of
  1424  // a pathname in this VFS.
  1425  //
  1426  // Registered sqlite3_vfs objects are kept on a linked list formed by
  1427  // the pNext pointer.  The [sqlite3_vfs_register()]
  1428  // and [sqlite3_vfs_unregister()] interfaces manage this list
  1429  // in a thread-safe way.  The [sqlite3_vfs_find()] interface
  1430  // searches the list.  Neither the application code nor the VFS
  1431  // implementation should use the pNext pointer.
  1432  //
  1433  // The pNext field is the only field in the sqlite3_vfs
  1434  // structure that SQLite will ever modify.  SQLite will only access
  1435  // or modify this field while holding a particular static mutex.
  1436  // The application should never modify anything within the sqlite3_vfs
  1437  // object once the object has been registered.
  1438  //
  1439  // The zName field holds the name of the VFS module.  The name must
  1440  // be unique across all VFS modules.
  1441  //
  1442  // [[sqlite3_vfs.xOpen]]
  1443  // ^SQLite guarantees that the zFilename parameter to xOpen
  1444  // is either a NULL pointer or string obtained
  1445  // from xFullPathname() with an optional suffix added.
  1446  // ^If a suffix is added to the zFilename parameter, it will
  1447  // consist of a single "-" character followed by no more than
  1448  // 11 alphanumeric and/or "-" characters.
  1449  // ^SQLite further guarantees that
  1450  // the string will be valid and unchanged until xClose() is
  1451  // called. Because of the previous sentence,
  1452  // the [sqlite3_file] can safely store a pointer to the
  1453  // filename if it needs to remember the filename for some reason.
  1454  // If the zFilename parameter to xOpen is a NULL pointer then xOpen
  1455  // must invent its own temporary name for the file.  ^Whenever the
  1456  // xFilename parameter is NULL it will also be the case that the
  1457  // flags parameter will include [SQLITE_OPEN_DELETEONCLOSE].
  1458  //
  1459  // The flags argument to xOpen() includes all bits set in
  1460  // the flags argument to [sqlite3_open_v2()].  Or if [sqlite3_open()]
  1461  // or [sqlite3_open16()] is used, then flags includes at least
  1462  // [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE].
  1463  // If xOpen() opens a file read-only then it sets *pOutFlags to
  1464  // include [SQLITE_OPEN_READONLY].  Other bits in *pOutFlags may be set.
  1465  //
  1466  // ^(SQLite will also add one of the following flags to the xOpen()
  1467  // call, depending on the object being opened:
  1468  //
  1469  // <ul>
  1470  // <li>  [SQLITE_OPEN_MAIN_DB]
  1471  // <li>  [SQLITE_OPEN_MAIN_JOURNAL]
  1472  // <li>  [SQLITE_OPEN_TEMP_DB]
  1473  // <li>  [SQLITE_OPEN_TEMP_JOURNAL]
  1474  // <li>  [SQLITE_OPEN_TRANSIENT_DB]
  1475  // <li>  [SQLITE_OPEN_SUBJOURNAL]
  1476  // <li>  [SQLITE_OPEN_SUPER_JOURNAL]
  1477  // <li>  [SQLITE_OPEN_WAL]
  1478  // </ul>)^
  1479  //
  1480  // The file I/O implementation can use the object type flags to
  1481  // change the way it deals with files.  For example, an application
  1482  // that does not care about crash recovery or rollback might make
  1483  // the open of a journal file a no-op.  Writes to this journal would
  1484  // also be no-ops, and any attempt to read the journal would return
  1485  // SQLITE_IOERR.  Or the implementation might recognize that a database
  1486  // file will be doing page-aligned sector reads and writes in a random
  1487  // order and set up its I/O subsystem accordingly.
  1488  //
  1489  // SQLite might also add one of the following flags to the xOpen method:
  1490  //
  1491  // <ul>
  1492  // <li> [SQLITE_OPEN_DELETEONCLOSE]
  1493  // <li> [SQLITE_OPEN_EXCLUSIVE]
  1494  // </ul>
  1495  //
  1496  // The [SQLITE_OPEN_DELETEONCLOSE] flag means the file should be
  1497  // deleted when it is closed.  ^The [SQLITE_OPEN_DELETEONCLOSE]
  1498  // will be set for TEMP databases and their journals, transient
  1499  // databases, and subjournals.
  1500  //
  1501  // ^The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction
  1502  // with the [SQLITE_OPEN_CREATE] flag, which are both directly
  1503  // analogous to the O_EXCL and O_CREAT flags of the POSIX open()
  1504  // API.  The SQLITE_OPEN_EXCLUSIVE flag, when paired with the
  1505  // SQLITE_OPEN_CREATE, is used to indicate that file should always
  1506  // be created, and that it is an error if it already exists.
  1507  // It is <i>not</i> used to indicate the file should be opened
  1508  // for exclusive access.
  1509  //
  1510  // ^At least szOsFile bytes of memory are allocated by SQLite
  1511  // to hold the [sqlite3_file] structure passed as the third
  1512  // argument to xOpen.  The xOpen method does not have to
  1513  // allocate the structure; it should just fill it in.  Note that
  1514  // the xOpen method must set the sqlite3_file.pMethods to either
  1515  // a valid [sqlite3_io_methods] object or to NULL.  xOpen must do
  1516  // this even if the open fails.  SQLite expects that the sqlite3_file.pMethods
  1517  // element will be valid after xOpen returns regardless of the success
  1518  // or failure of the xOpen call.
  1519  //
  1520  // [[sqlite3_vfs.xAccess]]
  1521  // ^The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS]
  1522  // to test for the existence of a file, or [SQLITE_ACCESS_READWRITE] to
  1523  // test whether a file is readable and writable, or [SQLITE_ACCESS_READ]
  1524  // to test whether a file is at least readable.  The SQLITE_ACCESS_READ
  1525  // flag is never actually used and is not implemented in the built-in
  1526  // VFSes of SQLite.  The file is named by the second argument and can be a
  1527  // directory. The xAccess method returns [SQLITE_OK] on success or some
  1528  // non-zero error code if there is an I/O error or if the name of
  1529  // the file given in the second argument is illegal.  If SQLITE_OK
  1530  // is returned, then non-zero or zero is written into *pResOut to indicate
  1531  // whether or not the file is accessible.
  1532  //
  1533  // ^SQLite will always allocate at least mxPathname+1 bytes for the
  1534  // output buffer xFullPathname.  The exact size of the output buffer
  1535  // is also passed as a parameter to both  methods. If the output buffer
  1536  // is not large enough, [SQLITE_CANTOPEN] should be returned. Since this is
  1537  // handled as a fatal error by SQLite, vfs implementations should endeavor
  1538  // to prevent this by setting mxPathname to a sufficiently large value.
  1539  //
  1540  // The xRandomness(), xSleep(), xCurrentTime(), and xCurrentTimeInt64()
  1541  // interfaces are not strictly a part of the filesystem, but they are
  1542  // included in the VFS structure for completeness.
  1543  // The xRandomness() function attempts to return nBytes bytes
  1544  // of good-quality randomness into zOut.  The return value is
  1545  // the actual number of bytes of randomness obtained.
  1546  // The xSleep() method causes the calling thread to sleep for at
  1547  // least the number of microseconds given.  ^The xCurrentTime()
  1548  // method returns a Julian Day Number for the current date and time as
  1549  // a floating point value.
  1550  // ^The xCurrentTimeInt64() method returns, as an integer, the Julian
  1551  // Day Number multiplied by 86400000 (the number of milliseconds in
  1552  // a 24-hour day).
  1553  // ^SQLite will use the xCurrentTimeInt64() method to get the current
  1554  // date and time if that method is available (if iVersion is 2 or
  1555  // greater and the function pointer is not NULL) and will fall back
  1556  // to xCurrentTime() if xCurrentTimeInt64() is unavailable.
  1557  //
  1558  // ^The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces
  1559  // are not used by the SQLite core.  These optional interfaces are provided
  1560  // by some VFSes to facilitate testing of the VFS code. By overriding
  1561  // system calls with functions under its control, a test program can
  1562  // simulate faults and error conditions that would otherwise be difficult
  1563  // or impossible to induce.  The set of system calls that can be overridden
  1564  // varies from one VFS to another, and from one version of the same VFS to the
  1565  // next.  Applications that use these interfaces must be prepared for any
  1566  // or all of these interfaces to be NULL or for their behavior to change
  1567  // from one release to the next.  Applications must not attempt to access
  1568  // any of these methods if the iVersion of the VFS is less than 3.
  1569  type sqlite3_vfs = sqlite3_vfs1    /* sqlite3.h:1367:28 */
  1570  type sqlite3_syscall_ptr = uintptr /* sqlite3.h:1368:14 */
  1571  
  1572  // CAPI3REF: Memory Allocation Routines
  1573  //
  1574  // An instance of this object defines the interface between SQLite
  1575  // and low-level memory allocation routines.
  1576  //
  1577  // This object is used in only one place in the SQLite interface.
  1578  // A pointer to an instance of this object is the argument to
  1579  // [sqlite3_config()] when the configuration option is
  1580  // [SQLITE_CONFIG_MALLOC] or [SQLITE_CONFIG_GETMALLOC].
  1581  // By creating an instance of this object
  1582  // and passing it to [sqlite3_config]([SQLITE_CONFIG_MALLOC])
  1583  // during configuration, an application can specify an alternative
  1584  // memory allocation subsystem for SQLite to use for all of its
  1585  // dynamic memory needs.
  1586  //
  1587  // Note that SQLite comes with several [built-in memory allocators]
  1588  // that are perfectly adequate for the overwhelming majority of applications
  1589  // and that this object is only useful to a tiny minority of applications
  1590  // with specialized memory allocation requirements.  This object is
  1591  // also used during testing of SQLite in order to specify an alternative
  1592  // memory allocator that simulates memory out-of-memory conditions in
  1593  // order to verify that SQLite recovers gracefully from such
  1594  // conditions.
  1595  //
  1596  // The xMalloc, xRealloc, and xFree methods must work like the
  1597  // malloc(), realloc() and free() functions from the standard C library.
  1598  // ^SQLite guarantees that the second argument to
  1599  // xRealloc is always a value returned by a prior call to xRoundup.
  1600  //
  1601  // xSize should return the allocated size of a memory allocation
  1602  // previously obtained from xMalloc or xRealloc.  The allocated size
  1603  // is always at least as big as the requested size but may be larger.
  1604  //
  1605  // The xRoundup method returns what would be the allocated size of
  1606  // a memory allocation given a particular requested size.  Most memory
  1607  // allocators round up memory allocations at least to the next multiple
  1608  // of 8.  Some allocators round up to a larger multiple or to a power of 2.
  1609  // Every memory allocation request coming in through [sqlite3_malloc()]
  1610  // or [sqlite3_realloc()] first calls xRoundup.  If xRoundup returns 0,
  1611  // that causes the corresponding memory allocation to fail.
  1612  //
  1613  // The xInit method initializes the memory allocator.  For example,
  1614  // it might allocate any required mutexes or initialize internal data
  1615  // structures.  The xShutdown method is invoked (indirectly) by
  1616  // [sqlite3_shutdown()] and should deallocate any resources acquired
  1617  // by xInit.  The pAppData pointer is used as the only parameter to
  1618  // xInit and xShutdown.
  1619  //
  1620  // SQLite holds the [SQLITE_MUTEX_STATIC_MAIN] mutex when it invokes
  1621  // the xInit method, so the xInit method need not be threadsafe.  The
  1622  // xShutdown method is only called from [sqlite3_shutdown()] so it does
  1623  // not need to be threadsafe either.  For all other methods, SQLite
  1624  // holds the [SQLITE_MUTEX_STATIC_MEM] mutex as long as the
  1625  // [SQLITE_CONFIG_MEMSTATUS] configuration option is turned on (which
  1626  // it is by default) and so the methods are automatically serialized.
  1627  // However, if [SQLITE_CONFIG_MEMSTATUS] is disabled, then the other
  1628  // methods must be threadsafe or else make their own arrangements for
  1629  // serialization.
  1630  //
  1631  // SQLite will never invoke xInit() more than once without an intervening
  1632  // call to xShutdown().
  1633  type sqlite3_mem_methods1 = struct {
  1634  	xMalloc   uintptr
  1635  	xFree     uintptr
  1636  	xRealloc  uintptr
  1637  	xSize     uintptr
  1638  	xRoundup  uintptr
  1639  	xInit     uintptr
  1640  	xShutdown uintptr
  1641  	pAppData  uintptr
  1642  } /* sqlite3.h:1665:9 */
  1643  
  1644  // CAPI3REF: Memory Allocation Routines
  1645  //
  1646  // An instance of this object defines the interface between SQLite
  1647  // and low-level memory allocation routines.
  1648  //
  1649  // This object is used in only one place in the SQLite interface.
  1650  // A pointer to an instance of this object is the argument to
  1651  // [sqlite3_config()] when the configuration option is
  1652  // [SQLITE_CONFIG_MALLOC] or [SQLITE_CONFIG_GETMALLOC].
  1653  // By creating an instance of this object
  1654  // and passing it to [sqlite3_config]([SQLITE_CONFIG_MALLOC])
  1655  // during configuration, an application can specify an alternative
  1656  // memory allocation subsystem for SQLite to use for all of its
  1657  // dynamic memory needs.
  1658  //
  1659  // Note that SQLite comes with several [built-in memory allocators]
  1660  // that are perfectly adequate for the overwhelming majority of applications
  1661  // and that this object is only useful to a tiny minority of applications
  1662  // with specialized memory allocation requirements.  This object is
  1663  // also used during testing of SQLite in order to specify an alternative
  1664  // memory allocator that simulates memory out-of-memory conditions in
  1665  // order to verify that SQLite recovers gracefully from such
  1666  // conditions.
  1667  //
  1668  // The xMalloc, xRealloc, and xFree methods must work like the
  1669  // malloc(), realloc() and free() functions from the standard C library.
  1670  // ^SQLite guarantees that the second argument to
  1671  // xRealloc is always a value returned by a prior call to xRoundup.
  1672  //
  1673  // xSize should return the allocated size of a memory allocation
  1674  // previously obtained from xMalloc or xRealloc.  The allocated size
  1675  // is always at least as big as the requested size but may be larger.
  1676  //
  1677  // The xRoundup method returns what would be the allocated size of
  1678  // a memory allocation given a particular requested size.  Most memory
  1679  // allocators round up memory allocations at least to the next multiple
  1680  // of 8.  Some allocators round up to a larger multiple or to a power of 2.
  1681  // Every memory allocation request coming in through [sqlite3_malloc()]
  1682  // or [sqlite3_realloc()] first calls xRoundup.  If xRoundup returns 0,
  1683  // that causes the corresponding memory allocation to fail.
  1684  //
  1685  // The xInit method initializes the memory allocator.  For example,
  1686  // it might allocate any required mutexes or initialize internal data
  1687  // structures.  The xShutdown method is invoked (indirectly) by
  1688  // [sqlite3_shutdown()] and should deallocate any resources acquired
  1689  // by xInit.  The pAppData pointer is used as the only parameter to
  1690  // xInit and xShutdown.
  1691  //
  1692  // SQLite holds the [SQLITE_MUTEX_STATIC_MAIN] mutex when it invokes
  1693  // the xInit method, so the xInit method need not be threadsafe.  The
  1694  // xShutdown method is only called from [sqlite3_shutdown()] so it does
  1695  // not need to be threadsafe either.  For all other methods, SQLite
  1696  // holds the [SQLITE_MUTEX_STATIC_MEM] mutex as long as the
  1697  // [SQLITE_CONFIG_MEMSTATUS] configuration option is turned on (which
  1698  // it is by default) and so the methods are automatically serialized.
  1699  // However, if [SQLITE_CONFIG_MEMSTATUS] is disabled, then the other
  1700  // methods must be threadsafe or else make their own arrangements for
  1701  // serialization.
  1702  //
  1703  // SQLite will never invoke xInit() more than once without an intervening
  1704  // call to xShutdown().
  1705  type sqlite3_mem_methods = sqlite3_mem_methods1 /* sqlite3.h:1665:36 */
  1706  
  1707  // CAPI3REF: Constants Defining Special Destructor Behavior
  1708  //
  1709  // These are special values for the destructor that is passed in as the
  1710  // final argument to routines like [sqlite3_result_blob()].  ^If the destructor
  1711  // argument is SQLITE_STATIC, it means that the content pointer is constant
  1712  // and will never change.  It does not need to be destroyed.  ^The
  1713  // SQLITE_TRANSIENT value means that the content will likely change in
  1714  // the near future and that SQLite should make its own private copy of
  1715  // the content before returning.
  1716  //
  1717  // The typedef is necessary to work around problems in certain
  1718  // C++ compilers.
  1719  type sqlite3_destructor_type = uintptr /* sqlite3.h:5621:14 */
  1720  
  1721  // The interface to the virtual-table mechanism is currently considered
  1722  // to be experimental.  The interface might change in incompatible ways.
  1723  // If this is a problem for you, do not use the interface at this time.
  1724  //
  1725  // When the virtual-table mechanism stabilizes, we will declare the
  1726  // interface fixed, support it indefinitely, and remove this comment.
  1727  
  1728  // Structures used by the virtual table interface
  1729  type sqlite3_vtab1 = struct {
  1730  	pModule uintptr
  1731  	nRef    int32
  1732  	zErrMsg uintptr
  1733  } /* sqlite3.h:6689:9 */
  1734  
  1735  // The interface to the virtual-table mechanism is currently considered
  1736  // to be experimental.  The interface might change in incompatible ways.
  1737  // If this is a problem for you, do not use the interface at this time.
  1738  //
  1739  // When the virtual-table mechanism stabilizes, we will declare the
  1740  // interface fixed, support it indefinitely, and remove this comment.
  1741  
  1742  // Structures used by the virtual table interface
  1743  type sqlite3_vtab = sqlite3_vtab1 /* sqlite3.h:6689:29 */
  1744  type sqlite3_index_info1 = struct {
  1745  	nConstraint      int32
  1746  	aConstraint      uintptr
  1747  	nOrderBy         int32
  1748  	aOrderBy         uintptr
  1749  	aConstraintUsage uintptr
  1750  	idxNum           int32
  1751  	idxStr           uintptr
  1752  	needToFreeIdxStr int32
  1753  	orderByConsumed  int32
  1754  	_                [4]byte
  1755  	estimatedCost    float64
  1756  	estimatedRows    sqlite3_int64
  1757  	idxFlags         int32
  1758  	_                [4]byte
  1759  	colUsed          sqlite3_uint64
  1760  } /* sqlite3.h:6690:9 */
  1761  
  1762  type sqlite3_index_info = sqlite3_index_info1       /* sqlite3.h:6690:35 */
  1763  type sqlite3_vtab_cursor1 = struct{ pVtab uintptr } /* sqlite3.h:6691:9 */
  1764  
  1765  type sqlite3_vtab_cursor = sqlite3_vtab_cursor1 /* sqlite3.h:6691:36 */
  1766  type sqlite3_module1 = struct {
  1767  	iVersion      int32
  1768  	xCreate       uintptr
  1769  	xConnect      uintptr
  1770  	xBestIndex    uintptr
  1771  	xDisconnect   uintptr
  1772  	xDestroy      uintptr
  1773  	xOpen         uintptr
  1774  	xClose        uintptr
  1775  	xFilter       uintptr
  1776  	xNext         uintptr
  1777  	xEof          uintptr
  1778  	xColumn       uintptr
  1779  	xRowid        uintptr
  1780  	xUpdate       uintptr
  1781  	xBegin        uintptr
  1782  	xSync         uintptr
  1783  	xCommit       uintptr
  1784  	xRollback     uintptr
  1785  	xFindFunction uintptr
  1786  	xRename       uintptr
  1787  	xSavepoint    uintptr
  1788  	xRelease      uintptr
  1789  	xRollbackTo   uintptr
  1790  	xShadowName   uintptr
  1791  } /* sqlite3.h:6689:9 */
  1792  
  1793  type sqlite3_module = sqlite3_module1 /* sqlite3.h:6692:31 */
  1794  
  1795  // CAPI3REF: Virtual Table Indexing Information
  1796  // KEYWORDS: sqlite3_index_info
  1797  //
  1798  // The sqlite3_index_info structure and its substructures is used as part
  1799  // of the [virtual table] interface to
  1800  // pass information into and receive the reply from the [xBestIndex]
  1801  // method of a [virtual table module].  The fields under **Inputs** are the
  1802  // inputs to xBestIndex and are read-only.  xBestIndex inserts its
  1803  // results into the **Outputs** fields.
  1804  //
  1805  // ^(The aConstraint[] array records WHERE clause constraints of the form:
  1806  //
  1807  // <blockquote>column OP expr</blockquote>
  1808  //
  1809  // where OP is =, &lt;, &lt;=, &gt;, or &gt;=.)^  ^(The particular operator is
  1810  // stored in aConstraint[].op using one of the
  1811  // [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^
  1812  // ^(The index of the column is stored in
  1813  // aConstraint[].iColumn.)^  ^(aConstraint[].usable is TRUE if the
  1814  // expr on the right-hand side can be evaluated (and thus the constraint
  1815  // is usable) and false if it cannot.)^
  1816  //
  1817  // ^The optimizer automatically inverts terms of the form "expr OP column"
  1818  // and makes other simplifications to the WHERE clause in an attempt to
  1819  // get as many WHERE clause terms into the form shown above as possible.
  1820  // ^The aConstraint[] array only reports WHERE clause terms that are
  1821  // relevant to the particular virtual table being queried.
  1822  //
  1823  // ^Information about the ORDER BY clause is stored in aOrderBy[].
  1824  // ^Each term of aOrderBy records a column of the ORDER BY clause.
  1825  //
  1826  // The colUsed field indicates which columns of the virtual table may be
  1827  // required by the current scan. Virtual table columns are numbered from
  1828  // zero in the order in which they appear within the CREATE TABLE statement
  1829  // passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62),
  1830  // the corresponding bit is set within the colUsed mask if the column may be
  1831  // required by SQLite. If the table has at least 64 columns and any column
  1832  // to the right of the first 63 is required, then bit 63 of colUsed is also
  1833  // set. In other words, column iCol may be required if the expression
  1834  // (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to
  1835  // non-zero.
  1836  //
  1837  // The [xBestIndex] method must fill aConstraintUsage[] with information
  1838  // about what parameters to pass to xFilter.  ^If argvIndex>0 then
  1839  // the right-hand side of the corresponding aConstraint[] is evaluated
  1840  // and becomes the argvIndex-th entry in argv.  ^(If aConstraintUsage[].omit
  1841  // is true, then the constraint is assumed to be fully handled by the
  1842  // virtual table and might not be checked again by the byte code.)^ ^(The
  1843  // aConstraintUsage[].omit flag is an optimization hint. When the omit flag
  1844  // is left in its default setting of false, the constraint will always be
  1845  // checked separately in byte code.  If the omit flag is change to true, then
  1846  // the constraint may or may not be checked in byte code.  In other words,
  1847  // when the omit flag is true there is no guarantee that the constraint will
  1848  // not be checked again using byte code.)^
  1849  //
  1850  // ^The idxNum and idxPtr values are recorded and passed into the
  1851  // [xFilter] method.
  1852  // ^[sqlite3_free()] is used to free idxPtr if and only if
  1853  // needToFreeIdxPtr is true.
  1854  //
  1855  // ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in
  1856  // the correct order to satisfy the ORDER BY clause so that no separate
  1857  // sorting step is required.
  1858  //
  1859  // ^The estimatedCost value is an estimate of the cost of a particular
  1860  // strategy. A cost of N indicates that the cost of the strategy is similar
  1861  // to a linear scan of an SQLite table with N rows. A cost of log(N)
  1862  // indicates that the expense of the operation is similar to that of a
  1863  // binary search on a unique indexed field of an SQLite table with N rows.
  1864  //
  1865  // ^The estimatedRows value is an estimate of the number of rows that
  1866  // will be returned by the strategy.
  1867  //
  1868  // The xBestIndex method may optionally populate the idxFlags field with a
  1869  // mask of SQLITE_INDEX_SCAN_* flags. Currently there is only one such flag -
  1870  // SQLITE_INDEX_SCAN_UNIQUE. If the xBestIndex method sets this flag, SQLite
  1871  // assumes that the strategy may visit at most one row.
  1872  //
  1873  // Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then
  1874  // SQLite also assumes that if a call to the xUpdate() method is made as
  1875  // part of the same statement to delete or update a virtual table row and the
  1876  // implementation returns SQLITE_CONSTRAINT, then there is no need to rollback
  1877  // any database changes. In other words, if the xUpdate() returns
  1878  // SQLITE_CONSTRAINT, the database contents must be exactly as they were
  1879  // before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not
  1880  // set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by
  1881  // the xUpdate method are automatically rolled back by SQLite.
  1882  //
  1883  // IMPORTANT: The estimatedRows field was added to the sqlite3_index_info
  1884  // structure for SQLite [version 3.8.2] ([dateof:3.8.2]).
  1885  // If a virtual table extension is
  1886  // used with an SQLite version earlier than 3.8.2, the results of attempting
  1887  // to read or write the estimatedRows field are undefined (but are likely
  1888  // to include crashing the application). The estimatedRows field should
  1889  // therefore only be used if [sqlite3_libversion_number()] returns a
  1890  // value greater than or equal to 3008002. Similarly, the idxFlags field
  1891  // was added for [version 3.9.0] ([dateof:3.9.0]).
  1892  // It may therefore only be used if
  1893  // sqlite3_libversion_number() returns a value greater than or equal to
  1894  // 3009000.
  1895  type sqlite3_index_constraint = struct {
  1896  	iColumn     int32
  1897  	op          uint8
  1898  	usable      uint8
  1899  	_           [2]byte
  1900  	iTermOffset int32
  1901  } /* sqlite3.h:6690:9 */
  1902  
  1903  // CAPI3REF: Virtual Table Indexing Information
  1904  // KEYWORDS: sqlite3_index_info
  1905  //
  1906  // The sqlite3_index_info structure and its substructures is used as part
  1907  // of the [virtual table] interface to
  1908  // pass information into and receive the reply from the [xBestIndex]
  1909  // method of a [virtual table module].  The fields under **Inputs** are the
  1910  // inputs to xBestIndex and are read-only.  xBestIndex inserts its
  1911  // results into the **Outputs** fields.
  1912  //
  1913  // ^(The aConstraint[] array records WHERE clause constraints of the form:
  1914  //
  1915  // <blockquote>column OP expr</blockquote>
  1916  //
  1917  // where OP is =, &lt;, &lt;=, &gt;, or &gt;=.)^  ^(The particular operator is
  1918  // stored in aConstraint[].op using one of the
  1919  // [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^
  1920  // ^(The index of the column is stored in
  1921  // aConstraint[].iColumn.)^  ^(aConstraint[].usable is TRUE if the
  1922  // expr on the right-hand side can be evaluated (and thus the constraint
  1923  // is usable) and false if it cannot.)^
  1924  //
  1925  // ^The optimizer automatically inverts terms of the form "expr OP column"
  1926  // and makes other simplifications to the WHERE clause in an attempt to
  1927  // get as many WHERE clause terms into the form shown above as possible.
  1928  // ^The aConstraint[] array only reports WHERE clause terms that are
  1929  // relevant to the particular virtual table being queried.
  1930  //
  1931  // ^Information about the ORDER BY clause is stored in aOrderBy[].
  1932  // ^Each term of aOrderBy records a column of the ORDER BY clause.
  1933  //
  1934  // The colUsed field indicates which columns of the virtual table may be
  1935  // required by the current scan. Virtual table columns are numbered from
  1936  // zero in the order in which they appear within the CREATE TABLE statement
  1937  // passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62),
  1938  // the corresponding bit is set within the colUsed mask if the column may be
  1939  // required by SQLite. If the table has at least 64 columns and any column
  1940  // to the right of the first 63 is required, then bit 63 of colUsed is also
  1941  // set. In other words, column iCol may be required if the expression
  1942  // (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to
  1943  // non-zero.
  1944  //
  1945  // The [xBestIndex] method must fill aConstraintUsage[] with information
  1946  // about what parameters to pass to xFilter.  ^If argvIndex>0 then
  1947  // the right-hand side of the corresponding aConstraint[] is evaluated
  1948  // and becomes the argvIndex-th entry in argv.  ^(If aConstraintUsage[].omit
  1949  // is true, then the constraint is assumed to be fully handled by the
  1950  // virtual table and might not be checked again by the byte code.)^ ^(The
  1951  // aConstraintUsage[].omit flag is an optimization hint. When the omit flag
  1952  // is left in its default setting of false, the constraint will always be
  1953  // checked separately in byte code.  If the omit flag is change to true, then
  1954  // the constraint may or may not be checked in byte code.  In other words,
  1955  // when the omit flag is true there is no guarantee that the constraint will
  1956  // not be checked again using byte code.)^
  1957  //
  1958  // ^The idxNum and idxPtr values are recorded and passed into the
  1959  // [xFilter] method.
  1960  // ^[sqlite3_free()] is used to free idxPtr if and only if
  1961  // needToFreeIdxPtr is true.
  1962  //
  1963  // ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in
  1964  // the correct order to satisfy the ORDER BY clause so that no separate
  1965  // sorting step is required.
  1966  //
  1967  // ^The estimatedCost value is an estimate of the cost of a particular
  1968  // strategy. A cost of N indicates that the cost of the strategy is similar
  1969  // to a linear scan of an SQLite table with N rows. A cost of log(N)
  1970  // indicates that the expense of the operation is similar to that of a
  1971  // binary search on a unique indexed field of an SQLite table with N rows.
  1972  //
  1973  // ^The estimatedRows value is an estimate of the number of rows that
  1974  // will be returned by the strategy.
  1975  //
  1976  // The xBestIndex method may optionally populate the idxFlags field with a
  1977  // mask of SQLITE_INDEX_SCAN_* flags. Currently there is only one such flag -
  1978  // SQLITE_INDEX_SCAN_UNIQUE. If the xBestIndex method sets this flag, SQLite
  1979  // assumes that the strategy may visit at most one row.
  1980  //
  1981  // Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then
  1982  // SQLite also assumes that if a call to the xUpdate() method is made as
  1983  // part of the same statement to delete or update a virtual table row and the
  1984  // implementation returns SQLITE_CONSTRAINT, then there is no need to rollback
  1985  // any database changes. In other words, if the xUpdate() returns
  1986  // SQLITE_CONSTRAINT, the database contents must be exactly as they were
  1987  // before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not
  1988  // set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by
  1989  // the xUpdate method are automatically rolled back by SQLite.
  1990  //
  1991  // IMPORTANT: The estimatedRows field was added to the sqlite3_index_info
  1992  // structure for SQLite [version 3.8.2] ([dateof:3.8.2]).
  1993  // If a virtual table extension is
  1994  // used with an SQLite version earlier than 3.8.2, the results of attempting
  1995  // to read or write the estimatedRows field are undefined (but are likely
  1996  // to include crashing the application). The estimatedRows field should
  1997  // therefore only be used if [sqlite3_libversion_number()] returns a
  1998  // value greater than or equal to 3008002. Similarly, the idxFlags field
  1999  // was added for [version 3.9.0] ([dateof:3.9.0]).
  2000  // It may therefore only be used if
  2001  // sqlite3_libversion_number() returns a value greater than or equal to
  2002  // 3009000.
  2003  type sqlite3_index_orderby = struct {
  2004  	iColumn int32
  2005  	desc    uint8
  2006  	_       [3]byte
  2007  } /* sqlite3.h:6690:9 */
  2008  
  2009  // CAPI3REF: Virtual Table Indexing Information
  2010  // KEYWORDS: sqlite3_index_info
  2011  //
  2012  // The sqlite3_index_info structure and its substructures is used as part
  2013  // of the [virtual table] interface to
  2014  // pass information into and receive the reply from the [xBestIndex]
  2015  // method of a [virtual table module].  The fields under **Inputs** are the
  2016  // inputs to xBestIndex and are read-only.  xBestIndex inserts its
  2017  // results into the **Outputs** fields.
  2018  //
  2019  // ^(The aConstraint[] array records WHERE clause constraints of the form:
  2020  //
  2021  // <blockquote>column OP expr</blockquote>
  2022  //
  2023  // where OP is =, &lt;, &lt;=, &gt;, or &gt;=.)^  ^(The particular operator is
  2024  // stored in aConstraint[].op using one of the
  2025  // [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^
  2026  // ^(The index of the column is stored in
  2027  // aConstraint[].iColumn.)^  ^(aConstraint[].usable is TRUE if the
  2028  // expr on the right-hand side can be evaluated (and thus the constraint
  2029  // is usable) and false if it cannot.)^
  2030  //
  2031  // ^The optimizer automatically inverts terms of the form "expr OP column"
  2032  // and makes other simplifications to the WHERE clause in an attempt to
  2033  // get as many WHERE clause terms into the form shown above as possible.
  2034  // ^The aConstraint[] array only reports WHERE clause terms that are
  2035  // relevant to the particular virtual table being queried.
  2036  //
  2037  // ^Information about the ORDER BY clause is stored in aOrderBy[].
  2038  // ^Each term of aOrderBy records a column of the ORDER BY clause.
  2039  //
  2040  // The colUsed field indicates which columns of the virtual table may be
  2041  // required by the current scan. Virtual table columns are numbered from
  2042  // zero in the order in which they appear within the CREATE TABLE statement
  2043  // passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62),
  2044  // the corresponding bit is set within the colUsed mask if the column may be
  2045  // required by SQLite. If the table has at least 64 columns and any column
  2046  // to the right of the first 63 is required, then bit 63 of colUsed is also
  2047  // set. In other words, column iCol may be required if the expression
  2048  // (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to
  2049  // non-zero.
  2050  //
  2051  // The [xBestIndex] method must fill aConstraintUsage[] with information
  2052  // about what parameters to pass to xFilter.  ^If argvIndex>0 then
  2053  // the right-hand side of the corresponding aConstraint[] is evaluated
  2054  // and becomes the argvIndex-th entry in argv.  ^(If aConstraintUsage[].omit
  2055  // is true, then the constraint is assumed to be fully handled by the
  2056  // virtual table and might not be checked again by the byte code.)^ ^(The
  2057  // aConstraintUsage[].omit flag is an optimization hint. When the omit flag
  2058  // is left in its default setting of false, the constraint will always be
  2059  // checked separately in byte code.  If the omit flag is change to true, then
  2060  // the constraint may or may not be checked in byte code.  In other words,
  2061  // when the omit flag is true there is no guarantee that the constraint will
  2062  // not be checked again using byte code.)^
  2063  //
  2064  // ^The idxNum and idxPtr values are recorded and passed into the
  2065  // [xFilter] method.
  2066  // ^[sqlite3_free()] is used to free idxPtr if and only if
  2067  // needToFreeIdxPtr is true.
  2068  //
  2069  // ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in
  2070  // the correct order to satisfy the ORDER BY clause so that no separate
  2071  // sorting step is required.
  2072  //
  2073  // ^The estimatedCost value is an estimate of the cost of a particular
  2074  // strategy. A cost of N indicates that the cost of the strategy is similar
  2075  // to a linear scan of an SQLite table with N rows. A cost of log(N)
  2076  // indicates that the expense of the operation is similar to that of a
  2077  // binary search on a unique indexed field of an SQLite table with N rows.
  2078  //
  2079  // ^The estimatedRows value is an estimate of the number of rows that
  2080  // will be returned by the strategy.
  2081  //
  2082  // The xBestIndex method may optionally populate the idxFlags field with a
  2083  // mask of SQLITE_INDEX_SCAN_* flags. Currently there is only one such flag -
  2084  // SQLITE_INDEX_SCAN_UNIQUE. If the xBestIndex method sets this flag, SQLite
  2085  // assumes that the strategy may visit at most one row.
  2086  //
  2087  // Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then
  2088  // SQLite also assumes that if a call to the xUpdate() method is made as
  2089  // part of the same statement to delete or update a virtual table row and the
  2090  // implementation returns SQLITE_CONSTRAINT, then there is no need to rollback
  2091  // any database changes. In other words, if the xUpdate() returns
  2092  // SQLITE_CONSTRAINT, the database contents must be exactly as they were
  2093  // before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not
  2094  // set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by
  2095  // the xUpdate method are automatically rolled back by SQLite.
  2096  //
  2097  // IMPORTANT: The estimatedRows field was added to the sqlite3_index_info
  2098  // structure for SQLite [version 3.8.2] ([dateof:3.8.2]).
  2099  // If a virtual table extension is
  2100  // used with an SQLite version earlier than 3.8.2, the results of attempting
  2101  // to read or write the estimatedRows field are undefined (but are likely
  2102  // to include crashing the application). The estimatedRows field should
  2103  // therefore only be used if [sqlite3_libversion_number()] returns a
  2104  // value greater than or equal to 3008002. Similarly, the idxFlags field
  2105  // was added for [version 3.9.0] ([dateof:3.9.0]).
  2106  // It may therefore only be used if
  2107  // sqlite3_libversion_number() returns a value greater than or equal to
  2108  // 3009000.
  2109  type sqlite3_index_constraint_usage = struct {
  2110  	argvIndex int32
  2111  	omit      uint8
  2112  	_         [3]byte
  2113  } /* sqlite3.h:6690:9 */
  2114  
  2115  // CAPI3REF: Mutex Methods Object
  2116  //
  2117  // An instance of this structure defines the low-level routines
  2118  // used to allocate and use mutexes.
  2119  //
  2120  // Usually, the default mutex implementations provided by SQLite are
  2121  // sufficient, however the application has the option of substituting a custom
  2122  // implementation for specialized deployments or systems for which SQLite
  2123  // does not provide a suitable implementation. In this case, the application
  2124  // creates and populates an instance of this structure to pass
  2125  // to sqlite3_config() along with the [SQLITE_CONFIG_MUTEX] option.
  2126  // Additionally, an instance of this structure can be used as an
  2127  // output variable when querying the system for the current mutex
  2128  // implementation, using the [SQLITE_CONFIG_GETMUTEX] option.
  2129  //
  2130  // ^The xMutexInit method defined by this structure is invoked as
  2131  // part of system initialization by the sqlite3_initialize() function.
  2132  // ^The xMutexInit routine is called by SQLite exactly once for each
  2133  // effective call to [sqlite3_initialize()].
  2134  //
  2135  // ^The xMutexEnd method defined by this structure is invoked as
  2136  // part of system shutdown by the sqlite3_shutdown() function. The
  2137  // implementation of this method is expected to release all outstanding
  2138  // resources obtained by the mutex methods implementation, especially
  2139  // those obtained by the xMutexInit method.  ^The xMutexEnd()
  2140  // interface is invoked exactly once for each call to [sqlite3_shutdown()].
  2141  //
  2142  // ^(The remaining seven methods defined by this structure (xMutexAlloc,
  2143  // xMutexFree, xMutexEnter, xMutexTry, xMutexLeave, xMutexHeld and
  2144  // xMutexNotheld) implement the following interfaces (respectively):
  2145  //
  2146  // <ul>
  2147  //   <li>  [sqlite3_mutex_alloc()] </li>
  2148  //   <li>  [sqlite3_mutex_free()] </li>
  2149  //   <li>  [sqlite3_mutex_enter()] </li>
  2150  //   <li>  [sqlite3_mutex_try()] </li>
  2151  //   <li>  [sqlite3_mutex_leave()] </li>
  2152  //   <li>  [sqlite3_mutex_held()] </li>
  2153  //   <li>  [sqlite3_mutex_notheld()] </li>
  2154  // </ul>)^
  2155  //
  2156  // The only difference is that the public sqlite3_XXX functions enumerated
  2157  // above silently ignore any invocations that pass a NULL pointer instead
  2158  // of a valid mutex handle. The implementations of the methods defined
  2159  // by this structure are not required to handle this case. The results
  2160  // of passing a NULL pointer instead of a valid mutex handle are undefined
  2161  // (i.e. it is acceptable to provide an implementation that segfaults if
  2162  // it is passed a NULL pointer).
  2163  //
  2164  // The xMutexInit() method must be threadsafe.  It must be harmless to
  2165  // invoke xMutexInit() multiple times within the same process and without
  2166  // intervening calls to xMutexEnd().  Second and subsequent calls to
  2167  // xMutexInit() must be no-ops.
  2168  //
  2169  // xMutexInit() must not use SQLite memory allocation ([sqlite3_malloc()]
  2170  // and its associates).  Similarly, xMutexAlloc() must not use SQLite memory
  2171  // allocation for a static mutex.  ^However xMutexAlloc() may use SQLite
  2172  // memory allocation for a fast or recursive mutex.
  2173  //
  2174  // ^SQLite will invoke the xMutexEnd() method when [sqlite3_shutdown()] is
  2175  // called, but only if the prior call to xMutexInit returned SQLITE_OK.
  2176  // If xMutexInit fails in any way, it is expected to clean up after itself
  2177  // prior to returning.
  2178  type sqlite3_mutex_methods1 = struct {
  2179  	xMutexInit    uintptr
  2180  	xMutexEnd     uintptr
  2181  	xMutexAlloc   uintptr
  2182  	xMutexFree    uintptr
  2183  	xMutexEnter   uintptr
  2184  	xMutexTry     uintptr
  2185  	xMutexLeave   uintptr
  2186  	xMutexHeld    uintptr
  2187  	xMutexNotheld uintptr
  2188  } /* sqlite3.h:7524:9 */
  2189  
  2190  // CAPI3REF: Mutex Methods Object
  2191  //
  2192  // An instance of this structure defines the low-level routines
  2193  // used to allocate and use mutexes.
  2194  //
  2195  // Usually, the default mutex implementations provided by SQLite are
  2196  // sufficient, however the application has the option of substituting a custom
  2197  // implementation for specialized deployments or systems for which SQLite
  2198  // does not provide a suitable implementation. In this case, the application
  2199  // creates and populates an instance of this structure to pass
  2200  // to sqlite3_config() along with the [SQLITE_CONFIG_MUTEX] option.
  2201  // Additionally, an instance of this structure can be used as an
  2202  // output variable when querying the system for the current mutex
  2203  // implementation, using the [SQLITE_CONFIG_GETMUTEX] option.
  2204  //
  2205  // ^The xMutexInit method defined by this structure is invoked as
  2206  // part of system initialization by the sqlite3_initialize() function.
  2207  // ^The xMutexInit routine is called by SQLite exactly once for each
  2208  // effective call to [sqlite3_initialize()].
  2209  //
  2210  // ^The xMutexEnd method defined by this structure is invoked as
  2211  // part of system shutdown by the sqlite3_shutdown() function. The
  2212  // implementation of this method is expected to release all outstanding
  2213  // resources obtained by the mutex methods implementation, especially
  2214  // those obtained by the xMutexInit method.  ^The xMutexEnd()
  2215  // interface is invoked exactly once for each call to [sqlite3_shutdown()].
  2216  //
  2217  // ^(The remaining seven methods defined by this structure (xMutexAlloc,
  2218  // xMutexFree, xMutexEnter, xMutexTry, xMutexLeave, xMutexHeld and
  2219  // xMutexNotheld) implement the following interfaces (respectively):
  2220  //
  2221  // <ul>
  2222  //   <li>  [sqlite3_mutex_alloc()] </li>
  2223  //   <li>  [sqlite3_mutex_free()] </li>
  2224  //   <li>  [sqlite3_mutex_enter()] </li>
  2225  //   <li>  [sqlite3_mutex_try()] </li>
  2226  //   <li>  [sqlite3_mutex_leave()] </li>
  2227  //   <li>  [sqlite3_mutex_held()] </li>
  2228  //   <li>  [sqlite3_mutex_notheld()] </li>
  2229  // </ul>)^
  2230  //
  2231  // The only difference is that the public sqlite3_XXX functions enumerated
  2232  // above silently ignore any invocations that pass a NULL pointer instead
  2233  // of a valid mutex handle. The implementations of the methods defined
  2234  // by this structure are not required to handle this case. The results
  2235  // of passing a NULL pointer instead of a valid mutex handle are undefined
  2236  // (i.e. it is acceptable to provide an implementation that segfaults if
  2237  // it is passed a NULL pointer).
  2238  //
  2239  // The xMutexInit() method must be threadsafe.  It must be harmless to
  2240  // invoke xMutexInit() multiple times within the same process and without
  2241  // intervening calls to xMutexEnd().  Second and subsequent calls to
  2242  // xMutexInit() must be no-ops.
  2243  //
  2244  // xMutexInit() must not use SQLite memory allocation ([sqlite3_malloc()]
  2245  // and its associates).  Similarly, xMutexAlloc() must not use SQLite memory
  2246  // allocation for a static mutex.  ^However xMutexAlloc() may use SQLite
  2247  // memory allocation for a fast or recursive mutex.
  2248  //
  2249  // ^SQLite will invoke the xMutexEnd() method when [sqlite3_shutdown()] is
  2250  // called, but only if the prior call to xMutexInit returned SQLITE_OK.
  2251  // If xMutexInit fails in any way, it is expected to clean up after itself
  2252  // prior to returning.
  2253  type sqlite3_mutex_methods = sqlite3_mutex_methods1 /* sqlite3.h:7524:38 */
  2254  
  2255  // CAPI3REF: Custom Page Cache Object
  2256  //
  2257  // The sqlite3_pcache_page object represents a single page in the
  2258  // page cache.  The page cache will allocate instances of this
  2259  // object.  Various methods of the page cache use pointers to instances
  2260  // of this object as parameters or as their return value.
  2261  //
  2262  // See [sqlite3_pcache_methods2] for additional information.
  2263  type sqlite3_pcache_page1 = struct {
  2264  	pBuf   uintptr
  2265  	pExtra uintptr
  2266  } /* sqlite3.h:8277:9 */
  2267  
  2268  // CAPI3REF: Custom Page Cache Object
  2269  //
  2270  // The sqlite3_pcache_page object represents a single page in the
  2271  // page cache.  The page cache will allocate instances of this
  2272  // object.  Various methods of the page cache use pointers to instances
  2273  // of this object as parameters or as their return value.
  2274  //
  2275  // See [sqlite3_pcache_methods2] for additional information.
  2276  type sqlite3_pcache_page = sqlite3_pcache_page1 /* sqlite3.h:8277:36 */
  2277  
  2278  // CAPI3REF: Application Defined Page Cache.
  2279  // KEYWORDS: {page cache}
  2280  //
  2281  // ^(The [sqlite3_config]([SQLITE_CONFIG_PCACHE2], ...) interface can
  2282  // register an alternative page cache implementation by passing in an
  2283  // instance of the sqlite3_pcache_methods2 structure.)^
  2284  // In many applications, most of the heap memory allocated by
  2285  // SQLite is used for the page cache.
  2286  // By implementing a
  2287  // custom page cache using this API, an application can better control
  2288  // the amount of memory consumed by SQLite, the way in which
  2289  // that memory is allocated and released, and the policies used to
  2290  // determine exactly which parts of a database file are cached and for
  2291  // how long.
  2292  //
  2293  // The alternative page cache mechanism is an
  2294  // extreme measure that is only needed by the most demanding applications.
  2295  // The built-in page cache is recommended for most uses.
  2296  //
  2297  // ^(The contents of the sqlite3_pcache_methods2 structure are copied to an
  2298  // internal buffer by SQLite within the call to [sqlite3_config].  Hence
  2299  // the application may discard the parameter after the call to
  2300  // [sqlite3_config()] returns.)^
  2301  //
  2302  // [[the xInit() page cache method]]
  2303  // ^(The xInit() method is called once for each effective
  2304  // call to [sqlite3_initialize()])^
  2305  // (usually only once during the lifetime of the process). ^(The xInit()
  2306  // method is passed a copy of the sqlite3_pcache_methods2.pArg value.)^
  2307  // The intent of the xInit() method is to set up global data structures
  2308  // required by the custom page cache implementation.
  2309  // ^(If the xInit() method is NULL, then the
  2310  // built-in default page cache is used instead of the application defined
  2311  // page cache.)^
  2312  //
  2313  // [[the xShutdown() page cache method]]
  2314  // ^The xShutdown() method is called by [sqlite3_shutdown()].
  2315  // It can be used to clean up
  2316  // any outstanding resources before process shutdown, if required.
  2317  // ^The xShutdown() method may be NULL.
  2318  //
  2319  // ^SQLite automatically serializes calls to the xInit method,
  2320  // so the xInit method need not be threadsafe.  ^The
  2321  // xShutdown method is only called from [sqlite3_shutdown()] so it does
  2322  // not need to be threadsafe either.  All other methods must be threadsafe
  2323  // in multithreaded applications.
  2324  //
  2325  // ^SQLite will never invoke xInit() more than once without an intervening
  2326  // call to xShutdown().
  2327  //
  2328  // [[the xCreate() page cache methods]]
  2329  // ^SQLite invokes the xCreate() method to construct a new cache instance.
  2330  // SQLite will typically create one cache instance for each open database file,
  2331  // though this is not guaranteed. ^The
  2332  // first parameter, szPage, is the size in bytes of the pages that must
  2333  // be allocated by the cache.  ^szPage will always a power of two.  ^The
  2334  // second parameter szExtra is a number of bytes of extra storage
  2335  // associated with each page cache entry.  ^The szExtra parameter will
  2336  // a number less than 250.  SQLite will use the
  2337  // extra szExtra bytes on each page to store metadata about the underlying
  2338  // database page on disk.  The value passed into szExtra depends
  2339  // on the SQLite version, the target platform, and how SQLite was compiled.
  2340  // ^The third argument to xCreate(), bPurgeable, is true if the cache being
  2341  // created will be used to cache database pages of a file stored on disk, or
  2342  // false if it is used for an in-memory database. The cache implementation
  2343  // does not have to do anything special based with the value of bPurgeable;
  2344  // it is purely advisory.  ^On a cache where bPurgeable is false, SQLite will
  2345  // never invoke xUnpin() except to deliberately delete a page.
  2346  // ^In other words, calls to xUnpin() on a cache with bPurgeable set to
  2347  // false will always have the "discard" flag set to true.
  2348  // ^Hence, a cache created with bPurgeable false will
  2349  // never contain any unpinned pages.
  2350  //
  2351  // [[the xCachesize() page cache method]]
  2352  // ^(The xCachesize() method may be called at any time by SQLite to set the
  2353  // suggested maximum cache-size (number of pages stored by) the cache
  2354  // instance passed as the first argument. This is the value configured using
  2355  // the SQLite "[PRAGMA cache_size]" command.)^  As with the bPurgeable
  2356  // parameter, the implementation is not required to do anything with this
  2357  // value; it is advisory only.
  2358  //
  2359  // [[the xPagecount() page cache methods]]
  2360  // The xPagecount() method must return the number of pages currently
  2361  // stored in the cache, both pinned and unpinned.
  2362  //
  2363  // [[the xFetch() page cache methods]]
  2364  // The xFetch() method locates a page in the cache and returns a pointer to
  2365  // an sqlite3_pcache_page object associated with that page, or a NULL pointer.
  2366  // The pBuf element of the returned sqlite3_pcache_page object will be a
  2367  // pointer to a buffer of szPage bytes used to store the content of a
  2368  // single database page.  The pExtra element of sqlite3_pcache_page will be
  2369  // a pointer to the szExtra bytes of extra storage that SQLite has requested
  2370  // for each entry in the page cache.
  2371  //
  2372  // The page to be fetched is determined by the key. ^The minimum key value
  2373  // is 1.  After it has been retrieved using xFetch, the page is considered
  2374  // to be "pinned".
  2375  //
  2376  // If the requested page is already in the page cache, then the page cache
  2377  // implementation must return a pointer to the page buffer with its content
  2378  // intact.  If the requested page is not already in the cache, then the
  2379  // cache implementation should use the value of the createFlag
  2380  // parameter to help it determined what action to take:
  2381  //
  2382  // <table border=1 width=85% align=center>
  2383  // <tr><th> createFlag <th> Behavior when page is not already in cache
  2384  // <tr><td> 0 <td> Do not allocate a new page.  Return NULL.
  2385  // <tr><td> 1 <td> Allocate a new page if it easy and convenient to do so.
  2386  //                 Otherwise return NULL.
  2387  // <tr><td> 2 <td> Make every effort to allocate a new page.  Only return
  2388  //                 NULL if allocating a new page is effectively impossible.
  2389  // </table>
  2390  //
  2391  // ^(SQLite will normally invoke xFetch() with a createFlag of 0 or 1.  SQLite
  2392  // will only use a createFlag of 2 after a prior call with a createFlag of 1
  2393  // failed.)^  In between the xFetch() calls, SQLite may
  2394  // attempt to unpin one or more cache pages by spilling the content of
  2395  // pinned pages to disk and synching the operating system disk cache.
  2396  //
  2397  // [[the xUnpin() page cache method]]
  2398  // ^xUnpin() is called by SQLite with a pointer to a currently pinned page
  2399  // as its second argument.  If the third parameter, discard, is non-zero,
  2400  // then the page must be evicted from the cache.
  2401  // ^If the discard parameter is
  2402  // zero, then the page may be discarded or retained at the discretion of
  2403  // page cache implementation. ^The page cache implementation
  2404  // may choose to evict unpinned pages at any time.
  2405  //
  2406  // The cache must not perform any reference counting. A single
  2407  // call to xUnpin() unpins the page regardless of the number of prior calls
  2408  // to xFetch().
  2409  //
  2410  // [[the xRekey() page cache methods]]
  2411  // The xRekey() method is used to change the key value associated with the
  2412  // page passed as the second argument. If the cache
  2413  // previously contains an entry associated with newKey, it must be
  2414  // discarded. ^Any prior cache entry associated with newKey is guaranteed not
  2415  // to be pinned.
  2416  //
  2417  // When SQLite calls the xTruncate() method, the cache must discard all
  2418  // existing cache entries with page numbers (keys) greater than or equal
  2419  // to the value of the iLimit parameter passed to xTruncate(). If any
  2420  // of these pages are pinned, they are implicitly unpinned, meaning that
  2421  // they can be safely discarded.
  2422  //
  2423  // [[the xDestroy() page cache method]]
  2424  // ^The xDestroy() method is used to delete a cache allocated by xCreate().
  2425  // All resources associated with the specified cache should be freed. ^After
  2426  // calling the xDestroy() method, SQLite considers the [sqlite3_pcache*]
  2427  // handle invalid, and will not use it with any other sqlite3_pcache_methods2
  2428  // functions.
  2429  //
  2430  // [[the xShrink() page cache method]]
  2431  // ^SQLite invokes the xShrink() method when it wants the page cache to
  2432  // free up as much of heap memory as possible.  The page cache implementation
  2433  // is not obligated to free any memory, but well-behaved implementations should
  2434  // do their best.
  2435  type sqlite3_pcache_methods21 = struct {
  2436  	iVersion   int32
  2437  	pArg       uintptr
  2438  	xInit      uintptr
  2439  	xShutdown  uintptr
  2440  	xCreate    uintptr
  2441  	xCachesize uintptr
  2442  	xPagecount uintptr
  2443  	xFetch     uintptr
  2444  	xUnpin     uintptr
  2445  	xRekey     uintptr
  2446  	xTruncate  uintptr
  2447  	xDestroy   uintptr
  2448  	xShrink    uintptr
  2449  } /* sqlite3.h:8442:9 */
  2450  
  2451  // CAPI3REF: Application Defined Page Cache.
  2452  // KEYWORDS: {page cache}
  2453  //
  2454  // ^(The [sqlite3_config]([SQLITE_CONFIG_PCACHE2], ...) interface can
  2455  // register an alternative page cache implementation by passing in an
  2456  // instance of the sqlite3_pcache_methods2 structure.)^
  2457  // In many applications, most of the heap memory allocated by
  2458  // SQLite is used for the page cache.
  2459  // By implementing a
  2460  // custom page cache using this API, an application can better control
  2461  // the amount of memory consumed by SQLite, the way in which
  2462  // that memory is allocated and released, and the policies used to
  2463  // determine exactly which parts of a database file are cached and for
  2464  // how long.
  2465  //
  2466  // The alternative page cache mechanism is an
  2467  // extreme measure that is only needed by the most demanding applications.
  2468  // The built-in page cache is recommended for most uses.
  2469  //
  2470  // ^(The contents of the sqlite3_pcache_methods2 structure are copied to an
  2471  // internal buffer by SQLite within the call to [sqlite3_config].  Hence
  2472  // the application may discard the parameter after the call to
  2473  // [sqlite3_config()] returns.)^
  2474  //
  2475  // [[the xInit() page cache method]]
  2476  // ^(The xInit() method is called once for each effective
  2477  // call to [sqlite3_initialize()])^
  2478  // (usually only once during the lifetime of the process). ^(The xInit()
  2479  // method is passed a copy of the sqlite3_pcache_methods2.pArg value.)^
  2480  // The intent of the xInit() method is to set up global data structures
  2481  // required by the custom page cache implementation.
  2482  // ^(If the xInit() method is NULL, then the
  2483  // built-in default page cache is used instead of the application defined
  2484  // page cache.)^
  2485  //
  2486  // [[the xShutdown() page cache method]]
  2487  // ^The xShutdown() method is called by [sqlite3_shutdown()].
  2488  // It can be used to clean up
  2489  // any outstanding resources before process shutdown, if required.
  2490  // ^The xShutdown() method may be NULL.
  2491  //
  2492  // ^SQLite automatically serializes calls to the xInit method,
  2493  // so the xInit method need not be threadsafe.  ^The
  2494  // xShutdown method is only called from [sqlite3_shutdown()] so it does
  2495  // not need to be threadsafe either.  All other methods must be threadsafe
  2496  // in multithreaded applications.
  2497  //
  2498  // ^SQLite will never invoke xInit() more than once without an intervening
  2499  // call to xShutdown().
  2500  //
  2501  // [[the xCreate() page cache methods]]
  2502  // ^SQLite invokes the xCreate() method to construct a new cache instance.
  2503  // SQLite will typically create one cache instance for each open database file,
  2504  // though this is not guaranteed. ^The
  2505  // first parameter, szPage, is the size in bytes of the pages that must
  2506  // be allocated by the cache.  ^szPage will always a power of two.  ^The
  2507  // second parameter szExtra is a number of bytes of extra storage
  2508  // associated with each page cache entry.  ^The szExtra parameter will
  2509  // a number less than 250.  SQLite will use the
  2510  // extra szExtra bytes on each page to store metadata about the underlying
  2511  // database page on disk.  The value passed into szExtra depends
  2512  // on the SQLite version, the target platform, and how SQLite was compiled.
  2513  // ^The third argument to xCreate(), bPurgeable, is true if the cache being
  2514  // created will be used to cache database pages of a file stored on disk, or
  2515  // false if it is used for an in-memory database. The cache implementation
  2516  // does not have to do anything special based with the value of bPurgeable;
  2517  // it is purely advisory.  ^On a cache where bPurgeable is false, SQLite will
  2518  // never invoke xUnpin() except to deliberately delete a page.
  2519  // ^In other words, calls to xUnpin() on a cache with bPurgeable set to
  2520  // false will always have the "discard" flag set to true.
  2521  // ^Hence, a cache created with bPurgeable false will
  2522  // never contain any unpinned pages.
  2523  //
  2524  // [[the xCachesize() page cache method]]
  2525  // ^(The xCachesize() method may be called at any time by SQLite to set the
  2526  // suggested maximum cache-size (number of pages stored by) the cache
  2527  // instance passed as the first argument. This is the value configured using
  2528  // the SQLite "[PRAGMA cache_size]" command.)^  As with the bPurgeable
  2529  // parameter, the implementation is not required to do anything with this
  2530  // value; it is advisory only.
  2531  //
  2532  // [[the xPagecount() page cache methods]]
  2533  // The xPagecount() method must return the number of pages currently
  2534  // stored in the cache, both pinned and unpinned.
  2535  //
  2536  // [[the xFetch() page cache methods]]
  2537  // The xFetch() method locates a page in the cache and returns a pointer to
  2538  // an sqlite3_pcache_page object associated with that page, or a NULL pointer.
  2539  // The pBuf element of the returned sqlite3_pcache_page object will be a
  2540  // pointer to a buffer of szPage bytes used to store the content of a
  2541  // single database page.  The pExtra element of sqlite3_pcache_page will be
  2542  // a pointer to the szExtra bytes of extra storage that SQLite has requested
  2543  // for each entry in the page cache.
  2544  //
  2545  // The page to be fetched is determined by the key. ^The minimum key value
  2546  // is 1.  After it has been retrieved using xFetch, the page is considered
  2547  // to be "pinned".
  2548  //
  2549  // If the requested page is already in the page cache, then the page cache
  2550  // implementation must return a pointer to the page buffer with its content
  2551  // intact.  If the requested page is not already in the cache, then the
  2552  // cache implementation should use the value of the createFlag
  2553  // parameter to help it determined what action to take:
  2554  //
  2555  // <table border=1 width=85% align=center>
  2556  // <tr><th> createFlag <th> Behavior when page is not already in cache
  2557  // <tr><td> 0 <td> Do not allocate a new page.  Return NULL.
  2558  // <tr><td> 1 <td> Allocate a new page if it easy and convenient to do so.
  2559  //                 Otherwise return NULL.
  2560  // <tr><td> 2 <td> Make every effort to allocate a new page.  Only return
  2561  //                 NULL if allocating a new page is effectively impossible.
  2562  // </table>
  2563  //
  2564  // ^(SQLite will normally invoke xFetch() with a createFlag of 0 or 1.  SQLite
  2565  // will only use a createFlag of 2 after a prior call with a createFlag of 1
  2566  // failed.)^  In between the xFetch() calls, SQLite may
  2567  // attempt to unpin one or more cache pages by spilling the content of
  2568  // pinned pages to disk and synching the operating system disk cache.
  2569  //
  2570  // [[the xUnpin() page cache method]]
  2571  // ^xUnpin() is called by SQLite with a pointer to a currently pinned page
  2572  // as its second argument.  If the third parameter, discard, is non-zero,
  2573  // then the page must be evicted from the cache.
  2574  // ^If the discard parameter is
  2575  // zero, then the page may be discarded or retained at the discretion of
  2576  // page cache implementation. ^The page cache implementation
  2577  // may choose to evict unpinned pages at any time.
  2578  //
  2579  // The cache must not perform any reference counting. A single
  2580  // call to xUnpin() unpins the page regardless of the number of prior calls
  2581  // to xFetch().
  2582  //
  2583  // [[the xRekey() page cache methods]]
  2584  // The xRekey() method is used to change the key value associated with the
  2585  // page passed as the second argument. If the cache
  2586  // previously contains an entry associated with newKey, it must be
  2587  // discarded. ^Any prior cache entry associated with newKey is guaranteed not
  2588  // to be pinned.
  2589  //
  2590  // When SQLite calls the xTruncate() method, the cache must discard all
  2591  // existing cache entries with page numbers (keys) greater than or equal
  2592  // to the value of the iLimit parameter passed to xTruncate(). If any
  2593  // of these pages are pinned, they are implicitly unpinned, meaning that
  2594  // they can be safely discarded.
  2595  //
  2596  // [[the xDestroy() page cache method]]
  2597  // ^The xDestroy() method is used to delete a cache allocated by xCreate().
  2598  // All resources associated with the specified cache should be freed. ^After
  2599  // calling the xDestroy() method, SQLite considers the [sqlite3_pcache*]
  2600  // handle invalid, and will not use it with any other sqlite3_pcache_methods2
  2601  // functions.
  2602  //
  2603  // [[the xShrink() page cache method]]
  2604  // ^SQLite invokes the xShrink() method when it wants the page cache to
  2605  // free up as much of heap memory as possible.  The page cache implementation
  2606  // is not obligated to free any memory, but well-behaved implementations should
  2607  // do their best.
  2608  type sqlite3_pcache_methods2 = sqlite3_pcache_methods21 /* sqlite3.h:8442:40 */
  2609  
  2610  // This is the obsolete pcache_methods object that has now been replaced
  2611  // by sqlite3_pcache_methods2.  This object is not used by SQLite.  It is
  2612  // retained in the header file for backwards compatibility only.
  2613  type sqlite3_pcache_methods1 = struct {
  2614  	pArg       uintptr
  2615  	xInit      uintptr
  2616  	xShutdown  uintptr
  2617  	xCreate    uintptr
  2618  	xCachesize uintptr
  2619  	xPagecount uintptr
  2620  	xFetch     uintptr
  2621  	xUnpin     uintptr
  2622  	xRekey     uintptr
  2623  	xTruncate  uintptr
  2624  	xDestroy   uintptr
  2625  } /* sqlite3.h:8465:9 */
  2626  
  2627  // This is the obsolete pcache_methods object that has now been replaced
  2628  // by sqlite3_pcache_methods2.  This object is not used by SQLite.  It is
  2629  // retained in the header file for backwards compatibility only.
  2630  type sqlite3_pcache_methods = sqlite3_pcache_methods1 /* sqlite3.h:8465:39 */
  2631  
  2632  // CAPI3REF: Database Snapshot
  2633  // KEYWORDS: {snapshot} {sqlite3_snapshot}
  2634  //
  2635  // An instance of the snapshot object records the state of a [WAL mode]
  2636  // database for some specific point in history.
  2637  //
  2638  // In [WAL mode], multiple [database connections] that are open on the
  2639  // same database file can each be reading a different historical version
  2640  // of the database file.  When a [database connection] begins a read
  2641  // transaction, that connection sees an unchanging copy of the database
  2642  // as it existed for the point in time when the transaction first started.
  2643  // Subsequent changes to the database from other connections are not seen
  2644  // by the reader until a new read transaction is started.
  2645  //
  2646  // The sqlite3_snapshot object records state information about an historical
  2647  // version of the database file so that it is possible to later open a new read
  2648  // transaction that sees that historical version of the database rather than
  2649  // the most recent version.
  2650  type sqlite3_snapshot1 = struct{ hidden [48]uint8 } /* sqlite3.h:9512:9 */
  2651  
  2652  // CAPI3REF: Database Snapshot
  2653  // KEYWORDS: {snapshot} {sqlite3_snapshot}
  2654  //
  2655  // An instance of the snapshot object records the state of a [WAL mode]
  2656  // database for some specific point in history.
  2657  //
  2658  // In [WAL mode], multiple [database connections] that are open on the
  2659  // same database file can each be reading a different historical version
  2660  // of the database file.  When a [database connection] begins a read
  2661  // transaction, that connection sees an unchanging copy of the database
  2662  // as it existed for the point in time when the transaction first started.
  2663  // Subsequent changes to the database from other connections are not seen
  2664  // by the reader until a new read transaction is started.
  2665  //
  2666  // The sqlite3_snapshot object records state information about an historical
  2667  // version of the database file so that it is possible to later open a new read
  2668  // transaction that sees that historical version of the database rather than
  2669  // the most recent version.
  2670  type sqlite3_snapshot = sqlite3_snapshot1 /* sqlite3.h:9514:3 */
  2671  
  2672  // CAPI3REF: Flags for sqlite3_deserialize()
  2673  //
  2674  // The following are allowed values for 6th argument (the F argument) to
  2675  // the [sqlite3_deserialize(D,S,P,N,M,F)] interface.
  2676  //
  2677  // The SQLITE_DESERIALIZE_FREEONCLOSE means that the database serialization
  2678  // in the P argument is held in memory obtained from [sqlite3_malloc64()]
  2679  // and that SQLite should take ownership of this memory and automatically
  2680  // free it when it has finished using it.  Without this flag, the caller
  2681  // is responsible for freeing any dynamically allocated memory.
  2682  //
  2683  // The SQLITE_DESERIALIZE_RESIZEABLE flag means that SQLite is allowed to
  2684  // grow the size of the database using calls to [sqlite3_realloc64()].  This
  2685  // flag should only be used if SQLITE_DESERIALIZE_FREEONCLOSE is also used.
  2686  // Without this flag, the deserialized database cannot increase in size beyond
  2687  // the number of bytes specified by the M parameter.
  2688  //
  2689  // The SQLITE_DESERIALIZE_READONLY flag means that the deserialized database
  2690  // should be treated as read-only.
  2691  
  2692  // Undo the hack that converts floating point types to integer for
  2693  // builds on processors without floating point support.
  2694  
  2695  //******* Begin file sqlite3rtree.h ********
  2696  // 2010 August 30
  2697  //
  2698  // The author disclaims copyright to this source code.  In place of
  2699  // a legal notice, here is a blessing:
  2700  //
  2701  //    May you do good and not evil.
  2702  //    May you find forgiveness for yourself and forgive others.
  2703  //    May you share freely, never taking more than you give.
  2704  //
  2705  //
  2706  
  2707  type sqlite3_rtree_geometry1 = struct {
  2708  	pContext uintptr
  2709  	nParam   int32
  2710  	aParam   uintptr
  2711  	pUser    uintptr
  2712  	xDelUser uintptr
  2713  } /* sqlite3.h:9839:9 */
  2714  
  2715  // CAPI3REF: Flags for sqlite3_deserialize()
  2716  //
  2717  // The following are allowed values for 6th argument (the F argument) to
  2718  // the [sqlite3_deserialize(D,S,P,N,M,F)] interface.
  2719  //
  2720  // The SQLITE_DESERIALIZE_FREEONCLOSE means that the database serialization
  2721  // in the P argument is held in memory obtained from [sqlite3_malloc64()]
  2722  // and that SQLite should take ownership of this memory and automatically
  2723  // free it when it has finished using it.  Without this flag, the caller
  2724  // is responsible for freeing any dynamically allocated memory.
  2725  //
  2726  // The SQLITE_DESERIALIZE_RESIZEABLE flag means that SQLite is allowed to
  2727  // grow the size of the database using calls to [sqlite3_realloc64()].  This
  2728  // flag should only be used if SQLITE_DESERIALIZE_FREEONCLOSE is also used.
  2729  // Without this flag, the deserialized database cannot increase in size beyond
  2730  // the number of bytes specified by the M parameter.
  2731  //
  2732  // The SQLITE_DESERIALIZE_READONLY flag means that the deserialized database
  2733  // should be treated as read-only.
  2734  
  2735  // Undo the hack that converts floating point types to integer for
  2736  // builds on processors without floating point support.
  2737  
  2738  //******* Begin file sqlite3rtree.h ********
  2739  // 2010 August 30
  2740  //
  2741  // The author disclaims copyright to this source code.  In place of
  2742  // a legal notice, here is a blessing:
  2743  //
  2744  //    May you do good and not evil.
  2745  //    May you find forgiveness for yourself and forgive others.
  2746  //    May you share freely, never taking more than you give.
  2747  //
  2748  //
  2749  
  2750  type sqlite3_rtree_geometry = sqlite3_rtree_geometry1 /* sqlite3.h:9839:39 */
  2751  type sqlite3_rtree_query_info1 = struct {
  2752  	pContext      uintptr
  2753  	nParam        int32
  2754  	aParam        uintptr
  2755  	pUser         uintptr
  2756  	xDelUser      uintptr
  2757  	aCoord        uintptr
  2758  	anQueue       uintptr
  2759  	nCoord        int32
  2760  	iLevel        int32
  2761  	mxLevel       int32
  2762  	iRowid        sqlite3_int64
  2763  	rParentScore  sqlite3_rtree_dbl
  2764  	eParentWithin int32
  2765  	eWithin       int32
  2766  	rScore        sqlite3_rtree_dbl
  2767  	apSqlParam    uintptr
  2768  	_             [4]byte
  2769  } /* sqlite3.h:9840:9 */
  2770  
  2771  type sqlite3_rtree_query_info = sqlite3_rtree_query_info1 /* sqlite3.h:9840:41 */
  2772  
  2773  // The double-precision datatype used by RTree depends on the
  2774  // SQLITE_RTREE_INT_ONLY compile-time option.
  2775  type sqlite3_rtree_dbl = float64 /* sqlite3.h:9848:18 */
  2776  
  2777  // Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin.
  2778  
  2779  //******* End of sqlite3rtree.h ********
  2780  //******* Begin file sqlite3session.h ********
  2781  
  2782  //******* End of sqlite3session.h ********
  2783  //******* Begin file fts5.h ********
  2784  // 2014 May 31
  2785  //
  2786  // The author disclaims copyright to this source code.  In place of
  2787  // a legal notice, here is a blessing:
  2788  //
  2789  //    May you do good and not evil.
  2790  //    May you find forgiveness for yourself and forgive others.
  2791  //    May you share freely, never taking more than you give.
  2792  //
  2793  //
  2794  //
  2795  // Interfaces to extend FTS5. Using the interfaces defined in this file,
  2796  // FTS5 may be extended with:
  2797  //
  2798  //     * custom tokenizers, and
  2799  //     * custom auxiliary functions.
  2800  
  2801  // ************************************************************************
  2802  //
  2803  // CUSTOM AUXILIARY FUNCTIONS
  2804  //
  2805  // Virtual table implementations may overload SQL functions by implementing
  2806  // the sqlite3_module.xFindFunction() method.
  2807  
  2808  type Fts5ExtensionApi1 = struct {
  2809  	iVersion           int32
  2810  	xUserData          uintptr
  2811  	xColumnCount       uintptr
  2812  	xRowCount          uintptr
  2813  	xColumnTotalSize   uintptr
  2814  	xTokenize          uintptr
  2815  	xPhraseCount       uintptr
  2816  	xPhraseSize        uintptr
  2817  	xInstCount         uintptr
  2818  	xInst              uintptr
  2819  	xRowid             uintptr
  2820  	xColumnText        uintptr
  2821  	xColumnSize        uintptr
  2822  	xQueryPhrase       uintptr
  2823  	xSetAuxdata        uintptr
  2824  	xGetAuxdata        uintptr
  2825  	xPhraseFirst       uintptr
  2826  	xPhraseNext        uintptr
  2827  	xPhraseFirstColumn uintptr
  2828  	xPhraseNextColumn  uintptr
  2829  } /* sqlite3.h:11634:9 */
  2830  
  2831  // Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin.
  2832  
  2833  //******* End of sqlite3rtree.h ********
  2834  //******* Begin file sqlite3session.h ********
  2835  
  2836  //******* End of sqlite3session.h ********
  2837  //******* Begin file fts5.h ********
  2838  // 2014 May 31
  2839  //
  2840  // The author disclaims copyright to this source code.  In place of
  2841  // a legal notice, here is a blessing:
  2842  //
  2843  //    May you do good and not evil.
  2844  //    May you find forgiveness for yourself and forgive others.
  2845  //    May you share freely, never taking more than you give.
  2846  //
  2847  //
  2848  //
  2849  // Interfaces to extend FTS5. Using the interfaces defined in this file,
  2850  // FTS5 may be extended with:
  2851  //
  2852  //     * custom tokenizers, and
  2853  //     * custom auxiliary functions.
  2854  
  2855  // ************************************************************************
  2856  //
  2857  // CUSTOM AUXILIARY FUNCTIONS
  2858  //
  2859  // Virtual table implementations may overload SQL functions by implementing
  2860  // the sqlite3_module.xFindFunction() method.
  2861  
  2862  type Fts5ExtensionApi = Fts5ExtensionApi1 /* sqlite3.h:11634:33 */
  2863  type Fts5PhraseIter1 = struct {
  2864  	a uintptr
  2865  	b uintptr
  2866  } /* sqlite3.h:11636:9 */
  2867  
  2868  type Fts5PhraseIter = Fts5PhraseIter1 /* sqlite3.h:11636:31 */
  2869  
  2870  type fts5_extension_function = uintptr /* sqlite3.h:11638:14 */
  2871  type fts5_tokenizer1 = struct {
  2872  	xCreate   uintptr
  2873  	xDelete   uintptr
  2874  	xTokenize uintptr
  2875  } /* sqlite3.h:12097:9 */
  2876  
  2877  type fts5_tokenizer = fts5_tokenizer1 /* sqlite3.h:12097:31 */
  2878  
  2879  // Flags that may be passed as the third argument to xTokenize()
  2880  
  2881  // Flags that may be passed by the tokenizer implementation back to FTS5
  2882  // as the third argument to the supplied xToken callback.
  2883  
  2884  //
  2885  // END OF CUSTOM TOKENIZERS
  2886  //
  2887  
  2888  // ************************************************************************
  2889  //
  2890  // FTS5 EXTENSION REGISTRATION API
  2891  type fts5_api1 = struct {
  2892  	iVersion         int32
  2893  	xCreateTokenizer uintptr
  2894  	xFindTokenizer   uintptr
  2895  	xCreateFunction  uintptr
  2896  } /* sqlite3.h:12133:9 */
  2897  
  2898  // Flags that may be passed as the third argument to xTokenize()
  2899  
  2900  // Flags that may be passed by the tokenizer implementation back to FTS5
  2901  // as the third argument to the supplied xToken callback.
  2902  
  2903  //
  2904  // END OF CUSTOM TOKENIZERS
  2905  //
  2906  
  2907  // ************************************************************************
  2908  //
  2909  // FTS5 EXTENSION REGISTRATION API
  2910  type fts5_api = fts5_api1 /* sqlite3.h:12133:25 */
  2911  
  2912  type ssize_t = int32 /* crtdefs.h:47:13 */
  2913  
  2914  type rsize_t = size_t /* crtdefs.h:52:16 */
  2915  
  2916  type intptr_t = int32 /* crtdefs.h:64:13 */
  2917  
  2918  type uintptr_t = uint32 /* crtdefs.h:77:22 */
  2919  
  2920  type wint_t = uint16   /* crtdefs.h:106:24 */
  2921  type wctype_t = uint16 /* crtdefs.h:107:24 */
  2922  
  2923  type errno_t = int32 /* crtdefs.h:113:13 */
  2924  
  2925  type time_t = int32 /* crtdefs.h:136:20 */
  2926  
  2927  type threadlocaleinfostruct = struct {
  2928  	refcount      int32
  2929  	lc_codepage   uint32
  2930  	lc_collate_cp uint32
  2931  	lc_handle     [6]uint32
  2932  	lc_id         [6]LC_ID
  2933  	lc_category   [6]struct {
  2934  		locale    uintptr
  2935  		wlocale   uintptr
  2936  		refcount  uintptr
  2937  		wrefcount uintptr
  2938  	}
  2939  	lc_clike            int32
  2940  	mb_cur_max          int32
  2941  	lconv_intl_refcount uintptr
  2942  	lconv_num_refcount  uintptr
  2943  	lconv_mon_refcount  uintptr
  2944  	lconv               uintptr
  2945  	ctype1_refcount     uintptr
  2946  	ctype1              uintptr
  2947  	pctype              uintptr
  2948  	pclmap              uintptr
  2949  	pcumap              uintptr
  2950  	lc_time_curr        uintptr
  2951  } /* crtdefs.h:422:1 */
  2952  
  2953  type pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
  2954  type pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
  2955  
  2956  type localeinfo_struct = struct {
  2957  	locinfo pthreadlocinfo
  2958  	mbcinfo pthreadmbcinfo
  2959  } /* crtdefs.h:428:9 */
  2960  
  2961  type _locale_tstruct = localeinfo_struct /* crtdefs.h:431:3 */
  2962  type _locale_t = uintptr                 /* crtdefs.h:431:19 */
  2963  
  2964  type tagLC_ID = struct {
  2965  	wLanguage uint16
  2966  	wCountry  uint16
  2967  	wCodePage uint16
  2968  } /* crtdefs.h:422:1 */
  2969  
  2970  type LC_ID = tagLC_ID  /* crtdefs.h:439:3 */
  2971  type LPLC_ID = uintptr /* crtdefs.h:439:9 */
  2972  
  2973  type threadlocinfo = threadlocaleinfostruct /* crtdefs.h:468:3 */
  2974  
  2975  // *
  2976  // This file has no copyright assigned and is placed in the Public Domain.
  2977  // This file is part of the mingw-w64 runtime package.
  2978  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  2979  
  2980  // Undefine __mingw_<printf> macros.
  2981  
  2982  type _iobuf = struct {
  2983  	_ptr      uintptr
  2984  	_cnt      int32
  2985  	_base     uintptr
  2986  	_flag     int32
  2987  	_file     int32
  2988  	_charbuf  int32
  2989  	_bufsiz   int32
  2990  	_tmpfname uintptr
  2991  } /* stdio.h:26:3 */
  2992  
  2993  type FILE = _iobuf /* stdio.h:36:25 */
  2994  
  2995  type _off_t = int32  /* _mingw_off_t.h:5:16 */
  2996  type off32_t = int32 /* _mingw_off_t.h:7:16 */
  2997  
  2998  type _off64_t = int64 /* _mingw_off_t.h:13:39 */
  2999  type off64_t = int64  /* _mingw_off_t.h:15:39 */
  3000  
  3001  type off_t = off64_t /* _mingw_off_t.h:24:17 */ // A pointer to an array of FILE
  3002  
  3003  type fpos_t = int64 /* stdio.h:104:37 */
  3004  
  3005  func vsnwprintf(tls *libc.TLS, s uintptr, n size_t, format uintptr, arg va_list) int32 { /* stdio.h:1213:15: */
  3006  	return libc.X_vsnwprintf(tls, s, n, format, arg)
  3007  
  3008  }
  3009  
  3010  // *
  3011  // This file has no copyright assigned and is placed in the Public Domain.
  3012  // This file is part of the mingw-w64 runtime package.
  3013  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3014  
  3015  // *
  3016  // This file has no copyright assigned and is placed in the Public Domain.
  3017  // This file is part of the mingw-w64 runtime package.
  3018  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3019  
  3020  func vswprintf(tls *libc.TLS, __stream uintptr, __count size_t, __format uintptr, __local_argv uintptr) int32 { /* swprintf.inl:27:5: */
  3021  	return vsnwprintf(tls, __stream, __count, __format, __local_argv)
  3022  }
  3023  
  3024  // *
  3025  // This file has no copyright assigned and is placed in the Public Domain.
  3026  // This file is part of the mingw-w64 runtime package.
  3027  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3028  
  3029  // Define __mingw_<printf> macros.
  3030  
  3031  // *
  3032  // This file has no copyright assigned and is placed in the Public Domain.
  3033  // This file is part of the mingw-w64 runtime package.
  3034  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3035  
  3036  // *
  3037  // This file has no copyright assigned and is placed in the Public Domain.
  3038  // This file is part of the mingw-w64 runtime package.
  3039  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3040  
  3041  // *
  3042  // sdkddkver.h: Version definitions for SDK and DDK. Originally
  3043  // from ReactOS PSDK/DDK, this file is in the public domain:
  3044  //
  3045  // This file has no copyright assigned and is placed in the Public Domain.
  3046  // This file is part of the mingw-w64 runtime package.
  3047  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3048  
  3049  // _WIN32_WINNT
  3050  
  3051  // _WIN32_IE
  3052  
  3053  // Mappings Between IE Version  and Windows Version
  3054  
  3055  // NTDDI_VERSION
  3056  
  3057  // Version Fields in NTDDI_VERSION
  3058  
  3059  // Macros to Extract Version Fields From NTDDI_VERSION
  3060  
  3061  // Macros to get the NTDDI for a given WIN32
  3062  
  3063  // Select Default WIN32_WINNT Value
  3064  
  3065  // Choose NTDDI Version
  3066  
  3067  // Choose WINVER Value
  3068  
  3069  // Choose IE Version
  3070  
  3071  // Make Sure NTDDI_VERSION and _WIN32_WINNT Match
  3072  
  3073  // Some kludge for Obj-C.
  3074  //    For Obj-C the 'interface' is a keyword, but interface is used
  3075  //    in midl-code too.  To resolve this conflict for at least the
  3076  //    main windows API header, we define it here temporary.
  3077  
  3078  // *
  3079  // This file has no copyright assigned and is placed in the Public Domain.
  3080  // This file is part of the mingw-w64 runtime package.
  3081  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3082  
  3083  // *
  3084  // This file has no copyright assigned and is placed in the Public Domain.
  3085  // This file is part of the mingw-w64 runtime package.
  3086  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3087  
  3088  type _EXCEPTION_POINTERS = struct {
  3089  	ExceptionRecord PEXCEPTION_RECORD
  3090  	ContextRecord   PCONTEXT
  3091  } /* excpt.h:17:3 */
  3092  
  3093  type _EXCEPTION_RECORD = struct {
  3094  	ExceptionCode        DWORD
  3095  	ExceptionFlags       DWORD
  3096  	ExceptionRecord      uintptr
  3097  	ExceptionAddress     PVOID
  3098  	NumberParameters     DWORD
  3099  	ExceptionInformation [15]ULONG_PTR
  3100  } /* excpt.h:17:3 */
  3101  
  3102  type _CONTEXT = struct {
  3103  	ContextFlags      DWORD
  3104  	Dr0               DWORD
  3105  	Dr1               DWORD
  3106  	Dr2               DWORD
  3107  	Dr3               DWORD
  3108  	Dr6               DWORD
  3109  	Dr7               DWORD
  3110  	FloatSave         FLOATING_SAVE_AREA
  3111  	SegGs             DWORD
  3112  	SegFs             DWORD
  3113  	SegEs             DWORD
  3114  	SegDs             DWORD
  3115  	Edi               DWORD
  3116  	Esi               DWORD
  3117  	Ebx               DWORD
  3118  	Edx               DWORD
  3119  	Ecx               DWORD
  3120  	Eax               DWORD
  3121  	Ebp               DWORD
  3122  	Eip               DWORD
  3123  	SegCs             DWORD
  3124  	EFlags            DWORD
  3125  	Esp               DWORD
  3126  	SegSs             DWORD
  3127  	ExtendedRegisters [512]BYTE
  3128  } /* excpt.h:17:3 */
  3129  
  3130  // CRT stuff
  3131  type _PHNDLR = uintptr /* excpt.h:66:16 */
  3132  
  3133  type _XCPT_ACTION = struct {
  3134  	XcptNum    uint32
  3135  	SigNum     int32
  3136  	XcptAction _PHNDLR
  3137  } /* excpt.h:68:3 */
  3138  
  3139  // The type of function that is expected as an exception handler to be
  3140  // installed with __try1.
  3141  type PEXCEPTION_HANDLER = uintptr /* excpt.h:87:33 */
  3142  
  3143  // Copyright (C) 1989, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  3144  //
  3145  // This file is part of GCC.
  3146  //
  3147  // GCC is free software; you can redistribute it and/or modify
  3148  // it under the terms of the GNU General Public License as published by
  3149  // the Free Software Foundation; either version 2, or (at your option)
  3150  // any later version.
  3151  //
  3152  // GCC is distributed in the hope that it will be useful,
  3153  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  3154  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3155  // GNU General Public License for more details.
  3156  //
  3157  // You should have received a copy of the GNU General Public License
  3158  // along with GCC; see the file COPYING.  If not, write to
  3159  // the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  3160  // Boston, MA 02110-1301, USA.
  3161  
  3162  // As a special exception, if you include this header file into source
  3163  //    files compiled by GCC, this header file does not by itself cause
  3164  //    the resulting executable to be covered by the GNU General Public
  3165  //    License.  This exception does not however invalidate any other
  3166  //    reasons why the executable file might be covered by the GNU General
  3167  //    Public License.
  3168  
  3169  // ISO C Standard:  7.15  Variable arguments  <stdarg.h>
  3170  
  3171  // include mingw stuff
  3172  // *
  3173  // This file has no copyright assigned and is placed in the Public Domain.
  3174  // This file is part of the mingw-w64 runtime package.
  3175  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3176  
  3177  // Copyright (C) 1989-2018 Free Software Foundation, Inc.
  3178  //
  3179  // This file is part of GCC.
  3180  //
  3181  // GCC is free software; you can redistribute it and/or modify
  3182  // it under the terms of the GNU General Public License as published by
  3183  // the Free Software Foundation; either version 3, or (at your option)
  3184  // any later version.
  3185  //
  3186  // GCC is distributed in the hope that it will be useful,
  3187  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  3188  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3189  // GNU General Public License for more details.
  3190  //
  3191  // Under Section 7 of GPL version 3, you are granted additional
  3192  // permissions described in the GCC Runtime Library Exception, version
  3193  // 3.1, as published by the Free Software Foundation.
  3194  //
  3195  // You should have received a copy of the GNU General Public License and
  3196  // a copy of the GCC Runtime Library Exception along with this program;
  3197  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  3198  // <http://www.gnu.org/licenses/>.
  3199  
  3200  // ISO C Standard:  7.15  Variable arguments  <stdarg.h>
  3201  
  3202  // *
  3203  // This file is part of the mingw-w64 runtime package.
  3204  // No warranty is given; refer to the file DISCLAIMER within this package.
  3205  
  3206  // *
  3207  // This file has no copyright assigned and is placed in the Public Domain.
  3208  // This file is part of the mingw-w64 runtime package.
  3209  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3210  
  3211  // *
  3212  // This file is part of the mingw-w64 runtime package.
  3213  // No warranty is given; refer to the file DISCLAIMER within this package.
  3214  
  3215  // WINAPI_FAMILY can be either desktop + App, or App.
  3216  
  3217  // *
  3218  // This file has no copyright assigned and is placed in the Public Domain.
  3219  // This file is part of the mingw-w64 runtime package.
  3220  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3221  
  3222  // *
  3223  // This file has no copyright assigned and is placed in the Public Domain.
  3224  // This file is part of the mingw-w64 runtime package.
  3225  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3226  
  3227  // Pointer parameters
  3228  
  3229  // Optional pointer parameters
  3230  
  3231  // Output pointer parameters
  3232  
  3233  // Output reference parameters
  3234  
  3235  // Return values
  3236  
  3237  // Other common annotations
  3238  
  3239  // Function annotations
  3240  
  3241  // Success/failure annotations
  3242  
  3243  // Buffer properties
  3244  
  3245  // Field properties
  3246  
  3247  // Structural annotations
  3248  
  3249  // printf/scanf annotations
  3250  
  3251  // Analysis
  3252  
  3253  // FIXME: __in macro conflicts with argument names in libstdc++. For this reason,
  3254  // we disable it for C++. This should be fixed in libstdc++ so we can uncomment
  3255  // it in fixed version here.
  3256  
  3257  // Renamed __null to SAL__null for avoiding private keyword conflicts between
  3258  //    gcc and MS world.
  3259  
  3260  // PROJECT:         ReactOS DDK
  3261  // COPYRIGHT:       This file is in the Public Domain.
  3262  // FILE:            driverspecs.h
  3263  // ABSTRACT:        This header stubs out Driver Verifier annotations to
  3264  //                  allow drivers using them to compile with our header set.
  3265  
  3266  // Stubs
  3267  
  3268  type ULONG = uint32    /* minwindef.h:24:29 */
  3269  type PULONG = uintptr  /* minwindef.h:25:17 */
  3270  type USHORT = uint16   /* minwindef.h:26:26 */
  3271  type PUSHORT = uintptr /* minwindef.h:27:18 */
  3272  type UCHAR = uint8     /* minwindef.h:28:25 */
  3273  type PUCHAR = uintptr  /* minwindef.h:29:17 */
  3274  type PSZ = uintptr     /* minwindef.h:30:16 */
  3275  
  3276  type WINBOOL = int32  /* minwindef.h:127:13 */
  3277  type BOOL = int32     /* minwindef.h:131:15 */
  3278  type PBOOL = uintptr  /* minwindef.h:134:14 */
  3279  type LPBOOL = uintptr /* minwindef.h:135:14 */
  3280  
  3281  type BYTE = uint8      /* minwindef.h:139:25 */
  3282  type WORD = uint16     /* minwindef.h:140:26 */
  3283  type DWORD = uint32    /* minwindef.h:141:29 */
  3284  type FLOAT = float32   /* minwindef.h:142:17 */
  3285  type PFLOAT = uintptr  /* minwindef.h:143:17 */
  3286  type PBYTE = uintptr   /* minwindef.h:144:16 */
  3287  type LPBYTE = uintptr  /* minwindef.h:145:16 */
  3288  type PINT = uintptr    /* minwindef.h:146:15 */
  3289  type LPINT = uintptr   /* minwindef.h:147:15 */
  3290  type PWORD = uintptr   /* minwindef.h:148:16 */
  3291  type LPWORD = uintptr  /* minwindef.h:149:16 */
  3292  type LPLONG = uintptr  /* minwindef.h:150:20 */
  3293  type PDWORD = uintptr  /* minwindef.h:151:17 */
  3294  type LPDWORD = uintptr /* minwindef.h:152:17 */
  3295  type LPVOID = uintptr  /* minwindef.h:153:16 */
  3296  type LPCVOID = uintptr /* minwindef.h:156:22 */
  3297  type INT = int32       /* minwindef.h:158:15 */
  3298  type UINT = uint32     /* minwindef.h:159:24 */
  3299  type PUINT = uintptr   /* minwindef.h:160:24 */
  3300  
  3301  // *
  3302  // sdkddkver.h: Version definitions for SDK and DDK. Originally
  3303  // from ReactOS PSDK/DDK, this file is in the public domain:
  3304  //
  3305  // This file has no copyright assigned and is placed in the Public Domain.
  3306  // This file is part of the mingw-w64 runtime package.
  3307  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3308  
  3309  // *
  3310  // This file is part of the mingw-w64 runtime package.
  3311  // No warranty is given; refer to the file DISCLAIMER within this package.
  3312  // *
  3313  // This file has no copyright assigned and is placed in the Public Domain.
  3314  // This file is part of the mingw-w64 runtime package.
  3315  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3316  
  3317  type POINTER_64_INT = uint32 /* basetsd.h:13:23 */
  3318  
  3319  type INT8 = int8        /* basetsd.h:29:23 */
  3320  type PINT8 = uintptr    /* basetsd.h:29:28 */
  3321  type INT16 = int16      /* basetsd.h:30:24 */
  3322  type PINT16 = uintptr   /* basetsd.h:30:30 */
  3323  type INT32 = int32      /* basetsd.h:31:22 */
  3324  type PINT32 = uintptr   /* basetsd.h:31:28 */
  3325  type INT64 = int64      /* basetsd.h:32:44 */
  3326  type PINT64 = uintptr   /* basetsd.h:32:50 */
  3327  type UINT8 = uint8      /* basetsd.h:33:25 */
  3328  type PUINT8 = uintptr   /* basetsd.h:33:31 */
  3329  type UINT16 = uint16    /* basetsd.h:34:26 */
  3330  type PUINT16 = uintptr  /* basetsd.h:34:33 */
  3331  type UINT32 = uint32    /* basetsd.h:35:24 */
  3332  type PUINT32 = uintptr  /* basetsd.h:35:31 */
  3333  type UINT64 = uint64    /* basetsd.h:36:46 */
  3334  type PUINT64 = uintptr  /* basetsd.h:36:53 */
  3335  type LONG32 = int32     /* basetsd.h:37:22 */
  3336  type PLONG32 = uintptr  /* basetsd.h:37:29 */
  3337  type ULONG32 = uint32   /* basetsd.h:38:24 */
  3338  type PULONG32 = uintptr /* basetsd.h:38:32 */
  3339  type DWORD32 = uint32   /* basetsd.h:39:24 */
  3340  type PDWORD32 = uintptr /* basetsd.h:39:32 */
  3341  
  3342  type INT_PTR = int32      /* basetsd.h:52:15 */
  3343  type PINT_PTR = uintptr   /* basetsd.h:52:23 */
  3344  type UINT_PTR = uint32    /* basetsd.h:53:24 */
  3345  type PUINT_PTR = uintptr  /* basetsd.h:53:33 */
  3346  type LONG_PTR = int32     /* basetsd.h:54:16 */
  3347  type PLONG_PTR = uintptr  /* basetsd.h:54:25 */
  3348  type ULONG_PTR = uint32   /* basetsd.h:55:25 */
  3349  type PULONG_PTR = uintptr /* basetsd.h:55:35 */
  3350  
  3351  type UHALF_PTR = uint16   /* basetsd.h:97:26 */
  3352  type PUHALF_PTR = uintptr /* basetsd.h:97:36 */
  3353  type HALF_PTR = int16     /* basetsd.h:98:17 */
  3354  type PHALF_PTR = uintptr  /* basetsd.h:98:26 */
  3355  type SHANDLE_PTR = int32  /* basetsd.h:99:20 */
  3356  type HANDLE_PTR = uint32  /* basetsd.h:100:29 */
  3357  
  3358  type SIZE_T = ULONG_PTR /* basetsd.h:147:39 */
  3359  type PSIZE_T = uintptr  /* basetsd.h:147:46 */
  3360  type SSIZE_T = LONG_PTR /* basetsd.h:148:38 */
  3361  type PSSIZE_T = uintptr /* basetsd.h:148:46 */
  3362  
  3363  type DWORD_PTR = ULONG_PTR /* basetsd.h:191:39 */
  3364  type PDWORD_PTR = uintptr  /* basetsd.h:191:49 */
  3365  type LONG64 = int64        /* basetsd.h:192:37 */
  3366  type PLONG64 = uintptr     /* basetsd.h:192:44 */
  3367  type ULONG64 = uint64      /* basetsd.h:193:46 */
  3368  type PULONG64 = uintptr    /* basetsd.h:193:54 */
  3369  type DWORD64 = uint64      /* basetsd.h:194:46 */
  3370  type PDWORD64 = uintptr    /* basetsd.h:194:54 */
  3371  type KAFFINITY = ULONG_PTR /* basetsd.h:195:39 */
  3372  type PKAFFINITY = uintptr  /* basetsd.h:196:39 */
  3373  
  3374  type PVOID = uintptr   /* winnt.h:257:16 */
  3375  type PVOID64 = uintptr /* winnt.h:258:16 */
  3376  
  3377  type CHAR = int8   /* winnt.h:285:16 */
  3378  type SHORT = int16 /* winnt.h:286:17 */
  3379  type LONG = int32  /* winnt.h:287:20 */
  3380  
  3381  type WCHAR = wchar_t     /* winnt.h:295:19 */
  3382  type PWCHAR = uintptr    /* winnt.h:297:17 */
  3383  type LPWCH = uintptr     /* winnt.h:297:25 */
  3384  type PWCH = uintptr      /* winnt.h:297:32 */
  3385  type LPCWCH = uintptr    /* winnt.h:298:23 */
  3386  type PCWCH = uintptr     /* winnt.h:298:31 */
  3387  type NWPSTR = uintptr    /* winnt.h:299:17 */
  3388  type LPWSTR = uintptr    /* winnt.h:299:25 */
  3389  type PWSTR = uintptr     /* winnt.h:299:33 */
  3390  type PZPWSTR = uintptr   /* winnt.h:300:17 */
  3391  type PCZPWSTR = uintptr  /* winnt.h:301:23 */
  3392  type LPUWSTR = uintptr   /* winnt.h:302:27 */
  3393  type PUWSTR = uintptr    /* winnt.h:302:36 */
  3394  type LPCWSTR = uintptr   /* winnt.h:303:23 */
  3395  type PCWSTR = uintptr    /* winnt.h:303:32 */
  3396  type PZPCWSTR = uintptr  /* winnt.h:304:18 */
  3397  type LPCUWSTR = uintptr  /* winnt.h:305:33 */
  3398  type PCUWSTR = uintptr   /* winnt.h:305:43 */
  3399  type PZZWSTR = uintptr   /* winnt.h:306:17 */
  3400  type PCZZWSTR = uintptr  /* winnt.h:307:23 */
  3401  type PUZZWSTR = uintptr  /* winnt.h:308:27 */
  3402  type PCUZZWSTR = uintptr /* winnt.h:309:33 */
  3403  type PNZWCH = uintptr    /* winnt.h:310:17 */
  3404  type PCNZWCH = uintptr   /* winnt.h:311:23 */
  3405  type PUNZWCH = uintptr   /* winnt.h:312:27 */
  3406  type PCUNZWCH = uintptr  /* winnt.h:313:33 */
  3407  
  3408  type PCHAR = uintptr   /* winnt.h:334:16 */
  3409  type LPCH = uintptr    /* winnt.h:334:23 */
  3410  type PCH = uintptr     /* winnt.h:334:29 */
  3411  type LPCCH = uintptr   /* winnt.h:335:22 */
  3412  type PCCH = uintptr    /* winnt.h:335:29 */
  3413  type NPSTR = uintptr   /* winnt.h:336:16 */
  3414  type LPSTR = uintptr   /* winnt.h:336:23 */
  3415  type PSTR = uintptr    /* winnt.h:336:30 */
  3416  type PZPSTR = uintptr  /* winnt.h:337:16 */
  3417  type PCZPSTR = uintptr /* winnt.h:338:22 */
  3418  type LPCSTR = uintptr  /* winnt.h:339:22 */
  3419  type PCSTR = uintptr   /* winnt.h:339:30 */
  3420  type PZPCSTR = uintptr /* winnt.h:340:17 */
  3421  type PZZSTR = uintptr  /* winnt.h:341:16 */
  3422  type PCZZSTR = uintptr /* winnt.h:342:22 */
  3423  type PNZCH = uintptr   /* winnt.h:343:16 */
  3424  type PCNZCH = uintptr  /* winnt.h:344:22 */
  3425  
  3426  type TCHAR = int8     /* winnt.h:373:16 */
  3427  type PTCHAR = uintptr /* winnt.h:373:23 */
  3428  type TBYTE = uint8    /* winnt.h:374:25 */
  3429  type PTBYTE = uintptr /* winnt.h:374:32 */
  3430  
  3431  type LPTCH = LPSTR       /* winnt.h:377:17 */
  3432  type PTCH = LPSTR        /* winnt.h:377:23 */
  3433  type LPCTCH = LPCCH      /* winnt.h:378:17 */
  3434  type PCTCH = LPCCH       /* winnt.h:378:24 */
  3435  type PTSTR = LPSTR       /* winnt.h:379:17 */
  3436  type LPTSTR = LPSTR      /* winnt.h:379:23 */
  3437  type PUTSTR = LPSTR      /* winnt.h:379:30 */
  3438  type LPUTSTR = LPSTR     /* winnt.h:379:37 */
  3439  type PCTSTR = LPCSTR     /* winnt.h:380:18 */
  3440  type LPCTSTR = LPCSTR    /* winnt.h:380:25 */
  3441  type PCUTSTR = LPCSTR    /* winnt.h:380:33 */
  3442  type LPCUTSTR = LPCSTR   /* winnt.h:380:41 */
  3443  type PZZTSTR = PZZSTR    /* winnt.h:381:18 */
  3444  type PUZZTSTR = PZZSTR   /* winnt.h:381:27 */
  3445  type PCZZTSTR = PCZZSTR  /* winnt.h:382:19 */
  3446  type PCUZZTSTR = PCZZSTR /* winnt.h:382:29 */
  3447  type PZPTSTR = PZPSTR    /* winnt.h:383:18 */
  3448  type PNZTCH = PNZCH      /* winnt.h:384:17 */
  3449  type PUNZTCH = PNZCH     /* winnt.h:384:25 */
  3450  type PCNZTCH = PCNZCH    /* winnt.h:385:18 */
  3451  type PCUNZTCH = PCNZCH   /* winnt.h:385:27 */
  3452  
  3453  type PSHORT = uintptr /* winnt.h:392:17 */
  3454  type PLONG = uintptr  /* winnt.h:393:16 */
  3455  
  3456  type _GROUP_AFFINITY = struct {
  3457  	Mask     KAFFINITY
  3458  	Group    WORD
  3459  	Reserved [3]WORD
  3460  } /* winnt.h:397:9 */
  3461  
  3462  type GROUP_AFFINITY = _GROUP_AFFINITY /* winnt.h:401:3 */
  3463  type PGROUP_AFFINITY = uintptr        /* winnt.h:401:19 */
  3464  
  3465  type HANDLE = uintptr /* winnt.h:405:16 */
  3466  
  3467  type PHANDLE = uintptr /* winnt.h:412:18 */
  3468  type FCHAR = BYTE      /* winnt.h:413:16 */
  3469  type FSHORT = WORD     /* winnt.h:414:16 */
  3470  type FLONG = DWORD     /* winnt.h:415:17 */
  3471  
  3472  type HRESULT = LONG /* winnt.h:419:16 */
  3473  
  3474  // Keep in sync with basetyps.h header.
  3475  
  3476  type CCHAR = int8   /* winnt.h:453:16 */
  3477  type LCID = DWORD   /* winnt.h:456:15 */
  3478  type PLCID = PDWORD /* winnt.h:458:18 */
  3479  type LANGID = WORD  /* winnt.h:461:16 */
  3480  
  3481  type COMPARTMENT_ID = uint32   /* winnt.h:470:3 */
  3482  type PCOMPARTMENT_ID = uintptr /* winnt.h:470:18 */
  3483  
  3484  type _FLOAT128 = struct {
  3485  	LowPart  int64
  3486  	HighPart int64
  3487  } /* winnt.h:482:13 */
  3488  
  3489  type FLOAT128 = _FLOAT128 /* winnt.h:485:5 */
  3490  
  3491  type PFLOAT128 = uintptr /* winnt.h:487:20 */
  3492  
  3493  type LONGLONG = int64   /* winnt.h:490:37 */
  3494  type ULONGLONG = uint64 /* winnt.h:491:46 */
  3495  
  3496  type PLONGLONG = uintptr  /* winnt.h:495:20 */
  3497  type PULONGLONG = uintptr /* winnt.h:496:21 */
  3498  type USN = LONGLONG       /* winnt.h:497:20 */
  3499  
  3500  type _LARGE_INTEGER = struct {
  3501  	_ [0]uint64
  3502  	s struct {
  3503  		LowPart  DWORD
  3504  		HighPart LONG
  3505  	}
  3506  } /* winnt.h:505:11 */
  3507  
  3508  type LARGE_INTEGER = _LARGE_INTEGER /* winnt.h:516:5 */
  3509  
  3510  type PLARGE_INTEGER = uintptr /* winnt.h:518:25 */
  3511  
  3512  type _ULARGE_INTEGER = struct {
  3513  	_ [0]uint64
  3514  	s struct {
  3515  		LowPart  DWORD
  3516  		HighPart DWORD
  3517  	}
  3518  } /* winnt.h:523:11 */
  3519  
  3520  type ULARGE_INTEGER = _ULARGE_INTEGER /* winnt.h:534:5 */
  3521  
  3522  type PULARGE_INTEGER = uintptr /* winnt.h:536:26 */
  3523  
  3524  type _LUID = struct {
  3525  	LowPart  DWORD
  3526  	HighPart LONG
  3527  } /* winnt.h:538:11 */
  3528  
  3529  type LUID = _LUID    /* winnt.h:541:5 */
  3530  type PLUID = uintptr /* winnt.h:541:10 */
  3531  
  3532  type DWORDLONG = ULONGLONG /* winnt.h:546:21 */
  3533  type PDWORDLONG = uintptr  /* winnt.h:547:21 */
  3534  
  3535  type BOOLEAN = BYTE     /* winnt.h:605:16 */
  3536  type PBOOLEAN = uintptr /* winnt.h:607:19 */
  3537  
  3538  type _LIST_ENTRY = struct {
  3539  	Flink uintptr
  3540  	Blink uintptr
  3541  } /* winnt.h:612:11 */
  3542  
  3543  type LIST_ENTRY = _LIST_ENTRY /* winnt.h:615:5 */
  3544  type PLIST_ENTRY = uintptr    /* winnt.h:615:16 */
  3545  type PRLIST_ENTRY = uintptr   /* winnt.h:615:29 */
  3546  
  3547  type _SINGLE_LIST_ENTRY = struct{ Next uintptr } /* winnt.h:617:11 */
  3548  
  3549  type SINGLE_LIST_ENTRY = _SINGLE_LIST_ENTRY /* winnt.h:619:5 */
  3550  type PSINGLE_LIST_ENTRY = uintptr           /* winnt.h:619:23 */
  3551  
  3552  type LIST_ENTRY321 = struct {
  3553  	Flink DWORD
  3554  	Blink DWORD
  3555  } /* winnt.h:621:11 */
  3556  
  3557  type LIST_ENTRY32 = LIST_ENTRY321 /* winnt.h:624:5 */
  3558  type PLIST_ENTRY32 = uintptr      /* winnt.h:625:24 */
  3559  
  3560  type LIST_ENTRY641 = struct {
  3561  	Flink ULONGLONG
  3562  	Blink ULONGLONG
  3563  } /* winnt.h:627:11 */
  3564  
  3565  type LIST_ENTRY64 = LIST_ENTRY641 /* winnt.h:630:5 */
  3566  type PLIST_ENTRY64 = uintptr      /* winnt.h:631:24 */
  3567  
  3568  // *
  3569  // This file is part of the mingw-w64 runtime package.
  3570  // No warranty is given; refer to the file DISCLAIMER within this package.
  3571  
  3572  // Make sure __LONG32 is defined.
  3573  // *
  3574  // This file has no copyright assigned and is placed in the Public Domain.
  3575  // This file is part of the mingw-w64 runtime package.
  3576  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3577  
  3578  type _GUID = struct {
  3579  	Data1 uint32
  3580  	Data2 uint16
  3581  	Data3 uint16
  3582  	Data4 [8]uint8
  3583  } /* guiddef.h:19:9 */
  3584  
  3585  // *
  3586  // This file is part of the mingw-w64 runtime package.
  3587  // No warranty is given; refer to the file DISCLAIMER within this package.
  3588  
  3589  // Make sure __LONG32 is defined.
  3590  // *
  3591  // This file has no copyright assigned and is placed in the Public Domain.
  3592  // This file is part of the mingw-w64 runtime package.
  3593  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3594  
  3595  type GUID = _GUID /* guiddef.h:24:3 */
  3596  
  3597  // __declspec(selectany) must be applied to initialized objects on GCC 5 hence must not be used here.
  3598  
  3599  type LPGUID = uintptr /* guiddef.h:77:14 */
  3600  
  3601  type LPCGUID = uintptr /* guiddef.h:82:20 */
  3602  
  3603  type IID = GUID      /* guiddef.h:88:14 */
  3604  type LPIID = uintptr /* guiddef.h:89:13 */
  3605  
  3606  type CLSID = GUID /* guiddef.h:96:14 */
  3607  
  3608  type LPCLSID = uintptr /* guiddef.h:99:15 */
  3609  
  3610  type FMTID = GUID      /* guiddef.h:103:14 */
  3611  type LPFMTID = uintptr /* guiddef.h:104:15 */
  3612  
  3613  type _OBJECTID = struct {
  3614  	Lineage    GUID
  3615  	Uniquifier DWORD
  3616  } /* winnt.h:639:11 */
  3617  
  3618  type OBJECTID = _OBJECTID         /* winnt.h:642:5 */
  3619  type PEXCEPTION_ROUTINE = uintptr /* winnt.h:709:31 */
  3620  
  3621  // ??? #define SUBLANG_ROMANIAN_MOLDOVA                  0x01 ???
  3622  
  3623  type KSPIN_LOCK = ULONG_PTR /* winnt.h:1383:21 */
  3624  type PKSPIN_LOCK = uintptr  /* winnt.h:1384:22 */
  3625  
  3626  type _M128A = struct {
  3627  	Low  ULONGLONG
  3628  	High LONGLONG
  3629  } /* winnt.h:1386:13 */
  3630  
  3631  type M128A = _M128A   /* winnt.h:1389:7 */
  3632  type PM128A = uintptr /* winnt.h:1389:13 */
  3633  
  3634  type _XSAVE_FORMAT = struct {
  3635  	ControlWord    WORD
  3636  	StatusWord     WORD
  3637  	TagWord        BYTE
  3638  	Reserved1      BYTE
  3639  	ErrorOpcode    WORD
  3640  	ErrorOffset    DWORD
  3641  	ErrorSelector  WORD
  3642  	Reserved2      WORD
  3643  	DataOffset     DWORD
  3644  	DataSelector   WORD
  3645  	Reserved3      WORD
  3646  	MxCsr          DWORD
  3647  	MxCsr_Mask     DWORD
  3648  	FloatRegisters [8]M128A
  3649  	XmmRegisters   [8]M128A
  3650  	Reserved4      [220]BYTE
  3651  	Cr0NpxState    DWORD
  3652  } /* winnt.h:1391:13 */
  3653  
  3654  type XSAVE_FORMAT = _XSAVE_FORMAT /* winnt.h:1414:7 */
  3655  type PXSAVE_FORMAT = uintptr      /* winnt.h:1414:20 */
  3656  
  3657  type _XSAVE_AREA_HEADER = struct {
  3658  	Mask     DWORD64
  3659  	Reserved [7]DWORD64
  3660  } /* winnt.h:1416:13 */
  3661  
  3662  type XSAVE_AREA_HEADER = _XSAVE_AREA_HEADER /* winnt.h:1419:7 */
  3663  type PXSAVE_AREA_HEADER = uintptr           /* winnt.h:1419:25 */
  3664  
  3665  type _XSAVE_AREA = struct {
  3666  	LegacyState XSAVE_FORMAT
  3667  	Header      XSAVE_AREA_HEADER
  3668  } /* winnt.h:1421:13 */
  3669  
  3670  type XSAVE_AREA = _XSAVE_AREA /* winnt.h:1424:7 */
  3671  type PXSAVE_AREA = uintptr    /* winnt.h:1424:18 */
  3672  
  3673  type _XSTATE_CONTEXT = struct {
  3674  	Mask      DWORD64
  3675  	Length    DWORD
  3676  	Reserved1 DWORD
  3677  	Area      PXSAVE_AREA
  3678  	Reserved2 DWORD
  3679  	Buffer    PVOID
  3680  	Reserved3 DWORD
  3681  } /* winnt.h:1426:13 */
  3682  
  3683  type XSTATE_CONTEXT = _XSTATE_CONTEXT /* winnt.h:1438:7 */
  3684  type PXSTATE_CONTEXT = uintptr        /* winnt.h:1438:22 */
  3685  
  3686  type _SCOPE_TABLE_AMD64 = struct {
  3687  	Count       DWORD
  3688  	ScopeRecord [1]struct {
  3689  		BeginAddress   DWORD
  3690  		EndAddress     DWORD
  3691  		HandlerAddress DWORD
  3692  		JumpTarget     DWORD
  3693  	}
  3694  } /* winnt.h:1440:13 */
  3695  
  3696  type SCOPE_TABLE_AMD64 = _SCOPE_TABLE_AMD64 /* winnt.h:1448:7 */
  3697  type PSCOPE_TABLE_AMD64 = uintptr           /* winnt.h:1448:25 */
  3698  
  3699  type _FLOATING_SAVE_AREA = struct {
  3700  	ControlWord   DWORD
  3701  	StatusWord    DWORD
  3702  	TagWord       DWORD
  3703  	ErrorOffset   DWORD
  3704  	ErrorSelector DWORD
  3705  	DataOffset    DWORD
  3706  	DataSelector  DWORD
  3707  	RegisterArea  [80]BYTE
  3708  	Cr0NpxState   DWORD
  3709  } /* excpt.h:17:3 */
  3710  
  3711  type FLOATING_SAVE_AREA = _FLOATING_SAVE_AREA /* winnt.h:2371:7 */
  3712  
  3713  type PFLOATING_SAVE_AREA = uintptr /* winnt.h:2373:32 */
  3714  
  3715  type CONTEXT = _CONTEXT /* winnt.h:2402:7 */
  3716  
  3717  type PCONTEXT = uintptr /* winnt.h:2404:21 */
  3718  
  3719  // LONG WINAPI InterlockedIncrement(LONG volatile *); moved to psdk_inc/intrin-impl.h
  3720  // LONG WINAPI InterlockedDecrement(LONG volatile *); moved to psdk_inc/intrin-impl.h
  3721  // LONG WINAPI InterlockedExchange(LONG volatile *, LONG); moved to psdk_inc/intrin-impl.h
  3722  
  3723  type _LDT_ENTRY = struct {
  3724  	LimitLow WORD
  3725  	BaseLow  WORD
  3726  	HighWord struct {
  3727  		_     [0]uint32
  3728  		Bytes struct {
  3729  			BaseMid BYTE
  3730  			Flags1  BYTE
  3731  			Flags2  BYTE
  3732  			BaseHi  BYTE
  3733  		}
  3734  	}
  3735  } /* winnt.h:2415:13 */
  3736  
  3737  // LONG WINAPI InterlockedIncrement(LONG volatile *); moved to psdk_inc/intrin-impl.h
  3738  // LONG WINAPI InterlockedDecrement(LONG volatile *); moved to psdk_inc/intrin-impl.h
  3739  // LONG WINAPI InterlockedExchange(LONG volatile *, LONG); moved to psdk_inc/intrin-impl.h
  3740  
  3741  type LDT_ENTRY = _LDT_ENTRY /* winnt.h:2438:7 */
  3742  type PLDT_ENTRY = uintptr   /* winnt.h:2438:17 */
  3743  
  3744  // http://www.nynaeve.net/?p=99
  3745  
  3746  type EXCEPTION_RECORD = _EXCEPTION_RECORD /* winnt.h:2783:7 */
  3747  
  3748  type PEXCEPTION_RECORD = uintptr /* winnt.h:2785:30 */
  3749  
  3750  type _EXCEPTION_RECORD32 = struct {
  3751  	ExceptionCode        DWORD
  3752  	ExceptionFlags       DWORD
  3753  	ExceptionRecord      DWORD
  3754  	ExceptionAddress     DWORD
  3755  	NumberParameters     DWORD
  3756  	ExceptionInformation [15]DWORD
  3757  } /* winnt.h:2787:13 */
  3758  
  3759  type EXCEPTION_RECORD32 = _EXCEPTION_RECORD32 /* winnt.h:2794:7 */
  3760  type PEXCEPTION_RECORD32 = uintptr            /* winnt.h:2794:26 */
  3761  
  3762  type _EXCEPTION_RECORD64 = struct {
  3763  	ExceptionCode        DWORD
  3764  	ExceptionFlags       DWORD
  3765  	ExceptionRecord      DWORD64
  3766  	ExceptionAddress     DWORD64
  3767  	NumberParameters     DWORD
  3768  	__unusedAlignment    DWORD
  3769  	ExceptionInformation [15]DWORD64
  3770  } /* winnt.h:2796:13 */
  3771  
  3772  type EXCEPTION_RECORD64 = _EXCEPTION_RECORD64 /* winnt.h:2804:7 */
  3773  type PEXCEPTION_RECORD64 = uintptr            /* winnt.h:2804:26 */
  3774  
  3775  type EXCEPTION_POINTERS = _EXCEPTION_POINTERS /* winnt.h:2809:7 */
  3776  type PEXCEPTION_POINTERS = uintptr            /* winnt.h:2809:26 */
  3777  
  3778  type PACCESS_TOKEN = PVOID        /* winnt.h:2871:19 */
  3779  type PSECURITY_DESCRIPTOR = PVOID /* winnt.h:2872:19 */
  3780  type PSID = PVOID                 /* winnt.h:2873:19 */
  3781  type PCLAIMS_BLOB = PVOID         /* winnt.h:2874:19 */
  3782  type ACCESS_MASK = DWORD          /* winnt.h:2875:19 */
  3783  type PACCESS_MASK = uintptr       /* winnt.h:2876:25 */
  3784  
  3785  type _GENERIC_MAPPING = struct {
  3786  	GenericRead    ACCESS_MASK
  3787  	GenericWrite   ACCESS_MASK
  3788  	GenericExecute ACCESS_MASK
  3789  	GenericAll     ACCESS_MASK
  3790  } /* winnt.h:2902:13 */
  3791  
  3792  type GENERIC_MAPPING = _GENERIC_MAPPING /* winnt.h:2907:7 */
  3793  type PGENERIC_MAPPING = uintptr         /* winnt.h:2908:29 */
  3794  
  3795  // *
  3796  // This file has no copyright assigned and is placed in the Public Domain.
  3797  // This file is part of the mingw-w64 runtime package.
  3798  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3799  type _LUID_AND_ATTRIBUTES = struct {
  3800  	Luid       LUID
  3801  	Attributes DWORD
  3802  } /* winnt.h:2911:13 */
  3803  
  3804  // *
  3805  // This file has no copyright assigned and is placed in the Public Domain.
  3806  // This file is part of the mingw-w64 runtime package.
  3807  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3808  type LUID_AND_ATTRIBUTES = _LUID_AND_ATTRIBUTES         /* winnt.h:2914:7 */
  3809  type PLUID_AND_ATTRIBUTES = uintptr                     /* winnt.h:2914:27 */
  3810  type LUID_AND_ATTRIBUTES_ARRAY = [1]LUID_AND_ATTRIBUTES /* winnt.h:2915:33 */
  3811  type PLUID_AND_ATTRIBUTES_ARRAY = uintptr               /* winnt.h:2916:39 */
  3812  // *
  3813  // This file has no copyright assigned and is placed in the Public Domain.
  3814  // This file is part of the mingw-w64 runtime package.
  3815  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3816  
  3817  type _SID_IDENTIFIER_AUTHORITY = struct{ Value [6]BYTE } /* winnt.h:2921:13 */
  3818  
  3819  // *
  3820  // This file has no copyright assigned and is placed in the Public Domain.
  3821  // This file is part of the mingw-w64 runtime package.
  3822  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  3823  
  3824  type SID_IDENTIFIER_AUTHORITY = _SID_IDENTIFIER_AUTHORITY /* winnt.h:2923:7 */
  3825  type PSID_IDENTIFIER_AUTHORITY = uintptr                  /* winnt.h:2923:32 */
  3826  
  3827  type _SID = struct {
  3828  	Revision            BYTE
  3829  	SubAuthorityCount   BYTE
  3830  	IdentifierAuthority SID_IDENTIFIER_AUTHORITY
  3831  	SubAuthority        [1]DWORD
  3832  } /* winnt.h:2928:13 */
  3833  
  3834  type SID = _SID      /* winnt.h:2933:7 */
  3835  type PISID = uintptr /* winnt.h:2933:11 */
  3836  
  3837  type SID_NAME_USE = uint32   /* winnt.h:2947:7 */
  3838  type PSID_NAME_USE = uintptr /* winnt.h:2947:20 */
  3839  
  3840  type _SID_AND_ATTRIBUTES = struct {
  3841  	Sid        PSID
  3842  	Attributes DWORD
  3843  } /* winnt.h:2949:13 */
  3844  
  3845  type SID_AND_ATTRIBUTES = _SID_AND_ATTRIBUTES /* winnt.h:2956:7 */
  3846  type PSID_AND_ATTRIBUTES = uintptr            /* winnt.h:2956:26 */
  3847  
  3848  type SID_AND_ATTRIBUTES_ARRAY = [1]SID_AND_ATTRIBUTES /* winnt.h:2958:32 */
  3849  type PSID_AND_ATTRIBUTES_ARRAY = uintptr              /* winnt.h:2959:38 */
  3850  
  3851  type SID_HASH_ENTRY = ULONG_PTR /* winnt.h:2961:23 */
  3852  type PSID_HASH_ENTRY = uintptr  /* winnt.h:2961:39 */
  3853  
  3854  type _SID_AND_ATTRIBUTES_HASH = struct {
  3855  	SidCount DWORD
  3856  	SidAttr  PSID_AND_ATTRIBUTES
  3857  	Hash     [32]SID_HASH_ENTRY
  3858  } /* winnt.h:2963:13 */
  3859  
  3860  type SID_AND_ATTRIBUTES_HASH = _SID_AND_ATTRIBUTES_HASH /* winnt.h:2967:7 */
  3861  type PSID_AND_ATTRIBUTES_HASH = uintptr                 /* winnt.h:2967:32 */
  3862  
  3863  type WELL_KNOWN_SID_TYPE = uint32 /* winnt.h:3251:3 */
  3864  
  3865  type _ACL = struct {
  3866  	AclRevision BYTE
  3867  	Sbz1        BYTE
  3868  	AclSize     WORD
  3869  	AceCount    WORD
  3870  	Sbz2        WORD
  3871  } /* winnt.h:3281:13 */
  3872  
  3873  type ACL = _ACL     /* winnt.h:3287:7 */
  3874  type PACL = uintptr /* winnt.h:3288:17 */
  3875  
  3876  type _ACE_HEADER = struct {
  3877  	AceType  BYTE
  3878  	AceFlags BYTE
  3879  	AceSize  WORD
  3880  } /* winnt.h:3290:13 */
  3881  
  3882  type ACE_HEADER = _ACE_HEADER /* winnt.h:3294:7 */
  3883  type PACE_HEADER = uintptr    /* winnt.h:3295:24 */
  3884  
  3885  type _ACCESS_ALLOWED_ACE = struct {
  3886  	Header   ACE_HEADER
  3887  	Mask     ACCESS_MASK
  3888  	SidStart DWORD
  3889  } /* winnt.h:3341:13 */
  3890  
  3891  type ACCESS_ALLOWED_ACE = _ACCESS_ALLOWED_ACE /* winnt.h:3345:7 */
  3892  
  3893  type PACCESS_ALLOWED_ACE = uintptr /* winnt.h:3347:32 */
  3894  
  3895  type _ACCESS_DENIED_ACE = struct {
  3896  	Header   ACE_HEADER
  3897  	Mask     ACCESS_MASK
  3898  	SidStart DWORD
  3899  } /* winnt.h:3349:13 */
  3900  
  3901  type ACCESS_DENIED_ACE = _ACCESS_DENIED_ACE /* winnt.h:3353:7 */
  3902  type PACCESS_DENIED_ACE = uintptr           /* winnt.h:3354:31 */
  3903  
  3904  type _SYSTEM_AUDIT_ACE = struct {
  3905  	Header   ACE_HEADER
  3906  	Mask     ACCESS_MASK
  3907  	SidStart DWORD
  3908  } /* winnt.h:3356:13 */
  3909  
  3910  type SYSTEM_AUDIT_ACE = _SYSTEM_AUDIT_ACE /* winnt.h:3360:7 */
  3911  type PSYSTEM_AUDIT_ACE = uintptr          /* winnt.h:3361:30 */
  3912  
  3913  type _SYSTEM_ALARM_ACE = struct {
  3914  	Header   ACE_HEADER
  3915  	Mask     ACCESS_MASK
  3916  	SidStart DWORD
  3917  } /* winnt.h:3363:13 */
  3918  
  3919  type SYSTEM_ALARM_ACE = _SYSTEM_ALARM_ACE /* winnt.h:3367:7 */
  3920  type PSYSTEM_ALARM_ACE = uintptr          /* winnt.h:3368:30 */
  3921  
  3922  type _SYSTEM_RESOURCE_ATTRIBUTE_ACE = struct {
  3923  	Header   ACE_HEADER
  3924  	Mask     ACCESS_MASK
  3925  	SidStart DWORD
  3926  } /* winnt.h:3370:13 */
  3927  
  3928  type SYSTEM_RESOURCE_ATTRIBUTE_ACE = _SYSTEM_RESOURCE_ATTRIBUTE_ACE /* winnt.h:3374:7 */
  3929  type PSYSTEM_RESOURCE_ATTRIBUTE_ACE = uintptr                       /* winnt.h:3374:37 */
  3930  
  3931  type _SYSTEM_SCOPED_POLICY_ID_ACE = struct {
  3932  	Header   ACE_HEADER
  3933  	Mask     ACCESS_MASK
  3934  	SidStart DWORD
  3935  } /* winnt.h:3376:13 */
  3936  
  3937  type SYSTEM_SCOPED_POLICY_ID_ACE = _SYSTEM_SCOPED_POLICY_ID_ACE /* winnt.h:3380:7 */
  3938  type PSYSTEM_SCOPED_POLICY_ID_ACE = uintptr                     /* winnt.h:3380:35 */
  3939  
  3940  type _SYSTEM_MANDATORY_LABEL_ACE = struct {
  3941  	Header   ACE_HEADER
  3942  	Mask     ACCESS_MASK
  3943  	SidStart DWORD
  3944  } /* winnt.h:3382:13 */
  3945  
  3946  type SYSTEM_MANDATORY_LABEL_ACE = _SYSTEM_MANDATORY_LABEL_ACE /* winnt.h:3386:7 */
  3947  type PSYSTEM_MANDATORY_LABEL_ACE = uintptr                    /* winnt.h:3386:35 */
  3948  
  3949  type _ACCESS_ALLOWED_OBJECT_ACE = struct {
  3950  	Header              ACE_HEADER
  3951  	Mask                ACCESS_MASK
  3952  	Flags               DWORD
  3953  	ObjectType          GUID
  3954  	InheritedObjectType GUID
  3955  	SidStart            DWORD
  3956  } /* winnt.h:3394:13 */
  3957  
  3958  type ACCESS_ALLOWED_OBJECT_ACE = _ACCESS_ALLOWED_OBJECT_ACE /* winnt.h:3401:7 */
  3959  type PACCESS_ALLOWED_OBJECT_ACE = uintptr                   /* winnt.h:3401:33 */
  3960  
  3961  type _ACCESS_DENIED_OBJECT_ACE = struct {
  3962  	Header              ACE_HEADER
  3963  	Mask                ACCESS_MASK
  3964  	Flags               DWORD
  3965  	ObjectType          GUID
  3966  	InheritedObjectType GUID
  3967  	SidStart            DWORD
  3968  } /* winnt.h:3403:13 */
  3969  
  3970  type ACCESS_DENIED_OBJECT_ACE = _ACCESS_DENIED_OBJECT_ACE /* winnt.h:3410:7 */
  3971  type PACCESS_DENIED_OBJECT_ACE = uintptr                  /* winnt.h:3410:32 */
  3972  
  3973  type _SYSTEM_AUDIT_OBJECT_ACE = struct {
  3974  	Header              ACE_HEADER
  3975  	Mask                ACCESS_MASK
  3976  	Flags               DWORD
  3977  	ObjectType          GUID
  3978  	InheritedObjectType GUID
  3979  	SidStart            DWORD
  3980  } /* winnt.h:3412:13 */
  3981  
  3982  type SYSTEM_AUDIT_OBJECT_ACE = _SYSTEM_AUDIT_OBJECT_ACE /* winnt.h:3419:7 */
  3983  type PSYSTEM_AUDIT_OBJECT_ACE = uintptr                 /* winnt.h:3419:31 */
  3984  
  3985  type _SYSTEM_ALARM_OBJECT_ACE = struct {
  3986  	Header              ACE_HEADER
  3987  	Mask                ACCESS_MASK
  3988  	Flags               DWORD
  3989  	ObjectType          GUID
  3990  	InheritedObjectType GUID
  3991  	SidStart            DWORD
  3992  } /* winnt.h:3421:13 */
  3993  
  3994  type SYSTEM_ALARM_OBJECT_ACE = _SYSTEM_ALARM_OBJECT_ACE /* winnt.h:3428:7 */
  3995  type PSYSTEM_ALARM_OBJECT_ACE = uintptr                 /* winnt.h:3428:31 */
  3996  
  3997  type _ACCESS_ALLOWED_CALLBACK_ACE = struct {
  3998  	Header   ACE_HEADER
  3999  	Mask     ACCESS_MASK
  4000  	SidStart DWORD
  4001  } /* winnt.h:3430:13 */
  4002  
  4003  type ACCESS_ALLOWED_CALLBACK_ACE = _ACCESS_ALLOWED_CALLBACK_ACE /* winnt.h:3434:7 */
  4004  type PACCESS_ALLOWED_CALLBACK_ACE = uintptr                     /* winnt.h:3434:35 */
  4005  
  4006  type _ACCESS_DENIED_CALLBACK_ACE = struct {
  4007  	Header   ACE_HEADER
  4008  	Mask     ACCESS_MASK
  4009  	SidStart DWORD
  4010  } /* winnt.h:3436:13 */
  4011  
  4012  type ACCESS_DENIED_CALLBACK_ACE = _ACCESS_DENIED_CALLBACK_ACE /* winnt.h:3440:7 */
  4013  type PACCESS_DENIED_CALLBACK_ACE = uintptr                    /* winnt.h:3440:34 */
  4014  
  4015  type _SYSTEM_AUDIT_CALLBACK_ACE = struct {
  4016  	Header   ACE_HEADER
  4017  	Mask     ACCESS_MASK
  4018  	SidStart DWORD
  4019  } /* winnt.h:3442:13 */
  4020  
  4021  type SYSTEM_AUDIT_CALLBACK_ACE = _SYSTEM_AUDIT_CALLBACK_ACE /* winnt.h:3446:7 */
  4022  type PSYSTEM_AUDIT_CALLBACK_ACE = uintptr                   /* winnt.h:3446:33 */
  4023  
  4024  type _SYSTEM_ALARM_CALLBACK_ACE = struct {
  4025  	Header   ACE_HEADER
  4026  	Mask     ACCESS_MASK
  4027  	SidStart DWORD
  4028  } /* winnt.h:3448:13 */
  4029  
  4030  type SYSTEM_ALARM_CALLBACK_ACE = _SYSTEM_ALARM_CALLBACK_ACE /* winnt.h:3452:7 */
  4031  type PSYSTEM_ALARM_CALLBACK_ACE = uintptr                   /* winnt.h:3452:33 */
  4032  
  4033  type _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = struct {
  4034  	Header              ACE_HEADER
  4035  	Mask                ACCESS_MASK
  4036  	Flags               DWORD
  4037  	ObjectType          GUID
  4038  	InheritedObjectType GUID
  4039  	SidStart            DWORD
  4040  } /* winnt.h:3454:13 */
  4041  
  4042  type ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE /* winnt.h:3462:7 */
  4043  type PACCESS_ALLOWED_CALLBACK_OBJECT_ACE = uintptr                            /* winnt.h:3462:42 */
  4044  
  4045  type _ACCESS_DENIED_CALLBACK_OBJECT_ACE = struct {
  4046  	Header              ACE_HEADER
  4047  	Mask                ACCESS_MASK
  4048  	Flags               DWORD
  4049  	ObjectType          GUID
  4050  	InheritedObjectType GUID
  4051  	SidStart            DWORD
  4052  } /* winnt.h:3464:13 */
  4053  
  4054  type ACCESS_DENIED_CALLBACK_OBJECT_ACE = _ACCESS_DENIED_CALLBACK_OBJECT_ACE /* winnt.h:3471:7 */
  4055  type PACCESS_DENIED_CALLBACK_OBJECT_ACE = uintptr                           /* winnt.h:3471:41 */
  4056  
  4057  type _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = struct {
  4058  	Header              ACE_HEADER
  4059  	Mask                ACCESS_MASK
  4060  	Flags               DWORD
  4061  	ObjectType          GUID
  4062  	InheritedObjectType GUID
  4063  	SidStart            DWORD
  4064  } /* winnt.h:3473:13 */
  4065  
  4066  type SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE /* winnt.h:3480:7 */
  4067  type PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE = uintptr                          /* winnt.h:3480:40 */
  4068  
  4069  type _SYSTEM_ALARM_CALLBACK_OBJECT_ACE = struct {
  4070  	Header              ACE_HEADER
  4071  	Mask                ACCESS_MASK
  4072  	Flags               DWORD
  4073  	ObjectType          GUID
  4074  	InheritedObjectType GUID
  4075  	SidStart            DWORD
  4076  } /* winnt.h:3482:13 */
  4077  
  4078  type SYSTEM_ALARM_CALLBACK_OBJECT_ACE = _SYSTEM_ALARM_CALLBACK_OBJECT_ACE /* winnt.h:3490:7 */
  4079  type PSYSTEM_ALARM_CALLBACK_OBJECT_ACE = uintptr                          /* winnt.h:3490:40 */
  4080  
  4081  type ACL_INFORMATION_CLASS = uint32 /* winnt.h:3497:7 */
  4082  
  4083  type _ACL_REVISION_INFORMATION = struct{ AclRevision DWORD } /* winnt.h:3499:13 */
  4084  
  4085  type ACL_REVISION_INFORMATION = _ACL_REVISION_INFORMATION /* winnt.h:3501:7 */
  4086  type PACL_REVISION_INFORMATION = uintptr                  /* winnt.h:3502:38 */
  4087  
  4088  type _ACL_SIZE_INFORMATION = struct {
  4089  	AceCount      DWORD
  4090  	AclBytesInUse DWORD
  4091  	AclBytesFree  DWORD
  4092  } /* winnt.h:3504:13 */
  4093  
  4094  type ACL_SIZE_INFORMATION = _ACL_SIZE_INFORMATION /* winnt.h:3508:7 */
  4095  type PACL_SIZE_INFORMATION = uintptr              /* winnt.h:3509:34 */
  4096  
  4097  type SECURITY_DESCRIPTOR_CONTROL = WORD     /* winnt.h:3516:18 */
  4098  type PSECURITY_DESCRIPTOR_CONTROL = uintptr /* winnt.h:3516:46 */
  4099  
  4100  type _SECURITY_DESCRIPTOR_RELATIVE = struct {
  4101  	Revision BYTE
  4102  	Sbz1     BYTE
  4103  	Control  SECURITY_DESCRIPTOR_CONTROL
  4104  	Owner    DWORD
  4105  	Group    DWORD
  4106  	Sacl     DWORD
  4107  	Dacl     DWORD
  4108  } /* winnt.h:3533:13 */
  4109  
  4110  type SECURITY_DESCRIPTOR_RELATIVE = _SECURITY_DESCRIPTOR_RELATIVE /* winnt.h:3541:7 */
  4111  type PISECURITY_DESCRIPTOR_RELATIVE = uintptr                     /* winnt.h:3541:36 */
  4112  
  4113  type _SECURITY_DESCRIPTOR = struct {
  4114  	Revision BYTE
  4115  	Sbz1     BYTE
  4116  	Control  SECURITY_DESCRIPTOR_CONTROL
  4117  	Owner    PSID
  4118  	Group    PSID
  4119  	Sacl     PACL
  4120  	Dacl     PACL
  4121  } /* winnt.h:3543:13 */
  4122  
  4123  type SECURITY_DESCRIPTOR = _SECURITY_DESCRIPTOR /* winnt.h:3551:7 */
  4124  type PISECURITY_DESCRIPTOR = uintptr            /* winnt.h:3551:27 */
  4125  
  4126  type _OBJECT_TYPE_LIST = struct {
  4127  	Level      WORD
  4128  	Sbz        WORD
  4129  	ObjectType uintptr
  4130  } /* winnt.h:3553:13 */
  4131  
  4132  type OBJECT_TYPE_LIST = _OBJECT_TYPE_LIST /* winnt.h:3557:7 */
  4133  type POBJECT_TYPE_LIST = uintptr          /* winnt.h:3557:24 */
  4134  
  4135  type AUDIT_EVENT_TYPE = uint32   /* winnt.h:3567:7 */
  4136  type PAUDIT_EVENT_TYPE = uintptr /* winnt.h:3567:24 */
  4137  
  4138  type _PRIVILEGE_SET = struct {
  4139  	PrivilegeCount DWORD
  4140  	Control        DWORD
  4141  	Privilege      [1]LUID_AND_ATTRIBUTES
  4142  } /* winnt.h:3585:13 */
  4143  
  4144  type PRIVILEGE_SET = _PRIVILEGE_SET /* winnt.h:3589:7 */
  4145  type PPRIVILEGE_SET = uintptr       /* winnt.h:3589:21 */
  4146  
  4147  type ACCESS_REASON_TYPE = uint32 /* winnt.h:3614:7 */
  4148  type ACCESS_REASON = DWORD       /* winnt.h:3615:19 */
  4149  
  4150  type _ACCESS_REASONS = struct{ Data [32]ACCESS_REASON } /* winnt.h:3617:13 */
  4151  
  4152  type ACCESS_REASONS = _ACCESS_REASONS /* winnt.h:3619:7 */
  4153  type PACCESS_REASONS = uintptr        /* winnt.h:3619:22 */
  4154  
  4155  type _SE_SECURITY_DESCRIPTOR = struct {
  4156  	Size               DWORD
  4157  	Flags              DWORD
  4158  	SecurityDescriptor PSECURITY_DESCRIPTOR
  4159  } /* winnt.h:3625:13 */
  4160  
  4161  type SE_SECURITY_DESCRIPTOR = _SE_SECURITY_DESCRIPTOR /* winnt.h:3629:7 */
  4162  type PSE_SECURITY_DESCRIPTOR = uintptr                /* winnt.h:3629:30 */
  4163  
  4164  type _SE_ACCESS_REQUEST = struct {
  4165  	Size                    DWORD
  4166  	SeSecurityDescriptor    PSE_SECURITY_DESCRIPTOR
  4167  	DesiredAccess           ACCESS_MASK
  4168  	PreviouslyGrantedAccess ACCESS_MASK
  4169  	PrincipalSelfSid        PSID
  4170  	GenericMapping          PGENERIC_MAPPING
  4171  	ObjectTypeListCount     DWORD
  4172  	ObjectTypeList          POBJECT_TYPE_LIST
  4173  } /* winnt.h:3631:13 */
  4174  
  4175  type SE_ACCESS_REQUEST = _SE_ACCESS_REQUEST /* winnt.h:3640:7 */
  4176  type PSE_ACCESS_REQUEST = uintptr           /* winnt.h:3640:25 */
  4177  
  4178  type _SE_ACCESS_REPLY = struct {
  4179  	Size            DWORD
  4180  	ResultListCount DWORD
  4181  	GrantedAccess   PACCESS_MASK
  4182  	AccessStatus    PDWORD
  4183  	AccessReason    PACCESS_REASONS
  4184  	Privileges      uintptr
  4185  } /* winnt.h:3642:13 */
  4186  
  4187  type SE_ACCESS_REPLY = _SE_ACCESS_REPLY /* winnt.h:3649:7 */
  4188  type PSE_ACCESS_REPLY = uintptr         /* winnt.h:3649:23 */
  4189  
  4190  type SECURITY_IMPERSONATION_LEVEL = uint32   /* winnt.h:3689:7 */
  4191  type PSECURITY_IMPERSONATION_LEVEL = uintptr /* winnt.h:3689:36 */
  4192  
  4193  type TOKEN_TYPE = uint32   /* winnt.h:3716:7 */
  4194  type PTOKEN_TYPE = uintptr /* winnt.h:3717:24 */
  4195  
  4196  type TOKEN_ELEVATION_TYPE = uint32   /* winnt.h:3723:7 */
  4197  type PTOKEN_ELEVATION_TYPE = uintptr /* winnt.h:3723:29 */
  4198  
  4199  type TOKEN_INFORMATION_CLASS = uint32   /* winnt.h:3767:7 */
  4200  type PTOKEN_INFORMATION_CLASS = uintptr /* winnt.h:3767:31 */
  4201  
  4202  type _TOKEN_USER = struct{ User SID_AND_ATTRIBUTES } /* winnt.h:3769:13 */
  4203  
  4204  type TOKEN_USER = _TOKEN_USER /* winnt.h:3771:7 */
  4205  type PTOKEN_USER = uintptr    /* winnt.h:3771:18 */
  4206  
  4207  type _TOKEN_GROUPS = struct {
  4208  	GroupCount DWORD
  4209  	Groups     [1]SID_AND_ATTRIBUTES
  4210  } /* winnt.h:3773:13 */
  4211  
  4212  type TOKEN_GROUPS = _TOKEN_GROUPS /* winnt.h:3780:7 */
  4213  type PTOKEN_GROUPS = uintptr      /* winnt.h:3780:20 */
  4214  
  4215  type _TOKEN_PRIVILEGES = struct {
  4216  	PrivilegeCount DWORD
  4217  	Privileges     [1]LUID_AND_ATTRIBUTES
  4218  } /* winnt.h:3782:13 */
  4219  
  4220  type TOKEN_PRIVILEGES = _TOKEN_PRIVILEGES /* winnt.h:3785:7 */
  4221  type PTOKEN_PRIVILEGES = uintptr          /* winnt.h:3785:24 */
  4222  
  4223  type _TOKEN_OWNER = struct{ Owner PSID } /* winnt.h:3787:13 */
  4224  
  4225  type TOKEN_OWNER = _TOKEN_OWNER /* winnt.h:3789:7 */
  4226  type PTOKEN_OWNER = uintptr     /* winnt.h:3789:19 */
  4227  
  4228  type _TOKEN_PRIMARY_GROUP = struct{ PrimaryGroup PSID } /* winnt.h:3791:13 */
  4229  
  4230  type TOKEN_PRIMARY_GROUP = _TOKEN_PRIMARY_GROUP /* winnt.h:3793:7 */
  4231  type PTOKEN_PRIMARY_GROUP = uintptr             /* winnt.h:3793:27 */
  4232  
  4233  type _TOKEN_DEFAULT_DACL = struct{ DefaultDacl PACL } /* winnt.h:3795:13 */
  4234  
  4235  type TOKEN_DEFAULT_DACL = _TOKEN_DEFAULT_DACL /* winnt.h:3797:7 */
  4236  type PTOKEN_DEFAULT_DACL = uintptr            /* winnt.h:3797:26 */
  4237  
  4238  type _TOKEN_USER_CLAIMS = struct{ UserClaims PCLAIMS_BLOB } /* winnt.h:3799:13 */
  4239  
  4240  type TOKEN_USER_CLAIMS = _TOKEN_USER_CLAIMS /* winnt.h:3801:7 */
  4241  type PTOKEN_USER_CLAIMS = uintptr           /* winnt.h:3801:25 */
  4242  
  4243  type _TOKEN_DEVICE_CLAIMS = struct{ DeviceClaims PCLAIMS_BLOB } /* winnt.h:3803:13 */
  4244  
  4245  type TOKEN_DEVICE_CLAIMS = _TOKEN_DEVICE_CLAIMS /* winnt.h:3805:7 */
  4246  type PTOKEN_DEVICE_CLAIMS = uintptr             /* winnt.h:3805:27 */
  4247  
  4248  type _TOKEN_GROUPS_AND_PRIVILEGES = struct {
  4249  	SidCount            DWORD
  4250  	SidLength           DWORD
  4251  	Sids                PSID_AND_ATTRIBUTES
  4252  	RestrictedSidCount  DWORD
  4253  	RestrictedSidLength DWORD
  4254  	RestrictedSids      PSID_AND_ATTRIBUTES
  4255  	PrivilegeCount      DWORD
  4256  	PrivilegeLength     DWORD
  4257  	Privileges          PLUID_AND_ATTRIBUTES
  4258  	AuthenticationId    LUID
  4259  } /* winnt.h:3807:13 */
  4260  
  4261  type TOKEN_GROUPS_AND_PRIVILEGES = _TOKEN_GROUPS_AND_PRIVILEGES /* winnt.h:3818:7 */
  4262  type PTOKEN_GROUPS_AND_PRIVILEGES = uintptr                     /* winnt.h:3818:35 */
  4263  
  4264  type _TOKEN_LINKED_TOKEN = struct{ LinkedToken HANDLE } /* winnt.h:3820:13 */
  4265  
  4266  type TOKEN_LINKED_TOKEN = _TOKEN_LINKED_TOKEN /* winnt.h:3822:7 */
  4267  type PTOKEN_LINKED_TOKEN = uintptr            /* winnt.h:3822:26 */
  4268  
  4269  type _TOKEN_ELEVATION = struct{ TokenIsElevated DWORD } /* winnt.h:3824:13 */
  4270  
  4271  type TOKEN_ELEVATION = _TOKEN_ELEVATION /* winnt.h:3826:7 */
  4272  type PTOKEN_ELEVATION = uintptr         /* winnt.h:3826:23 */
  4273  
  4274  type _TOKEN_MANDATORY_LABEL = struct{ Label SID_AND_ATTRIBUTES } /* winnt.h:3828:13 */
  4275  
  4276  type TOKEN_MANDATORY_LABEL = _TOKEN_MANDATORY_LABEL /* winnt.h:3830:7 */
  4277  type PTOKEN_MANDATORY_LABEL = uintptr               /* winnt.h:3830:29 */
  4278  
  4279  type _TOKEN_MANDATORY_POLICY = struct{ Policy DWORD } /* winnt.h:3838:13 */
  4280  
  4281  type TOKEN_MANDATORY_POLICY = _TOKEN_MANDATORY_POLICY /* winnt.h:3840:7 */
  4282  type PTOKEN_MANDATORY_POLICY = uintptr                /* winnt.h:3840:30 */
  4283  
  4284  type _TOKEN_ACCESS_INFORMATION = struct {
  4285  	SidHash            PSID_AND_ATTRIBUTES_HASH
  4286  	RestrictedSidHash  PSID_AND_ATTRIBUTES_HASH
  4287  	Privileges         PTOKEN_PRIVILEGES
  4288  	AuthenticationId   LUID
  4289  	TokenType          TOKEN_TYPE
  4290  	ImpersonationLevel SECURITY_IMPERSONATION_LEVEL
  4291  	MandatoryPolicy    TOKEN_MANDATORY_POLICY
  4292  	Flags              DWORD
  4293  	AppContainerNumber DWORD
  4294  	PackageSid         PSID
  4295  	CapabilitiesHash   PSID_AND_ATTRIBUTES_HASH
  4296  } /* winnt.h:3842:13 */
  4297  
  4298  type TOKEN_ACCESS_INFORMATION = _TOKEN_ACCESS_INFORMATION /* winnt.h:3854:7 */
  4299  type PTOKEN_ACCESS_INFORMATION = uintptr                  /* winnt.h:3854:32 */
  4300  
  4301  type _TOKEN_AUDIT_POLICY = struct{ PerUserPolicy [29]UCHAR } /* winnt.h:3858:13 */
  4302  
  4303  type TOKEN_AUDIT_POLICY = _TOKEN_AUDIT_POLICY /* winnt.h:3860:7 */
  4304  type PTOKEN_AUDIT_POLICY = uintptr            /* winnt.h:3860:27 */
  4305  
  4306  type _TOKEN_SOURCE = struct {
  4307  	SourceName       [8]CHAR
  4308  	SourceIdentifier LUID
  4309  } /* winnt.h:3864:13 */
  4310  
  4311  type TOKEN_SOURCE = _TOKEN_SOURCE /* winnt.h:3867:7 */
  4312  type PTOKEN_SOURCE = uintptr      /* winnt.h:3867:20 */
  4313  
  4314  type _TOKEN_STATISTICS = struct {
  4315  	TokenId            LUID
  4316  	AuthenticationId   LUID
  4317  	ExpirationTime     LARGE_INTEGER
  4318  	TokenType          TOKEN_TYPE
  4319  	ImpersonationLevel SECURITY_IMPERSONATION_LEVEL
  4320  	DynamicCharged     DWORD
  4321  	DynamicAvailable   DWORD
  4322  	GroupCount         DWORD
  4323  	PrivilegeCount     DWORD
  4324  	ModifiedId         LUID
  4325  } /* winnt.h:3869:13 */
  4326  
  4327  type TOKEN_STATISTICS = _TOKEN_STATISTICS /* winnt.h:3880:7 */
  4328  type PTOKEN_STATISTICS = uintptr          /* winnt.h:3880:24 */
  4329  
  4330  type _TOKEN_CONTROL = struct {
  4331  	TokenId          LUID
  4332  	AuthenticationId LUID
  4333  	ModifiedId       LUID
  4334  	TokenSource      TOKEN_SOURCE
  4335  } /* winnt.h:3882:13 */
  4336  
  4337  type TOKEN_CONTROL = _TOKEN_CONTROL /* winnt.h:3887:7 */
  4338  type PTOKEN_CONTROL = uintptr       /* winnt.h:3887:21 */
  4339  
  4340  type _TOKEN_ORIGIN = struct{ OriginatingLogonSession LUID } /* winnt.h:3889:13 */
  4341  
  4342  type TOKEN_ORIGIN = _TOKEN_ORIGIN /* winnt.h:3891:7 */
  4343  type PTOKEN_ORIGIN = uintptr      /* winnt.h:3891:20 */
  4344  
  4345  type MANDATORY_LEVEL = uint32   /* winnt.h:3901:7 */
  4346  type PMANDATORY_LEVEL = uintptr /* winnt.h:3901:23 */
  4347  
  4348  type _TOKEN_APPCONTAINER_INFORMATION = struct{ TokenAppContainer PSID } /* winnt.h:3903:13 */
  4349  
  4350  type TOKEN_APPCONTAINER_INFORMATION = _TOKEN_APPCONTAINER_INFORMATION /* winnt.h:3905:7 */
  4351  type PTOKEN_APPCONTAINER_INFORMATION = uintptr                        /* winnt.h:3905:38 */
  4352  
  4353  type _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = struct {
  4354  	Version DWORD64
  4355  	Name    PWSTR
  4356  	_       [4]byte
  4357  } /* winnt.h:3915:13 */
  4358  
  4359  type CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE /* winnt.h:3918:7 */
  4360  type PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = uintptr                             /* winnt.h:3918:43 */
  4361  
  4362  type _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = struct {
  4363  	pValue      PVOID
  4364  	ValueLength DWORD
  4365  } /* winnt.h:3920:13 */
  4366  
  4367  type CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE /* winnt.h:3923:7 */
  4368  type PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = uintptr                                     /* winnt.h:3923:52 */
  4369  
  4370  type _CLAIM_SECURITY_ATTRIBUTE_V1 = struct {
  4371  	Name       PWSTR
  4372  	ValueType  WORD
  4373  	Reserved   WORD
  4374  	Flags      DWORD
  4375  	ValueCount DWORD
  4376  	Values     struct{ pInt64 PLONG64 }
  4377  } /* winnt.h:3936:13 */
  4378  
  4379  type CLAIM_SECURITY_ATTRIBUTE_V1 = _CLAIM_SECURITY_ATTRIBUTE_V1 /* winnt.h:3949:7 */
  4380  type PCLAIM_SECURITY_ATTRIBUTE_V1 = uintptr                     /* winnt.h:3949:35 */
  4381  
  4382  type _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = struct {
  4383  	Name       DWORD
  4384  	ValueType  WORD
  4385  	Reserved   WORD
  4386  	Flags      DWORD
  4387  	ValueCount DWORD
  4388  	Values     struct{ pInt64 [1]DWORD }
  4389  } /* winnt.h:3951:13 */
  4390  
  4391  type CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 /* winnt.h:3964:7 */
  4392  type PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = uintptr                              /* winnt.h:3964:44 */
  4393  
  4394  type _CLAIM_SECURITY_ATTRIBUTES_INFORMATION = struct {
  4395  	Version        WORD
  4396  	Reserved       WORD
  4397  	AttributeCount DWORD
  4398  	Attribute      struct{ pAttributeV1 PCLAIM_SECURITY_ATTRIBUTE_V1 }
  4399  } /* winnt.h:3970:13 */
  4400  
  4401  type CLAIM_SECURITY_ATTRIBUTES_INFORMATION = _CLAIM_SECURITY_ATTRIBUTES_INFORMATION /* winnt.h:3977:7 */
  4402  type PCLAIM_SECURITY_ATTRIBUTES_INFORMATION = uintptr                               /* winnt.h:3977:45 */
  4403  
  4404  type SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN  /* winnt.h:3982:21 */
  4405  type PSECURITY_CONTEXT_TRACKING_MODE = uintptr /* winnt.h:3982:52 */
  4406  
  4407  type _SECURITY_QUALITY_OF_SERVICE = struct {
  4408  	Length              DWORD
  4409  	ImpersonationLevel  SECURITY_IMPERSONATION_LEVEL
  4410  	ContextTrackingMode SECURITY_CONTEXT_TRACKING_MODE
  4411  	EffectiveOnly       BOOLEAN
  4412  	_                   [2]byte
  4413  } /* winnt.h:3984:13 */
  4414  
  4415  type SECURITY_QUALITY_OF_SERVICE = _SECURITY_QUALITY_OF_SERVICE /* winnt.h:3989:7 */
  4416  type PSECURITY_QUALITY_OF_SERVICE = uintptr                     /* winnt.h:3989:35 */
  4417  
  4418  type _SE_IMPERSONATION_STATE = struct {
  4419  	Token         PACCESS_TOKEN
  4420  	CopyOnOpen    BOOLEAN
  4421  	EffectiveOnly BOOLEAN
  4422  	_             [2]byte
  4423  	Level         SECURITY_IMPERSONATION_LEVEL
  4424  } /* winnt.h:3991:13 */
  4425  
  4426  type SE_IMPERSONATION_STATE = _SE_IMPERSONATION_STATE /* winnt.h:3996:7 */
  4427  type PSE_IMPERSONATION_STATE = uintptr                /* winnt.h:3996:30 */
  4428  
  4429  type SECURITY_INFORMATION = DWORD    /* winnt.h:4003:19 */
  4430  type PSECURITY_INFORMATION = uintptr /* winnt.h:4003:40 */
  4431  
  4432  type SE_LEARNING_MODE_DATA_TYPE = uint32 /* winnt.h:4023:7 */
  4433  
  4434  type _SECURITY_CAPABILITIES = struct {
  4435  	AppContainerSid PSID
  4436  	Capabilities    PSID_AND_ATTRIBUTES
  4437  	CapabilityCount DWORD
  4438  	Reserved        DWORD
  4439  } /* winnt.h:4027:13 */
  4440  
  4441  type SECURITY_CAPABILITIES = _SECURITY_CAPABILITIES /* winnt.h:4032:7 */
  4442  type PSECURITY_CAPABILITIES = uintptr               /* winnt.h:4032:29 */
  4443  type LPSECURITY_CAPABILITIES = uintptr              /* winnt.h:4032:53 */
  4444  
  4445  type _JOB_SET_ARRAY = struct {
  4446  	JobHandle   HANDLE
  4447  	MemberLevel DWORD
  4448  	Flags       DWORD
  4449  } /* winnt.h:4087:13 */
  4450  
  4451  type JOB_SET_ARRAY = _JOB_SET_ARRAY /* winnt.h:4091:7 */
  4452  type PJOB_SET_ARRAY = uintptr       /* winnt.h:4091:21 */
  4453  
  4454  type _EXCEPTION_REGISTRATION_RECORD = struct {
  4455  	__0 struct{ Next uintptr }
  4456  	__4 struct{ Handler PEXCEPTION_ROUTINE }
  4457  } /* winnt.h:4097:13 */
  4458  
  4459  type EXCEPTION_REGISTRATION_RECORD = _EXCEPTION_REGISTRATION_RECORD /* winnt.h:4106:7 */
  4460  
  4461  type PEXCEPTION_REGISTRATION_RECORD = uintptr /* winnt.h:4108:43 */
  4462  
  4463  type EXCEPTION_REGISTRATION = EXCEPTION_REGISTRATION_RECORD   /* winnt.h:4110:43 */
  4464  type PEXCEPTION_REGISTRATION = PEXCEPTION_REGISTRATION_RECORD /* winnt.h:4111:44 */
  4465  
  4466  type _NT_TIB = struct {
  4467  	ExceptionList        uintptr
  4468  	StackBase            PVOID
  4469  	StackLimit           PVOID
  4470  	SubSystemTib         PVOID
  4471  	__16                 struct{ FiberData PVOID }
  4472  	ArbitraryUserPointer PVOID
  4473  	Self                 uintptr
  4474  } /* winnt.h:4116:28 */
  4475  
  4476  type NT_TIB = _NT_TIB  /* winnt.h:4127:7 */
  4477  type PNT_TIB = uintptr /* winnt.h:4128:20 */
  4478  
  4479  type _NT_TIB32 = struct {
  4480  	ExceptionList        DWORD
  4481  	StackBase            DWORD
  4482  	StackLimit           DWORD
  4483  	SubSystemTib         DWORD
  4484  	__16                 struct{ FiberData DWORD }
  4485  	ArbitraryUserPointer DWORD
  4486  	Self                 DWORD
  4487  } /* winnt.h:4131:28 */
  4488  
  4489  type NT_TIB32 = _NT_TIB32 /* winnt.h:4142:7 */
  4490  type PNT_TIB32 = uintptr  /* winnt.h:4142:16 */
  4491  
  4492  type _NT_TIB64 = struct {
  4493  	ExceptionList        DWORD64
  4494  	StackBase            DWORD64
  4495  	StackLimit           DWORD64
  4496  	SubSystemTib         DWORD64
  4497  	__32                 struct{ FiberData DWORD64 }
  4498  	ArbitraryUserPointer DWORD64
  4499  	Self                 DWORD64
  4500  } /* winnt.h:4144:28 */
  4501  
  4502  type NT_TIB64 = _NT_TIB64 /* winnt.h:4155:7 */
  4503  type PNT_TIB64 = uintptr  /* winnt.h:4155:16 */
  4504  
  4505  type _UMS_CREATE_THREAD_ATTRIBUTES = struct {
  4506  	UmsVersion        DWORD
  4507  	UmsContext        PVOID
  4508  	UmsCompletionList PVOID
  4509  } /* winnt.h:4166:13 */
  4510  
  4511  type UMS_CREATE_THREAD_ATTRIBUTES = _UMS_CREATE_THREAD_ATTRIBUTES /* winnt.h:4170:7 */
  4512  type PUMS_CREATE_THREAD_ATTRIBUTES = uintptr                      /* winnt.h:4170:36 */
  4513  
  4514  type _QUOTA_LIMITS = struct {
  4515  	PagedPoolLimit        SIZE_T
  4516  	NonPagedPoolLimit     SIZE_T
  4517  	MinimumWorkingSetSize SIZE_T
  4518  	MaximumWorkingSetSize SIZE_T
  4519  	PagefileLimit         SIZE_T
  4520  	_                     [4]byte
  4521  	TimeLimit             LARGE_INTEGER
  4522  } /* winnt.h:4172:13 */
  4523  
  4524  type QUOTA_LIMITS = _QUOTA_LIMITS /* winnt.h:4179:7 */
  4525  type PQUOTA_LIMITS = uintptr      /* winnt.h:4179:20 */
  4526  
  4527  type _RATE_QUOTA_LIMIT = struct{ RateData DWORD } /* winnt.h:4187:13 */
  4528  
  4529  type RATE_QUOTA_LIMIT = _RATE_QUOTA_LIMIT /* winnt.h:4193:7 */
  4530  type PRATE_QUOTA_LIMIT = uintptr          /* winnt.h:4193:25 */
  4531  
  4532  type _QUOTA_LIMITS_EX = struct {
  4533  	PagedPoolLimit        SIZE_T
  4534  	NonPagedPoolLimit     SIZE_T
  4535  	MinimumWorkingSetSize SIZE_T
  4536  	MaximumWorkingSetSize SIZE_T
  4537  	PagefileLimit         SIZE_T
  4538  	_                     [4]byte
  4539  	TimeLimit             LARGE_INTEGER
  4540  	WorkingSetLimit       SIZE_T
  4541  	Reserved2             SIZE_T
  4542  	Reserved3             SIZE_T
  4543  	Reserved4             SIZE_T
  4544  	Flags                 DWORD
  4545  	CpuRateLimit          RATE_QUOTA_LIMIT
  4546  } /* winnt.h:4195:13 */
  4547  
  4548  type QUOTA_LIMITS_EX = _QUOTA_LIMITS_EX /* winnt.h:4208:7 */
  4549  type PQUOTA_LIMITS_EX = uintptr         /* winnt.h:4208:23 */
  4550  
  4551  type _IO_COUNTERS = struct {
  4552  	ReadOperationCount  ULONGLONG
  4553  	WriteOperationCount ULONGLONG
  4554  	OtherOperationCount ULONGLONG
  4555  	ReadTransferCount   ULONGLONG
  4556  	WriteTransferCount  ULONGLONG
  4557  	OtherTransferCount  ULONGLONG
  4558  } /* winnt.h:4210:13 */
  4559  
  4560  type IO_COUNTERS = _IO_COUNTERS /* winnt.h:4217:7 */
  4561  type PIO_COUNTERS = uintptr     /* winnt.h:4218:25 */
  4562  
  4563  type HARDWARE_COUNTER_TYPE = uint32   /* winnt.h:4226:7 */
  4564  type PHARDWARE_COUNTER_TYPE = uintptr /* winnt.h:4226:30 */
  4565  
  4566  type PROCESS_MITIGATION_POLICY = uint32   /* winnt.h:4241:7 */
  4567  type PPROCESS_MITIGATION_POLICY = uintptr /* winnt.h:4241:33 */
  4568  
  4569  type _PROCESS_MITIGATION_ASLR_POLICY = struct{ __0 struct{ Flags DWORD } } /* winnt.h:4243:13 */
  4570  
  4571  type PROCESS_MITIGATION_ASLR_POLICY = _PROCESS_MITIGATION_ASLR_POLICY /* winnt.h:4254:7 */
  4572  type PPROCESS_MITIGATION_ASLR_POLICY = uintptr                        /* winnt.h:4254:38 */
  4573  
  4574  type _PROCESS_MITIGATION_DEP_POLICY = struct {
  4575  	__0       struct{ Flags DWORD }
  4576  	Permanent BOOLEAN
  4577  	_         [3]byte
  4578  } /* winnt.h:4256:13 */
  4579  
  4580  type PROCESS_MITIGATION_DEP_POLICY = _PROCESS_MITIGATION_DEP_POLICY /* winnt.h:4266:7 */
  4581  type PPROCESS_MITIGATION_DEP_POLICY = uintptr                       /* winnt.h:4266:37 */
  4582  
  4583  type _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = struct{ __0 struct{ Flags DWORD } } /* winnt.h:4268:13 */
  4584  
  4585  type PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY /* winnt.h:4277:7 */
  4586  type PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = uintptr                                       /* winnt.h:4277:53 */
  4587  
  4588  type _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = struct{ __0 struct{ Flags DWORD } } /* winnt.h:4279:13 */
  4589  
  4590  type PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY /* winnt.h:4287:7 */
  4591  type PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = uintptr                                       /* winnt.h:4287:53 */
  4592  
  4593  type _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = struct{ __0 struct{ Flags DWORD } } /* winnt.h:4289:13 */
  4594  
  4595  type PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY /* winnt.h:4297:7 */
  4596  type PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = uintptr                                           /* winnt.h:4297:57 */
  4597  
  4598  type _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = struct{ __0 struct{ Flags DWORD } } /* winnt.h:4299:13 */
  4599  
  4600  type PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY /* winnt.h:4309:7 */
  4601  type PPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = uintptr                                      /* winnt.h:4309:53 */
  4602  
  4603  type _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = struct{ __0 struct{ Flags DWORD } } /* winnt.h:4311:13 */
  4604  
  4605  type PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY /* winnt.h:4321:7 */
  4606  type PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = uintptr                                    /* winnt.h:4321:51 */
  4607  
  4608  type _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = struct {
  4609  	__0 struct {
  4610  		Flags DWORD
  4611  		_     [4]byte
  4612  	}
  4613  } /* winnt.h:4323:13 */
  4614  
  4615  type PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY /* winnt.h:4333:7 */
  4616  type PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY = uintptr                                /* winnt.h:4333:47 */
  4617  
  4618  type _PROCESS_MITIGATION_FONT_DISABLE_POLICY = struct{ __0 struct{ Flags DWORD } } /* winnt.h:4335:13 */
  4619  
  4620  type PROCESS_MITIGATION_FONT_DISABLE_POLICY = _PROCESS_MITIGATION_FONT_DISABLE_POLICY /* winnt.h:4344:7 */
  4621  type PPROCESS_MITIGATION_FONT_DISABLE_POLICY = uintptr                                /* winnt.h:4344:47 */
  4622  
  4623  type _PROCESS_MITIGATION_IMAGE_LOAD_POLICY = struct{ __0 struct{ Flags DWORD } } /* winnt.h:4346:13 */
  4624  
  4625  type PROCESS_MITIGATION_IMAGE_LOAD_POLICY = _PROCESS_MITIGATION_IMAGE_LOAD_POLICY /* winnt.h:4356:7 */
  4626  type PPROCESS_MITIGATION_IMAGE_LOAD_POLICY = uintptr                              /* winnt.h:4356:45 */
  4627  
  4628  type _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION = struct {
  4629  	TotalUserTime             LARGE_INTEGER
  4630  	TotalKernelTime           LARGE_INTEGER
  4631  	ThisPeriodTotalUserTime   LARGE_INTEGER
  4632  	ThisPeriodTotalKernelTime LARGE_INTEGER
  4633  	TotalPageFaultCount       DWORD
  4634  	TotalProcesses            DWORD
  4635  	ActiveProcesses           DWORD
  4636  	TotalTerminatedProcesses  DWORD
  4637  } /* winnt.h:4358:13 */
  4638  
  4639  type JOBOBJECT_BASIC_ACCOUNTING_INFORMATION = _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION /* winnt.h:4367:7 */
  4640  type PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION = uintptr                                /* winnt.h:4367:46 */
  4641  
  4642  type _JOBOBJECT_BASIC_LIMIT_INFORMATION = struct {
  4643  	PerProcessUserTimeLimit LARGE_INTEGER
  4644  	PerJobUserTimeLimit     LARGE_INTEGER
  4645  	LimitFlags              DWORD
  4646  	MinimumWorkingSetSize   SIZE_T
  4647  	MaximumWorkingSetSize   SIZE_T
  4648  	ActiveProcessLimit      DWORD
  4649  	Affinity                ULONG_PTR
  4650  	PriorityClass           DWORD
  4651  	SchedulingClass         DWORD
  4652  	_                       [4]byte
  4653  } /* winnt.h:4369:13 */
  4654  
  4655  type JOBOBJECT_BASIC_LIMIT_INFORMATION = _JOBOBJECT_BASIC_LIMIT_INFORMATION /* winnt.h:4379:7 */
  4656  type PJOBOBJECT_BASIC_LIMIT_INFORMATION = uintptr                           /* winnt.h:4379:41 */
  4657  
  4658  type _JOBOBJECT_EXTENDED_LIMIT_INFORMATION = struct {
  4659  	BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION
  4660  	IoInfo                IO_COUNTERS
  4661  	ProcessMemoryLimit    SIZE_T
  4662  	JobMemoryLimit        SIZE_T
  4663  	PeakProcessMemoryUsed SIZE_T
  4664  	PeakJobMemoryUsed     SIZE_T
  4665  } /* winnt.h:4381:13 */
  4666  
  4667  type JOBOBJECT_EXTENDED_LIMIT_INFORMATION = _JOBOBJECT_EXTENDED_LIMIT_INFORMATION /* winnt.h:4388:7 */
  4668  type PJOBOBJECT_EXTENDED_LIMIT_INFORMATION = uintptr                              /* winnt.h:4388:44 */
  4669  
  4670  type _JOBOBJECT_BASIC_PROCESS_ID_LIST = struct {
  4671  	NumberOfAssignedProcesses DWORD
  4672  	NumberOfProcessIdsInList  DWORD
  4673  	ProcessIdList             [1]ULONG_PTR
  4674  } /* winnt.h:4390:13 */
  4675  
  4676  type JOBOBJECT_BASIC_PROCESS_ID_LIST = _JOBOBJECT_BASIC_PROCESS_ID_LIST /* winnt.h:4394:7 */
  4677  type PJOBOBJECT_BASIC_PROCESS_ID_LIST = uintptr                         /* winnt.h:4394:39 */
  4678  
  4679  type _JOBOBJECT_BASIC_UI_RESTRICTIONS = struct{ UIRestrictionsClass DWORD } /* winnt.h:4396:13 */
  4680  
  4681  type JOBOBJECT_BASIC_UI_RESTRICTIONS = _JOBOBJECT_BASIC_UI_RESTRICTIONS /* winnt.h:4398:7 */
  4682  type PJOBOBJECT_BASIC_UI_RESTRICTIONS = uintptr                         /* winnt.h:4398:39 */
  4683  
  4684  type _JOBOBJECT_SECURITY_LIMIT_INFORMATION = struct {
  4685  	SecurityLimitFlags DWORD
  4686  	JobToken           HANDLE
  4687  	SidsToDisable      PTOKEN_GROUPS
  4688  	PrivilegesToDelete PTOKEN_PRIVILEGES
  4689  	RestrictedSids     PTOKEN_GROUPS
  4690  } /* winnt.h:4400:13 */
  4691  
  4692  type JOBOBJECT_SECURITY_LIMIT_INFORMATION = _JOBOBJECT_SECURITY_LIMIT_INFORMATION /* winnt.h:4406:7 */
  4693  type PJOBOBJECT_SECURITY_LIMIT_INFORMATION = uintptr                              /* winnt.h:4406:44 */
  4694  
  4695  type _JOBOBJECT_END_OF_JOB_TIME_INFORMATION = struct{ EndOfJobTimeAction DWORD } /* winnt.h:4408:13 */
  4696  
  4697  type JOBOBJECT_END_OF_JOB_TIME_INFORMATION = _JOBOBJECT_END_OF_JOB_TIME_INFORMATION /* winnt.h:4410:7 */
  4698  type PJOBOBJECT_END_OF_JOB_TIME_INFORMATION = uintptr                               /* winnt.h:4410:45 */
  4699  
  4700  type _JOBOBJECT_ASSOCIATE_COMPLETION_PORT = struct {
  4701  	CompletionKey  PVOID
  4702  	CompletionPort HANDLE
  4703  } /* winnt.h:4412:13 */
  4704  
  4705  type JOBOBJECT_ASSOCIATE_COMPLETION_PORT = _JOBOBJECT_ASSOCIATE_COMPLETION_PORT /* winnt.h:4415:7 */
  4706  type PJOBOBJECT_ASSOCIATE_COMPLETION_PORT = uintptr                             /* winnt.h:4415:43 */
  4707  
  4708  type _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = struct {
  4709  	BasicInfo JOBOBJECT_BASIC_ACCOUNTING_INFORMATION
  4710  	IoInfo    IO_COUNTERS
  4711  } /* winnt.h:4417:13 */
  4712  
  4713  type JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION /* winnt.h:4420:7 */
  4714  type PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = uintptr                                       /* winnt.h:4420:53 */
  4715  
  4716  type _JOBOBJECT_JOBSET_INFORMATION = struct{ MemberLevel DWORD } /* winnt.h:4422:13 */
  4717  
  4718  type JOBOBJECT_JOBSET_INFORMATION = _JOBOBJECT_JOBSET_INFORMATION /* winnt.h:4424:7 */
  4719  type PJOBOBJECT_JOBSET_INFORMATION = uintptr                      /* winnt.h:4424:36 */
  4720  
  4721  type JOBOBJECT_RATE_CONTROL_TOLERANCE = uint32 /* winnt.h:4430:7 */
  4722  
  4723  type JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = uint32 /* winnt.h:4436:7 */
  4724  
  4725  type _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = struct {
  4726  	IoReadBytesLimit             DWORD64
  4727  	IoWriteBytesLimit            DWORD64
  4728  	PerJobUserTimeLimit          LARGE_INTEGER
  4729  	JobMemoryLimit               DWORD64
  4730  	RateControlTolerance         JOBOBJECT_RATE_CONTROL_TOLERANCE
  4731  	RateControlToleranceInterval JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL
  4732  	LimitFlags                   DWORD
  4733  	_                            [4]byte
  4734  } /* winnt.h:4438:13 */
  4735  
  4736  type JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION /* winnt.h:4446:7 */
  4737  type PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = uintptr                                  /* winnt.h:4446:48 */
  4738  
  4739  type _JOBOBJECT_LIMIT_VIOLATION_INFORMATION = struct {
  4740  	LimitFlags                DWORD
  4741  	ViolationLimitFlags       DWORD
  4742  	IoReadBytes               DWORD64
  4743  	IoReadBytesLimit          DWORD64
  4744  	IoWriteBytes              DWORD64
  4745  	IoWriteBytesLimit         DWORD64
  4746  	PerJobUserTime            LARGE_INTEGER
  4747  	PerJobUserTimeLimit       LARGE_INTEGER
  4748  	JobMemory                 DWORD64
  4749  	JobMemoryLimit            DWORD64
  4750  	RateControlTolerance      JOBOBJECT_RATE_CONTROL_TOLERANCE
  4751  	RateControlToleranceLimit JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL
  4752  } /* winnt.h:4448:13 */
  4753  
  4754  type JOBOBJECT_LIMIT_VIOLATION_INFORMATION = _JOBOBJECT_LIMIT_VIOLATION_INFORMATION /* winnt.h:4461:7 */
  4755  type PJOBOBJECT_LIMIT_VIOLATION_INFORMATION = uintptr                               /* winnt.h:4461:45 */
  4756  
  4757  type _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION = struct {
  4758  	ControlFlags DWORD
  4759  	__4          struct{ CpuRate DWORD }
  4760  } /* winnt.h:4463:13 */
  4761  
  4762  type JOBOBJECT_CPU_RATE_CONTROL_INFORMATION = _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION /* winnt.h:4469:7 */
  4763  type PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION = uintptr                                /* winnt.h:4469:46 */
  4764  
  4765  type JOBOBJECTINFOCLASS = uint32 /* winnt.h:4573:7 */
  4766  
  4767  type FIRMWARE_TYPE = uint32   /* winnt.h:4580:7 */
  4768  type PFIRMWARE_TYPE = uintptr /* winnt.h:4580:21 */
  4769  
  4770  type LOGICAL_PROCESSOR_RELATIONSHIP = uint32 /* winnt.h:4603:7 */
  4771  
  4772  type PROCESSOR_CACHE_TYPE = uint32 /* winnt.h:4609:7 */
  4773  
  4774  type _CACHE_DESCRIPTOR = struct {
  4775  	Level         BYTE
  4776  	Associativity BYTE
  4777  	LineSize      WORD
  4778  	Size          DWORD
  4779  	Type          PROCESSOR_CACHE_TYPE
  4780  } /* winnt.h:4613:13 */
  4781  
  4782  type CACHE_DESCRIPTOR = _CACHE_DESCRIPTOR /* winnt.h:4619:7 */
  4783  type PCACHE_DESCRIPTOR = uintptr          /* winnt.h:4619:24 */
  4784  
  4785  type _SYSTEM_LOGICAL_PROCESSOR_INFORMATION = struct {
  4786  	ProcessorMask ULONG_PTR
  4787  	Relationship  LOGICAL_PROCESSOR_RELATIONSHIP
  4788  	u             struct {
  4789  		_             [0]uint64
  4790  		ProcessorCore struct{ Flags BYTE }
  4791  		_             [15]byte
  4792  	}
  4793  } /* winnt.h:4621:13 */
  4794  
  4795  type SYSTEM_LOGICAL_PROCESSOR_INFORMATION = _SYSTEM_LOGICAL_PROCESSOR_INFORMATION /* winnt.h:4634:7 */
  4796  type PSYSTEM_LOGICAL_PROCESSOR_INFORMATION = uintptr                              /* winnt.h:4634:44 */
  4797  
  4798  type _PROCESSOR_RELATIONSHIP = struct {
  4799  	Flags      BYTE
  4800  	Reserved   [21]BYTE
  4801  	GroupCount WORD
  4802  	GroupMask  [1]GROUP_AFFINITY
  4803  } /* winnt.h:4636:13 */
  4804  
  4805  type PROCESSOR_RELATIONSHIP = _PROCESSOR_RELATIONSHIP /* winnt.h:4641:7 */
  4806  type PPROCESSOR_RELATIONSHIP = uintptr                /* winnt.h:4641:30 */
  4807  
  4808  type _NUMA_NODE_RELATIONSHIP = struct {
  4809  	NodeNumber DWORD
  4810  	Reserved   [20]BYTE
  4811  	GroupMask  GROUP_AFFINITY
  4812  } /* winnt.h:4643:13 */
  4813  
  4814  type NUMA_NODE_RELATIONSHIP = _NUMA_NODE_RELATIONSHIP /* winnt.h:4647:7 */
  4815  type PNUMA_NODE_RELATIONSHIP = uintptr                /* winnt.h:4647:30 */
  4816  
  4817  type _CACHE_RELATIONSHIP = struct {
  4818  	Level         BYTE
  4819  	Associativity BYTE
  4820  	LineSize      WORD
  4821  	CacheSize     DWORD
  4822  	Type          PROCESSOR_CACHE_TYPE
  4823  	Reserved      [20]BYTE
  4824  	GroupMask     GROUP_AFFINITY
  4825  } /* winnt.h:4649:13 */
  4826  
  4827  type CACHE_RELATIONSHIP = _CACHE_RELATIONSHIP /* winnt.h:4657:7 */
  4828  type PCACHE_RELATIONSHIP = uintptr            /* winnt.h:4657:26 */
  4829  
  4830  type _PROCESSOR_GROUP_INFO = struct {
  4831  	MaximumProcessorCount BYTE
  4832  	ActiveProcessorCount  BYTE
  4833  	Reserved              [38]BYTE
  4834  	ActiveProcessorMask   KAFFINITY
  4835  } /* winnt.h:4659:13 */
  4836  
  4837  type PROCESSOR_GROUP_INFO = _PROCESSOR_GROUP_INFO /* winnt.h:4664:7 */
  4838  type PPROCESSOR_GROUP_INFO = uintptr              /* winnt.h:4664:28 */
  4839  
  4840  type _GROUP_RELATIONSHIP = struct {
  4841  	MaximumGroupCount WORD
  4842  	ActiveGroupCount  WORD
  4843  	Reserved          [20]BYTE
  4844  	GroupInfo         [1]PROCESSOR_GROUP_INFO
  4845  } /* winnt.h:4666:13 */
  4846  
  4847  type GROUP_RELATIONSHIP = _GROUP_RELATIONSHIP /* winnt.h:4671:7 */
  4848  type PGROUP_RELATIONSHIP = uintptr            /* winnt.h:4671:26 */
  4849  
  4850  type _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = struct {
  4851  	Relationship LOGICAL_PROCESSOR_RELATIONSHIP
  4852  	Size         DWORD
  4853  	u            struct {
  4854  		Processor PROCESSOR_RELATIONSHIP
  4855  		_         [32]byte
  4856  	}
  4857  } /* winnt.h:4673:5 */
  4858  
  4859  type SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX /* winnt.h:4684:61 */
  4860  type PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = uintptr                                 /* winnt.h:4684:101 */
  4861  
  4862  type _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = struct{ CycleTime DWORD64 } /* winnt.h:4686:13 */
  4863  
  4864  type SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION /* winnt.h:4688:7 */
  4865  type PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = uintptr                                 /* winnt.h:4688:47 */
  4866  
  4867  type _XSTATE_FEATURE = struct {
  4868  	Offset DWORD
  4869  	Size   DWORD
  4870  } /* winnt.h:4771:13 */
  4871  
  4872  type XSTATE_FEATURE = _XSTATE_FEATURE /* winnt.h:4774:7 */
  4873  type PXSTATE_FEATURE = uintptr        /* winnt.h:4774:22 */
  4874  
  4875  type _XSTATE_CONFIGURATION = struct {
  4876  	EnabledFeatures         DWORD64
  4877  	EnabledVolatileFeatures DWORD64
  4878  	Size                    DWORD
  4879  	OptimizedSave           uint8 /* DWORD OptimizedSave: 1 */
  4880  	_                       [3]byte
  4881  	Features                [64]XSTATE_FEATURE
  4882  } /* winnt.h:4776:13 */
  4883  
  4884  type XSTATE_CONFIGURATION = _XSTATE_CONFIGURATION /* winnt.h:4782:7 */
  4885  type PXSTATE_CONFIGURATION = uintptr              /* winnt.h:4782:28 */
  4886  
  4887  type _MEMORY_BASIC_INFORMATION = struct {
  4888  	BaseAddress       PVOID
  4889  	AllocationBase    PVOID
  4890  	AllocationProtect DWORD
  4891  	RegionSize        SIZE_T
  4892  	State             DWORD
  4893  	Protect           DWORD
  4894  	Type              DWORD
  4895  } /* winnt.h:4784:13 */
  4896  
  4897  type MEMORY_BASIC_INFORMATION = _MEMORY_BASIC_INFORMATION /* winnt.h:4792:7 */
  4898  type PMEMORY_BASIC_INFORMATION = uintptr                  /* winnt.h:4792:32 */
  4899  
  4900  type _MEMORY_BASIC_INFORMATION32 = struct {
  4901  	BaseAddress       DWORD
  4902  	AllocationBase    DWORD
  4903  	AllocationProtect DWORD
  4904  	RegionSize        DWORD
  4905  	State             DWORD
  4906  	Protect           DWORD
  4907  	Type              DWORD
  4908  } /* winnt.h:4794:13 */
  4909  
  4910  type MEMORY_BASIC_INFORMATION32 = _MEMORY_BASIC_INFORMATION32 /* winnt.h:4802:7 */
  4911  type PMEMORY_BASIC_INFORMATION32 = uintptr                    /* winnt.h:4802:34 */
  4912  
  4913  type _MEMORY_BASIC_INFORMATION64 = struct {
  4914  	BaseAddress       ULONGLONG
  4915  	AllocationBase    ULONGLONG
  4916  	AllocationProtect DWORD
  4917  	__alignment1      DWORD
  4918  	RegionSize        ULONGLONG
  4919  	State             DWORD
  4920  	Protect           DWORD
  4921  	Type              DWORD
  4922  	__alignment2      DWORD
  4923  } /* winnt.h:4804:13 */
  4924  
  4925  type MEMORY_BASIC_INFORMATION64 = _MEMORY_BASIC_INFORMATION64 /* winnt.h:4814:7 */
  4926  type PMEMORY_BASIC_INFORMATION64 = uintptr                    /* winnt.h:4814:34 */
  4927  
  4928  type FILE_ID_1281 = struct {
  4929  	LowPart  ULONGLONG
  4930  	HighPart ULONGLONG
  4931  } /* winnt.h:4981:13 */
  4932  
  4933  type FILE_ID_128 = FILE_ID_1281 /* winnt.h:4984:7 */
  4934  type PFILE_ID_128 = uintptr     /* winnt.h:4984:20 */
  4935  
  4936  type _FILE_NOTIFY_INFORMATION = struct {
  4937  	NextEntryOffset DWORD
  4938  	Action          DWORD
  4939  	FileNameLength  DWORD
  4940  	FileName        [1]WCHAR
  4941  	_               [2]byte
  4942  } /* winnt.h:4986:13 */
  4943  
  4944  type FILE_NOTIFY_INFORMATION = _FILE_NOTIFY_INFORMATION /* winnt.h:4991:7 */
  4945  type PFILE_NOTIFY_INFORMATION = uintptr                 /* winnt.h:4991:31 */
  4946  
  4947  type _FILE_SEGMENT_ELEMENT = struct {
  4948  	_      [0]uint64
  4949  	Buffer PVOID64
  4950  	_      [4]byte
  4951  } /* winnt.h:4993:13 */
  4952  
  4953  type FILE_SEGMENT_ELEMENT = _FILE_SEGMENT_ELEMENT /* winnt.h:4996:7 */
  4954  type PFILE_SEGMENT_ELEMENT = uintptr              /* winnt.h:4996:28 */
  4955  
  4956  type _REPARSE_GUID_DATA_BUFFER = struct {
  4957  	ReparseTag           DWORD
  4958  	ReparseDataLength    WORD
  4959  	Reserved             WORD
  4960  	ReparseGuid          GUID
  4961  	GenericReparseBuffer struct{ DataBuffer [1]BYTE }
  4962  	_                    [3]byte
  4963  } /* winnt.h:4998:13 */
  4964  
  4965  type REPARSE_GUID_DATA_BUFFER = _REPARSE_GUID_DATA_BUFFER /* winnt.h:5006:7 */
  4966  type PREPARSE_GUID_DATA_BUFFER = uintptr                  /* winnt.h:5006:32 */
  4967  
  4968  type SYSTEM_POWER_STATE = uint32   /* winnt.h:5231:5 */
  4969  type PSYSTEM_POWER_STATE = uintptr /* winnt.h:5231:24 */
  4970  
  4971  type POWER_ACTION = uint32   /* winnt.h:5239:5 */
  4972  type PPOWER_ACTION = uintptr /* winnt.h:5239:18 */
  4973  
  4974  type DEVICE_POWER_STATE = uint32   /* winnt.h:5244:5 */
  4975  type PDEVICE_POWER_STATE = uintptr /* winnt.h:5244:24 */
  4976  
  4977  type MONITOR_DISPLAY_STATE = uint32   /* winnt.h:5248:5 */
  4978  type PMONITOR_DISPLAY_STATE = uintptr /* winnt.h:5248:28 */
  4979  
  4980  type USER_ACTIVITY_PRESENCE = uint32   /* winnt.h:5256:5 */
  4981  type PUSER_ACTIVITY_PRESENCE = uintptr /* winnt.h:5256:28 */
  4982  
  4983  type EXECUTION_STATE = DWORD    /* winnt.h:5264:17 */
  4984  type PEXECUTION_STATE = uintptr /* winnt.h:5264:34 */
  4985  
  4986  type LATENCY_TIME = uint32 /* winnt.h:5268:5 */
  4987  
  4988  type POWER_REQUEST_TYPE = uint32   /* winnt.h:5286:5 */
  4989  type PPOWER_REQUEST_TYPE = uintptr /* winnt.h:5286:24 */
  4990  
  4991  type CM_Power_Data_s = struct {
  4992  	PD_Size                 DWORD
  4993  	PD_MostRecentPowerState DEVICE_POWER_STATE
  4994  	PD_Capabilities         DWORD
  4995  	PD_D1Latency            DWORD
  4996  	PD_D2Latency            DWORD
  4997  	PD_D3Latency            DWORD
  4998  	PD_PowerStateMapping    [7]DEVICE_POWER_STATE
  4999  	PD_DeepestSystemWake    SYSTEM_POWER_STATE
  5000  } /* winnt.h:5298:13 */
  5001  
  5002  type CM_POWER_DATA = CM_Power_Data_s /* winnt.h:5307:7 */
  5003  type PCM_POWER_DATA = uintptr        /* winnt.h:5307:21 */
  5004  
  5005  type POWER_INFORMATION_LEVEL = uint32 /* winnt.h:5391:7 */
  5006  
  5007  type POWER_USER_PRESENCE_TYPE = uint32   /* winnt.h:5397:7 */
  5008  type PPOWER_USER_PRESENCE_TYPE = uintptr /* winnt.h:5397:32 */
  5009  
  5010  type _POWER_USER_PRESENCE = struct{ UserPresence POWER_USER_PRESENCE_TYPE } /* winnt.h:5399:13 */
  5011  
  5012  type POWER_USER_PRESENCE = _POWER_USER_PRESENCE /* winnt.h:5401:7 */
  5013  type PPOWER_USER_PRESENCE = uintptr             /* winnt.h:5401:27 */
  5014  
  5015  type _POWER_SESSION_CONNECT = struct {
  5016  	Connected BOOLEAN
  5017  	Console   BOOLEAN
  5018  } /* winnt.h:5403:13 */
  5019  
  5020  type POWER_SESSION_CONNECT = _POWER_SESSION_CONNECT /* winnt.h:5406:7 */
  5021  type PPOWER_SESSION_CONNECT = uintptr               /* winnt.h:5406:29 */
  5022  
  5023  type _POWER_SESSION_TIMEOUTS = struct {
  5024  	InputTimeout   DWORD
  5025  	DisplayTimeout DWORD
  5026  } /* winnt.h:5408:13 */
  5027  
  5028  type POWER_SESSION_TIMEOUTS = _POWER_SESSION_TIMEOUTS /* winnt.h:5411:7 */
  5029  type PPOWER_SESSION_TIMEOUTS = uintptr                /* winnt.h:5411:30 */
  5030  
  5031  type _POWER_SESSION_RIT_STATE = struct {
  5032  	Active        BOOLEAN
  5033  	_             [3]byte
  5034  	LastInputTime DWORD
  5035  } /* winnt.h:5413:13 */
  5036  
  5037  type POWER_SESSION_RIT_STATE = _POWER_SESSION_RIT_STATE /* winnt.h:5416:7 */
  5038  type PPOWER_SESSION_RIT_STATE = uintptr                 /* winnt.h:5416:31 */
  5039  
  5040  type _POWER_SESSION_WINLOGON = struct {
  5041  	SessionId DWORD
  5042  	Console   BOOLEAN
  5043  	Locked    BOOLEAN
  5044  	_         [2]byte
  5045  } /* winnt.h:5418:13 */
  5046  
  5047  type POWER_SESSION_WINLOGON = _POWER_SESSION_WINLOGON /* winnt.h:5422:7 */
  5048  type PPOWER_SESSION_WINLOGON = uintptr                /* winnt.h:5422:30 */
  5049  
  5050  type _POWER_IDLE_RESILIENCY = struct {
  5051  	CoalescingTimeout    DWORD
  5052  	IdleResiliencyPeriod DWORD
  5053  } /* winnt.h:5424:13 */
  5054  
  5055  type POWER_IDLE_RESILIENCY = _POWER_IDLE_RESILIENCY /* winnt.h:5427:7 */
  5056  type PPOWER_IDLE_RESILIENCY = uintptr               /* winnt.h:5427:29 */
  5057  
  5058  type POWER_MONITOR_REQUEST_REASON = uint32 /* winnt.h:5445:7 */
  5059  
  5060  type _POWER_MONITOR_INVOCATION = struct {
  5061  	On            BOOLEAN
  5062  	Console       BOOLEAN
  5063  	_             [2]byte
  5064  	RequestReason POWER_MONITOR_REQUEST_REASON
  5065  } /* winnt.h:5447:13 */
  5066  
  5067  type POWER_MONITOR_INVOCATION = _POWER_MONITOR_INVOCATION /* winnt.h:5451:7 */
  5068  type PPOWER_MONITOR_INVOCATION = uintptr                  /* winnt.h:5451:32 */
  5069  
  5070  type _RESUME_PERFORMANCE = struct {
  5071  	PostTimeMs              DWORD
  5072  	_                       [4]byte
  5073  	TotalResumeTimeMs       ULONGLONG
  5074  	ResumeCompleteTimestamp ULONGLONG
  5075  } /* winnt.h:5453:13 */
  5076  
  5077  type RESUME_PERFORMANCE = _RESUME_PERFORMANCE /* winnt.h:5457:7 */
  5078  type PRESUME_PERFORMANCE = uintptr            /* winnt.h:5457:26 */
  5079  
  5080  type SYSTEM_POWER_CONDITION = uint32 /* winnt.h:5464:7 */
  5081  
  5082  type SET_POWER_SETTING_VALUE = struct {
  5083  	Version        DWORD
  5084  	Guid           GUID
  5085  	PowerCondition SYSTEM_POWER_CONDITION
  5086  	DataLength     DWORD
  5087  	Data           [1]BYTE
  5088  	_              [3]byte
  5089  }                                       /* winnt.h:5472:7 */
  5090  type PSET_POWER_SETTING_VALUE = uintptr /* winnt.h:5472:31 */
  5091  
  5092  type NOTIFY_USER_POWER_SETTING = struct{ Guid GUID } /* winnt.h:5478:7 */
  5093  type PNOTIFY_USER_POWER_SETTING = uintptr            /* winnt.h:5478:33 */
  5094  
  5095  type _APPLICATIONLAUNCH_SETTING_VALUE = struct {
  5096  	ActivationTime   LARGE_INTEGER
  5097  	Flags            DWORD
  5098  	ButtonInstanceID DWORD
  5099  } /* winnt.h:5480:13 */
  5100  
  5101  type APPLICATIONLAUNCH_SETTING_VALUE = _APPLICATIONLAUNCH_SETTING_VALUE /* winnt.h:5484:7 */
  5102  type PAPPLICATIONLAUNCH_SETTING_VALUE = uintptr                         /* winnt.h:5484:39 */
  5103  
  5104  type POWER_PLATFORM_ROLE = uint32   /* winnt.h:5497:7 */
  5105  type PPOWER_PLATFORM_ROLE = uintptr /* winnt.h:5497:27 */
  5106  
  5107  type _POWER_PLATFORM_INFORMATION = struct{ AoAc BOOLEAN } /* winnt.h:5499:13 */
  5108  
  5109  type POWER_PLATFORM_INFORMATION = _POWER_PLATFORM_INFORMATION /* winnt.h:5501:7 */
  5110  type PPOWER_PLATFORM_INFORMATION = uintptr                    /* winnt.h:5501:34 */
  5111  
  5112  type BATTERY_REPORTING_SCALE = struct {
  5113  	Granularity DWORD
  5114  	Capacity    DWORD
  5115  }                                       /* winnt.h:5520:7 */
  5116  type PBATTERY_REPORTING_SCALE = uintptr /* winnt.h:5520:31 */
  5117  
  5118  type PPM_WMI_LEGACY_PERFSTATE = struct {
  5119  	Frequency        DWORD
  5120  	Flags            DWORD
  5121  	PercentFrequency DWORD
  5122  }                                        /* winnt.h:5526:7 */
  5123  type PPPM_WMI_LEGACY_PERFSTATE = uintptr /* winnt.h:5526:32 */
  5124  
  5125  type PPM_WMI_IDLE_STATE = struct {
  5126  	Latency        DWORD
  5127  	Power          DWORD
  5128  	TimeCheck      DWORD
  5129  	PromotePercent BYTE
  5130  	DemotePercent  BYTE
  5131  	StateType      BYTE
  5132  	Reserved       BYTE
  5133  	StateFlags     DWORD
  5134  	Context        DWORD
  5135  	IdleHandler    DWORD
  5136  	Reserved1      DWORD
  5137  }                                  /* winnt.h:5540:7 */
  5138  type PPPM_WMI_IDLE_STATE = uintptr /* winnt.h:5540:26 */
  5139  
  5140  type PPM_WMI_IDLE_STATES = struct {
  5141  	Type             DWORD
  5142  	Count            DWORD
  5143  	TargetState      DWORD
  5144  	OldState         DWORD
  5145  	TargetProcessors DWORD64
  5146  	State            [1]PPM_WMI_IDLE_STATE
  5147  }                                   /* winnt.h:5549:7 */
  5148  type PPPM_WMI_IDLE_STATES = uintptr /* winnt.h:5549:27 */
  5149  
  5150  type PPM_WMI_IDLE_STATES_EX = struct {
  5151  	Type             DWORD
  5152  	Count            DWORD
  5153  	TargetState      DWORD
  5154  	OldState         DWORD
  5155  	TargetProcessors PVOID
  5156  	State            [1]PPM_WMI_IDLE_STATE
  5157  }                                      /* winnt.h:5558:7 */
  5158  type PPPM_WMI_IDLE_STATES_EX = uintptr /* winnt.h:5558:30 */
  5159  
  5160  type PPM_WMI_PERF_STATE = struct {
  5161  	Frequency        DWORD
  5162  	Power            DWORD
  5163  	PercentFrequency BYTE
  5164  	IncreaseLevel    BYTE
  5165  	DecreaseLevel    BYTE
  5166  	Type             BYTE
  5167  	IncreaseTime     DWORD
  5168  	DecreaseTime     DWORD
  5169  	_                [4]byte
  5170  	Control          DWORD64
  5171  	Status           DWORD64
  5172  	HitCount         DWORD
  5173  	Reserved1        DWORD
  5174  	Reserved2        DWORD64
  5175  	Reserved3        DWORD64
  5176  }                                  /* winnt.h:5575:7 */
  5177  type PPPM_WMI_PERF_STATE = uintptr /* winnt.h:5575:26 */
  5178  
  5179  type PPM_WMI_PERF_STATES = struct {
  5180  	Count             DWORD
  5181  	MaxFrequency      DWORD
  5182  	CurrentState      DWORD
  5183  	MaxPerfState      DWORD
  5184  	MinPerfState      DWORD
  5185  	LowestPerfState   DWORD
  5186  	ThermalConstraint DWORD
  5187  	BusyAdjThreshold  BYTE
  5188  	PolicyType        BYTE
  5189  	Type              BYTE
  5190  	Reserved          BYTE
  5191  	TimerInterval     DWORD
  5192  	_                 [4]byte
  5193  	TargetProcessors  DWORD64
  5194  	PStateHandler     DWORD
  5195  	PStateContext     DWORD
  5196  	TStateHandler     DWORD
  5197  	TStateContext     DWORD
  5198  	FeedbackHandler   DWORD
  5199  	Reserved1         DWORD
  5200  	Reserved2         DWORD64
  5201  	State             [1]PPM_WMI_PERF_STATE
  5202  }                                   /* winnt.h:5599:7 */
  5203  type PPPM_WMI_PERF_STATES = uintptr /* winnt.h:5599:27 */
  5204  
  5205  type PPM_WMI_PERF_STATES_EX = struct {
  5206  	Count             DWORD
  5207  	MaxFrequency      DWORD
  5208  	CurrentState      DWORD
  5209  	MaxPerfState      DWORD
  5210  	MinPerfState      DWORD
  5211  	LowestPerfState   DWORD
  5212  	ThermalConstraint DWORD
  5213  	BusyAdjThreshold  BYTE
  5214  	PolicyType        BYTE
  5215  	Type              BYTE
  5216  	Reserved          BYTE
  5217  	TimerInterval     DWORD
  5218  	TargetProcessors  PVOID
  5219  	PStateHandler     DWORD
  5220  	PStateContext     DWORD
  5221  	TStateHandler     DWORD
  5222  	TStateContext     DWORD
  5223  	FeedbackHandler   DWORD
  5224  	Reserved1         DWORD
  5225  	Reserved2         DWORD64
  5226  	State             [1]PPM_WMI_PERF_STATE
  5227  }                                      /* winnt.h:5623:7 */
  5228  type PPPM_WMI_PERF_STATES_EX = uintptr /* winnt.h:5623:30 */
  5229  
  5230  type PPM_IDLE_STATE_ACCOUNTING = struct {
  5231  	IdleTransitions    DWORD
  5232  	FailedTransitions  DWORD
  5233  	InvalidBucketIndex DWORD
  5234  	_                  [4]byte
  5235  	TotalTime          DWORD64
  5236  	IdleTimeBuckets    [6]DWORD
  5237  }                                         /* winnt.h:5634:7 */
  5238  type PPPM_IDLE_STATE_ACCOUNTING = uintptr /* winnt.h:5634:33 */
  5239  
  5240  type PPM_IDLE_ACCOUNTING = struct {
  5241  	StateCount       DWORD
  5242  	TotalTransitions DWORD
  5243  	ResetCount       DWORD
  5244  	_                [4]byte
  5245  	StartTime        DWORD64
  5246  	State            [1]PPM_IDLE_STATE_ACCOUNTING
  5247  }                                   /* winnt.h:5642:7 */
  5248  type PPPM_IDLE_ACCOUNTING = uintptr /* winnt.h:5642:27 */
  5249  
  5250  type PPM_IDLE_STATE_BUCKET_EX = struct {
  5251  	TotalTimeUs DWORD64
  5252  	MinTimeUs   DWORD
  5253  	MaxTimeUs   DWORD
  5254  	Count       DWORD
  5255  	_           [4]byte
  5256  }                                        /* winnt.h:5649:7 */
  5257  type PPPM_IDLE_STATE_BUCKET_EX = uintptr /* winnt.h:5649:32 */
  5258  
  5259  type PPM_IDLE_STATE_ACCOUNTING_EX = struct {
  5260  	TotalTime            DWORD64
  5261  	IdleTransitions      DWORD
  5262  	FailedTransitions    DWORD
  5263  	InvalidBucketIndex   DWORD
  5264  	MinTimeUs            DWORD
  5265  	MaxTimeUs            DWORD
  5266  	CancelledTransitions DWORD
  5267  	IdleTimeBuckets      [16]PPM_IDLE_STATE_BUCKET_EX
  5268  }                                            /* winnt.h:5660:7 */
  5269  type PPPM_IDLE_STATE_ACCOUNTING_EX = uintptr /* winnt.h:5660:36 */
  5270  
  5271  type PPM_IDLE_ACCOUNTING_EX = struct {
  5272  	StateCount       DWORD
  5273  	TotalTransitions DWORD
  5274  	ResetCount       DWORD
  5275  	AbortCount       DWORD
  5276  	StartTime        DWORD64
  5277  	State            [1]PPM_IDLE_STATE_ACCOUNTING_EX
  5278  }                                      /* winnt.h:5669:7 */
  5279  type PPPM_IDLE_ACCOUNTING_EX = uintptr /* winnt.h:5669:30 */
  5280  
  5281  type PPM_PERFSTATE_EVENT = struct {
  5282  	State     DWORD
  5283  	Status    DWORD
  5284  	Latency   DWORD
  5285  	Speed     DWORD
  5286  	Processor DWORD
  5287  }                                   /* winnt.h:5713:7 */
  5288  type PPPM_PERFSTATE_EVENT = uintptr /* winnt.h:5713:27 */
  5289  
  5290  type PPM_PERFSTATE_DOMAIN_EVENT = struct {
  5291  	State      DWORD
  5292  	Latency    DWORD
  5293  	Speed      DWORD
  5294  	_          [4]byte
  5295  	Processors DWORD64
  5296  }                                          /* winnt.h:5720:7 */
  5297  type PPPM_PERFSTATE_DOMAIN_EVENT = uintptr /* winnt.h:5720:34 */
  5298  
  5299  type PPM_IDLESTATE_EVENT = struct {
  5300  	NewState   DWORD
  5301  	OldState   DWORD
  5302  	Processors DWORD64
  5303  }                                   /* winnt.h:5726:7 */
  5304  type PPPM_IDLESTATE_EVENT = uintptr /* winnt.h:5726:27 */
  5305  
  5306  type PPM_THERMALCHANGE_EVENT = struct {
  5307  	ThermalConstraint DWORD
  5308  	_                 [4]byte
  5309  	Processors        DWORD64
  5310  }                                       /* winnt.h:5731:7 */
  5311  type PPPM_THERMALCHANGE_EVENT = uintptr /* winnt.h:5731:31 */
  5312  type PPM_THERMAL_POLICY_EVENT = struct {
  5313  	Mode       BYTE
  5314  	_          [7]byte
  5315  	Processors DWORD64
  5316  }                                        /* winnt.h:5735:7 */
  5317  type PPPM_THERMAL_POLICY_EVENT = uintptr /* winnt.h:5735:32 */
  5318  
  5319  type POWER_ACTION_POLICY = struct {
  5320  	Action    POWER_ACTION
  5321  	Flags     DWORD
  5322  	EventCode DWORD
  5323  }                                   /* winnt.h:5752:7 */
  5324  type PPOWER_ACTION_POLICY = uintptr /* winnt.h:5752:27 */
  5325  
  5326  type PROCESSOR_IDLESTATE_INFO = struct {
  5327  	TimeCheck      DWORD
  5328  	DemotePercent  BYTE
  5329  	PromotePercent BYTE
  5330  	Spare          [2]BYTE
  5331  }                                        /* winnt.h:5787:7 */
  5332  type PPROCESSOR_IDLESTATE_INFO = uintptr /* winnt.h:5787:32 */
  5333  
  5334  type SYSTEM_POWER_LEVEL = struct {
  5335  	Enable         BOOLEAN
  5336  	Spare          [3]BYTE
  5337  	BatteryLevel   DWORD
  5338  	PowerPolicy    POWER_ACTION_POLICY
  5339  	MinSystemState SYSTEM_POWER_STATE
  5340  }                                  /* winnt.h:5795:7 */
  5341  type PSYSTEM_POWER_LEVEL = uintptr /* winnt.h:5795:26 */
  5342  
  5343  type _SYSTEM_POWER_POLICY = struct {
  5344  	Revision                    DWORD
  5345  	PowerButton                 POWER_ACTION_POLICY
  5346  	SleepButton                 POWER_ACTION_POLICY
  5347  	LidClose                    POWER_ACTION_POLICY
  5348  	LidOpenWake                 SYSTEM_POWER_STATE
  5349  	Reserved                    DWORD
  5350  	Idle                        POWER_ACTION_POLICY
  5351  	IdleTimeout                 DWORD
  5352  	IdleSensitivity             BYTE
  5353  	DynamicThrottle             BYTE
  5354  	Spare2                      [2]BYTE
  5355  	MinSleep                    SYSTEM_POWER_STATE
  5356  	MaxSleep                    SYSTEM_POWER_STATE
  5357  	ReducedLatencySleep         SYSTEM_POWER_STATE
  5358  	WinLogonFlags               DWORD
  5359  	Spare3                      DWORD
  5360  	DozeS4Timeout               DWORD
  5361  	BroadcastCapacityResolution DWORD
  5362  	DischargePolicy             [4]SYSTEM_POWER_LEVEL
  5363  	VideoTimeout                DWORD
  5364  	VideoDimDisplay             BOOLEAN
  5365  	_                           [3]byte
  5366  	VideoReserved               [3]DWORD
  5367  	SpindownTimeout             DWORD
  5368  	OptimizeForPower            BOOLEAN
  5369  	FanThrottleTolerance        BYTE
  5370  	ForcedThrottle              BYTE
  5371  	MinThrottle                 BYTE
  5372  	OverThrottled               POWER_ACTION_POLICY
  5373  } /* winnt.h:5797:13 */
  5374  
  5375  type SYSTEM_POWER_POLICY = _SYSTEM_POWER_POLICY /* winnt.h:5826:7 */
  5376  type PSYSTEM_POWER_POLICY = uintptr             /* winnt.h:5826:27 */
  5377  
  5378  type PROCESSOR_IDLESTATE_POLICY = struct {
  5379  	Revision    WORD
  5380  	Flags       struct{ AsWORD WORD }
  5381  	PolicyCount DWORD
  5382  	Policy      [3]PROCESSOR_IDLESTATE_INFO
  5383  }                                          /* winnt.h:5846:7 */
  5384  type PPROCESSOR_IDLESTATE_POLICY = uintptr /* winnt.h:5846:34 */
  5385  
  5386  type _PROCESSOR_POWER_POLICY_INFO = struct {
  5387  	TimeCheck      DWORD
  5388  	DemoteLimit    DWORD
  5389  	PromoteLimit   DWORD
  5390  	DemotePercent  BYTE
  5391  	PromotePercent BYTE
  5392  	Spare          [2]BYTE
  5393  	AllowDemotion  uint32 /* DWORD AllowDemotion: 1, DWORD AllowPromotion: 1, DWORD Reserved: 30 */
  5394  } /* winnt.h:5848:13 */
  5395  
  5396  type PROCESSOR_POWER_POLICY_INFO = _PROCESSOR_POWER_POLICY_INFO /* winnt.h:5858:7 */
  5397  type PPROCESSOR_POWER_POLICY_INFO = uintptr                     /* winnt.h:5858:35 */
  5398  
  5399  type _PROCESSOR_POWER_POLICY = struct {
  5400  	Revision        DWORD
  5401  	DynamicThrottle BYTE
  5402  	Spare           [3]BYTE
  5403  	DisableCStates  uint32 /* DWORD DisableCStates: 1, DWORD Reserved: 31 */
  5404  	PolicyCount     DWORD
  5405  	Policy          [3]PROCESSOR_POWER_POLICY_INFO
  5406  } /* winnt.h:5860:13 */
  5407  
  5408  type PROCESSOR_POWER_POLICY = _PROCESSOR_POWER_POLICY /* winnt.h:5868:7 */
  5409  type PPROCESSOR_POWER_POLICY = uintptr                /* winnt.h:5868:30 */
  5410  
  5411  type PROCESSOR_PERFSTATE_POLICY = struct {
  5412  	Revision         DWORD
  5413  	MaxThrottle      BYTE
  5414  	MinThrottle      BYTE
  5415  	BusyAdjThreshold BYTE
  5416  	u                struct{ Spare BYTE }
  5417  	TimeCheck        DWORD
  5418  	IncreaseTime     DWORD
  5419  	DecreaseTime     DWORD
  5420  	IncreasePercent  DWORD
  5421  	DecreasePercent  DWORD
  5422  }                                          /* winnt.h:5892:7 */
  5423  type PPROCESSOR_PERFSTATE_POLICY = uintptr /* winnt.h:5892:34 */
  5424  
  5425  type _ADMINISTRATOR_POWER_POLICY = struct {
  5426  	MinSleep           SYSTEM_POWER_STATE
  5427  	MaxSleep           SYSTEM_POWER_STATE
  5428  	MinVideoTimeout    DWORD
  5429  	MaxVideoTimeout    DWORD
  5430  	MinSpindownTimeout DWORD
  5431  	MaxSpindownTimeout DWORD
  5432  } /* winnt.h:5894:13 */
  5433  
  5434  type ADMINISTRATOR_POWER_POLICY = _ADMINISTRATOR_POWER_POLICY /* winnt.h:5901:7 */
  5435  type PADMINISTRATOR_POWER_POLICY = uintptr                    /* winnt.h:5901:34 */
  5436  
  5437  type SYSTEM_POWER_CAPABILITIES = struct {
  5438  	PowerButtonPresent     BOOLEAN
  5439  	SleepButtonPresent     BOOLEAN
  5440  	LidPresent             BOOLEAN
  5441  	SystemS1               BOOLEAN
  5442  	SystemS2               BOOLEAN
  5443  	SystemS3               BOOLEAN
  5444  	SystemS4               BOOLEAN
  5445  	SystemS5               BOOLEAN
  5446  	HiberFilePresent       BOOLEAN
  5447  	FullWake               BOOLEAN
  5448  	VideoDimPresent        BOOLEAN
  5449  	ApmPresent             BOOLEAN
  5450  	UpsPresent             BOOLEAN
  5451  	ThermalControl         BOOLEAN
  5452  	ProcessorThrottle      BOOLEAN
  5453  	ProcessorMinThrottle   BYTE
  5454  	ProcessorMaxThrottle   BYTE
  5455  	FastSystemS4           BOOLEAN
  5456  	spare2                 [3]BYTE
  5457  	DiskSpinDown           BOOLEAN
  5458  	spare3                 [8]BYTE
  5459  	SystemBatteriesPresent BOOLEAN
  5460  	BatteriesAreShortTerm  BOOLEAN
  5461  	BatteryScale           [3]BATTERY_REPORTING_SCALE
  5462  	AcOnLineWake           SYSTEM_POWER_STATE
  5463  	SoftLidWake            SYSTEM_POWER_STATE
  5464  	RtcWake                SYSTEM_POWER_STATE
  5465  	MinDeviceWakeState     SYSTEM_POWER_STATE
  5466  	DefaultLowLatencyWake  SYSTEM_POWER_STATE
  5467  }                                         /* winnt.h:5933:7 */
  5468  type PSYSTEM_POWER_CAPABILITIES = uintptr /* winnt.h:5933:33 */
  5469  
  5470  type SYSTEM_BATTERY_STATE = struct {
  5471  	AcOnLine          BOOLEAN
  5472  	BatteryPresent    BOOLEAN
  5473  	Charging          BOOLEAN
  5474  	Discharging       BOOLEAN
  5475  	Spare1            [4]BOOLEAN
  5476  	MaxCapacity       DWORD
  5477  	RemainingCapacity DWORD
  5478  	Rate              DWORD
  5479  	EstimatedTime     DWORD
  5480  	DefaultAlert1     DWORD
  5481  	DefaultAlert2     DWORD
  5482  }                                    /* winnt.h:5947:7 */
  5483  type PSYSTEM_BATTERY_STATE = uintptr /* winnt.h:5947:28 */
  5484  
  5485  // *
  5486  // This file has no copyright assigned and is placed in the Public Domain.
  5487  // This file is part of the mingw-w64 runtime package.
  5488  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5489  
  5490  // *
  5491  // This file has no copyright assigned and is placed in the Public Domain.
  5492  // This file is part of the mingw-w64 runtime package.
  5493  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5494  
  5495  type _IMAGE_DOS_HEADER = struct {
  5496  	e_magic    WORD
  5497  	e_cblp     WORD
  5498  	e_cp       WORD
  5499  	e_crlc     WORD
  5500  	e_cparhdr  WORD
  5501  	e_minalloc WORD
  5502  	e_maxalloc WORD
  5503  	e_ss       WORD
  5504  	e_sp       WORD
  5505  	e_csum     WORD
  5506  	e_ip       WORD
  5507  	e_cs       WORD
  5508  	e_lfarlc   WORD
  5509  	e_ovno     WORD
  5510  	e_res      [4]WORD
  5511  	e_oemid    WORD
  5512  	e_oeminfo  WORD
  5513  	e_res2     [10]WORD
  5514  	e_lfanew   LONG
  5515  } /* winnt.h:5959:13 */
  5516  
  5517  // *
  5518  // This file has no copyright assigned and is placed in the Public Domain.
  5519  // This file is part of the mingw-w64 runtime package.
  5520  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5521  
  5522  // *
  5523  // This file has no copyright assigned and is placed in the Public Domain.
  5524  // This file is part of the mingw-w64 runtime package.
  5525  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5526  
  5527  type IMAGE_DOS_HEADER = _IMAGE_DOS_HEADER /* winnt.h:5979:7 */
  5528  type PIMAGE_DOS_HEADER = uintptr          /* winnt.h:5979:24 */
  5529  
  5530  type _IMAGE_OS2_HEADER = struct {
  5531  	ne_magic        WORD
  5532  	ne_ver          CHAR
  5533  	ne_rev          CHAR
  5534  	ne_enttab       WORD
  5535  	ne_cbenttab     WORD
  5536  	ne_crc          LONG
  5537  	ne_flags        WORD
  5538  	ne_autodata     WORD
  5539  	ne_heap         WORD
  5540  	ne_stack        WORD
  5541  	ne_csip         LONG
  5542  	ne_sssp         LONG
  5543  	ne_cseg         WORD
  5544  	ne_cmod         WORD
  5545  	ne_cbnrestab    WORD
  5546  	ne_segtab       WORD
  5547  	ne_rsrctab      WORD
  5548  	ne_restab       WORD
  5549  	ne_modtab       WORD
  5550  	ne_imptab       WORD
  5551  	ne_nrestab      LONG
  5552  	ne_cmovent      WORD
  5553  	ne_align        WORD
  5554  	ne_cres         WORD
  5555  	ne_exetyp       BYTE
  5556  	ne_flagsothers  BYTE
  5557  	ne_pretthunks   WORD
  5558  	ne_psegrefbytes WORD
  5559  	ne_swaparea     WORD
  5560  	ne_expver       WORD
  5561  } /* winnt.h:5981:13 */
  5562  
  5563  type IMAGE_OS2_HEADER = _IMAGE_OS2_HEADER /* winnt.h:6012:7 */
  5564  type PIMAGE_OS2_HEADER = uintptr          /* winnt.h:6012:24 */
  5565  
  5566  type _IMAGE_VXD_HEADER = struct {
  5567  	e32_magic        WORD
  5568  	e32_border       BYTE
  5569  	e32_worder       BYTE
  5570  	e32_level        DWORD
  5571  	e32_cpu          WORD
  5572  	e32_os           WORD
  5573  	e32_ver          DWORD
  5574  	e32_mflags       DWORD
  5575  	e32_mpages       DWORD
  5576  	e32_startobj     DWORD
  5577  	e32_eip          DWORD
  5578  	e32_stackobj     DWORD
  5579  	e32_esp          DWORD
  5580  	e32_pagesize     DWORD
  5581  	e32_lastpagesize DWORD
  5582  	e32_fixupsize    DWORD
  5583  	e32_fixupsum     DWORD
  5584  	e32_ldrsize      DWORD
  5585  	e32_ldrsum       DWORD
  5586  	e32_objtab       DWORD
  5587  	e32_objcnt       DWORD
  5588  	e32_objmap       DWORD
  5589  	e32_itermap      DWORD
  5590  	e32_rsrctab      DWORD
  5591  	e32_rsrccnt      DWORD
  5592  	e32_restab       DWORD
  5593  	e32_enttab       DWORD
  5594  	e32_dirtab       DWORD
  5595  	e32_dircnt       DWORD
  5596  	e32_fpagetab     DWORD
  5597  	e32_frectab      DWORD
  5598  	e32_impmod       DWORD
  5599  	e32_impmodcnt    DWORD
  5600  	e32_impproc      DWORD
  5601  	e32_pagesum      DWORD
  5602  	e32_datapage     DWORD
  5603  	e32_preload      DWORD
  5604  	e32_nrestab      DWORD
  5605  	e32_cbnrestab    DWORD
  5606  	e32_nressum      DWORD
  5607  	e32_autodata     DWORD
  5608  	e32_debuginfo    DWORD
  5609  	e32_debuglen     DWORD
  5610  	e32_instpreload  DWORD
  5611  	e32_instdemand   DWORD
  5612  	e32_heapsize     DWORD
  5613  	e32_res3         [12]BYTE
  5614  	e32_winresoff    DWORD
  5615  	e32_winreslen    DWORD
  5616  	e32_devid        WORD
  5617  	e32_ddkver       WORD
  5618  } /* winnt.h:6014:13 */
  5619  
  5620  type IMAGE_VXD_HEADER = _IMAGE_VXD_HEADER /* winnt.h:6066:7 */
  5621  type PIMAGE_VXD_HEADER = uintptr          /* winnt.h:6066:24 */
  5622  
  5623  // *
  5624  // This file has no copyright assigned and is placed in the Public Domain.
  5625  // This file is part of the mingw-w64 runtime package.
  5626  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5627  
  5628  type _IMAGE_FILE_HEADER = struct {
  5629  	Machine              WORD
  5630  	NumberOfSections     WORD
  5631  	TimeDateStamp        DWORD
  5632  	PointerToSymbolTable DWORD
  5633  	NumberOfSymbols      DWORD
  5634  	SizeOfOptionalHeader WORD
  5635  	Characteristics      WORD
  5636  } /* winnt.h:6070:13 */
  5637  
  5638  // *
  5639  // This file has no copyright assigned and is placed in the Public Domain.
  5640  // This file is part of the mingw-w64 runtime package.
  5641  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5642  
  5643  type IMAGE_FILE_HEADER = _IMAGE_FILE_HEADER /* winnt.h:6078:7 */
  5644  type PIMAGE_FILE_HEADER = uintptr           /* winnt.h:6078:25 */
  5645  
  5646  type _IMAGE_DATA_DIRECTORY = struct {
  5647  	VirtualAddress DWORD
  5648  	Size           DWORD
  5649  } /* winnt.h:6131:13 */
  5650  
  5651  type IMAGE_DATA_DIRECTORY = _IMAGE_DATA_DIRECTORY /* winnt.h:6134:7 */
  5652  type PIMAGE_DATA_DIRECTORY = uintptr              /* winnt.h:6134:28 */
  5653  
  5654  type _IMAGE_OPTIONAL_HEADER = struct {
  5655  	Magic                       WORD
  5656  	MajorLinkerVersion          BYTE
  5657  	MinorLinkerVersion          BYTE
  5658  	SizeOfCode                  DWORD
  5659  	SizeOfInitializedData       DWORD
  5660  	SizeOfUninitializedData     DWORD
  5661  	AddressOfEntryPoint         DWORD
  5662  	BaseOfCode                  DWORD
  5663  	BaseOfData                  DWORD
  5664  	ImageBase                   DWORD
  5665  	SectionAlignment            DWORD
  5666  	FileAlignment               DWORD
  5667  	MajorOperatingSystemVersion WORD
  5668  	MinorOperatingSystemVersion WORD
  5669  	MajorImageVersion           WORD
  5670  	MinorImageVersion           WORD
  5671  	MajorSubsystemVersion       WORD
  5672  	MinorSubsystemVersion       WORD
  5673  	Win32VersionValue           DWORD
  5674  	SizeOfImage                 DWORD
  5675  	SizeOfHeaders               DWORD
  5676  	CheckSum                    DWORD
  5677  	Subsystem                   WORD
  5678  	DllCharacteristics          WORD
  5679  	SizeOfStackReserve          DWORD
  5680  	SizeOfStackCommit           DWORD
  5681  	SizeOfHeapReserve           DWORD
  5682  	SizeOfHeapCommit            DWORD
  5683  	LoaderFlags                 DWORD
  5684  	NumberOfRvaAndSizes         DWORD
  5685  	DataDirectory               [16]IMAGE_DATA_DIRECTORY
  5686  } /* winnt.h:6138:13 */
  5687  
  5688  type IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER /* winnt.h:6171:7 */
  5689  type PIMAGE_OPTIONAL_HEADER32 = uintptr               /* winnt.h:6171:31 */
  5690  
  5691  type _IMAGE_ROM_OPTIONAL_HEADER = struct {
  5692  	Magic                   WORD
  5693  	MajorLinkerVersion      BYTE
  5694  	MinorLinkerVersion      BYTE
  5695  	SizeOfCode              DWORD
  5696  	SizeOfInitializedData   DWORD
  5697  	SizeOfUninitializedData DWORD
  5698  	AddressOfEntryPoint     DWORD
  5699  	BaseOfCode              DWORD
  5700  	BaseOfData              DWORD
  5701  	BaseOfBss               DWORD
  5702  	GprMask                 DWORD
  5703  	CprMask                 [4]DWORD
  5704  	GpValue                 DWORD
  5705  } /* winnt.h:6173:13 */
  5706  
  5707  type IMAGE_ROM_OPTIONAL_HEADER = _IMAGE_ROM_OPTIONAL_HEADER /* winnt.h:6187:7 */
  5708  type PIMAGE_ROM_OPTIONAL_HEADER = uintptr                   /* winnt.h:6187:33 */
  5709  
  5710  type _IMAGE_OPTIONAL_HEADER64 = struct {
  5711  	Magic                       WORD
  5712  	MajorLinkerVersion          BYTE
  5713  	MinorLinkerVersion          BYTE
  5714  	SizeOfCode                  DWORD
  5715  	SizeOfInitializedData       DWORD
  5716  	SizeOfUninitializedData     DWORD
  5717  	AddressOfEntryPoint         DWORD
  5718  	BaseOfCode                  DWORD
  5719  	ImageBase                   ULONGLONG
  5720  	SectionAlignment            DWORD
  5721  	FileAlignment               DWORD
  5722  	MajorOperatingSystemVersion WORD
  5723  	MinorOperatingSystemVersion WORD
  5724  	MajorImageVersion           WORD
  5725  	MinorImageVersion           WORD
  5726  	MajorSubsystemVersion       WORD
  5727  	MinorSubsystemVersion       WORD
  5728  	Win32VersionValue           DWORD
  5729  	SizeOfImage                 DWORD
  5730  	SizeOfHeaders               DWORD
  5731  	CheckSum                    DWORD
  5732  	Subsystem                   WORD
  5733  	DllCharacteristics          WORD
  5734  	SizeOfStackReserve          ULONGLONG
  5735  	SizeOfStackCommit           ULONGLONG
  5736  	SizeOfHeapReserve           ULONGLONG
  5737  	SizeOfHeapCommit            ULONGLONG
  5738  	LoaderFlags                 DWORD
  5739  	NumberOfRvaAndSizes         DWORD
  5740  	DataDirectory               [16]IMAGE_DATA_DIRECTORY
  5741  } /* winnt.h:6189:13 */
  5742  
  5743  type IMAGE_OPTIONAL_HEADER64 = _IMAGE_OPTIONAL_HEADER64 /* winnt.h:6220:7 */
  5744  type PIMAGE_OPTIONAL_HEADER64 = uintptr                 /* winnt.h:6220:31 */
  5745  
  5746  type IMAGE_OPTIONAL_HEADER = IMAGE_OPTIONAL_HEADER32   /* winnt.h:6237:37 */
  5747  type PIMAGE_OPTIONAL_HEADER = PIMAGE_OPTIONAL_HEADER32 /* winnt.h:6238:38 */
  5748  
  5749  type _IMAGE_NT_HEADERS64 = struct {
  5750  	Signature      DWORD
  5751  	FileHeader     IMAGE_FILE_HEADER
  5752  	OptionalHeader IMAGE_OPTIONAL_HEADER64
  5753  } /* winnt.h:6243:13 */
  5754  
  5755  type IMAGE_NT_HEADERS64 = _IMAGE_NT_HEADERS64 /* winnt.h:6247:7 */
  5756  type PIMAGE_NT_HEADERS64 = uintptr            /* winnt.h:6247:26 */
  5757  
  5758  type _IMAGE_NT_HEADERS = struct {
  5759  	Signature      DWORD
  5760  	FileHeader     IMAGE_FILE_HEADER
  5761  	OptionalHeader IMAGE_OPTIONAL_HEADER32
  5762  } /* winnt.h:6249:13 */
  5763  
  5764  type IMAGE_NT_HEADERS32 = _IMAGE_NT_HEADERS /* winnt.h:6253:7 */
  5765  type PIMAGE_NT_HEADERS32 = uintptr          /* winnt.h:6253:26 */
  5766  
  5767  type _IMAGE_ROM_HEADERS = struct {
  5768  	FileHeader     IMAGE_FILE_HEADER
  5769  	OptionalHeader IMAGE_ROM_OPTIONAL_HEADER
  5770  } /* winnt.h:6255:13 */
  5771  
  5772  type IMAGE_ROM_HEADERS = _IMAGE_ROM_HEADERS /* winnt.h:6258:7 */
  5773  type PIMAGE_ROM_HEADERS = uintptr           /* winnt.h:6258:25 */
  5774  
  5775  type IMAGE_NT_HEADERS = IMAGE_NT_HEADERS32   /* winnt.h:6264:32 */
  5776  type PIMAGE_NT_HEADERS = PIMAGE_NT_HEADERS32 /* winnt.h:6265:33 */
  5777  
  5778  type ANON_OBJECT_HEADER1 = struct {
  5779  	Sig1          WORD
  5780  	Sig2          WORD
  5781  	Version       WORD
  5782  	Machine       WORD
  5783  	TimeDateStamp DWORD
  5784  	ClassID       CLSID
  5785  	SizeOfData    DWORD
  5786  } /* winnt.h:6313:13 */
  5787  
  5788  type ANON_OBJECT_HEADER = ANON_OBJECT_HEADER1 /* winnt.h:6321:7 */
  5789  
  5790  type ANON_OBJECT_HEADER_V21 = struct {
  5791  	Sig1           WORD
  5792  	Sig2           WORD
  5793  	Version        WORD
  5794  	Machine        WORD
  5795  	TimeDateStamp  DWORD
  5796  	ClassID        CLSID
  5797  	SizeOfData     DWORD
  5798  	Flags          DWORD
  5799  	MetaDataSize   DWORD
  5800  	MetaDataOffset DWORD
  5801  } /* winnt.h:6323:13 */
  5802  
  5803  type ANON_OBJECT_HEADER_V2 = ANON_OBJECT_HEADER_V21 /* winnt.h:6334:7 */
  5804  
  5805  type ANON_OBJECT_HEADER_BIGOBJ1 = struct {
  5806  	Sig1                 WORD
  5807  	Sig2                 WORD
  5808  	Version              WORD
  5809  	Machine              WORD
  5810  	TimeDateStamp        DWORD
  5811  	ClassID              CLSID
  5812  	SizeOfData           DWORD
  5813  	Flags                DWORD
  5814  	MetaDataSize         DWORD
  5815  	MetaDataOffset       DWORD
  5816  	NumberOfSections     DWORD
  5817  	PointerToSymbolTable DWORD
  5818  	NumberOfSymbols      DWORD
  5819  } /* winnt.h:6336:13 */
  5820  
  5821  type ANON_OBJECT_HEADER_BIGOBJ = ANON_OBJECT_HEADER_BIGOBJ1 /* winnt.h:6350:7 */
  5822  
  5823  type _IMAGE_SECTION_HEADER = struct {
  5824  	Name                 [8]BYTE
  5825  	Misc                 struct{ PhysicalAddress DWORD }
  5826  	VirtualAddress       DWORD
  5827  	SizeOfRawData        DWORD
  5828  	PointerToRawData     DWORD
  5829  	PointerToRelocations DWORD
  5830  	PointerToLinenumbers DWORD
  5831  	NumberOfRelocations  WORD
  5832  	NumberOfLinenumbers  WORD
  5833  	Characteristics      DWORD
  5834  } /* winnt.h:6354:13 */
  5835  
  5836  type IMAGE_SECTION_HEADER = _IMAGE_SECTION_HEADER /* winnt.h:6368:7 */
  5837  type PIMAGE_SECTION_HEADER = uintptr              /* winnt.h:6368:28 */
  5838  
  5839  // *
  5840  // This file has no copyright assigned and is placed in the Public Domain.
  5841  // This file is part of the mingw-w64 runtime package.
  5842  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5843  type _IMAGE_SYMBOL = struct {
  5844  	N struct {
  5845  		_         [0]uint32
  5846  		ShortName [8]BYTE
  5847  	}
  5848  	Value              DWORD
  5849  	SectionNumber      SHORT
  5850  	Type               WORD
  5851  	StorageClass       BYTE
  5852  	NumberOfAuxSymbols BYTE
  5853  	_                  [2]byte
  5854  } /* winnt.h:6418:13 */
  5855  
  5856  // *
  5857  // This file has no copyright assigned and is placed in the Public Domain.
  5858  // This file is part of the mingw-w64 runtime package.
  5859  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5860  type IMAGE_SYMBOL = _IMAGE_SYMBOL /* winnt.h:6432:7 */
  5861  type PIMAGE_SYMBOL = uintptr      /* winnt.h:6433:36 */
  5862  
  5863  type _IMAGE_SYMBOL_EX = struct {
  5864  	N struct {
  5865  		_         [0]uint32
  5866  		ShortName [8]BYTE
  5867  	}
  5868  	Value              DWORD
  5869  	SectionNumber      LONG
  5870  	Type               WORD
  5871  	StorageClass       BYTE
  5872  	NumberOfAuxSymbols BYTE
  5873  } /* winnt.h:6437:13 */
  5874  
  5875  type IMAGE_SYMBOL_EX = _IMAGE_SYMBOL_EX /* winnt.h:6451:7 */
  5876  type PIMAGE_SYMBOL_EX = uintptr         /* winnt.h:6451:33 */
  5877  
  5878  // *
  5879  // This file has no copyright assigned and is placed in the Public Domain.
  5880  // This file is part of the mingw-w64 runtime package.
  5881  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5882  type IMAGE_AUX_SYMBOL_TOKEN_DEF1 = struct {
  5883  	bAuxType         BYTE
  5884  	bReserved        BYTE
  5885  	_                [2]byte
  5886  	SymbolTableIndex DWORD
  5887  	rgbReserved      [12]BYTE
  5888  } /* winnt.h:6544:13 */
  5889  
  5890  // *
  5891  // This file has no copyright assigned and is placed in the Public Domain.
  5892  // This file is part of the mingw-w64 runtime package.
  5893  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5894  type IMAGE_AUX_SYMBOL_TOKEN_DEF = IMAGE_AUX_SYMBOL_TOKEN_DEF1 /* winnt.h:6549:7 */
  5895  type PIMAGE_AUX_SYMBOL_TOKEN_DEF = uintptr                    /* winnt.h:6549:44 */
  5896  // *
  5897  // This file has no copyright assigned and is placed in the Public Domain.
  5898  // This file is part of the mingw-w64 runtime package.
  5899  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5900  
  5901  type _IMAGE_AUX_SYMBOL = struct {
  5902  	Sym struct {
  5903  		TagIndex DWORD
  5904  		Misc     struct {
  5905  			_    [0]uint32
  5906  			LnSz struct {
  5907  				Linenumber WORD
  5908  				Size       WORD
  5909  			}
  5910  		}
  5911  		FcnAry struct {
  5912  			Function struct {
  5913  				PointerToLinenumber   DWORD
  5914  				PointerToNextFunction DWORD
  5915  			}
  5916  		}
  5917  		TvIndex WORD
  5918  		_       [2]byte
  5919  	}
  5920  } /* winnt.h:6552:13 */
  5921  
  5922  // *
  5923  // This file has no copyright assigned and is placed in the Public Domain.
  5924  // This file is part of the mingw-w64 runtime package.
  5925  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5926  
  5927  type IMAGE_AUX_SYMBOL = _IMAGE_AUX_SYMBOL /* winnt.h:6589:7 */
  5928  type PIMAGE_AUX_SYMBOL = uintptr          /* winnt.h:6589:34 */
  5929  
  5930  type _IMAGE_AUX_SYMBOL_EX = struct {
  5931  	Sym struct {
  5932  		WeakDefaultSymIndex DWORD
  5933  		WeakSearchType      DWORD
  5934  		rgbReserved         [12]BYTE
  5935  	}
  5936  	_ [4]byte
  5937  } /* winnt.h:6591:13 */
  5938  
  5939  type IMAGE_AUX_SYMBOL_EX = _IMAGE_AUX_SYMBOL_EX /* winnt.h:6619:7 */
  5940  type PIMAGE_AUX_SYMBOL_EX = uintptr             /* winnt.h:6619:37 */
  5941  
  5942  type IMAGE_AUX_SYMBOL_TYPE = uint32 /* winnt.h:6625:7 */
  5943  
  5944  type _IMAGE_RELOCATION = struct {
  5945  	u                struct{ VirtualAddress DWORD }
  5946  	SymbolTableIndex DWORD
  5947  	Type             WORD
  5948  	_                [2]byte
  5949  } /* winnt.h:6639:13 */
  5950  
  5951  type IMAGE_RELOCATION = _IMAGE_RELOCATION /* winnt.h:6646:7 */
  5952  type PIMAGE_RELOCATION = uintptr          /* winnt.h:6647:40 */
  5953  
  5954  type _IMAGE_LINENUMBER = struct {
  5955  	Type       struct{ SymbolTableIndex DWORD }
  5956  	Linenumber WORD
  5957  	_          [2]byte
  5958  } /* winnt.h:6977:13 */
  5959  
  5960  type IMAGE_LINENUMBER = _IMAGE_LINENUMBER /* winnt.h:6983:7 */
  5961  type PIMAGE_LINENUMBER = uintptr          /* winnt.h:6984:40 */
  5962  
  5963  // *
  5964  // This file has no copyright assigned and is placed in the Public Domain.
  5965  // This file is part of the mingw-w64 runtime package.
  5966  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5967  
  5968  type _IMAGE_BASE_RELOCATION = struct {
  5969  	VirtualAddress DWORD
  5970  	SizeOfBlock    DWORD
  5971  } /* winnt.h:6990:13 */
  5972  
  5973  // *
  5974  // This file has no copyright assigned and is placed in the Public Domain.
  5975  // This file is part of the mingw-w64 runtime package.
  5976  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5977  
  5978  type IMAGE_BASE_RELOCATION = _IMAGE_BASE_RELOCATION /* winnt.h:6993:7 */
  5979  type PIMAGE_BASE_RELOCATION = uintptr               /* winnt.h:6994:45 */
  5980  
  5981  type _IMAGE_ARCHIVE_MEMBER_HEADER = struct {
  5982  	Name      [16]BYTE
  5983  	Date      [12]BYTE
  5984  	UserID    [6]BYTE
  5985  	GroupID   [6]BYTE
  5986  	Mode      [8]BYTE
  5987  	Size      [10]BYTE
  5988  	EndHeader [2]BYTE
  5989  } /* winnt.h:7017:13 */
  5990  
  5991  type IMAGE_ARCHIVE_MEMBER_HEADER = _IMAGE_ARCHIVE_MEMBER_HEADER /* winnt.h:7025:7 */
  5992  type PIMAGE_ARCHIVE_MEMBER_HEADER = uintptr                     /* winnt.h:7025:35 */
  5993  
  5994  type _IMAGE_EXPORT_DIRECTORY = struct {
  5995  	Characteristics       DWORD
  5996  	TimeDateStamp         DWORD
  5997  	MajorVersion          WORD
  5998  	MinorVersion          WORD
  5999  	Name                  DWORD
  6000  	Base                  DWORD
  6001  	NumberOfFunctions     DWORD
  6002  	NumberOfNames         DWORD
  6003  	AddressOfFunctions    DWORD
  6004  	AddressOfNames        DWORD
  6005  	AddressOfNameOrdinals DWORD
  6006  } /* winnt.h:7029:13 */
  6007  
  6008  type IMAGE_EXPORT_DIRECTORY = _IMAGE_EXPORT_DIRECTORY /* winnt.h:7041:7 */
  6009  type PIMAGE_EXPORT_DIRECTORY = uintptr                /* winnt.h:7041:30 */
  6010  
  6011  type _IMAGE_IMPORT_BY_NAME = struct {
  6012  	Hint WORD
  6013  	Name [1]CHAR
  6014  	_    [1]byte
  6015  } /* winnt.h:7043:13 */
  6016  
  6017  type IMAGE_IMPORT_BY_NAME = _IMAGE_IMPORT_BY_NAME /* winnt.h:7046:7 */
  6018  type PIMAGE_IMPORT_BY_NAME = uintptr              /* winnt.h:7046:28 */
  6019  
  6020  // *
  6021  // This file has no copyright assigned and is placed in the Public Domain.
  6022  // This file is part of the mingw-w64 runtime package.
  6023  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6024  
  6025  type _IMAGE_THUNK_DATA64 = struct {
  6026  	u1 struct{ ForwarderString ULONGLONG }
  6027  } /* winnt.h:7050:13 */
  6028  
  6029  // *
  6030  // This file has no copyright assigned and is placed in the Public Domain.
  6031  // This file is part of the mingw-w64 runtime package.
  6032  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6033  
  6034  type IMAGE_THUNK_DATA64 = _IMAGE_THUNK_DATA64 /* winnt.h:7057:7 */
  6035  type PIMAGE_THUNK_DATA64 = uintptr            /* winnt.h:7058:32 */
  6036  
  6037  // *
  6038  // This file has no copyright assigned and is placed in the Public Domain.
  6039  // This file is part of the mingw-w64 runtime package.
  6040  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6041  
  6042  type _IMAGE_THUNK_DATA32 = struct {
  6043  	u1 struct{ ForwarderString DWORD }
  6044  } /* winnt.h:7062:13 */
  6045  
  6046  // *
  6047  // This file has no copyright assigned and is placed in the Public Domain.
  6048  // This file is part of the mingw-w64 runtime package.
  6049  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6050  
  6051  type IMAGE_THUNK_DATA32 = _IMAGE_THUNK_DATA32 /* winnt.h:7069:7 */
  6052  type PIMAGE_THUNK_DATA32 = uintptr            /* winnt.h:7070:32 */
  6053  
  6054  type PIMAGE_TLS_CALLBACK = uintptr /* winnt.h:7079:18 */
  6055  
  6056  type _IMAGE_TLS_DIRECTORY64 = struct {
  6057  	StartAddressOfRawData ULONGLONG
  6058  	EndAddressOfRawData   ULONGLONG
  6059  	AddressOfIndex        ULONGLONG
  6060  	AddressOfCallBacks    ULONGLONG
  6061  	SizeOfZeroFill        DWORD
  6062  	Characteristics       DWORD
  6063  } /* winnt.h:7081:13 */
  6064  
  6065  type IMAGE_TLS_DIRECTORY64 = _IMAGE_TLS_DIRECTORY64 /* winnt.h:7088:7 */
  6066  type PIMAGE_TLS_DIRECTORY64 = uintptr               /* winnt.h:7089:35 */
  6067  
  6068  type _IMAGE_TLS_DIRECTORY32 = struct {
  6069  	StartAddressOfRawData DWORD
  6070  	EndAddressOfRawData   DWORD
  6071  	AddressOfIndex        DWORD
  6072  	AddressOfCallBacks    DWORD
  6073  	SizeOfZeroFill        DWORD
  6074  	Characteristics       DWORD
  6075  } /* winnt.h:7091:13 */
  6076  
  6077  type IMAGE_TLS_DIRECTORY32 = _IMAGE_TLS_DIRECTORY32 /* winnt.h:7098:7 */
  6078  type PIMAGE_TLS_DIRECTORY32 = uintptr               /* winnt.h:7099:35 */
  6079  
  6080  type IMAGE_THUNK_DATA = IMAGE_THUNK_DATA32         /* winnt.h:7112:32 */
  6081  type PIMAGE_THUNK_DATA = PIMAGE_THUNK_DATA32       /* winnt.h:7113:33 */
  6082  type IMAGE_TLS_DIRECTORY = IMAGE_TLS_DIRECTORY32   /* winnt.h:7115:35 */
  6083  type PIMAGE_TLS_DIRECTORY = PIMAGE_TLS_DIRECTORY32 /* winnt.h:7116:36 */
  6084  
  6085  type _IMAGE_IMPORT_DESCRIPTOR = struct {
  6086  	u              struct{ Characteristics DWORD }
  6087  	TimeDateStamp  DWORD
  6088  	ForwarderChain DWORD
  6089  	Name           DWORD
  6090  	FirstThunk     DWORD
  6091  } /* winnt.h:7119:13 */
  6092  
  6093  type IMAGE_IMPORT_DESCRIPTOR = _IMAGE_IMPORT_DESCRIPTOR /* winnt.h:7129:7 */
  6094  type PIMAGE_IMPORT_DESCRIPTOR = uintptr                 /* winnt.h:7130:47 */
  6095  
  6096  type _IMAGE_BOUND_IMPORT_DESCRIPTOR = struct {
  6097  	TimeDateStamp               DWORD
  6098  	OffsetModuleName            WORD
  6099  	NumberOfModuleForwarderRefs WORD
  6100  } /* winnt.h:7132:13 */
  6101  
  6102  type IMAGE_BOUND_IMPORT_DESCRIPTOR = _IMAGE_BOUND_IMPORT_DESCRIPTOR /* winnt.h:7136:7 */
  6103  type PIMAGE_BOUND_IMPORT_DESCRIPTOR = uintptr                       /* winnt.h:7136:37 */
  6104  
  6105  type _IMAGE_BOUND_FORWARDER_REF = struct {
  6106  	TimeDateStamp    DWORD
  6107  	OffsetModuleName WORD
  6108  	Reserved         WORD
  6109  } /* winnt.h:7138:13 */
  6110  
  6111  type IMAGE_BOUND_FORWARDER_REF = _IMAGE_BOUND_FORWARDER_REF /* winnt.h:7142:7 */
  6112  type PIMAGE_BOUND_FORWARDER_REF = uintptr                   /* winnt.h:7142:33 */
  6113  
  6114  type _IMAGE_DELAYLOAD_DESCRIPTOR = struct {
  6115  	Attributes                 struct{ AllAttributes DWORD }
  6116  	DllNameRVA                 DWORD
  6117  	ModuleHandleRVA            DWORD
  6118  	ImportAddressTableRVA      DWORD
  6119  	ImportNameTableRVA         DWORD
  6120  	BoundImportAddressTableRVA DWORD
  6121  	UnloadInformationTableRVA  DWORD
  6122  	TimeDateStamp              DWORD
  6123  } /* winnt.h:7144:13 */
  6124  
  6125  type IMAGE_DELAYLOAD_DESCRIPTOR = _IMAGE_DELAYLOAD_DESCRIPTOR /* winnt.h:7159:7 */
  6126  type PIMAGE_DELAYLOAD_DESCRIPTOR = uintptr                    /* winnt.h:7159:34 */
  6127  type PCIMAGE_DELAYLOAD_DESCRIPTOR = uintptr                   /* winnt.h:7160:46 */
  6128  
  6129  type _IMAGE_RESOURCE_DIRECTORY = struct {
  6130  	Characteristics      DWORD
  6131  	TimeDateStamp        DWORD
  6132  	MajorVersion         WORD
  6133  	MinorVersion         WORD
  6134  	NumberOfNamedEntries WORD
  6135  	NumberOfIdEntries    WORD
  6136  } /* winnt.h:7162:13 */
  6137  
  6138  type IMAGE_RESOURCE_DIRECTORY = _IMAGE_RESOURCE_DIRECTORY /* winnt.h:7169:7 */
  6139  type PIMAGE_RESOURCE_DIRECTORY = uintptr                  /* winnt.h:7169:32 */
  6140  
  6141  type _IMAGE_RESOURCE_DIRECTORY_ENTRY = struct {
  6142  	u struct {
  6143  		s struct {
  6144  			_          [0]uint32
  6145  			NameOffset uint32 /* DWORD NameOffset: 31, DWORD NameIsString: 1 */
  6146  		}
  6147  	}
  6148  	u2 struct{ OffsetToData DWORD }
  6149  } /* winnt.h:7174:13 */
  6150  
  6151  type IMAGE_RESOURCE_DIRECTORY_ENTRY = _IMAGE_RESOURCE_DIRECTORY_ENTRY /* winnt.h:7190:7 */
  6152  type PIMAGE_RESOURCE_DIRECTORY_ENTRY = uintptr                        /* winnt.h:7190:38 */
  6153  
  6154  type _IMAGE_RESOURCE_DIRECTORY_STRING = struct {
  6155  	Length     WORD
  6156  	NameString [1]CHAR
  6157  	_          [1]byte
  6158  } /* winnt.h:7192:13 */
  6159  
  6160  type IMAGE_RESOURCE_DIRECTORY_STRING = _IMAGE_RESOURCE_DIRECTORY_STRING /* winnt.h:7195:7 */
  6161  type PIMAGE_RESOURCE_DIRECTORY_STRING = uintptr                         /* winnt.h:7195:39 */
  6162  
  6163  type _IMAGE_RESOURCE_DIR_STRING_U = struct {
  6164  	Length     WORD
  6165  	NameString [1]WCHAR
  6166  } /* winnt.h:7197:13 */
  6167  
  6168  type IMAGE_RESOURCE_DIR_STRING_U = _IMAGE_RESOURCE_DIR_STRING_U /* winnt.h:7200:7 */
  6169  type PIMAGE_RESOURCE_DIR_STRING_U = uintptr                     /* winnt.h:7200:35 */
  6170  
  6171  type _IMAGE_RESOURCE_DATA_ENTRY = struct {
  6172  	OffsetToData DWORD
  6173  	Size         DWORD
  6174  	CodePage     DWORD
  6175  	Reserved     DWORD
  6176  } /* winnt.h:7202:13 */
  6177  
  6178  type IMAGE_RESOURCE_DATA_ENTRY = _IMAGE_RESOURCE_DATA_ENTRY /* winnt.h:7207:7 */
  6179  type PIMAGE_RESOURCE_DATA_ENTRY = uintptr                   /* winnt.h:7207:33 */
  6180  
  6181  type IMAGE_LOAD_CONFIG_DIRECTORY32 = struct {
  6182  	Size                          DWORD
  6183  	TimeDateStamp                 DWORD
  6184  	MajorVersion                  WORD
  6185  	MinorVersion                  WORD
  6186  	GlobalFlagsClear              DWORD
  6187  	GlobalFlagsSet                DWORD
  6188  	CriticalSectionDefaultTimeout DWORD
  6189  	DeCommitFreeBlockThreshold    DWORD
  6190  	DeCommitTotalFreeThreshold    DWORD
  6191  	LockPrefixTable               DWORD
  6192  	MaximumAllocationSize         DWORD
  6193  	VirtualMemoryThreshold        DWORD
  6194  	ProcessHeapFlags              DWORD
  6195  	ProcessAffinityMask           DWORD
  6196  	CSDVersion                    WORD
  6197  	Reserved1                     WORD
  6198  	EditList                      DWORD
  6199  	SecurityCookie                DWORD
  6200  	SEHandlerTable                DWORD
  6201  	SEHandlerCount                DWORD
  6202  }                                             /* winnt.h:7230:7 */
  6203  type PIMAGE_LOAD_CONFIG_DIRECTORY32 = uintptr /* winnt.h:7230:37 */
  6204  
  6205  type IMAGE_LOAD_CONFIG_DIRECTORY64 = struct {
  6206  	Size                          DWORD
  6207  	TimeDateStamp                 DWORD
  6208  	MajorVersion                  WORD
  6209  	MinorVersion                  WORD
  6210  	GlobalFlagsClear              DWORD
  6211  	GlobalFlagsSet                DWORD
  6212  	CriticalSectionDefaultTimeout DWORD
  6213  	DeCommitFreeBlockThreshold    ULONGLONG
  6214  	DeCommitTotalFreeThreshold    ULONGLONG
  6215  	LockPrefixTable               ULONGLONG
  6216  	MaximumAllocationSize         ULONGLONG
  6217  	VirtualMemoryThreshold        ULONGLONG
  6218  	ProcessAffinityMask           ULONGLONG
  6219  	ProcessHeapFlags              DWORD
  6220  	CSDVersion                    WORD
  6221  	Reserved1                     WORD
  6222  	EditList                      ULONGLONG
  6223  	SecurityCookie                ULONGLONG
  6224  	SEHandlerTable                ULONGLONG
  6225  	SEHandlerCount                ULONGLONG
  6226  }                                             /* winnt.h:7253:7 */
  6227  type PIMAGE_LOAD_CONFIG_DIRECTORY64 = uintptr /* winnt.h:7253:37 */
  6228  
  6229  type IMAGE_LOAD_CONFIG_DIRECTORY = IMAGE_LOAD_CONFIG_DIRECTORY32   /* winnt.h:7259:43 */
  6230  type PIMAGE_LOAD_CONFIG_DIRECTORY = PIMAGE_LOAD_CONFIG_DIRECTORY32 /* winnt.h:7260:44 */
  6231  
  6232  type _IMAGE_CE_RUNTIME_FUNCTION_ENTRY = struct {
  6233  	FuncStart DWORD
  6234  	PrologLen uint32 /* DWORD PrologLen: 8, DWORD FuncLen: 22, DWORD ThirtyTwoBit: 1, DWORD ExceptionFlag: 1 */
  6235  } /* winnt.h:7263:13 */
  6236  
  6237  type IMAGE_CE_RUNTIME_FUNCTION_ENTRY = _IMAGE_CE_RUNTIME_FUNCTION_ENTRY /* winnt.h:7269:7 */
  6238  type PIMAGE_CE_RUNTIME_FUNCTION_ENTRY = uintptr                         /* winnt.h:7269:39 */
  6239  
  6240  type _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = struct {
  6241  	BeginAddress     ULONGLONG
  6242  	EndAddress       ULONGLONG
  6243  	ExceptionHandler ULONGLONG
  6244  	HandlerData      ULONGLONG
  6245  	PrologEndAddress ULONGLONG
  6246  } /* winnt.h:7271:13 */
  6247  
  6248  type IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY /* winnt.h:7277:7 */
  6249  type PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = uintptr                              /* winnt.h:7277:44 */
  6250  
  6251  type _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = struct {
  6252  	BeginAddress     DWORD
  6253  	EndAddress       DWORD
  6254  	ExceptionHandler DWORD
  6255  	HandlerData      DWORD
  6256  	PrologEndAddress DWORD
  6257  } /* winnt.h:7279:13 */
  6258  
  6259  type IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY /* winnt.h:7285:7 */
  6260  type PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = uintptr                            /* winnt.h:7285:42 */
  6261  
  6262  type _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY = struct {
  6263  	BeginAddress DWORD
  6264  	u            struct{ UnwindData DWORD }
  6265  } /* winnt.h:7287:13 */
  6266  
  6267  type IMAGE_ARM_RUNTIME_FUNCTION_ENTRY = _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY /* winnt.h:7303:7 */
  6268  type PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY = uintptr                          /* winnt.h:7303:40 */
  6269  
  6270  type _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = struct {
  6271  	BeginAddress DWORD
  6272  	u            struct{ UnwindData DWORD }
  6273  } /* winnt.h:7305:13 */
  6274  
  6275  type IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY /* winnt.h:7319:7 */
  6276  type PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = uintptr                            /* winnt.h:7319:42 */
  6277  
  6278  type _IMAGE_RUNTIME_FUNCTION_ENTRY1 = struct {
  6279  	BeginAddress DWORD
  6280  	EndAddress   DWORD
  6281  	u            struct{ UnwindInfoAddress DWORD }
  6282  } /* winnt.h:7321:13 */
  6283  
  6284  type _IMAGE_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY1 /* winnt.h:7328:7 */
  6285  type _PIMAGE_RUNTIME_FUNCTION_ENTRY = uintptr                       /* winnt.h:7328:37 */
  6286  
  6287  type IMAGE_IA64_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY   /* winnt.h:7330:43 */
  6288  type PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY /* winnt.h:7331:44 */
  6289  
  6290  type IMAGE_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY   /* winnt.h:7345:43 */
  6291  type PIMAGE_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY /* winnt.h:7346:44 */
  6292  
  6293  type _IMAGE_DEBUG_DIRECTORY = struct {
  6294  	Characteristics  DWORD
  6295  	TimeDateStamp    DWORD
  6296  	MajorVersion     WORD
  6297  	MinorVersion     WORD
  6298  	Type             DWORD
  6299  	SizeOfData       DWORD
  6300  	AddressOfRawData DWORD
  6301  	PointerToRawData DWORD
  6302  } /* winnt.h:7349:13 */
  6303  
  6304  type IMAGE_DEBUG_DIRECTORY = _IMAGE_DEBUG_DIRECTORY /* winnt.h:7358:7 */
  6305  type PIMAGE_DEBUG_DIRECTORY = uintptr               /* winnt.h:7358:29 */
  6306  
  6307  type _IMAGE_COFF_SYMBOLS_HEADER = struct {
  6308  	NumberOfSymbols      DWORD
  6309  	LvaToFirstSymbol     DWORD
  6310  	NumberOfLinenumbers  DWORD
  6311  	LvaToFirstLinenumber DWORD
  6312  	RvaToFirstByteOfCode DWORD
  6313  	RvaToLastByteOfCode  DWORD
  6314  	RvaToFirstByteOfData DWORD
  6315  	RvaToLastByteOfData  DWORD
  6316  } /* winnt.h:7373:13 */
  6317  
  6318  type IMAGE_COFF_SYMBOLS_HEADER = _IMAGE_COFF_SYMBOLS_HEADER /* winnt.h:7382:7 */
  6319  type PIMAGE_COFF_SYMBOLS_HEADER = uintptr                   /* winnt.h:7382:33 */
  6320  
  6321  type _FPO_DATA = struct {
  6322  	ulOffStart DWORD
  6323  	cbProcSize DWORD
  6324  	cdwLocals  DWORD
  6325  	cdwParams  WORD
  6326  	cbProlog   uint16 /* WORD cbProlog: 8, WORD cbRegs: 3, WORD fHasSEH: 1, WORD fUseBP: 1, WORD reserved: 1, WORD cbFrame: 2 */
  6327  } /* winnt.h:7389:13 */
  6328  
  6329  type FPO_DATA = _FPO_DATA /* winnt.h:7400:7 */
  6330  type PFPO_DATA = uintptr  /* winnt.h:7400:16 */
  6331  
  6332  type _IMAGE_DEBUG_MISC = struct {
  6333  	DataType DWORD
  6334  	Length   DWORD
  6335  	Unicode  BOOLEAN
  6336  	Reserved [3]BYTE
  6337  	Data     [1]BYTE
  6338  	_        [3]byte
  6339  } /* winnt.h:7405:13 */
  6340  
  6341  type IMAGE_DEBUG_MISC = _IMAGE_DEBUG_MISC /* winnt.h:7411:7 */
  6342  type PIMAGE_DEBUG_MISC = uintptr          /* winnt.h:7411:24 */
  6343  
  6344  type _IMAGE_FUNCTION_ENTRY = struct {
  6345  	StartingAddress DWORD
  6346  	EndingAddress   DWORD
  6347  	EndOfPrologue   DWORD
  6348  } /* winnt.h:7413:13 */
  6349  
  6350  type IMAGE_FUNCTION_ENTRY = _IMAGE_FUNCTION_ENTRY /* winnt.h:7417:7 */
  6351  type PIMAGE_FUNCTION_ENTRY = uintptr              /* winnt.h:7417:28 */
  6352  
  6353  type _IMAGE_FUNCTION_ENTRY64 = struct {
  6354  	StartingAddress ULONGLONG
  6355  	EndingAddress   ULONGLONG
  6356  	u               struct{ EndOfPrologue ULONGLONG }
  6357  } /* winnt.h:7419:13 */
  6358  
  6359  type IMAGE_FUNCTION_ENTRY64 = _IMAGE_FUNCTION_ENTRY64 /* winnt.h:7426:7 */
  6360  type PIMAGE_FUNCTION_ENTRY64 = uintptr                /* winnt.h:7426:30 */
  6361  
  6362  type _IMAGE_SEPARATE_DEBUG_HEADER = struct {
  6363  	Signature          WORD
  6364  	Flags              WORD
  6365  	Machine            WORD
  6366  	Characteristics    WORD
  6367  	TimeDateStamp      DWORD
  6368  	CheckSum           DWORD
  6369  	ImageBase          DWORD
  6370  	SizeOfImage        DWORD
  6371  	NumberOfSections   DWORD
  6372  	ExportedNamesSize  DWORD
  6373  	DebugDirectorySize DWORD
  6374  	SectionAlignment   DWORD
  6375  	Reserved           [2]DWORD
  6376  } /* winnt.h:7428:13 */
  6377  
  6378  type IMAGE_SEPARATE_DEBUG_HEADER = _IMAGE_SEPARATE_DEBUG_HEADER /* winnt.h:7442:7 */
  6379  type PIMAGE_SEPARATE_DEBUG_HEADER = uintptr                     /* winnt.h:7442:35 */
  6380  
  6381  type _NON_PAGED_DEBUG_INFO = struct {
  6382  	Signature       WORD
  6383  	Flags           WORD
  6384  	Size            DWORD
  6385  	Machine         WORD
  6386  	Characteristics WORD
  6387  	TimeDateStamp   DWORD
  6388  	CheckSum        DWORD
  6389  	SizeOfImage     DWORD
  6390  	ImageBase       ULONGLONG
  6391  } /* winnt.h:7444:13 */
  6392  
  6393  type NON_PAGED_DEBUG_INFO = _NON_PAGED_DEBUG_INFO /* winnt.h:7454:7 */
  6394  type PNON_PAGED_DEBUG_INFO = uintptr              /* winnt.h:7454:28 */
  6395  
  6396  type _ImageArchitectureHeader = struct {
  6397  	AmaskValue    uint32 /* unsigned AmaskValue: 1, int Adummy1: 7, unsigned AmaskShift: 8, int Adummy2: 16 */
  6398  	FirstEntryRVA DWORD
  6399  } /* winnt.h:7462:13 */
  6400  
  6401  type IMAGE_ARCHITECTURE_HEADER = _ImageArchitectureHeader /* winnt.h:7468:7 */
  6402  type PIMAGE_ARCHITECTURE_HEADER = uintptr                 /* winnt.h:7468:33 */
  6403  
  6404  type _ImageArchitectureEntry = struct {
  6405  	FixupInstRVA DWORD
  6406  	NewInst      DWORD
  6407  } /* winnt.h:7470:13 */
  6408  
  6409  type IMAGE_ARCHITECTURE_ENTRY = _ImageArchitectureEntry /* winnt.h:7473:7 */
  6410  type PIMAGE_ARCHITECTURE_ENTRY = uintptr                /* winnt.h:7473:32 */
  6411  // *
  6412  // This file has no copyright assigned and is placed in the Public Domain.
  6413  // This file is part of the mingw-w64 runtime package.
  6414  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6415  
  6416  type IMPORT_OBJECT_HEADER1 = struct {
  6417  	Sig1          WORD
  6418  	Sig2          WORD
  6419  	Version       WORD
  6420  	Machine       WORD
  6421  	TimeDateStamp DWORD
  6422  	SizeOfData    DWORD
  6423  	__16          struct{ Ordinal WORD }
  6424  	Type          uint16 /* WORD Type: 2, WORD NameType: 3, WORD Reserved: 11 */
  6425  } /* winnt.h:7478:13 */
  6426  
  6427  // *
  6428  // This file has no copyright assigned and is placed in the Public Domain.
  6429  // This file is part of the mingw-w64 runtime package.
  6430  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6431  
  6432  type IMPORT_OBJECT_HEADER = IMPORT_OBJECT_HEADER1 /* winnt.h:7492:7 */
  6433  
  6434  type IMPORT_OBJECT_TYPE = uint32 /* winnt.h:7496:7 */
  6435  
  6436  type IMPORT_OBJECT_NAME_TYPE = uint32 /* winnt.h:7500:7 */
  6437  
  6438  type ReplacesCorHdrNumericDefines = uint32 /* winnt.h:7511:7 */
  6439  
  6440  type IMAGE_COR20_HEADER1 = struct {
  6441  	cb                      DWORD
  6442  	MajorRuntimeVersion     WORD
  6443  	MinorRuntimeVersion     WORD
  6444  	MetaData                IMAGE_DATA_DIRECTORY
  6445  	Flags                   DWORD
  6446  	u                       struct{ EntryPointToken DWORD }
  6447  	Resources               IMAGE_DATA_DIRECTORY
  6448  	StrongNameSignature     IMAGE_DATA_DIRECTORY
  6449  	CodeManagerTable        IMAGE_DATA_DIRECTORY
  6450  	VTableFixups            IMAGE_DATA_DIRECTORY
  6451  	ExportAddressTableJumps IMAGE_DATA_DIRECTORY
  6452  	ManagedNativeHeader     IMAGE_DATA_DIRECTORY
  6453  } /* winnt.h:7513:13 */
  6454  
  6455  type IMAGE_COR20_HEADER = IMAGE_COR20_HEADER1 /* winnt.h:7529:7 */
  6456  type PIMAGE_COR20_HEADER = uintptr            /* winnt.h:7529:26 */
  6457  
  6458  // *
  6459  // This file has no copyright assigned and is placed in the Public Domain.
  6460  // This file is part of the mingw-w64 runtime package.
  6461  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6462  
  6463  type SLIST_ENTRY = _SINGLE_LIST_ENTRY /* winnt.h:7634:39 */
  6464  type PSLIST_ENTRY = uintptr           /* winnt.h:7634:51 */
  6465  
  6466  type _SLIST_HEADER = struct{ Alignment ULONGLONG } /* winnt.h:7636:13 */
  6467  
  6468  type SLIST_HEADER = _SLIST_HEADER /* winnt.h:7643:7 */
  6469  type PSLIST_HEADER = uintptr      /* winnt.h:7643:20 */
  6470  
  6471  type _RTL_RUN_ONCE = struct{ Ptr PVOID } /* winnt.h:7661:9 */
  6472  
  6473  type RTL_RUN_ONCE = _RTL_RUN_ONCE    /* winnt.h:7661:45 */
  6474  type PRTL_RUN_ONCE = uintptr         /* winnt.h:7661:59 */
  6475  type PRTL_RUN_ONCE_INIT_FN = uintptr /* winnt.h:7662:15 */
  6476  
  6477  type _RTL_BARRIER = struct {
  6478  	Reserved1 DWORD
  6479  	Reserved2 DWORD
  6480  	Reserved3 [2]ULONG_PTR
  6481  	Reserved4 DWORD
  6482  	Reserved5 DWORD
  6483  } /* winnt.h:7671:11 */
  6484  
  6485  type RTL_BARRIER = _RTL_BARRIER /* winnt.h:7677:5 */
  6486  type PRTL_BARRIER = uintptr     /* winnt.h:7677:17 */
  6487  
  6488  type _MESSAGE_RESOURCE_ENTRY = struct {
  6489  	Length WORD
  6490  	Flags  WORD
  6491  	Text   [1]BYTE
  6492  	_      [1]byte
  6493  } /* winnt.h:7780:13 */
  6494  
  6495  type MESSAGE_RESOURCE_ENTRY = _MESSAGE_RESOURCE_ENTRY /* winnt.h:7784:7 */
  6496  type PMESSAGE_RESOURCE_ENTRY = uintptr                /* winnt.h:7784:30 */
  6497  
  6498  type _MESSAGE_RESOURCE_BLOCK = struct {
  6499  	LowId           DWORD
  6500  	HighId          DWORD
  6501  	OffsetToEntries DWORD
  6502  } /* winnt.h:7802:13 */
  6503  
  6504  type MESSAGE_RESOURCE_BLOCK = _MESSAGE_RESOURCE_BLOCK /* winnt.h:7806:7 */
  6505  type PMESSAGE_RESOURCE_BLOCK = uintptr                /* winnt.h:7806:30 */
  6506  
  6507  type _MESSAGE_RESOURCE_DATA = struct {
  6508  	NumberOfBlocks DWORD
  6509  	Blocks         [1]MESSAGE_RESOURCE_BLOCK
  6510  } /* winnt.h:7808:13 */
  6511  
  6512  type MESSAGE_RESOURCE_DATA = _MESSAGE_RESOURCE_DATA /* winnt.h:7811:7 */
  6513  type PMESSAGE_RESOURCE_DATA = uintptr               /* winnt.h:7811:29 */
  6514  
  6515  type _OSVERSIONINFOA = struct {
  6516  	dwOSVersionInfoSize DWORD
  6517  	dwMajorVersion      DWORD
  6518  	dwMinorVersion      DWORD
  6519  	dwBuildNumber       DWORD
  6520  	dwPlatformId        DWORD
  6521  	szCSDVersion        [128]CHAR
  6522  } /* winnt.h:7813:13 */
  6523  
  6524  type OSVERSIONINFOA = _OSVERSIONINFOA /* winnt.h:7820:7 */
  6525  type POSVERSIONINFOA = uintptr        /* winnt.h:7820:22 */
  6526  type LPOSVERSIONINFOA = uintptr       /* winnt.h:7820:39 */
  6527  
  6528  type _OSVERSIONINFOW = struct {
  6529  	dwOSVersionInfoSize DWORD
  6530  	dwMajorVersion      DWORD
  6531  	dwMinorVersion      DWORD
  6532  	dwBuildNumber       DWORD
  6533  	dwPlatformId        DWORD
  6534  	szCSDVersion        [128]WCHAR
  6535  } /* winnt.h:7822:13 */
  6536  
  6537  type OSVERSIONINFOW = _OSVERSIONINFOW     /* winnt.h:7829:7 */
  6538  type POSVERSIONINFOW = uintptr            /* winnt.h:7829:22 */
  6539  type LPOSVERSIONINFOW = uintptr           /* winnt.h:7829:39 */
  6540  type RTL_OSVERSIONINFOW = _OSVERSIONINFOW /* winnt.h:7829:57 */
  6541  type PRTL_OSVERSIONINFOW = uintptr        /* winnt.h:7829:76 */
  6542  
  6543  type OSVERSIONINFO = OSVERSIONINFOA     /* winnt.h:7831:5 */
  6544  type POSVERSIONINFO = POSVERSIONINFOA   /* winnt.h:7832:5 */
  6545  type LPOSVERSIONINFO = LPOSVERSIONINFOA /* winnt.h:7833:5 */
  6546  
  6547  type _OSVERSIONINFOEXA = struct {
  6548  	dwOSVersionInfoSize DWORD
  6549  	dwMajorVersion      DWORD
  6550  	dwMinorVersion      DWORD
  6551  	dwBuildNumber       DWORD
  6552  	dwPlatformId        DWORD
  6553  	szCSDVersion        [128]CHAR
  6554  	wServicePackMajor   WORD
  6555  	wServicePackMinor   WORD
  6556  	wSuiteMask          WORD
  6557  	wProductType        BYTE
  6558  	wReserved           BYTE
  6559  } /* winnt.h:7835:13 */
  6560  
  6561  type OSVERSIONINFOEXA = _OSVERSIONINFOEXA /* winnt.h:7847:7 */
  6562  type POSVERSIONINFOEXA = uintptr          /* winnt.h:7847:24 */
  6563  type LPOSVERSIONINFOEXA = uintptr         /* winnt.h:7847:43 */
  6564  
  6565  type _OSVERSIONINFOEXW = struct {
  6566  	dwOSVersionInfoSize DWORD
  6567  	dwMajorVersion      DWORD
  6568  	dwMinorVersion      DWORD
  6569  	dwBuildNumber       DWORD
  6570  	dwPlatformId        DWORD
  6571  	szCSDVersion        [128]WCHAR
  6572  	wServicePackMajor   WORD
  6573  	wServicePackMinor   WORD
  6574  	wSuiteMask          WORD
  6575  	wProductType        BYTE
  6576  	wReserved           BYTE
  6577  } /* winnt.h:7849:13 */
  6578  
  6579  type OSVERSIONINFOEXW = _OSVERSIONINFOEXW     /* winnt.h:7861:7 */
  6580  type POSVERSIONINFOEXW = uintptr              /* winnt.h:7861:24 */
  6581  type LPOSVERSIONINFOEXW = uintptr             /* winnt.h:7861:43 */
  6582  type RTL_OSVERSIONINFOEXW = _OSVERSIONINFOEXW /* winnt.h:7861:63 */
  6583  type PRTL_OSVERSIONINFOEXW = uintptr          /* winnt.h:7861:84 */
  6584  
  6585  type OSVERSIONINFOEX = OSVERSIONINFOEXA     /* winnt.h:7863:5 */
  6586  type POSVERSIONINFOEX = POSVERSIONINFOEXA   /* winnt.h:7864:5 */
  6587  type LPOSVERSIONINFOEX = LPOSVERSIONINFOEXA /* winnt.h:7865:5 */
  6588  
  6589  type RTL_UMS_THREAD_INFO_CLASS = uint32   /* winnt.h:7918:7 */
  6590  type PRTL_UMS_THREAD_INFO_CLASS = uintptr /* winnt.h:7918:33 */
  6591  
  6592  type RTL_UMS_SCHEDULER_REASON = uint32        /* winnt.h:7924:7 */
  6593  type PRTL_UMS_SCHEDULER_REASON = uintptr      /* winnt.h:7924:32 */
  6594  type PRTL_UMS_SCHEDULER_ENTRY_POINT = uintptr /* winnt.h:7927:43 */
  6595  
  6596  type _RTL_CRITICAL_SECTION_DEBUG = struct {
  6597  	Type                      WORD
  6598  	CreatorBackTraceIndex     WORD
  6599  	CriticalSection           uintptr
  6600  	ProcessLocksList          LIST_ENTRY
  6601  	EntryCount                DWORD
  6602  	ContentionCount           DWORD
  6603  	Flags                     DWORD
  6604  	CreatorBackTraceIndexHigh WORD
  6605  	SpareWORD                 WORD
  6606  } /* winnt.h:7947:13 */
  6607  
  6608  type _RTL_CRITICAL_SECTION = struct {
  6609  	DebugInfo      PRTL_CRITICAL_SECTION_DEBUG
  6610  	LockCount      LONG
  6611  	RecursionCount LONG
  6612  	OwningThread   HANDLE
  6613  	LockSemaphore  HANDLE
  6614  	SpinCount      ULONG_PTR
  6615  } /* winnt.h:7947:13 */
  6616  
  6617  type RTL_CRITICAL_SECTION_DEBUG = _RTL_CRITICAL_SECTION_DEBUG /* winnt.h:7957:7 */
  6618  type PRTL_CRITICAL_SECTION_DEBUG = uintptr                    /* winnt.h:7957:34 */
  6619  type RTL_RESOURCE_DEBUG = _RTL_CRITICAL_SECTION_DEBUG         /* winnt.h:7957:63 */
  6620  type PRTL_RESOURCE_DEBUG = uintptr                            /* winnt.h:7957:82 */
  6621  
  6622  // *
  6623  // This file has no copyright assigned and is placed in the Public Domain.
  6624  // This file is part of the mingw-w64 runtime package.
  6625  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6626  type RTL_CRITICAL_SECTION = _RTL_CRITICAL_SECTION /* winnt.h:7981:7 */
  6627  type PRTL_CRITICAL_SECTION = uintptr              /* winnt.h:7981:28 */
  6628  // *
  6629  // This file has no copyright assigned and is placed in the Public Domain.
  6630  // This file is part of the mingw-w64 runtime package.
  6631  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6632  
  6633  type _RTL_SRWLOCK = struct{ Ptr PVOID } /* winnt.h:7984:13 */
  6634  
  6635  // *
  6636  // This file has no copyright assigned and is placed in the Public Domain.
  6637  // This file is part of the mingw-w64 runtime package.
  6638  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  6639  
  6640  type RTL_SRWLOCK = _RTL_SRWLOCK                    /* winnt.h:7984:48 */
  6641  type PRTL_SRWLOCK = uintptr                        /* winnt.h:7984:60 */
  6642  type _RTL_CONDITION_VARIABLE = struct{ Ptr PVOID } /* winnt.h:7985:13 */
  6643  
  6644  type RTL_CONDITION_VARIABLE = _RTL_CONDITION_VARIABLE /* winnt.h:7985:59 */
  6645  type PRTL_CONDITION_VARIABLE = uintptr                /* winnt.h:7985:82 */
  6646  
  6647  type PAPCFUNC = uintptr                    /* winnt.h:7992:18 */
  6648  type PVECTORED_EXCEPTION_HANDLER = uintptr /* winnt.h:7993:18 */
  6649  
  6650  type HEAP_INFORMATION_CLASS = uint32 /* winnt.h:7998:7 */
  6651  
  6652  type WORKERCALLBACKFUNC = uintptr                  /* winnt.h:8000:18 */
  6653  type APC_CALLBACK_FUNCTION = uintptr               /* winnt.h:8001:18 */
  6654  type WAITORTIMERCALLBACKFUNC = uintptr             /* winnt.h:8002:18 */
  6655  type WAITORTIMERCALLBACK = WAITORTIMERCALLBACKFUNC /* winnt.h:8003:37 */
  6656  type PFLS_CALLBACK_FUNCTION = uintptr              /* winnt.h:8004:18 */
  6657  type PSECURE_MEMORY_CACHE_CALLBACK = uintptr       /* winnt.h:8005:21 */
  6658  
  6659  type ACTIVATION_CONTEXT_INFO_CLASS = uint32 /* winnt.h:8034:7 */
  6660  
  6661  type ACTCTX_REQUESTED_RUN_LEVEL = uint32 /* winnt.h:8042:7 */
  6662  
  6663  type ACTCTX_COMPATIBILITY_ELEMENT_TYPE = uint32 /* winnt.h:8048:7 */
  6664  
  6665  type _ACTIVATION_CONTEXT_QUERY_INDEX = struct {
  6666  	ulAssemblyIndex       DWORD
  6667  	ulFileIndexInAssembly DWORD
  6668  } /* winnt.h:8050:13 */
  6669  
  6670  type ACTIVATION_CONTEXT_QUERY_INDEX = _ACTIVATION_CONTEXT_QUERY_INDEX /* winnt.h:8053:7 */
  6671  type PACTIVATION_CONTEXT_QUERY_INDEX = uintptr                        /* winnt.h:8053:38 */
  6672  
  6673  type _ASSEMBLY_FILE_DETAILED_INFORMATION = struct {
  6674  	ulFlags          DWORD
  6675  	ulFilenameLength DWORD
  6676  	ulPathLength     DWORD
  6677  	lpFileName       PCWSTR
  6678  	lpFilePath       PCWSTR
  6679  } /* winnt.h:8055:13 */
  6680  
  6681  type ASSEMBLY_FILE_DETAILED_INFORMATION = _ASSEMBLY_FILE_DETAILED_INFORMATION /* winnt.h:8061:7 */
  6682  type PASSEMBLY_FILE_DETAILED_INFORMATION = uintptr                            /* winnt.h:8061:42 */
  6683  
  6684  type _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = struct {
  6685  	ulFlags                           DWORD
  6686  	ulEncodedAssemblyIdentityLength   DWORD
  6687  	ulManifestPathType                DWORD
  6688  	ulManifestPathLength              DWORD
  6689  	liManifestLastWriteTime           LARGE_INTEGER
  6690  	ulPolicyPathType                  DWORD
  6691  	ulPolicyPathLength                DWORD
  6692  	liPolicyLastWriteTime             LARGE_INTEGER
  6693  	ulMetadataSatelliteRosterIndex    DWORD
  6694  	ulManifestVersionMajor            DWORD
  6695  	ulManifestVersionMinor            DWORD
  6696  	ulPolicyVersionMajor              DWORD
  6697  	ulPolicyVersionMinor              DWORD
  6698  	ulAssemblyDirectoryNameLength     DWORD
  6699  	lpAssemblyEncodedAssemblyIdentity PCWSTR
  6700  	lpAssemblyManifestPath            PCWSTR
  6701  	lpAssemblyPolicyPath              PCWSTR
  6702  	lpAssemblyDirectoryName           PCWSTR
  6703  	ulFileCount                       DWORD
  6704  	_                                 [4]byte
  6705  } /* winnt.h:8063:13 */
  6706  
  6707  type ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION /* winnt.h:8083:7 */
  6708  type PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = uintptr                                          /* winnt.h:8083:56 */
  6709  
  6710  type _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = struct {
  6711  	ulFlags  DWORD
  6712  	RunLevel ACTCTX_REQUESTED_RUN_LEVEL
  6713  	UiAccess DWORD
  6714  } /* winnt.h:8085:13 */
  6715  
  6716  type ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION /* winnt.h:8089:7 */
  6717  type PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = uintptr                                  /* winnt.h:8089:48 */
  6718  
  6719  type _COMPATIBILITY_CONTEXT_ELEMENT = struct {
  6720  	Id   GUID
  6721  	Type ACTCTX_COMPATIBILITY_ELEMENT_TYPE
  6722  } /* winnt.h:8091:13 */
  6723  
  6724  type COMPATIBILITY_CONTEXT_ELEMENT = _COMPATIBILITY_CONTEXT_ELEMENT /* winnt.h:8094:7 */
  6725  type PCOMPATIBILITY_CONTEXT_ELEMENT = uintptr                       /* winnt.h:8094:37 */
  6726  
  6727  //Vista: {e2011457-1546-43c5-a5fe-008deee3d3f0}
  6728  //Seven: {35138b9a-5d96-4fbd-8e2d-a2440225f93a}
  6729  type _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = struct {
  6730  	_            [0]uint32
  6731  	ElementCount DWORD
  6732  } /* winnt.h:8098:13 */
  6733  
  6734  //Vista: {e2011457-1546-43c5-a5fe-008deee3d3f0}
  6735  //Seven: {35138b9a-5d96-4fbd-8e2d-a2440225f93a}
  6736  type ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION /* winnt.h:8101:7 */
  6737  type PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = uintptr                                      /* winnt.h:8101:52 */
  6738  
  6739  type _SUPPORTED_OS_INFO = struct {
  6740  	OsCount         WORD
  6741  	MitigationExist WORD
  6742  	OsList          [4]WORD
  6743  } /* winnt.h:8105:13 */
  6744  
  6745  type SUPPORTED_OS_INFO = _SUPPORTED_OS_INFO /* winnt.h:8109:7 */
  6746  type PSUPPORTED_OS_INFO = uintptr           /* winnt.h:8109:25 */
  6747  
  6748  type _ACTIVATION_CONTEXT_DETAILED_INFORMATION = struct {
  6749  	dwFlags                      DWORD
  6750  	ulFormatVersion              DWORD
  6751  	ulAssemblyCount              DWORD
  6752  	ulRootManifestPathType       DWORD
  6753  	ulRootManifestPathChars      DWORD
  6754  	ulRootConfigurationPathType  DWORD
  6755  	ulRootConfigurationPathChars DWORD
  6756  	ulAppDirPathType             DWORD
  6757  	ulAppDirPathChars            DWORD
  6758  	lpRootManifestPath           PCWSTR
  6759  	lpRootConfigurationPath      PCWSTR
  6760  	lpAppDirPath                 PCWSTR
  6761  } /* winnt.h:8111:13 */
  6762  
  6763  type ACTIVATION_CONTEXT_DETAILED_INFORMATION = _ACTIVATION_CONTEXT_DETAILED_INFORMATION /* winnt.h:8124:7 */
  6764  type PACTIVATION_CONTEXT_DETAILED_INFORMATION = uintptr                                 /* winnt.h:8124:47 */
  6765  
  6766  type PCACTIVATION_CONTEXT_QUERY_INDEX = uintptr                   /* winnt.h:8126:58 */
  6767  type PCASSEMBLY_FILE_DETAILED_INFORMATION = uintptr               /* winnt.h:8127:54 */
  6768  type PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = uintptr /* winnt.h:8128:76 */
  6769  type PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = uintptr         /* winnt.h:8129:68 */
  6770  type PCCOMPATIBILITY_CONTEXT_ELEMENT = uintptr                    /* winnt.h:8130:57 */
  6771  type PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = uintptr     /* winnt.h:8131:72 */
  6772  type PCACTIVATION_CONTEXT_DETAILED_INFORMATION = uintptr          /* winnt.h:8132:67 */
  6773  
  6774  type RTL_VERIFIER_DLL_LOAD_CALLBACK = uintptr      /* winnt.h:8149:18 */
  6775  type RTL_VERIFIER_DLL_UNLOAD_CALLBACK = uintptr    /* winnt.h:8150:18 */
  6776  type RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK = uintptr /* winnt.h:8151:18 */
  6777  
  6778  type _RTL_VERIFIER_THUNK_DESCRIPTOR = struct {
  6779  	ThunkName       PCHAR
  6780  	ThunkOldAddress PVOID
  6781  	ThunkNewAddress PVOID
  6782  } /* winnt.h:8153:13 */
  6783  
  6784  type RTL_VERIFIER_THUNK_DESCRIPTOR = _RTL_VERIFIER_THUNK_DESCRIPTOR /* winnt.h:8157:7 */
  6785  type PRTL_VERIFIER_THUNK_DESCRIPTOR = uintptr                       /* winnt.h:8157:37 */
  6786  
  6787  type _RTL_VERIFIER_DLL_DESCRIPTOR = struct {
  6788  	DllName    PWCHAR
  6789  	DllFlags   DWORD
  6790  	DllAddress PVOID
  6791  	DllThunks  PRTL_VERIFIER_THUNK_DESCRIPTOR
  6792  } /* winnt.h:8159:13 */
  6793  
  6794  type RTL_VERIFIER_DLL_DESCRIPTOR = _RTL_VERIFIER_DLL_DESCRIPTOR /* winnt.h:8164:7 */
  6795  type PRTL_VERIFIER_DLL_DESCRIPTOR = uintptr                     /* winnt.h:8164:35 */
  6796  
  6797  type _RTL_VERIFIER_PROVIDER_DESCRIPTOR = struct {
  6798  	Length                        DWORD
  6799  	ProviderDlls                  PRTL_VERIFIER_DLL_DESCRIPTOR
  6800  	ProviderDllLoadCallback       RTL_VERIFIER_DLL_LOAD_CALLBACK
  6801  	ProviderDllUnloadCallback     RTL_VERIFIER_DLL_UNLOAD_CALLBACK
  6802  	VerifierImage                 PWSTR
  6803  	VerifierFlags                 DWORD
  6804  	VerifierDebug                 DWORD
  6805  	RtlpGetStackTraceAddress      PVOID
  6806  	RtlpDebugPageHeapCreate       PVOID
  6807  	RtlpDebugPageHeapDestroy      PVOID
  6808  	ProviderNtdllHeapFreeCallback RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK
  6809  } /* winnt.h:8166:13 */
  6810  
  6811  type RTL_VERIFIER_PROVIDER_DESCRIPTOR = _RTL_VERIFIER_PROVIDER_DESCRIPTOR /* winnt.h:8178:7 */
  6812  type PRTL_VERIFIER_PROVIDER_DESCRIPTOR = uintptr                          /* winnt.h:8178:40 */
  6813  
  6814  type _HARDWARE_COUNTER_DATA = struct {
  6815  	Type     HARDWARE_COUNTER_TYPE
  6816  	Reserved DWORD
  6817  	Value    DWORD64
  6818  } /* winnt.h:8291:13 */
  6819  
  6820  type HARDWARE_COUNTER_DATA = _HARDWARE_COUNTER_DATA /* winnt.h:8295:7 */
  6821  type PHARDWARE_COUNTER_DATA = uintptr               /* winnt.h:8295:29 */
  6822  
  6823  type _PERFORMANCE_DATA = struct {
  6824  	Size               WORD
  6825  	Version            BYTE
  6826  	HwCountersCount    BYTE
  6827  	ContextSwitchCount DWORD
  6828  	WaitReasonBitMap   DWORD64
  6829  	CycleTime          DWORD64
  6830  	RetryCount         DWORD
  6831  	Reserved           DWORD
  6832  	HwCounters         [16]HARDWARE_COUNTER_DATA
  6833  } /* winnt.h:8297:13 */
  6834  
  6835  type PERFORMANCE_DATA = _PERFORMANCE_DATA /* winnt.h:8307:7 */
  6836  type PPERFORMANCE_DATA = uintptr          /* winnt.h:8307:24 */
  6837  
  6838  type _EVENTLOGRECORD = struct {
  6839  	Length              DWORD
  6840  	Reserved            DWORD
  6841  	RecordNumber        DWORD
  6842  	TimeGenerated       DWORD
  6843  	TimeWritten         DWORD
  6844  	EventID             DWORD
  6845  	EventType           WORD
  6846  	NumStrings          WORD
  6847  	EventCategory       WORD
  6848  	ReservedFlags       WORD
  6849  	ClosingRecordNumber DWORD
  6850  	StringOffset        DWORD
  6851  	UserSidLength       DWORD
  6852  	UserSidOffset       DWORD
  6853  	DataLength          DWORD
  6854  	DataOffset          DWORD
  6855  } /* winnt.h:8338:13 */
  6856  
  6857  type EVENTLOGRECORD = _EVENTLOGRECORD /* winnt.h:8355:7 */
  6858  type PEVENTLOGRECORD = uintptr        /* winnt.h:8355:22 */
  6859  
  6860  type _EVENTSFORLOGFILE = struct {
  6861  	_                [0]uint32
  6862  	ulSize           DWORD
  6863  	szLogicalLogFile [256]WCHAR
  6864  	ulNumRecords     DWORD
  6865  } /* winnt.h:8359:13 */
  6866  
  6867  type EVENTSFORLOGFILE = _EVENTSFORLOGFILE /* winnt.h:8364:7 */
  6868  type PEVENTSFORLOGFILE = uintptr          /* winnt.h:8364:24 */
  6869  
  6870  type _PACKEDEVENTINFO = struct {
  6871  	_                     [0]uint32
  6872  	ulSize                DWORD
  6873  	ulNumEventsForLogFile DWORD
  6874  } /* winnt.h:8366:13 */
  6875  
  6876  type PACKEDEVENTINFO = _PACKEDEVENTINFO /* winnt.h:8370:7 */
  6877  type PPACKEDEVENTINFO = uintptr         /* winnt.h:8370:23 */
  6878  
  6879  type SERVICE_NODE_TYPE = uint32 /* winnt.h:8468:7 */
  6880  
  6881  type SERVICE_LOAD_TYPE = uint32 /* winnt.h:8473:7 */
  6882  
  6883  type SERVICE_ERROR_TYPE = uint32 /* winnt.h:8477:7 */
  6884  
  6885  type _TAPE_ERASE = struct {
  6886  	Type      DWORD
  6887  	Immediate BOOLEAN
  6888  	_         [3]byte
  6889  } /* winnt.h:8496:13 */
  6890  
  6891  type TAPE_ERASE = _TAPE_ERASE /* winnt.h:8499:7 */
  6892  type PTAPE_ERASE = uintptr    /* winnt.h:8499:18 */
  6893  
  6894  type _TAPE_PREPARE = struct {
  6895  	Operation DWORD
  6896  	Immediate BOOLEAN
  6897  	_         [3]byte
  6898  } /* winnt.h:8508:13 */
  6899  
  6900  type TAPE_PREPARE = _TAPE_PREPARE /* winnt.h:8511:7 */
  6901  type PTAPE_PREPARE = uintptr      /* winnt.h:8511:20 */
  6902  
  6903  type _TAPE_WRITE_MARKS = struct {
  6904  	Type      DWORD
  6905  	Count     DWORD
  6906  	Immediate BOOLEAN
  6907  	_         [3]byte
  6908  } /* winnt.h:8518:13 */
  6909  
  6910  type TAPE_WRITE_MARKS = _TAPE_WRITE_MARKS /* winnt.h:8522:7 */
  6911  type PTAPE_WRITE_MARKS = uintptr          /* winnt.h:8522:24 */
  6912  
  6913  type _TAPE_GET_POSITION = struct {
  6914  	Type      DWORD
  6915  	Partition DWORD
  6916  	Offset    LARGE_INTEGER
  6917  } /* winnt.h:8528:13 */
  6918  
  6919  type TAPE_GET_POSITION = _TAPE_GET_POSITION /* winnt.h:8532:7 */
  6920  type PTAPE_GET_POSITION = uintptr           /* winnt.h:8532:25 */
  6921  
  6922  type _TAPE_SET_POSITION = struct {
  6923  	Method    DWORD
  6924  	Partition DWORD
  6925  	Offset    LARGE_INTEGER
  6926  	Immediate BOOLEAN
  6927  	_         [7]byte
  6928  } /* winnt.h:8545:13 */
  6929  
  6930  type TAPE_SET_POSITION = _TAPE_SET_POSITION /* winnt.h:8550:7 */
  6931  type PTAPE_SET_POSITION = uintptr           /* winnt.h:8550:25 */
  6932  
  6933  type _TAPE_GET_DRIVE_PARAMETERS = struct {
  6934  	ECC                   BOOLEAN
  6935  	Compression           BOOLEAN
  6936  	DataPadding           BOOLEAN
  6937  	ReportSetmarks        BOOLEAN
  6938  	DefaultBlockSize      DWORD
  6939  	MaximumBlockSize      DWORD
  6940  	MinimumBlockSize      DWORD
  6941  	MaximumPartitionCount DWORD
  6942  	FeaturesLow           DWORD
  6943  	FeaturesHigh          DWORD
  6944  	EOTWarningZoneSize    DWORD
  6945  } /* winnt.h:8619:13 */
  6946  
  6947  type TAPE_GET_DRIVE_PARAMETERS = _TAPE_GET_DRIVE_PARAMETERS /* winnt.h:8631:7 */
  6948  type PTAPE_GET_DRIVE_PARAMETERS = uintptr                   /* winnt.h:8631:33 */
  6949  
  6950  type _TAPE_SET_DRIVE_PARAMETERS = struct {
  6951  	ECC                BOOLEAN
  6952  	Compression        BOOLEAN
  6953  	DataPadding        BOOLEAN
  6954  	ReportSetmarks     BOOLEAN
  6955  	EOTWarningZoneSize DWORD
  6956  } /* winnt.h:8633:13 */
  6957  
  6958  type TAPE_SET_DRIVE_PARAMETERS = _TAPE_SET_DRIVE_PARAMETERS /* winnt.h:8639:7 */
  6959  type PTAPE_SET_DRIVE_PARAMETERS = uintptr                   /* winnt.h:8639:33 */
  6960  
  6961  type _TAPE_GET_MEDIA_PARAMETERS = struct {
  6962  	Capacity       LARGE_INTEGER
  6963  	Remaining      LARGE_INTEGER
  6964  	BlockSize      DWORD
  6965  	PartitionCount DWORD
  6966  	WriteProtected BOOLEAN
  6967  	_              [7]byte
  6968  } /* winnt.h:8641:13 */
  6969  
  6970  type TAPE_GET_MEDIA_PARAMETERS = _TAPE_GET_MEDIA_PARAMETERS /* winnt.h:8647:7 */
  6971  type PTAPE_GET_MEDIA_PARAMETERS = uintptr                   /* winnt.h:8647:33 */
  6972  
  6973  type _TAPE_SET_MEDIA_PARAMETERS = struct{ BlockSize DWORD } /* winnt.h:8649:13 */
  6974  
  6975  type TAPE_SET_MEDIA_PARAMETERS = _TAPE_SET_MEDIA_PARAMETERS /* winnt.h:8651:7 */
  6976  type PTAPE_SET_MEDIA_PARAMETERS = uintptr                   /* winnt.h:8651:33 */
  6977  
  6978  type _TAPE_CREATE_PARTITION = struct {
  6979  	Method DWORD
  6980  	Count  DWORD
  6981  	Size   DWORD
  6982  } /* winnt.h:8657:13 */
  6983  
  6984  type TAPE_CREATE_PARTITION = _TAPE_CREATE_PARTITION /* winnt.h:8661:7 */
  6985  type PTAPE_CREATE_PARTITION = uintptr               /* winnt.h:8661:29 */
  6986  
  6987  type _TAPE_WMI_OPERATIONS = struct {
  6988  	Method         DWORD
  6989  	DataBufferSize DWORD
  6990  	DataBuffer     PVOID
  6991  } /* winnt.h:8669:13 */
  6992  
  6993  type TAPE_WMI_OPERATIONS = _TAPE_WMI_OPERATIONS /* winnt.h:8673:7 */
  6994  type PTAPE_WMI_OPERATIONS = uintptr             /* winnt.h:8673:27 */
  6995  
  6996  type TAPE_DRIVE_PROBLEM_TYPE = uint32 /* winnt.h:8677:7 */
  6997  
  6998  type TP_VERSION = DWORD              /* winnt.h:8680:17 */
  6999  type PTP_VERSION = uintptr           /* winnt.h:8680:28 */
  7000  type PTP_CALLBACK_INSTANCE = uintptr /* winnt.h:8681:61 */
  7001  type PTP_SIMPLE_CALLBACK = uintptr   /* winnt.h:8682:16 */
  7002  type PTP_POOL = uintptr              /* winnt.h:8683:35 */
  7003  
  7004  type TP_CALLBACK_PRIORITY = uint32 /* winnt.h:8691:5 */
  7005  
  7006  type _TP_POOL_STACK_INFORMATION = struct {
  7007  	StackReserve SIZE_T
  7008  	StackCommit  SIZE_T
  7009  } /* winnt.h:8693:11 */
  7010  
  7011  type TP_POOL_STACK_INFORMATION = _TP_POOL_STACK_INFORMATION /* winnt.h:8696:5 */
  7012  type PTP_POOL_STACK_INFORMATION = uintptr                   /* winnt.h:8696:32 */
  7013  type PTP_CLEANUP_GROUP = uintptr                            /* winnt.h:8698:53 */
  7014  type PTP_CLEANUP_GROUP_CANCEL_CALLBACK = uintptr            /* winnt.h:8699:16 */
  7015  
  7016  type _TP_CALLBACK_ENVIRON_V1 = struct {
  7017  	Version                    TP_VERSION
  7018  	Pool                       PTP_POOL
  7019  	CleanupGroup               PTP_CLEANUP_GROUP
  7020  	CleanupGroupCancelCallback PTP_CLEANUP_GROUP_CANCEL_CALLBACK
  7021  	RaceDll                    PVOID
  7022  	ActivationContext          uintptr
  7023  	FinalizationCallback       PTP_SIMPLE_CALLBACK
  7024  	u                          struct{ Flags DWORD }
  7025  } /* winnt.h:8723:11 */
  7026  
  7027  type TP_CALLBACK_ENVIRON_V1 = _TP_CALLBACK_ENVIRON_V1 /* winnt.h:8739:5 */
  7028  type TP_CALLBACK_ENVIRON = TP_CALLBACK_ENVIRON_V1     /* winnt.h:8740:34 */
  7029  type PTP_CALLBACK_ENVIRON = uintptr                   /* winnt.h:8740:54 */
  7030  type PTP_WORK = uintptr                               /* winnt.h:8743:35 */
  7031  type PTP_WORK_CALLBACK = uintptr                      /* winnt.h:8744:16 */
  7032  type PTP_TIMER = uintptr                              /* winnt.h:8745:37 */
  7033  type PTP_TIMER_CALLBACK = uintptr                     /* winnt.h:8746:16 */
  7034  type TP_WAIT_RESULT = DWORD                           /* winnt.h:8747:17 */
  7035  type PTP_WAIT = uintptr                               /* winnt.h:8748:35 */
  7036  type PTP_WAIT_CALLBACK = uintptr                      /* winnt.h:8749:16 */
  7037  type PTP_IO = uintptr                                 /* winnt.h:8750:31 */
  7038  
  7039  // *
  7040  // This file is part of the mingw-w64 runtime package.
  7041  // No warranty is given; refer to the file DISCLAIMER within this package.
  7042  
  7043  type CRM_PROTOCOL_ID = GUID     /* ktmtypes.h:13:16 */
  7044  type PCRM_PROTOCOL_ID = uintptr /* ktmtypes.h:13:32 */
  7045  
  7046  type NOTIFICATION_MASK = ULONG /* ktmtypes.h:38:17 */
  7047  
  7048  type _TRANSACTION_NOTIFICATION = struct {
  7049  	TransactionKey          PVOID
  7050  	TransactionNotification ULONG
  7051  	TmVirtualClock          LARGE_INTEGER
  7052  	ArgumentLength          ULONG
  7053  	_                       [4]byte
  7054  } /* ktmtypes.h:78:11 */
  7055  
  7056  type TRANSACTION_NOTIFICATION = _TRANSACTION_NOTIFICATION /* ktmtypes.h:83:5 */
  7057  type PTRANSACTION_NOTIFICATION = uintptr                  /* ktmtypes.h:83:30 */
  7058  
  7059  type _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = struct {
  7060  	EnlistmentId GUID
  7061  	UOW          GUID
  7062  } /* ktmtypes.h:85:11 */
  7063  
  7064  type TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT /* ktmtypes.h:88:5 */
  7065  type PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = uintptr                                    /* ktmtypes.h:88:48 */
  7066  
  7067  type _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = struct {
  7068  	TmIdentity GUID
  7069  	Flags      ULONG
  7070  } /* ktmtypes.h:92:11 */
  7071  
  7072  type TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT /* ktmtypes.h:95:5 */
  7073  type PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = uintptr                                     /* ktmtypes.h:95:49 */
  7074  
  7075  type SAVEPOINT_ID = ULONG    /* ktmtypes.h:97:17 */
  7076  type PSAVEPOINT_ID = uintptr /* ktmtypes.h:97:30 */
  7077  
  7078  type _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = struct{ SavepointId SAVEPOINT_ID } /* ktmtypes.h:99:11 */
  7079  
  7080  type TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT /* ktmtypes.h:101:5 */
  7081  type PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = uintptr                                     /* ktmtypes.h:101:49 */
  7082  
  7083  type _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = struct {
  7084  	PropagationCookie ULONG
  7085  	UOW               GUID
  7086  	TmIdentity        GUID
  7087  	BufferLength      ULONG
  7088  } /* ktmtypes.h:103:11 */
  7089  
  7090  type TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT /* ktmtypes.h:108:5 */
  7091  type PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = uintptr                                     /* ktmtypes.h:108:49 */
  7092  
  7093  type _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = struct {
  7094  	MarshalCookie ULONG
  7095  	UOW           GUID
  7096  } /* ktmtypes.h:110:11 */
  7097  
  7098  type TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT /* ktmtypes.h:113:5 */
  7099  type PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = uintptr                                   /* ktmtypes.h:113:47 */
  7100  
  7101  type TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT /* ktmtypes.h:115:55 */
  7102  type PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = uintptr                                    /* ktmtypes.h:115:97 */
  7103  
  7104  type _KCRM_MARSHAL_HEADER = struct {
  7105  	VersionMajor ULONG
  7106  	VersionMinor ULONG
  7107  	NumProtocols ULONG
  7108  	Unused       ULONG
  7109  } /* ktmtypes.h:123:11 */
  7110  
  7111  type KCRM_MARSHAL_HEADER = _KCRM_MARSHAL_HEADER /* ktmtypes.h:128:5 */
  7112  type PKCRM_MARSHAL_HEADER = uintptr             /* ktmtypes.h:128:25 */
  7113  type PRKCRM_MARSHAL_HEADER = uintptr            /* ktmtypes.h:128:47 */
  7114  
  7115  type _KCRM_TRANSACTION_BLOB = struct {
  7116  	UOW            GUID
  7117  	TmIdentity     GUID
  7118  	IsolationLevel ULONG
  7119  	IsolationFlags ULONG
  7120  	Timeout        ULONG
  7121  	Description    [64]WCHAR
  7122  } /* ktmtypes.h:130:11 */
  7123  
  7124  type KCRM_TRANSACTION_BLOB = _KCRM_TRANSACTION_BLOB /* ktmtypes.h:137:5 */
  7125  type PKCRM_TRANSACTION_BLOB = uintptr               /* ktmtypes.h:137:27 */
  7126  type PRKCRM_TRANSACTION_BLOB = uintptr              /* ktmtypes.h:137:51 */
  7127  
  7128  type _KCRM_PROTOCOL_BLOB = struct {
  7129  	ProtocolId              CRM_PROTOCOL_ID
  7130  	StaticInfoLength        ULONG
  7131  	TransactionIdInfoLength ULONG
  7132  	Unused1                 ULONG
  7133  	Unused2                 ULONG
  7134  } /* ktmtypes.h:139:11 */
  7135  
  7136  type KCRM_PROTOCOL_BLOB = _KCRM_PROTOCOL_BLOB /* ktmtypes.h:145:5 */
  7137  type PKCRM_PROTOCOL_BLOB = uintptr            /* ktmtypes.h:145:24 */
  7138  type PRKCRM_PROTOCOL_BLOB = uintptr           /* ktmtypes.h:145:45 */
  7139  
  7140  type TRANSACTION_OUTCOME = uint32 /* winnt.h:8882:9 */
  7141  
  7142  type TRANSACTION_STATE = uint32 /* winnt.h:8888:9 */
  7143  
  7144  type _TRANSACTION_BASIC_INFORMATION = struct {
  7145  	TransactionId GUID
  7146  	State         DWORD
  7147  	Outcome       DWORD
  7148  } /* winnt.h:8890:15 */
  7149  
  7150  type TRANSACTION_BASIC_INFORMATION = _TRANSACTION_BASIC_INFORMATION /* winnt.h:8894:9 */
  7151  type PTRANSACTION_BASIC_INFORMATION = uintptr                       /* winnt.h:8894:39 */
  7152  
  7153  type _TRANSACTIONMANAGER_BASIC_INFORMATION = struct {
  7154  	TmIdentity   GUID
  7155  	VirtualClock LARGE_INTEGER
  7156  } /* winnt.h:8896:15 */
  7157  
  7158  type TRANSACTIONMANAGER_BASIC_INFORMATION = _TRANSACTIONMANAGER_BASIC_INFORMATION /* winnt.h:8899:9 */
  7159  type PTRANSACTIONMANAGER_BASIC_INFORMATION = uintptr                              /* winnt.h:8899:46 */
  7160  
  7161  type _TRANSACTIONMANAGER_LOG_INFORMATION = struct{ LogIdentity GUID } /* winnt.h:8901:15 */
  7162  
  7163  type TRANSACTIONMANAGER_LOG_INFORMATION = _TRANSACTIONMANAGER_LOG_INFORMATION /* winnt.h:8903:9 */
  7164  type PTRANSACTIONMANAGER_LOG_INFORMATION = uintptr                            /* winnt.h:8903:44 */
  7165  
  7166  type _TRANSACTIONMANAGER_LOGPATH_INFORMATION = struct {
  7167  	LogPathLength DWORD
  7168  	LogPath       [1]WCHAR
  7169  	_             [2]byte
  7170  } /* winnt.h:8905:15 */
  7171  
  7172  type TRANSACTIONMANAGER_LOGPATH_INFORMATION = _TRANSACTIONMANAGER_LOGPATH_INFORMATION /* winnt.h:8908:9 */
  7173  type PTRANSACTIONMANAGER_LOGPATH_INFORMATION = uintptr                                /* winnt.h:8908:48 */
  7174  
  7175  type _TRANSACTIONMANAGER_RECOVERY_INFORMATION = struct{ LastRecoveredLsn ULONGLONG } /* winnt.h:8910:15 */
  7176  
  7177  type TRANSACTIONMANAGER_RECOVERY_INFORMATION = _TRANSACTIONMANAGER_RECOVERY_INFORMATION /* winnt.h:8912:9 */
  7178  type PTRANSACTIONMANAGER_RECOVERY_INFORMATION = uintptr                                 /* winnt.h:8912:49 */
  7179  
  7180  type _TRANSACTIONMANAGER_OLDEST_INFORMATION = struct{ OldestTransactionGuid GUID } /* winnt.h:8914:15 */
  7181  
  7182  type TRANSACTIONMANAGER_OLDEST_INFORMATION = _TRANSACTIONMANAGER_OLDEST_INFORMATION /* winnt.h:8916:9 */
  7183  type PTRANSACTIONMANAGER_OLDEST_INFORMATION = uintptr                               /* winnt.h:8916:47 */
  7184  
  7185  type _TRANSACTION_PROPERTIES_INFORMATION = struct {
  7186  	IsolationLevel    DWORD
  7187  	IsolationFlags    DWORD
  7188  	Timeout           LARGE_INTEGER
  7189  	Outcome           DWORD
  7190  	DescriptionLength DWORD
  7191  	Description       [1]WCHAR
  7192  	_                 [6]byte
  7193  } /* winnt.h:8918:15 */
  7194  
  7195  type TRANSACTION_PROPERTIES_INFORMATION = _TRANSACTION_PROPERTIES_INFORMATION /* winnt.h:8925:9 */
  7196  type PTRANSACTION_PROPERTIES_INFORMATION = uintptr                            /* winnt.h:8925:44 */
  7197  
  7198  type _TRANSACTION_BIND_INFORMATION = struct{ TmHandle HANDLE } /* winnt.h:8927:15 */
  7199  
  7200  type TRANSACTION_BIND_INFORMATION = _TRANSACTION_BIND_INFORMATION /* winnt.h:8929:9 */
  7201  type PTRANSACTION_BIND_INFORMATION = uintptr                      /* winnt.h:8929:38 */
  7202  
  7203  type _TRANSACTION_ENLISTMENT_PAIR = struct {
  7204  	EnlistmentId      GUID
  7205  	ResourceManagerId GUID
  7206  } /* winnt.h:8931:15 */
  7207  
  7208  type TRANSACTION_ENLISTMENT_PAIR = _TRANSACTION_ENLISTMENT_PAIR /* winnt.h:8934:9 */
  7209  type PTRANSACTION_ENLISTMENT_PAIR = uintptr                     /* winnt.h:8934:37 */
  7210  
  7211  type _TRANSACTION_ENLISTMENTS_INFORMATION = struct {
  7212  	NumberOfEnlistments DWORD
  7213  	EnlistmentPair      [1]TRANSACTION_ENLISTMENT_PAIR
  7214  } /* winnt.h:8936:15 */
  7215  
  7216  type TRANSACTION_ENLISTMENTS_INFORMATION = _TRANSACTION_ENLISTMENTS_INFORMATION /* winnt.h:8939:9 */
  7217  type PTRANSACTION_ENLISTMENTS_INFORMATION = uintptr                             /* winnt.h:8939:45 */
  7218  
  7219  type _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = struct{ SuperiorEnlistmentPair TRANSACTION_ENLISTMENT_PAIR } /* winnt.h:8941:15 */
  7220  
  7221  type TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION /* winnt.h:8943:9 */
  7222  type PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = uintptr                                     /* winnt.h:8943:53 */
  7223  
  7224  type _RESOURCEMANAGER_BASIC_INFORMATION = struct {
  7225  	ResourceManagerId GUID
  7226  	DescriptionLength DWORD
  7227  	Description       [1]WCHAR
  7228  	_                 [2]byte
  7229  } /* winnt.h:8945:15 */
  7230  
  7231  type RESOURCEMANAGER_BASIC_INFORMATION = _RESOURCEMANAGER_BASIC_INFORMATION /* winnt.h:8949:9 */
  7232  type PRESOURCEMANAGER_BASIC_INFORMATION = uintptr                           /* winnt.h:8949:43 */
  7233  
  7234  type _RESOURCEMANAGER_COMPLETION_INFORMATION = struct {
  7235  	IoCompletionPortHandle HANDLE
  7236  	CompletionKey          ULONG_PTR
  7237  } /* winnt.h:8951:15 */
  7238  
  7239  type RESOURCEMANAGER_COMPLETION_INFORMATION = _RESOURCEMANAGER_COMPLETION_INFORMATION /* winnt.h:8954:9 */
  7240  type PRESOURCEMANAGER_COMPLETION_INFORMATION = uintptr                                /* winnt.h:8954:48 */
  7241  
  7242  type TRANSACTION_INFORMATION_CLASS = uint32 /* winnt.h:8963:9 */
  7243  
  7244  type TRANSACTIONMANAGER_INFORMATION_CLASS = uint32 /* winnt.h:8972:9 */
  7245  
  7246  type RESOURCEMANAGER_INFORMATION_CLASS = uint32 /* winnt.h:8977:9 */
  7247  
  7248  type _ENLISTMENT_BASIC_INFORMATION = struct {
  7249  	EnlistmentId      GUID
  7250  	TransactionId     GUID
  7251  	ResourceManagerId GUID
  7252  } /* winnt.h:8979:15 */
  7253  
  7254  type ENLISTMENT_BASIC_INFORMATION = _ENLISTMENT_BASIC_INFORMATION /* winnt.h:8983:9 */
  7255  type PENLISTMENT_BASIC_INFORMATION = uintptr                      /* winnt.h:8983:38 */
  7256  
  7257  type _ENLISTMENT_CRM_INFORMATION = struct {
  7258  	CrmTransactionManagerId GUID
  7259  	CrmResourceManagerId    GUID
  7260  	CrmEnlistmentId         GUID
  7261  } /* winnt.h:8985:15 */
  7262  
  7263  type ENLISTMENT_CRM_INFORMATION = _ENLISTMENT_CRM_INFORMATION /* winnt.h:8989:9 */
  7264  type PENLISTMENT_CRM_INFORMATION = uintptr                    /* winnt.h:8989:36 */
  7265  
  7266  type ENLISTMENT_INFORMATION_CLASS = uint32 /* winnt.h:8995:9 */
  7267  
  7268  type _TRANSACTION_LIST_ENTRY = struct{ UOW GUID } /* winnt.h:8997:15 */
  7269  
  7270  type TRANSACTION_LIST_ENTRY = _TRANSACTION_LIST_ENTRY /* winnt.h:8999:9 */
  7271  type PTRANSACTION_LIST_ENTRY = uintptr                /* winnt.h:8999:32 */
  7272  
  7273  type _TRANSACTION_LIST_INFORMATION = struct {
  7274  	NumberOfTransactions   DWORD
  7275  	TransactionInformation [1]TRANSACTION_LIST_ENTRY
  7276  } /* winnt.h:9001:15 */
  7277  
  7278  type TRANSACTION_LIST_INFORMATION = _TRANSACTION_LIST_INFORMATION /* winnt.h:9004:9 */
  7279  type PTRANSACTION_LIST_INFORMATION = uintptr                      /* winnt.h:9004:38 */
  7280  
  7281  type KTMOBJECT_TYPE = uint32   /* winnt.h:9012:9 */
  7282  type PKTMOBJECT_TYPE = uintptr /* winnt.h:9012:24 */
  7283  
  7284  type _KTMOBJECT_CURSOR = struct {
  7285  	LastQuery     GUID
  7286  	ObjectIdCount DWORD
  7287  	ObjectIds     [1]GUID
  7288  } /* winnt.h:9014:15 */
  7289  
  7290  type KTMOBJECT_CURSOR = _KTMOBJECT_CURSOR /* winnt.h:9018:9 */
  7291  type PKTMOBJECT_CURSOR = uintptr          /* winnt.h:9018:26 */
  7292  
  7293  // Field Names From (See _fields_ section)
  7294  // FIXME: Verify these against documentation
  7295  // -- These documentation describes Win32 Constants and Structures in Python --
  7296  // Constants - http://packages.python.org/winappdbg/winappdbg.win32.context_i386-pysrc.html
  7297  // WOW64_FLOATING_SAVE_AREA - http://packages.python.org/winappdbg/winappdbg.win32.context_amd64.WOW64_FLOATING_SAVE_AREA-class.html
  7298  // WOW64_CONTEXT - http://packages.python.org/winappdbg/winappdbg.win32.context_amd64.WOW64_CONTEXT-class.html
  7299  
  7300  type _WOW64_FLOATING_SAVE_AREA = struct {
  7301  	ControlWord   DWORD
  7302  	StatusWord    DWORD
  7303  	TagWord       DWORD
  7304  	ErrorOffset   DWORD
  7305  	ErrorSelector DWORD
  7306  	DataOffset    DWORD
  7307  	DataSelector  DWORD
  7308  	RegisterArea  [80]BYTE
  7309  	Cr0NpxState   DWORD
  7310  } /* winnt.h:9055:9 */
  7311  
  7312  // Field Names From (See _fields_ section)
  7313  // FIXME: Verify these against documentation
  7314  // -- These documentation describes Win32 Constants and Structures in Python --
  7315  // Constants - http://packages.python.org/winappdbg/winappdbg.win32.context_i386-pysrc.html
  7316  // WOW64_FLOATING_SAVE_AREA - http://packages.python.org/winappdbg/winappdbg.win32.context_amd64.WOW64_FLOATING_SAVE_AREA-class.html
  7317  // WOW64_CONTEXT - http://packages.python.org/winappdbg/winappdbg.win32.context_amd64.WOW64_CONTEXT-class.html
  7318  
  7319  type WOW64_FLOATING_SAVE_AREA = _WOW64_FLOATING_SAVE_AREA /* winnt.h:9065:3 */
  7320  type PWOW64_FLOATING_SAVE_AREA = uintptr                  /* winnt.h:9065:29 */
  7321  
  7322  // *
  7323  // This file has no copyright assigned and is placed in the Public Domain.
  7324  // This file is part of the mingw-w64 runtime package.
  7325  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  7326  type _WOW64_CONTEXT = struct {
  7327  	ContextFlags      DWORD
  7328  	Dr0               DWORD
  7329  	Dr1               DWORD
  7330  	Dr2               DWORD
  7331  	Dr3               DWORD
  7332  	Dr6               DWORD
  7333  	Dr7               DWORD
  7334  	FloatSave         WOW64_FLOATING_SAVE_AREA
  7335  	SegGs             DWORD
  7336  	SegFs             DWORD
  7337  	SegEs             DWORD
  7338  	SegDs             DWORD
  7339  	Edi               DWORD
  7340  	Esi               DWORD
  7341  	Ebx               DWORD
  7342  	Edx               DWORD
  7343  	Ecx               DWORD
  7344  	Eax               DWORD
  7345  	Ebp               DWORD
  7346  	Eip               DWORD
  7347  	SegCs             DWORD
  7348  	EFlags            DWORD
  7349  	Esp               DWORD
  7350  	SegSs             DWORD
  7351  	ExtendedRegisters [512]BYTE
  7352  } /* winnt.h:9068:9 */
  7353  
  7354  // *
  7355  // This file has no copyright assigned and is placed in the Public Domain.
  7356  // This file is part of the mingw-w64 runtime package.
  7357  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  7358  type WOW64_CONTEXT = _WOW64_CONTEXT /* winnt.h:9094:3 */
  7359  type PWOW64_CONTEXT = uintptr       /* winnt.h:9094:18 */
  7360  // *
  7361  // This file has no copyright assigned and is placed in the Public Domain.
  7362  // This file is part of the mingw-w64 runtime package.
  7363  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  7364  
  7365  type _WOW64_LDT_ENTRY = struct {
  7366  	LimitLow WORD
  7367  	BaseLow  WORD
  7368  	HighWord struct {
  7369  		_     [0]uint32
  7370  		Bytes struct {
  7371  			BaseMid BYTE
  7372  			Flags1  BYTE
  7373  			Flags2  BYTE
  7374  			BaseHi  BYTE
  7375  		}
  7376  	}
  7377  } /* winnt.h:9097:9 */
  7378  
  7379  // *
  7380  // This file has no copyright assigned and is placed in the Public Domain.
  7381  // This file is part of the mingw-w64 runtime package.
  7382  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  7383  
  7384  type WOW64_LDT_ENTRY = _WOW64_LDT_ENTRY /* winnt.h:9120:3 */
  7385  type PWOW64_LDT_ENTRY = uintptr         /* winnt.h:9120:20 */
  7386  
  7387  type _WOW64_DESCRIPTOR_TABLE_ENTRY = struct {
  7388  	Selector   DWORD
  7389  	Descriptor WOW64_LDT_ENTRY
  7390  } /* winnt.h:9122:13 */
  7391  
  7392  type WOW64_DESCRIPTOR_TABLE_ENTRY = _WOW64_DESCRIPTOR_TABLE_ENTRY /* winnt.h:9125:7 */
  7393  type PWOW64_DESCRIPTOR_TABLE_ENTRY = uintptr                      /* winnt.h:9125:36 */
  7394  
  7395  type WPARAM = UINT_PTR  /* minwindef.h:166:20 */
  7396  type LPARAM = LONG_PTR  /* minwindef.h:167:20 */
  7397  type LRESULT = LONG_PTR /* minwindef.h:168:20 */
  7398  
  7399  type SPHANDLE = uintptr    /* minwindef.h:189:18 */
  7400  type LPHANDLE = uintptr    /* minwindef.h:190:18 */
  7401  type HGLOBAL = HANDLE      /* minwindef.h:191:18 */
  7402  type HLOCAL = HANDLE       /* minwindef.h:192:18 */
  7403  type GLOBALHANDLE = HANDLE /* minwindef.h:193:18 */
  7404  type LOCALHANDLE = HANDLE  /* minwindef.h:194:18 */
  7405  type FARPROC = uintptr     /* minwindef.h:200:15 */
  7406  type NEARPROC = uintptr    /* minwindef.h:201:15 */
  7407  type PROC = uintptr        /* minwindef.h:202:15 */
  7408  
  7409  type ATOM = WORD /* minwindef.h:205:16 */
  7410  
  7411  type HFILE = int32                        /* minwindef.h:207:15 */
  7412  type HINSTANCE__ = struct{ unused int32 } /* minwindef.h:208:3 */
  7413  
  7414  type HINSTANCE = uintptr             /* minwindef.h:208:3 */
  7415  type HKEY__ = struct{ unused int32 } /* minwindef.h:209:3 */
  7416  
  7417  type HKEY = uintptr                 /* minwindef.h:209:3 */
  7418  type PHKEY = uintptr                /* minwindef.h:210:16 */
  7419  type HKL__ = struct{ unused int32 } /* minwindef.h:211:3 */
  7420  
  7421  type HKL = uintptr                     /* minwindef.h:211:3 */
  7422  type HLSURF__ = struct{ unused int32 } /* minwindef.h:212:3 */
  7423  
  7424  type HLSURF = uintptr                     /* minwindef.h:212:3 */
  7425  type HMETAFILE__ = struct{ unused int32 } /* minwindef.h:213:3 */
  7426  
  7427  type HMETAFILE = uintptr             /* minwindef.h:213:3 */
  7428  type HMODULE = HINSTANCE             /* minwindef.h:214:21 */
  7429  type HRGN__ = struct{ unused int32 } /* minwindef.h:215:3 */
  7430  
  7431  type HRGN = uintptr                   /* minwindef.h:215:3 */
  7432  type HRSRC__ = struct{ unused int32 } /* minwindef.h:216:3 */
  7433  
  7434  type HRSRC = uintptr                    /* minwindef.h:216:3 */
  7435  type HSPRITE__ = struct{ unused int32 } /* minwindef.h:217:3 */
  7436  
  7437  type HSPRITE = uintptr               /* minwindef.h:217:3 */
  7438  type HSTR__ = struct{ unused int32 } /* minwindef.h:218:3 */
  7439  
  7440  type HSTR = uintptr                   /* minwindef.h:218:3 */
  7441  type HTASK__ = struct{ unused int32 } /* minwindef.h:219:3 */
  7442  
  7443  type HTASK = uintptr                    /* minwindef.h:219:3 */
  7444  type HWINSTA__ = struct{ unused int32 } /* minwindef.h:220:3 */
  7445  
  7446  type HWINSTA = uintptr /* minwindef.h:220:3 */
  7447  
  7448  type _FILETIME = struct {
  7449  	dwLowDateTime  DWORD
  7450  	dwHighDateTime DWORD
  7451  } /* minwindef.h:222:11 */
  7452  
  7453  type FILETIME = _FILETIME /* minwindef.h:225:5 */
  7454  type PFILETIME = uintptr  /* minwindef.h:225:14 */
  7455  type LPFILETIME = uintptr /* minwindef.h:225:25 */
  7456  
  7457  // Make sure winnt.h is included.
  7458  // *
  7459  // This file is part of the mingw-w64 runtime package.
  7460  // No warranty is given; refer to the file DISCLAIMER within this package.
  7461  
  7462  type HWND__ = struct{ unused int32 } /* windef.h:25:1 */
  7463  
  7464  type HWND = uintptr                   /* windef.h:25:1 */
  7465  type HHOOK__ = struct{ unused int32 } /* windef.h:26:1 */
  7466  
  7467  type HHOOK = uintptr /* windef.h:26:1 */
  7468  
  7469  type HGDIOBJ = uintptr /* windef.h:37:16 */
  7470  
  7471  type HACCEL__ = struct{ unused int32 } /* windef.h:42:1 */
  7472  
  7473  type HACCEL = uintptr                   /* windef.h:42:1 */
  7474  type HBITMAP__ = struct{ unused int32 } /* windef.h:43:1 */
  7475  
  7476  type HBITMAP = uintptr                 /* windef.h:43:1 */
  7477  type HBRUSH__ = struct{ unused int32 } /* windef.h:44:1 */
  7478  
  7479  type HBRUSH = uintptr                       /* windef.h:44:1 */
  7480  type HCOLORSPACE__ = struct{ unused int32 } /* windef.h:45:1 */
  7481  
  7482  type HCOLORSPACE = uintptr          /* windef.h:45:1 */
  7483  type HDC__ = struct{ unused int32 } /* windef.h:46:1 */
  7484  
  7485  type HDC = uintptr                    /* windef.h:46:1 */
  7486  type HGLRC__ = struct{ unused int32 } /* windef.h:47:1 */
  7487  
  7488  type HGLRC = uintptr                  /* windef.h:47:1 */
  7489  type HDESK__ = struct{ unused int32 } /* windef.h:48:1 */
  7490  
  7491  type HDESK = uintptr                         /* windef.h:48:1 */
  7492  type HENHMETAFILE__ = struct{ unused int32 } /* windef.h:49:1 */
  7493  
  7494  type HENHMETAFILE = uintptr           /* windef.h:49:1 */
  7495  type HFONT__ = struct{ unused int32 } /* windef.h:50:1 */
  7496  
  7497  type HFONT = uintptr                  /* windef.h:50:1 */
  7498  type HICON__ = struct{ unused int32 } /* windef.h:51:1 */
  7499  
  7500  type HICON = uintptr                  /* windef.h:51:1 */
  7501  type HMENU__ = struct{ unused int32 } /* windef.h:52:1 */
  7502  
  7503  type HMENU = uintptr                     /* windef.h:52:1 */
  7504  type HPALETTE__ = struct{ unused int32 } /* windef.h:53:1 */
  7505  
  7506  type HPALETTE = uintptr              /* windef.h:53:1 */
  7507  type HPEN__ = struct{ unused int32 } /* windef.h:54:1 */
  7508  
  7509  type HPEN = uintptr                      /* windef.h:54:1 */
  7510  type HMONITOR__ = struct{ unused int32 } /* windef.h:55:1 */
  7511  
  7512  type HMONITOR = uintptr                       /* windef.h:55:1 */
  7513  type HWINEVENTHOOK__ = struct{ unused int32 } /* windef.h:57:1 */
  7514  
  7515  type HWINEVENTHOOK = uintptr /* windef.h:57:1 */
  7516  
  7517  type HCURSOR = HICON  /* windef.h:59:15 */
  7518  type COLORREF = DWORD /* windef.h:60:15 */
  7519  
  7520  type HUMPD__ = struct{ unused int32 } /* windef.h:64:1 */
  7521  
  7522  type HUMPD = uintptr /* windef.h:64:1 */
  7523  
  7524  type LPCOLORREF = uintptr /* windef.h:66:15 */
  7525  
  7526  type tagRECT = struct {
  7527  	left   LONG
  7528  	top    LONG
  7529  	right  LONG
  7530  	bottom LONG
  7531  } /* windef.h:72:9 */
  7532  
  7533  type RECT = tagRECT   /* windef.h:77:3 */
  7534  type PRECT = uintptr  /* windef.h:77:8 */
  7535  type NPRECT = uintptr /* windef.h:77:15 */
  7536  type LPRECT = uintptr /* windef.h:77:23 */
  7537  
  7538  type LPCRECT = uintptr /* windef.h:79:20 */
  7539  
  7540  type _RECTL = struct {
  7541  	left   LONG
  7542  	top    LONG
  7543  	right  LONG
  7544  	bottom LONG
  7545  } /* windef.h:81:9 */
  7546  
  7547  type RECTL = _RECTL    /* windef.h:86:3 */
  7548  type PRECTL = uintptr  /* windef.h:86:9 */
  7549  type LPRECTL = uintptr /* windef.h:86:17 */
  7550  
  7551  type LPCRECTL = uintptr /* windef.h:88:21 */
  7552  
  7553  type tagPOINT = struct {
  7554  	x LONG
  7555  	y LONG
  7556  } /* windef.h:90:9 */
  7557  
  7558  type POINT = tagPOINT  /* windef.h:93:3 */
  7559  type PPOINT = uintptr  /* windef.h:93:9 */
  7560  type NPPOINT = uintptr /* windef.h:93:17 */
  7561  type LPPOINT = uintptr /* windef.h:93:26 */
  7562  
  7563  type _POINTL = struct {
  7564  	x LONG
  7565  	y LONG
  7566  } /* windef.h:95:9 */
  7567  
  7568  type POINTL = _POINTL  /* windef.h:98:3 */
  7569  type PPOINTL = uintptr /* windef.h:98:10 */
  7570  
  7571  type tagSIZE = struct {
  7572  	cx LONG
  7573  	cy LONG
  7574  } /* windef.h:100:9 */
  7575  
  7576  type SIZE = tagSIZE   /* windef.h:103:3 */
  7577  type PSIZE = uintptr  /* windef.h:103:8 */
  7578  type LPSIZE = uintptr /* windef.h:103:15 */
  7579  
  7580  type SIZEL = SIZE      /* windef.h:105:14 */
  7581  type PSIZEL = uintptr  /* windef.h:106:14 */
  7582  type LPSIZEL = uintptr /* windef.h:106:22 */
  7583  
  7584  type tagPOINTS = struct {
  7585  	x SHORT
  7586  	y SHORT
  7587  } /* windef.h:108:9 */
  7588  
  7589  type POINTS = tagPOINTS /* windef.h:111:3 */
  7590  type PPOINTS = uintptr  /* windef.h:111:10 */
  7591  type LPPOINTS = uintptr /* windef.h:111:19 */
  7592  
  7593  // *
  7594  // This file is part of the mingw-w64 runtime package.
  7595  // No warranty is given; refer to the file DISCLAIMER within this package.
  7596  
  7597  // *
  7598  // This file has no copyright assigned and is placed in the Public Domain.
  7599  // This file is part of the mingw-w64 runtime package.
  7600  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  7601  
  7602  // *
  7603  // This file is part of the mingw-w64 runtime package.
  7604  // No warranty is given; refer to the file DISCLAIMER within this package.
  7605  
  7606  // *
  7607  // This file is part of the mingw-w64 runtime package.
  7608  // No warranty is given; refer to the file DISCLAIMER within this package.
  7609  
  7610  type _SECURITY_ATTRIBUTES = struct {
  7611  	nLength              DWORD
  7612  	lpSecurityDescriptor LPVOID
  7613  	bInheritHandle       WINBOOL
  7614  } /* minwinbase.h:13:11 */
  7615  
  7616  // *
  7617  // This file is part of the mingw-w64 runtime package.
  7618  // No warranty is given; refer to the file DISCLAIMER within this package.
  7619  
  7620  // *
  7621  // This file has no copyright assigned and is placed in the Public Domain.
  7622  // This file is part of the mingw-w64 runtime package.
  7623  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  7624  
  7625  // *
  7626  // This file is part of the mingw-w64 runtime package.
  7627  // No warranty is given; refer to the file DISCLAIMER within this package.
  7628  
  7629  // *
  7630  // This file is part of the mingw-w64 runtime package.
  7631  // No warranty is given; refer to the file DISCLAIMER within this package.
  7632  
  7633  type SECURITY_ATTRIBUTES = _SECURITY_ATTRIBUTES /* minwinbase.h:17:5 */
  7634  type PSECURITY_ATTRIBUTES = uintptr             /* minwinbase.h:17:26 */
  7635  type LPSECURITY_ATTRIBUTES = uintptr            /* minwinbase.h:17:49 */
  7636  
  7637  type _OVERLAPPED = struct {
  7638  	Internal     ULONG_PTR
  7639  	InternalHigh ULONG_PTR
  7640  	u            struct {
  7641  		s struct {
  7642  			Offset     DWORD
  7643  			OffsetHigh DWORD
  7644  		}
  7645  	}
  7646  	hEvent HANDLE
  7647  } /* minwinbase.h:19:11 */
  7648  
  7649  type OVERLAPPED = _OVERLAPPED /* minwinbase.h:30:5 */
  7650  type LPOVERLAPPED = uintptr   /* minwinbase.h:30:17 */
  7651  
  7652  type _OVERLAPPED_ENTRY = struct {
  7653  	lpCompletionKey            ULONG_PTR
  7654  	lpOverlapped               LPOVERLAPPED
  7655  	Internal                   ULONG_PTR
  7656  	dwNumberOfBytesTransferred DWORD
  7657  } /* minwinbase.h:32:11 */
  7658  
  7659  type OVERLAPPED_ENTRY = _OVERLAPPED_ENTRY /* minwinbase.h:37:5 */
  7660  type LPOVERLAPPED_ENTRY = uintptr         /* minwinbase.h:37:23 */
  7661  
  7662  type _SYSTEMTIME = struct {
  7663  	wYear         WORD
  7664  	wMonth        WORD
  7665  	wDayOfWeek    WORD
  7666  	wDay          WORD
  7667  	wHour         WORD
  7668  	wMinute       WORD
  7669  	wSecond       WORD
  7670  	wMilliseconds WORD
  7671  } /* minwinbase.h:49:11 */
  7672  
  7673  type SYSTEMTIME = _SYSTEMTIME /* minwinbase.h:58:5 */
  7674  type PSYSTEMTIME = uintptr    /* minwinbase.h:58:17 */
  7675  type LPSYSTEMTIME = uintptr   /* minwinbase.h:58:31 */
  7676  
  7677  type _WIN32_FIND_DATAA = struct {
  7678  	dwFileAttributes   DWORD
  7679  	ftCreationTime     FILETIME
  7680  	ftLastAccessTime   FILETIME
  7681  	ftLastWriteTime    FILETIME
  7682  	nFileSizeHigh      DWORD
  7683  	nFileSizeLow       DWORD
  7684  	dwReserved0        DWORD
  7685  	dwReserved1        DWORD
  7686  	cFileName          [260]CHAR
  7687  	cAlternateFileName [14]CHAR
  7688  	_                  [2]byte
  7689  } /* minwinbase.h:61:11 */
  7690  
  7691  type WIN32_FIND_DATAA = _WIN32_FIND_DATAA /* minwinbase.h:72:5 */
  7692  type PWIN32_FIND_DATAA = uintptr          /* minwinbase.h:72:23 */
  7693  type LPWIN32_FIND_DATAA = uintptr         /* minwinbase.h:72:43 */
  7694  
  7695  type _WIN32_FIND_DATAW = struct {
  7696  	dwFileAttributes   DWORD
  7697  	ftCreationTime     FILETIME
  7698  	ftLastAccessTime   FILETIME
  7699  	ftLastWriteTime    FILETIME
  7700  	nFileSizeHigh      DWORD
  7701  	nFileSizeLow       DWORD
  7702  	dwReserved0        DWORD
  7703  	dwReserved1        DWORD
  7704  	cFileName          [260]WCHAR
  7705  	cAlternateFileName [14]WCHAR
  7706  } /* minwinbase.h:74:11 */
  7707  
  7708  type WIN32_FIND_DATAW = _WIN32_FIND_DATAW /* minwinbase.h:85:5 */
  7709  type PWIN32_FIND_DATAW = uintptr          /* minwinbase.h:85:23 */
  7710  type LPWIN32_FIND_DATAW = uintptr         /* minwinbase.h:85:43 */
  7711  
  7712  type WIN32_FIND_DATA = WIN32_FIND_DATAA     /* minwinbase.h:87:3 */
  7713  type PWIN32_FIND_DATA = PWIN32_FIND_DATAA   /* minwinbase.h:88:3 */
  7714  type LPWIN32_FIND_DATA = LPWIN32_FIND_DATAA /* minwinbase.h:89:3 */
  7715  
  7716  type FINDEX_INFO_LEVELS = uint32 /* minwinbase.h:95:5 */
  7717  
  7718  type FINDEX_SEARCH_OPS = uint32 /* minwinbase.h:105:5 */
  7719  
  7720  type GET_FILEEX_INFO_LEVELS = uint32 /* minwinbase.h:110:5 */
  7721  
  7722  type CRITICAL_SECTION = RTL_CRITICAL_SECTION                /* minwinbase.h:141:32 */
  7723  type PCRITICAL_SECTION = PRTL_CRITICAL_SECTION              /* minwinbase.h:142:33 */
  7724  type LPCRITICAL_SECTION = PRTL_CRITICAL_SECTION             /* minwinbase.h:143:33 */
  7725  type CRITICAL_SECTION_DEBUG = RTL_CRITICAL_SECTION_DEBUG    /* minwinbase.h:144:38 */
  7726  type PCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG  /* minwinbase.h:145:39 */
  7727  type LPCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG /* minwinbase.h:146:39 */
  7728  
  7729  type LPOVERLAPPED_COMPLETION_ROUTINE = uintptr /* minwinbase.h:148:16 */
  7730  
  7731  type _PROCESS_HEAP_ENTRY = struct {
  7732  	lpData       PVOID
  7733  	cbData       DWORD
  7734  	cbOverhead   BYTE
  7735  	iRegionIndex BYTE
  7736  	wFlags       WORD
  7737  	u            struct {
  7738  		Block struct {
  7739  			hMem       HANDLE
  7740  			dwReserved [3]DWORD
  7741  		}
  7742  	}
  7743  } /* minwinbase.h:153:11 */
  7744  
  7745  type PROCESS_HEAP_ENTRY = _PROCESS_HEAP_ENTRY /* minwinbase.h:171:5 */
  7746  type LPPROCESS_HEAP_ENTRY = uintptr           /* minwinbase.h:171:24 */
  7747  type PPROCESS_HEAP_ENTRY = uintptr            /* minwinbase.h:171:46 */
  7748  
  7749  type _REASON_CONTEXT = struct {
  7750  	Version ULONG
  7751  	Flags   DWORD
  7752  	Reason  struct {
  7753  		Detailed struct {
  7754  			LocalizedReasonModule HMODULE
  7755  			LocalizedReasonId     ULONG
  7756  			ReasonStringCount     ULONG
  7757  			ReasonStrings         uintptr
  7758  		}
  7759  	}
  7760  } /* minwinbase.h:179:11 */
  7761  
  7762  type REASON_CONTEXT = _REASON_CONTEXT /* minwinbase.h:191:5 */
  7763  type PREASON_CONTEXT = uintptr        /* minwinbase.h:191:21 */
  7764  
  7765  type PTHREAD_START_ROUTINE = uintptr                /* minwinbase.h:203:17 */
  7766  type LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE /* minwinbase.h:204:33 */
  7767  
  7768  type _EXCEPTION_DEBUG_INFO = struct {
  7769  	ExceptionRecord EXCEPTION_RECORD
  7770  	dwFirstChance   DWORD
  7771  } /* minwinbase.h:206:11 */
  7772  
  7773  type EXCEPTION_DEBUG_INFO = _EXCEPTION_DEBUG_INFO /* minwinbase.h:209:5 */
  7774  type LPEXCEPTION_DEBUG_INFO = uintptr             /* minwinbase.h:209:27 */
  7775  
  7776  type _CREATE_THREAD_DEBUG_INFO = struct {
  7777  	hThread           HANDLE
  7778  	lpThreadLocalBase LPVOID
  7779  	lpStartAddress    LPTHREAD_START_ROUTINE
  7780  } /* minwinbase.h:211:11 */
  7781  
  7782  type CREATE_THREAD_DEBUG_INFO = _CREATE_THREAD_DEBUG_INFO /* minwinbase.h:215:5 */
  7783  type LPCREATE_THREAD_DEBUG_INFO = uintptr                 /* minwinbase.h:215:31 */
  7784  
  7785  type _CREATE_PROCESS_DEBUG_INFO = struct {
  7786  	hFile                 HANDLE
  7787  	hProcess              HANDLE
  7788  	hThread               HANDLE
  7789  	lpBaseOfImage         LPVOID
  7790  	dwDebugInfoFileOffset DWORD
  7791  	nDebugInfoSize        DWORD
  7792  	lpThreadLocalBase     LPVOID
  7793  	lpStartAddress        LPTHREAD_START_ROUTINE
  7794  	lpImageName           LPVOID
  7795  	fUnicode              WORD
  7796  	_                     [2]byte
  7797  } /* minwinbase.h:217:11 */
  7798  
  7799  type CREATE_PROCESS_DEBUG_INFO = _CREATE_PROCESS_DEBUG_INFO /* minwinbase.h:228:5 */
  7800  type LPCREATE_PROCESS_DEBUG_INFO = uintptr                  /* minwinbase.h:228:32 */
  7801  
  7802  type _EXIT_THREAD_DEBUG_INFO = struct{ dwExitCode DWORD } /* minwinbase.h:230:11 */
  7803  
  7804  type EXIT_THREAD_DEBUG_INFO = _EXIT_THREAD_DEBUG_INFO /* minwinbase.h:232:5 */
  7805  type LPEXIT_THREAD_DEBUG_INFO = uintptr               /* minwinbase.h:232:29 */
  7806  
  7807  type _EXIT_PROCESS_DEBUG_INFO = struct{ dwExitCode DWORD } /* minwinbase.h:234:11 */
  7808  
  7809  type EXIT_PROCESS_DEBUG_INFO = _EXIT_PROCESS_DEBUG_INFO /* minwinbase.h:236:5 */
  7810  type LPEXIT_PROCESS_DEBUG_INFO = uintptr                /* minwinbase.h:236:30 */
  7811  
  7812  type _LOAD_DLL_DEBUG_INFO = struct {
  7813  	hFile                 HANDLE
  7814  	lpBaseOfDll           LPVOID
  7815  	dwDebugInfoFileOffset DWORD
  7816  	nDebugInfoSize        DWORD
  7817  	lpImageName           LPVOID
  7818  	fUnicode              WORD
  7819  	_                     [2]byte
  7820  } /* minwinbase.h:238:11 */
  7821  
  7822  type LOAD_DLL_DEBUG_INFO = _LOAD_DLL_DEBUG_INFO /* minwinbase.h:245:5 */
  7823  type LPLOAD_DLL_DEBUG_INFO = uintptr            /* minwinbase.h:245:26 */
  7824  
  7825  type _UNLOAD_DLL_DEBUG_INFO = struct{ lpBaseOfDll LPVOID } /* minwinbase.h:247:11 */
  7826  
  7827  type UNLOAD_DLL_DEBUG_INFO = _UNLOAD_DLL_DEBUG_INFO /* minwinbase.h:249:5 */
  7828  type LPUNLOAD_DLL_DEBUG_INFO = uintptr              /* minwinbase.h:249:28 */
  7829  
  7830  type _OUTPUT_DEBUG_STRING_INFO = struct {
  7831  	lpDebugStringData  LPSTR
  7832  	fUnicode           WORD
  7833  	nDebugStringLength WORD
  7834  } /* minwinbase.h:251:11 */
  7835  
  7836  type OUTPUT_DEBUG_STRING_INFO = _OUTPUT_DEBUG_STRING_INFO /* minwinbase.h:255:5 */
  7837  type LPOUTPUT_DEBUG_STRING_INFO = uintptr                 /* minwinbase.h:255:31 */
  7838  
  7839  type _RIP_INFO = struct {
  7840  	dwError DWORD
  7841  	dwType  DWORD
  7842  } /* minwinbase.h:257:11 */
  7843  
  7844  type RIP_INFO = _RIP_INFO /* minwinbase.h:260:5 */
  7845  type LPRIP_INFO = uintptr /* minwinbase.h:260:15 */
  7846  
  7847  type _DEBUG_EVENT = struct {
  7848  	dwDebugEventCode DWORD
  7849  	dwProcessId      DWORD
  7850  	dwThreadId       DWORD
  7851  	u                struct{ Exception EXCEPTION_DEBUG_INFO }
  7852  } /* minwinbase.h:262:11 */
  7853  
  7854  type DEBUG_EVENT = _DEBUG_EVENT /* minwinbase.h:277:5 */
  7855  type LPDEBUG_EVENT = uintptr    /* minwinbase.h:277:18 */
  7856  
  7857  type LPCONTEXT = PCONTEXT                  /* minwinbase.h:280:20 */
  7858  type BEM_FREE_INTERFACE_CALLBACK = uintptr /* bemapiset.h:21:16 */
  7859  
  7860  // *
  7861  // This file is part of the mingw-w64 runtime package.
  7862  // No warranty is given; refer to the file DISCLAIMER within this package.
  7863  
  7864  // *
  7865  // This file is part of the mingw-w64 runtime package.
  7866  // No warranty is given; refer to the file DISCLAIMER within this package.
  7867  
  7868  // *
  7869  // This file is part of the mingw-w64 runtime package.
  7870  // No warranty is given; refer to the file DISCLAIMER within this package.
  7871  
  7872  type PTOP_LEVEL_EXCEPTION_FILTER = uintptr                      /* errhandlingapi.h:17:14 */
  7873  type LPTOP_LEVEL_EXCEPTION_FILTER = PTOP_LEVEL_EXCEPTION_FILTER /* errhandlingapi.h:18:37 */
  7874  type _BY_HANDLE_FILE_INFORMATION = struct {
  7875  	dwFileAttributes     DWORD
  7876  	ftCreationTime       FILETIME
  7877  	ftLastAccessTime     FILETIME
  7878  	ftLastWriteTime      FILETIME
  7879  	dwVolumeSerialNumber DWORD
  7880  	nFileSizeHigh        DWORD
  7881  	nFileSizeLow         DWORD
  7882  	nNumberOfLinks       DWORD
  7883  	nFileIndexHigh       DWORD
  7884  	nFileIndexLow        DWORD
  7885  } /* fileapi.h:38:11 */
  7886  
  7887  type BY_HANDLE_FILE_INFORMATION = _BY_HANDLE_FILE_INFORMATION /* fileapi.h:49:5 */
  7888  type PBY_HANDLE_FILE_INFORMATION = uintptr                    /* fileapi.h:49:33 */
  7889  type LPBY_HANDLE_FILE_INFORMATION = uintptr                   /* fileapi.h:50:5 */
  7890  
  7891  type _WIN32_FILE_ATTRIBUTE_DATA = struct {
  7892  	dwFileAttributes DWORD
  7893  	ftCreationTime   FILETIME
  7894  	ftLastAccessTime FILETIME
  7895  	ftLastWriteTime  FILETIME
  7896  	nFileSizeHigh    DWORD
  7897  	nFileSizeLow     DWORD
  7898  } /* fileapi.h:129:11 */
  7899  
  7900  type WIN32_FILE_ATTRIBUTE_DATA = _WIN32_FILE_ATTRIBUTE_DATA /* fileapi.h:136:5 */
  7901  type LPWIN32_FILE_ATTRIBUTE_DATA = uintptr                  /* fileapi.h:136:32 */
  7902  
  7903  // *
  7904  // This file is part of the mingw-w64 runtime package.
  7905  // No warranty is given; refer to the file DISCLAIMER within this package.
  7906  
  7907  // *
  7908  // This file is part of the mingw-w64 runtime package.
  7909  // No warranty is given; refer to the file DISCLAIMER within this package.
  7910  
  7911  // *
  7912  // This file is part of the mingw-w64 runtime package.
  7913  // No warranty is given; refer to the file DISCLAIMER within this package.
  7914  
  7915  type _HEAP_SUMMARY = struct {
  7916  	cb           DWORD
  7917  	cbAllocated  SIZE_T
  7918  	cbCommitted  SIZE_T
  7919  	cbReserved   SIZE_T
  7920  	cbMaxReserve SIZE_T
  7921  } /* heapapi.h:18:11 */
  7922  
  7923  // *
  7924  // This file is part of the mingw-w64 runtime package.
  7925  // No warranty is given; refer to the file DISCLAIMER within this package.
  7926  
  7927  // *
  7928  // This file is part of the mingw-w64 runtime package.
  7929  // No warranty is given; refer to the file DISCLAIMER within this package.
  7930  
  7931  // *
  7932  // This file is part of the mingw-w64 runtime package.
  7933  // No warranty is given; refer to the file DISCLAIMER within this package.
  7934  
  7935  type HEAP_SUMMARY = _HEAP_SUMMARY /* heapapi.h:24:5 */
  7936  type PHEAP_SUMMARY = uintptr      /* heapapi.h:24:18 */
  7937  
  7938  type LPHEAP_SUMMARY = PHEAP_SUMMARY /* heapapi.h:26:25 */
  7939  
  7940  // *
  7941  // This file is part of the mingw-w64 runtime package.
  7942  // No warranty is given; refer to the file DISCLAIMER within this package.
  7943  
  7944  // *
  7945  // This file is part of the mingw-w64 runtime package.
  7946  // No warranty is given; refer to the file DISCLAIMER within this package.
  7947  
  7948  // *
  7949  // This file is part of the mingw-w64 runtime package.
  7950  // No warranty is given; refer to the file DISCLAIMER within this package.
  7951  
  7952  type tagENUMUILANG = struct {
  7953  	NumOfEnumUILang    ULONG
  7954  	SizeOfEnumUIBuffer ULONG
  7955  	pEnumUIBuffer      uintptr
  7956  } /* libloaderapi.h:18:11 */
  7957  
  7958  // *
  7959  // This file is part of the mingw-w64 runtime package.
  7960  // No warranty is given; refer to the file DISCLAIMER within this package.
  7961  
  7962  // *
  7963  // This file is part of the mingw-w64 runtime package.
  7964  // No warranty is given; refer to the file DISCLAIMER within this package.
  7965  
  7966  // *
  7967  // This file is part of the mingw-w64 runtime package.
  7968  // No warranty is given; refer to the file DISCLAIMER within this package.
  7969  
  7970  type ENUMUILANG = tagENUMUILANG /* libloaderapi.h:22:5 */
  7971  type PENUMUILANG = uintptr      /* libloaderapi.h:22:17 */
  7972  
  7973  type ENUMRESLANGPROCA = uintptr /* libloaderapi.h:25:19 */
  7974  type ENUMRESLANGPROCW = uintptr /* libloaderapi.h:26:19 */
  7975  type ENUMRESNAMEPROCA = uintptr /* libloaderapi.h:27:19 */
  7976  type ENUMRESNAMEPROCW = uintptr /* libloaderapi.h:28:19 */
  7977  type ENUMRESTYPEPROCA = uintptr /* libloaderapi.h:29:19 */
  7978  type ENUMRESTYPEPROCW = uintptr /* libloaderapi.h:30:19 */
  7979  
  7980  type PGET_MODULE_HANDLE_EXA = uintptr /* libloaderapi.h:41:19 */
  7981  type PGET_MODULE_HANDLE_EXW = uintptr /* libloaderapi.h:42:19 */
  7982  
  7983  type DLL_DIRECTORY_COOKIE = PVOID    /* libloaderapi.h:45:17 */
  7984  type PDLL_DIRECTORY_COOKIE = uintptr /* libloaderapi.h:45:39 */
  7985  
  7986  // *
  7987  // This file is part of the mingw-w64 runtime package.
  7988  // No warranty is given; refer to the file DISCLAIMER within this package.
  7989  
  7990  // *
  7991  // This file is part of the mingw-w64 runtime package.
  7992  // No warranty is given; refer to the file DISCLAIMER within this package.
  7993  
  7994  // *
  7995  // This file is part of the mingw-w64 runtime package.
  7996  // No warranty is given; refer to the file DISCLAIMER within this package.
  7997  
  7998  type MEMORY_RESOURCE_NOTIFICATION_TYPE = uint32 /* memoryapi.h:21:5 */
  7999  
  8000  type _PROCESS_INFORMATION = struct {
  8001  	hProcess    HANDLE
  8002  	hThread     HANDLE
  8003  	dwProcessId DWORD
  8004  	dwThreadId  DWORD
  8005  } /* processthreadsapi.h:28:11 */
  8006  
  8007  type PROCESS_INFORMATION = _PROCESS_INFORMATION /* processthreadsapi.h:33:5 */
  8008  type PPROCESS_INFORMATION = uintptr             /* processthreadsapi.h:33:26 */
  8009  type LPPROCESS_INFORMATION = uintptr            /* processthreadsapi.h:33:49 */
  8010  
  8011  type _STARTUPINFOA = struct {
  8012  	cb              DWORD
  8013  	lpReserved      LPSTR
  8014  	lpDesktop       LPSTR
  8015  	lpTitle         LPSTR
  8016  	dwX             DWORD
  8017  	dwY             DWORD
  8018  	dwXSize         DWORD
  8019  	dwYSize         DWORD
  8020  	dwXCountChars   DWORD
  8021  	dwYCountChars   DWORD
  8022  	dwFillAttribute DWORD
  8023  	dwFlags         DWORD
  8024  	wShowWindow     WORD
  8025  	cbReserved2     WORD
  8026  	lpReserved2     LPBYTE
  8027  	hStdInput       HANDLE
  8028  	hStdOutput      HANDLE
  8029  	hStdError       HANDLE
  8030  } /* processthreadsapi.h:35:11 */
  8031  
  8032  type STARTUPINFOA = _STARTUPINFOA /* processthreadsapi.h:54:5 */
  8033  type LPSTARTUPINFOA = uintptr     /* processthreadsapi.h:54:19 */
  8034  
  8035  type _STARTUPINFOW = struct {
  8036  	cb              DWORD
  8037  	lpReserved      LPWSTR
  8038  	lpDesktop       LPWSTR
  8039  	lpTitle         LPWSTR
  8040  	dwX             DWORD
  8041  	dwY             DWORD
  8042  	dwXSize         DWORD
  8043  	dwYSize         DWORD
  8044  	dwXCountChars   DWORD
  8045  	dwYCountChars   DWORD
  8046  	dwFillAttribute DWORD
  8047  	dwFlags         DWORD
  8048  	wShowWindow     WORD
  8049  	cbReserved2     WORD
  8050  	lpReserved2     LPBYTE
  8051  	hStdInput       HANDLE
  8052  	hStdOutput      HANDLE
  8053  	hStdError       HANDLE
  8054  } /* processthreadsapi.h:56:11 */
  8055  
  8056  type STARTUPINFOW = _STARTUPINFOW /* processthreadsapi.h:75:5 */
  8057  type LPSTARTUPINFOW = uintptr     /* processthreadsapi.h:75:19 */
  8058  
  8059  type STARTUPINFO = STARTUPINFOA     /* processthreadsapi.h:77:3 */
  8060  type LPSTARTUPINFO = LPSTARTUPINFOA /* processthreadsapi.h:78:3 */
  8061  
  8062  type PPROC_THREAD_ATTRIBUTE_LIST = uintptr  /* processthreadsapi.h:80:46 */
  8063  type LPPROC_THREAD_ATTRIBUTE_LIST = uintptr /* processthreadsapi.h:80:76 */
  8064  
  8065  // *
  8066  // This file is part of the mingw-w64 runtime package.
  8067  // No warranty is given; refer to the file DISCLAIMER within this package.
  8068  
  8069  // *
  8070  // This file is part of the mingw-w64 runtime package.
  8071  // No warranty is given; refer to the file DISCLAIMER within this package.
  8072  
  8073  // *
  8074  // This file is part of the mingw-w64 runtime package.
  8075  // No warranty is given; refer to the file DISCLAIMER within this package.
  8076  
  8077  type SRWLOCK = RTL_SRWLOCK /* synchapi.h:34:23 */
  8078  type PSRWLOCK = uintptr    /* synchapi.h:34:32 */
  8079  
  8080  type INIT_ONCE = RTL_RUN_ONCE    /* synchapi.h:36:24 */
  8081  type PINIT_ONCE = PRTL_RUN_ONCE  /* synchapi.h:37:25 */
  8082  type LPINIT_ONCE = PRTL_RUN_ONCE /* synchapi.h:38:25 */
  8083  
  8084  type PINIT_ONCE_FN = uintptr                     /* synchapi.h:40:19 */
  8085  type CONDITION_VARIABLE = RTL_CONDITION_VARIABLE /* synchapi.h:41:34 */
  8086  type PCONDITION_VARIABLE = uintptr               /* synchapi.h:41:54 */
  8087  
  8088  type PTIMERAPCROUTINE = uintptr /* synchapi.h:102:16 */
  8089  
  8090  type SYNCHRONIZATION_BARRIER = RTL_BARRIER    /* synchapi.h:104:23 */
  8091  type PSYNCHRONIZATION_BARRIER = PRTL_BARRIER  /* synchapi.h:105:24 */
  8092  type LPSYNCHRONIZATION_BARRIER = PRTL_BARRIER /* synchapi.h:106:24 */
  8093  
  8094  // *
  8095  // This file is part of the mingw-w64 runtime package.
  8096  // No warranty is given; refer to the file DISCLAIMER within this package.
  8097  
  8098  // *
  8099  // This file is part of the mingw-w64 runtime package.
  8100  // No warranty is given; refer to the file DISCLAIMER within this package.
  8101  
  8102  // *
  8103  // This file is part of the mingw-w64 runtime package.
  8104  // No warranty is given; refer to the file DISCLAIMER within this package.
  8105  
  8106  type _SYSTEM_INFO = struct {
  8107  	u                           struct{ dwOemId DWORD }
  8108  	dwPageSize                  DWORD
  8109  	lpMinimumApplicationAddress LPVOID
  8110  	lpMaximumApplicationAddress LPVOID
  8111  	dwActiveProcessorMask       DWORD_PTR
  8112  	dwNumberOfProcessors        DWORD
  8113  	dwProcessorType             DWORD
  8114  	dwAllocationGranularity     DWORD
  8115  	wProcessorLevel             WORD
  8116  	wProcessorRevision          WORD
  8117  } /* sysinfoapi.h:18:11 */
  8118  
  8119  // *
  8120  // This file is part of the mingw-w64 runtime package.
  8121  // No warranty is given; refer to the file DISCLAIMER within this package.
  8122  
  8123  // *
  8124  // This file is part of the mingw-w64 runtime package.
  8125  // No warranty is given; refer to the file DISCLAIMER within this package.
  8126  
  8127  // *
  8128  // This file is part of the mingw-w64 runtime package.
  8129  // No warranty is given; refer to the file DISCLAIMER within this package.
  8130  
  8131  type SYSTEM_INFO = _SYSTEM_INFO /* sysinfoapi.h:35:5 */
  8132  type LPSYSTEM_INFO = uintptr    /* sysinfoapi.h:35:18 */
  8133  
  8134  type _MEMORYSTATUSEX = struct {
  8135  	dwLength                DWORD
  8136  	dwMemoryLoad            DWORD
  8137  	ullTotalPhys            DWORDLONG
  8138  	ullAvailPhys            DWORDLONG
  8139  	ullTotalPageFile        DWORDLONG
  8140  	ullAvailPageFile        DWORDLONG
  8141  	ullTotalVirtual         DWORDLONG
  8142  	ullAvailVirtual         DWORDLONG
  8143  	ullAvailExtendedVirtual DWORDLONG
  8144  } /* sysinfoapi.h:48:11 */
  8145  
  8146  type MEMORYSTATUSEX = _MEMORYSTATUSEX /* sysinfoapi.h:58:5 */
  8147  type LPMEMORYSTATUSEX = uintptr       /* sysinfoapi.h:58:20 */
  8148  
  8149  type COMPUTER_NAME_FORMAT = uint32 /* sysinfoapi.h:80:5 */
  8150  
  8151  // *
  8152  // This file is part of the mingw-w64 runtime package.
  8153  // No warranty is given; refer to the file DISCLAIMER within this package.
  8154  
  8155  // *
  8156  // This file is part of the mingw-w64 runtime package.
  8157  // No warranty is given; refer to the file DISCLAIMER within this package.
  8158  
  8159  // *
  8160  // This file is part of the mingw-w64 runtime package.
  8161  // No warranty is given; refer to the file DISCLAIMER within this package.
  8162  
  8163  type PTP_WIN32_IO_CALLBACK = uintptr /* threadpoolapiset.h:18:16 */
  8164  
  8165  // *
  8166  // This file has no copyright assigned and is placed in the Public Domain.
  8167  // This file is part of the mingw-w64 runtime package.
  8168  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8169  
  8170  // There are 3 separate ways this file is intended to be used:
  8171  //
  8172  //    1) Included from intrin.h.  In this case, all intrinsics in this file get declarations and
  8173  //       implementations.  No special #defines are needed for this case.
  8174  //
  8175  //    2) Included from the library versions of these functions (ie mingw-w64-crt\intrincs\*.c).  All
  8176  //       intrinsics in this file must also be included in the library.  In this case, only the
  8177  //       specific functions requested will get defined, and they will not be defined as inline.  If
  8178  //       you have followed the instructions (below) for adding functions to this file, then all you
  8179  //       need to have in the .c file is the following:
  8180  //
  8181  //       #define __INTRINSIC_ONLYSPECIAL
  8182  //       #define __INTRINSIC_SPECIAL___stosb // Causes code generation in intrin-impl.h
  8183  //
  8184  //       #include <intrin.h>
  8185  //
  8186  //    3) Included from various platform sdk headers.  Some platform sdk headers (such as winnt.h)
  8187  //       define a subset of intrinsics.  To avoid potential conflicts, this file is designed to
  8188  //       allow for specific subsets of functions to be defined.  This is done by defining the
  8189  //       appropriate variable before including this file:
  8190  //
  8191  //       #define __INTRINSIC_GROUP_WINNT
  8192  //       #include <psdk_inc/intrin-impl.h>
  8193  //
  8194  //    In all cases, it is acceptable to include this file multiple times in any order (ie include
  8195  //    winnt.h to get its subset, then include intrin.h to get everything, or vice versa).
  8196  //
  8197  //    See also the comments at the top of intrin.h.
  8198  
  8199  // To add an implementation for a new intrinsic to this file, you should comment out the current prototype in intrin.h.
  8200  //    If the function you are adding is not in intrin.h, you should not be adding it to this file.  This file is only
  8201  //    for MSVC intrinsics.
  8202  //
  8203  //    Make sure you put your definition in the right section (x86 vs x64), and use this outline when adding definitions
  8204  //    to this file:
  8205  //
  8206  // #if __INTRINSIC_PROLOG(__int2c)
  8207  //
  8208  // <prototype goes here>
  8209  //
  8210  // __INTRINSICS_USEINLINE
  8211  // <code goes here>
  8212  //
  8213  // #define __INTRINSIC_DEFINED___int2c
  8214  // #endif
  8215  
  8216  // Note that there is no file-wide #if to prevent intrin-impl.h from being
  8217  //    included multiple times.  This is because this file might be included multiple
  8218  //    times to define various subsets of the functions it contains.
  8219  
  8220  // However we do check for __MINGW_INTRIN_INLINE.  In theory this means we
  8221  //    can work with other compilers.
  8222  
  8223  // Clang has support for MSVC builtins, GCC doesn't
  8224  
  8225  // These macros are used by the routines below.  While this file may be included
  8226  //    multiple times, these macros only need to be defined once.
  8227  
  8228  // The Barrier functions can never be in the library.  Since gcc only
  8229  // supports ReadWriteBarrier, map all 3 to do the same.
  8230  
  8231  // The logic for this macro is:
  8232  //    if the function is not yet defined AND
  8233  //    (
  8234  //        (if we are not just defining special OR
  8235  //            (we are defining special AND this is one of the ones we are defining)
  8236  //        )
  8237  //    )
  8238  
  8239  // Normally __INTRINSIC_ONLYSPECIAL is used to indicate that we are
  8240  //    being included in the library version of the intrinsic (case 2).  However,
  8241  //    that really only affects the definition of __INTRINSICS_USEINLINE.
  8242  //    So here we are letting it serve an additional purpose of only defining
  8243  //    the intrinsics for a certain file (case 3).  For example, to create the
  8244  //    intrinsics for the functions in winnt.h, define __INTRINSIC_GROUP_WINNT.
  8245  //
  8246  //    Note that this file can be included multiple times, and as a result
  8247  //    there can be overlap (definitions that appear in more than one
  8248  //    file).  This is handled by __INTRINSIC_DEFINED_*
  8249  //
  8250  //    If no groups are defined (such as what happens when including intrin.h),
  8251  //    all intrinsics are defined.
  8252  
  8253  // If __INTRINSIC_ONLYSPECIAL is defined at this point, we are processing case 2.  In
  8254  //    that case, don't go looking for groups
  8255  
  8256  // Note that this gets undefined at the end of this file
  8257  
  8258  // To add an additional group, put the #ifdef and definitions here.
  8259  
  8260  // Before 4.9.2, ia32intrin.h had broken versions of these.
  8261  
  8262  // *****************************************************
  8263  
  8264  // *****************************************************
  8265  
  8266  // *****************************************************
  8267  
  8268  type PFIBER_START_ROUTINE = uintptr               /* winbase.h:160:16 */
  8269  type LPFIBER_START_ROUTINE = PFIBER_START_ROUTINE /* winbase.h:161:32 */
  8270  
  8271  type LPLDT_ENTRY = PLDT_ENTRY /* winbase.h:164:22 */
  8272  
  8273  type _COMMPROP = struct {
  8274  	wPacketLength       WORD
  8275  	wPacketVersion      WORD
  8276  	dwServiceMask       DWORD
  8277  	dwReserved1         DWORD
  8278  	dwMaxTxQueue        DWORD
  8279  	dwMaxRxQueue        DWORD
  8280  	dwMaxBaud           DWORD
  8281  	dwProvSubType       DWORD
  8282  	dwProvCapabilities  DWORD
  8283  	dwSettableParams    DWORD
  8284  	dwSettableBaud      DWORD
  8285  	wSettableData       WORD
  8286  	wSettableStopParity WORD
  8287  	dwCurrentTxQueue    DWORD
  8288  	dwCurrentRxQueue    DWORD
  8289  	dwProvSpec1         DWORD
  8290  	dwProvSpec2         DWORD
  8291  	wcProvChar          [1]WCHAR
  8292  	_                   [2]byte
  8293  } /* winbase.h:240:11 */
  8294  
  8295  type COMMPROP = _COMMPROP /* winbase.h:259:5 */
  8296  type LPCOMMPROP = uintptr /* winbase.h:259:14 */
  8297  
  8298  type _COMSTAT = struct {
  8299  	fCtsHold uint32 /* DWORD fCtsHold: 1, DWORD fDsrHold: 1, DWORD fRlsdHold: 1, DWORD fXoffHold: 1, DWORD fXoffSent: 1, DWORD fEof: 1, DWORD fTxim: 1, DWORD fReserved: 25 */
  8300  	cbInQue  DWORD
  8301  	cbOutQue DWORD
  8302  } /* winbase.h:263:11 */
  8303  
  8304  type COMSTAT = _COMSTAT  /* winbase.h:274:5 */
  8305  type LPCOMSTAT = uintptr /* winbase.h:274:13 */
  8306  
  8307  type _DCB = struct {
  8308  	DCBlength  DWORD
  8309  	BaudRate   DWORD
  8310  	fBinary    uint32 /* DWORD fBinary: 1, DWORD fParity: 1, DWORD fOutxCtsFlow: 1, DWORD fOutxDsrFlow: 1, DWORD fDtrControl: 2, DWORD fDsrSensitivity: 1, DWORD fTXContinueOnXoff: 1, DWORD fOutX: 1, DWORD fInX: 1, DWORD fErrorChar: 1, DWORD fNull: 1, DWORD fRtsControl: 2, DWORD fAbortOnError: 1, DWORD fDummy2: 17 */
  8311  	wReserved  WORD
  8312  	XonLim     WORD
  8313  	XoffLim    WORD
  8314  	ByteSize   BYTE
  8315  	Parity     BYTE
  8316  	StopBits   BYTE
  8317  	XonChar    int8
  8318  	XoffChar   int8
  8319  	ErrorChar  int8
  8320  	EofChar    int8
  8321  	EvtChar    int8
  8322  	wReserved1 WORD
  8323  } /* winbase.h:285:11 */
  8324  
  8325  type DCB = _DCB      /* winbase.h:314:5 */
  8326  type LPDCB = uintptr /* winbase.h:314:9 */
  8327  
  8328  type _COMMTIMEOUTS = struct {
  8329  	ReadIntervalTimeout         DWORD
  8330  	ReadTotalTimeoutMultiplier  DWORD
  8331  	ReadTotalTimeoutConstant    DWORD
  8332  	WriteTotalTimeoutMultiplier DWORD
  8333  	WriteTotalTimeoutConstant   DWORD
  8334  } /* winbase.h:316:11 */
  8335  
  8336  type COMMTIMEOUTS = _COMMTIMEOUTS /* winbase.h:322:5 */
  8337  type LPCOMMTIMEOUTS = uintptr     /* winbase.h:322:18 */
  8338  
  8339  type _COMMCONFIG = struct {
  8340  	dwSize            DWORD
  8341  	wVersion          WORD
  8342  	wReserved         WORD
  8343  	dcb               DCB
  8344  	dwProviderSubType DWORD
  8345  	dwProviderOffset  DWORD
  8346  	dwProviderSize    DWORD
  8347  	wcProviderData    [1]WCHAR
  8348  	_                 [2]byte
  8349  } /* winbase.h:324:11 */
  8350  
  8351  type COMMCONFIG = _COMMCONFIG /* winbase.h:333:5 */
  8352  type LPCOMMCONFIG = uintptr   /* winbase.h:333:16 */
  8353  
  8354  type _MEMORYSTATUS = struct {
  8355  	dwLength        DWORD
  8356  	dwMemoryLoad    DWORD
  8357  	dwTotalPhys     SIZE_T
  8358  	dwAvailPhys     SIZE_T
  8359  	dwTotalPageFile SIZE_T
  8360  	dwAvailPageFile SIZE_T
  8361  	dwTotalVirtual  SIZE_T
  8362  	dwAvailVirtual  SIZE_T
  8363  } /* winbase.h:364:11 */
  8364  
  8365  type MEMORYSTATUS = _MEMORYSTATUS /* winbase.h:373:5 */
  8366  type LPMEMORYSTATUS = uintptr     /* winbase.h:373:18 */
  8367  
  8368  type _JIT_DEBUG_INFO = struct {
  8369  	dwSize                  DWORD
  8370  	dwProcessorArchitecture DWORD
  8371  	dwThreadID              DWORD
  8372  	dwReserved0             DWORD
  8373  	lpExceptionAddress      ULONG64
  8374  	lpExceptionRecord       ULONG64
  8375  	lpContextRecord         ULONG64
  8376  } /* winbase.h:431:11 */
  8377  
  8378  type JIT_DEBUG_INFO = _JIT_DEBUG_INFO /* winbase.h:439:5 */
  8379  type LPJIT_DEBUG_INFO = uintptr       /* winbase.h:439:20 */
  8380  
  8381  type JIT_DEBUG_INFO32 = JIT_DEBUG_INFO /* winbase.h:441:26 */
  8382  type LPJIT_DEBUG_INFO32 = uintptr      /* winbase.h:441:44 */
  8383  type JIT_DEBUG_INFO64 = JIT_DEBUG_INFO /* winbase.h:442:26 */
  8384  type LPJIT_DEBUG_INFO64 = uintptr      /* winbase.h:442:44 */
  8385  
  8386  type LPEXCEPTION_RECORD = PEXCEPTION_RECORD     /* winbase.h:445:29 */
  8387  type LPEXCEPTION_POINTERS = PEXCEPTION_POINTERS /* winbase.h:446:31 */
  8388  
  8389  type _OFSTRUCT = struct {
  8390  	cBytes     BYTE
  8391  	fFixedDisk BYTE
  8392  	nErrCode   WORD
  8393  	Reserved1  WORD
  8394  	Reserved2  WORD
  8395  	szPathName [128]CHAR
  8396  } /* winbase.h:620:11 */
  8397  
  8398  type OFSTRUCT = _OFSTRUCT /* winbase.h:627:5 */
  8399  type LPOFSTRUCT = uintptr /* winbase.h:627:15 */
  8400  type POFSTRUCT = uintptr  /* winbase.h:627:27 */
  8401  
  8402  // TODO: Add RTL_UMS... to winnt.h header and add UMS-base API.
  8403  
  8404  type THREAD_INFORMATION_CLASS = uint32 /* winbase.h:1195:5 */
  8405  
  8406  type PROCESS_INFORMATION_CLASS = uint32 /* winbase.h:1200:5 */
  8407  
  8408  type DEP_SYSTEM_POLICY_TYPE = uint32 /* winbase.h:1304:5 */
  8409  
  8410  type PFE_EXPORT_FUNC = uintptr /* winbase.h:1387:17 */
  8411  type PFE_IMPORT_FUNC = uintptr /* winbase.h:1388:17 */
  8412  
  8413  type _WIN32_STREAM_ID = struct {
  8414  	dwStreamId         DWORD
  8415  	dwStreamAttributes DWORD
  8416  	Size               LARGE_INTEGER
  8417  	dwStreamNameSize   DWORD
  8418  	cStreamName        [1]WCHAR
  8419  	_                  [2]byte
  8420  } /* winbase.h:1465:11 */
  8421  
  8422  type WIN32_STREAM_ID = _WIN32_STREAM_ID /* winbase.h:1471:5 */
  8423  type LPWIN32_STREAM_ID = uintptr        /* winbase.h:1471:21 */
  8424  
  8425  type PGET_SYSTEM_WOW64_DIRECTORY_A = uintptr /* winbase.h:1856:16 */
  8426  type PGET_SYSTEM_WOW64_DIRECTORY_W = uintptr /* winbase.h:1857:16 */
  8427  
  8428  type LPPROGRESS_ROUTINE = uintptr /* winbase.h:1960:17 */
  8429  
  8430  type STREAM_INFO_LEVELS = uint32 /* winbase.h:2150:5 */
  8431  
  8432  type _WIN32_FIND_STREAM_DATA = struct {
  8433  	StreamSize  LARGE_INTEGER
  8434  	cStreamName [296]WCHAR
  8435  } /* winbase.h:2152:11 */
  8436  
  8437  type WIN32_FIND_STREAM_DATA = _WIN32_FIND_STREAM_DATA /* winbase.h:2155:5 */
  8438  type PWIN32_FIND_STREAM_DATA = uintptr                /* winbase.h:2155:28 */
  8439  
  8440  type _EVENTLOG_FULL_INFORMATION = struct{ dwFull DWORD } /* winbase.h:2227:11 */
  8441  
  8442  type EVENTLOG_FULL_INFORMATION = _EVENTLOG_FULL_INFORMATION /* winbase.h:2229:5 */
  8443  type LPEVENTLOG_FULL_INFORMATION = uintptr                  /* winbase.h:2229:31 */
  8444  
  8445  type tagHW_PROFILE_INFOA = struct {
  8446  	dwDockInfo      DWORD
  8447  	szHwProfileGuid [39]CHAR
  8448  	szHwProfileName [80]CHAR
  8449  	_               [1]byte
  8450  } /* winbase.h:2444:11 */
  8451  
  8452  type HW_PROFILE_INFOA = tagHW_PROFILE_INFOA /* winbase.h:2448:5 */
  8453  type LPHW_PROFILE_INFOA = uintptr           /* winbase.h:2448:22 */
  8454  
  8455  type tagHW_PROFILE_INFOW = struct {
  8456  	dwDockInfo      DWORD
  8457  	szHwProfileGuid [39]WCHAR
  8458  	szHwProfileName [80]WCHAR
  8459  	_               [2]byte
  8460  } /* winbase.h:2450:11 */
  8461  
  8462  type HW_PROFILE_INFOW = tagHW_PROFILE_INFOW /* winbase.h:2454:5 */
  8463  type LPHW_PROFILE_INFOW = uintptr           /* winbase.h:2454:22 */
  8464  
  8465  type HW_PROFILE_INFO = HW_PROFILE_INFOA     /* winbase.h:2456:3 */
  8466  type LPHW_PROFILE_INFO = LPHW_PROFILE_INFOA /* winbase.h:2457:3 */
  8467  
  8468  // *
  8469  // This file has no copyright assigned and is placed in the Public Domain.
  8470  // This file is part of the mingw-w64 runtime package.
  8471  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8472  
  8473  // ********************   WARNING   ********************
  8474  // This is inconsistent with MSDN!
  8475  // In MSDN:
  8476  //     ERROR_IPSEC_IKE_QM_LIMIT => 13884 (here not defined)
  8477  //     ERROR_IPSEC_IKE_NEG_STATUS_END => 13897 (here 13884)
  8478  // Source:
  8479  //     WinINet Reference -> WinINet Constants -> Error Messages
  8480  //     https://msdn.microsoft.com/en-us/library/windows/desktop/aa385465%28v=vs.85%29.aspx
  8481  // ******************** END WARNING ********************
  8482  //#define ERROR_IPSEC_IKE_NEG_STATUS_END __MSABI_LONG(13884)
  8483  
  8484  // *
  8485  // This file is part of the mingw-w64 runtime package.
  8486  // No warranty is given; refer to the file DISCLAIMER within this package.
  8487  
  8488  // *
  8489  // This file is part of the mingw-w64 runtime package.
  8490  // No warranty is given; refer to the file DISCLAIMER within this package.
  8491  
  8492  // *
  8493  // This file is part of the mingw-w64 runtime package.
  8494  // No warranty is given; refer to the file DISCLAIMER within this package.
  8495  
  8496  // *
  8497  // This file is part of the mingw-w64 runtime package.
  8498  // No warranty is given; refer to the file DISCLAIMER within this package.
  8499  
  8500  type _TIME_ZONE_INFORMATION = struct {
  8501  	Bias         LONG
  8502  	StandardName [32]WCHAR
  8503  	StandardDate SYSTEMTIME
  8504  	StandardBias LONG
  8505  	DaylightName [32]WCHAR
  8506  	DaylightDate SYSTEMTIME
  8507  	DaylightBias LONG
  8508  } /* timezoneapi.h:21:11 */
  8509  
  8510  // *
  8511  // This file has no copyright assigned and is placed in the Public Domain.
  8512  // This file is part of the mingw-w64 runtime package.
  8513  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8514  
  8515  // ********************   WARNING   ********************
  8516  // This is inconsistent with MSDN!
  8517  // In MSDN:
  8518  //     ERROR_IPSEC_IKE_QM_LIMIT => 13884 (here not defined)
  8519  //     ERROR_IPSEC_IKE_NEG_STATUS_END => 13897 (here 13884)
  8520  // Source:
  8521  //     WinINet Reference -> WinINet Constants -> Error Messages
  8522  //     https://msdn.microsoft.com/en-us/library/windows/desktop/aa385465%28v=vs.85%29.aspx
  8523  // ******************** END WARNING ********************
  8524  //#define ERROR_IPSEC_IKE_NEG_STATUS_END __MSABI_LONG(13884)
  8525  
  8526  // *
  8527  // This file is part of the mingw-w64 runtime package.
  8528  // No warranty is given; refer to the file DISCLAIMER within this package.
  8529  
  8530  // *
  8531  // This file is part of the mingw-w64 runtime package.
  8532  // No warranty is given; refer to the file DISCLAIMER within this package.
  8533  
  8534  // *
  8535  // This file is part of the mingw-w64 runtime package.
  8536  // No warranty is given; refer to the file DISCLAIMER within this package.
  8537  
  8538  // *
  8539  // This file is part of the mingw-w64 runtime package.
  8540  // No warranty is given; refer to the file DISCLAIMER within this package.
  8541  
  8542  type TIME_ZONE_INFORMATION = _TIME_ZONE_INFORMATION /* timezoneapi.h:29:5 */
  8543  type PTIME_ZONE_INFORMATION = uintptr               /* timezoneapi.h:29:27 */
  8544  type LPTIME_ZONE_INFORMATION = uintptr              /* timezoneapi.h:29:51 */
  8545  
  8546  type _TIME_DYNAMIC_ZONE_INFORMATION = struct {
  8547  	Bias                        LONG
  8548  	StandardName                [32]WCHAR
  8549  	StandardDate                SYSTEMTIME
  8550  	StandardBias                LONG
  8551  	DaylightName                [32]WCHAR
  8552  	DaylightDate                SYSTEMTIME
  8553  	DaylightBias                LONG
  8554  	TimeZoneKeyName             [128]WCHAR
  8555  	DynamicDaylightTimeDisabled BOOLEAN
  8556  	_                           [3]byte
  8557  } /* timezoneapi.h:31:11 */
  8558  
  8559  type DYNAMIC_TIME_ZONE_INFORMATION = _TIME_DYNAMIC_ZONE_INFORMATION /* timezoneapi.h:41:5 */
  8560  type PDYNAMIC_TIME_ZONE_INFORMATION = uintptr                       /* timezoneapi.h:41:35 */
  8561  
  8562  type _SYSTEM_POWER_STATUS = struct {
  8563  	ACLineStatus        BYTE
  8564  	BatteryFlag         BYTE
  8565  	BatteryLifePercent  BYTE
  8566  	Reserved1           BYTE
  8567  	BatteryLifeTime     DWORD
  8568  	BatteryFullLifeTime DWORD
  8569  } /* winbase.h:2495:11 */
  8570  
  8571  type SYSTEM_POWER_STATUS = _SYSTEM_POWER_STATUS /* winbase.h:2502:5 */
  8572  type LPSYSTEM_POWER_STATUS = uintptr            /* winbase.h:2502:25 */
  8573  
  8574  type tagACTCTXA = struct {
  8575  	cbSize                 ULONG
  8576  	dwFlags                DWORD
  8577  	lpSource               LPCSTR
  8578  	wProcessorArchitecture USHORT
  8579  	wLangId                LANGID
  8580  	lpAssemblyDirectory    LPCSTR
  8581  	lpResourceName         LPCSTR
  8582  	lpApplicationName      LPCSTR
  8583  	hModule                HMODULE
  8584  } /* winbase.h:2573:11 */
  8585  
  8586  type ACTCTXA = tagACTCTXA /* winbase.h:2583:5 */
  8587  type PACTCTXA = uintptr   /* winbase.h:2583:13 */
  8588  
  8589  type tagACTCTXW = struct {
  8590  	cbSize                 ULONG
  8591  	dwFlags                DWORD
  8592  	lpSource               LPCWSTR
  8593  	wProcessorArchitecture USHORT
  8594  	wLangId                LANGID
  8595  	lpAssemblyDirectory    LPCWSTR
  8596  	lpResourceName         LPCWSTR
  8597  	lpApplicationName      LPCWSTR
  8598  	hModule                HMODULE
  8599  } /* winbase.h:2585:11 */
  8600  
  8601  type ACTCTXW = tagACTCTXW /* winbase.h:2595:5 */
  8602  type PACTCTXW = uintptr   /* winbase.h:2595:13 */
  8603  
  8604  type ACTCTX = ACTCTXA   /* winbase.h:2597:3 */
  8605  type PACTCTX = PACTCTXA /* winbase.h:2598:3 */
  8606  
  8607  type PCACTCTXA = uintptr /* winbase.h:2600:25 */
  8608  type PCACTCTXW = uintptr /* winbase.h:2601:25 */
  8609  
  8610  type PCACTCTX = PCACTCTXA /* winbase.h:2603:3 */
  8611  
  8612  type tagACTCTX_SECTION_KEYED_DATA_2600 = struct {
  8613  	cbSize                    ULONG
  8614  	ulDataFormatVersion       ULONG
  8615  	lpData                    PVOID
  8616  	ulLength                  ULONG
  8617  	lpSectionGlobalData       PVOID
  8618  	ulSectionGlobalDataLength ULONG
  8619  	lpSectionBase             PVOID
  8620  	ulSectionTotalLength      ULONG
  8621  	hActCtx                   HANDLE
  8622  	ulAssemblyRosterIndex     ULONG
  8623  } /* winbase.h:2617:11 */
  8624  
  8625  type ACTCTX_SECTION_KEYED_DATA_2600 = tagACTCTX_SECTION_KEYED_DATA_2600 /* winbase.h:2628:5 */
  8626  type PACTCTX_SECTION_KEYED_DATA_2600 = uintptr                          /* winbase.h:2628:36 */
  8627  
  8628  type PCACTCTX_SECTION_KEYED_DATA_2600 = uintptr /* winbase.h:2630:48 */
  8629  
  8630  type tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = struct {
  8631  	lpInformation             PVOID
  8632  	lpSectionBase             PVOID
  8633  	ulSectionLength           ULONG
  8634  	lpSectionGlobalDataBase   PVOID
  8635  	ulSectionGlobalDataLength ULONG
  8636  } /* winbase.h:2632:11 */
  8637  
  8638  type ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA /* winbase.h:2638:5 */
  8639  type PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = uintptr                                       /* winbase.h:2638:49 */
  8640  
  8641  type PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = uintptr /* winbase.h:2640:61 */
  8642  
  8643  type tagACTCTX_SECTION_KEYED_DATA = struct {
  8644  	cbSize                    ULONG
  8645  	ulDataFormatVersion       ULONG
  8646  	lpData                    PVOID
  8647  	ulLength                  ULONG
  8648  	lpSectionGlobalData       PVOID
  8649  	ulSectionGlobalDataLength ULONG
  8650  	lpSectionBase             PVOID
  8651  	ulSectionTotalLength      ULONG
  8652  	hActCtx                   HANDLE
  8653  	ulAssemblyRosterIndex     ULONG
  8654  	ulFlags                   ULONG
  8655  	AssemblyMetadata          ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA
  8656  } /* winbase.h:2642:11 */
  8657  
  8658  type ACTCTX_SECTION_KEYED_DATA = tagACTCTX_SECTION_KEYED_DATA /* winbase.h:2655:5 */
  8659  type PACTCTX_SECTION_KEYED_DATA = uintptr                     /* winbase.h:2655:31 */
  8660  
  8661  type PCACTCTX_SECTION_KEYED_DATA = uintptr /* winbase.h:2657:43 */
  8662  
  8663  type _ACTIVATION_CONTEXT_BASIC_INFORMATION = struct {
  8664  	hActCtx HANDLE
  8665  	dwFlags DWORD
  8666  } /* winbase.h:2670:11 */
  8667  
  8668  type ACTIVATION_CONTEXT_BASIC_INFORMATION = _ACTIVATION_CONTEXT_BASIC_INFORMATION /* winbase.h:2673:5 */
  8669  type PACTIVATION_CONTEXT_BASIC_INFORMATION = uintptr                              /* winbase.h:2673:42 */
  8670  
  8671  type PCACTIVATION_CONTEXT_BASIC_INFORMATION = uintptr /* winbase.h:2675:62 */
  8672  
  8673  type PQUERYACTCTXW_FUNC = uintptr /* winbase.h:2687:19 */
  8674  
  8675  type APPLICATION_RECOVERY_CALLBACK = uintptr /* winbase.h:2707:17 */
  8676  
  8677  // *
  8678  // This file has no copyright assigned and is placed in the Public Domain.
  8679  // This file is part of the mingw-w64 runtime package.
  8680  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8681  
  8682  // *
  8683  // This file is part of the mingw-w64 runtime package.
  8684  // No warranty is given; refer to the file DISCLAIMER within this package.
  8685  
  8686  // *
  8687  // This file has no copyright assigned and is placed in the Public Domain.
  8688  // This file is part of the mingw-w64 runtime package.
  8689  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8690  
  8691  type _DRAWPATRECT = struct {
  8692  	ptPosition POINT
  8693  	ptSize     POINT
  8694  	wStyle     WORD
  8695  	wPattern   WORD
  8696  } /* wingdi.h:224:11 */
  8697  
  8698  // *
  8699  // This file has no copyright assigned and is placed in the Public Domain.
  8700  // This file is part of the mingw-w64 runtime package.
  8701  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8702  
  8703  // *
  8704  // This file is part of the mingw-w64 runtime package.
  8705  // No warranty is given; refer to the file DISCLAIMER within this package.
  8706  
  8707  // *
  8708  // This file has no copyright assigned and is placed in the Public Domain.
  8709  // This file is part of the mingw-w64 runtime package.
  8710  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8711  
  8712  type DRAWPATRECT = _DRAWPATRECT /* wingdi.h:229:5 */
  8713  type PDRAWPATRECT = uintptr     /* wingdi.h:229:17 */
  8714  
  8715  type _PSINJECTDATA = struct {
  8716  	DataBytes      DWORD
  8717  	InjectionPoint WORD
  8718  	PageNumber     WORD
  8719  } /* wingdi.h:335:11 */
  8720  
  8721  type PSINJECTDATA = _PSINJECTDATA /* wingdi.h:339:5 */
  8722  type PPSINJECTDATA = uintptr      /* wingdi.h:339:18 */
  8723  
  8724  type _PSFEATURE_OUTPUT = struct {
  8725  	bPageIndependent WINBOOL
  8726  	bSetPageDevice   WINBOOL
  8727  } /* wingdi.h:391:11 */
  8728  
  8729  type PSFEATURE_OUTPUT = _PSFEATURE_OUTPUT /* wingdi.h:394:5 */
  8730  type PPSFEATURE_OUTPUT = uintptr          /* wingdi.h:394:22 */
  8731  
  8732  type _PSFEATURE_CUSTPAPER = struct {
  8733  	lOrientation  LONG
  8734  	lWidth        LONG
  8735  	lHeight       LONG
  8736  	lWidthOffset  LONG
  8737  	lHeightOffset LONG
  8738  } /* wingdi.h:396:11 */
  8739  
  8740  type PSFEATURE_CUSTPAPER = _PSFEATURE_CUSTPAPER /* wingdi.h:402:5 */
  8741  type PPSFEATURE_CUSTPAPER = uintptr             /* wingdi.h:402:25 */
  8742  
  8743  type tagXFORM = struct {
  8744  	eM11 FLOAT
  8745  	eM12 FLOAT
  8746  	eM21 FLOAT
  8747  	eM22 FLOAT
  8748  	eDx  FLOAT
  8749  	eDy  FLOAT
  8750  } /* wingdi.h:450:11 */
  8751  
  8752  type XFORM = tagXFORM  /* wingdi.h:457:5 */
  8753  type PXFORM = uintptr  /* wingdi.h:457:11 */
  8754  type LPXFORM = uintptr /* wingdi.h:457:19 */
  8755  
  8756  type tagBITMAP = struct {
  8757  	bmType       LONG
  8758  	bmWidth      LONG
  8759  	bmHeight     LONG
  8760  	bmWidthBytes LONG
  8761  	bmPlanes     WORD
  8762  	bmBitsPixel  WORD
  8763  	bmBits       LPVOID
  8764  } /* wingdi.h:459:11 */
  8765  
  8766  type BITMAP = tagBITMAP /* wingdi.h:467:5 */
  8767  type PBITMAP = uintptr  /* wingdi.h:467:12 */
  8768  type NPBITMAP = uintptr /* wingdi.h:467:21 */
  8769  type LPBITMAP = uintptr /* wingdi.h:467:31 */
  8770  
  8771  // *
  8772  // This file has no copyright assigned and is placed in the Public Domain.
  8773  // This file is part of the mingw-w64 runtime package.
  8774  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8775  type tagRGBTRIPLE = struct {
  8776  	rgbtBlue  BYTE
  8777  	rgbtGreen BYTE
  8778  	rgbtRed   BYTE
  8779  } /* wingdi.h:470:11 */
  8780  
  8781  // *
  8782  // This file has no copyright assigned and is placed in the Public Domain.
  8783  // This file is part of the mingw-w64 runtime package.
  8784  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8785  type RGBTRIPLE = tagRGBTRIPLE /* wingdi.h:474:5 */
  8786  // *
  8787  // This file has no copyright assigned and is placed in the Public Domain.
  8788  // This file is part of the mingw-w64 runtime package.
  8789  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8790  
  8791  type tagRGBQUAD = struct {
  8792  	rgbBlue     BYTE
  8793  	rgbGreen    BYTE
  8794  	rgbRed      BYTE
  8795  	rgbReserved BYTE
  8796  } /* wingdi.h:477:11 */
  8797  
  8798  // *
  8799  // This file has no copyright assigned and is placed in the Public Domain.
  8800  // This file is part of the mingw-w64 runtime package.
  8801  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8802  
  8803  type RGBQUAD = tagRGBQUAD /* wingdi.h:482:5 */
  8804  
  8805  type LPRGBQUAD = uintptr /* wingdi.h:486:19 */
  8806  
  8807  type LCSCSTYPE = LONG /* wingdi.h:499:16 */
  8808  
  8809  type LCSGAMUTMATCH = LONG /* wingdi.h:502:16 */
  8810  
  8811  type FXPT16DOT16 = int32     /* wingdi.h:526:20 */
  8812  type LPFXPT16DOT16 = uintptr /* wingdi.h:526:32 */
  8813  type FXPT2DOT30 = int32      /* wingdi.h:527:20 */
  8814  type LPFXPT2DOT30 = uintptr  /* wingdi.h:527:31 */
  8815  
  8816  type tagCIEXYZ = struct {
  8817  	ciexyzX FXPT2DOT30
  8818  	ciexyzY FXPT2DOT30
  8819  	ciexyzZ FXPT2DOT30
  8820  } /* wingdi.h:529:11 */
  8821  
  8822  type CIEXYZ = tagCIEXYZ /* wingdi.h:533:5 */
  8823  type LPCIEXYZ = uintptr /* wingdi.h:536:18 */
  8824  type tagICEXYZTRIPLE = struct {
  8825  	ciexyzRed   CIEXYZ
  8826  	ciexyzGreen CIEXYZ
  8827  	ciexyzBlue  CIEXYZ
  8828  } /* wingdi.h:539:11 */
  8829  
  8830  type CIEXYZTRIPLE = tagICEXYZTRIPLE /* wingdi.h:543:5 */
  8831  type LPCIEXYZTRIPLE = uintptr       /* wingdi.h:546:24 */
  8832  
  8833  type tagLOGCOLORSPACEA = struct {
  8834  	lcsSignature  DWORD
  8835  	lcsVersion    DWORD
  8836  	lcsSize       DWORD
  8837  	lcsCSType     LCSCSTYPE
  8838  	lcsIntent     LCSGAMUTMATCH
  8839  	lcsEndpoints  CIEXYZTRIPLE
  8840  	lcsGammaRed   DWORD
  8841  	lcsGammaGreen DWORD
  8842  	lcsGammaBlue  DWORD
  8843  	lcsFilename   [260]CHAR
  8844  } /* wingdi.h:550:11 */
  8845  
  8846  type LOGCOLORSPACEA = tagLOGCOLORSPACEA /* wingdi.h:561:5 */
  8847  type LPLOGCOLORSPACEA = uintptr         /* wingdi.h:561:20 */
  8848  
  8849  type tagLOGCOLORSPACEW = struct {
  8850  	lcsSignature  DWORD
  8851  	lcsVersion    DWORD
  8852  	lcsSize       DWORD
  8853  	lcsCSType     LCSCSTYPE
  8854  	lcsIntent     LCSGAMUTMATCH
  8855  	lcsEndpoints  CIEXYZTRIPLE
  8856  	lcsGammaRed   DWORD
  8857  	lcsGammaGreen DWORD
  8858  	lcsGammaBlue  DWORD
  8859  	lcsFilename   [260]WCHAR
  8860  } /* wingdi.h:563:11 */
  8861  
  8862  type LOGCOLORSPACEW = tagLOGCOLORSPACEW /* wingdi.h:574:5 */
  8863  type LPLOGCOLORSPACEW = uintptr         /* wingdi.h:574:20 */
  8864  
  8865  type LOGCOLORSPACE = LOGCOLORSPACEA     /* wingdi.h:576:3 */
  8866  type LPLOGCOLORSPACE = LPLOGCOLORSPACEA /* wingdi.h:577:3 */
  8867  
  8868  type tagBITMAPCOREHEADER = struct {
  8869  	bcSize     DWORD
  8870  	bcWidth    WORD
  8871  	bcHeight   WORD
  8872  	bcPlanes   WORD
  8873  	bcBitCount WORD
  8874  } /* wingdi.h:581:11 */
  8875  
  8876  type BITMAPCOREHEADER = tagBITMAPCOREHEADER /* wingdi.h:587:5 */
  8877  type LPBITMAPCOREHEADER = uintptr           /* wingdi.h:587:22 */
  8878  type PBITMAPCOREHEADER = uintptr            /* wingdi.h:587:42 */
  8879  
  8880  type tagBITMAPINFOHEADER = struct {
  8881  	biSize          DWORD
  8882  	biWidth         LONG
  8883  	biHeight        LONG
  8884  	biPlanes        WORD
  8885  	biBitCount      WORD
  8886  	biCompression   DWORD
  8887  	biSizeImage     DWORD
  8888  	biXPelsPerMeter LONG
  8889  	biYPelsPerMeter LONG
  8890  	biClrUsed       DWORD
  8891  	biClrImportant  DWORD
  8892  } /* wingdi.h:591:11 */
  8893  
  8894  type BITMAPINFOHEADER = tagBITMAPINFOHEADER /* wingdi.h:603:5 */
  8895  type LPBITMAPINFOHEADER = uintptr           /* wingdi.h:603:22 */
  8896  type PBITMAPINFOHEADER = uintptr            /* wingdi.h:603:42 */
  8897  
  8898  type BITMAPV4HEADER = struct {
  8899  	bV4Size          DWORD
  8900  	bV4Width         LONG
  8901  	bV4Height        LONG
  8902  	bV4Planes        WORD
  8903  	bV4BitCount      WORD
  8904  	bV4V4Compression DWORD
  8905  	bV4SizeImage     DWORD
  8906  	bV4XPelsPerMeter LONG
  8907  	bV4YPelsPerMeter LONG
  8908  	bV4ClrUsed       DWORD
  8909  	bV4ClrImportant  DWORD
  8910  	bV4RedMask       DWORD
  8911  	bV4GreenMask     DWORD
  8912  	bV4BlueMask      DWORD
  8913  	bV4AlphaMask     DWORD
  8914  	bV4CSType        DWORD
  8915  	bV4Endpoints     CIEXYZTRIPLE
  8916  	bV4GammaRed      DWORD
  8917  	bV4GammaGreen    DWORD
  8918  	bV4GammaBlue     DWORD
  8919  }                               /* wingdi.h:628:5 */
  8920  type LPBITMAPV4HEADER = uintptr /* wingdi.h:628:20 */
  8921  type PBITMAPV4HEADER = uintptr  /* wingdi.h:628:38 */
  8922  
  8923  type BITMAPV5HEADER = struct {
  8924  	bV5Size          DWORD
  8925  	bV5Width         LONG
  8926  	bV5Height        LONG
  8927  	bV5Planes        WORD
  8928  	bV5BitCount      WORD
  8929  	bV5Compression   DWORD
  8930  	bV5SizeImage     DWORD
  8931  	bV5XPelsPerMeter LONG
  8932  	bV5YPelsPerMeter LONG
  8933  	bV5ClrUsed       DWORD
  8934  	bV5ClrImportant  DWORD
  8935  	bV5RedMask       DWORD
  8936  	bV5GreenMask     DWORD
  8937  	bV5BlueMask      DWORD
  8938  	bV5AlphaMask     DWORD
  8939  	bV5CSType        DWORD
  8940  	bV5Endpoints     CIEXYZTRIPLE
  8941  	bV5GammaRed      DWORD
  8942  	bV5GammaGreen    DWORD
  8943  	bV5GammaBlue     DWORD
  8944  	bV5Intent        DWORD
  8945  	bV5ProfileData   DWORD
  8946  	bV5ProfileSize   DWORD
  8947  	bV5Reserved      DWORD
  8948  }                               /* wingdi.h:655:5 */
  8949  type LPBITMAPV5HEADER = uintptr /* wingdi.h:655:20 */
  8950  type PBITMAPV5HEADER = uintptr  /* wingdi.h:655:38 */
  8951  
  8952  type tagBITMAPINFO = struct {
  8953  	bmiHeader BITMAPINFOHEADER
  8954  	bmiColors [1]RGBQUAD
  8955  } /* wingdi.h:669:11 */
  8956  
  8957  type BITMAPINFO = tagBITMAPINFO /* wingdi.h:672:5 */
  8958  type LPBITMAPINFO = uintptr     /* wingdi.h:672:16 */
  8959  type PBITMAPINFO = uintptr      /* wingdi.h:672:30 */
  8960  
  8961  type tagBITMAPCOREINFO = struct {
  8962  	bmciHeader BITMAPCOREHEADER
  8963  	bmciColors [1]RGBTRIPLE
  8964  	_          [1]byte
  8965  } /* wingdi.h:676:11 */
  8966  
  8967  type BITMAPCOREINFO = tagBITMAPCOREINFO /* wingdi.h:679:5 */
  8968  type LPBITMAPCOREINFO = uintptr         /* wingdi.h:679:20 */
  8969  type PBITMAPCOREINFO = uintptr          /* wingdi.h:679:38 */
  8970  
  8971  // *
  8972  // This file has no copyright assigned and is placed in the Public Domain.
  8973  // This file is part of the mingw-w64 runtime package.
  8974  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8975  type tagBITMAPFILEHEADER = struct {
  8976  	bfType      WORD
  8977  	_           [2]byte
  8978  	bfSize      DWORD
  8979  	bfReserved1 WORD
  8980  	bfReserved2 WORD
  8981  	bfOffBits   DWORD
  8982  } /* wingdi.h:682:11 */
  8983  
  8984  // *
  8985  // This file has no copyright assigned and is placed in the Public Domain.
  8986  // This file is part of the mingw-w64 runtime package.
  8987  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8988  type BITMAPFILEHEADER = tagBITMAPFILEHEADER /* wingdi.h:688:5 */
  8989  type LPBITMAPFILEHEADER = uintptr           /* wingdi.h:688:22 */
  8990  type PBITMAPFILEHEADER = uintptr            /* wingdi.h:688:42 */
  8991  // *
  8992  // This file has no copyright assigned and is placed in the Public Domain.
  8993  // This file is part of the mingw-w64 runtime package.
  8994  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8995  
  8996  type tagFONTSIGNATURE = struct {
  8997  	fsUsb [4]DWORD
  8998  	fsCsb [2]DWORD
  8999  } /* wingdi.h:697:11 */
  9000  
  9001  // *
  9002  // This file has no copyright assigned and is placed in the Public Domain.
  9003  // This file is part of the mingw-w64 runtime package.
  9004  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9005  
  9006  type FONTSIGNATURE = tagFONTSIGNATURE /* wingdi.h:700:5 */
  9007  type PFONTSIGNATURE = uintptr         /* wingdi.h:700:19 */
  9008  type LPFONTSIGNATURE = uintptr        /* wingdi.h:700:35 */
  9009  
  9010  type tagCHARSETINFO = struct {
  9011  	ciCharset UINT
  9012  	ciACP     UINT
  9013  	fs        FONTSIGNATURE
  9014  } /* wingdi.h:702:11 */
  9015  
  9016  type CHARSETINFO = tagCHARSETINFO /* wingdi.h:706:5 */
  9017  type PCHARSETINFO = uintptr       /* wingdi.h:706:17 */
  9018  type NPCHARSETINFO = uintptr      /* wingdi.h:706:31 */
  9019  type LPCHARSETINFO = uintptr      /* wingdi.h:706:46 */
  9020  
  9021  type tagLOCALESIGNATURE = struct {
  9022  	lsUsb          [4]DWORD
  9023  	lsCsbDefault   [2]DWORD
  9024  	lsCsbSupported [2]DWORD
  9025  } /* wingdi.h:715:11 */
  9026  
  9027  type LOCALESIGNATURE = tagLOCALESIGNATURE /* wingdi.h:719:5 */
  9028  type PLOCALESIGNATURE = uintptr           /* wingdi.h:719:21 */
  9029  type LPLOCALESIGNATURE = uintptr          /* wingdi.h:719:39 */
  9030  
  9031  type tagHANDLETABLE = struct{ objectHandle [1]HGDIOBJ } /* wingdi.h:725:11 */
  9032  
  9033  type HANDLETABLE = tagHANDLETABLE /* wingdi.h:727:5 */
  9034  type PHANDLETABLE = uintptr       /* wingdi.h:727:17 */
  9035  type LPHANDLETABLE = uintptr      /* wingdi.h:727:31 */
  9036  
  9037  type tagMETARECORD = struct {
  9038  	rdSize     DWORD
  9039  	rdFunction WORD
  9040  	rdParm     [1]WORD
  9041  } /* wingdi.h:729:11 */
  9042  
  9043  type METARECORD = tagMETARECORD /* wingdi.h:733:5 */
  9044  type PMETARECORD = uintptr      /* wingdi.h:736:42 */
  9045  type LPMETARECORD = uintptr     /* wingdi.h:739:42 */
  9046  
  9047  type tagMETAFILEPICT = struct {
  9048  	mm   LONG
  9049  	xExt LONG
  9050  	yExt LONG
  9051  	hMF  HMETAFILE
  9052  } /* wingdi.h:741:11 */
  9053  
  9054  type METAFILEPICT = tagMETAFILEPICT /* wingdi.h:746:5 */
  9055  type LPMETAFILEPICT = uintptr       /* wingdi.h:746:18 */
  9056  
  9057  // *
  9058  // This file has no copyright assigned and is placed in the Public Domain.
  9059  // This file is part of the mingw-w64 runtime package.
  9060  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9061  type tagMETAHEADER = struct {
  9062  	mtType         WORD
  9063  	mtHeaderSize   WORD
  9064  	mtVersion      WORD
  9065  	_              [2]byte
  9066  	mtSize         DWORD
  9067  	mtNoObjects    WORD
  9068  	_              [2]byte
  9069  	mtMaxRecord    DWORD
  9070  	mtNoParameters WORD
  9071  	_              [2]byte
  9072  } /* wingdi.h:751:11 */
  9073  
  9074  // *
  9075  // This file has no copyright assigned and is placed in the Public Domain.
  9076  // This file is part of the mingw-w64 runtime package.
  9077  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9078  type METAHEADER = tagMETAHEADER /* wingdi.h:759:5 */
  9079  type PMETAHEADER = uintptr      /* wingdi.h:760:42 */
  9080  type LPMETAHEADER = uintptr     /* wingdi.h:761:42 */
  9081  
  9082  // *
  9083  // This file has no copyright assigned and is placed in the Public Domain.
  9084  // This file is part of the mingw-w64 runtime package.
  9085  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9086  
  9087  type tagENHMETARECORD = struct {
  9088  	iType DWORD
  9089  	nSize DWORD
  9090  	dParm [1]DWORD
  9091  } /* wingdi.h:767:11 */
  9092  
  9093  // *
  9094  // This file has no copyright assigned and is placed in the Public Domain.
  9095  // This file is part of the mingw-w64 runtime package.
  9096  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9097  
  9098  type ENHMETARECORD = tagENHMETARECORD /* wingdi.h:771:5 */
  9099  type PENHMETARECORD = uintptr         /* wingdi.h:771:19 */
  9100  type LPENHMETARECORD = uintptr        /* wingdi.h:771:35 */
  9101  
  9102  type tagENHMETAHEADER = struct {
  9103  	iType          DWORD
  9104  	nSize          DWORD
  9105  	rclBounds      RECTL
  9106  	rclFrame       RECTL
  9107  	dSignature     DWORD
  9108  	nVersion       DWORD
  9109  	nBytes         DWORD
  9110  	nRecords       DWORD
  9111  	nHandles       WORD
  9112  	sReserved      WORD
  9113  	nDescription   DWORD
  9114  	offDescription DWORD
  9115  	nPalEntries    DWORD
  9116  	szlDevice      SIZEL
  9117  	szlMillimeters SIZEL
  9118  	cbPixelFormat  DWORD
  9119  	offPixelFormat DWORD
  9120  	bOpenGL        DWORD
  9121  	szlMicrometers SIZEL
  9122  } /* wingdi.h:773:11 */
  9123  
  9124  type ENHMETAHEADER = tagENHMETAHEADER /* wingdi.h:793:5 */
  9125  type PENHMETAHEADER = uintptr         /* wingdi.h:793:19 */
  9126  type LPENHMETAHEADER = uintptr        /* wingdi.h:793:35 */
  9127  
  9128  type BCHAR = BYTE /* wingdi.h:807:16 */
  9129  
  9130  // *
  9131  // This file has no copyright assigned and is placed in the Public Domain.
  9132  // This file is part of the mingw-w64 runtime package.
  9133  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9134  
  9135  type tagTEXTMETRICA = struct {
  9136  	tmHeight           LONG
  9137  	tmAscent           LONG
  9138  	tmDescent          LONG
  9139  	tmInternalLeading  LONG
  9140  	tmExternalLeading  LONG
  9141  	tmAveCharWidth     LONG
  9142  	tmMaxCharWidth     LONG
  9143  	tmWeight           LONG
  9144  	tmOverhang         LONG
  9145  	tmDigitizedAspectX LONG
  9146  	tmDigitizedAspectY LONG
  9147  	tmFirstChar        BYTE
  9148  	tmLastChar         BYTE
  9149  	tmDefaultChar      BYTE
  9150  	tmBreakChar        BYTE
  9151  	tmItalic           BYTE
  9152  	tmUnderlined       BYTE
  9153  	tmStruckOut        BYTE
  9154  	tmPitchAndFamily   BYTE
  9155  	tmCharSet          BYTE
  9156  	_                  [3]byte
  9157  } /* wingdi.h:816:11 */
  9158  
  9159  // *
  9160  // This file has no copyright assigned and is placed in the Public Domain.
  9161  // This file is part of the mingw-w64 runtime package.
  9162  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9163  
  9164  type TEXTMETRICA = tagTEXTMETRICA /* wingdi.h:837:5 */
  9165  type PTEXTMETRICA = uintptr       /* wingdi.h:837:17 */
  9166  type NPTEXTMETRICA = uintptr      /* wingdi.h:837:31 */
  9167  type LPTEXTMETRICA = uintptr      /* wingdi.h:837:46 */
  9168  
  9169  type tagTEXTMETRICW = struct {
  9170  	tmHeight           LONG
  9171  	tmAscent           LONG
  9172  	tmDescent          LONG
  9173  	tmInternalLeading  LONG
  9174  	tmExternalLeading  LONG
  9175  	tmAveCharWidth     LONG
  9176  	tmMaxCharWidth     LONG
  9177  	tmWeight           LONG
  9178  	tmOverhang         LONG
  9179  	tmDigitizedAspectX LONG
  9180  	tmDigitizedAspectY LONG
  9181  	tmFirstChar        WCHAR
  9182  	tmLastChar         WCHAR
  9183  	tmDefaultChar      WCHAR
  9184  	tmBreakChar        WCHAR
  9185  	tmItalic           BYTE
  9186  	tmUnderlined       BYTE
  9187  	tmStruckOut        BYTE
  9188  	tmPitchAndFamily   BYTE
  9189  	tmCharSet          BYTE
  9190  	_                  [3]byte
  9191  } /* wingdi.h:839:11 */
  9192  
  9193  type TEXTMETRICW = tagTEXTMETRICW /* wingdi.h:860:5 */
  9194  type PTEXTMETRICW = uintptr       /* wingdi.h:860:17 */
  9195  type NPTEXTMETRICW = uintptr      /* wingdi.h:860:31 */
  9196  type LPTEXTMETRICW = uintptr      /* wingdi.h:860:46 */
  9197  
  9198  type TEXTMETRIC = TEXTMETRICA     /* wingdi.h:862:3 */
  9199  type PTEXTMETRIC = PTEXTMETRICA   /* wingdi.h:863:3 */
  9200  type NPTEXTMETRIC = NPTEXTMETRICA /* wingdi.h:864:3 */
  9201  type LPTEXTMETRIC = LPTEXTMETRICA /* wingdi.h:865:3 */
  9202  // *
  9203  // This file has no copyright assigned and is placed in the Public Domain.
  9204  // This file is part of the mingw-w64 runtime package.
  9205  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9206  
  9207  // *
  9208  // This file has no copyright assigned and is placed in the Public Domain.
  9209  // This file is part of the mingw-w64 runtime package.
  9210  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9211  type tagNEWTEXTMETRICA = struct {
  9212  	tmHeight           LONG
  9213  	tmAscent           LONG
  9214  	tmDescent          LONG
  9215  	tmInternalLeading  LONG
  9216  	tmExternalLeading  LONG
  9217  	tmAveCharWidth     LONG
  9218  	tmMaxCharWidth     LONG
  9219  	tmWeight           LONG
  9220  	tmOverhang         LONG
  9221  	tmDigitizedAspectX LONG
  9222  	tmDigitizedAspectY LONG
  9223  	tmFirstChar        BYTE
  9224  	tmLastChar         BYTE
  9225  	tmDefaultChar      BYTE
  9226  	tmBreakChar        BYTE
  9227  	tmItalic           BYTE
  9228  	tmUnderlined       BYTE
  9229  	tmStruckOut        BYTE
  9230  	tmPitchAndFamily   BYTE
  9231  	tmCharSet          BYTE
  9232  	_                  [3]byte
  9233  	ntmFlags           DWORD
  9234  	ntmSizeEM          UINT
  9235  	ntmCellHeight      UINT
  9236  	ntmAvgWidth        UINT
  9237  } /* wingdi.h:883:11 */
  9238  
  9239  // *
  9240  // This file has no copyright assigned and is placed in the Public Domain.
  9241  // This file is part of the mingw-w64 runtime package.
  9242  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9243  
  9244  // *
  9245  // This file has no copyright assigned and is placed in the Public Domain.
  9246  // This file is part of the mingw-w64 runtime package.
  9247  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9248  type NEWTEXTMETRICA = tagNEWTEXTMETRICA /* wingdi.h:908:5 */
  9249  type PNEWTEXTMETRICA = uintptr          /* wingdi.h:908:20 */
  9250  type NPNEWTEXTMETRICA = uintptr         /* wingdi.h:908:37 */
  9251  type LPNEWTEXTMETRICA = uintptr         /* wingdi.h:908:55 */
  9252  
  9253  type tagNEWTEXTMETRICW = struct {
  9254  	tmHeight           LONG
  9255  	tmAscent           LONG
  9256  	tmDescent          LONG
  9257  	tmInternalLeading  LONG
  9258  	tmExternalLeading  LONG
  9259  	tmAveCharWidth     LONG
  9260  	tmMaxCharWidth     LONG
  9261  	tmWeight           LONG
  9262  	tmOverhang         LONG
  9263  	tmDigitizedAspectX LONG
  9264  	tmDigitizedAspectY LONG
  9265  	tmFirstChar        WCHAR
  9266  	tmLastChar         WCHAR
  9267  	tmDefaultChar      WCHAR
  9268  	tmBreakChar        WCHAR
  9269  	tmItalic           BYTE
  9270  	tmUnderlined       BYTE
  9271  	tmStruckOut        BYTE
  9272  	tmPitchAndFamily   BYTE
  9273  	tmCharSet          BYTE
  9274  	_                  [3]byte
  9275  	ntmFlags           DWORD
  9276  	ntmSizeEM          UINT
  9277  	ntmCellHeight      UINT
  9278  	ntmAvgWidth        UINT
  9279  } /* wingdi.h:910:11 */
  9280  
  9281  type NEWTEXTMETRICW = tagNEWTEXTMETRICW /* wingdi.h:935:5 */
  9282  type PNEWTEXTMETRICW = uintptr          /* wingdi.h:935:20 */
  9283  type NPNEWTEXTMETRICW = uintptr         /* wingdi.h:935:37 */
  9284  type LPNEWTEXTMETRICW = uintptr         /* wingdi.h:935:55 */
  9285  
  9286  type NEWTEXTMETRIC = NEWTEXTMETRICA     /* wingdi.h:937:3 */
  9287  type PNEWTEXTMETRIC = PNEWTEXTMETRICA   /* wingdi.h:938:3 */
  9288  type NPNEWTEXTMETRIC = NPNEWTEXTMETRICA /* wingdi.h:939:3 */
  9289  type LPNEWTEXTMETRIC = LPNEWTEXTMETRICA /* wingdi.h:940:3 */
  9290  
  9291  // *
  9292  // This file has no copyright assigned and is placed in the Public Domain.
  9293  // This file is part of the mingw-w64 runtime package.
  9294  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9295  
  9296  type tagNEWTEXTMETRICEXA = struct {
  9297  	ntmTm      NEWTEXTMETRICA
  9298  	ntmFontSig FONTSIGNATURE
  9299  } /* wingdi.h:944:11 */
  9300  
  9301  // *
  9302  // This file has no copyright assigned and is placed in the Public Domain.
  9303  // This file is part of the mingw-w64 runtime package.
  9304  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  9305  
  9306  type NEWTEXTMETRICEXA = tagNEWTEXTMETRICEXA /* wingdi.h:947:5 */
  9307  
  9308  type tagNEWTEXTMETRICEXW = struct {
  9309  	ntmTm      NEWTEXTMETRICW
  9310  	ntmFontSig FONTSIGNATURE
  9311  } /* wingdi.h:949:11 */
  9312  
  9313  type NEWTEXTMETRICEXW = tagNEWTEXTMETRICEXW /* wingdi.h:952:5 */
  9314  
  9315  type NEWTEXTMETRICEX = NEWTEXTMETRICEXA /* wingdi.h:954:3 */
  9316  
  9317  type tagPELARRAY = struct {
  9318  	paXCount LONG
  9319  	paYCount LONG
  9320  	paXExt   LONG
  9321  	paYExt   LONG
  9322  	paRGBs   BYTE
  9323  	_        [3]byte
  9324  } /* wingdi.h:959:11 */
  9325  
  9326  type PELARRAY = tagPELARRAY /* wingdi.h:965:5 */
  9327  type PPELARRAY = uintptr    /* wingdi.h:965:14 */
  9328  type NPPELARRAY = uintptr   /* wingdi.h:965:25 */
  9329  type LPPELARRAY = uintptr   /* wingdi.h:965:37 */
  9330  type tagLOGBRUSH = struct {
  9331  	lbStyle UINT
  9332  	lbColor COLORREF
  9333  	lbHatch ULONG_PTR
  9334  } /* wingdi.h:968:11 */
  9335  
  9336  type LOGBRUSH = tagLOGBRUSH /* wingdi.h:972:5 */
  9337  type PLOGBRUSH = uintptr    /* wingdi.h:972:14 */
  9338  type NPLOGBRUSH = uintptr   /* wingdi.h:972:25 */
  9339  type LPLOGBRUSH = uintptr   /* wingdi.h:972:37 */
  9340  
  9341  type tagLOGBRUSH32 = struct {
  9342  	lbStyle UINT
  9343  	lbColor COLORREF
  9344  	lbHatch ULONG
  9345  } /* wingdi.h:974:11 */
  9346  
  9347  type LOGBRUSH32 = tagLOGBRUSH32 /* wingdi.h:978:5 */
  9348  type PLOGBRUSH32 = uintptr      /* wingdi.h:978:16 */
  9349  type NPLOGBRUSH32 = uintptr     /* wingdi.h:978:29 */
  9350  type LPLOGBRUSH32 = uintptr     /* wingdi.h:978:43 */
  9351  type PATTERN = LOGBRUSH         /* wingdi.h:981:20 */
  9352  type PPATTERN = uintptr         /* wingdi.h:982:19 */
  9353  type NPPATTERN = uintptr        /* wingdi.h:983:19 */
  9354  type LPPATTERN = uintptr        /* wingdi.h:984:19 */
  9355  
  9356  type tagLOGPEN = struct {
  9357  	lopnStyle UINT
  9358  	lopnWidth POINT
  9359  	lopnColor COLORREF
  9360  } /* wingdi.h:988:11 */
  9361  
  9362  type LOGPEN = tagLOGPEN /* wingdi.h:992:5 */
  9363  type PLOGPEN = uintptr  /* wingdi.h:992:12 */
  9364  type NPLOGPEN = uintptr /* wingdi.h:992:21 */
  9365  type LPLOGPEN = uintptr /* wingdi.h:992:31 */
  9366  
  9367  type tagEXTLOGPEN = struct {
  9368  	elpPenStyle   DWORD
  9369  	elpWidth      DWORD
  9370  	elpBrushStyle UINT
  9371  	elpColor      COLORREF
  9372  	elpHatch      ULONG_PTR
  9373  	elpNumEntries DWORD
  9374  	elpStyleEntry [1]DWORD
  9375  } /* wingdi.h:996:11 */
  9376  
  9377  type EXTLOGPEN = tagEXTLOGPEN /* wingdi.h:1004:5 */
  9378  type PEXTLOGPEN = uintptr     /* wingdi.h:1004:15 */
  9379  type NPEXTLOGPEN = uintptr    /* wingdi.h:1004:27 */
  9380  type LPEXTLOGPEN = uintptr    /* wingdi.h:1004:40 */
  9381  
  9382  type tagEXTLOGPEN32 = struct {
  9383  	elpPenStyle   DWORD
  9384  	elpWidth      DWORD
  9385  	elpBrushStyle UINT
  9386  	elpColor      COLORREF
  9387  	elpHatch      ULONG
  9388  	elpNumEntries DWORD
  9389  	elpStyleEntry [1]DWORD
  9390  } /* wingdi.h:1008:11 */
  9391  
  9392  type EXTLOGPEN32 = tagEXTLOGPEN32 /* wingdi.h:1016:5 */
  9393  type PEXTLOGPEN32 = uintptr       /* wingdi.h:1016:18 */
  9394  type NPEXTLOGPEN32 = uintptr      /* wingdi.h:1016:33 */
  9395  type LPEXTLOGPEN32 = uintptr      /* wingdi.h:1016:49 */
  9396  
  9397  type tagPALETTEENTRY = struct {
  9398  	peRed   BYTE
  9399  	peGreen BYTE
  9400  	peBlue  BYTE
  9401  	peFlags BYTE
  9402  } /* wingdi.h:1020:11 */
  9403  
  9404  type PALETTEENTRY = tagPALETTEENTRY /* wingdi.h:1025:5 */
  9405  type PPALETTEENTRY = uintptr        /* wingdi.h:1025:18 */
  9406  type LPPALETTEENTRY = uintptr       /* wingdi.h:1025:33 */
  9407  
  9408  type tagLOGPALETTE = struct {
  9409  	palVersion    WORD
  9410  	palNumEntries WORD
  9411  	palPalEntry   [1]PALETTEENTRY
  9412  } /* wingdi.h:1030:11 */
  9413  
  9414  type LOGPALETTE = tagLOGPALETTE /* wingdi.h:1034:5 */
  9415  type PLOGPALETTE = uintptr      /* wingdi.h:1034:16 */
  9416  type NPLOGPALETTE = uintptr     /* wingdi.h:1034:29 */
  9417  type LPLOGPALETTE = uintptr     /* wingdi.h:1034:43 */
  9418  
  9419  type tagLOGFONTA = struct {
  9420  	lfHeight         LONG
  9421  	lfWidth          LONG
  9422  	lfEscapement     LONG
  9423  	lfOrientation    LONG
  9424  	lfWeight         LONG
  9425  	lfItalic         BYTE
  9426  	lfUnderline      BYTE
  9427  	lfStrikeOut      BYTE
  9428  	lfCharSet        BYTE
  9429  	lfOutPrecision   BYTE
  9430  	lfClipPrecision  BYTE
  9431  	lfQuality        BYTE
  9432  	lfPitchAndFamily BYTE
  9433  	lfFaceName       [32]CHAR
  9434  } /* wingdi.h:1041:11 */
  9435  
  9436  type LOGFONTA = tagLOGFONTA /* wingdi.h:1056:5 */
  9437  type PLOGFONTA = uintptr    /* wingdi.h:1056:14 */
  9438  type NPLOGFONTA = uintptr   /* wingdi.h:1056:25 */
  9439  type LPLOGFONTA = uintptr   /* wingdi.h:1056:37 */
  9440  
  9441  type tagLOGFONTW = struct {
  9442  	lfHeight         LONG
  9443  	lfWidth          LONG
  9444  	lfEscapement     LONG
  9445  	lfOrientation    LONG
  9446  	lfWeight         LONG
  9447  	lfItalic         BYTE
  9448  	lfUnderline      BYTE
  9449  	lfStrikeOut      BYTE
  9450  	lfCharSet        BYTE
  9451  	lfOutPrecision   BYTE
  9452  	lfClipPrecision  BYTE
  9453  	lfQuality        BYTE
  9454  	lfPitchAndFamily BYTE
  9455  	lfFaceName       [32]WCHAR
  9456  } /* wingdi.h:1058:11 */
  9457  
  9458  type LOGFONTW = tagLOGFONTW /* wingdi.h:1073:5 */
  9459  type PLOGFONTW = uintptr    /* wingdi.h:1073:14 */
  9460  type NPLOGFONTW = uintptr   /* wingdi.h:1073:25 */
  9461  type LPLOGFONTW = uintptr   /* wingdi.h:1073:37 */
  9462  
  9463  type LOGFONT = LOGFONTA     /* wingdi.h:1075:3 */
  9464  type PLOGFONT = PLOGFONTA   /* wingdi.h:1076:3 */
  9465  type NPLOGFONT = NPLOGFONTA /* wingdi.h:1077:3 */
  9466  type LPLOGFONT = LPLOGFONTA /* wingdi.h:1078:3 */
  9467  
  9468  type tagENUMLOGFONTA = struct {
  9469  	elfLogFont  LOGFONTA
  9470  	elfFullName [64]BYTE
  9471  	elfStyle    [32]BYTE
  9472  } /* wingdi.h:1084:11 */
  9473  
  9474  type ENUMLOGFONTA = tagENUMLOGFONTA /* wingdi.h:1088:5 */
  9475  type LPENUMLOGFONTA = uintptr       /* wingdi.h:1088:18 */
  9476  
  9477  type tagENUMLOGFONTW = struct {
  9478  	elfLogFont  LOGFONTW
  9479  	elfFullName [64]WCHAR
  9480  	elfStyle    [32]WCHAR
  9481  } /* wingdi.h:1090:11 */
  9482  
  9483  type ENUMLOGFONTW = tagENUMLOGFONTW /* wingdi.h:1094:5 */
  9484  type LPENUMLOGFONTW = uintptr       /* wingdi.h:1094:18 */
  9485  
  9486  type ENUMLOGFONT = ENUMLOGFONTA     /* wingdi.h:1096:3 */
  9487  type LPENUMLOGFONT = LPENUMLOGFONTA /* wingdi.h:1097:3 */
  9488  
  9489  type tagENUMLOGFONTEXA = struct {
  9490  	elfLogFont  LOGFONTA
  9491  	elfFullName [64]BYTE
  9492  	elfStyle    [32]BYTE
  9493  	elfScript   [32]BYTE
  9494  } /* wingdi.h:1099:11 */
  9495  
  9496  type ENUMLOGFONTEXA = tagENUMLOGFONTEXA /* wingdi.h:1104:5 */
  9497  type LPENUMLOGFONTEXA = uintptr         /* wingdi.h:1104:20 */
  9498  
  9499  type tagENUMLOGFONTEXW = struct {
  9500  	elfLogFont  LOGFONTW
  9501  	elfFullName [64]WCHAR
  9502  	elfStyle    [32]WCHAR
  9503  	elfScript   [32]WCHAR
  9504  } /* wingdi.h:1106:11 */
  9505  
  9506  type ENUMLOGFONTEXW = tagENUMLOGFONTEXW /* wingdi.h:1111:5 */
  9507  type LPENUMLOGFONTEXW = uintptr         /* wingdi.h:1111:20 */
  9508  
  9509  type ENUMLOGFONTEX = ENUMLOGFONTEXA     /* wingdi.h:1113:3 */
  9510  type LPENUMLOGFONTEX = LPENUMLOGFONTEXA /* wingdi.h:1114:3 */
  9511  
  9512  type tagPANOSE = struct {
  9513  	bFamilyType      BYTE
  9514  	bSerifStyle      BYTE
  9515  	bWeight          BYTE
  9516  	bProportion      BYTE
  9517  	bContrast        BYTE
  9518  	bStrokeVariation BYTE
  9519  	bArmStyle        BYTE
  9520  	bLetterform      BYTE
  9521  	bMidline         BYTE
  9522  	bXHeight         BYTE
  9523  } /* wingdi.h:1235:11 */
  9524  
  9525  type PANOSE = tagPANOSE /* wingdi.h:1246:5 */
  9526  type LPPANOSE = uintptr /* wingdi.h:1246:12 */
  9527  
  9528  type tagEXTLOGFONTA = struct {
  9529  	elfLogFont   LOGFONTA
  9530  	elfFullName  [64]BYTE
  9531  	elfStyle     [32]BYTE
  9532  	elfVersion   DWORD
  9533  	elfStyleSize DWORD
  9534  	elfMatch     DWORD
  9535  	elfReserved  DWORD
  9536  	elfVendorId  [4]BYTE
  9537  	elfCulture   DWORD
  9538  	elfPanose    PANOSE
  9539  	_            [2]byte
  9540  } /* wingdi.h:1356:11 */
  9541  
  9542  type EXTLOGFONTA = tagEXTLOGFONTA /* wingdi.h:1367:5 */
  9543  type PEXTLOGFONTA = uintptr       /* wingdi.h:1367:17 */
  9544  type NPEXTLOGFONTA = uintptr      /* wingdi.h:1367:31 */
  9545  type LPEXTLOGFONTA = uintptr      /* wingdi.h:1367:46 */
  9546  
  9547  type tagEXTLOGFONTW = struct {
  9548  	elfLogFont   LOGFONTW
  9549  	elfFullName  [64]WCHAR
  9550  	elfStyle     [32]WCHAR
  9551  	elfVersion   DWORD
  9552  	elfStyleSize DWORD
  9553  	elfMatch     DWORD
  9554  	elfReserved  DWORD
  9555  	elfVendorId  [4]BYTE
  9556  	elfCulture   DWORD
  9557  	elfPanose    PANOSE
  9558  	_            [2]byte
  9559  } /* wingdi.h:1369:11 */
  9560  
  9561  type EXTLOGFONTW = tagEXTLOGFONTW /* wingdi.h:1380:5 */
  9562  type PEXTLOGFONTW = uintptr       /* wingdi.h:1380:17 */
  9563  type NPEXTLOGFONTW = uintptr      /* wingdi.h:1380:31 */
  9564  type LPEXTLOGFONTW = uintptr      /* wingdi.h:1380:46 */
  9565  
  9566  type EXTLOGFONT = EXTLOGFONTA     /* wingdi.h:1382:3 */
  9567  type PEXTLOGFONT = PEXTLOGFONTA   /* wingdi.h:1383:3 */
  9568  type NPEXTLOGFONT = NPEXTLOGFONTA /* wingdi.h:1384:3 */
  9569  type LPEXTLOGFONT = LPEXTLOGFONTA /* wingdi.h:1385:3 */
  9570  
  9571  type _devicemodeA = struct {
  9572  	dmDeviceName    [32]BYTE
  9573  	dmSpecVersion   WORD
  9574  	dmDriverVersion WORD
  9575  	dmSize          WORD
  9576  	dmDriverExtra   WORD
  9577  	dmFields        DWORD
  9578  	__44            struct {
  9579  		_   [0]uint32
  9580  		__0 struct {
  9581  			dmOrientation   int16
  9582  			dmPaperSize     int16
  9583  			dmPaperLength   int16
  9584  			dmPaperWidth    int16
  9585  			dmScale         int16
  9586  			dmCopies        int16
  9587  			dmDefaultSource int16
  9588  			dmPrintQuality  int16
  9589  		}
  9590  	}
  9591  	dmColor            int16
  9592  	dmDuplex           int16
  9593  	dmYResolution      int16
  9594  	dmTTOption         int16
  9595  	dmCollate          int16
  9596  	dmFormName         [32]BYTE
  9597  	dmLogPixels        WORD
  9598  	dmBitsPerPel       DWORD
  9599  	dmPelsWidth        DWORD
  9600  	dmPelsHeight       DWORD
  9601  	__116              struct{ dmDisplayFlags DWORD }
  9602  	dmDisplayFrequency DWORD
  9603  	dmICMMethod        DWORD
  9604  	dmICMIntent        DWORD
  9605  	dmMediaType        DWORD
  9606  	dmDitherType       DWORD
  9607  	dmReserved1        DWORD
  9608  	dmReserved2        DWORD
  9609  	dmPanningWidth     DWORD
  9610  	dmPanningHeight    DWORD
  9611  } /* wingdi.h:1669:11 */
  9612  
  9613  type DEVMODEA = _devicemodeA /* wingdi.h:1716:5 */
  9614  type PDEVMODEA = uintptr     /* wingdi.h:1716:14 */
  9615  type NPDEVMODEA = uintptr    /* wingdi.h:1716:25 */
  9616  type LPDEVMODEA = uintptr    /* wingdi.h:1716:37 */
  9617  
  9618  type _devicemodeW = struct {
  9619  	dmDeviceName    [32]WCHAR
  9620  	dmSpecVersion   WORD
  9621  	dmDriverVersion WORD
  9622  	dmSize          WORD
  9623  	dmDriverExtra   WORD
  9624  	dmFields        DWORD
  9625  	__76            struct {
  9626  		_   [0]uint32
  9627  		__0 struct {
  9628  			dmOrientation   int16
  9629  			dmPaperSize     int16
  9630  			dmPaperLength   int16
  9631  			dmPaperWidth    int16
  9632  			dmScale         int16
  9633  			dmCopies        int16
  9634  			dmDefaultSource int16
  9635  			dmPrintQuality  int16
  9636  		}
  9637  	}
  9638  	dmColor            int16
  9639  	dmDuplex           int16
  9640  	dmYResolution      int16
  9641  	dmTTOption         int16
  9642  	dmCollate          int16
  9643  	dmFormName         [32]WCHAR
  9644  	dmLogPixels        WORD
  9645  	dmBitsPerPel       DWORD
  9646  	dmPelsWidth        DWORD
  9647  	dmPelsHeight       DWORD
  9648  	__180              struct{ dmDisplayFlags DWORD }
  9649  	dmDisplayFrequency DWORD
  9650  	dmICMMethod        DWORD
  9651  	dmICMIntent        DWORD
  9652  	dmMediaType        DWORD
  9653  	dmDitherType       DWORD
  9654  	dmReserved1        DWORD
  9655  	dmReserved2        DWORD
  9656  	dmPanningWidth     DWORD
  9657  	dmPanningHeight    DWORD
  9658  } /* wingdi.h:1718:11 */
  9659  
  9660  type DEVMODEW = _devicemodeW /* wingdi.h:1765:5 */
  9661  type PDEVMODEW = uintptr     /* wingdi.h:1765:14 */
  9662  type NPDEVMODEW = uintptr    /* wingdi.h:1765:25 */
  9663  type LPDEVMODEW = uintptr    /* wingdi.h:1765:37 */
  9664  
  9665  type DEVMODE = DEVMODEA     /* wingdi.h:1767:3 */
  9666  type PDEVMODE = PDEVMODEA   /* wingdi.h:1768:3 */
  9667  type NPDEVMODE = NPDEVMODEA /* wingdi.h:1769:3 */
  9668  type LPDEVMODE = LPDEVMODEA /* wingdi.h:1770:3 */
  9669  
  9670  type _DISPLAY_DEVICEA = struct {
  9671  	cb           DWORD
  9672  	DeviceName   [32]CHAR
  9673  	DeviceString [128]CHAR
  9674  	StateFlags   DWORD
  9675  	DeviceID     [128]CHAR
  9676  	DeviceKey    [128]CHAR
  9677  } /* wingdi.h:2021:11 */
  9678  
  9679  type DISPLAY_DEVICEA = _DISPLAY_DEVICEA /* wingdi.h:2028:5 */
  9680  type PDISPLAY_DEVICEA = uintptr         /* wingdi.h:2028:21 */
  9681  type LPDISPLAY_DEVICEA = uintptr        /* wingdi.h:2028:39 */
  9682  
  9683  type _DISPLAY_DEVICEW = struct {
  9684  	cb           DWORD
  9685  	DeviceName   [32]WCHAR
  9686  	DeviceString [128]WCHAR
  9687  	StateFlags   DWORD
  9688  	DeviceID     [128]WCHAR
  9689  	DeviceKey    [128]WCHAR
  9690  } /* wingdi.h:2030:11 */
  9691  
  9692  type DISPLAY_DEVICEW = _DISPLAY_DEVICEW /* wingdi.h:2037:5 */
  9693  type PDISPLAY_DEVICEW = uintptr         /* wingdi.h:2037:21 */
  9694  type LPDISPLAY_DEVICEW = uintptr        /* wingdi.h:2037:39 */
  9695  
  9696  type DISPLAY_DEVICE = DISPLAY_DEVICEA     /* wingdi.h:2039:3 */
  9697  type PDISPLAY_DEVICE = PDISPLAY_DEVICEA   /* wingdi.h:2040:3 */
  9698  type LPDISPLAY_DEVICE = LPDISPLAY_DEVICEA /* wingdi.h:2041:3 */
  9699  
  9700  type _RGNDATAHEADER = struct {
  9701  	dwSize   DWORD
  9702  	iType    DWORD
  9703  	nCount   DWORD
  9704  	nRgnSize DWORD
  9705  	rcBound  RECT
  9706  } /* wingdi.h:2315:11 */
  9707  
  9708  type RGNDATAHEADER = _RGNDATAHEADER /* wingdi.h:2321:5 */
  9709  type PRGNDATAHEADER = uintptr       /* wingdi.h:2321:19 */
  9710  
  9711  type _RGNDATA = struct {
  9712  	rdh    RGNDATAHEADER
  9713  	Buffer [1]int8
  9714  	_      [3]byte
  9715  } /* wingdi.h:2323:11 */
  9716  
  9717  type RGNDATA = _RGNDATA  /* wingdi.h:2326:5 */
  9718  type PRGNDATA = uintptr  /* wingdi.h:2326:13 */
  9719  type NPRGNDATA = uintptr /* wingdi.h:2326:23 */
  9720  type LPRGNDATA = uintptr /* wingdi.h:2326:34 */
  9721  
  9722  type _ABC = struct {
  9723  	abcA int32
  9724  	abcB UINT
  9725  	abcC int32
  9726  } /* wingdi.h:2332:11 */
  9727  
  9728  type ABC = _ABC      /* wingdi.h:2336:5 */
  9729  type PABC = uintptr  /* wingdi.h:2336:9 */
  9730  type NPABC = uintptr /* wingdi.h:2336:15 */
  9731  type LPABC = uintptr /* wingdi.h:2336:22 */
  9732  
  9733  type _ABCFLOAT = struct {
  9734  	abcfA FLOAT
  9735  	abcfB FLOAT
  9736  	abcfC FLOAT
  9737  } /* wingdi.h:2338:11 */
  9738  
  9739  type ABCFLOAT = _ABCFLOAT /* wingdi.h:2342:5 */
  9740  type PABCFLOAT = uintptr  /* wingdi.h:2342:14 */
  9741  type NPABCFLOAT = uintptr /* wingdi.h:2342:25 */
  9742  type LPABCFLOAT = uintptr /* wingdi.h:2342:37 */
  9743  
  9744  type _OUTLINETEXTMETRICA = struct {
  9745  	otmSize                UINT
  9746  	otmTextMetrics         TEXTMETRICA
  9747  	otmFiller              BYTE
  9748  	otmPanoseNumber        PANOSE
  9749  	_                      [1]byte
  9750  	otmfsSelection         UINT
  9751  	otmfsType              UINT
  9752  	otmsCharSlopeRise      int32
  9753  	otmsCharSlopeRun       int32
  9754  	otmItalicAngle         int32
  9755  	otmEMSquare            UINT
  9756  	otmAscent              int32
  9757  	otmDescent             int32
  9758  	otmLineGap             UINT
  9759  	otmsCapEmHeight        UINT
  9760  	otmsXHeight            UINT
  9761  	otmrcFontBox           RECT
  9762  	otmMacAscent           int32
  9763  	otmMacDescent          int32
  9764  	otmMacLineGap          UINT
  9765  	otmusMinimumPPEM       UINT
  9766  	otmptSubscriptSize     POINT
  9767  	otmptSubscriptOffset   POINT
  9768  	otmptSuperscriptSize   POINT
  9769  	otmptSuperscriptOffset POINT
  9770  	otmsStrikeoutSize      UINT
  9771  	otmsStrikeoutPosition  int32
  9772  	otmsUnderscoreSize     int32
  9773  	otmsUnderscorePosition int32
  9774  	otmpFamilyName         PSTR
  9775  	otmpFaceName           PSTR
  9776  	otmpStyleName          PSTR
  9777  	otmpFullName           PSTR
  9778  } /* wingdi.h:2348:11 */
  9779  
  9780  type OUTLINETEXTMETRICA = _OUTLINETEXTMETRICA /* wingdi.h:2381:5 */
  9781  type POUTLINETEXTMETRICA = uintptr            /* wingdi.h:2381:24 */
  9782  type NPOUTLINETEXTMETRICA = uintptr           /* wingdi.h:2381:45 */
  9783  type LPOUTLINETEXTMETRICA = uintptr           /* wingdi.h:2381:67 */
  9784  
  9785  type _OUTLINETEXTMETRICW = struct {
  9786  	otmSize                UINT
  9787  	otmTextMetrics         TEXTMETRICW
  9788  	otmFiller              BYTE
  9789  	otmPanoseNumber        PANOSE
  9790  	_                      [1]byte
  9791  	otmfsSelection         UINT
  9792  	otmfsType              UINT
  9793  	otmsCharSlopeRise      int32
  9794  	otmsCharSlopeRun       int32
  9795  	otmItalicAngle         int32
  9796  	otmEMSquare            UINT
  9797  	otmAscent              int32
  9798  	otmDescent             int32
  9799  	otmLineGap             UINT
  9800  	otmsCapEmHeight        UINT
  9801  	otmsXHeight            UINT
  9802  	otmrcFontBox           RECT
  9803  	otmMacAscent           int32
  9804  	otmMacDescent          int32
  9805  	otmMacLineGap          UINT
  9806  	otmusMinimumPPEM       UINT
  9807  	otmptSubscriptSize     POINT
  9808  	otmptSubscriptOffset   POINT
  9809  	otmptSuperscriptSize   POINT
  9810  	otmptSuperscriptOffset POINT
  9811  	otmsStrikeoutSize      UINT
  9812  	otmsStrikeoutPosition  int32
  9813  	otmsUnderscoreSize     int32
  9814  	otmsUnderscorePosition int32
  9815  	otmpFamilyName         PSTR
  9816  	otmpFaceName           PSTR
  9817  	otmpStyleName          PSTR
  9818  	otmpFullName           PSTR
  9819  } /* wingdi.h:2383:11 */
  9820  
  9821  type OUTLINETEXTMETRICW = _OUTLINETEXTMETRICW /* wingdi.h:2416:5 */
  9822  type POUTLINETEXTMETRICW = uintptr            /* wingdi.h:2416:24 */
  9823  type NPOUTLINETEXTMETRICW = uintptr           /* wingdi.h:2416:45 */
  9824  type LPOUTLINETEXTMETRICW = uintptr           /* wingdi.h:2416:67 */
  9825  
  9826  type OUTLINETEXTMETRIC = OUTLINETEXTMETRICA     /* wingdi.h:2418:3 */
  9827  type POUTLINETEXTMETRIC = POUTLINETEXTMETRICA   /* wingdi.h:2419:3 */
  9828  type NPOUTLINETEXTMETRIC = NPOUTLINETEXTMETRICA /* wingdi.h:2420:3 */
  9829  type LPOUTLINETEXTMETRIC = LPOUTLINETEXTMETRICA /* wingdi.h:2421:3 */
  9830  
  9831  type tagPOLYTEXTA = struct {
  9832  	x       int32
  9833  	y       int32
  9834  	n       UINT
  9835  	lpstr   LPCSTR
  9836  	uiFlags UINT
  9837  	rcl     RECT
  9838  	pdx     uintptr
  9839  } /* wingdi.h:2426:11 */
  9840  
  9841  type POLYTEXTA = tagPOLYTEXTA /* wingdi.h:2434:5 */
  9842  type PPOLYTEXTA = uintptr     /* wingdi.h:2434:15 */
  9843  type NPPOLYTEXTA = uintptr    /* wingdi.h:2434:27 */
  9844  type LPPOLYTEXTA = uintptr    /* wingdi.h:2434:40 */
  9845  
  9846  type tagPOLYTEXTW = struct {
  9847  	x       int32
  9848  	y       int32
  9849  	n       UINT
  9850  	lpstr   LPCWSTR
  9851  	uiFlags UINT
  9852  	rcl     RECT
  9853  	pdx     uintptr
  9854  } /* wingdi.h:2436:11 */
  9855  
  9856  type POLYTEXTW = tagPOLYTEXTW /* wingdi.h:2444:5 */
  9857  type PPOLYTEXTW = uintptr     /* wingdi.h:2444:15 */
  9858  type NPPOLYTEXTW = uintptr    /* wingdi.h:2444:27 */
  9859  type LPPOLYTEXTW = uintptr    /* wingdi.h:2444:40 */
  9860  
  9861  type POLYTEXT = POLYTEXTA     /* wingdi.h:2446:3 */
  9862  type PPOLYTEXT = PPOLYTEXTA   /* wingdi.h:2447:3 */
  9863  type NPPOLYTEXT = NPPOLYTEXTA /* wingdi.h:2448:3 */
  9864  type LPPOLYTEXT = LPPOLYTEXTA /* wingdi.h:2449:3 */
  9865  
  9866  type _FIXED = struct {
  9867  	fract WORD
  9868  	value int16
  9869  } /* wingdi.h:2453:11 */
  9870  
  9871  type FIXED = _FIXED /* wingdi.h:2456:5 */
  9872  
  9873  type _MAT2 = struct {
  9874  	eM11 FIXED
  9875  	eM12 FIXED
  9876  	eM21 FIXED
  9877  	eM22 FIXED
  9878  } /* wingdi.h:2458:11 */
  9879  
  9880  type MAT2 = _MAT2     /* wingdi.h:2463:5 */
  9881  type LPMAT2 = uintptr /* wingdi.h:2463:10 */
  9882  
  9883  type _GLYPHMETRICS = struct {
  9884  	gmBlackBoxX     UINT
  9885  	gmBlackBoxY     UINT
  9886  	gmptGlyphOrigin POINT
  9887  	gmCellIncX      int16
  9888  	gmCellIncY      int16
  9889  } /* wingdi.h:2465:11 */
  9890  
  9891  type GLYPHMETRICS = _GLYPHMETRICS /* wingdi.h:2471:5 */
  9892  type LPGLYPHMETRICS = uintptr     /* wingdi.h:2471:18 */
  9893  
  9894  type tagPOINTFX = struct {
  9895  	x FIXED
  9896  	y FIXED
  9897  } /* wingdi.h:2491:11 */
  9898  
  9899  type POINTFX = tagPOINTFX /* wingdi.h:2494:5 */
  9900  type LPPOINTFX = uintptr  /* wingdi.h:2494:13 */
  9901  
  9902  type tagTTPOLYCURVE = struct {
  9903  	wType WORD
  9904  	cpfx  WORD
  9905  	apfx  [1]POINTFX
  9906  } /* wingdi.h:2496:11 */
  9907  
  9908  type TTPOLYCURVE = tagTTPOLYCURVE /* wingdi.h:2500:5 */
  9909  type LPTTPOLYCURVE = uintptr      /* wingdi.h:2500:17 */
  9910  
  9911  type tagTTPOLYGONHEADER = struct {
  9912  	cb       DWORD
  9913  	dwType   DWORD
  9914  	pfxStart POINTFX
  9915  } /* wingdi.h:2502:11 */
  9916  
  9917  type TTPOLYGONHEADER = tagTTPOLYGONHEADER /* wingdi.h:2506:5 */
  9918  type LPTTPOLYGONHEADER = uintptr          /* wingdi.h:2506:21 */
  9919  
  9920  type tagGCP_RESULTSA = struct {
  9921  	lStructSize DWORD
  9922  	lpOutString LPSTR
  9923  	lpOrder     uintptr
  9924  	lpDx        uintptr
  9925  	lpCaretPos  uintptr
  9926  	lpClass     LPSTR
  9927  	lpGlyphs    LPWSTR
  9928  	nGlyphs     UINT
  9929  	nMaxFit     int32
  9930  } /* wingdi.h:2549:11 */
  9931  
  9932  type GCP_RESULTSA = tagGCP_RESULTSA /* wingdi.h:2559:5 */
  9933  type LPGCP_RESULTSA = uintptr       /* wingdi.h:2559:18 */
  9934  type tagGCP_RESULTSW = struct {
  9935  	lStructSize DWORD
  9936  	lpOutString LPWSTR
  9937  	lpOrder     uintptr
  9938  	lpDx        uintptr
  9939  	lpCaretPos  uintptr
  9940  	lpClass     LPSTR
  9941  	lpGlyphs    LPWSTR
  9942  	nGlyphs     UINT
  9943  	nMaxFit     int32
  9944  } /* wingdi.h:2560:11 */
  9945  
  9946  type GCP_RESULTSW = tagGCP_RESULTSW /* wingdi.h:2570:5 */
  9947  type LPGCP_RESULTSW = uintptr       /* wingdi.h:2570:18 */
  9948  
  9949  type GCP_RESULTS = GCP_RESULTSA     /* wingdi.h:2572:3 */
  9950  type LPGCP_RESULTS = LPGCP_RESULTSA /* wingdi.h:2573:3 */
  9951  
  9952  type _RASTERIZER_STATUS = struct {
  9953  	nSize       int16
  9954  	wFlags      int16
  9955  	nLanguageID int16
  9956  } /* wingdi.h:2575:11 */
  9957  
  9958  type RASTERIZER_STATUS = _RASTERIZER_STATUS /* wingdi.h:2579:5 */
  9959  type LPRASTERIZER_STATUS = uintptr          /* wingdi.h:2579:23 */
  9960  
  9961  type tagPIXELFORMATDESCRIPTOR = struct {
  9962  	nSize           WORD
  9963  	nVersion        WORD
  9964  	dwFlags         DWORD
  9965  	iPixelType      BYTE
  9966  	cColorBits      BYTE
  9967  	cRedBits        BYTE
  9968  	cRedShift       BYTE
  9969  	cGreenBits      BYTE
  9970  	cGreenShift     BYTE
  9971  	cBlueBits       BYTE
  9972  	cBlueShift      BYTE
  9973  	cAlphaBits      BYTE
  9974  	cAlphaShift     BYTE
  9975  	cAccumBits      BYTE
  9976  	cAccumRedBits   BYTE
  9977  	cAccumGreenBits BYTE
  9978  	cAccumBlueBits  BYTE
  9979  	cAccumAlphaBits BYTE
  9980  	cDepthBits      BYTE
  9981  	cStencilBits    BYTE
  9982  	cAuxBuffers     BYTE
  9983  	iLayerType      BYTE
  9984  	bReserved       BYTE
  9985  	dwLayerMask     DWORD
  9986  	dwVisibleMask   DWORD
  9987  	dwDamageMask    DWORD
  9988  } /* wingdi.h:2586:11 */
  9989  
  9990  type PIXELFORMATDESCRIPTOR = tagPIXELFORMATDESCRIPTOR /* wingdi.h:2613:5 */
  9991  type PPIXELFORMATDESCRIPTOR = uintptr                 /* wingdi.h:2613:27 */
  9992  type LPPIXELFORMATDESCRIPTOR = uintptr                /* wingdi.h:2613:51 */
  9993  
  9994  type OLDFONTENUMPROCA = uintptr /* wingdi.h:2646:15 */
  9995  type OLDFONTENUMPROCW = uintptr /* wingdi.h:2647:15 */
  9996  
  9997  type FONTENUMPROCA = OLDFONTENUMPROCA /* wingdi.h:2657:28 */
  9998  type FONTENUMPROCW = OLDFONTENUMPROCW /* wingdi.h:2658:28 */
  9999  
 10000  type FONTENUMPROC = FONTENUMPROCA /* wingdi.h:2660:3 */
 10001  
 10002  type GOBJENUMPROC = uintptr /* wingdi.h:2662:15 */
 10003  type LINEDDAPROC = uintptr  /* wingdi.h:2663:16 */
 10004  
 10005  type LPFNDEVMODE = uintptr /* wingdi.h:2725:16 */
 10006  type LPFNDEVCAPS = uintptr /* wingdi.h:2726:17 */
 10007  
 10008  type tagWCRANGE = struct {
 10009  	wcLow   WCHAR
 10010  	cGlyphs USHORT
 10011  } /* wingdi.h:2906:11 */
 10012  
 10013  type WCRANGE = tagWCRANGE /* wingdi.h:2909:5 */
 10014  type PWCRANGE = uintptr   /* wingdi.h:2909:13 */
 10015  type LPWCRANGE = uintptr  /* wingdi.h:2909:23 */
 10016  
 10017  type tagGLYPHSET = struct {
 10018  	cbThis           DWORD
 10019  	flAccel          DWORD
 10020  	cGlyphsSupported DWORD
 10021  	cRanges          DWORD
 10022  	ranges           [1]WCRANGE
 10023  } /* wingdi.h:2911:11 */
 10024  
 10025  type GLYPHSET = tagGLYPHSET /* wingdi.h:2917:5 */
 10026  type PGLYPHSET = uintptr    /* wingdi.h:2917:14 */
 10027  type LPGLYPHSET = uintptr   /* wingdi.h:2917:25 */
 10028  
 10029  type tagDESIGNVECTOR = struct {
 10030  	dvReserved DWORD
 10031  	dvNumAxes  DWORD
 10032  	dvValues   [16]LONG
 10033  } /* wingdi.h:2937:11 */
 10034  
 10035  type DESIGNVECTOR = tagDESIGNVECTOR /* wingdi.h:2941:5 */
 10036  type PDESIGNVECTOR = uintptr        /* wingdi.h:2941:18 */
 10037  type LPDESIGNVECTOR = uintptr       /* wingdi.h:2941:33 */
 10038  
 10039  type tagAXISINFOA = struct {
 10040  	axMinValue LONG
 10041  	axMaxValue LONG
 10042  	axAxisName [16]BYTE
 10043  } /* wingdi.h:2958:11 */
 10044  
 10045  type AXISINFOA = tagAXISINFOA /* wingdi.h:2962:5 */
 10046  type PAXISINFOA = uintptr     /* wingdi.h:2962:15 */
 10047  type LPAXISINFOA = uintptr    /* wingdi.h:2962:27 */
 10048  
 10049  type tagAXISINFOW = struct {
 10050  	axMinValue LONG
 10051  	axMaxValue LONG
 10052  	axAxisName [16]WCHAR
 10053  } /* wingdi.h:2964:11 */
 10054  
 10055  type AXISINFOW = tagAXISINFOW /* wingdi.h:2968:5 */
 10056  type PAXISINFOW = uintptr     /* wingdi.h:2968:15 */
 10057  type LPAXISINFOW = uintptr    /* wingdi.h:2968:27 */
 10058  
 10059  type AXISINFO = AXISINFOA     /* wingdi.h:2970:3 */
 10060  type PAXISINFO = PAXISINFOA   /* wingdi.h:2971:3 */
 10061  type LPAXISINFO = LPAXISINFOA /* wingdi.h:2972:3 */
 10062  
 10063  type tagAXESLISTA = struct {
 10064  	axlReserved DWORD
 10065  	axlNumAxes  DWORD
 10066  	axlAxisInfo [16]AXISINFOA
 10067  } /* wingdi.h:2974:11 */
 10068  
 10069  type AXESLISTA = tagAXESLISTA /* wingdi.h:2978:5 */
 10070  type PAXESLISTA = uintptr     /* wingdi.h:2978:15 */
 10071  type LPAXESLISTA = uintptr    /* wingdi.h:2978:27 */
 10072  
 10073  type tagAXESLISTW = struct {
 10074  	axlReserved DWORD
 10075  	axlNumAxes  DWORD
 10076  	axlAxisInfo [16]AXISINFOW
 10077  } /* wingdi.h:2980:11 */
 10078  
 10079  type AXESLISTW = tagAXESLISTW /* wingdi.h:2984:5 */
 10080  type PAXESLISTW = uintptr     /* wingdi.h:2984:15 */
 10081  type LPAXESLISTW = uintptr    /* wingdi.h:2984:27 */
 10082  
 10083  type AXESLIST = AXESLISTA     /* wingdi.h:2986:3 */
 10084  type PAXESLIST = PAXESLISTA   /* wingdi.h:2987:3 */
 10085  type LPAXESLIST = LPAXESLISTA /* wingdi.h:2988:3 */
 10086  
 10087  type tagENUMLOGFONTEXDVA = struct {
 10088  	elfEnumLogfontEx ENUMLOGFONTEXA
 10089  	elfDesignVector  DESIGNVECTOR
 10090  } /* wingdi.h:2990:11 */
 10091  
 10092  type ENUMLOGFONTEXDVA = tagENUMLOGFONTEXDVA /* wingdi.h:2993:5 */
 10093  type PENUMLOGFONTEXDVA = uintptr            /* wingdi.h:2993:22 */
 10094  type LPENUMLOGFONTEXDVA = uintptr           /* wingdi.h:2993:41 */
 10095  
 10096  type tagENUMLOGFONTEXDVW = struct {
 10097  	elfEnumLogfontEx ENUMLOGFONTEXW
 10098  	elfDesignVector  DESIGNVECTOR
 10099  } /* wingdi.h:2995:11 */
 10100  
 10101  type ENUMLOGFONTEXDVW = tagENUMLOGFONTEXDVW /* wingdi.h:2998:5 */
 10102  type PENUMLOGFONTEXDVW = uintptr            /* wingdi.h:2998:22 */
 10103  type LPENUMLOGFONTEXDVW = uintptr           /* wingdi.h:2998:41 */
 10104  
 10105  type ENUMLOGFONTEXDV = ENUMLOGFONTEXDVA     /* wingdi.h:3000:3 */
 10106  type PENUMLOGFONTEXDV = PENUMLOGFONTEXDVA   /* wingdi.h:3001:3 */
 10107  type LPENUMLOGFONTEXDV = LPENUMLOGFONTEXDVA /* wingdi.h:3002:3 */
 10108  
 10109  type tagENUMTEXTMETRICA = struct {
 10110  	etmNewTextMetricEx NEWTEXTMETRICEXA
 10111  	etmAxesList        AXESLISTA
 10112  } /* wingdi.h:3010:11 */
 10113  
 10114  type ENUMTEXTMETRICA = tagENUMTEXTMETRICA /* wingdi.h:3013:5 */
 10115  type PENUMTEXTMETRICA = uintptr           /* wingdi.h:3013:21 */
 10116  type LPENUMTEXTMETRICA = uintptr          /* wingdi.h:3013:39 */
 10117  type tagENUMTEXTMETRICW = struct {
 10118  	etmNewTextMetricEx NEWTEXTMETRICEXW
 10119  	etmAxesList        AXESLISTW
 10120  } /* wingdi.h:3014:11 */
 10121  
 10122  type ENUMTEXTMETRICW = tagENUMTEXTMETRICW /* wingdi.h:3018:5 */
 10123  type PENUMTEXTMETRICW = uintptr           /* wingdi.h:3018:21 */
 10124  type LPENUMTEXTMETRICW = uintptr          /* wingdi.h:3018:39 */
 10125  
 10126  type ENUMTEXTMETRIC = ENUMTEXTMETRICA     /* wingdi.h:3020:3 */
 10127  type PENUMTEXTMETRIC = PENUMTEXTMETRICA   /* wingdi.h:3021:3 */
 10128  type LPENUMTEXTMETRIC = LPENUMTEXTMETRICA /* wingdi.h:3022:3 */
 10129  
 10130  type COLOR16 = USHORT /* wingdi.h:3124:18 */
 10131  
 10132  type _TRIVERTEX = struct {
 10133  	x     LONG
 10134  	y     LONG
 10135  	Red   COLOR16
 10136  	Green COLOR16
 10137  	Blue  COLOR16
 10138  	Alpha COLOR16
 10139  } /* wingdi.h:3126:11 */
 10140  
 10141  type TRIVERTEX = _TRIVERTEX /* wingdi.h:3133:5 */
 10142  type PTRIVERTEX = uintptr   /* wingdi.h:3133:15 */
 10143  type LPTRIVERTEX = uintptr  /* wingdi.h:3133:27 */
 10144  type _GRADIENT_TRIANGLE = struct {
 10145  	Vertex1 ULONG
 10146  	Vertex2 ULONG
 10147  	Vertex3 ULONG
 10148  } /* wingdi.h:3136:11 */
 10149  
 10150  type GRADIENT_TRIANGLE = _GRADIENT_TRIANGLE /* wingdi.h:3140:5 */
 10151  type PGRADIENT_TRIANGLE = uintptr           /* wingdi.h:3140:23 */
 10152  type LPGRADIENT_TRIANGLE = uintptr          /* wingdi.h:3140:43 */
 10153  
 10154  type _GRADIENT_RECT = struct {
 10155  	UpperLeft  ULONG
 10156  	LowerRight ULONG
 10157  } /* wingdi.h:3142:11 */
 10158  
 10159  type GRADIENT_RECT = _GRADIENT_RECT /* wingdi.h:3145:5 */
 10160  type PGRADIENT_RECT = uintptr       /* wingdi.h:3145:19 */
 10161  type LPGRADIENT_RECT = uintptr      /* wingdi.h:3145:35 */
 10162  type _BLENDFUNCTION = struct {
 10163  	BlendOp             BYTE
 10164  	BlendFlags          BYTE
 10165  	SourceConstantAlpha BYTE
 10166  	AlphaFormat         BYTE
 10167  } /* wingdi.h:3148:11 */
 10168  
 10169  type BLENDFUNCTION = _BLENDFUNCTION /* wingdi.h:3153:5 */
 10170  type PBLENDFUNCTION = uintptr       /* wingdi.h:3153:19 */
 10171  
 10172  type MFENUMPROC = uintptr /* wingdi.h:3181:15 */
 10173  
 10174  type ENHMFENUMPROC = uintptr /* wingdi.h:3185:15 */
 10175  
 10176  type tagDIBSECTION = struct {
 10177  	dsBm        BITMAP
 10178  	dsBmih      BITMAPINFOHEADER
 10179  	dsBitfields [3]DWORD
 10180  	dshSection  HANDLE
 10181  	dsOffset    DWORD
 10182  } /* wingdi.h:3217:11 */
 10183  
 10184  type DIBSECTION = tagDIBSECTION /* wingdi.h:3223:5 */
 10185  type LPDIBSECTION = uintptr     /* wingdi.h:3223:16 */
 10186  type PDIBSECTION = uintptr      /* wingdi.h:3223:30 */
 10187  
 10188  type tagCOLORADJUSTMENT = struct {
 10189  	caSize            WORD
 10190  	caFlags           WORD
 10191  	caIlluminantIndex WORD
 10192  	caRedGamma        WORD
 10193  	caGreenGamma      WORD
 10194  	caBlueGamma       WORD
 10195  	caReferenceBlack  WORD
 10196  	caReferenceWhite  WORD
 10197  	caContrast        SHORT
 10198  	caBrightness      SHORT
 10199  	caColorfulness    SHORT
 10200  	caRedGreenTint    SHORT
 10201  } /* wingdi.h:3265:11 */
 10202  
 10203  type COLORADJUSTMENT = tagCOLORADJUSTMENT /* wingdi.h:3278:5 */
 10204  type PCOLORADJUSTMENT = uintptr           /* wingdi.h:3278:21 */
 10205  type LPCOLORADJUSTMENT = uintptr          /* wingdi.h:3278:39 */
 10206  
 10207  type ABORTPROC = uintptr /* wingdi.h:3284:19 */
 10208  
 10209  type _DOCINFOA = struct {
 10210  	cbSize       int32
 10211  	lpszDocName  LPCSTR
 10212  	lpszOutput   LPCSTR
 10213  	lpszDatatype LPCSTR
 10214  	fwType       DWORD
 10215  } /* wingdi.h:3286:11 */
 10216  
 10217  type DOCINFOA = _DOCINFOA /* wingdi.h:3292:5 */
 10218  type LPDOCINFOA = uintptr /* wingdi.h:3292:14 */
 10219  
 10220  type _DOCINFOW = struct {
 10221  	cbSize       int32
 10222  	lpszDocName  LPCWSTR
 10223  	lpszOutput   LPCWSTR
 10224  	lpszDatatype LPCWSTR
 10225  	fwType       DWORD
 10226  } /* wingdi.h:3294:11 */
 10227  
 10228  type DOCINFOW = _DOCINFOW /* wingdi.h:3300:5 */
 10229  type LPDOCINFOW = uintptr /* wingdi.h:3300:14 */
 10230  
 10231  type DOCINFO = DOCINFOA     /* wingdi.h:3302:3 */
 10232  type LPDOCINFO = LPDOCINFOA /* wingdi.h:3303:3 */
 10233  
 10234  type tagKERNINGPAIR = struct {
 10235  	wFirst      WORD
 10236  	wSecond     WORD
 10237  	iKernAmount int32
 10238  } /* wingdi.h:3373:11 */
 10239  
 10240  type KERNINGPAIR = tagKERNINGPAIR /* wingdi.h:3377:5 */
 10241  type LPKERNINGPAIR = uintptr      /* wingdi.h:3377:17 */
 10242  
 10243  type ICMENUMPROCA = uintptr /* wingdi.h:3395:15 */
 10244  type ICMENUMPROCW = uintptr /* wingdi.h:3396:15 */
 10245  
 10246  type tagEMR = struct {
 10247  	iType DWORD
 10248  	nSize DWORD
 10249  } /* wingdi.h:3561:11 */
 10250  
 10251  type EMR = tagEMR   /* wingdi.h:3564:5 */
 10252  type PEMR = uintptr /* wingdi.h:3564:9 */
 10253  
 10254  type tagEMRTEXT = struct {
 10255  	ptlReference POINTL
 10256  	nChars       DWORD
 10257  	offString    DWORD
 10258  	fOptions     DWORD
 10259  	rcl          RECTL
 10260  	offDx        DWORD
 10261  } /* wingdi.h:3566:11 */
 10262  
 10263  type EMRTEXT = tagEMRTEXT /* wingdi.h:3573:5 */
 10264  type PEMRTEXT = uintptr   /* wingdi.h:3573:13 */
 10265  
 10266  type tagABORTPATH = struct{ emr EMR } /* wingdi.h:3575:11 */
 10267  
 10268  type EMRABORTPATH = tagABORTPATH      /* wingdi.h:3577:5 */
 10269  type PEMRABORTPATH = uintptr          /* wingdi.h:3577:18 */
 10270  type EMRBEGINPATH = tagABORTPATH      /* wingdi.h:3577:33 */
 10271  type PEMRBEGINPATH = uintptr          /* wingdi.h:3577:46 */
 10272  type EMRENDPATH = tagABORTPATH        /* wingdi.h:3577:61 */
 10273  type PEMRENDPATH = uintptr            /* wingdi.h:3577:72 */
 10274  type EMRCLOSEFIGURE = tagABORTPATH    /* wingdi.h:3577:85 */
 10275  type PEMRCLOSEFIGURE = uintptr        /* wingdi.h:3577:100 */
 10276  type EMRFLATTENPATH = tagABORTPATH    /* wingdi.h:3577:117 */
 10277  type PEMRFLATTENPATH = uintptr        /* wingdi.h:3577:132 */
 10278  type EMRWIDENPATH = tagABORTPATH      /* wingdi.h:3577:149 */
 10279  type PEMRWIDENPATH = uintptr          /* wingdi.h:3577:162 */
 10280  type EMRSETMETARGN = tagABORTPATH     /* wingdi.h:3577:177 */
 10281  type PEMRSETMETARGN = uintptr         /* wingdi.h:3577:191 */
 10282  type EMRSAVEDC = tagABORTPATH         /* wingdi.h:3577:207 */
 10283  type PEMRSAVEDC = uintptr             /* wingdi.h:3577:217 */
 10284  type EMRREALIZEPALETTE = tagABORTPATH /* wingdi.h:3577:229 */
 10285  type PEMRREALIZEPALETTE = uintptr     /* wingdi.h:3577:247 */
 10286  
 10287  type tagEMRSELECTCLIPPATH = struct {
 10288  	emr   EMR
 10289  	iMode DWORD
 10290  } /* wingdi.h:3579:11 */
 10291  
 10292  type EMRSELECTCLIPPATH = tagEMRSELECTCLIPPATH    /* wingdi.h:3582:5 */
 10293  type PEMRSELECTCLIPPATH = uintptr                /* wingdi.h:3582:23 */
 10294  type EMRSETBKMODE = tagEMRSELECTCLIPPATH         /* wingdi.h:3582:43 */
 10295  type PEMRSETBKMODE = uintptr                     /* wingdi.h:3582:56 */
 10296  type EMRSETMAPMODE = tagEMRSELECTCLIPPATH        /* wingdi.h:3582:71 */
 10297  type PEMRSETMAPMODE = uintptr                    /* wingdi.h:3582:85 */
 10298  type EMRSETLAYOUT = tagEMRSELECTCLIPPATH         /* wingdi.h:3582:101 */
 10299  type PEMRSETLAYOUT = uintptr                     /* wingdi.h:3582:114 */
 10300  type EMRSETPOLYFILLMODE = tagEMRSELECTCLIPPATH   /* wingdi.h:3583:5 */
 10301  type PEMRSETPOLYFILLMODE = uintptr               /* wingdi.h:3583:24 */
 10302  type EMRSETROP2 = tagEMRSELECTCLIPPATH           /* wingdi.h:3583:45 */
 10303  type PEMRSETROP2 = uintptr                       /* wingdi.h:3583:56 */
 10304  type EMRSETSTRETCHBLTMODE = tagEMRSELECTCLIPPATH /* wingdi.h:3583:69 */
 10305  type PEMRSETSTRETCHBLTMODE = uintptr             /* wingdi.h:3583:90 */
 10306  type EMRSETICMMODE = tagEMRSELECTCLIPPATH        /* wingdi.h:3583:113 */
 10307  type PEMRSETICMMODE = uintptr                    /* wingdi.h:3584:5 */
 10308  type EMRSETTEXTALIGN = tagEMRSELECTCLIPPATH      /* wingdi.h:3584:21 */
 10309  type PEMRSETTEXTALIGN = uintptr                  /* wingdi.h:3584:37 */
 10310  
 10311  type tagEMRSETMITERLIMIT = struct {
 10312  	emr         EMR
 10313  	eMiterLimit FLOAT
 10314  } /* wingdi.h:3586:11 */
 10315  
 10316  type EMRSETMITERLIMIT = tagEMRSETMITERLIMIT /* wingdi.h:3589:5 */
 10317  type PEMRSETMITERLIMIT = uintptr            /* wingdi.h:3589:22 */
 10318  
 10319  type tagEMRRESTOREDC = struct {
 10320  	emr       EMR
 10321  	iRelative LONG
 10322  } /* wingdi.h:3591:11 */
 10323  
 10324  type EMRRESTOREDC = tagEMRRESTOREDC /* wingdi.h:3594:5 */
 10325  type PEMRRESTOREDC = uintptr        /* wingdi.h:3594:18 */
 10326  
 10327  type tagEMRSETARCDIRECTION = struct {
 10328  	emr           EMR
 10329  	iArcDirection DWORD
 10330  } /* wingdi.h:3596:11 */
 10331  
 10332  type EMRSETARCDIRECTION = tagEMRSETARCDIRECTION /* wingdi.h:3600:5 */
 10333  type PEMRSETARCDIRECTION = uintptr              /* wingdi.h:3600:24 */
 10334  
 10335  type tagEMRSETMAPPERFLAGS = struct {
 10336  	emr     EMR
 10337  	dwFlags DWORD
 10338  } /* wingdi.h:3602:11 */
 10339  
 10340  type EMRSETMAPPERFLAGS = tagEMRSETMAPPERFLAGS /* wingdi.h:3605:5 */
 10341  type PEMRSETMAPPERFLAGS = uintptr             /* wingdi.h:3605:23 */
 10342  
 10343  type tagEMRSETTEXTCOLOR = struct {
 10344  	emr     EMR
 10345  	crColor COLORREF
 10346  } /* wingdi.h:3607:11 */
 10347  
 10348  type EMRSETBKCOLOR = tagEMRSETTEXTCOLOR   /* wingdi.h:3610:5 */
 10349  type PEMRSETBKCOLOR = uintptr             /* wingdi.h:3610:19 */
 10350  type EMRSETTEXTCOLOR = tagEMRSETTEXTCOLOR /* wingdi.h:3610:35 */
 10351  type PEMRSETTEXTCOLOR = uintptr           /* wingdi.h:3610:51 */
 10352  
 10353  type tagEMRSELECTOBJECT = struct {
 10354  	emr      EMR
 10355  	ihObject DWORD
 10356  } /* wingdi.h:3612:11 */
 10357  
 10358  type EMRSELECTOBJECT = tagEMRSELECTOBJECT /* wingdi.h:3615:5 */
 10359  type PEMRSELECTOBJECT = uintptr           /* wingdi.h:3615:21 */
 10360  type EMRDELETEOBJECT = tagEMRSELECTOBJECT /* wingdi.h:3615:39 */
 10361  type PEMRDELETEOBJECT = uintptr           /* wingdi.h:3615:55 */
 10362  
 10363  type tagEMRSELECTPALETTE = struct {
 10364  	emr   EMR
 10365  	ihPal DWORD
 10366  } /* wingdi.h:3617:11 */
 10367  
 10368  type EMRSELECTPALETTE = tagEMRSELECTPALETTE /* wingdi.h:3620:5 */
 10369  type PEMRSELECTPALETTE = uintptr            /* wingdi.h:3620:22 */
 10370  
 10371  type tagEMRRESIZEPALETTE = struct {
 10372  	emr      EMR
 10373  	ihPal    DWORD
 10374  	cEntries DWORD
 10375  } /* wingdi.h:3622:11 */
 10376  
 10377  type EMRRESIZEPALETTE = tagEMRRESIZEPALETTE /* wingdi.h:3626:5 */
 10378  type PEMRRESIZEPALETTE = uintptr            /* wingdi.h:3626:22 */
 10379  
 10380  type tagEMRSETPALETTEENTRIES = struct {
 10381  	emr         EMR
 10382  	ihPal       DWORD
 10383  	iStart      DWORD
 10384  	cEntries    DWORD
 10385  	aPalEntries [1]PALETTEENTRY
 10386  } /* wingdi.h:3628:11 */
 10387  
 10388  type EMRSETPALETTEENTRIES = tagEMRSETPALETTEENTRIES /* wingdi.h:3634:5 */
 10389  type PEMRSETPALETTEENTRIES = uintptr                /* wingdi.h:3634:26 */
 10390  
 10391  type tagEMRSETCOLORADJUSTMENT = struct {
 10392  	emr             EMR
 10393  	ColorAdjustment COLORADJUSTMENT
 10394  } /* wingdi.h:3636:11 */
 10395  
 10396  type EMRSETCOLORADJUSTMENT = tagEMRSETCOLORADJUSTMENT /* wingdi.h:3639:5 */
 10397  type PEMRSETCOLORADJUSTMENT = uintptr                 /* wingdi.h:3639:27 */
 10398  
 10399  type tagEMRGDICOMMENT = struct {
 10400  	emr    EMR
 10401  	cbData DWORD
 10402  	Data   [1]BYTE
 10403  	_      [3]byte
 10404  } /* wingdi.h:3641:11 */
 10405  
 10406  type EMRGDICOMMENT = tagEMRGDICOMMENT /* wingdi.h:3645:5 */
 10407  type PEMRGDICOMMENT = uintptr         /* wingdi.h:3645:19 */
 10408  
 10409  type tagEMREOF = struct {
 10410  	emr           EMR
 10411  	nPalEntries   DWORD
 10412  	offPalEntries DWORD
 10413  	nSizeLast     DWORD
 10414  } /* wingdi.h:3647:11 */
 10415  
 10416  type EMREOF = tagEMREOF /* wingdi.h:3652:5 */
 10417  type PEMREOF = uintptr  /* wingdi.h:3652:12 */
 10418  
 10419  type tagEMRLINETO = struct {
 10420  	emr EMR
 10421  	ptl POINTL
 10422  } /* wingdi.h:3654:11 */
 10423  
 10424  type EMRLINETO = tagEMRLINETO   /* wingdi.h:3657:5 */
 10425  type PEMRLINETO = uintptr       /* wingdi.h:3657:15 */
 10426  type EMRMOVETOEX = tagEMRLINETO /* wingdi.h:3657:27 */
 10427  type PEMRMOVETOEX = uintptr     /* wingdi.h:3657:39 */
 10428  
 10429  type tagEMROFFSETCLIPRGN = struct {
 10430  	emr       EMR
 10431  	ptlOffset POINTL
 10432  } /* wingdi.h:3659:11 */
 10433  
 10434  type EMROFFSETCLIPRGN = tagEMROFFSETCLIPRGN /* wingdi.h:3662:5 */
 10435  type PEMROFFSETCLIPRGN = uintptr            /* wingdi.h:3662:22 */
 10436  
 10437  type tagEMRFILLPATH = struct {
 10438  	emr       EMR
 10439  	rclBounds RECTL
 10440  } /* wingdi.h:3664:11 */
 10441  
 10442  type EMRFILLPATH = tagEMRFILLPATH          /* wingdi.h:3667:5 */
 10443  type PEMRFILLPATH = uintptr                /* wingdi.h:3667:17 */
 10444  type EMRSTROKEANDFILLPATH = tagEMRFILLPATH /* wingdi.h:3667:31 */
 10445  type PEMRSTROKEANDFILLPATH = uintptr       /* wingdi.h:3667:52 */
 10446  type EMRSTROKEPATH = tagEMRFILLPATH        /* wingdi.h:3667:75 */
 10447  type PEMRSTROKEPATH = uintptr              /* wingdi.h:3667:89 */
 10448  
 10449  type tagEMREXCLUDECLIPRECT = struct {
 10450  	emr     EMR
 10451  	rclClip RECTL
 10452  } /* wingdi.h:3669:11 */
 10453  
 10454  type EMREXCLUDECLIPRECT = tagEMREXCLUDECLIPRECT   /* wingdi.h:3672:5 */
 10455  type PEMREXCLUDECLIPRECT = uintptr                /* wingdi.h:3672:24 */
 10456  type EMRINTERSECTCLIPRECT = tagEMREXCLUDECLIPRECT /* wingdi.h:3672:45 */
 10457  type PEMRINTERSECTCLIPRECT = uintptr              /* wingdi.h:3672:66 */
 10458  
 10459  type tagEMRSETVIEWPORTORGEX = struct {
 10460  	emr       EMR
 10461  	ptlOrigin POINTL
 10462  } /* wingdi.h:3674:11 */
 10463  
 10464  type EMRSETVIEWPORTORGEX = tagEMRSETVIEWPORTORGEX /* wingdi.h:3677:5 */
 10465  type PEMRSETVIEWPORTORGEX = uintptr               /* wingdi.h:3677:25 */
 10466  type EMRSETWINDOWORGEX = tagEMRSETVIEWPORTORGEX   /* wingdi.h:3677:47 */
 10467  type PEMRSETWINDOWORGEX = uintptr                 /* wingdi.h:3677:65 */
 10468  type EMRSETBRUSHORGEX = tagEMRSETVIEWPORTORGEX    /* wingdi.h:3677:85 */
 10469  type PEMRSETBRUSHORGEX = uintptr                  /* wingdi.h:3677:102 */
 10470  
 10471  type tagEMRSETVIEWPORTEXTEX = struct {
 10472  	emr       EMR
 10473  	szlExtent SIZEL
 10474  } /* wingdi.h:3679:11 */
 10475  
 10476  type EMRSETVIEWPORTEXTEX = tagEMRSETVIEWPORTEXTEX /* wingdi.h:3682:5 */
 10477  type PEMRSETVIEWPORTEXTEX = uintptr               /* wingdi.h:3682:25 */
 10478  type EMRSETWINDOWEXTEX = tagEMRSETVIEWPORTEXTEX   /* wingdi.h:3682:47 */
 10479  type PEMRSETWINDOWEXTEX = uintptr                 /* wingdi.h:3682:65 */
 10480  
 10481  type tagEMRSCALEVIEWPORTEXTEX = struct {
 10482  	emr    EMR
 10483  	xNum   LONG
 10484  	xDenom LONG
 10485  	yNum   LONG
 10486  	yDenom LONG
 10487  } /* wingdi.h:3684:11 */
 10488  
 10489  type EMRSCALEVIEWPORTEXTEX = tagEMRSCALEVIEWPORTEXTEX /* wingdi.h:3690:5 */
 10490  type PEMRSCALEVIEWPORTEXTEX = uintptr                 /* wingdi.h:3690:27 */
 10491  type EMRSCALEWINDOWEXTEX = tagEMRSCALEVIEWPORTEXTEX   /* wingdi.h:3690:51 */
 10492  type PEMRSCALEWINDOWEXTEX = uintptr                   /* wingdi.h:3690:71 */
 10493  
 10494  type tagEMRSETWORLDTRANSFORM = struct {
 10495  	emr   EMR
 10496  	xform XFORM
 10497  } /* wingdi.h:3692:11 */
 10498  
 10499  type EMRSETWORLDTRANSFORM = tagEMRSETWORLDTRANSFORM /* wingdi.h:3695:5 */
 10500  type PEMRSETWORLDTRANSFORM = uintptr                /* wingdi.h:3695:26 */
 10501  
 10502  type tagEMRMODIFYWORLDTRANSFORM = struct {
 10503  	emr   EMR
 10504  	xform XFORM
 10505  	iMode DWORD
 10506  } /* wingdi.h:3697:11 */
 10507  
 10508  type EMRMODIFYWORLDTRANSFORM = tagEMRMODIFYWORLDTRANSFORM /* wingdi.h:3701:5 */
 10509  type PEMRMODIFYWORLDTRANSFORM = uintptr                   /* wingdi.h:3701:29 */
 10510  
 10511  type tagEMRSETPIXELV = struct {
 10512  	emr      EMR
 10513  	ptlPixel POINTL
 10514  	crColor  COLORREF
 10515  } /* wingdi.h:3703:11 */
 10516  
 10517  type EMRSETPIXELV = tagEMRSETPIXELV /* wingdi.h:3707:5 */
 10518  type PEMRSETPIXELV = uintptr        /* wingdi.h:3707:18 */
 10519  
 10520  type tagEMREXTFLOODFILL = struct {
 10521  	emr      EMR
 10522  	ptlStart POINTL
 10523  	crColor  COLORREF
 10524  	iMode    DWORD
 10525  } /* wingdi.h:3709:11 */
 10526  
 10527  type EMREXTFLOODFILL = tagEMREXTFLOODFILL /* wingdi.h:3714:5 */
 10528  type PEMREXTFLOODFILL = uintptr           /* wingdi.h:3714:21 */
 10529  
 10530  type tagEMRELLIPSE = struct {
 10531  	emr    EMR
 10532  	rclBox RECTL
 10533  } /* wingdi.h:3716:11 */
 10534  
 10535  type EMRELLIPSE = tagEMRELLIPSE   /* wingdi.h:3719:5 */
 10536  type PEMRELLIPSE = uintptr        /* wingdi.h:3719:16 */
 10537  type EMRRECTANGLE = tagEMRELLIPSE /* wingdi.h:3719:29 */
 10538  type PEMRRECTANGLE = uintptr      /* wingdi.h:3719:42 */
 10539  
 10540  type tagEMRROUNDRECT = struct {
 10541  	emr       EMR
 10542  	rclBox    RECTL
 10543  	szlCorner SIZEL
 10544  } /* wingdi.h:3721:11 */
 10545  
 10546  type EMRROUNDRECT = tagEMRROUNDRECT /* wingdi.h:3725:5 */
 10547  type PEMRROUNDRECT = uintptr        /* wingdi.h:3725:18 */
 10548  
 10549  type tagEMRARC = struct {
 10550  	emr      EMR
 10551  	rclBox   RECTL
 10552  	ptlStart POINTL
 10553  	ptlEnd   POINTL
 10554  } /* wingdi.h:3727:11 */
 10555  
 10556  type EMRARC = tagEMRARC   /* wingdi.h:3732:5 */
 10557  type PEMRARC = uintptr    /* wingdi.h:3732:12 */
 10558  type EMRARCTO = tagEMRARC /* wingdi.h:3732:21 */
 10559  type PEMRARCTO = uintptr  /* wingdi.h:3732:30 */
 10560  type EMRCHORD = tagEMRARC /* wingdi.h:3732:41 */
 10561  type PEMRCHORD = uintptr  /* wingdi.h:3732:50 */
 10562  type EMRPIE = tagEMRARC   /* wingdi.h:3732:61 */
 10563  type PEMRPIE = uintptr    /* wingdi.h:3732:68 */
 10564  
 10565  type tagEMRANGLEARC = struct {
 10566  	emr         EMR
 10567  	ptlCenter   POINTL
 10568  	nRadius     DWORD
 10569  	eStartAngle FLOAT
 10570  	eSweepAngle FLOAT
 10571  } /* wingdi.h:3734:11 */
 10572  
 10573  type EMRANGLEARC = tagEMRANGLEARC /* wingdi.h:3740:5 */
 10574  type PEMRANGLEARC = uintptr       /* wingdi.h:3740:17 */
 10575  
 10576  type tagEMRPOLYLINE = struct {
 10577  	emr       EMR
 10578  	rclBounds RECTL
 10579  	cptl      DWORD
 10580  	aptl      [1]POINTL
 10581  } /* wingdi.h:3742:11 */
 10582  
 10583  type EMRPOLYLINE = tagEMRPOLYLINE     /* wingdi.h:3747:5 */
 10584  type PEMRPOLYLINE = uintptr           /* wingdi.h:3747:17 */
 10585  type EMRPOLYBEZIER = tagEMRPOLYLINE   /* wingdi.h:3747:31 */
 10586  type PEMRPOLYBEZIER = uintptr         /* wingdi.h:3747:45 */
 10587  type EMRPOLYGON = tagEMRPOLYLINE      /* wingdi.h:3747:61 */
 10588  type PEMRPOLYGON = uintptr            /* wingdi.h:3747:72 */
 10589  type EMRPOLYBEZIERTO = tagEMRPOLYLINE /* wingdi.h:3747:85 */
 10590  type PEMRPOLYBEZIERTO = uintptr       /* wingdi.h:3747:101 */
 10591  type EMRPOLYLINETO = tagEMRPOLYLINE   /* wingdi.h:3747:119 */
 10592  type PEMRPOLYLINETO = uintptr         /* wingdi.h:3747:133 */
 10593  
 10594  type tagEMRPOLYLINE16 = struct {
 10595  	emr       EMR
 10596  	rclBounds RECTL
 10597  	cpts      DWORD
 10598  	apts      [1]POINTS
 10599  } /* wingdi.h:3749:11 */
 10600  
 10601  type EMRPOLYLINE16 = tagEMRPOLYLINE16     /* wingdi.h:3754:5 */
 10602  type PEMRPOLYLINE16 = uintptr             /* wingdi.h:3754:19 */
 10603  type EMRPOLYBEZIER16 = tagEMRPOLYLINE16   /* wingdi.h:3754:35 */
 10604  type PEMRPOLYBEZIER16 = uintptr           /* wingdi.h:3754:51 */
 10605  type EMRPOLYGON16 = tagEMRPOLYLINE16      /* wingdi.h:3754:69 */
 10606  type PEMRPOLYGON16 = uintptr              /* wingdi.h:3754:82 */
 10607  type EMRPOLYBEZIERTO16 = tagEMRPOLYLINE16 /* wingdi.h:3754:97 */
 10608  type PEMRPOLYBEZIERTO16 = uintptr         /* wingdi.h:3754:115 */
 10609  type EMRPOLYLINETO16 = tagEMRPOLYLINE16   /* wingdi.h:3754:135 */
 10610  type PEMRPOLYLINETO16 = uintptr           /* wingdi.h:3754:151 */
 10611  
 10612  type tagEMRPOLYDRAW = struct {
 10613  	emr       EMR
 10614  	rclBounds RECTL
 10615  	cptl      DWORD
 10616  	aptl      [1]POINTL
 10617  	abTypes   [1]BYTE
 10618  	_         [3]byte
 10619  } /* wingdi.h:3756:11 */
 10620  
 10621  type EMRPOLYDRAW = tagEMRPOLYDRAW /* wingdi.h:3762:5 */
 10622  type PEMRPOLYDRAW = uintptr       /* wingdi.h:3762:17 */
 10623  
 10624  type tagEMRPOLYDRAW16 = struct {
 10625  	emr       EMR
 10626  	rclBounds RECTL
 10627  	cpts      DWORD
 10628  	apts      [1]POINTS
 10629  	abTypes   [1]BYTE
 10630  	_         [3]byte
 10631  } /* wingdi.h:3764:11 */
 10632  
 10633  type EMRPOLYDRAW16 = tagEMRPOLYDRAW16 /* wingdi.h:3770:5 */
 10634  type PEMRPOLYDRAW16 = uintptr         /* wingdi.h:3770:19 */
 10635  
 10636  type tagEMRPOLYPOLYLINE = struct {
 10637  	emr         EMR
 10638  	rclBounds   RECTL
 10639  	nPolys      DWORD
 10640  	cptl        DWORD
 10641  	aPolyCounts [1]DWORD
 10642  	aptl        [1]POINTL
 10643  } /* wingdi.h:3772:11 */
 10644  
 10645  type EMRPOLYPOLYLINE = tagEMRPOLYPOLYLINE /* wingdi.h:3779:5 */
 10646  type PEMRPOLYPOLYLINE = uintptr           /* wingdi.h:3779:21 */
 10647  type EMRPOLYPOLYGON = tagEMRPOLYPOLYLINE  /* wingdi.h:3779:39 */
 10648  type PEMRPOLYPOLYGON = uintptr            /* wingdi.h:3779:54 */
 10649  
 10650  type tagEMRPOLYPOLYLINE16 = struct {
 10651  	emr         EMR
 10652  	rclBounds   RECTL
 10653  	nPolys      DWORD
 10654  	cpts        DWORD
 10655  	aPolyCounts [1]DWORD
 10656  	apts        [1]POINTS
 10657  } /* wingdi.h:3781:11 */
 10658  
 10659  type EMRPOLYPOLYLINE16 = tagEMRPOLYPOLYLINE16 /* wingdi.h:3788:5 */
 10660  type PEMRPOLYPOLYLINE16 = uintptr             /* wingdi.h:3788:23 */
 10661  type EMRPOLYPOLYGON16 = tagEMRPOLYPOLYLINE16  /* wingdi.h:3788:43 */
 10662  type PEMRPOLYPOLYGON16 = uintptr              /* wingdi.h:3788:60 */
 10663  
 10664  type tagEMRINVERTRGN = struct {
 10665  	emr       EMR
 10666  	rclBounds RECTL
 10667  	cbRgnData DWORD
 10668  	RgnData   [1]BYTE
 10669  	_         [3]byte
 10670  } /* wingdi.h:3790:11 */
 10671  
 10672  type EMRINVERTRGN = tagEMRINVERTRGN /* wingdi.h:3795:5 */
 10673  type PEMRINVERTRGN = uintptr        /* wingdi.h:3795:18 */
 10674  type EMRPAINTRGN = tagEMRINVERTRGN  /* wingdi.h:3795:33 */
 10675  type PEMRPAINTRGN = uintptr         /* wingdi.h:3795:45 */
 10676  
 10677  type tagEMRFILLRGN = struct {
 10678  	emr       EMR
 10679  	rclBounds RECTL
 10680  	cbRgnData DWORD
 10681  	ihBrush   DWORD
 10682  	RgnData   [1]BYTE
 10683  	_         [3]byte
 10684  } /* wingdi.h:3797:11 */
 10685  
 10686  type EMRFILLRGN = tagEMRFILLRGN /* wingdi.h:3803:5 */
 10687  type PEMRFILLRGN = uintptr      /* wingdi.h:3803:16 */
 10688  
 10689  type tagEMRFRAMERGN = struct {
 10690  	emr       EMR
 10691  	rclBounds RECTL
 10692  	cbRgnData DWORD
 10693  	ihBrush   DWORD
 10694  	szlStroke SIZEL
 10695  	RgnData   [1]BYTE
 10696  	_         [3]byte
 10697  } /* wingdi.h:3805:11 */
 10698  
 10699  type EMRFRAMERGN = tagEMRFRAMERGN /* wingdi.h:3812:5 */
 10700  type PEMRFRAMERGN = uintptr       /* wingdi.h:3812:17 */
 10701  
 10702  type tagEMREXTSELECTCLIPRGN = struct {
 10703  	emr       EMR
 10704  	cbRgnData DWORD
 10705  	iMode     DWORD
 10706  	RgnData   [1]BYTE
 10707  	_         [3]byte
 10708  } /* wingdi.h:3814:11 */
 10709  
 10710  type EMREXTSELECTCLIPRGN = tagEMREXTSELECTCLIPRGN /* wingdi.h:3819:5 */
 10711  type PEMREXTSELECTCLIPRGN = uintptr               /* wingdi.h:3819:25 */
 10712  
 10713  type tagEMREXTTEXTOUTA = struct {
 10714  	emr           EMR
 10715  	rclBounds     RECTL
 10716  	iGraphicsMode DWORD
 10717  	exScale       FLOAT
 10718  	eyScale       FLOAT
 10719  	emrtext       EMRTEXT
 10720  } /* wingdi.h:3821:11 */
 10721  
 10722  type EMREXTTEXTOUTA = tagEMREXTTEXTOUTA /* wingdi.h:3828:5 */
 10723  type PEMREXTTEXTOUTA = uintptr          /* wingdi.h:3828:20 */
 10724  type EMREXTTEXTOUTW = tagEMREXTTEXTOUTA /* wingdi.h:3828:37 */
 10725  type PEMREXTTEXTOUTW = uintptr          /* wingdi.h:3828:52 */
 10726  
 10727  type tagEMRPOLYTEXTOUTA = struct {
 10728  	emr           EMR
 10729  	rclBounds     RECTL
 10730  	iGraphicsMode DWORD
 10731  	exScale       FLOAT
 10732  	eyScale       FLOAT
 10733  	cStrings      LONG
 10734  	aemrtext      [1]EMRTEXT
 10735  } /* wingdi.h:3830:11 */
 10736  
 10737  type EMRPOLYTEXTOUTA = tagEMRPOLYTEXTOUTA /* wingdi.h:3838:5 */
 10738  type PEMRPOLYTEXTOUTA = uintptr           /* wingdi.h:3838:21 */
 10739  type EMRPOLYTEXTOUTW = tagEMRPOLYTEXTOUTA /* wingdi.h:3838:39 */
 10740  type PEMRPOLYTEXTOUTW = uintptr           /* wingdi.h:3838:55 */
 10741  
 10742  type tagEMRBITBLT = struct {
 10743  	emr          EMR
 10744  	rclBounds    RECTL
 10745  	xDest        LONG
 10746  	yDest        LONG
 10747  	cxDest       LONG
 10748  	cyDest       LONG
 10749  	dwRop        DWORD
 10750  	xSrc         LONG
 10751  	ySrc         LONG
 10752  	xformSrc     XFORM
 10753  	crBkColorSrc COLORREF
 10754  	iUsageSrc    DWORD
 10755  	offBmiSrc    DWORD
 10756  	cbBmiSrc     DWORD
 10757  	offBitsSrc   DWORD
 10758  	cbBitsSrc    DWORD
 10759  } /* wingdi.h:3840:11 */
 10760  
 10761  type EMRBITBLT = tagEMRBITBLT /* wingdi.h:3857:5 */
 10762  type PEMRBITBLT = uintptr     /* wingdi.h:3857:15 */
 10763  
 10764  type tagEMRSTRETCHBLT = struct {
 10765  	emr          EMR
 10766  	rclBounds    RECTL
 10767  	xDest        LONG
 10768  	yDest        LONG
 10769  	cxDest       LONG
 10770  	cyDest       LONG
 10771  	dwRop        DWORD
 10772  	xSrc         LONG
 10773  	ySrc         LONG
 10774  	xformSrc     XFORM
 10775  	crBkColorSrc COLORREF
 10776  	iUsageSrc    DWORD
 10777  	offBmiSrc    DWORD
 10778  	cbBmiSrc     DWORD
 10779  	offBitsSrc   DWORD
 10780  	cbBitsSrc    DWORD
 10781  	cxSrc        LONG
 10782  	cySrc        LONG
 10783  } /* wingdi.h:3859:11 */
 10784  
 10785  type EMRSTRETCHBLT = tagEMRSTRETCHBLT /* wingdi.h:3878:5 */
 10786  type PEMRSTRETCHBLT = uintptr         /* wingdi.h:3878:19 */
 10787  
 10788  type tagEMRMASKBLT = struct {
 10789  	emr          EMR
 10790  	rclBounds    RECTL
 10791  	xDest        LONG
 10792  	yDest        LONG
 10793  	cxDest       LONG
 10794  	cyDest       LONG
 10795  	dwRop        DWORD
 10796  	xSrc         LONG
 10797  	ySrc         LONG
 10798  	xformSrc     XFORM
 10799  	crBkColorSrc COLORREF
 10800  	iUsageSrc    DWORD
 10801  	offBmiSrc    DWORD
 10802  	cbBmiSrc     DWORD
 10803  	offBitsSrc   DWORD
 10804  	cbBitsSrc    DWORD
 10805  	xMask        LONG
 10806  	yMask        LONG
 10807  	iUsageMask   DWORD
 10808  	offBmiMask   DWORD
 10809  	cbBmiMask    DWORD
 10810  	offBitsMask  DWORD
 10811  	cbBitsMask   DWORD
 10812  } /* wingdi.h:3880:11 */
 10813  
 10814  type EMRMASKBLT = tagEMRMASKBLT /* wingdi.h:3904:5 */
 10815  type PEMRMASKBLT = uintptr      /* wingdi.h:3904:16 */
 10816  
 10817  type tagEMRPLGBLT = struct {
 10818  	emr          EMR
 10819  	rclBounds    RECTL
 10820  	aptlDest     [3]POINTL
 10821  	xSrc         LONG
 10822  	ySrc         LONG
 10823  	cxSrc        LONG
 10824  	cySrc        LONG
 10825  	xformSrc     XFORM
 10826  	crBkColorSrc COLORREF
 10827  	iUsageSrc    DWORD
 10828  	offBmiSrc    DWORD
 10829  	cbBmiSrc     DWORD
 10830  	offBitsSrc   DWORD
 10831  	cbBitsSrc    DWORD
 10832  	xMask        LONG
 10833  	yMask        LONG
 10834  	iUsageMask   DWORD
 10835  	offBmiMask   DWORD
 10836  	cbBmiMask    DWORD
 10837  	offBitsMask  DWORD
 10838  	cbBitsMask   DWORD
 10839  } /* wingdi.h:3906:11 */
 10840  
 10841  type EMRPLGBLT = tagEMRPLGBLT /* wingdi.h:3928:5 */
 10842  type PEMRPLGBLT = uintptr     /* wingdi.h:3928:15 */
 10843  
 10844  type tagEMRSETDIBITSTODEVICE = struct {
 10845  	emr        EMR
 10846  	rclBounds  RECTL
 10847  	xDest      LONG
 10848  	yDest      LONG
 10849  	xSrc       LONG
 10850  	ySrc       LONG
 10851  	cxSrc      LONG
 10852  	cySrc      LONG
 10853  	offBmiSrc  DWORD
 10854  	cbBmiSrc   DWORD
 10855  	offBitsSrc DWORD
 10856  	cbBitsSrc  DWORD
 10857  	iUsageSrc  DWORD
 10858  	iStartScan DWORD
 10859  	cScans     DWORD
 10860  } /* wingdi.h:3930:11 */
 10861  
 10862  type EMRSETDIBITSTODEVICE = tagEMRSETDIBITSTODEVICE /* wingdi.h:3946:5 */
 10863  type PEMRSETDIBITSTODEVICE = uintptr                /* wingdi.h:3946:26 */
 10864  
 10865  type tagEMRSTRETCHDIBITS = struct {
 10866  	emr        EMR
 10867  	rclBounds  RECTL
 10868  	xDest      LONG
 10869  	yDest      LONG
 10870  	xSrc       LONG
 10871  	ySrc       LONG
 10872  	cxSrc      LONG
 10873  	cySrc      LONG
 10874  	offBmiSrc  DWORD
 10875  	cbBmiSrc   DWORD
 10876  	offBitsSrc DWORD
 10877  	cbBitsSrc  DWORD
 10878  	iUsageSrc  DWORD
 10879  	dwRop      DWORD
 10880  	cxDest     LONG
 10881  	cyDest     LONG
 10882  } /* wingdi.h:3948:11 */
 10883  
 10884  type EMRSTRETCHDIBITS = tagEMRSTRETCHDIBITS /* wingdi.h:3965:5 */
 10885  type PEMRSTRETCHDIBITS = uintptr            /* wingdi.h:3965:22 */
 10886  
 10887  type tagEMREXTCREATEFONTINDIRECTW = struct {
 10888  	emr    EMR
 10889  	ihFont DWORD
 10890  	elfw   EXTLOGFONTW
 10891  } /* wingdi.h:3967:11 */
 10892  
 10893  type EMREXTCREATEFONTINDIRECTW = tagEMREXTCREATEFONTINDIRECTW /* wingdi.h:3971:5 */
 10894  type PEMREXTCREATEFONTINDIRECTW = uintptr                     /* wingdi.h:3971:31 */
 10895  
 10896  type tagEMRCREATEPALETTE = struct {
 10897  	emr   EMR
 10898  	ihPal DWORD
 10899  	lgpl  LOGPALETTE
 10900  } /* wingdi.h:3973:11 */
 10901  
 10902  type EMRCREATEPALETTE = tagEMRCREATEPALETTE /* wingdi.h:3977:5 */
 10903  type PEMRCREATEPALETTE = uintptr            /* wingdi.h:3977:22 */
 10904  
 10905  type tagEMRCREATEPEN = struct {
 10906  	emr   EMR
 10907  	ihPen DWORD
 10908  	lopn  LOGPEN
 10909  } /* wingdi.h:3979:11 */
 10910  
 10911  type EMRCREATEPEN = tagEMRCREATEPEN /* wingdi.h:3983:5 */
 10912  type PEMRCREATEPEN = uintptr        /* wingdi.h:3983:18 */
 10913  
 10914  type tagEMREXTCREATEPEN = struct {
 10915  	emr     EMR
 10916  	ihPen   DWORD
 10917  	offBmi  DWORD
 10918  	cbBmi   DWORD
 10919  	offBits DWORD
 10920  	cbBits  DWORD
 10921  	elp     EXTLOGPEN
 10922  } /* wingdi.h:3985:11 */
 10923  
 10924  type EMREXTCREATEPEN = tagEMREXTCREATEPEN /* wingdi.h:3993:5 */
 10925  type PEMREXTCREATEPEN = uintptr           /* wingdi.h:3993:21 */
 10926  
 10927  type tagEMRCREATEBRUSHINDIRECT = struct {
 10928  	emr     EMR
 10929  	ihBrush DWORD
 10930  	lb      LOGBRUSH32
 10931  } /* wingdi.h:3995:11 */
 10932  
 10933  type EMRCREATEBRUSHINDIRECT = tagEMRCREATEBRUSHINDIRECT /* wingdi.h:3999:5 */
 10934  type PEMRCREATEBRUSHINDIRECT = uintptr                  /* wingdi.h:3999:28 */
 10935  
 10936  type tagEMRCREATEMONOBRUSH = struct {
 10937  	emr     EMR
 10938  	ihBrush DWORD
 10939  	iUsage  DWORD
 10940  	offBmi  DWORD
 10941  	cbBmi   DWORD
 10942  	offBits DWORD
 10943  	cbBits  DWORD
 10944  } /* wingdi.h:4001:11 */
 10945  
 10946  type EMRCREATEMONOBRUSH = tagEMRCREATEMONOBRUSH /* wingdi.h:4009:5 */
 10947  type PEMRCREATEMONOBRUSH = uintptr              /* wingdi.h:4009:24 */
 10948  
 10949  type tagEMRCREATEDIBPATTERNBRUSHPT = struct {
 10950  	emr     EMR
 10951  	ihBrush DWORD
 10952  	iUsage  DWORD
 10953  	offBmi  DWORD
 10954  	cbBmi   DWORD
 10955  	offBits DWORD
 10956  	cbBits  DWORD
 10957  } /* wingdi.h:4011:11 */
 10958  
 10959  type EMRCREATEDIBPATTERNBRUSHPT = tagEMRCREATEDIBPATTERNBRUSHPT /* wingdi.h:4019:5 */
 10960  type PEMRCREATEDIBPATTERNBRUSHPT = uintptr                      /* wingdi.h:4019:32 */
 10961  
 10962  type tagEMRFORMAT = struct {
 10963  	dSignature DWORD
 10964  	nVersion   DWORD
 10965  	cbData     DWORD
 10966  	offData    DWORD
 10967  } /* wingdi.h:4021:11 */
 10968  
 10969  type EMRFORMAT = tagEMRFORMAT /* wingdi.h:4026:5 */
 10970  type PEMRFORMAT = uintptr     /* wingdi.h:4026:15 */
 10971  
 10972  type tagEMRGLSRECORD = struct {
 10973  	emr    EMR
 10974  	cbData DWORD
 10975  	Data   [1]BYTE
 10976  	_      [3]byte
 10977  } /* wingdi.h:4028:11 */
 10978  
 10979  type EMRGLSRECORD = tagEMRGLSRECORD /* wingdi.h:4032:5 */
 10980  type PEMRGLSRECORD = uintptr        /* wingdi.h:4032:18 */
 10981  
 10982  type tagEMRGLSBOUNDEDRECORD = struct {
 10983  	emr       EMR
 10984  	rclBounds RECTL
 10985  	cbData    DWORD
 10986  	Data      [1]BYTE
 10987  	_         [3]byte
 10988  } /* wingdi.h:4034:11 */
 10989  
 10990  type EMRGLSBOUNDEDRECORD = tagEMRGLSBOUNDEDRECORD /* wingdi.h:4039:5 */
 10991  type PEMRGLSBOUNDEDRECORD = uintptr               /* wingdi.h:4039:25 */
 10992  
 10993  type tagEMRPIXELFORMAT = struct {
 10994  	emr EMR
 10995  	pfd PIXELFORMATDESCRIPTOR
 10996  } /* wingdi.h:4041:11 */
 10997  
 10998  type EMRPIXELFORMAT = tagEMRPIXELFORMAT /* wingdi.h:4044:5 */
 10999  type PEMRPIXELFORMAT = uintptr          /* wingdi.h:4044:20 */
 11000  
 11001  type tagEMRCREATECOLORSPACE = struct {
 11002  	emr  EMR
 11003  	ihCS DWORD
 11004  	lcs  LOGCOLORSPACEA
 11005  } /* wingdi.h:4046:11 */
 11006  
 11007  type EMRCREATECOLORSPACE = tagEMRCREATECOLORSPACE /* wingdi.h:4050:5 */
 11008  type PEMRCREATECOLORSPACE = uintptr               /* wingdi.h:4050:25 */
 11009  
 11010  type tagEMRSETCOLORSPACE = struct {
 11011  	emr  EMR
 11012  	ihCS DWORD
 11013  } /* wingdi.h:4052:11 */
 11014  
 11015  type EMRSETCOLORSPACE = tagEMRSETCOLORSPACE    /* wingdi.h:4055:5 */
 11016  type PEMRSETCOLORSPACE = uintptr               /* wingdi.h:4055:22 */
 11017  type EMRSELECTCOLORSPACE = tagEMRSETCOLORSPACE /* wingdi.h:4055:41 */
 11018  type PEMRSELECTCOLORSPACE = uintptr            /* wingdi.h:4055:61 */
 11019  type EMRDELETECOLORSPACE = tagEMRSETCOLORSPACE /* wingdi.h:4055:83 */
 11020  type PEMRDELETECOLORSPACE = uintptr            /* wingdi.h:4055:103 */
 11021  
 11022  type tagEMREXTESCAPE = struct {
 11023  	emr       EMR
 11024  	iEscape   INT
 11025  	cbEscData INT
 11026  	EscData   [1]BYTE
 11027  	_         [3]byte
 11028  } /* wingdi.h:4057:11 */
 11029  
 11030  type EMREXTESCAPE = tagEMREXTESCAPE  /* wingdi.h:4062:5 */
 11031  type PEMREXTESCAPE = uintptr         /* wingdi.h:4062:18 */
 11032  type EMRDRAWESCAPE = tagEMREXTESCAPE /* wingdi.h:4062:33 */
 11033  type PEMRDRAWESCAPE = uintptr        /* wingdi.h:4062:47 */
 11034  
 11035  type tagEMRNAMEDESCAPE = struct {
 11036  	emr       EMR
 11037  	iEscape   INT
 11038  	cbDriver  INT
 11039  	cbEscData INT
 11040  	EscData   [1]BYTE
 11041  	_         [3]byte
 11042  } /* wingdi.h:4064:11 */
 11043  
 11044  type EMRNAMEDESCAPE = tagEMRNAMEDESCAPE /* wingdi.h:4070:5 */
 11045  type PEMRNAMEDESCAPE = uintptr          /* wingdi.h:4070:20 */
 11046  
 11047  type tagEMRSETICMPROFILE = struct {
 11048  	emr     EMR
 11049  	dwFlags DWORD
 11050  	cbName  DWORD
 11051  	cbData  DWORD
 11052  	Data    [1]BYTE
 11053  	_       [3]byte
 11054  } /* wingdi.h:4074:11 */
 11055  
 11056  type EMRSETICMPROFILE = tagEMRSETICMPROFILE  /* wingdi.h:4080:5 */
 11057  type PEMRSETICMPROFILE = uintptr             /* wingdi.h:4080:22 */
 11058  type EMRSETICMPROFILEA = tagEMRSETICMPROFILE /* wingdi.h:4080:41 */
 11059  type PEMRSETICMPROFILEA = uintptr            /* wingdi.h:4080:59 */
 11060  type EMRSETICMPROFILEW = tagEMRSETICMPROFILE /* wingdi.h:4080:79 */
 11061  type PEMRSETICMPROFILEW = uintptr            /* wingdi.h:4080:97 */
 11062  
 11063  type tagEMRCREATECOLORSPACEW = struct {
 11064  	emr     EMR
 11065  	ihCS    DWORD
 11066  	lcs     LOGCOLORSPACEW
 11067  	dwFlags DWORD
 11068  	cbData  DWORD
 11069  	Data    [1]BYTE
 11070  	_       [3]byte
 11071  } /* wingdi.h:4084:11 */
 11072  
 11073  type EMRCREATECOLORSPACEW = tagEMRCREATECOLORSPACEW /* wingdi.h:4091:5 */
 11074  type PEMRCREATECOLORSPACEW = uintptr                /* wingdi.h:4091:26 */
 11075  
 11076  type tagCOLORMATCHTOTARGET = struct {
 11077  	emr      EMR
 11078  	dwAction DWORD
 11079  	dwFlags  DWORD
 11080  	cbName   DWORD
 11081  	cbData   DWORD
 11082  	Data     [1]BYTE
 11083  	_        [3]byte
 11084  } /* wingdi.h:4095:11 */
 11085  
 11086  type EMRCOLORMATCHTOTARGET = tagCOLORMATCHTOTARGET /* wingdi.h:4102:5 */
 11087  type PEMRCOLORMATCHTOTARGET = uintptr              /* wingdi.h:4102:27 */
 11088  
 11089  type tagCOLORCORRECTPALETTE = struct {
 11090  	emr         EMR
 11091  	ihPalette   DWORD
 11092  	nFirstEntry DWORD
 11093  	nPalEntries DWORD
 11094  	nReserved   DWORD
 11095  } /* wingdi.h:4104:11 */
 11096  
 11097  type EMRCOLORCORRECTPALETTE = tagCOLORCORRECTPALETTE /* wingdi.h:4110:5 */
 11098  type PEMRCOLORCORRECTPALETTE = uintptr               /* wingdi.h:4110:28 */
 11099  
 11100  type tagEMRALPHABLEND = struct {
 11101  	emr          EMR
 11102  	rclBounds    RECTL
 11103  	xDest        LONG
 11104  	yDest        LONG
 11105  	cxDest       LONG
 11106  	cyDest       LONG
 11107  	dwRop        DWORD
 11108  	xSrc         LONG
 11109  	ySrc         LONG
 11110  	xformSrc     XFORM
 11111  	crBkColorSrc COLORREF
 11112  	iUsageSrc    DWORD
 11113  	offBmiSrc    DWORD
 11114  	cbBmiSrc     DWORD
 11115  	offBitsSrc   DWORD
 11116  	cbBitsSrc    DWORD
 11117  	cxSrc        LONG
 11118  	cySrc        LONG
 11119  } /* wingdi.h:4112:11 */
 11120  
 11121  type EMRALPHABLEND = tagEMRALPHABLEND /* wingdi.h:4131:5 */
 11122  type PEMRALPHABLEND = uintptr         /* wingdi.h:4131:19 */
 11123  
 11124  type tagEMRGRADIENTFILL = struct {
 11125  	emr       EMR
 11126  	rclBounds RECTL
 11127  	nVer      DWORD
 11128  	nTri      DWORD
 11129  	ulMode    ULONG
 11130  	Ver       [1]TRIVERTEX
 11131  } /* wingdi.h:4133:11 */
 11132  
 11133  type EMRGRADIENTFILL = tagEMRGRADIENTFILL /* wingdi.h:4140:5 */
 11134  type PEMRGRADIENTFILL = uintptr           /* wingdi.h:4140:21 */
 11135  
 11136  type tagEMRTRANSPARENTBLT = struct {
 11137  	emr          EMR
 11138  	rclBounds    RECTL
 11139  	xDest        LONG
 11140  	yDest        LONG
 11141  	cxDest       LONG
 11142  	cyDest       LONG
 11143  	dwRop        DWORD
 11144  	xSrc         LONG
 11145  	ySrc         LONG
 11146  	xformSrc     XFORM
 11147  	crBkColorSrc COLORREF
 11148  	iUsageSrc    DWORD
 11149  	offBmiSrc    DWORD
 11150  	cbBmiSrc     DWORD
 11151  	offBitsSrc   DWORD
 11152  	cbBitsSrc    DWORD
 11153  	cxSrc        LONG
 11154  	cySrc        LONG
 11155  } /* wingdi.h:4142:11 */
 11156  
 11157  type EMRTRANSPARENTBLT = tagEMRTRANSPARENTBLT /* wingdi.h:4161:5 */
 11158  type PEMRTRANSPARENTBLT = uintptr             /* wingdi.h:4161:23 */
 11159  
 11160  type _POINTFLOAT = struct {
 11161  	x FLOAT
 11162  	y FLOAT
 11163  } /* wingdi.h:4188:11 */
 11164  
 11165  type POINTFLOAT = _POINTFLOAT /* wingdi.h:4191:5 */
 11166  type PPOINTFLOAT = uintptr    /* wingdi.h:4191:16 */
 11167  
 11168  type _GLYPHMETRICSFLOAT = struct {
 11169  	gmfBlackBoxX     FLOAT
 11170  	gmfBlackBoxY     FLOAT
 11171  	gmfptGlyphOrigin POINTFLOAT
 11172  	gmfCellIncX      FLOAT
 11173  	gmfCellIncY      FLOAT
 11174  } /* wingdi.h:4193:11 */
 11175  
 11176  type GLYPHMETRICSFLOAT = _GLYPHMETRICSFLOAT /* wingdi.h:4199:5 */
 11177  type PGLYPHMETRICSFLOAT = uintptr           /* wingdi.h:4199:23 */
 11178  type LPGLYPHMETRICSFLOAT = uintptr          /* wingdi.h:4199:43 */
 11179  
 11180  type tagLAYERPLANEDESCRIPTOR = struct {
 11181  	nSize           WORD
 11182  	nVersion        WORD
 11183  	dwFlags         DWORD
 11184  	iPixelType      BYTE
 11185  	cColorBits      BYTE
 11186  	cRedBits        BYTE
 11187  	cRedShift       BYTE
 11188  	cGreenBits      BYTE
 11189  	cGreenShift     BYTE
 11190  	cBlueBits       BYTE
 11191  	cBlueShift      BYTE
 11192  	cAlphaBits      BYTE
 11193  	cAlphaShift     BYTE
 11194  	cAccumBits      BYTE
 11195  	cAccumRedBits   BYTE
 11196  	cAccumGreenBits BYTE
 11197  	cAccumBlueBits  BYTE
 11198  	cAccumAlphaBits BYTE
 11199  	cDepthBits      BYTE
 11200  	cStencilBits    BYTE
 11201  	cAuxBuffers     BYTE
 11202  	iLayerPlane     BYTE
 11203  	bReserved       BYTE
 11204  	crTransparent   COLORREF
 11205  } /* wingdi.h:4209:11 */
 11206  
 11207  type LAYERPLANEDESCRIPTOR = tagLAYERPLANEDESCRIPTOR /* wingdi.h:4234:5 */
 11208  type PLAYERPLANEDESCRIPTOR = uintptr                /* wingdi.h:4234:26 */
 11209  type LPLAYERPLANEDESCRIPTOR = uintptr               /* wingdi.h:4234:49 */
 11210  
 11211  type _WGLSWAP = struct {
 11212  	hdc     HDC
 11213  	uiFlags UINT
 11214  } /* wingdi.h:4288:11 */
 11215  
 11216  type WGLSWAP = _WGLSWAP  /* wingdi.h:4291:5 */
 11217  type PWGLSWAP = uintptr  /* wingdi.h:4291:13 */
 11218  type LPWGLSWAP = uintptr /* wingdi.h:4291:23 */
 11219  
 11220  // *
 11221  // This file is part of the mingw-w64 runtime package.
 11222  // No warranty is given; refer to the file DISCLAIMER within this package.
 11223  
 11224  // *
 11225  // This file is part of the mingw-w64 runtime package.
 11226  // No warranty is given; refer to the file DISCLAIMER within this package.
 11227  
 11228  // *
 11229  // This file has no copyright assigned and is placed in the Public Domain.
 11230  // This file is part of the mingw-w64 runtime package.
 11231  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 11232  
 11233  // *
 11234  // This file is part of the mingw-w64 runtime package.
 11235  // No warranty is given; refer to the file DISCLAIMER within this package.
 11236  
 11237  // *
 11238  // This file has no copyright assigned and is placed in the Public Domain.
 11239  // This file is part of the mingw-w64 runtime package.
 11240  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 11241  
 11242  // Copyright (C) 1989, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
 11243  //
 11244  // This file is part of GCC.
 11245  //
 11246  // GCC is free software; you can redistribute it and/or modify
 11247  // it under the terms of the GNU General Public License as published by
 11248  // the Free Software Foundation; either version 2, or (at your option)
 11249  // any later version.
 11250  //
 11251  // GCC is distributed in the hope that it will be useful,
 11252  // but WITHOUT ANY WARRANTY; without even the implied warranty of
 11253  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 11254  // GNU General Public License for more details.
 11255  //
 11256  // You should have received a copy of the GNU General Public License
 11257  // along with GCC; see the file COPYING.  If not, write to
 11258  // the Free Software Foundation, 51 Franklin Street, Fifth Floor,
 11259  // Boston, MA 02110-1301, USA.
 11260  
 11261  // As a special exception, if you include this header file into source
 11262  //    files compiled by GCC, this header file does not by itself cause
 11263  //    the resulting executable to be covered by the GNU General Public
 11264  //    License.  This exception does not however invalidate any other
 11265  //    reasons why the executable file might be covered by the GNU General
 11266  //    Public License.
 11267  
 11268  // ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 11269  
 11270  // include mingw stuff
 11271  // *
 11272  // This file has no copyright assigned and is placed in the Public Domain.
 11273  // This file is part of the mingw-w64 runtime package.
 11274  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 11275  
 11276  // Copyright (C) 1989-2018 Free Software Foundation, Inc.
 11277  //
 11278  // This file is part of GCC.
 11279  //
 11280  // GCC is free software; you can redistribute it and/or modify
 11281  // it under the terms of the GNU General Public License as published by
 11282  // the Free Software Foundation; either version 3, or (at your option)
 11283  // any later version.
 11284  //
 11285  // GCC is distributed in the hope that it will be useful,
 11286  // but WITHOUT ANY WARRANTY; without even the implied warranty of
 11287  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 11288  // GNU General Public License for more details.
 11289  //
 11290  // Under Section 7 of GPL version 3, you are granted additional
 11291  // permissions described in the GCC Runtime Library Exception, version
 11292  // 3.1, as published by the Free Software Foundation.
 11293  //
 11294  // You should have received a copy of the GNU General Public License and
 11295  // a copy of the GCC Runtime Library Exception along with this program;
 11296  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 11297  // <http://www.gnu.org/licenses/>.
 11298  
 11299  // ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 11300  
 11301  // *
 11302  // This file is part of the mingw-w64 runtime package.
 11303  // No warranty is given; refer to the file DISCLAIMER within this package.
 11304  
 11305  // __declspec(selectany) must be applied to initialized objects on GCC 5 hence must not be used here.
 11306  
 11307  // *
 11308  // This file is part of the mingw-w64 runtime package.
 11309  // No warranty is given; refer to the file DISCLAIMER within this package.
 11310  
 11311  type HDWP = HANDLE                    /* winuser.h:32:18 */
 11312  type LPMENUTEMPLATEA = PVOID          /* winuser.h:35:17 */
 11313  type LPMENUTEMPLATEW = PVOID          /* winuser.h:36:17 */
 11314  type LPMENUTEMPLATE = LPMENUTEMPLATEA /* winuser.h:39:3 */
 11315  
 11316  type WNDPROC = uintptr /* winuser.h:41:19 */
 11317  
 11318  type DLGPROC = uintptr /* winuser.h:46:19 */
 11319  
 11320  type TIMERPROC = uintptr      /* winuser.h:50:16 */
 11321  type GRAYSTRINGPROC = uintptr /* winuser.h:51:19 */
 11322  type WNDENUMPROC = uintptr    /* winuser.h:52:19 */
 11323  type HOOKPROC = uintptr       /* winuser.h:53:19 */
 11324  type SENDASYNCPROC = uintptr  /* winuser.h:54:16 */
 11325  
 11326  type PROPENUMPROCA = uintptr /* winuser.h:56:19 */
 11327  type PROPENUMPROCW = uintptr /* winuser.h:57:19 */
 11328  
 11329  type PROPENUMPROCEXA = uintptr /* winuser.h:59:19 */
 11330  type PROPENUMPROCEXW = uintptr /* winuser.h:60:19 */
 11331  
 11332  type EDITWORDBREAKPROCA = uintptr /* winuser.h:62:15 */
 11333  type EDITWORDBREAKPROCW = uintptr /* winuser.h:63:15 */
 11334  
 11335  type DRAWSTATEPROC = uintptr /* winuser.h:65:19 */
 11336  
 11337  type PROPENUMPROC = PROPENUMPROCA           /* winuser.h:93:3 */
 11338  type PROPENUMPROCEX = PROPENUMPROCEXA       /* winuser.h:94:3 */
 11339  type EDITWORDBREAKPROC = EDITWORDBREAKPROCA /* winuser.h:95:3 */
 11340  
 11341  type NAMEENUMPROCA = uintptr          /* winuser.h:98:19 */
 11342  type NAMEENUMPROCW = uintptr          /* winuser.h:99:19 */
 11343  type WINSTAENUMPROCA = NAMEENUMPROCA  /* winuser.h:100:25 */
 11344  type WINSTAENUMPROCW = NAMEENUMPROCW  /* winuser.h:101:25 */
 11345  type DESKTOPENUMPROCA = NAMEENUMPROCA /* winuser.h:102:25 */
 11346  type DESKTOPENUMPROCW = NAMEENUMPROCW /* winuser.h:103:25 */
 11347  
 11348  type WINSTAENUMPROC = WINSTAENUMPROCA   /* winuser.h:113:3 */
 11349  type DESKTOPENUMPROC = DESKTOPENUMPROCA /* winuser.h:114:3 */
 11350  
 11351  type tagCBT_CREATEWNDA = struct {
 11352  	lpcs            uintptr
 11353  	hwndInsertAfter HWND
 11354  } /* winuser.h:456:11 */
 11355  
 11356  type tagCREATESTRUCTA = struct {
 11357  	lpCreateParams LPVOID
 11358  	hInstance      HINSTANCE
 11359  	hMenu          HMENU
 11360  	hwndParent     HWND
 11361  	cy             int32
 11362  	cx             int32
 11363  	y              int32
 11364  	x              int32
 11365  	style          LONG
 11366  	lpszName       LPCSTR
 11367  	lpszClass      LPCSTR
 11368  	dwExStyle      DWORD
 11369  } /* winuser.h:456:11 */
 11370  
 11371  type CBT_CREATEWNDA = tagCBT_CREATEWNDA /* winuser.h:459:5 */
 11372  type LPCBT_CREATEWNDA = uintptr         /* winuser.h:459:20 */
 11373  
 11374  type tagCBT_CREATEWNDW = struct {
 11375  	lpcs            uintptr
 11376  	hwndInsertAfter HWND
 11377  } /* winuser.h:461:11 */
 11378  
 11379  type tagCREATESTRUCTW = struct {
 11380  	lpCreateParams LPVOID
 11381  	hInstance      HINSTANCE
 11382  	hMenu          HMENU
 11383  	hwndParent     HWND
 11384  	cy             int32
 11385  	cx             int32
 11386  	y              int32
 11387  	x              int32
 11388  	style          LONG
 11389  	lpszName       LPCWSTR
 11390  	lpszClass      LPCWSTR
 11391  	dwExStyle      DWORD
 11392  } /* winuser.h:461:11 */
 11393  
 11394  type CBT_CREATEWNDW = tagCBT_CREATEWNDW /* winuser.h:464:5 */
 11395  type LPCBT_CREATEWNDW = uintptr         /* winuser.h:464:20 */
 11396  
 11397  type CBT_CREATEWND = CBT_CREATEWNDA     /* winuser.h:466:3 */
 11398  type LPCBT_CREATEWND = LPCBT_CREATEWNDA /* winuser.h:467:3 */
 11399  
 11400  type tagCBTACTIVATESTRUCT = struct {
 11401  	fMouse     WINBOOL
 11402  	hWndActive HWND
 11403  } /* winuser.h:469:11 */
 11404  
 11405  type CBTACTIVATESTRUCT = tagCBTACTIVATESTRUCT /* winuser.h:472:5 */
 11406  type LPCBTACTIVATESTRUCT = uintptr            /* winuser.h:472:23 */
 11407  
 11408  type tagWTSSESSION_NOTIFICATION = struct {
 11409  	cbSize      DWORD
 11410  	dwSessionId DWORD
 11411  } /* winuser.h:476:11 */
 11412  
 11413  type WTSSESSION_NOTIFICATION = tagWTSSESSION_NOTIFICATION /* winuser.h:479:5 */
 11414  type PWTSSESSION_NOTIFICATION = uintptr                   /* winuser.h:479:29 */
 11415  
 11416  type SHELLHOOKINFO = struct {
 11417  	hwnd HWND
 11418  	rc   RECT
 11419  }                              /* winuser.h:600:5 */
 11420  type LPSHELLHOOKINFO = uintptr /* winuser.h:600:19 */
 11421  
 11422  type tagEVENTMSG = struct {
 11423  	message UINT
 11424  	paramL  UINT
 11425  	paramH  UINT
 11426  	time    DWORD
 11427  	hwnd    HWND
 11428  } /* winuser.h:602:11 */
 11429  
 11430  type EVENTMSG = tagEVENTMSG  /* winuser.h:608:5 */
 11431  type PEVENTMSGMSG = uintptr  /* winuser.h:608:14 */
 11432  type NPEVENTMSGMSG = uintptr /* winuser.h:608:28 */
 11433  type LPEVENTMSGMSG = uintptr /* winuser.h:608:43 */
 11434  
 11435  type PEVENTMSG = uintptr  /* winuser.h:610:30 */
 11436  type NPEVENTMSG = uintptr /* winuser.h:610:41 */
 11437  type LPEVENTMSG = uintptr /* winuser.h:610:53 */
 11438  
 11439  type tagCWPSTRUCT = struct {
 11440  	lParam  LPARAM
 11441  	wParam  WPARAM
 11442  	message UINT
 11443  	hwnd    HWND
 11444  } /* winuser.h:612:11 */
 11445  
 11446  type CWPSTRUCT = tagCWPSTRUCT /* winuser.h:617:5 */
 11447  type PCWPSTRUCT = uintptr     /* winuser.h:617:15 */
 11448  type NPCWPSTRUCT = uintptr    /* winuser.h:617:27 */
 11449  type LPCWPSTRUCT = uintptr    /* winuser.h:617:40 */
 11450  
 11451  type tagCWPRETSTRUCT = struct {
 11452  	lResult LRESULT
 11453  	lParam  LPARAM
 11454  	wParam  WPARAM
 11455  	message UINT
 11456  	hwnd    HWND
 11457  } /* winuser.h:619:11 */
 11458  
 11459  type CWPRETSTRUCT = tagCWPRETSTRUCT /* winuser.h:625:5 */
 11460  type PCWPRETSTRUCT = uintptr        /* winuser.h:625:18 */
 11461  type NPCWPRETSTRUCT = uintptr       /* winuser.h:625:33 */
 11462  type LPCWPRETSTRUCT = uintptr       /* winuser.h:625:49 */
 11463  
 11464  type tagKBDLLHOOKSTRUCT = struct {
 11465  	vkCode      DWORD
 11466  	scanCode    DWORD
 11467  	flags       DWORD
 11468  	time        DWORD
 11469  	dwExtraInfo ULONG_PTR
 11470  } /* winuser.h:636:11 */
 11471  
 11472  type KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT /* winuser.h:642:5 */
 11473  type LPKBDLLHOOKSTRUCT = uintptr          /* winuser.h:642:21 */
 11474  type PKBDLLHOOKSTRUCT = uintptr           /* winuser.h:642:40 */
 11475  
 11476  type tagMSLLHOOKSTRUCT = struct {
 11477  	pt          POINT
 11478  	mouseData   DWORD
 11479  	flags       DWORD
 11480  	time        DWORD
 11481  	dwExtraInfo ULONG_PTR
 11482  } /* winuser.h:644:11 */
 11483  
 11484  type MSLLHOOKSTRUCT = tagMSLLHOOKSTRUCT /* winuser.h:650:5 */
 11485  type LPMSLLHOOKSTRUCT = uintptr         /* winuser.h:650:20 */
 11486  type PMSLLHOOKSTRUCT = uintptr          /* winuser.h:650:38 */
 11487  
 11488  type tagDEBUGHOOKINFO = struct {
 11489  	idThread          DWORD
 11490  	idThreadInstaller DWORD
 11491  	lParam            LPARAM
 11492  	wParam            WPARAM
 11493  	code              int32
 11494  } /* winuser.h:652:11 */
 11495  
 11496  type DEBUGHOOKINFO = tagDEBUGHOOKINFO /* winuser.h:658:5 */
 11497  type PDEBUGHOOKINFO = uintptr         /* winuser.h:658:19 */
 11498  type NPDEBUGHOOKINFO = uintptr        /* winuser.h:658:35 */
 11499  type LPDEBUGHOOKINFO = uintptr        /* winuser.h:658:52 */
 11500  
 11501  type tagMOUSEHOOKSTRUCT = struct {
 11502  	pt           POINT
 11503  	hwnd         HWND
 11504  	wHitTestCode UINT
 11505  	dwExtraInfo  ULONG_PTR
 11506  } /* winuser.h:660:11 */
 11507  
 11508  type MOUSEHOOKSTRUCT = tagMOUSEHOOKSTRUCT /* winuser.h:665:5 */
 11509  type LPMOUSEHOOKSTRUCT = uintptr          /* winuser.h:665:21 */
 11510  type PMOUSEHOOKSTRUCT = uintptr           /* winuser.h:665:40 */
 11511  
 11512  type tagMOUSEHOOKSTRUCTEX = struct {
 11513  	__unnamed MOUSEHOOKSTRUCT
 11514  	mouseData DWORD
 11515  } /* winuser.h:672:11 */
 11516  
 11517  type MOUSEHOOKSTRUCTEX = tagMOUSEHOOKSTRUCTEX /* winuser.h:675:5 */
 11518  type LPMOUSEHOOKSTRUCTEX = uintptr            /* winuser.h:675:23 */
 11519  type PMOUSEHOOKSTRUCTEX = uintptr             /* winuser.h:675:44 */
 11520  
 11521  type tagHARDWAREHOOKSTRUCT = struct {
 11522  	hwnd    HWND
 11523  	message UINT
 11524  	wParam  WPARAM
 11525  	lParam  LPARAM
 11526  } /* winuser.h:678:11 */
 11527  
 11528  type HARDWAREHOOKSTRUCT = tagHARDWAREHOOKSTRUCT /* winuser.h:683:5 */
 11529  type LPHARDWAREHOOKSTRUCT = uintptr             /* winuser.h:683:24 */
 11530  type PHARDWAREHOOKSTRUCT = uintptr              /* winuser.h:683:46 */
 11531  
 11532  type tagMOUSEMOVEPOINT = struct {
 11533  	x           int32
 11534  	y           int32
 11535  	time        DWORD
 11536  	dwExtraInfo ULONG_PTR
 11537  } /* winuser.h:719:11 */
 11538  
 11539  type MOUSEMOVEPOINT = tagMOUSEMOVEPOINT /* winuser.h:724:5 */
 11540  type PMOUSEMOVEPOINT = uintptr          /* winuser.h:724:20 */
 11541  type LPMOUSEMOVEPOINT = uintptr         /* winuser.h:724:37 */
 11542  
 11543  type tagUSEROBJECTFLAGS = struct {
 11544  	fInherit  WINBOOL
 11545  	fReserved WINBOOL
 11546  	dwFlags   DWORD
 11547  } /* winuser.h:825:11 */
 11548  
 11549  type USEROBJECTFLAGS = tagUSEROBJECTFLAGS /* winuser.h:829:5 */
 11550  type PUSEROBJECTFLAGS = uintptr           /* winuser.h:829:21 */
 11551  
 11552  type tagWNDCLASSEXA = struct {
 11553  	cbSize        UINT
 11554  	style         UINT
 11555  	lpfnWndProc   WNDPROC
 11556  	cbClsExtra    int32
 11557  	cbWndExtra    int32
 11558  	hInstance     HINSTANCE
 11559  	hIcon         HICON
 11560  	hCursor       HCURSOR
 11561  	hbrBackground HBRUSH
 11562  	lpszMenuName  LPCSTR
 11563  	lpszClassName LPCSTR
 11564  	hIconSm       HICON
 11565  } /* winuser.h:842:11 */
 11566  
 11567  type WNDCLASSEXA = tagWNDCLASSEXA /* winuser.h:855:5 */
 11568  type PWNDCLASSEXA = uintptr       /* winuser.h:855:17 */
 11569  type NPWNDCLASSEXA = uintptr      /* winuser.h:855:31 */
 11570  type LPWNDCLASSEXA = uintptr      /* winuser.h:855:46 */
 11571  
 11572  type tagWNDCLASSEXW = struct {
 11573  	cbSize        UINT
 11574  	style         UINT
 11575  	lpfnWndProc   WNDPROC
 11576  	cbClsExtra    int32
 11577  	cbWndExtra    int32
 11578  	hInstance     HINSTANCE
 11579  	hIcon         HICON
 11580  	hCursor       HCURSOR
 11581  	hbrBackground HBRUSH
 11582  	lpszMenuName  LPCWSTR
 11583  	lpszClassName LPCWSTR
 11584  	hIconSm       HICON
 11585  } /* winuser.h:857:11 */
 11586  
 11587  type WNDCLASSEXW = tagWNDCLASSEXW /* winuser.h:870:5 */
 11588  type PWNDCLASSEXW = uintptr       /* winuser.h:870:17 */
 11589  type NPWNDCLASSEXW = uintptr      /* winuser.h:870:31 */
 11590  type LPWNDCLASSEXW = uintptr      /* winuser.h:870:46 */
 11591  
 11592  type WNDCLASSEX = WNDCLASSEXA     /* winuser.h:872:3 */
 11593  type PWNDCLASSEX = PWNDCLASSEXA   /* winuser.h:873:3 */
 11594  type NPWNDCLASSEX = NPWNDCLASSEXA /* winuser.h:874:3 */
 11595  type LPWNDCLASSEX = LPWNDCLASSEXA /* winuser.h:875:3 */
 11596  
 11597  type tagWNDCLASSA = struct {
 11598  	style         UINT
 11599  	lpfnWndProc   WNDPROC
 11600  	cbClsExtra    int32
 11601  	cbWndExtra    int32
 11602  	hInstance     HINSTANCE
 11603  	hIcon         HICON
 11604  	hCursor       HCURSOR
 11605  	hbrBackground HBRUSH
 11606  	lpszMenuName  LPCSTR
 11607  	lpszClassName LPCSTR
 11608  } /* winuser.h:877:11 */
 11609  
 11610  type WNDCLASSA = tagWNDCLASSA /* winuser.h:888:5 */
 11611  type PWNDCLASSA = uintptr     /* winuser.h:888:15 */
 11612  type NPWNDCLASSA = uintptr    /* winuser.h:888:27 */
 11613  type LPWNDCLASSA = uintptr    /* winuser.h:888:40 */
 11614  
 11615  type tagWNDCLASSW = struct {
 11616  	style         UINT
 11617  	lpfnWndProc   WNDPROC
 11618  	cbClsExtra    int32
 11619  	cbWndExtra    int32
 11620  	hInstance     HINSTANCE
 11621  	hIcon         HICON
 11622  	hCursor       HCURSOR
 11623  	hbrBackground HBRUSH
 11624  	lpszMenuName  LPCWSTR
 11625  	lpszClassName LPCWSTR
 11626  } /* winuser.h:890:11 */
 11627  
 11628  type WNDCLASSW = tagWNDCLASSW /* winuser.h:901:5 */
 11629  type PWNDCLASSW = uintptr     /* winuser.h:901:15 */
 11630  type NPWNDCLASSW = uintptr    /* winuser.h:901:27 */
 11631  type LPWNDCLASSW = uintptr    /* winuser.h:901:40 */
 11632  
 11633  type WNDCLASS = WNDCLASSA     /* winuser.h:903:3 */
 11634  type PWNDCLASS = PWNDCLASSA   /* winuser.h:904:3 */
 11635  type NPWNDCLASS = NPWNDCLASSA /* winuser.h:905:3 */
 11636  type LPWNDCLASS = LPWNDCLASSA /* winuser.h:906:3 */
 11637  
 11638  type tagMSG = struct {
 11639  	hwnd    HWND
 11640  	message UINT
 11641  	wParam  WPARAM
 11642  	lParam  LPARAM
 11643  	time    DWORD
 11644  	pt      POINT
 11645  } /* winuser.h:914:11 */
 11646  
 11647  type MSG = tagMSG    /* winuser.h:921:5 */
 11648  type PMSG = uintptr  /* winuser.h:921:9 */
 11649  type NPMSG = uintptr /* winuser.h:921:15 */
 11650  type LPMSG = uintptr /* winuser.h:921:22 */
 11651  
 11652  type tagMINMAXINFO = struct {
 11653  	ptReserved     POINT
 11654  	ptMaxSize      POINT
 11655  	ptMaxPosition  POINT
 11656  	ptMinTrackSize POINT
 11657  	ptMaxTrackSize POINT
 11658  } /* winuser.h:1031:11 */
 11659  
 11660  type MINMAXINFO = tagMINMAXINFO /* winuser.h:1037:5 */
 11661  type PMINMAXINFO = uintptr      /* winuser.h:1037:16 */
 11662  type LPMINMAXINFO = uintptr     /* winuser.h:1037:29 */
 11663  
 11664  type tagCOPYDATASTRUCT = struct {
 11665  	dwData ULONG_PTR
 11666  	cbData DWORD
 11667  	lpData PVOID
 11668  } /* winuser.h:1074:11 */
 11669  
 11670  type COPYDATASTRUCT = tagCOPYDATASTRUCT /* winuser.h:1078:5 */
 11671  type PCOPYDATASTRUCT = uintptr          /* winuser.h:1078:20 */
 11672  
 11673  type tagMDINEXTMENU = struct {
 11674  	hmenuIn   HMENU
 11675  	hmenuNext HMENU
 11676  	hwndNext  HWND
 11677  } /* winuser.h:1080:11 */
 11678  
 11679  type MDINEXTMENU = tagMDINEXTMENU /* winuser.h:1084:5 */
 11680  type PMDINEXTMENU = uintptr       /* winuser.h:1084:17 */
 11681  type LPMDINEXTMENU = uintptr      /* winuser.h:1084:31 */
 11682  
 11683  type POWERBROADCAST_SETTING = struct {
 11684  	PowerSetting GUID
 11685  	DataLength   DWORD
 11686  	Data         [1]UCHAR
 11687  	_            [3]byte
 11688  }                                      /* winuser.h:1268:5 */
 11689  type PPOWERBROADCAST_SETTING = uintptr /* winuser.h:1268:28 */
 11690  
 11691  type tagWINDOWPOS = struct {
 11692  	hwnd            HWND
 11693  	hwndInsertAfter HWND
 11694  	x               int32
 11695  	y               int32
 11696  	cx              int32
 11697  	cy              int32
 11698  	flags           UINT
 11699  } /* winuser.h:1462:11 */
 11700  
 11701  type WINDOWPOS = tagWINDOWPOS /* winuser.h:1470:5 */
 11702  type LPWINDOWPOS = uintptr    /* winuser.h:1470:15 */
 11703  type PWINDOWPOS = uintptr     /* winuser.h:1470:28 */
 11704  
 11705  type tagNCCALCSIZE_PARAMS = struct {
 11706  	rgrc  [3]RECT
 11707  	lppos PWINDOWPOS
 11708  } /* winuser.h:1472:11 */
 11709  
 11710  type NCCALCSIZE_PARAMS = tagNCCALCSIZE_PARAMS /* winuser.h:1475:5 */
 11711  type LPNCCALCSIZE_PARAMS = uintptr            /* winuser.h:1475:23 */
 11712  
 11713  type tagTRACKMOUSEEVENT = struct {
 11714  	cbSize      DWORD
 11715  	dwFlags     DWORD
 11716  	hwndTrack   HWND
 11717  	dwHoverTime DWORD
 11718  } /* winuser.h:1509:11 */
 11719  
 11720  type TRACKMOUSEEVENT = tagTRACKMOUSEEVENT /* winuser.h:1514:5 */
 11721  type LPTRACKMOUSEEVENT = uintptr          /* winuser.h:1514:21 */
 11722  
 11723  type tagACCEL = struct {
 11724  	fVirt BYTE
 11725  	_     [1]byte
 11726  	key   WORD
 11727  	cmd   WORD
 11728  } /* winuser.h:1753:11 */
 11729  
 11730  type ACCEL = tagACCEL  /* winuser.h:1757:5 */
 11731  type LPACCEL = uintptr /* winuser.h:1757:11 */
 11732  
 11733  type tagPAINTSTRUCT = struct {
 11734  	hdc         HDC
 11735  	fErase      WINBOOL
 11736  	rcPaint     RECT
 11737  	fRestore    WINBOOL
 11738  	fIncUpdate  WINBOOL
 11739  	rgbReserved [32]BYTE
 11740  } /* winuser.h:1759:11 */
 11741  
 11742  type PAINTSTRUCT = tagPAINTSTRUCT /* winuser.h:1766:5 */
 11743  type PPAINTSTRUCT = uintptr       /* winuser.h:1766:17 */
 11744  type NPPAINTSTRUCT = uintptr      /* winuser.h:1766:31 */
 11745  type LPPAINTSTRUCT = uintptr      /* winuser.h:1766:46 */
 11746  
 11747  type CREATESTRUCTA = tagCREATESTRUCTA /* winuser.h:1781:5 */
 11748  type LPCREATESTRUCTA = uintptr        /* winuser.h:1781:19 */
 11749  
 11750  type CREATESTRUCTW = tagCREATESTRUCTW /* winuser.h:1796:5 */
 11751  type LPCREATESTRUCTW = uintptr        /* winuser.h:1796:19 */
 11752  
 11753  type CREATESTRUCT = CREATESTRUCTA     /* winuser.h:1798:3 */
 11754  type LPCREATESTRUCT = LPCREATESTRUCTA /* winuser.h:1799:3 */
 11755  
 11756  type tagWINDOWPLACEMENT = struct {
 11757  	length           UINT
 11758  	flags            UINT
 11759  	showCmd          UINT
 11760  	ptMinPosition    POINT
 11761  	ptMaxPosition    POINT
 11762  	rcNormalPosition RECT
 11763  } /* winuser.h:1801:11 */
 11764  
 11765  type WINDOWPLACEMENT = tagWINDOWPLACEMENT /* winuser.h:1808:5 */
 11766  type PWINDOWPLACEMENT = uintptr           /* winuser.h:1809:27 */
 11767  type LPWINDOWPLACEMENT = uintptr          /* winuser.h:1809:45 */
 11768  
 11769  type tagNMHDR = struct {
 11770  	hwndFrom HWND
 11771  	idFrom   UINT_PTR
 11772  	code     UINT
 11773  } /* winuser.h:1817:11 */
 11774  
 11775  type NMHDR = tagNMHDR /* winuser.h:1821:5 */
 11776  
 11777  type LPNMHDR = uintptr /* winuser.h:1825:17 */
 11778  
 11779  type tagSTYLESTRUCT = struct {
 11780  	styleOld DWORD
 11781  	styleNew DWORD
 11782  } /* winuser.h:1827:11 */
 11783  
 11784  type STYLESTRUCT = tagSTYLESTRUCT /* winuser.h:1830:5 */
 11785  type LPSTYLESTRUCT = uintptr      /* winuser.h:1830:17 */
 11786  
 11787  type tagMEASUREITEMSTRUCT = struct {
 11788  	CtlType    UINT
 11789  	CtlID      UINT
 11790  	itemID     UINT
 11791  	itemWidth  UINT
 11792  	itemHeight UINT
 11793  	itemData   ULONG_PTR
 11794  } /* winuser.h:1856:11 */
 11795  
 11796  type MEASUREITEMSTRUCT = tagMEASUREITEMSTRUCT /* winuser.h:1863:5 */
 11797  type PMEASUREITEMSTRUCT = uintptr             /* winuser.h:1863:23 */
 11798  type LPMEASUREITEMSTRUCT = uintptr            /* winuser.h:1863:43 */
 11799  
 11800  type tagDRAWITEMSTRUCT = struct {
 11801  	CtlType    UINT
 11802  	CtlID      UINT
 11803  	itemID     UINT
 11804  	itemAction UINT
 11805  	itemState  UINT
 11806  	hwndItem   HWND
 11807  	hDC        HDC
 11808  	rcItem     RECT
 11809  	itemData   ULONG_PTR
 11810  } /* winuser.h:1865:11 */
 11811  
 11812  type DRAWITEMSTRUCT = tagDRAWITEMSTRUCT /* winuser.h:1875:5 */
 11813  type PDRAWITEMSTRUCT = uintptr          /* winuser.h:1875:20 */
 11814  type LPDRAWITEMSTRUCT = uintptr         /* winuser.h:1875:37 */
 11815  
 11816  type tagDELETEITEMSTRUCT = struct {
 11817  	CtlType  UINT
 11818  	CtlID    UINT
 11819  	itemID   UINT
 11820  	hwndItem HWND
 11821  	itemData ULONG_PTR
 11822  } /* winuser.h:1877:11 */
 11823  
 11824  type DELETEITEMSTRUCT = tagDELETEITEMSTRUCT /* winuser.h:1883:5 */
 11825  type PDELETEITEMSTRUCT = uintptr            /* winuser.h:1883:22 */
 11826  type LPDELETEITEMSTRUCT = uintptr           /* winuser.h:1883:41 */
 11827  
 11828  type tagCOMPAREITEMSTRUCT = struct {
 11829  	CtlType    UINT
 11830  	CtlID      UINT
 11831  	hwndItem   HWND
 11832  	itemID1    UINT
 11833  	itemData1  ULONG_PTR
 11834  	itemID2    UINT
 11835  	itemData2  ULONG_PTR
 11836  	dwLocaleId DWORD
 11837  } /* winuser.h:1885:11 */
 11838  
 11839  type COMPAREITEMSTRUCT = tagCOMPAREITEMSTRUCT /* winuser.h:1894:5 */
 11840  type PCOMPAREITEMSTRUCT = uintptr             /* winuser.h:1894:23 */
 11841  type LPCOMPAREITEMSTRUCT = uintptr            /* winuser.h:1894:43 */
 11842  
 11843  type BSMINFO = struct {
 11844  	cbSize UINT
 11845  	hdesk  HDESK
 11846  	hwnd   HWND
 11847  	luid   LUID
 11848  }                       /* winuser.h:1997:5 */
 11849  type PBSMINFO = uintptr /* winuser.h:1997:13 */
 11850  
 11851  type HDEVNOTIFY = PVOID    /* winuser.h:2030:17 */
 11852  type PHDEVNOTIFY = uintptr /* winuser.h:2031:22 */
 11853  
 11854  type HPOWERNOTIFY = HANDLE   /* winuser.h:2054:18 */
 11855  type PHPOWERNOTIFY = uintptr /* winuser.h:2055:24 */
 11856  
 11857  type PREGISTERCLASSNAMEW = uintptr /* winuser.h:2132:19 */
 11858  
 11859  type tagUPDATELAYEREDWINDOWINFO = struct {
 11860  	cbSize   DWORD
 11861  	hdcDst   HDC
 11862  	pptDst   uintptr
 11863  	psize    uintptr
 11864  	hdcSrc   HDC
 11865  	pptSrc   uintptr
 11866  	crKey    COLORREF
 11867  	pblend   uintptr
 11868  	dwFlags  DWORD
 11869  	prcDirty uintptr
 11870  } /* winuser.h:2155:11 */
 11871  
 11872  type UPDATELAYEREDWINDOWINFO = tagUPDATELAYEREDWINDOWINFO /* winuser.h:2166:5 */
 11873  type PUPDATELAYEREDWINDOWINFO = uintptr                   /* winuser.h:2166:29 */
 11874  
 11875  type FLASHWINFO = struct {
 11876  	cbSize    UINT
 11877  	hwnd      HWND
 11878  	dwFlags   DWORD
 11879  	uCount    UINT
 11880  	dwTimeout DWORD
 11881  }                          /* winuser.h:2206:5 */
 11882  type PFLASHWINFO = uintptr /* winuser.h:2206:16 */
 11883  
 11884  // *
 11885  // This file has no copyright assigned and is placed in the Public Domain.
 11886  // This file is part of the mingw-w64 runtime package.
 11887  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 11888  
 11889  type DLGTEMPLATE = struct {
 11890  	style           DWORD
 11891  	dwExtendedStyle DWORD
 11892  	cdit            WORD
 11893  	x               int16
 11894  	y               int16
 11895  	cx              int16
 11896  	cy              int16
 11897  	_               [2]byte
 11898  } /* winuser.h:2279:5 */
 11899  
 11900  type LPDLGTEMPLATEA = uintptr /* winuser.h:2283:23 */
 11901  type LPDLGTEMPLATEW = uintptr /* winuser.h:2284:23 */
 11902  
 11903  type LPDLGTEMPLATE = LPDLGTEMPLATEA /* winuser.h:2286:3 */
 11904  
 11905  type LPCDLGTEMPLATEA = uintptr /* winuser.h:2290:29 */
 11906  type LPCDLGTEMPLATEW = uintptr /* winuser.h:2291:29 */
 11907  
 11908  type LPCDLGTEMPLATE = LPCDLGTEMPLATEA /* winuser.h:2293:3 */
 11909  
 11910  type DLGITEMTEMPLATE = struct {
 11911  	style           DWORD
 11912  	dwExtendedStyle DWORD
 11913  	x               int16
 11914  	y               int16
 11915  	cx              int16
 11916  	cy              int16
 11917  	id              WORD
 11918  	_               [2]byte
 11919  } /* winuser.h:2305:5 */
 11920  
 11921  type PDLGITEMTEMPLATEA = uintptr /* winuser.h:2307:27 */
 11922  type PDLGITEMTEMPLATEW = uintptr /* winuser.h:2308:27 */
 11923  
 11924  type PDLGITEMTEMPLATE = PDLGITEMTEMPLATEA /* winuser.h:2310:3 */
 11925  
 11926  type LPDLGITEMTEMPLATEA = uintptr /* winuser.h:2312:27 */
 11927  type LPDLGITEMTEMPLATEW = uintptr /* winuser.h:2313:27 */
 11928  
 11929  type LPDLGITEMTEMPLATE = LPDLGITEMTEMPLATEA /* winuser.h:2315:3 */
 11930  
 11931  type tagMOUSEINPUT = struct {
 11932  	dx          LONG
 11933  	dy          LONG
 11934  	mouseData   DWORD
 11935  	dwFlags     DWORD
 11936  	time        DWORD
 11937  	dwExtraInfo ULONG_PTR
 11938  } /* winuser.h:2646:11 */
 11939  
 11940  type MOUSEINPUT = tagMOUSEINPUT /* winuser.h:2653:5 */
 11941  type PMOUSEINPUT = uintptr      /* winuser.h:2653:16 */
 11942  type LPMOUSEINPUT = uintptr     /* winuser.h:2653:29 */
 11943  
 11944  type tagKEYBDINPUT = struct {
 11945  	wVk         WORD
 11946  	wScan       WORD
 11947  	dwFlags     DWORD
 11948  	time        DWORD
 11949  	dwExtraInfo ULONG_PTR
 11950  } /* winuser.h:2655:11 */
 11951  
 11952  type KEYBDINPUT = tagKEYBDINPUT /* winuser.h:2661:5 */
 11953  type PKEYBDINPUT = uintptr      /* winuser.h:2661:16 */
 11954  type LPKEYBDINPUT = uintptr     /* winuser.h:2661:29 */
 11955  
 11956  type tagHARDWAREINPUT = struct {
 11957  	uMsg    DWORD
 11958  	wParamL WORD
 11959  	wParamH WORD
 11960  } /* winuser.h:2663:11 */
 11961  
 11962  type HARDWAREINPUT = tagHARDWAREINPUT /* winuser.h:2667:5 */
 11963  type PHARDWAREINPUT = uintptr         /* winuser.h:2667:19 */
 11964  type LPHARDWAREINPUT = uintptr        /* winuser.h:2667:35 */
 11965  
 11966  type tagINPUT = struct {
 11967  	__type DWORD
 11968  	u      struct{ mi MOUSEINPUT }
 11969  } /* winuser.h:2669:11 */
 11970  
 11971  type INPUT = tagINPUT  /* winuser.h:2676:5 */
 11972  type PINPUT = uintptr  /* winuser.h:2676:11 */
 11973  type LPINPUT = uintptr /* winuser.h:2676:19 */
 11974  
 11975  type tagLASTINPUTINFO = struct {
 11976  	cbSize UINT
 11977  	dwTime DWORD
 11978  } /* winuser.h:2830:11 */
 11979  
 11980  type LASTINPUTINFO = tagLASTINPUTINFO /* winuser.h:2833:5 */
 11981  type PLASTINPUTINFO = uintptr         /* winuser.h:2833:19 */
 11982  
 11983  type tagTPMPARAMS = struct {
 11984  	cbSize    UINT
 11985  	rcExclude RECT
 11986  } /* winuser.h:3152:11 */
 11987  
 11988  type TPMPARAMS = tagTPMPARAMS /* winuser.h:3155:5 */
 11989  
 11990  type tagMENUINFO = struct {
 11991  	cbSize          DWORD
 11992  	fMask           DWORD
 11993  	dwStyle         DWORD
 11994  	cyMax           UINT
 11995  	hbrBack         HBRUSH
 11996  	dwContextHelpID DWORD
 11997  	dwMenuData      ULONG_PTR
 11998  } /* winuser.h:3157:11 */
 11999  
 12000  type MENUINFO = tagMENUINFO /* winuser.h:3165:5 */
 12001  type LPMENUINFO = uintptr   /* winuser.h:3165:14 */
 12002  
 12003  type LPTPMPARAMS = uintptr /* winuser.h:3167:21 */
 12004  type LPCMENUINFO = uintptr /* winuser.h:3168:26 */
 12005  
 12006  type tagMENUGETOBJECTINFO = struct {
 12007  	dwFlags DWORD
 12008  	uPos    UINT
 12009  	hmenu   HMENU
 12010  	riid    PVOID
 12011  	pvObj   PVOID
 12012  } /* winuser.h:3178:11 */
 12013  
 12014  type MENUGETOBJECTINFO = tagMENUGETOBJECTINFO /* winuser.h:3184:5 */
 12015  type PMENUGETOBJECTINFO = uintptr             /* winuser.h:3184:23 */
 12016  
 12017  type tagMENUITEMINFOA = struct {
 12018  	cbSize        UINT
 12019  	fMask         UINT
 12020  	fType         UINT
 12021  	fState        UINT
 12022  	wID           UINT
 12023  	hSubMenu      HMENU
 12024  	hbmpChecked   HBITMAP
 12025  	hbmpUnchecked HBITMAP
 12026  	dwItemData    ULONG_PTR
 12027  	dwTypeData    LPSTR
 12028  	cch           UINT
 12029  	hbmpItem      HBITMAP
 12030  } /* winuser.h:3186:11 */
 12031  
 12032  type MENUITEMINFOA = tagMENUITEMINFOA /* winuser.h:3199:5 */
 12033  type LPMENUITEMINFOA = uintptr        /* winuser.h:3199:19 */
 12034  
 12035  type tagMENUITEMINFOW = struct {
 12036  	cbSize        UINT
 12037  	fMask         UINT
 12038  	fType         UINT
 12039  	fState        UINT
 12040  	wID           UINT
 12041  	hSubMenu      HMENU
 12042  	hbmpChecked   HBITMAP
 12043  	hbmpUnchecked HBITMAP
 12044  	dwItemData    ULONG_PTR
 12045  	dwTypeData    LPWSTR
 12046  	cch           UINT
 12047  	hbmpItem      HBITMAP
 12048  } /* winuser.h:3201:11 */
 12049  
 12050  type MENUITEMINFOW = tagMENUITEMINFOW /* winuser.h:3214:5 */
 12051  type LPMENUITEMINFOW = uintptr        /* winuser.h:3214:19 */
 12052  
 12053  type MENUITEMINFO = MENUITEMINFOA     /* winuser.h:3216:3 */
 12054  type LPMENUITEMINFO = LPMENUITEMINFOA /* winuser.h:3217:3 */
 12055  
 12056  type LPCMENUITEMINFOA = uintptr /* winuser.h:3219:31 */
 12057  type LPCMENUITEMINFOW = uintptr /* winuser.h:3220:31 */
 12058  
 12059  type LPCMENUITEMINFO = LPCMENUITEMINFOA /* winuser.h:3222:3 */
 12060  
 12061  type tagDROPSTRUCT = struct {
 12062  	hwndSource    HWND
 12063  	hwndSink      HWND
 12064  	wFmt          DWORD
 12065  	dwData        ULONG_PTR
 12066  	ptDrop        POINT
 12067  	dwControlData DWORD
 12068  } /* winuser.h:3270:11 */
 12069  
 12070  type DROPSTRUCT = tagDROPSTRUCT /* winuser.h:3277:5 */
 12071  type PDROPSTRUCT = uintptr      /* winuser.h:3277:16 */
 12072  type LPDROPSTRUCT = uintptr     /* winuser.h:3277:29 */
 12073  
 12074  type tagDRAWTEXTPARAMS = struct {
 12075  	cbSize        UINT
 12076  	iTabLength    int32
 12077  	iLeftMargin   int32
 12078  	iRightMargin  int32
 12079  	uiLengthDrawn UINT
 12080  } /* winuser.h:3324:11 */
 12081  
 12082  type DRAWTEXTPARAMS = tagDRAWTEXTPARAMS /* winuser.h:3330:5 */
 12083  type LPDRAWTEXTPARAMS = uintptr         /* winuser.h:3330:20 */
 12084  
 12085  type tagHELPINFO = struct {
 12086  	cbSize       UINT
 12087  	iContextType int32
 12088  	iCtrlId      int32
 12089  	hItemHandle  HANDLE
 12090  	dwContextId  DWORD_PTR
 12091  	MousePos     POINT
 12092  } /* winuser.h:3507:11 */
 12093  
 12094  type HELPINFO = tagHELPINFO /* winuser.h:3514:5 */
 12095  type LPHELPINFO = uintptr   /* winuser.h:3514:14 */
 12096  
 12097  type MSGBOXCALLBACK = uintptr /* winuser.h:3571:16 */
 12098  
 12099  type tagMSGBOXPARAMSA = struct {
 12100  	cbSize             UINT
 12101  	hwndOwner          HWND
 12102  	hInstance          HINSTANCE
 12103  	lpszText           LPCSTR
 12104  	lpszCaption        LPCSTR
 12105  	dwStyle            DWORD
 12106  	lpszIcon           LPCSTR
 12107  	dwContextHelpId    DWORD_PTR
 12108  	lpfnMsgBoxCallback MSGBOXCALLBACK
 12109  	dwLanguageId       DWORD
 12110  } /* winuser.h:3573:11 */
 12111  
 12112  type MSGBOXPARAMSA = tagMSGBOXPARAMSA /* winuser.h:3584:5 */
 12113  type PMSGBOXPARAMSA = uintptr         /* winuser.h:3584:19 */
 12114  type LPMSGBOXPARAMSA = uintptr        /* winuser.h:3584:35 */
 12115  
 12116  type tagMSGBOXPARAMSW = struct {
 12117  	cbSize             UINT
 12118  	hwndOwner          HWND
 12119  	hInstance          HINSTANCE
 12120  	lpszText           LPCWSTR
 12121  	lpszCaption        LPCWSTR
 12122  	dwStyle            DWORD
 12123  	lpszIcon           LPCWSTR
 12124  	dwContextHelpId    DWORD_PTR
 12125  	lpfnMsgBoxCallback MSGBOXCALLBACK
 12126  	dwLanguageId       DWORD
 12127  } /* winuser.h:3586:11 */
 12128  
 12129  type MSGBOXPARAMSW = tagMSGBOXPARAMSW /* winuser.h:3597:5 */
 12130  type PMSGBOXPARAMSW = uintptr         /* winuser.h:3597:19 */
 12131  type LPMSGBOXPARAMSW = uintptr        /* winuser.h:3597:35 */
 12132  
 12133  type MSGBOXPARAMS = MSGBOXPARAMSA     /* winuser.h:3599:3 */
 12134  type PMSGBOXPARAMS = PMSGBOXPARAMSA   /* winuser.h:3600:3 */
 12135  type LPMSGBOXPARAMS = LPMSGBOXPARAMSA /* winuser.h:3601:3 */
 12136  
 12137  type MENUITEMTEMPLATEHEADER = struct {
 12138  	versionNumber WORD
 12139  	offset        WORD
 12140  }                                      /* winuser.h:3910:5 */
 12141  type PMENUITEMTEMPLATEHEADER = uintptr /* winuser.h:3910:28 */
 12142  
 12143  type MENUITEMTEMPLATE = struct {
 12144  	mtOption WORD
 12145  	mtID     WORD
 12146  	mtString [1]WCHAR
 12147  }                                /* winuser.h:3916:5 */
 12148  type PMENUITEMTEMPLATE = uintptr /* winuser.h:3916:22 */
 12149  
 12150  type _ICONINFO = struct {
 12151  	fIcon    WINBOOL
 12152  	xHotspot DWORD
 12153  	yHotspot DWORD
 12154  	hbmMask  HBITMAP
 12155  	hbmColor HBITMAP
 12156  } /* winuser.h:3989:11 */
 12157  
 12158  type ICONINFO = _ICONINFO /* winuser.h:3995:5 */
 12159  type PICONINFO = uintptr  /* winuser.h:3996:20 */
 12160  
 12161  type tagCURSORSHAPE = struct {
 12162  	xHotSpot  int32
 12163  	yHotSpot  int32
 12164  	cx        int32
 12165  	cy        int32
 12166  	cbWidth   int32
 12167  	Planes    BYTE
 12168  	BitsPixel BYTE
 12169  	_         [2]byte
 12170  } /* winuser.h:4013:11 */
 12171  
 12172  type CURSORSHAPE = tagCURSORSHAPE /* winuser.h:4021:5 */
 12173  type LPCURSORSHAPE = uintptr      /* winuser.h:4021:17 */
 12174  
 12175  type tagSCROLLINFO = struct {
 12176  	cbSize    UINT
 12177  	fMask     UINT
 12178  	nMin      int32
 12179  	nMax      int32
 12180  	nPage     UINT
 12181  	nPos      int32
 12182  	nTrackPos int32
 12183  } /* winuser.h:4701:11 */
 12184  
 12185  type SCROLLINFO = tagSCROLLINFO /* winuser.h:4709:5 */
 12186  type LPSCROLLINFO = uintptr     /* winuser.h:4709:16 */
 12187  type LPCSCROLLINFO = uintptr    /* winuser.h:4710:28 */
 12188  
 12189  type tagMDICREATESTRUCTA = struct {
 12190  	szClass LPCSTR
 12191  	szTitle LPCSTR
 12192  	hOwner  HANDLE
 12193  	x       int32
 12194  	y       int32
 12195  	cx      int32
 12196  	cy      int32
 12197  	style   DWORD
 12198  	lParam  LPARAM
 12199  } /* winuser.h:4728:11 */
 12200  
 12201  type MDICREATESTRUCTA = tagMDICREATESTRUCTA /* winuser.h:4738:5 */
 12202  type LPMDICREATESTRUCTA = uintptr           /* winuser.h:4738:22 */
 12203  
 12204  type tagMDICREATESTRUCTW = struct {
 12205  	szClass LPCWSTR
 12206  	szTitle LPCWSTR
 12207  	hOwner  HANDLE
 12208  	x       int32
 12209  	y       int32
 12210  	cx      int32
 12211  	cy      int32
 12212  	style   DWORD
 12213  	lParam  LPARAM
 12214  } /* winuser.h:4740:11 */
 12215  
 12216  type MDICREATESTRUCTW = tagMDICREATESTRUCTW /* winuser.h:4750:5 */
 12217  type LPMDICREATESTRUCTW = uintptr           /* winuser.h:4750:22 */
 12218  
 12219  type MDICREATESTRUCT = MDICREATESTRUCTA     /* winuser.h:4752:3 */
 12220  type LPMDICREATESTRUCT = LPMDICREATESTRUCTA /* winuser.h:4753:3 */
 12221  
 12222  type tagCLIENTCREATESTRUCT = struct {
 12223  	hWindowMenu  HANDLE
 12224  	idFirstChild UINT
 12225  } /* winuser.h:4755:11 */
 12226  
 12227  type CLIENTCREATESTRUCT = tagCLIENTCREATESTRUCT /* winuser.h:4758:5 */
 12228  type LPCLIENTCREATESTRUCT = uintptr             /* winuser.h:4758:24 */
 12229  
 12230  type HELPPOLY = DWORD /* winuser.h:4784:17 */
 12231  
 12232  type tagMULTIKEYHELPA = struct {
 12233  	mkSize      DWORD
 12234  	mkKeylist   CHAR
 12235  	szKeyphrase [1]CHAR
 12236  	_           [2]byte
 12237  } /* winuser.h:4786:11 */
 12238  
 12239  type MULTIKEYHELPA = tagMULTIKEYHELPA /* winuser.h:4790:5 */
 12240  type PMULTIKEYHELPA = uintptr         /* winuser.h:4790:19 */
 12241  type LPMULTIKEYHELPA = uintptr        /* winuser.h:4790:35 */
 12242  
 12243  type tagMULTIKEYHELPW = struct {
 12244  	mkSize      DWORD
 12245  	mkKeylist   WCHAR
 12246  	szKeyphrase [1]WCHAR
 12247  } /* winuser.h:4792:11 */
 12248  
 12249  type MULTIKEYHELPW = tagMULTIKEYHELPW /* winuser.h:4796:5 */
 12250  type PMULTIKEYHELPW = uintptr         /* winuser.h:4796:19 */
 12251  type LPMULTIKEYHELPW = uintptr        /* winuser.h:4796:35 */
 12252  
 12253  type MULTIKEYHELP = MULTIKEYHELPA     /* winuser.h:4798:3 */
 12254  type PMULTIKEYHELP = PMULTIKEYHELPA   /* winuser.h:4799:3 */
 12255  type LPMULTIKEYHELP = LPMULTIKEYHELPA /* winuser.h:4800:3 */
 12256  
 12257  type tagHELPWININFOA = struct {
 12258  	wStructSize int32
 12259  	x           int32
 12260  	y           int32
 12261  	dx          int32
 12262  	dy          int32
 12263  	wMax        int32
 12264  	rgchMember  [2]CHAR
 12265  	_           [2]byte
 12266  } /* winuser.h:4802:11 */
 12267  
 12268  type HELPWININFOA = tagHELPWININFOA /* winuser.h:4810:5 */
 12269  type PHELPWININFOA = uintptr        /* winuser.h:4810:18 */
 12270  type LPHELPWININFOA = uintptr       /* winuser.h:4810:33 */
 12271  
 12272  type tagHELPWININFOW = struct {
 12273  	wStructSize int32
 12274  	x           int32
 12275  	y           int32
 12276  	dx          int32
 12277  	dy          int32
 12278  	wMax        int32
 12279  	rgchMember  [2]WCHAR
 12280  } /* winuser.h:4812:11 */
 12281  
 12282  type HELPWININFOW = tagHELPWININFOW /* winuser.h:4820:5 */
 12283  type PHELPWININFOW = uintptr        /* winuser.h:4820:18 */
 12284  type LPHELPWININFOW = uintptr       /* winuser.h:4820:33 */
 12285  
 12286  type HELPWININFO = HELPWININFOA     /* winuser.h:4822:3 */
 12287  type PHELPWININFO = PHELPWININFOA   /* winuser.h:4823:3 */
 12288  type LPHELPWININFO = LPHELPWININFOA /* winuser.h:4824:3 */
 12289  
 12290  type tagNONCLIENTMETRICSA = struct {
 12291  	cbSize           UINT
 12292  	iBorderWidth     int32
 12293  	iScrollWidth     int32
 12294  	iScrollHeight    int32
 12295  	iCaptionWidth    int32
 12296  	iCaptionHeight   int32
 12297  	lfCaptionFont    LOGFONTA
 12298  	iSmCaptionWidth  int32
 12299  	iSmCaptionHeight int32
 12300  	lfSmCaptionFont  LOGFONTA
 12301  	iMenuWidth       int32
 12302  	iMenuHeight      int32
 12303  	lfMenuFont       LOGFONTA
 12304  	lfStatusFont     LOGFONTA
 12305  	lfMessageFont    LOGFONTA
 12306  } /* winuser.h:5183:11 */
 12307  
 12308  type NONCLIENTMETRICSA = tagNONCLIENTMETRICSA /* winuser.h:5202:5 */
 12309  type PNONCLIENTMETRICSA = uintptr             /* winuser.h:5202:23 */
 12310  type LPNONCLIENTMETRICSA = uintptr            /* winuser.h:5202:43 */
 12311  
 12312  type tagNONCLIENTMETRICSW = struct {
 12313  	cbSize           UINT
 12314  	iBorderWidth     int32
 12315  	iScrollWidth     int32
 12316  	iScrollHeight    int32
 12317  	iCaptionWidth    int32
 12318  	iCaptionHeight   int32
 12319  	lfCaptionFont    LOGFONTW
 12320  	iSmCaptionWidth  int32
 12321  	iSmCaptionHeight int32
 12322  	lfSmCaptionFont  LOGFONTW
 12323  	iMenuWidth       int32
 12324  	iMenuHeight      int32
 12325  	lfMenuFont       LOGFONTW
 12326  	lfStatusFont     LOGFONTW
 12327  	lfMessageFont    LOGFONTW
 12328  } /* winuser.h:5204:11 */
 12329  
 12330  type NONCLIENTMETRICSW = tagNONCLIENTMETRICSW /* winuser.h:5223:5 */
 12331  type PNONCLIENTMETRICSW = uintptr             /* winuser.h:5223:23 */
 12332  type LPNONCLIENTMETRICSW = uintptr            /* winuser.h:5223:43 */
 12333  
 12334  type NONCLIENTMETRICS = NONCLIENTMETRICSA     /* winuser.h:5225:3 */
 12335  type PNONCLIENTMETRICS = PNONCLIENTMETRICSA   /* winuser.h:5226:3 */
 12336  type LPNONCLIENTMETRICS = LPNONCLIENTMETRICSA /* winuser.h:5227:3 */
 12337  
 12338  type tagMINIMIZEDMETRICS = struct {
 12339  	cbSize   UINT
 12340  	iWidth   int32
 12341  	iHorzGap int32
 12342  	iVertGap int32
 12343  	iArrange int32
 12344  } /* winuser.h:5247:11 */
 12345  
 12346  type MINIMIZEDMETRICS = tagMINIMIZEDMETRICS /* winuser.h:5253:5 */
 12347  type PMINIMIZEDMETRICS = uintptr            /* winuser.h:5253:22 */
 12348  type LPMINIMIZEDMETRICS = uintptr           /* winuser.h:5253:41 */
 12349  
 12350  type tagICONMETRICSA = struct {
 12351  	cbSize       UINT
 12352  	iHorzSpacing int32
 12353  	iVertSpacing int32
 12354  	iTitleWrap   int32
 12355  	lfFont       LOGFONTA
 12356  } /* winuser.h:5257:11 */
 12357  
 12358  type ICONMETRICSA = tagICONMETRICSA /* winuser.h:5263:5 */
 12359  type PICONMETRICSA = uintptr        /* winuser.h:5263:18 */
 12360  type LPICONMETRICSA = uintptr       /* winuser.h:5263:33 */
 12361  
 12362  type tagICONMETRICSW = struct {
 12363  	cbSize       UINT
 12364  	iHorzSpacing int32
 12365  	iVertSpacing int32
 12366  	iTitleWrap   int32
 12367  	lfFont       LOGFONTW
 12368  } /* winuser.h:5265:11 */
 12369  
 12370  type ICONMETRICSW = tagICONMETRICSW /* winuser.h:5271:5 */
 12371  type PICONMETRICSW = uintptr        /* winuser.h:5271:18 */
 12372  type LPICONMETRICSW = uintptr       /* winuser.h:5271:33 */
 12373  
 12374  type ICONMETRICS = ICONMETRICSA     /* winuser.h:5273:3 */
 12375  type PICONMETRICS = PICONMETRICSA   /* winuser.h:5274:3 */
 12376  type LPICONMETRICS = LPICONMETRICSA /* winuser.h:5275:3 */
 12377  
 12378  type tagANIMATIONINFO = struct {
 12379  	cbSize      UINT
 12380  	iMinAnimate int32
 12381  } /* winuser.h:5279:11 */
 12382  
 12383  type ANIMATIONINFO = tagANIMATIONINFO /* winuser.h:5282:5 */
 12384  type LPANIMATIONINFO = uintptr        /* winuser.h:5282:19 */
 12385  
 12386  type tagSERIALKEYSA = struct {
 12387  	cbSize         UINT
 12388  	dwFlags        DWORD
 12389  	lpszActivePort LPSTR
 12390  	lpszPort       LPSTR
 12391  	iBaudRate      UINT
 12392  	iPortState     UINT
 12393  	iActive        UINT
 12394  } /* winuser.h:5284:11 */
 12395  
 12396  type SERIALKEYSA = tagSERIALKEYSA /* winuser.h:5292:5 */
 12397  type LPSERIALKEYSA = uintptr      /* winuser.h:5292:17 */
 12398  
 12399  type tagSERIALKEYSW = struct {
 12400  	cbSize         UINT
 12401  	dwFlags        DWORD
 12402  	lpszActivePort LPWSTR
 12403  	lpszPort       LPWSTR
 12404  	iBaudRate      UINT
 12405  	iPortState     UINT
 12406  	iActive        UINT
 12407  } /* winuser.h:5294:11 */
 12408  
 12409  type SERIALKEYSW = tagSERIALKEYSW /* winuser.h:5302:5 */
 12410  type LPSERIALKEYSW = uintptr      /* winuser.h:5302:17 */
 12411  
 12412  type SERIALKEYS = SERIALKEYSA     /* winuser.h:5304:3 */
 12413  type LPSERIALKEYS = LPSERIALKEYSA /* winuser.h:5305:3 */
 12414  
 12415  type tagHIGHCONTRASTA = struct {
 12416  	cbSize            UINT
 12417  	dwFlags           DWORD
 12418  	lpszDefaultScheme LPSTR
 12419  } /* winuser.h:5307:11 */
 12420  
 12421  type HIGHCONTRASTA = tagHIGHCONTRASTA /* winuser.h:5311:5 */
 12422  type LPHIGHCONTRASTA = uintptr        /* winuser.h:5311:19 */
 12423  
 12424  type tagHIGHCONTRASTW = struct {
 12425  	cbSize            UINT
 12426  	dwFlags           DWORD
 12427  	lpszDefaultScheme LPWSTR
 12428  } /* winuser.h:5313:11 */
 12429  
 12430  type HIGHCONTRASTW = tagHIGHCONTRASTW /* winuser.h:5317:5 */
 12431  type LPHIGHCONTRASTW = uintptr        /* winuser.h:5317:19 */
 12432  
 12433  type HIGHCONTRAST = HIGHCONTRASTA     /* winuser.h:5319:3 */
 12434  type LPHIGHCONTRAST = LPHIGHCONTRASTA /* winuser.h:5320:3 */
 12435  
 12436  // *
 12437  // This file has no copyright assigned and is placed in the Public Domain.
 12438  // This file is part of the mingw-w64 runtime package.
 12439  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 12440  
 12441  // *
 12442  // This file is part of the mingw-w64 runtime package.
 12443  // No warranty is given; refer to the file DISCLAIMER within this package.
 12444  
 12445  // __declspec(selectany) must be applied to initialized objects on GCC 5 hence must not be used here.
 12446  
 12447  type _VIDEOPARAMETERS = struct {
 12448  	Guid                  GUID
 12449  	dwOffset              ULONG
 12450  	dwCommand             ULONG
 12451  	dwFlags               ULONG
 12452  	dwMode                ULONG
 12453  	dwTVStandard          ULONG
 12454  	dwAvailableModes      ULONG
 12455  	dwAvailableTVStandard ULONG
 12456  	dwFlickerFilter       ULONG
 12457  	dwOverScanX           ULONG
 12458  	dwOverScanY           ULONG
 12459  	dwMaxUnscaledX        ULONG
 12460  	dwMaxUnscaledY        ULONG
 12461  	dwPositionX           ULONG
 12462  	dwPositionY           ULONG
 12463  	dwBrightness          ULONG
 12464  	dwContrast            ULONG
 12465  	dwCPType              ULONG
 12466  	dwCPCommand           ULONG
 12467  	dwCPStandard          ULONG
 12468  	dwCPKey               ULONG
 12469  	bCP_APSTriggerBits    ULONG
 12470  	bOEMCopyProtection    [256]UCHAR
 12471  } /* tvout.h:11:9 */
 12472  
 12473  // *
 12474  // This file has no copyright assigned and is placed in the Public Domain.
 12475  // This file is part of the mingw-w64 runtime package.
 12476  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 12477  
 12478  // *
 12479  // This file is part of the mingw-w64 runtime package.
 12480  // No warranty is given; refer to the file DISCLAIMER within this package.
 12481  
 12482  // __declspec(selectany) must be applied to initialized objects on GCC 5 hence must not be used here.
 12483  
 12484  type VIDEOPARAMETERS = _VIDEOPARAMETERS /* tvout.h:35:3 */
 12485  type PVIDEOPARAMETERS = uintptr         /* tvout.h:35:19 */
 12486  type LPVIDEOPARAMETERS = uintptr        /* tvout.h:35:37 */
 12487  
 12488  type tagFILTERKEYS = struct {
 12489  	cbSize      UINT
 12490  	dwFlags     DWORD
 12491  	iWaitMSec   DWORD
 12492  	iDelayMSec  DWORD
 12493  	iRepeatMSec DWORD
 12494  	iBounceMSec DWORD
 12495  } /* winuser.h:5409:11 */
 12496  
 12497  type FILTERKEYS = tagFILTERKEYS /* winuser.h:5416:5 */
 12498  type LPFILTERKEYS = uintptr     /* winuser.h:5416:16 */
 12499  
 12500  type tagSTICKYKEYS = struct {
 12501  	cbSize  UINT
 12502  	dwFlags DWORD
 12503  } /* winuser.h:5428:11 */
 12504  
 12505  type STICKYKEYS = tagSTICKYKEYS /* winuser.h:5431:5 */
 12506  type LPSTICKYKEYS = uintptr     /* winuser.h:5431:16 */
 12507  
 12508  type tagMOUSEKEYS = struct {
 12509  	cbSize          UINT
 12510  	dwFlags         DWORD
 12511  	iMaxSpeed       DWORD
 12512  	iTimeToMaxSpeed DWORD
 12513  	iCtrlSpeed      DWORD
 12514  	dwReserved1     DWORD
 12515  	dwReserved2     DWORD
 12516  } /* winuser.h:5461:11 */
 12517  
 12518  type MOUSEKEYS = tagMOUSEKEYS /* winuser.h:5469:5 */
 12519  type LPMOUSEKEYS = uintptr    /* winuser.h:5469:15 */
 12520  
 12521  type tagACCESSTIMEOUT = struct {
 12522  	cbSize       UINT
 12523  	dwFlags      DWORD
 12524  	iTimeOutMSec DWORD
 12525  } /* winuser.h:5487:11 */
 12526  
 12527  type ACCESSTIMEOUT = tagACCESSTIMEOUT /* winuser.h:5491:5 */
 12528  type LPACCESSTIMEOUT = uintptr        /* winuser.h:5491:19 */
 12529  
 12530  type tagSOUNDSENTRYA = struct {
 12531  	cbSize                 UINT
 12532  	dwFlags                DWORD
 12533  	iFSTextEffect          DWORD
 12534  	iFSTextEffectMSec      DWORD
 12535  	iFSTextEffectColorBits DWORD
 12536  	iFSGrafEffect          DWORD
 12537  	iFSGrafEffectMSec      DWORD
 12538  	iFSGrafEffectColor     DWORD
 12539  	iWindowsEffect         DWORD
 12540  	iWindowsEffectMSec     DWORD
 12541  	lpszWindowsEffectDLL   LPSTR
 12542  	iWindowsEffectOrdinal  DWORD
 12543  } /* winuser.h:5512:11 */
 12544  
 12545  type SOUNDSENTRYA = tagSOUNDSENTRYA /* winuser.h:5525:5 */
 12546  type LPSOUNDSENTRYA = uintptr       /* winuser.h:5525:18 */
 12547  
 12548  type tagSOUNDSENTRYW = struct {
 12549  	cbSize                 UINT
 12550  	dwFlags                DWORD
 12551  	iFSTextEffect          DWORD
 12552  	iFSTextEffectMSec      DWORD
 12553  	iFSTextEffectColorBits DWORD
 12554  	iFSGrafEffect          DWORD
 12555  	iFSGrafEffectMSec      DWORD
 12556  	iFSGrafEffectColor     DWORD
 12557  	iWindowsEffect         DWORD
 12558  	iWindowsEffectMSec     DWORD
 12559  	lpszWindowsEffectDLL   LPWSTR
 12560  	iWindowsEffectOrdinal  DWORD
 12561  } /* winuser.h:5527:11 */
 12562  
 12563  type SOUNDSENTRYW = tagSOUNDSENTRYW /* winuser.h:5540:5 */
 12564  type LPSOUNDSENTRYW = uintptr       /* winuser.h:5540:18 */
 12565  
 12566  type SOUNDSENTRY = SOUNDSENTRYA     /* winuser.h:5542:3 */
 12567  type LPSOUNDSENTRY = LPSOUNDSENTRYA /* winuser.h:5543:3 */
 12568  
 12569  type tagTOGGLEKEYS = struct {
 12570  	cbSize  UINT
 12571  	dwFlags DWORD
 12572  } /* winuser.h:5555:11 */
 12573  
 12574  type TOGGLEKEYS = tagTOGGLEKEYS /* winuser.h:5558:5 */
 12575  type LPTOGGLEKEYS = uintptr     /* winuser.h:5558:16 */
 12576  
 12577  type tagMONITORINFO = struct {
 12578  	cbSize    DWORD
 12579  	rcMonitor RECT
 12580  	rcWork    RECT
 12581  	dwFlags   DWORD
 12582  } /* winuser.h:5560:11 */
 12583  
 12584  type MONITORINFO = tagMONITORINFO /* winuser.h:5565:5 */
 12585  type LPMONITORINFO = uintptr      /* winuser.h:5565:17 */
 12586  
 12587  type tagMONITORINFOEXA = struct {
 12588  	__0 struct {
 12589  		cbSize    DWORD
 12590  		rcMonitor RECT
 12591  		rcWork    RECT
 12592  		dwFlags   DWORD
 12593  	}
 12594  	szDevice [32]CHAR
 12595  } /* winuser.h:5587:11 */
 12596  
 12597  type MONITORINFOEXA = tagMONITORINFOEXA /* winuser.h:5595:5 */
 12598  type LPMONITORINFOEXA = uintptr         /* winuser.h:5595:20 */
 12599  
 12600  type tagMONITORINFOEXW = struct {
 12601  	__0 struct {
 12602  		cbSize    DWORD
 12603  		rcMonitor RECT
 12604  		rcWork    RECT
 12605  		dwFlags   DWORD
 12606  	}
 12607  	szDevice [32]WCHAR
 12608  } /* winuser.h:5597:11 */
 12609  
 12610  type MONITORINFOEXW = tagMONITORINFOEXW /* winuser.h:5605:5 */
 12611  type LPMONITORINFOEXW = uintptr         /* winuser.h:5605:20 */
 12612  
 12613  type MONITORINFOEX = MONITORINFOEXA     /* winuser.h:5607:3 */
 12614  type LPMONITORINFOEX = LPMONITORINFOEXA /* winuser.h:5608:3 */
 12615  
 12616  type MONITORENUMPROC = uintptr /* winuser.h:5611:19 */
 12617  
 12618  type WINEVENTPROC = uintptr /* winuser.h:5653:16 */
 12619  
 12620  type tagGUITHREADINFO = struct {
 12621  	cbSize        DWORD
 12622  	flags         DWORD
 12623  	hwndActive    HWND
 12624  	hwndFocus     HWND
 12625  	hwndCapture   HWND
 12626  	hwndMenuOwner HWND
 12627  	hwndMoveSize  HWND
 12628  	hwndCaret     HWND
 12629  	rcCaret       RECT
 12630  } /* winuser.h:5830:11 */
 12631  
 12632  type GUITHREADINFO = tagGUITHREADINFO /* winuser.h:5840:5 */
 12633  type PGUITHREADINFO = uintptr         /* winuser.h:5840:19 */
 12634  type LPGUITHREADINFO = uintptr        /* winuser.h:5840:35 */
 12635  
 12636  type tagCURSORINFO = struct {
 12637  	cbSize      DWORD
 12638  	flags       DWORD
 12639  	hCursor     HCURSOR
 12640  	ptScreenPos POINT
 12641  } /* winuser.h:5908:11 */
 12642  
 12643  type CURSORINFO = tagCURSORINFO /* winuser.h:5913:5 */
 12644  type PCURSORINFO = uintptr      /* winuser.h:5913:16 */
 12645  type LPCURSORINFO = uintptr     /* winuser.h:5913:29 */
 12646  
 12647  type tagWINDOWINFO = struct {
 12648  	cbSize          DWORD
 12649  	rcWindow        RECT
 12650  	rcClient        RECT
 12651  	dwStyle         DWORD
 12652  	dwExStyle       DWORD
 12653  	dwWindowStatus  DWORD
 12654  	cxWindowBorders UINT
 12655  	cyWindowBorders UINT
 12656  	atomWindowType  ATOM
 12657  	wCreatorVersion WORD
 12658  } /* winuser.h:5922:11 */
 12659  
 12660  type WINDOWINFO = tagWINDOWINFO /* winuser.h:5933:5 */
 12661  type PWINDOWINFO = uintptr      /* winuser.h:5933:16 */
 12662  type LPWINDOWINFO = uintptr     /* winuser.h:5933:29 */
 12663  
 12664  type tagTITLEBARINFO = struct {
 12665  	cbSize     DWORD
 12666  	rcTitleBar RECT
 12667  	rgstate    [6]DWORD
 12668  } /* winuser.h:5939:11 */
 12669  
 12670  type TITLEBARINFO = tagTITLEBARINFO /* winuser.h:5943:5 */
 12671  type PTITLEBARINFO = uintptr        /* winuser.h:5943:18 */
 12672  type LPTITLEBARINFO = uintptr       /* winuser.h:5943:33 */
 12673  
 12674  type tagMENUBARINFO = struct {
 12675  	cbSize      DWORD
 12676  	rcBar       RECT
 12677  	hMenu       HMENU
 12678  	hwndMenu    HWND
 12679  	fBarFocused uint8 /* WINBOOL fBarFocused: 1, WINBOOL fFocused: 1 */
 12680  	_           [3]byte
 12681  } /* winuser.h:5956:11 */
 12682  
 12683  type MENUBARINFO = tagMENUBARINFO /* winuser.h:5963:5 */
 12684  type PMENUBARINFO = uintptr       /* winuser.h:5963:17 */
 12685  type LPMENUBARINFO = uintptr      /* winuser.h:5963:31 */
 12686  
 12687  type tagSCROLLBARINFO = struct {
 12688  	cbSize        DWORD
 12689  	rcScrollBar   RECT
 12690  	dxyLineButton int32
 12691  	xyThumbTop    int32
 12692  	xyThumbBottom int32
 12693  	reserved      int32
 12694  	rgstate       [6]DWORD
 12695  } /* winuser.h:5967:11 */
 12696  
 12697  type SCROLLBARINFO = tagSCROLLBARINFO /* winuser.h:5975:5 */
 12698  type PSCROLLBARINFO = uintptr         /* winuser.h:5975:19 */
 12699  type LPSCROLLBARINFO = uintptr        /* winuser.h:5975:35 */
 12700  
 12701  type tagCOMBOBOXINFO = struct {
 12702  	cbSize      DWORD
 12703  	rcItem      RECT
 12704  	rcButton    RECT
 12705  	stateButton DWORD
 12706  	hwndCombo   HWND
 12707  	hwndItem    HWND
 12708  	hwndList    HWND
 12709  } /* winuser.h:5979:11 */
 12710  
 12711  type COMBOBOXINFO = tagCOMBOBOXINFO /* winuser.h:5987:5 */
 12712  type PCOMBOBOXINFO = uintptr        /* winuser.h:5987:18 */
 12713  type LPCOMBOBOXINFO = uintptr       /* winuser.h:5987:33 */
 12714  
 12715  type tagALTTABINFO = struct {
 12716  	cbSize    DWORD
 12717  	cItems    int32
 12718  	cColumns  int32
 12719  	cRows     int32
 12720  	iColFocus int32
 12721  	iRowFocus int32
 12722  	cxItem    int32
 12723  	cyItem    int32
 12724  	ptStart   POINT
 12725  } /* winuser.h:6004:11 */
 12726  
 12727  type ALTTABINFO = tagALTTABINFO /* winuser.h:6014:5 */
 12728  type PALTTABINFO = uintptr      /* winuser.h:6014:16 */
 12729  type LPALTTABINFO = uintptr     /* winuser.h:6014:29 */
 12730  
 12731  type HRAWINPUT__ = struct{ unused int32 } /* winuser.h:6028:3 */
 12732  
 12733  type HRAWINPUT = uintptr /* winuser.h:6028:3 */
 12734  
 12735  type tagRAWINPUTHEADER = struct {
 12736  	dwType  DWORD
 12737  	dwSize  DWORD
 12738  	hDevice HANDLE
 12739  	wParam  WPARAM
 12740  } /* winuser.h:6037:11 */
 12741  
 12742  type RAWINPUTHEADER = tagRAWINPUTHEADER /* winuser.h:6042:5 */
 12743  type PRAWINPUTHEADER = uintptr          /* winuser.h:6042:20 */
 12744  type LPRAWINPUTHEADER = uintptr         /* winuser.h:6042:37 */
 12745  
 12746  type tagRAWMOUSE = struct {
 12747  	usFlags            USHORT
 12748  	_                  [2]byte
 12749  	__4                struct{ ulButtons ULONG }
 12750  	ulRawButtons       ULONG
 12751  	lLastX             LONG
 12752  	lLastY             LONG
 12753  	ulExtraInformation ULONG
 12754  } /* winuser.h:6050:11 */
 12755  
 12756  type RAWMOUSE = tagRAWMOUSE /* winuser.h:6063:5 */
 12757  type PRAWMOUSE = uintptr    /* winuser.h:6063:14 */
 12758  type LPRAWMOUSE = uintptr   /* winuser.h:6063:25 */
 12759  
 12760  type tagRAWKEYBOARD = struct {
 12761  	MakeCode         USHORT
 12762  	Flags            USHORT
 12763  	Reserved         USHORT
 12764  	VKey             USHORT
 12765  	Message          UINT
 12766  	ExtraInformation ULONG
 12767  } /* winuser.h:6094:11 */
 12768  
 12769  type RAWKEYBOARD = tagRAWKEYBOARD /* winuser.h:6101:5 */
 12770  type PRAWKEYBOARD = uintptr       /* winuser.h:6101:17 */
 12771  type LPRAWKEYBOARD = uintptr      /* winuser.h:6101:31 */
 12772  
 12773  type tagRAWHID = struct {
 12774  	dwSizeHid DWORD
 12775  	dwCount   DWORD
 12776  	bRawData  [1]BYTE
 12777  	_         [3]byte
 12778  } /* winuser.h:6114:11 */
 12779  
 12780  type RAWHID = tagRAWHID /* winuser.h:6118:5 */
 12781  type PRAWHID = uintptr  /* winuser.h:6118:12 */
 12782  type LPRAWHID = uintptr /* winuser.h:6118:21 */
 12783  
 12784  type tagRAWINPUT = struct {
 12785  	header RAWINPUTHEADER
 12786  	data   struct{ mouse RAWMOUSE }
 12787  } /* winuser.h:6120:11 */
 12788  
 12789  type RAWINPUT = tagRAWINPUT /* winuser.h:6127:5 */
 12790  type PRAWINPUT = uintptr    /* winuser.h:6127:14 */
 12791  type LPRAWINPUT = uintptr   /* winuser.h:6127:25 */
 12792  
 12793  type tagRID_DEVICE_INFO_MOUSE = struct {
 12794  	dwId                DWORD
 12795  	dwNumberOfButtons   DWORD
 12796  	dwSampleRate        DWORD
 12797  	fHasHorizontalWheel WINBOOL
 12798  } /* winuser.h:6150:11 */
 12799  
 12800  type RID_DEVICE_INFO_MOUSE = tagRID_DEVICE_INFO_MOUSE /* winuser.h:6155:5 */
 12801  type PRID_DEVICE_INFO_MOUSE = uintptr                 /* winuser.h:6155:27 */
 12802  
 12803  type tagRID_DEVICE_INFO_KEYBOARD = struct {
 12804  	dwType                 DWORD
 12805  	dwSubType              DWORD
 12806  	dwKeyboardMode         DWORD
 12807  	dwNumberOfFunctionKeys DWORD
 12808  	dwNumberOfIndicators   DWORD
 12809  	dwNumberOfKeysTotal    DWORD
 12810  } /* winuser.h:6157:11 */
 12811  
 12812  type RID_DEVICE_INFO_KEYBOARD = tagRID_DEVICE_INFO_KEYBOARD /* winuser.h:6164:5 */
 12813  type PRID_DEVICE_INFO_KEYBOARD = uintptr                    /* winuser.h:6164:30 */
 12814  
 12815  type tagRID_DEVICE_INFO_HID = struct {
 12816  	dwVendorId      DWORD
 12817  	dwProductId     DWORD
 12818  	dwVersionNumber DWORD
 12819  	usUsagePage     USHORT
 12820  	usUsage         USHORT
 12821  } /* winuser.h:6166:11 */
 12822  
 12823  type RID_DEVICE_INFO_HID = tagRID_DEVICE_INFO_HID /* winuser.h:6172:5 */
 12824  type PRID_DEVICE_INFO_HID = uintptr               /* winuser.h:6172:25 */
 12825  
 12826  type tagRID_DEVICE_INFO = struct {
 12827  	cbSize DWORD
 12828  	dwType DWORD
 12829  	u      struct {
 12830  		mouse RID_DEVICE_INFO_MOUSE
 12831  		_     [8]byte
 12832  	}
 12833  } /* winuser.h:6174:11 */
 12834  
 12835  type RID_DEVICE_INFO = tagRID_DEVICE_INFO /* winuser.h:6182:5 */
 12836  type PRID_DEVICE_INFO = uintptr           /* winuser.h:6182:21 */
 12837  type LPRID_DEVICE_INFO = uintptr          /* winuser.h:6182:39 */
 12838  
 12839  type tagRAWINPUTDEVICE = struct {
 12840  	usUsagePage USHORT
 12841  	usUsage     USHORT
 12842  	dwFlags     DWORD
 12843  	hwndTarget  HWND
 12844  } /* winuser.h:6190:11 */
 12845  
 12846  type RAWINPUTDEVICE = tagRAWINPUTDEVICE /* winuser.h:6195:5 */
 12847  type PRAWINPUTDEVICE = uintptr          /* winuser.h:6195:20 */
 12848  type LPRAWINPUTDEVICE = uintptr         /* winuser.h:6195:37 */
 12849  
 12850  type PCRAWINPUTDEVICE = uintptr /* winuser.h:6197:32 */
 12851  
 12852  type tagRAWINPUTDEVICELIST = struct {
 12853  	hDevice HANDLE
 12854  	dwType  DWORD
 12855  } /* winuser.h:6224:11 */
 12856  
 12857  type RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST /* winuser.h:6227:5 */
 12858  type PRAWINPUTDEVICELIST = uintptr              /* winuser.h:6227:24 */
 12859  
 12860  // *
 12861  // This file is part of the mingw-w64 runtime package.
 12862  // No warranty is given; refer to the file DISCLAIMER within this package.
 12863  
 12864  type LGRPID = DWORD  /* winnls.h:644:17 */
 12865  type LCTYPE = DWORD  /* winnls.h:645:17 */
 12866  type CALTYPE = DWORD /* winnls.h:646:17 */
 12867  type CALID = DWORD   /* winnls.h:647:17 */
 12868  
 12869  type _cpinfo = struct {
 12870  	MaxCharSize UINT
 12871  	DefaultChar [2]BYTE
 12872  	LeadByte    [12]BYTE
 12873  	_           [2]byte
 12874  } /* winnls.h:649:11 */
 12875  
 12876  type CPINFO = _cpinfo   /* winnls.h:653:5 */
 12877  type LPCPINFO = uintptr /* winnls.h:653:12 */
 12878  type _cpinfoexA = struct {
 12879  	MaxCharSize        UINT
 12880  	DefaultChar        [2]BYTE
 12881  	LeadByte           [12]BYTE
 12882  	UnicodeDefaultChar WCHAR
 12883  	CodePage           UINT
 12884  	CodePageName       [260]CHAR
 12885  } /* winnls.h:654:11 */
 12886  
 12887  type CPINFOEXA = _cpinfoexA /* winnls.h:661:5 */
 12888  type LPCPINFOEXA = uintptr  /* winnls.h:661:15 */
 12889  
 12890  type _cpinfoexW = struct {
 12891  	MaxCharSize        UINT
 12892  	DefaultChar        [2]BYTE
 12893  	LeadByte           [12]BYTE
 12894  	UnicodeDefaultChar WCHAR
 12895  	CodePage           UINT
 12896  	CodePageName       [260]WCHAR
 12897  } /* winnls.h:663:11 */
 12898  
 12899  type CPINFOEXW = _cpinfoexW /* winnls.h:670:5 */
 12900  type LPCPINFOEXW = uintptr  /* winnls.h:670:15 */
 12901  
 12902  type CPINFOEX = CPINFOEXA     /* winnls.h:672:3 */
 12903  type LPCPINFOEX = LPCPINFOEXA /* winnls.h:673:3 */
 12904  
 12905  type _numberfmtA = struct {
 12906  	NumDigits     UINT
 12907  	LeadingZero   UINT
 12908  	Grouping      UINT
 12909  	lpDecimalSep  LPSTR
 12910  	lpThousandSep LPSTR
 12911  	NegativeOrder UINT
 12912  } /* winnls.h:675:11 */
 12913  
 12914  type NUMBERFMTA = _numberfmtA /* winnls.h:682:5 */
 12915  type LPNUMBERFMTA = uintptr   /* winnls.h:682:16 */
 12916  type _numberfmtW = struct {
 12917  	NumDigits     UINT
 12918  	LeadingZero   UINT
 12919  	Grouping      UINT
 12920  	lpDecimalSep  LPWSTR
 12921  	lpThousandSep LPWSTR
 12922  	NegativeOrder UINT
 12923  } /* winnls.h:683:11 */
 12924  
 12925  type NUMBERFMTW = _numberfmtW /* winnls.h:690:5 */
 12926  type LPNUMBERFMTW = uintptr   /* winnls.h:690:16 */
 12927  
 12928  type NUMBERFMT = NUMBERFMTA     /* winnls.h:692:3 */
 12929  type LPNUMBERFMT = LPNUMBERFMTA /* winnls.h:693:3 */
 12930  
 12931  type _currencyfmtA = struct {
 12932  	NumDigits        UINT
 12933  	LeadingZero      UINT
 12934  	Grouping         UINT
 12935  	lpDecimalSep     LPSTR
 12936  	lpThousandSep    LPSTR
 12937  	NegativeOrder    UINT
 12938  	PositiveOrder    UINT
 12939  	lpCurrencySymbol LPSTR
 12940  } /* winnls.h:695:11 */
 12941  
 12942  type CURRENCYFMTA = _currencyfmtA /* winnls.h:704:5 */
 12943  type LPCURRENCYFMTA = uintptr     /* winnls.h:704:18 */
 12944  
 12945  type _currencyfmtW = struct {
 12946  	NumDigits        UINT
 12947  	LeadingZero      UINT
 12948  	Grouping         UINT
 12949  	lpDecimalSep     LPWSTR
 12950  	lpThousandSep    LPWSTR
 12951  	NegativeOrder    UINT
 12952  	PositiveOrder    UINT
 12953  	lpCurrencySymbol LPWSTR
 12954  } /* winnls.h:706:11 */
 12955  
 12956  type CURRENCYFMTW = _currencyfmtW /* winnls.h:715:5 */
 12957  type LPCURRENCYFMTW = uintptr     /* winnls.h:715:18 */
 12958  
 12959  type CURRENCYFMT = CURRENCYFMTA     /* winnls.h:717:3 */
 12960  type LPCURRENCYFMT = LPCURRENCYFMTA /* winnls.h:718:3 */
 12961  
 12962  type NLS_FUNCTION = DWORD /* winnls.h:724:17 */
 12963  
 12964  type _nlsversioninfo = struct {
 12965  	dwNLSVersionInfoSize DWORD
 12966  	dwNLSVersion         DWORD
 12967  	dwDefinedVersion     DWORD
 12968  } /* winnls.h:735:11 */
 12969  
 12970  type NLSVERSIONINFO = _nlsversioninfo /* winnls.h:739:5 */
 12971  type LPNLSVERSIONINFO = uintptr       /* winnls.h:739:20 */
 12972  
 12973  type _nlsversioninfoex = struct {
 12974  	dwNLSVersionInfoSize DWORD
 12975  	dwNLSVersion         DWORD
 12976  	dwDefinedVersion     DWORD
 12977  	dwEffectiveId        DWORD
 12978  	guidCustomVersion    GUID
 12979  } /* winnls.h:742:11 */
 12980  
 12981  type NLSVERSIONINFOEX = _nlsversioninfoex /* winnls.h:748:5 */
 12982  type LPNLSVERSIONINFOEX = uintptr         /* winnls.h:748:22 */
 12983  
 12984  type GEOID = LONG     /* winnls.h:750:16 */
 12985  type GEOTYPE = DWORD  /* winnls.h:751:17 */
 12986  type GEOCLASS = DWORD /* winnls.h:752:17 */
 12987  
 12988  type LANGUAGEGROUP_ENUMPROCA = uintptr   /* winnls.h:798:19 */
 12989  type LANGGROUPLOCALE_ENUMPROCA = uintptr /* winnls.h:799:19 */
 12990  type UILANGUAGE_ENUMPROCA = uintptr      /* winnls.h:800:19 */
 12991  type CODEPAGE_ENUMPROCA = uintptr        /* winnls.h:801:19 */
 12992  type DATEFMT_ENUMPROCA = uintptr         /* winnls.h:802:19 */
 12993  type DATEFMT_ENUMPROCEXA = uintptr       /* winnls.h:803:19 */
 12994  type TIMEFMT_ENUMPROCA = uintptr         /* winnls.h:804:19 */
 12995  type CALINFO_ENUMPROCA = uintptr         /* winnls.h:805:19 */
 12996  type CALINFO_ENUMPROCEXA = uintptr       /* winnls.h:806:19 */
 12997  type LOCALE_ENUMPROCA = uintptr          /* winnls.h:807:19 */
 12998  type LOCALE_ENUMPROCW = uintptr          /* winnls.h:808:19 */
 12999  type LANGUAGEGROUP_ENUMPROCW = uintptr   /* winnls.h:809:19 */
 13000  type LANGGROUPLOCALE_ENUMPROCW = uintptr /* winnls.h:810:19 */
 13001  type UILANGUAGE_ENUMPROCW = uintptr      /* winnls.h:811:19 */
 13002  type CODEPAGE_ENUMPROCW = uintptr        /* winnls.h:812:19 */
 13003  type DATEFMT_ENUMPROCW = uintptr         /* winnls.h:813:19 */
 13004  type DATEFMT_ENUMPROCEXW = uintptr       /* winnls.h:814:19 */
 13005  type TIMEFMT_ENUMPROCW = uintptr         /* winnls.h:815:19 */
 13006  type CALINFO_ENUMPROCW = uintptr         /* winnls.h:816:19 */
 13007  type CALINFO_ENUMPROCEXW = uintptr       /* winnls.h:817:19 */
 13008  type GEO_ENUMPROC = uintptr              /* winnls.h:818:19 */
 13009  
 13010  type _FILEMUIINFO = struct {
 13011  	dwSize               DWORD
 13012  	dwVersion            DWORD
 13013  	dwFileType           DWORD
 13014  	pChecksum            [16]BYTE
 13015  	pServiceChecksum     [16]BYTE
 13016  	dwLanguageNameOffset DWORD
 13017  	dwTypeIDMainSize     DWORD
 13018  	dwTypeIDMainOffset   DWORD
 13019  	dwTypeNameMainOffset DWORD
 13020  	dwTypeIDMUISize      DWORD
 13021  	dwTypeIDMUIOffset    DWORD
 13022  	dwTypeNameMUIOffset  DWORD
 13023  	abBuffer             [8]BYTE
 13024  } /* winnls.h:869:11 */
 13025  
 13026  type FILEMUIINFO = _FILEMUIINFO /* winnls.h:883:5 */
 13027  type PFILEMUIINFO = uintptr     /* winnls.h:883:17 */
 13028  
 13029  // *
 13030  // This file has no copyright assigned and is placed in the Public Domain.
 13031  // This file is part of the mingw-w64 runtime package.
 13032  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13033  
 13034  // *
 13035  // This file has no copyright assigned and is placed in the Public Domain.
 13036  // This file is part of the mingw-w64 runtime package.
 13037  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13038  
 13039  // *
 13040  // This file is part of the mingw-w64 runtime package.
 13041  // No warranty is given; refer to the file DISCLAIMER within this package.
 13042  
 13043  type _COORD = struct {
 13044  	X SHORT
 13045  	Y SHORT
 13046  } /* wincon.h:17:11 */
 13047  
 13048  // *
 13049  // This file has no copyright assigned and is placed in the Public Domain.
 13050  // This file is part of the mingw-w64 runtime package.
 13051  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13052  
 13053  // *
 13054  // This file has no copyright assigned and is placed in the Public Domain.
 13055  // This file is part of the mingw-w64 runtime package.
 13056  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13057  
 13058  // *
 13059  // This file is part of the mingw-w64 runtime package.
 13060  // No warranty is given; refer to the file DISCLAIMER within this package.
 13061  
 13062  type COORD = _COORD   /* wincon.h:20:5 */
 13063  type PCOORD = uintptr /* wincon.h:20:11 */
 13064  
 13065  type _SMALL_RECT = struct {
 13066  	Left   SHORT
 13067  	Top    SHORT
 13068  	Right  SHORT
 13069  	Bottom SHORT
 13070  } /* wincon.h:22:11 */
 13071  
 13072  type SMALL_RECT = _SMALL_RECT /* wincon.h:27:5 */
 13073  type PSMALL_RECT = uintptr    /* wincon.h:27:16 */
 13074  
 13075  type _KEY_EVENT_RECORD = struct {
 13076  	bKeyDown          WINBOOL
 13077  	wRepeatCount      WORD
 13078  	wVirtualKeyCode   WORD
 13079  	wVirtualScanCode  WORD
 13080  	uChar             struct{ UnicodeChar WCHAR }
 13081  	dwControlKeyState DWORD
 13082  } /* wincon.h:29:11 */
 13083  
 13084  type KEY_EVENT_RECORD = _KEY_EVENT_RECORD /* wincon.h:39:5 */
 13085  type PKEY_EVENT_RECORD = uintptr          /* wincon.h:39:22 */
 13086  
 13087  type _MOUSE_EVENT_RECORD = struct {
 13088  	dwMousePosition   COORD
 13089  	dwButtonState     DWORD
 13090  	dwControlKeyState DWORD
 13091  	dwEventFlags      DWORD
 13092  } /* wincon.h:58:11 */
 13093  
 13094  type MOUSE_EVENT_RECORD = _MOUSE_EVENT_RECORD /* wincon.h:63:5 */
 13095  type PMOUSE_EVENT_RECORD = uintptr            /* wincon.h:63:24 */
 13096  
 13097  type _WINDOW_BUFFER_SIZE_RECORD = struct{ dwSize COORD } /* wincon.h:78:11 */
 13098  
 13099  type WINDOW_BUFFER_SIZE_RECORD = _WINDOW_BUFFER_SIZE_RECORD /* wincon.h:80:5 */
 13100  type PWINDOW_BUFFER_SIZE_RECORD = uintptr                   /* wincon.h:80:31 */
 13101  
 13102  type _MENU_EVENT_RECORD = struct{ dwCommandId UINT } /* wincon.h:82:11 */
 13103  
 13104  type MENU_EVENT_RECORD = _MENU_EVENT_RECORD /* wincon.h:84:5 */
 13105  type PMENU_EVENT_RECORD = uintptr           /* wincon.h:84:23 */
 13106  
 13107  type _FOCUS_EVENT_RECORD = struct{ bSetFocus WINBOOL } /* wincon.h:86:11 */
 13108  
 13109  type FOCUS_EVENT_RECORD = _FOCUS_EVENT_RECORD /* wincon.h:88:5 */
 13110  type PFOCUS_EVENT_RECORD = uintptr            /* wincon.h:88:24 */
 13111  
 13112  type _INPUT_RECORD = struct {
 13113  	EventType WORD
 13114  	_         [2]byte
 13115  	Event     struct{ KeyEvent KEY_EVENT_RECORD }
 13116  } /* wincon.h:90:11 */
 13117  
 13118  type INPUT_RECORD = _INPUT_RECORD /* wincon.h:99:5 */
 13119  type PINPUT_RECORD = uintptr      /* wincon.h:99:18 */
 13120  
 13121  type _CHAR_INFO = struct {
 13122  	Char       struct{ UnicodeChar WCHAR }
 13123  	Attributes WORD
 13124  } /* wincon.h:107:11 */
 13125  
 13126  type CHAR_INFO = _CHAR_INFO /* wincon.h:113:5 */
 13127  type PCHAR_INFO = uintptr   /* wincon.h:113:15 */
 13128  
 13129  type _CONSOLE_SCREEN_BUFFER_INFO = struct {
 13130  	dwSize              COORD
 13131  	dwCursorPosition    COORD
 13132  	wAttributes         WORD
 13133  	srWindow            SMALL_RECT
 13134  	dwMaximumWindowSize COORD
 13135  } /* wincon.h:133:11 */
 13136  
 13137  type CONSOLE_SCREEN_BUFFER_INFO = _CONSOLE_SCREEN_BUFFER_INFO /* wincon.h:139:5 */
 13138  type PCONSOLE_SCREEN_BUFFER_INFO = uintptr                    /* wincon.h:139:32 */
 13139  
 13140  type _CONSOLE_CURSOR_INFO = struct {
 13141  	dwSize   DWORD
 13142  	bVisible WINBOOL
 13143  } /* wincon.h:141:11 */
 13144  
 13145  type CONSOLE_CURSOR_INFO = _CONSOLE_CURSOR_INFO /* wincon.h:144:5 */
 13146  type PCONSOLE_CURSOR_INFO = uintptr             /* wincon.h:144:25 */
 13147  
 13148  type _CONSOLE_FONT_INFO = struct {
 13149  	nFont      DWORD
 13150  	dwFontSize COORD
 13151  } /* wincon.h:146:11 */
 13152  
 13153  type CONSOLE_FONT_INFO = _CONSOLE_FONT_INFO /* wincon.h:149:5 */
 13154  type PCONSOLE_FONT_INFO = uintptr           /* wincon.h:149:23 */
 13155  
 13156  type _CONSOLE_SELECTION_INFO = struct {
 13157  	dwFlags           DWORD
 13158  	dwSelectionAnchor COORD
 13159  	srSelection       SMALL_RECT
 13160  } /* wincon.h:151:11 */
 13161  
 13162  type CONSOLE_SELECTION_INFO = _CONSOLE_SELECTION_INFO /* wincon.h:155:5 */
 13163  type PCONSOLE_SELECTION_INFO = uintptr                /* wincon.h:155:28 */
 13164  
 13165  type PHANDLER_ROUTINE = uintptr /* wincon.h:163:19 */
 13166  
 13167  type _CONSOLE_FONT_INFOEX = struct {
 13168  	cbSize     ULONG
 13169  	nFont      DWORD
 13170  	dwFontSize COORD
 13171  	FontFamily UINT
 13172  	FontWeight UINT
 13173  	FaceName   [32]WCHAR
 13174  } /* wincon.h:297:9 */
 13175  
 13176  type CONSOLE_FONT_INFOEX = _CONSOLE_FONT_INFOEX /* wincon.h:304:3 */
 13177  type PCONSOLE_FONT_INFOEX = uintptr             /* wincon.h:304:24 */
 13178  
 13179  type _CONSOLE_HISTORY_INFO = struct {
 13180  	cbSize                 UINT
 13181  	HistoryBufferSize      UINT
 13182  	NumberOfHistoryBuffers UINT
 13183  	dwFlags                DWORD
 13184  } /* wincon.h:306:9 */
 13185  
 13186  type CONSOLE_HISTORY_INFO = _CONSOLE_HISTORY_INFO /* wincon.h:311:3 */
 13187  type PCONSOLE_HISTORY_INFO = uintptr              /* wincon.h:311:25 */
 13188  
 13189  type _CONSOLE_READCONSOLE_CONTROL = struct {
 13190  	nLength           ULONG
 13191  	nInitialChars     ULONG
 13192  	dwCtrlWakeupMask  ULONG
 13193  	dwControlKeyState ULONG
 13194  } /* wincon.h:313:9 */
 13195  
 13196  type CONSOLE_READCONSOLE_CONTROL = _CONSOLE_READCONSOLE_CONTROL /* wincon.h:318:3 */
 13197  type PCONSOLE_READCONSOLE_CONTROL = uintptr                     /* wincon.h:318:32 */
 13198  
 13199  type _CONSOLE_SCREEN_BUFFER_INFOEX = struct {
 13200  	cbSize               ULONG
 13201  	dwSize               COORD
 13202  	dwCursorPosition     COORD
 13203  	wAttributes          WORD
 13204  	srWindow             SMALL_RECT
 13205  	dwMaximumWindowSize  COORD
 13206  	wPopupAttributes     WORD
 13207  	bFullscreenSupported WINBOOL
 13208  	ColorTable           [16]COLORREF
 13209  } /* wincon.h:320:9 */
 13210  
 13211  type CONSOLE_SCREEN_BUFFER_INFOEX = _CONSOLE_SCREEN_BUFFER_INFOEX /* wincon.h:330:3 */
 13212  type PCONSOLE_SCREEN_BUFFER_INFOEX = uintptr                      /* wincon.h:330:33 */
 13213  
 13214  // *
 13215  // This file has no copyright assigned and is placed in the Public Domain.
 13216  // This file is part of the mingw-w64 runtime package.
 13217  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13218  
 13219  // *
 13220  // This file has no copyright assigned and is placed in the Public Domain.
 13221  // This file is part of the mingw-w64 runtime package.
 13222  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13223  
 13224  // *
 13225  // This file has no copyright assigned and is placed in the Public Domain.
 13226  // This file is part of the mingw-w64 runtime package.
 13227  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13228  
 13229  type tagVS_FIXEDFILEINFO = struct {
 13230  	dwSignature        DWORD
 13231  	dwStrucVersion     DWORD
 13232  	dwFileVersionMS    DWORD
 13233  	dwFileVersionLS    DWORD
 13234  	dwProductVersionMS DWORD
 13235  	dwProductVersionLS DWORD
 13236  	dwFileFlagsMask    DWORD
 13237  	dwFileFlags        DWORD
 13238  	dwFileOS           DWORD
 13239  	dwFileType         DWORD
 13240  	dwFileSubtype      DWORD
 13241  	dwFileDateMS       DWORD
 13242  	dwFileDateLS       DWORD
 13243  } /* winver.h:113:11 */
 13244  
 13245  // *
 13246  // This file has no copyright assigned and is placed in the Public Domain.
 13247  // This file is part of the mingw-w64 runtime package.
 13248  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13249  
 13250  // *
 13251  // This file has no copyright assigned and is placed in the Public Domain.
 13252  // This file is part of the mingw-w64 runtime package.
 13253  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13254  
 13255  // *
 13256  // This file has no copyright assigned and is placed in the Public Domain.
 13257  // This file is part of the mingw-w64 runtime package.
 13258  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13259  
 13260  type VS_FIXEDFILEINFO = tagVS_FIXEDFILEINFO /* winver.h:128:5 */
 13261  
 13262  // *
 13263  // This file has no copyright assigned and is placed in the Public Domain.
 13264  // This file is part of the mingw-w64 runtime package.
 13265  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13266  
 13267  // *
 13268  // This file has no copyright assigned and is placed in the Public Domain.
 13269  // This file is part of the mingw-w64 runtime package.
 13270  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13271  
 13272  // *
 13273  // This file is part of the mingw-w64 runtime package.
 13274  // No warranty is given; refer to the file DISCLAIMER within this package.
 13275  
 13276  type REGSAM = ACCESS_MASK /* winreg.h:35:23 */
 13277  type LSTATUS = LONG       /* winreg.h:36:16 */
 13278  
 13279  type val_context = struct {
 13280  	valuelen      int32
 13281  	value_context LPVOID
 13282  	val_buff_ptr  LPVOID
 13283  } /* winreg.h:54:3 */
 13284  
 13285  type PVALCONTEXT = uintptr /* winreg.h:60:30 */
 13286  
 13287  type pvalueA = struct {
 13288  	pv_valuename     LPSTR
 13289  	pv_valuelen      int32
 13290  	pv_value_context LPVOID
 13291  	pv_type          DWORD
 13292  } /* winreg.h:62:11 */
 13293  
 13294  type PVALUEA = pvalueA  /* winreg.h:67:4 */
 13295  type PPVALUEA = uintptr /* winreg.h:67:12 */
 13296  
 13297  type pvalueW = struct {
 13298  	pv_valuename     LPWSTR
 13299  	pv_valuelen      int32
 13300  	pv_value_context LPVOID
 13301  	pv_type          DWORD
 13302  } /* winreg.h:69:11 */
 13303  
 13304  type PVALUEW = pvalueW  /* winreg.h:74:4 */
 13305  type PPVALUEW = uintptr /* winreg.h:74:12 */
 13306  
 13307  type PVALUE = PVALUEA   /* winreg.h:76:3 */
 13308  type PPVALUE = PPVALUEA /* winreg.h:77:3 */
 13309  
 13310  type PQUERYHANDLER = uintptr /* winreg.h:81:24 */
 13311  
 13312  type provider_info = struct {
 13313  	pi_R0_1val     PQUERYHANDLER
 13314  	pi_R0_allvals  PQUERYHANDLER
 13315  	pi_R3_1val     PQUERYHANDLER
 13316  	pi_R3_allvals  PQUERYHANDLER
 13317  	pi_flags       DWORD
 13318  	pi_key_context LPVOID
 13319  } /* winreg.h:83:11 */
 13320  
 13321  type REG_PROVIDER = provider_info /* winreg.h:90:5 */
 13322  
 13323  type PPROVIDER = uintptr /* winreg.h:92:32 */
 13324  
 13325  type value_entA = struct {
 13326  	ve_valuename LPSTR
 13327  	ve_valuelen  DWORD
 13328  	ve_valueptr  DWORD_PTR
 13329  	ve_type      DWORD
 13330  } /* winreg.h:94:11 */
 13331  
 13332  type VALENTA = value_entA /* winreg.h:99:5 */
 13333  type PVALENTA = uintptr   /* winreg.h:99:13 */
 13334  
 13335  type value_entW = struct {
 13336  	ve_valuename LPWSTR
 13337  	ve_valuelen  DWORD
 13338  	ve_valueptr  DWORD_PTR
 13339  	ve_type      DWORD
 13340  } /* winreg.h:101:11 */
 13341  
 13342  type VALENTW = value_entW /* winreg.h:106:5 */
 13343  type PVALENTW = uintptr   /* winreg.h:106:13 */
 13344  
 13345  type VALENT = VALENTA   /* winreg.h:108:3 */
 13346  type PVALENT = PVALENTA /* winreg.h:109:3 */
 13347  
 13348  // *
 13349  // This file is part of the mingw-w64 runtime package.
 13350  // No warranty is given; refer to the file DISCLAIMER within this package.
 13351  
 13352  // *
 13353  // This file is part of the mingw-w64 runtime package.
 13354  // No warranty is given; refer to the file DISCLAIMER within this package.
 13355  
 13356  // *
 13357  // This file has no copyright assigned and is placed in the Public Domain.
 13358  // This file is part of the mingw-w64 runtime package.
 13359  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13360  
 13361  // *
 13362  // This file is part of the mingw-w64 runtime package.
 13363  // No warranty is given; refer to the file DISCLAIMER within this package.
 13364  
 13365  // *
 13366  // This file is part of the mingw-w64 runtime package.
 13367  // No warranty is given; refer to the file DISCLAIMER within this package.
 13368  
 13369  type _NETRESOURCEA = struct {
 13370  	dwScope       DWORD
 13371  	dwType        DWORD
 13372  	dwDisplayType DWORD
 13373  	dwUsage       DWORD
 13374  	lpLocalName   LPSTR
 13375  	lpRemoteName  LPSTR
 13376  	lpComment     LPSTR
 13377  	lpProvider    LPSTR
 13378  } /* winnetwk.h:53:11 */
 13379  
 13380  // *
 13381  // This file is part of the mingw-w64 runtime package.
 13382  // No warranty is given; refer to the file DISCLAIMER within this package.
 13383  
 13384  // *
 13385  // This file is part of the mingw-w64 runtime package.
 13386  // No warranty is given; refer to the file DISCLAIMER within this package.
 13387  
 13388  // *
 13389  // This file has no copyright assigned and is placed in the Public Domain.
 13390  // This file is part of the mingw-w64 runtime package.
 13391  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13392  
 13393  // *
 13394  // This file is part of the mingw-w64 runtime package.
 13395  // No warranty is given; refer to the file DISCLAIMER within this package.
 13396  
 13397  // *
 13398  // This file is part of the mingw-w64 runtime package.
 13399  // No warranty is given; refer to the file DISCLAIMER within this package.
 13400  
 13401  type NETRESOURCEA = _NETRESOURCEA /* winnetwk.h:62:5 */
 13402  type LPNETRESOURCEA = uintptr     /* winnetwk.h:62:18 */
 13403  type _NETRESOURCEW = struct {
 13404  	dwScope       DWORD
 13405  	dwType        DWORD
 13406  	dwDisplayType DWORD
 13407  	dwUsage       DWORD
 13408  	lpLocalName   LPWSTR
 13409  	lpRemoteName  LPWSTR
 13410  	lpComment     LPWSTR
 13411  	lpProvider    LPWSTR
 13412  } /* winnetwk.h:63:11 */
 13413  
 13414  type NETRESOURCEW = _NETRESOURCEW /* winnetwk.h:72:5 */
 13415  type LPNETRESOURCEW = uintptr     /* winnetwk.h:72:18 */
 13416  
 13417  type NETRESOURCE = NETRESOURCEA     /* winnetwk.h:74:3 */
 13418  type LPNETRESOURCE = LPNETRESOURCEA /* winnetwk.h:75:3 */
 13419  
 13420  type _CONNECTDLGSTRUCTA = struct {
 13421  	cbStructure DWORD
 13422  	hwndOwner   HWND
 13423  	lpConnRes   LPNETRESOURCEA
 13424  	dwFlags     DWORD
 13425  	dwDevNum    DWORD
 13426  } /* winnetwk.h:129:11 */
 13427  
 13428  type CONNECTDLGSTRUCTA = _CONNECTDLGSTRUCTA /* winnetwk.h:135:5 */
 13429  type LPCONNECTDLGSTRUCTA = uintptr          /* winnetwk.h:135:23 */
 13430  
 13431  type _CONNECTDLGSTRUCTW = struct {
 13432  	cbStructure DWORD
 13433  	hwndOwner   HWND
 13434  	lpConnRes   LPNETRESOURCEW
 13435  	dwFlags     DWORD
 13436  	dwDevNum    DWORD
 13437  } /* winnetwk.h:137:11 */
 13438  
 13439  type CONNECTDLGSTRUCTW = _CONNECTDLGSTRUCTW /* winnetwk.h:143:5 */
 13440  type LPCONNECTDLGSTRUCTW = uintptr          /* winnetwk.h:143:23 */
 13441  
 13442  type CONNECTDLGSTRUCT = CONNECTDLGSTRUCTA     /* winnetwk.h:145:3 */
 13443  type LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTA /* winnetwk.h:146:3 */
 13444  
 13445  type _DISCDLGSTRUCTA = struct {
 13446  	cbStructure  DWORD
 13447  	hwndOwner    HWND
 13448  	lpLocalName  LPSTR
 13449  	lpRemoteName LPSTR
 13450  	dwFlags      DWORD
 13451  } /* winnetwk.h:161:11 */
 13452  
 13453  type DISCDLGSTRUCTA = _DISCDLGSTRUCTA /* winnetwk.h:167:5 */
 13454  type LPDISCDLGSTRUCTA = uintptr       /* winnetwk.h:167:20 */
 13455  
 13456  type _DISCDLGSTRUCTW = struct {
 13457  	cbStructure  DWORD
 13458  	hwndOwner    HWND
 13459  	lpLocalName  LPWSTR
 13460  	lpRemoteName LPWSTR
 13461  	dwFlags      DWORD
 13462  } /* winnetwk.h:169:11 */
 13463  
 13464  type DISCDLGSTRUCTW = _DISCDLGSTRUCTW /* winnetwk.h:175:5 */
 13465  type LPDISCDLGSTRUCTW = uintptr       /* winnetwk.h:175:20 */
 13466  
 13467  type DISCDLGSTRUCT = DISCDLGSTRUCTA     /* winnetwk.h:177:3 */
 13468  type LPDISCDLGSTRUCT = LPDISCDLGSTRUCTA /* winnetwk.h:178:3 */
 13469  
 13470  type _UNIVERSAL_NAME_INFOA = struct{ lpUniversalName LPSTR } /* winnetwk.h:204:11 */
 13471  
 13472  type UNIVERSAL_NAME_INFOA = _UNIVERSAL_NAME_INFOA /* winnetwk.h:206:5 */
 13473  type LPUNIVERSAL_NAME_INFOA = uintptr             /* winnetwk.h:206:26 */
 13474  
 13475  type _UNIVERSAL_NAME_INFOW = struct{ lpUniversalName LPWSTR } /* winnetwk.h:208:11 */
 13476  
 13477  type UNIVERSAL_NAME_INFOW = _UNIVERSAL_NAME_INFOW /* winnetwk.h:210:5 */
 13478  type LPUNIVERSAL_NAME_INFOW = uintptr             /* winnetwk.h:210:26 */
 13479  
 13480  type UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOA     /* winnetwk.h:212:3 */
 13481  type LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOA /* winnetwk.h:213:3 */
 13482  
 13483  type _REMOTE_NAME_INFOA = struct {
 13484  	lpUniversalName  LPSTR
 13485  	lpConnectionName LPSTR
 13486  	lpRemainingPath  LPSTR
 13487  } /* winnetwk.h:215:11 */
 13488  
 13489  type REMOTE_NAME_INFOA = _REMOTE_NAME_INFOA /* winnetwk.h:219:5 */
 13490  type LPREMOTE_NAME_INFOA = uintptr          /* winnetwk.h:219:23 */
 13491  
 13492  type _REMOTE_NAME_INFOW = struct {
 13493  	lpUniversalName  LPWSTR
 13494  	lpConnectionName LPWSTR
 13495  	lpRemainingPath  LPWSTR
 13496  } /* winnetwk.h:221:11 */
 13497  
 13498  type REMOTE_NAME_INFOW = _REMOTE_NAME_INFOW /* winnetwk.h:225:5 */
 13499  type LPREMOTE_NAME_INFOW = uintptr          /* winnetwk.h:225:23 */
 13500  
 13501  type REMOTE_NAME_INFO = REMOTE_NAME_INFOA     /* winnetwk.h:227:3 */
 13502  type LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOA /* winnetwk.h:228:3 */
 13503  
 13504  type _NETINFOSTRUCT = struct {
 13505  	cbStructure       DWORD
 13506  	dwProviderVersion DWORD
 13507  	dwStatus          DWORD
 13508  	dwCharacteristics DWORD
 13509  	dwHandle          ULONG_PTR
 13510  	wNetType          WORD
 13511  	_                 [2]byte
 13512  	dwPrinters        DWORD
 13513  	dwDrives          DWORD
 13514  } /* winnetwk.h:247:11 */
 13515  
 13516  type NETINFOSTRUCT = _NETINFOSTRUCT /* winnetwk.h:256:5 */
 13517  type LPNETINFOSTRUCT = uintptr      /* winnetwk.h:256:19 */
 13518  
 13519  type PFNGETPROFILEPATHA = uintptr /* winnetwk.h:267:16 */
 13520  type PFNGETPROFILEPATHW = uintptr /* winnetwk.h:268:16 */
 13521  
 13522  type PFNRECONCILEPROFILEA = uintptr /* winnetwk.h:272:16 */
 13523  type PFNRECONCILEPROFILEW = uintptr /* winnetwk.h:273:16 */
 13524  
 13525  type PFNPROCESSPOLICIESA = uintptr /* winnetwk.h:280:19 */
 13526  type PFNPROCESSPOLICIESW = uintptr /* winnetwk.h:281:19 */
 13527  
 13528  type _NETCONNECTINFOSTRUCT = struct {
 13529  	cbStructure   DWORD
 13530  	dwFlags       DWORD
 13531  	dwSpeed       DWORD
 13532  	dwDelay       DWORD
 13533  	dwOptDataSize DWORD
 13534  } /* winnetwk.h:335:11 */
 13535  
 13536  type NETCONNECTINFOSTRUCT = _NETCONNECTINFOSTRUCT /* winnetwk.h:341:5 */
 13537  type LPNETCONNECTINFOSTRUCT = uintptr             /* winnetwk.h:341:26 */
 13538  
 13539  // *
 13540  // This file has no copyright assigned and is placed in the Public Domain.
 13541  // This file is part of the mingw-w64 runtime package.
 13542  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13543  
 13544  // *
 13545  // This file has no copyright assigned and is placed in the Public Domain.
 13546  // This file is part of the mingw-w64 runtime package.
 13547  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13548  
 13549  // *
 13550  // This file has no copyright assigned and is placed in the Public Domain.
 13551  // This file is part of the mingw-w64 runtime package.
 13552  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13553  
 13554  // *
 13555  // This file has no copyright assigned and is placed in the Public Domain.
 13556  // This file is part of the mingw-w64 runtime package.
 13557  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13558  
 13559  // *
 13560  // This file has no copyright assigned and is placed in the Public Domain.
 13561  // This file is part of the mingw-w64 runtime package.
 13562  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13563  
 13564  // *
 13565  // This file is part of the mingw-w64 runtime package.
 13566  // No warranty is given; refer to the file DISCLAIMER within this package.
 13567  
 13568  type _SERVICE_DESCRIPTIONA = struct{ lpDescription LPSTR } /* winsvc.h:95:11 */
 13569  
 13570  // *
 13571  // This file has no copyright assigned and is placed in the Public Domain.
 13572  // This file is part of the mingw-w64 runtime package.
 13573  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13574  
 13575  // *
 13576  // This file has no copyright assigned and is placed in the Public Domain.
 13577  // This file is part of the mingw-w64 runtime package.
 13578  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13579  
 13580  // *
 13581  // This file has no copyright assigned and is placed in the Public Domain.
 13582  // This file is part of the mingw-w64 runtime package.
 13583  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13584  
 13585  // *
 13586  // This file has no copyright assigned and is placed in the Public Domain.
 13587  // This file is part of the mingw-w64 runtime package.
 13588  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13589  
 13590  // *
 13591  // This file has no copyright assigned and is placed in the Public Domain.
 13592  // This file is part of the mingw-w64 runtime package.
 13593  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13594  
 13595  // *
 13596  // This file is part of the mingw-w64 runtime package.
 13597  // No warranty is given; refer to the file DISCLAIMER within this package.
 13598  
 13599  type SERVICE_DESCRIPTIONA = _SERVICE_DESCRIPTIONA /* winsvc.h:97:5 */
 13600  type LPSERVICE_DESCRIPTIONA = uintptr             /* winsvc.h:97:26 */
 13601  
 13602  type _SERVICE_DESCRIPTIONW = struct{ lpDescription LPWSTR } /* winsvc.h:99:11 */
 13603  
 13604  type SERVICE_DESCRIPTIONW = _SERVICE_DESCRIPTIONW /* winsvc.h:101:5 */
 13605  type LPSERVICE_DESCRIPTIONW = uintptr             /* winsvc.h:101:26 */
 13606  
 13607  type SERVICE_DESCRIPTION = SERVICE_DESCRIPTIONA     /* winsvc.h:103:3 */
 13608  type LPSERVICE_DESCRIPTION = LPSERVICE_DESCRIPTIONA /* winsvc.h:104:3 */
 13609  
 13610  type SC_ACTION_TYPE = uint32 /* winsvc.h:108:5 */
 13611  
 13612  type _SC_ACTION = struct {
 13613  	Type  SC_ACTION_TYPE
 13614  	Delay DWORD
 13615  } /* winsvc.h:110:11 */
 13616  
 13617  type SC_ACTION = _SC_ACTION /* winsvc.h:113:5 */
 13618  type LPSC_ACTION = uintptr  /* winsvc.h:113:15 */
 13619  
 13620  type _SERVICE_FAILURE_ACTIONSA = struct {
 13621  	dwResetPeriod DWORD
 13622  	lpRebootMsg   LPSTR
 13623  	lpCommand     LPSTR
 13624  	cActions      DWORD
 13625  	lpsaActions   uintptr
 13626  } /* winsvc.h:115:11 */
 13627  
 13628  type SERVICE_FAILURE_ACTIONSA = _SERVICE_FAILURE_ACTIONSA /* winsvc.h:121:5 */
 13629  type LPSERVICE_FAILURE_ACTIONSA = uintptr                 /* winsvc.h:121:30 */
 13630  
 13631  type _SERVICE_FAILURE_ACTIONSW = struct {
 13632  	dwResetPeriod DWORD
 13633  	lpRebootMsg   LPWSTR
 13634  	lpCommand     LPWSTR
 13635  	cActions      DWORD
 13636  	lpsaActions   uintptr
 13637  } /* winsvc.h:123:11 */
 13638  
 13639  type SERVICE_FAILURE_ACTIONSW = _SERVICE_FAILURE_ACTIONSW /* winsvc.h:129:5 */
 13640  type LPSERVICE_FAILURE_ACTIONSW = uintptr                 /* winsvc.h:129:30 */
 13641  
 13642  type SERVICE_FAILURE_ACTIONS = SERVICE_FAILURE_ACTIONSA     /* winsvc.h:131:3 */
 13643  type LPSERVICE_FAILURE_ACTIONS = LPSERVICE_FAILURE_ACTIONSA /* winsvc.h:132:3 */
 13644  
 13645  type SC_HANDLE__ = struct{ unused int32 } /* winsvc.h:134:3 */
 13646  
 13647  type SC_HANDLE = uintptr   /* winsvc.h:134:3 */
 13648  type LPSC_HANDLE = uintptr /* winsvc.h:135:21 */
 13649  
 13650  type SERVICE_STATUS_HANDLE__ = struct{ unused int32 } /* winsvc.h:137:3 */
 13651  
 13652  type SERVICE_STATUS_HANDLE = uintptr /* winsvc.h:137:3 */
 13653  
 13654  type SC_STATUS_TYPE = uint32 /* winsvc.h:141:5 */
 13655  
 13656  type SC_ENUM_TYPE = uint32 /* winsvc.h:145:5 */
 13657  
 13658  type _SERVICE_STATUS = struct {
 13659  	dwServiceType             DWORD
 13660  	dwCurrentState            DWORD
 13661  	dwControlsAccepted        DWORD
 13662  	dwWin32ExitCode           DWORD
 13663  	dwServiceSpecificExitCode DWORD
 13664  	dwCheckPoint              DWORD
 13665  	dwWaitHint                DWORD
 13666  } /* winsvc.h:147:11 */
 13667  
 13668  type SERVICE_STATUS = _SERVICE_STATUS /* winsvc.h:155:5 */
 13669  type LPSERVICE_STATUS = uintptr       /* winsvc.h:155:20 */
 13670  
 13671  type _SERVICE_STATUS_PROCESS = struct {
 13672  	dwServiceType             DWORD
 13673  	dwCurrentState            DWORD
 13674  	dwControlsAccepted        DWORD
 13675  	dwWin32ExitCode           DWORD
 13676  	dwServiceSpecificExitCode DWORD
 13677  	dwCheckPoint              DWORD
 13678  	dwWaitHint                DWORD
 13679  	dwProcessId               DWORD
 13680  	dwServiceFlags            DWORD
 13681  } /* winsvc.h:157:11 */
 13682  
 13683  type SERVICE_STATUS_PROCESS = _SERVICE_STATUS_PROCESS /* winsvc.h:167:5 */
 13684  type LPSERVICE_STATUS_PROCESS = uintptr               /* winsvc.h:167:28 */
 13685  
 13686  type _ENUM_SERVICE_STATUSA = struct {
 13687  	lpServiceName LPSTR
 13688  	lpDisplayName LPSTR
 13689  	ServiceStatus SERVICE_STATUS
 13690  } /* winsvc.h:169:11 */
 13691  
 13692  type ENUM_SERVICE_STATUSA = _ENUM_SERVICE_STATUSA /* winsvc.h:173:5 */
 13693  type LPENUM_SERVICE_STATUSA = uintptr             /* winsvc.h:173:26 */
 13694  
 13695  type _ENUM_SERVICE_STATUSW = struct {
 13696  	lpServiceName LPWSTR
 13697  	lpDisplayName LPWSTR
 13698  	ServiceStatus SERVICE_STATUS
 13699  } /* winsvc.h:175:11 */
 13700  
 13701  type ENUM_SERVICE_STATUSW = _ENUM_SERVICE_STATUSW /* winsvc.h:179:5 */
 13702  type LPENUM_SERVICE_STATUSW = uintptr             /* winsvc.h:179:26 */
 13703  
 13704  type ENUM_SERVICE_STATUS = ENUM_SERVICE_STATUSA     /* winsvc.h:181:3 */
 13705  type LPENUM_SERVICE_STATUS = LPENUM_SERVICE_STATUSA /* winsvc.h:182:3 */
 13706  
 13707  type _ENUM_SERVICE_STATUS_PROCESSA = struct {
 13708  	lpServiceName        LPSTR
 13709  	lpDisplayName        LPSTR
 13710  	ServiceStatusProcess SERVICE_STATUS_PROCESS
 13711  } /* winsvc.h:184:11 */
 13712  
 13713  type ENUM_SERVICE_STATUS_PROCESSA = _ENUM_SERVICE_STATUS_PROCESSA /* winsvc.h:188:5 */
 13714  type LPENUM_SERVICE_STATUS_PROCESSA = uintptr                     /* winsvc.h:188:34 */
 13715  
 13716  type _ENUM_SERVICE_STATUS_PROCESSW = struct {
 13717  	lpServiceName        LPWSTR
 13718  	lpDisplayName        LPWSTR
 13719  	ServiceStatusProcess SERVICE_STATUS_PROCESS
 13720  } /* winsvc.h:190:11 */
 13721  
 13722  type ENUM_SERVICE_STATUS_PROCESSW = _ENUM_SERVICE_STATUS_PROCESSW /* winsvc.h:194:5 */
 13723  type LPENUM_SERVICE_STATUS_PROCESSW = uintptr                     /* winsvc.h:194:34 */
 13724  
 13725  type ENUM_SERVICE_STATUS_PROCESS = ENUM_SERVICE_STATUS_PROCESSA     /* winsvc.h:196:3 */
 13726  type LPENUM_SERVICE_STATUS_PROCESS = LPENUM_SERVICE_STATUS_PROCESSA /* winsvc.h:197:3 */
 13727  
 13728  type SC_LOCK = LPVOID /* winsvc.h:199:18 */
 13729  
 13730  type _QUERY_SERVICE_LOCK_STATUSA = struct {
 13731  	fIsLocked      DWORD
 13732  	lpLockOwner    LPSTR
 13733  	dwLockDuration DWORD
 13734  } /* winsvc.h:201:11 */
 13735  
 13736  type QUERY_SERVICE_LOCK_STATUSA = _QUERY_SERVICE_LOCK_STATUSA /* winsvc.h:205:5 */
 13737  type LPQUERY_SERVICE_LOCK_STATUSA = uintptr                   /* winsvc.h:205:32 */
 13738  
 13739  type _QUERY_SERVICE_LOCK_STATUSW = struct {
 13740  	fIsLocked      DWORD
 13741  	lpLockOwner    LPWSTR
 13742  	dwLockDuration DWORD
 13743  } /* winsvc.h:207:11 */
 13744  
 13745  type QUERY_SERVICE_LOCK_STATUSW = _QUERY_SERVICE_LOCK_STATUSW /* winsvc.h:211:5 */
 13746  type LPQUERY_SERVICE_LOCK_STATUSW = uintptr                   /* winsvc.h:211:32 */
 13747  
 13748  type QUERY_SERVICE_LOCK_STATUS = QUERY_SERVICE_LOCK_STATUSA     /* winsvc.h:213:3 */
 13749  type LPQUERY_SERVICE_LOCK_STATUS = LPQUERY_SERVICE_LOCK_STATUSA /* winsvc.h:214:3 */
 13750  
 13751  type _QUERY_SERVICE_CONFIGA = struct {
 13752  	dwServiceType      DWORD
 13753  	dwStartType        DWORD
 13754  	dwErrorControl     DWORD
 13755  	lpBinaryPathName   LPSTR
 13756  	lpLoadOrderGroup   LPSTR
 13757  	dwTagId            DWORD
 13758  	lpDependencies     LPSTR
 13759  	lpServiceStartName LPSTR
 13760  	lpDisplayName      LPSTR
 13761  } /* winsvc.h:216:11 */
 13762  
 13763  type QUERY_SERVICE_CONFIGA = _QUERY_SERVICE_CONFIGA /* winsvc.h:226:5 */
 13764  type LPQUERY_SERVICE_CONFIGA = uintptr              /* winsvc.h:226:27 */
 13765  
 13766  type _QUERY_SERVICE_CONFIGW = struct {
 13767  	dwServiceType      DWORD
 13768  	dwStartType        DWORD
 13769  	dwErrorControl     DWORD
 13770  	lpBinaryPathName   LPWSTR
 13771  	lpLoadOrderGroup   LPWSTR
 13772  	dwTagId            DWORD
 13773  	lpDependencies     LPWSTR
 13774  	lpServiceStartName LPWSTR
 13775  	lpDisplayName      LPWSTR
 13776  } /* winsvc.h:228:11 */
 13777  
 13778  type QUERY_SERVICE_CONFIGW = _QUERY_SERVICE_CONFIGW /* winsvc.h:238:5 */
 13779  type LPQUERY_SERVICE_CONFIGW = uintptr              /* winsvc.h:238:27 */
 13780  
 13781  type QUERY_SERVICE_CONFIG = QUERY_SERVICE_CONFIGA     /* winsvc.h:240:3 */
 13782  type LPQUERY_SERVICE_CONFIG = LPQUERY_SERVICE_CONFIGA /* winsvc.h:241:3 */
 13783  
 13784  type LPSERVICE_MAIN_FUNCTIONW = uintptr /* winsvc.h:243:16 */
 13785  type LPSERVICE_MAIN_FUNCTIONA = uintptr /* winsvc.h:244:16 */
 13786  
 13787  type _SERVICE_TABLE_ENTRYA = struct {
 13788  	lpServiceName LPSTR
 13789  	lpServiceProc LPSERVICE_MAIN_FUNCTIONA
 13790  } /* winsvc.h:248:11 */
 13791  
 13792  type SERVICE_TABLE_ENTRYA = _SERVICE_TABLE_ENTRYA /* winsvc.h:251:5 */
 13793  type LPSERVICE_TABLE_ENTRYA = uintptr             /* winsvc.h:251:26 */
 13794  
 13795  type _SERVICE_TABLE_ENTRYW = struct {
 13796  	lpServiceName LPWSTR
 13797  	lpServiceProc LPSERVICE_MAIN_FUNCTIONW
 13798  } /* winsvc.h:253:11 */
 13799  
 13800  type SERVICE_TABLE_ENTRYW = _SERVICE_TABLE_ENTRYW /* winsvc.h:256:5 */
 13801  type LPSERVICE_TABLE_ENTRYW = uintptr             /* winsvc.h:256:26 */
 13802  
 13803  type SERVICE_TABLE_ENTRY = SERVICE_TABLE_ENTRYA     /* winsvc.h:258:3 */
 13804  type LPSERVICE_TABLE_ENTRY = LPSERVICE_TABLE_ENTRYA /* winsvc.h:259:3 */
 13805  
 13806  type LPHANDLER_FUNCTION = uintptr    /* winsvc.h:261:16 */
 13807  type LPHANDLER_FUNCTION_EX = uintptr /* winsvc.h:262:17 */
 13808  
 13809  // *
 13810  // This file has no copyright assigned and is placed in the Public Domain.
 13811  // This file is part of the mingw-w64 runtime package.
 13812  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13813  
 13814  type _MODEMDEVCAPS = struct {
 13815  	dwActualSize              DWORD
 13816  	dwRequiredSize            DWORD
 13817  	dwDevSpecificOffset       DWORD
 13818  	dwDevSpecificSize         DWORD
 13819  	dwModemProviderVersion    DWORD
 13820  	dwModemManufacturerOffset DWORD
 13821  	dwModemManufacturerSize   DWORD
 13822  	dwModemModelOffset        DWORD
 13823  	dwModemModelSize          DWORD
 13824  	dwModemVersionOffset      DWORD
 13825  	dwModemVersionSize        DWORD
 13826  	dwDialOptions             DWORD
 13827  	dwCallSetupFailTimer      DWORD
 13828  	dwInactivityTimeout       DWORD
 13829  	dwSpeakerVolume           DWORD
 13830  	dwSpeakerMode             DWORD
 13831  	dwModemOptions            DWORD
 13832  	dwMaxDTERate              DWORD
 13833  	dwMaxDCERate              DWORD
 13834  	abVariablePortion         [1]BYTE
 13835  	_                         [3]byte
 13836  } /* mcx.h:9:9 */
 13837  
 13838  // *
 13839  // This file has no copyright assigned and is placed in the Public Domain.
 13840  // This file is part of the mingw-w64 runtime package.
 13841  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13842  
 13843  type MODEMDEVCAPS = _MODEMDEVCAPS /* mcx.h:30:3 */
 13844  type PMODEMDEVCAPS = uintptr      /* mcx.h:30:16 */
 13845  type LPMODEMDEVCAPS = uintptr     /* mcx.h:30:31 */
 13846  
 13847  type _MODEMSETTINGS = struct {
 13848  	dwActualSize             DWORD
 13849  	dwRequiredSize           DWORD
 13850  	dwDevSpecificOffset      DWORD
 13851  	dwDevSpecificSize        DWORD
 13852  	dwCallSetupFailTimer     DWORD
 13853  	dwInactivityTimeout      DWORD
 13854  	dwSpeakerVolume          DWORD
 13855  	dwSpeakerMode            DWORD
 13856  	dwPreferredModemOptions  DWORD
 13857  	dwNegotiatedModemOptions DWORD
 13858  	dwNegotiatedDCERate      DWORD
 13859  	abVariablePortion        [1]BYTE
 13860  	_                        [3]byte
 13861  } /* mcx.h:32:9 */
 13862  
 13863  type MODEMSETTINGS = _MODEMSETTINGS /* mcx.h:45:3 */
 13864  type PMODEMSETTINGS = uintptr       /* mcx.h:45:17 */
 13865  type LPMODEMSETTINGS = uintptr      /* mcx.h:45:33 */
 13866  
 13867  // *
 13868  // This file has no copyright assigned and is placed in the Public Domain.
 13869  // This file is part of the mingw-w64 runtime package.
 13870  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13871  
 13872  // *
 13873  // This file has no copyright assigned and is placed in the Public Domain.
 13874  // This file is part of the mingw-w64 runtime package.
 13875  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 13876  
 13877  type HIMC__ = struct{ unused int32 } /* imm.h:18:3 */
 13878  
 13879  type HIMC = uintptr                   /* imm.h:18:3 */
 13880  type HIMCC__ = struct{ unused int32 } /* imm.h:19:3 */
 13881  
 13882  type HIMCC = uintptr /* imm.h:19:3 */
 13883  
 13884  type LPHKL = uintptr  /* imm.h:21:15 */
 13885  type LPUINT = uintptr /* imm.h:24:16 */
 13886  
 13887  type tagCOMPOSITIONFORM = struct {
 13888  	dwStyle      DWORD
 13889  	ptCurrentPos POINT
 13890  	rcArea       RECT
 13891  } /* imm.h:27:11 */
 13892  
 13893  type COMPOSITIONFORM = tagCOMPOSITIONFORM /* imm.h:31:5 */
 13894  type PCOMPOSITIONFORM = uintptr           /* imm.h:31:21 */
 13895  type NPCOMPOSITIONFORM = uintptr          /* imm.h:31:39 */
 13896  type LPCOMPOSITIONFORM = uintptr          /* imm.h:31:58 */
 13897  
 13898  type tagCANDIDATEFORM = struct {
 13899  	dwIndex      DWORD
 13900  	dwStyle      DWORD
 13901  	ptCurrentPos POINT
 13902  	rcArea       RECT
 13903  } /* imm.h:33:11 */
 13904  
 13905  type CANDIDATEFORM = tagCANDIDATEFORM /* imm.h:38:5 */
 13906  type PCANDIDATEFORM = uintptr         /* imm.h:38:19 */
 13907  type NPCANDIDATEFORM = uintptr        /* imm.h:38:35 */
 13908  type LPCANDIDATEFORM = uintptr        /* imm.h:38:52 */
 13909  
 13910  type tagCANDIDATELIST = struct {
 13911  	dwSize      DWORD
 13912  	dwStyle     DWORD
 13913  	dwCount     DWORD
 13914  	dwSelection DWORD
 13915  	dwPageStart DWORD
 13916  	dwPageSize  DWORD
 13917  	dwOffset    [1]DWORD
 13918  } /* imm.h:40:11 */
 13919  
 13920  type CANDIDATELIST = tagCANDIDATELIST /* imm.h:48:5 */
 13921  type PCANDIDATELIST = uintptr         /* imm.h:48:19 */
 13922  type NPCANDIDATELIST = uintptr        /* imm.h:48:35 */
 13923  type LPCANDIDATELIST = uintptr        /* imm.h:48:52 */
 13924  
 13925  type tagREGISTERWORDA = struct {
 13926  	lpReading LPSTR
 13927  	lpWord    LPSTR
 13928  } /* imm.h:50:11 */
 13929  
 13930  type REGISTERWORDA = tagREGISTERWORDA /* imm.h:53:5 */
 13931  type PREGISTERWORDA = uintptr         /* imm.h:53:19 */
 13932  type NPREGISTERWORDA = uintptr        /* imm.h:53:35 */
 13933  type LPREGISTERWORDA = uintptr        /* imm.h:53:52 */
 13934  
 13935  type tagREGISTERWORDW = struct {
 13936  	lpReading LPWSTR
 13937  	lpWord    LPWSTR
 13938  } /* imm.h:55:11 */
 13939  
 13940  type REGISTERWORDW = tagREGISTERWORDW /* imm.h:58:5 */
 13941  type PREGISTERWORDW = uintptr         /* imm.h:58:19 */
 13942  type NPREGISTERWORDW = uintptr        /* imm.h:58:35 */
 13943  type LPREGISTERWORDW = uintptr        /* imm.h:58:52 */
 13944  
 13945  type REGISTERWORD = REGISTERWORDA     /* imm.h:60:3 */
 13946  type PREGISTERWORD = PREGISTERWORDA   /* imm.h:61:3 */
 13947  type NPREGISTERWORD = NPREGISTERWORDA /* imm.h:62:3 */
 13948  type LPREGISTERWORD = LPREGISTERWORDA /* imm.h:63:3 */
 13949  
 13950  type tagRECONVERTSTRING = struct {
 13951  	dwSize            DWORD
 13952  	dwVersion         DWORD
 13953  	dwStrLen          DWORD
 13954  	dwStrOffset       DWORD
 13955  	dwCompStrLen      DWORD
 13956  	dwCompStrOffset   DWORD
 13957  	dwTargetStrLen    DWORD
 13958  	dwTargetStrOffset DWORD
 13959  } /* imm.h:65:11 */
 13960  
 13961  type RECONVERTSTRING = tagRECONVERTSTRING /* imm.h:74:5 */
 13962  type PRECONVERTSTRING = uintptr           /* imm.h:74:21 */
 13963  type NPRECONVERTSTRING = uintptr          /* imm.h:74:39 */
 13964  type LPRECONVERTSTRING = uintptr          /* imm.h:74:58 */
 13965  
 13966  type tagSTYLEBUFA = struct {
 13967  	dwStyle       DWORD
 13968  	szDescription [32]CHAR
 13969  } /* imm.h:78:11 */
 13970  
 13971  type STYLEBUFA = tagSTYLEBUFA /* imm.h:81:5 */
 13972  type PSTYLEBUFA = uintptr     /* imm.h:81:15 */
 13973  type NPSTYLEBUFA = uintptr    /* imm.h:81:27 */
 13974  type LPSTYLEBUFA = uintptr    /* imm.h:81:40 */
 13975  
 13976  type tagSTYLEBUFW = struct {
 13977  	dwStyle       DWORD
 13978  	szDescription [32]WCHAR
 13979  } /* imm.h:83:11 */
 13980  
 13981  type STYLEBUFW = tagSTYLEBUFW /* imm.h:86:5 */
 13982  type PSTYLEBUFW = uintptr     /* imm.h:86:15 */
 13983  type NPSTYLEBUFW = uintptr    /* imm.h:86:27 */
 13984  type LPSTYLEBUFW = uintptr    /* imm.h:86:40 */
 13985  
 13986  type STYLEBUF = STYLEBUFA     /* imm.h:88:3 */
 13987  type PSTYLEBUF = PSTYLEBUFA   /* imm.h:89:3 */
 13988  type NPSTYLEBUF = NPSTYLEBUFA /* imm.h:90:3 */
 13989  type LPSTYLEBUF = LPSTYLEBUFA /* imm.h:91:3 */
 13990  
 13991  type tagIMEMENUITEMINFOA = struct {
 13992  	cbSize        UINT
 13993  	fType         UINT
 13994  	fState        UINT
 13995  	wID           UINT
 13996  	hbmpChecked   HBITMAP
 13997  	hbmpUnchecked HBITMAP
 13998  	dwItemData    DWORD
 13999  	szString      [80]CHAR
 14000  	hbmpItem      HBITMAP
 14001  } /* imm.h:95:11 */
 14002  
 14003  type IMEMENUITEMINFOA = tagIMEMENUITEMINFOA /* imm.h:105:5 */
 14004  type PIMEMENUITEMINFOA = uintptr            /* imm.h:105:22 */
 14005  type NPIMEMENUITEMINFOA = uintptr           /* imm.h:105:41 */
 14006  type LPIMEMENUITEMINFOA = uintptr           /* imm.h:105:61 */
 14007  
 14008  type tagIMEMENUITEMINFOW = struct {
 14009  	cbSize        UINT
 14010  	fType         UINT
 14011  	fState        UINT
 14012  	wID           UINT
 14013  	hbmpChecked   HBITMAP
 14014  	hbmpUnchecked HBITMAP
 14015  	dwItemData    DWORD
 14016  	szString      [80]WCHAR
 14017  	hbmpItem      HBITMAP
 14018  } /* imm.h:107:11 */
 14019  
 14020  type IMEMENUITEMINFOW = tagIMEMENUITEMINFOW /* imm.h:117:5 */
 14021  type PIMEMENUITEMINFOW = uintptr            /* imm.h:117:22 */
 14022  type NPIMEMENUITEMINFOW = uintptr           /* imm.h:117:41 */
 14023  type LPIMEMENUITEMINFOW = uintptr           /* imm.h:117:61 */
 14024  
 14025  type IMEMENUITEMINFO = IMEMENUITEMINFOA     /* imm.h:119:3 */
 14026  type PIMEMENUITEMINFO = PIMEMENUITEMINFOA   /* imm.h:120:3 */
 14027  type NPIMEMENUITEMINFO = NPIMEMENUITEMINFOA /* imm.h:121:3 */
 14028  type LPIMEMENUITEMINFO = LPIMEMENUITEMINFOA /* imm.h:122:3 */
 14029  
 14030  type tagIMECHARPOSITION = struct {
 14031  	dwSize      DWORD
 14032  	dwCharPos   DWORD
 14033  	pt          POINT
 14034  	cLineHeight UINT
 14035  	rcDocument  RECT
 14036  } /* imm.h:124:11 */
 14037  
 14038  type IMECHARPOSITION = tagIMECHARPOSITION /* imm.h:130:5 */
 14039  type PIMECHARPOSITION = uintptr           /* imm.h:130:21 */
 14040  type NPIMECHARPOSITION = uintptr          /* imm.h:130:39 */
 14041  type LPIMECHARPOSITION = uintptr          /* imm.h:130:58 */
 14042  
 14043  type IMCENUMPROC = uintptr /* imm.h:132:19 */
 14044  
 14045  type REGISTERWORDENUMPROCA = uintptr /* imm.h:185:15 */
 14046  type REGISTERWORDENUMPROCW = uintptr /* imm.h:186:15 */
 14047  
 14048  // Posix thread extensions.
 14049  
 14050  // Extension defined as by report VC 10+ defines error-numbers.
 14051  
 14052  // Defined as WSAETIMEDOUT.
 14053  
 14054  // *
 14055  // This file has no copyright assigned and is placed in the Public Domain.
 14056  // This file is part of the mingw-w64 runtime package.
 14057  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14058  
 14059  // *
 14060  // This file has no copyright assigned and is placed in the Public Domain.
 14061  // This file is part of the mingw-w64 runtime package.
 14062  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14063  
 14064  // Copyright (C) 1992-2018 Free Software Foundation, Inc.
 14065  //
 14066  // This file is part of GCC.
 14067  //
 14068  // GCC is free software; you can redistribute it and/or modify it under
 14069  // the terms of the GNU General Public License as published by the Free
 14070  // Software Foundation; either version 3, or (at your option) any later
 14071  // version.
 14072  //
 14073  // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
 14074  // WARRANTY; without even the implied warranty of MERCHANTABILITY or
 14075  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 14076  // for more details.
 14077  //
 14078  // Under Section 7 of GPL version 3, you are granted additional
 14079  // permissions described in the GCC Runtime Library Exception, version
 14080  // 3.1, as published by the Free Software Foundation.
 14081  //
 14082  // You should have received a copy of the GNU General Public License and
 14083  // a copy of the GCC Runtime Library Exception along with this program;
 14084  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 14085  // <http://www.gnu.org/licenses/>.
 14086  
 14087  // This administrivia gets added to the beginning of limits.h
 14088  //    if the system has its own version of limits.h.
 14089  
 14090  // We use _GCC_LIMITS_H_ because we want this not to match
 14091  //    any macros that the system's limits.h uses for its own purposes.
 14092  
 14093  // Use "..." so that we find syslimits.h only in this same directory.
 14094  // syslimits.h stands for the system's own limits.h file.
 14095  //    If we can use it ok unmodified, then we install this text.
 14096  //    If fixincludes fixes it, then the fixed version is installed
 14097  //    instead of this text.
 14098  
 14099  // *
 14100  // This file has no copyright assigned and is placed in the Public Domain.
 14101  // This file is part of the mingw-w64 runtime package.
 14102  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14103  // *
 14104  // This file has no copyright assigned and is placed in the Public Domain.
 14105  // This file is part of the mingw-w64 runtime package.
 14106  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14107  
 14108  // File system limits
 14109  //
 14110  // NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
 14111  //       required for the NUL. TODO: Test?
 14112  // NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
 14113  //       are semantically identical, with a limit of 259 characters for the
 14114  //       path name, plus one for a terminating NUL, for a total of 260.
 14115  
 14116  // Copyright (C) 1991-2018 Free Software Foundation, Inc.
 14117  //
 14118  // This file is part of GCC.
 14119  //
 14120  // GCC is free software; you can redistribute it and/or modify it under
 14121  // the terms of the GNU General Public License as published by the Free
 14122  // Software Foundation; either version 3, or (at your option) any later
 14123  // version.
 14124  //
 14125  // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
 14126  // WARRANTY; without even the implied warranty of MERCHANTABILITY or
 14127  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 14128  // for more details.
 14129  //
 14130  // Under Section 7 of GPL version 3, you are granted additional
 14131  // permissions described in the GCC Runtime Library Exception, version
 14132  // 3.1, as published by the Free Software Foundation.
 14133  //
 14134  // You should have received a copy of the GNU General Public License and
 14135  // a copy of the GCC Runtime Library Exception along with this program;
 14136  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 14137  // <http://www.gnu.org/licenses/>.
 14138  
 14139  // Number of bits in a `char'.
 14140  
 14141  // Maximum length of a multibyte character.
 14142  
 14143  // Minimum and maximum values a `signed char' can hold.
 14144  
 14145  // Maximum value an `unsigned char' can hold.  (Minimum is 0).
 14146  
 14147  // Minimum and maximum values a `char' can hold.
 14148  
 14149  // Minimum and maximum values a `signed short int' can hold.
 14150  
 14151  // Maximum value an `unsigned short int' can hold.  (Minimum is 0).
 14152  
 14153  // Minimum and maximum values a `signed int' can hold.
 14154  
 14155  // Maximum value an `unsigned int' can hold.  (Minimum is 0).
 14156  
 14157  // Minimum and maximum values a `signed long int' can hold.
 14158  //    (Same as `int').
 14159  
 14160  // Maximum value an `unsigned long int' can hold.  (Minimum is 0).
 14161  
 14162  // Minimum and maximum values a `signed long long int' can hold.
 14163  
 14164  // Maximum value an `unsigned long long int' can hold.  (Minimum is 0).
 14165  
 14166  // Minimum and maximum values a `signed long long int' can hold.
 14167  
 14168  // Maximum value an `unsigned long long int' can hold.  (Minimum is 0).
 14169  
 14170  // This administrivia gets added to the end of limits.h
 14171  //    if the system has its own version of limits.h.
 14172  
 14173  type _onexit_t = uintptr /* stdlib.h:49:15 */
 14174  
 14175  type _div_t = struct {
 14176  	quot int32
 14177  	rem  int32
 14178  } /* stdlib.h:59:11 */
 14179  
 14180  type div_t = _div_t /* stdlib.h:62:5 */
 14181  
 14182  type _ldiv_t = struct {
 14183  	quot int32
 14184  	rem  int32
 14185  } /* stdlib.h:64:11 */
 14186  
 14187  type ldiv_t = _ldiv_t /* stdlib.h:67:5 */
 14188  
 14189  type _LDOUBLE = struct{ ld [10]uint8 } /* stdlib.h:76:5 */
 14190  
 14191  type _CRT_DOUBLE = struct{ x float64 } /* stdlib.h:83:5 */
 14192  
 14193  type _CRT_FLOAT = struct{ f float32 } /* stdlib.h:87:5 */
 14194  
 14195  type _LONGDOUBLE = struct{ x float64 } /* stdlib.h:94:5 */
 14196  
 14197  type _LDBL12 = struct{ ld12 [12]uint8 } /* stdlib.h:101:5 */
 14198  
 14199  type _purecall_handler = uintptr /* stdlib.h:142:16 */
 14200  
 14201  type _invalid_parameter_handler = uintptr /* stdlib.h:147:16 */
 14202  
 14203  type lldiv_t = struct {
 14204  	quot int64
 14205  	rem  int64
 14206  } /* stdlib.h:699:61 */
 14207  
 14208  // *
 14209  // This file has no copyright assigned and is placed in the Public Domain.
 14210  // This file is part of the mingw-w64 runtime package.
 14211  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14212  
 14213  // *
 14214  // This file has no copyright assigned and is placed in the Public Domain.
 14215  // This file is part of the mingw-w64 runtime package.
 14216  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14217  
 14218  // Return codes for _heapwalk()
 14219  
 14220  // Values for _heapinfo.useflag
 14221  
 14222  // The structure used to walk through the heap with _heapwalk.
 14223  type _heapinfo = struct {
 14224  	_pentry  uintptr
 14225  	_size    size_t
 14226  	_useflag int32
 14227  } /* malloc.h:46:11 */
 14228  
 14229  // *
 14230  // This file has no copyright assigned and is placed in the Public Domain.
 14231  // This file is part of the mingw-w64 runtime package.
 14232  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14233  
 14234  // *
 14235  // This file has no copyright assigned and is placed in the Public Domain.
 14236  // This file is part of the mingw-w64 runtime package.
 14237  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14238  
 14239  // Return codes for _heapwalk()
 14240  
 14241  // Values for _heapinfo.useflag
 14242  
 14243  // The structure used to walk through the heap with _heapwalk.
 14244  type _HEAPINFO = _heapinfo /* malloc.h:50:5 */
 14245  
 14246  // Static assertion.  Requires support in the compiler.
 14247  
 14248  // *
 14249  // This file has no copyright assigned and is placed in the Public Domain.
 14250  // This file is part of the mingw-w64 runtime package.
 14251  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14252  
 14253  // The suffix to append to the child command lines, if any
 14254  
 14255  // The directory separator character(s)
 14256  
 14257  // Mark a parameter as unused to suppress compiler warnings
 14258  
 14259  // Global data
 14260  type Global = struct {
 14261  	argv0            uintptr
 14262  	zVfs             uintptr
 14263  	zDbFile          uintptr
 14264  	db               uintptr
 14265  	zErrLog          uintptr
 14266  	pErrLog          uintptr
 14267  	zLog             uintptr
 14268  	pLog             uintptr
 14269  	zName            [32]int8
 14270  	taskId           int32
 14271  	iTrace           int32
 14272  	bSqlTrace        int32
 14273  	bIgnoreSqlErrors int32
 14274  	nError           int32
 14275  	nTest            int32
 14276  	iTimeout         int32
 14277  	bSync            int32
 14278  } /* mptest.c:72:8 */
 14279  
 14280  // Static assertion.  Requires support in the compiler.
 14281  
 14282  // *
 14283  // This file has no copyright assigned and is placed in the Public Domain.
 14284  // This file is part of the mingw-w64 runtime package.
 14285  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
 14286  
 14287  // The suffix to append to the child command lines, if any
 14288  
 14289  // The directory separator character(s)
 14290  
 14291  // Mark a parameter as unused to suppress compiler warnings
 14292  
 14293  // Global data
 14294  var g Global /* mptest.c:90:3: */
 14295  
 14296  // Default timeout
 14297  
 14298  // Print a message adding zPrefix[] to the beginning of every line.
 14299  func printWithPrefix(tls *libc.TLS, pOut uintptr, zPrefix uintptr, zMsg uintptr) { /* mptest.c:98:13: */
 14300  	bp := tls.Alloc(32)
 14301  	defer tls.Free(32)
 14302  
 14303  	for (zMsg != 0) && (*(*int8)(unsafe.Pointer(zMsg + uintptr(0))) != 0) {
 14304  		var i int32
 14305  		for i = 0; ((*(*int8)(unsafe.Pointer(zMsg + uintptr(i))) != 0) && (int32(*(*int8)(unsafe.Pointer(zMsg + uintptr(i)))) != '\n')) && (int32(*(*int8)(unsafe.Pointer(zMsg + uintptr(i)))) != '\r'); i++ {
 14306  		}
 14307  		libc.Xfprintf(tls, pOut, ts /* "%s%.*s\n" */, libc.VaList(bp, zPrefix, i, zMsg))
 14308  		zMsg += uintptr(i)
 14309  		for (int32(*(*int8)(unsafe.Pointer(zMsg + uintptr(0)))) == '\n') || (int32(*(*int8)(unsafe.Pointer(zMsg + uintptr(0)))) == '\r') {
 14310  			zMsg++
 14311  		}
 14312  	}
 14313  }
 14314  
 14315  // Compare two pointers to strings, where the pointers might be NULL.
 14316  func safe_strcmp(tls *libc.TLS, a uintptr, b uintptr) int32 { /* mptest.c:111:12: */
 14317  	if a == b {
 14318  		return 0
 14319  	}
 14320  	if a == uintptr(0) {
 14321  		return -1
 14322  	}
 14323  	if b == uintptr(0) {
 14324  		return 1
 14325  	}
 14326  	return libc.Xstrcmp(tls, a, b)
 14327  }
 14328  
 14329  // Return TRUE if string z[] matches glob pattern zGlob[].
 14330  // Return FALSE if the pattern does not match.
 14331  //
 14332  // Globbing rules:
 14333  //
 14334  //      '*'       Matches any sequence of zero or more characters.
 14335  //
 14336  //      '?'       Matches exactly one character.
 14337  //
 14338  //     [...]      Matches one character from the enclosed list of
 14339  //                characters.
 14340  //
 14341  //     [^...]     Matches one character not in the enclosed list.
 14342  //
 14343  //      '#'       Matches any sequence of one or more digits with an
 14344  //                optional + or - sign in front
 14345  func strglob(tls *libc.TLS, zGlob uintptr, z uintptr) int32 { /* mptest.c:136:5: */
 14346  	var c int32
 14347  	var c2 int32
 14348  	var invert int32
 14349  	var seen int32
 14350  
 14351  	for (libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1)))))) != 0 {
 14352  		if c == '*' {
 14353  			for ((libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1)))))) == '*') || (c == '?') {
 14354  				if (c == '?') && ((int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))))) == 0) {
 14355  					return 0
 14356  				}
 14357  			}
 14358  			if c == 0 {
 14359  				return 1
 14360  			} else if c == '[' {
 14361  				for (*(*int8)(unsafe.Pointer(z)) != 0) && (strglob(tls, (zGlob-uintptr(1)), z) != 0) {
 14362  					z++
 14363  				}
 14364  				return (libc.Bool32((int32(*(*int8)(unsafe.Pointer(z)))) != 0))
 14365  			}
 14366  			for (libc.AssignInt32(&c2, int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))))) != 0 {
 14367  				for c2 != c {
 14368  					c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))))
 14369  					if c2 == 0 {
 14370  						return 0
 14371  					}
 14372  				}
 14373  				if strglob(tls, zGlob, z) != 0 {
 14374  					return 1
 14375  				}
 14376  			}
 14377  			return 0
 14378  		} else if c == '?' {
 14379  			if (int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))))) == 0 {
 14380  				return 0
 14381  			}
 14382  		} else if c == '[' {
 14383  			var prior_c int32 = 0
 14384  			seen = 0
 14385  			invert = 0
 14386  			c = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))))
 14387  			if c == 0 {
 14388  				return 0
 14389  			}
 14390  			c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1))))
 14391  			if c2 == '^' {
 14392  				invert = 1
 14393  				c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1))))
 14394  			}
 14395  			if c2 == ']' {
 14396  				if c == ']' {
 14397  					seen = 1
 14398  				}
 14399  				c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1))))
 14400  			}
 14401  			for (c2 != 0) && (c2 != ']') {
 14402  				if (((c2 == '-') && (int32(*(*int8)(unsafe.Pointer(zGlob + uintptr(0)))) != ']')) && (int32(*(*int8)(unsafe.Pointer(zGlob + uintptr(0)))) != 0)) && (prior_c > 0) {
 14403  					c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1))))
 14404  					if (c >= prior_c) && (c <= c2) {
 14405  						seen = 1
 14406  					}
 14407  					prior_c = 0
 14408  				} else {
 14409  					if c == c2 {
 14410  						seen = 1
 14411  					}
 14412  					prior_c = c2
 14413  				}
 14414  				c2 = int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zGlob, 1))))
 14415  			}
 14416  			if (c2 == 0) || ((seen ^ invert) == 0) {
 14417  				return 0
 14418  			}
 14419  		} else if c == '#' {
 14420  			if ((int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) == '-') || (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) == '+')) && (libc.Xisdigit(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(1)))))) != 0) {
 14421  				z++
 14422  			}
 14423  			if !(libc.Xisdigit(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(0)))))) != 0) {
 14424  				return 0
 14425  			}
 14426  			z++
 14427  			for libc.Xisdigit(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(0)))))) != 0 {
 14428  				z++
 14429  			}
 14430  		} else {
 14431  			if c != (int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))))) {
 14432  				return 0
 14433  			}
 14434  		}
 14435  	}
 14436  	return (libc.Bool32(int32(*(*int8)(unsafe.Pointer(z))) == 0))
 14437  }
 14438  
 14439  // Close output stream pOut if it is not stdout or stderr
 14440  func maybeClose(tls *libc.TLS, pOut uintptr) { /* mptest.c:208:13: */
 14441  	if (pOut != (libc.X__acrt_iob_func(tls, uint32(1)))) && (pOut != (libc.X__acrt_iob_func(tls, uint32(2)))) {
 14442  		libc.Xfclose(tls, pOut)
 14443  	}
 14444  }
 14445  
 14446  // Print an error message
 14447  func errorMessage(tls *libc.TLS, zFormat uintptr, va uintptr) { /* mptest.c:215:13: */
 14448  	bp := tls.Alloc(46)
 14449  	defer tls.Free(46)
 14450  
 14451  	var ap va_list
 14452  	_ = ap
 14453  	var zMsg uintptr
 14454  	// var zPrefix [30]int8 at bp+16, 30
 14455  
 14456  	ap = va
 14457  	zMsg = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap)
 14458  	_ = ap
 14459  	sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([30]int8{})), bp+16 /* &zPrefix[0] */, ts+8 /* "%s:ERROR: " */, libc.VaList(bp, uintptr(unsafe.Pointer(&g))+32 /* &.zName */))
 14460  	if g.pLog != 0 {
 14461  		printWithPrefix(tls, g.pLog, bp+16 /* &zPrefix[0] */, zMsg)
 14462  		libc.Xfflush(tls, g.pLog)
 14463  	}
 14464  	if (g.pErrLog != 0) && (safe_strcmp(tls, g.zErrLog, g.zLog) != 0) {
 14465  		printWithPrefix(tls, g.pErrLog, bp+16 /* &zPrefix[0] */, zMsg)
 14466  		libc.Xfflush(tls, g.pErrLog)
 14467  	}
 14468  	sqlite3.Xsqlite3_free(tls, zMsg)
 14469  	g.nError++
 14470  }
 14471  
 14472  // Print an error message and then quit.
 14473  func fatalError(tls *libc.TLS, zFormat uintptr, va uintptr) { /* mptest.c:241:13: */
 14474  	bp := tls.Alloc(46)
 14475  	defer tls.Free(46)
 14476  
 14477  	var ap va_list
 14478  	_ = ap
 14479  	var zMsg uintptr
 14480  	// var zPrefix [30]int8 at bp+16, 30
 14481  
 14482  	ap = va
 14483  	zMsg = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap)
 14484  	_ = ap
 14485  	sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([30]int8{})), bp+16 /* &zPrefix[0] */, ts+19 /* "%s:FATAL: " */, libc.VaList(bp, uintptr(unsafe.Pointer(&g))+32 /* &.zName */))
 14486  	if g.pLog != 0 {
 14487  		printWithPrefix(tls, g.pLog, bp+16 /* &zPrefix[0] */, zMsg)
 14488  		libc.Xfflush(tls, g.pLog)
 14489  		maybeClose(tls, g.pLog)
 14490  	}
 14491  	if (g.pErrLog != 0) && (safe_strcmp(tls, g.zErrLog, g.zLog) != 0) {
 14492  		printWithPrefix(tls, g.pErrLog, bp+16 /* &zPrefix[0] */, zMsg)
 14493  		libc.Xfflush(tls, g.pErrLog)
 14494  		maybeClose(tls, g.pErrLog)
 14495  	}
 14496  	sqlite3.Xsqlite3_free(tls, zMsg)
 14497  	if g.db != 0 {
 14498  		var nTry int32 = 0
 14499  		g.iTimeout = 0
 14500  		for (trySql(tls, ts+30 /* "UPDATE client SE..." */, 0) == 5) &&
 14501  			((libc.PostIncInt32(&nTry, 1)) < 100) {
 14502  			sqlite3.Xsqlite3_sleep(tls, 10)
 14503  		}
 14504  	}
 14505  	sqlite3.Xsqlite3_close(tls, g.db)
 14506  	libc.Xexit(tls, 1)
 14507  }
 14508  
 14509  // Print a log message
 14510  func logMessage(tls *libc.TLS, zFormat uintptr, va uintptr) { /* mptest.c:276:13: */
 14511  	bp := tls.Alloc(46)
 14512  	defer tls.Free(46)
 14513  
 14514  	var ap va_list
 14515  	_ = ap
 14516  	var zMsg uintptr
 14517  	// var zPrefix [30]int8 at bp+16, 30
 14518  
 14519  	ap = va
 14520  	zMsg = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap)
 14521  	_ = ap
 14522  	sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([30]int8{})), bp+16 /* &zPrefix[0] */, ts+60 /* "%s: " */, libc.VaList(bp, uintptr(unsafe.Pointer(&g))+32 /* &.zName */))
 14523  	if g.pLog != 0 {
 14524  		printWithPrefix(tls, g.pLog, bp+16 /* &zPrefix[0] */, zMsg)
 14525  		libc.Xfflush(tls, g.pLog)
 14526  	}
 14527  	sqlite3.Xsqlite3_free(tls, zMsg)
 14528  }
 14529  
 14530  // Return the length of a string omitting trailing whitespace
 14531  func clipLength(tls *libc.TLS, z uintptr) int32 { /* mptest.c:294:12: */
 14532  	var n int32 = int32(libc.Xstrlen(tls, z))
 14533  	for (n > 0) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr((n - 1))))))) != 0) {
 14534  		n--
 14535  	}
 14536  	return n
 14537  }
 14538  
 14539  // Auxiliary SQL function to return the name of the VFS
 14540  func vfsNameFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* mptest.c:303:13: */
 14541  	bp := tls.Alloc(4)
 14542  	defer tls.Free(4)
 14543  
 14544  	var db uintptr = sqlite3.Xsqlite3_context_db_handle(tls, context)
 14545  	*(*uintptr)(unsafe.Pointer(bp /* zVfs */)) = uintptr(0)
 14546  	_ = argc
 14547  	_ = argv
 14548  	sqlite3.Xsqlite3_file_control(tls, db, ts+65 /* "main" */, 12, bp /* &zVfs */)
 14549  	if *(*uintptr)(unsafe.Pointer(bp /* zVfs */)) != 0 {
 14550  		sqlite3.Xsqlite3_result_text(tls, context, *(*uintptr)(unsafe.Pointer(bp /* zVfs */)), -1, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{sqlite3.Xsqlite3_free})))
 14551  	}
 14552  }
 14553  
 14554  // Busy handler with a g.iTimeout-millisecond timeout
 14555  func busyHandler(tls *libc.TLS, pCD uintptr, count int32) int32 { /* mptest.c:321:12: */
 14556  	bp := tls.Alloc(16)
 14557  	defer tls.Free(16)
 14558  
 14559  	_ = pCD
 14560  	if (count * 10) > g.iTimeout {
 14561  		if g.iTimeout > 0 {
 14562  			errorMessage(tls, ts+70 /* "timeout after %d..." */, libc.VaList(bp, g.iTimeout))
 14563  		}
 14564  		return 0
 14565  	}
 14566  	sqlite3.Xsqlite3_sleep(tls, 10)
 14567  	return 1
 14568  }
 14569  
 14570  // SQL Trace callback
 14571  func sqlTraceCallback(tls *libc.TLS, NotUsed1 uintptr, zSql uintptr) { /* mptest.c:334:13: */
 14572  	bp := tls.Alloc(24)
 14573  	defer tls.Free(24)
 14574  
 14575  	_ = NotUsed1
 14576  	logMessage(tls, ts+89 /* "[%.*s]" */, libc.VaList(bp, clipLength(tls, zSql), zSql))
 14577  }
 14578  
 14579  // SQL error log callback
 14580  func sqlErrorCallback(tls *libc.TLS, pArg uintptr, iErrCode int32, zMsg uintptr) { /* mptest.c:342:13: */
 14581  	bp := tls.Alloc(40)
 14582  	defer tls.Free(40)
 14583  
 14584  	_ = pArg
 14585  	if (iErrCode == 1) && (g.bIgnoreSqlErrors != 0) {
 14586  		return
 14587  	}
 14588  	if ((iErrCode & 0xff) == 17) && (g.iTrace < 3) {
 14589  		return
 14590  	}
 14591  	if ((g.iTimeout == 0) && ((iErrCode & 0xff) == 5)) && (g.iTrace < 3) {
 14592  		return
 14593  	}
 14594  	if (iErrCode & 0xff) == 27 {
 14595  		logMessage(tls, ts+96 /* "(info) %s" */, libc.VaList(bp, zMsg))
 14596  	} else {
 14597  		errorMessage(tls, ts+106 /* "(errcode=%d) %s" */, libc.VaList(bp+16, iErrCode, zMsg))
 14598  	}
 14599  }
 14600  
 14601  // Prepare an SQL statement.  Issue a fatal error if unable.
 14602  func prepareSql(tls *libc.TLS, zFormat uintptr, va uintptr) uintptr { /* mptest.c:357:21: */
 14603  	bp := tls.Alloc(28)
 14604  	defer tls.Free(28)
 14605  
 14606  	var ap va_list
 14607  	_ = ap
 14608  	var zSql uintptr
 14609  	var rc int32
 14610  	*(*uintptr)(unsafe.Pointer(bp + 24 /* pStmt */)) = uintptr(0)
 14611  	ap = va
 14612  	zSql = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap)
 14613  	_ = ap
 14614  	rc = sqlite3.Xsqlite3_prepare_v2(tls, g.db, zSql, -1, bp+24 /* &pStmt */, uintptr(0))
 14615  	if rc != 0 {
 14616  		sqlite3.Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 24 /* pStmt */)))
 14617  		fatalError(tls, ts+122 /* "%s\n%s\n" */, libc.VaList(bp, sqlite3.Xsqlite3_errmsg(tls, g.db), zSql))
 14618  	}
 14619  	sqlite3.Xsqlite3_free(tls, zSql)
 14620  	return *(*uintptr)(unsafe.Pointer(bp + 24 /* pStmt */))
 14621  }
 14622  
 14623  // Run arbitrary SQL.  Issue a fatal error on failure.
 14624  func runSql(tls *libc.TLS, zFormat uintptr, va uintptr) { /* mptest.c:377:13: */
 14625  	bp := tls.Alloc(24)
 14626  	defer tls.Free(24)
 14627  
 14628  	var ap va_list
 14629  	_ = ap
 14630  	var zSql uintptr
 14631  	var rc int32
 14632  	ap = va
 14633  	zSql = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap)
 14634  	_ = ap
 14635  	rc = sqlite3.Xsqlite3_exec(tls, g.db, zSql, uintptr(0), uintptr(0), uintptr(0))
 14636  	if rc != 0 {
 14637  		fatalError(tls, ts+122 /* "%s\n%s\n" */, libc.VaList(bp, sqlite3.Xsqlite3_errmsg(tls, g.db), zSql))
 14638  	}
 14639  	sqlite3.Xsqlite3_free(tls, zSql)
 14640  }
 14641  
 14642  // Try to run arbitrary SQL.  Return success code.
 14643  func trySql(tls *libc.TLS, zFormat uintptr, va uintptr) int32 { /* mptest.c:394:12: */
 14644  	var ap va_list
 14645  	_ = ap
 14646  	var zSql uintptr
 14647  	var rc int32
 14648  	ap = va
 14649  	zSql = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap)
 14650  	_ = ap
 14651  	rc = sqlite3.Xsqlite3_exec(tls, g.db, zSql, uintptr(0), uintptr(0), uintptr(0))
 14652  	sqlite3.Xsqlite3_free(tls, zSql)
 14653  	return rc
 14654  }
 14655  
 14656  // Structure for holding an arbitrary length string
 14657  type String1 = struct {
 14658  	z      uintptr
 14659  	n      int32
 14660  	nAlloc int32
 14661  } /* mptest.c:408:9 */
 14662  
 14663  // Structure for holding an arbitrary length string
 14664  type String = String1 /* mptest.c:408:23 */
 14665  
 14666  // Free a string
 14667  func stringFree(tls *libc.TLS, p uintptr) { /* mptest.c:416:13: */
 14668  	if (*String)(unsafe.Pointer(p)).z != 0 {
 14669  		sqlite3.Xsqlite3_free(tls, (*String)(unsafe.Pointer(p)).z)
 14670  	}
 14671  	libc.Xmemset(tls, p, 0, uint32(unsafe.Sizeof(String{})))
 14672  }
 14673  
 14674  // Append n bytes of text to a string.  If n<0 append the entire string.
 14675  func stringAppend(tls *libc.TLS, p uintptr, z uintptr, n int32) { /* mptest.c:422:13: */
 14676  	if n < 0 {
 14677  		n = int32(libc.Xstrlen(tls, z))
 14678  	}
 14679  	if ((*String)(unsafe.Pointer(p)).n + n) >= (*String)(unsafe.Pointer(p)).nAlloc {
 14680  		var nAlloc int32 = ((((*String)(unsafe.Pointer(p)).nAlloc * 2) + n) + 100)
 14681  		var zNew uintptr = sqlite3.Xsqlite3_realloc(tls, (*String)(unsafe.Pointer(p)).z, nAlloc)
 14682  		if zNew == uintptr(0) {
 14683  			fatalError(tls, ts+129 /* "out of memory" */, 0)
 14684  		}
 14685  		(*String)(unsafe.Pointer(p)).z = zNew
 14686  		(*String)(unsafe.Pointer(p)).nAlloc = nAlloc
 14687  	}
 14688  	libc.Xmemcpy(tls, ((*String)(unsafe.Pointer(p)).z + uintptr((*String)(unsafe.Pointer(p)).n)), z, uint32(n))
 14689  	*(*int32)(unsafe.Pointer(p + 4 /* &.n */)) += (n)
 14690  	*(*int8)(unsafe.Pointer((*String)(unsafe.Pointer(p)).z + uintptr((*String)(unsafe.Pointer(p)).n))) = int8(0)
 14691  }
 14692  
 14693  // Reset a string to an empty string
 14694  func stringReset(tls *libc.TLS, p uintptr) { /* mptest.c:437:13: */
 14695  	if (*String)(unsafe.Pointer(p)).z == uintptr(0) {
 14696  		stringAppend(tls, p, ts+143 /* " " */, 1)
 14697  	}
 14698  	(*String)(unsafe.Pointer(p)).n = 0
 14699  	*(*int8)(unsafe.Pointer((*String)(unsafe.Pointer(p)).z + uintptr(0))) = int8(0)
 14700  }
 14701  
 14702  // Append a new token onto the end of the string
 14703  func stringAppendTerm(tls *libc.TLS, p uintptr, z uintptr) { /* mptest.c:444:13: */
 14704  	var i int32
 14705  	if (*String)(unsafe.Pointer(p)).n != 0 {
 14706  		stringAppend(tls, p, ts+143 /* " " */, 1)
 14707  	}
 14708  	if z == uintptr(0) {
 14709  		stringAppend(tls, p, ts+145 /* "nil" */, 3)
 14710  		return
 14711  	}
 14712  	for i = 0; (*(*int8)(unsafe.Pointer(z + uintptr(i))) != 0) && !(libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i)))))) != 0); i++ {
 14713  	}
 14714  	if (i > 0) && (int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == 0) {
 14715  		stringAppend(tls, p, z, i)
 14716  		return
 14717  	}
 14718  	stringAppend(tls, p, ts+149 /* "'" */, 1)
 14719  	for *(*int8)(unsafe.Pointer(z + uintptr(0))) != 0 {
 14720  		for i = 0; (*(*int8)(unsafe.Pointer(z + uintptr(i))) != 0) && (int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) != '\''); i++ {
 14721  		}
 14722  		if *(*int8)(unsafe.Pointer(z + uintptr(i))) != 0 {
 14723  			stringAppend(tls, p, z, (i + 1))
 14724  			stringAppend(tls, p, ts+149 /* "'" */, 1)
 14725  			z += (uintptr(i + 1))
 14726  		} else {
 14727  			stringAppend(tls, p, z, i)
 14728  			break
 14729  		}
 14730  	}
 14731  	stringAppend(tls, p, ts+149 /* "'" */, 1)
 14732  }
 14733  
 14734  // Callback function for evalSql()
 14735  func evalCallback(tls *libc.TLS, pCData uintptr, argc int32, argv uintptr, azCol uintptr) int32 { /* mptest.c:474:12: */
 14736  	var p uintptr = pCData
 14737  	var i int32
 14738  	_ = azCol
 14739  	for i = 0; i < argc; i++ {
 14740  		stringAppendTerm(tls, p, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4)))
 14741  	}
 14742  	return 0
 14743  }
 14744  
 14745  // Run arbitrary SQL and record the results in an output string
 14746  // given by the first parameter.
 14747  func evalSql(tls *libc.TLS, p uintptr, zFormat uintptr, va uintptr) int32 { /* mptest.c:486:12: */
 14748  	bp := tls.Alloc(50)
 14749  	defer tls.Free(50)
 14750  
 14751  	var ap va_list
 14752  	_ = ap
 14753  	var zSql uintptr
 14754  	var rc int32
 14755  	*(*uintptr)(unsafe.Pointer(bp + 16 /* zErrMsg */)) = uintptr(0)
 14756  	ap = va
 14757  	zSql = sqlite3.Xsqlite3_vmprintf(tls, zFormat, ap)
 14758  	_ = ap
 14759  
 14760  	rc = sqlite3.Xsqlite3_exec(tls, g.db, zSql, *(*uintptr)(unsafe.Pointer(&struct {
 14761  		f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
 14762  	}{evalCallback})), p, bp+16 /* &zErrMsg */)
 14763  	sqlite3.Xsqlite3_free(tls, zSql)
 14764  	if rc != 0 {
 14765  		// var zErr [30]int8 at bp+20, 30
 14766  
 14767  		sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([30]int8{})), bp+20 /* &zErr[0] */, ts+151 /* "error(%d)" */, libc.VaList(bp, rc))
 14768  		stringAppendTerm(tls, p, bp+20 /* &zErr[0] */)
 14769  		if *(*uintptr)(unsafe.Pointer(bp + 16 /* zErrMsg */)) != 0 {
 14770  			stringAppendTerm(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16 /* zErrMsg */)))
 14771  			sqlite3.Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 16 /* zErrMsg */)))
 14772  		}
 14773  	}
 14774  	return rc
 14775  }
 14776  
 14777  // Auxiliary SQL function to recursively evaluate SQL.
 14778  func evalFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* mptest.c:512:13: */
 14779  	bp := tls.Alloc(16)
 14780  	defer tls.Free(16)
 14781  
 14782  	var db uintptr = sqlite3.Xsqlite3_context_db_handle(tls, context)
 14783  	var zSql uintptr = sqlite3.Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*4)))
 14784  	// var res String at bp, 12
 14785  
 14786  	*(*uintptr)(unsafe.Pointer(bp + 12 /* zErrMsg */)) = uintptr(0)
 14787  	var rc int32
 14788  	_ = argc
 14789  	libc.Xmemset(tls, bp /* &res */, 0, uint32(unsafe.Sizeof(String{})))
 14790  	rc = sqlite3.Xsqlite3_exec(tls, db, zSql, *(*uintptr)(unsafe.Pointer(&struct {
 14791  		f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
 14792  	}{evalCallback})), bp /* &res */, bp+12 /* &zErrMsg */)
 14793  	if *(*uintptr)(unsafe.Pointer(bp + 12 /* zErrMsg */)) != 0 {
 14794  		sqlite3.Xsqlite3_result_error(tls, context, *(*uintptr)(unsafe.Pointer(bp + 12 /* zErrMsg */)), -1)
 14795  		sqlite3.Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 12 /* zErrMsg */)))
 14796  	} else if rc != 0 {
 14797  		sqlite3.Xsqlite3_result_error_code(tls, context, rc)
 14798  	} else {
 14799  		sqlite3.Xsqlite3_result_text(tls, context, (*String)(unsafe.Pointer(bp /* &res */)).z, -1, libc.UintptrFromInt32(-1))
 14800  	}
 14801  	stringFree(tls, bp /* &res */)
 14802  }
 14803  
 14804  // Look up the next task for client iClient in the database.
 14805  // Return the task script and the task number and mark that
 14806  // task as being under way.
 14807  func startScript(tls *libc.TLS, iClient int32, pzScript uintptr, pTaskId uintptr, pzTaskName uintptr) int32 { /* mptest.c:541:12: */
 14808  	bp := tls.Alloc(152)
 14809  	defer tls.Free(152)
 14810  
 14811  	var pStmt uintptr = uintptr(0)
 14812  	var taskId int32
 14813  	var rc int32
 14814  	var totalTime int32 = 0
 14815  
 14816  	*(*uintptr)(unsafe.Pointer(pzScript)) = uintptr(0)
 14817  	g.iTimeout = 0
 14818  	for 1 != 0 {
 14819  		rc = trySql(tls, ts+161 /* "BEGIN IMMEDIATE" */, 0)
 14820  		if rc == 5 {
 14821  			sqlite3.Xsqlite3_sleep(tls, 10)
 14822  			totalTime = totalTime + (10)
 14823  			continue
 14824  		}
 14825  		if rc != 0 {
 14826  			fatalError(tls, ts+177 /* "in startScript: ..." */, libc.VaList(bp, sqlite3.Xsqlite3_errmsg(tls, g.db)))
 14827  		}
 14828  		if (g.nError != 0) || (g.nTest != 0) {
 14829  			runSql(tls, ts+196, /* "UPDATE counters ..." */
 14830  				libc.VaList(bp+16, g.nError, g.nTest))
 14831  			g.nError = 0
 14832  			g.nTest = 0
 14833  		}
 14834  		pStmt = prepareSql(tls, ts+249 /* "SELECT 1 FROM cl..." */, libc.VaList(bp+40, iClient))
 14835  		rc = sqlite3.Xsqlite3_step(tls, pStmt)
 14836  		sqlite3.Xsqlite3_finalize(tls, pStmt)
 14837  		if rc == 100 {
 14838  			runSql(tls, ts+295 /* "DELETE FROM clie..." */, libc.VaList(bp+56, iClient))
 14839  			g.iTimeout = 10000
 14840  			runSql(tls, ts+326 /* "COMMIT TRANSACTI..." */, 0)
 14841  			return 101
 14842  		}
 14843  		pStmt = prepareSql(tls,
 14844  
 14845  			ts+346 /* "SELECT script, i..." */, libc.VaList(bp+72, iClient))
 14846  		rc = sqlite3.Xsqlite3_step(tls, pStmt)
 14847  		if rc == 100 {
 14848  			var n int32 = sqlite3.Xsqlite3_column_bytes(tls, pStmt, 0)
 14849  			*(*uintptr)(unsafe.Pointer(pzScript)) = sqlite3.Xsqlite3_malloc(tls, (n + 1))
 14850  			libc.Xstrcpy(tls, *(*uintptr)(unsafe.Pointer(pzScript)), sqlite3.Xsqlite3_column_text(tls, pStmt, 0))
 14851  			*(*int32)(unsafe.Pointer(pTaskId)) = libc.AssignInt32(&taskId, sqlite3.Xsqlite3_column_int(tls, pStmt, 1))
 14852  			*(*uintptr)(unsafe.Pointer(pzTaskName)) = sqlite3.Xsqlite3_mprintf(tls, ts+438 /* "%s" */, libc.VaList(bp+88, sqlite3.Xsqlite3_column_text(tls, pStmt, 2)))
 14853  			sqlite3.Xsqlite3_finalize(tls, pStmt)
 14854  			runSql(tls,
 14855  
 14856  				ts+441 /* "UPDATE task   SE..." */, libc.VaList(bp+104, taskId))
 14857  			g.iTimeout = 10000
 14858  			runSql(tls, ts+326 /* "COMMIT TRANSACTI..." */, 0)
 14859  			return 0
 14860  		}
 14861  		sqlite3.Xsqlite3_finalize(tls, pStmt)
 14862  		if rc == 101 {
 14863  			if totalTime > 30000 {
 14864  				errorMessage(tls, ts+524 /* "Waited over 30 s..." */, 0)
 14865  				runSql(tls, ts+573 /* "DELETE FROM clie..." */, libc.VaList(bp+120, iClient))
 14866  				sqlite3.Xsqlite3_close(tls, g.db)
 14867  				libc.Xexit(tls, 1)
 14868  			}
 14869  			for trySql(tls, ts+613 /* "COMMIT" */, 0) == 5 {
 14870  				sqlite3.Xsqlite3_sleep(tls, 10)
 14871  				totalTime = totalTime + (10)
 14872  			}
 14873  			sqlite3.Xsqlite3_sleep(tls, 100)
 14874  			totalTime = totalTime + (100)
 14875  			continue
 14876  		}
 14877  		fatalError(tls, ts+438 /* "%s" */, libc.VaList(bp+136, sqlite3.Xsqlite3_errmsg(tls, g.db)))
 14878  	}
 14879  	g.iTimeout = 10000
 14880  	return int32(0)
 14881  }
 14882  
 14883  // Mark a script as having finished.   Remove the CLIENT table entry
 14884  // if bShutdown is true.
 14885  func finishScript(tls *libc.TLS, iClient int32, taskId int32, bShutdown int32) int32 { /* mptest.c:623:12: */
 14886  	bp := tls.Alloc(32)
 14887  	defer tls.Free(32)
 14888  
 14889  	runSql(tls,
 14890  
 14891  		ts+620 /* "UPDATE task   SE..." */, libc.VaList(bp, taskId))
 14892  	if bShutdown != 0 {
 14893  		runSql(tls, ts+295 /* "DELETE FROM clie..." */, libc.VaList(bp+16, iClient))
 14894  	}
 14895  	return 0
 14896  }
 14897  
 14898  // Start up a client process for iClient, if it is not already
 14899  // running.  If the client is already running, then this routine
 14900  // is a no-op.
 14901  func startClient(tls *libc.TLS, iClient int32) { /* mptest.c:638:13: */
 14902  	bp := tls.Alloc(228)
 14903  	defer tls.Free(228)
 14904  
 14905  	runSql(tls, ts+701 /* "INSERT OR IGNORE..." */, libc.VaList(bp, iClient))
 14906  	if sqlite3.Xsqlite3_changes(tls, g.db) != 0 {
 14907  		var zSys uintptr
 14908  		var rc int32
 14909  		zSys = sqlite3.Xsqlite3_mprintf(tls, ts+743, /* "%s \"%s\" --client..." */
 14910  			libc.VaList(bp+16, g.argv0, g.zDbFile, iClient, g.iTrace))
 14911  		if g.bSqlTrace != 0 {
 14912  			zSys = sqlite3.Xsqlite3_mprintf(tls, ts+774 /* "%z --sqltrace" */, libc.VaList(bp+56, zSys))
 14913  		}
 14914  		if g.bSync != 0 {
 14915  			zSys = sqlite3.Xsqlite3_mprintf(tls, ts+788 /* "%z --sync" */, libc.VaList(bp+72, zSys))
 14916  		}
 14917  		if g.zVfs != 0 {
 14918  			zSys = sqlite3.Xsqlite3_mprintf(tls, ts+798 /* "%z --vfs \"%s\"" */, libc.VaList(bp+88, zSys, g.zVfs))
 14919  		}
 14920  		if g.iTrace >= 2 {
 14921  			logMessage(tls, ts+812 /* "system('%q')" */, libc.VaList(bp+112, zSys))
 14922  		}
 14923  		{
 14924  			// var startupInfo STARTUPINFOA at bp+144, 68
 14925  
 14926  			// var processInfo PROCESS_INFORMATION at bp+212, 16
 14927  
 14928  			libc.Xmemset(tls, bp+144 /* &startupInfo */, 0, uint32(unsafe.Sizeof(STARTUPINFOA{})))
 14929  			(*STARTUPINFOA)(unsafe.Pointer(bp + 144 /* &startupInfo */)).cb = DWORD(unsafe.Sizeof(STARTUPINFOA{}))
 14930  			libc.Xmemset(tls, bp+212 /* &processInfo */, 0, uint32(unsafe.Sizeof(PROCESS_INFORMATION{})))
 14931  			rc = libc.XCreateProcessA(tls, uintptr(0), zSys, uintptr(0), uintptr(0), 0, uint32(0), uintptr(0), uintptr(0),
 14932  				bp+144 /* &startupInfo */, bp+212 /* &processInfo */)
 14933  			if rc != 0 {
 14934  				libc.XCloseHandle(tls, (*PROCESS_INFORMATION)(unsafe.Pointer(bp+212 /* &processInfo */)).hThread)
 14935  				libc.XCloseHandle(tls, (*PROCESS_INFORMATION)(unsafe.Pointer(bp+212 /* &processInfo */)).hProcess)
 14936  			} else {
 14937  				errorMessage(tls, ts+825, /* "CreateProcessA()..." */
 14938  					libc.VaList(bp+128, libc.XGetLastError(tls)))
 14939  			}
 14940  
 14941  		}
 14942  		sqlite3.Xsqlite3_free(tls, zSys)
 14943  	}
 14944  }
 14945  
 14946  // Read the entire content of a file into memory
 14947  func readFile(tls *libc.TLS, zFilename uintptr) uintptr { /* mptest.c:684:13: */
 14948  	bp := tls.Alloc(16)
 14949  	defer tls.Free(16)
 14950  
 14951  	var in uintptr = libc.Xfopen(tls, zFilename, ts+868 /* "rb" */)
 14952  	var sz int32
 14953  	var z uintptr
 14954  	if in == uintptr(0) {
 14955  		fatalError(tls, ts+871 /* "cannot open \"%s\"..." */, libc.VaList(bp, zFilename))
 14956  	}
 14957  	libc.Xfseek(tls, in, 0, 2)
 14958  	sz = libc.Xftell(tls, in)
 14959  	libc.Xrewind(tls, in)
 14960  	z = sqlite3.Xsqlite3_malloc(tls, (int32(sz + 1)))
 14961  	sz = int32(libc.Xfread(tls, z, uint32(1), uint32(sz), in))
 14962  	*(*int8)(unsafe.Pointer(z + uintptr(sz))) = int8(0)
 14963  	libc.Xfclose(tls, in)
 14964  	return z
 14965  }
 14966  
 14967  // Return the length of the next token.
 14968  func tokenLength(tls *libc.TLS, z uintptr, pnLine uintptr) int32 { /* mptest.c:704:12: */
 14969  	var n int32 = 0
 14970  	if (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(0)))))) != 0) || ((int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) == '/') && (int32(*(*int8)(unsafe.Pointer(z + uintptr(1)))) == '*')) {
 14971  		var inC int32 = 0
 14972  		var c int32
 14973  		if int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) == '/' {
 14974  			inC = 1
 14975  			n = 2
 14976  		}
 14977  		for (libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&n, 1))))))) != 0 {
 14978  			if c == '\n' {
 14979  				(*(*int32)(unsafe.Pointer(pnLine)))++
 14980  			}
 14981  			if libc.Xisspace(tls, int32(uint8(c))) != 0 {
 14982  				continue
 14983  			}
 14984  			if ((inC != 0) && (c == '*')) && (int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == '/') {
 14985  				n++
 14986  				inC = 0
 14987  			} else if (!(inC != 0) && (c == '/')) && (int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == '*') {
 14988  				n++
 14989  				inC = 1
 14990  			} else if !(inC != 0) {
 14991  				break
 14992  			}
 14993  		}
 14994  		n--
 14995  	} else if (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) == '-') && (int32(*(*int8)(unsafe.Pointer(z + uintptr(1)))) == '-') {
 14996  		for n = 2; (*(*int8)(unsafe.Pointer(z + uintptr(n))) != 0) && (int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) != '\n'); n++ {
 14997  		}
 14998  		if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 {
 14999  			(*(*int32)(unsafe.Pointer(pnLine)))++
 15000  			n++
 15001  		}
 15002  	} else if (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) == '"') || (int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) == '\'') {
 15003  		var delim int32 = int32(*(*int8)(unsafe.Pointer(z + uintptr(0))))
 15004  		for n = 1; *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0; n++ {
 15005  			if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == '\n' {
 15006  				(*(*int32)(unsafe.Pointer(pnLine)))++
 15007  			}
 15008  			if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == delim {
 15009  				n++
 15010  				if int32(*(*int8)(unsafe.Pointer(z + uintptr((n + 1))))) != delim {
 15011  					break
 15012  				}
 15013  			}
 15014  		}
 15015  	} else {
 15016  		var c int32
 15017  		for n = 1; (((((libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))))) != 0) && !(libc.Xisspace(tls, int32(uint8(c))) != 0)) && (c != '"')) && (c != '\'')) && (c != ';'); n++ {
 15018  		}
 15019  	}
 15020  	return n
 15021  }
 15022  
 15023  // Copy a single token into a string buffer.
 15024  func extractToken(tls *libc.TLS, zIn uintptr, nIn int32, zOut uintptr, nOut int32) int32 { /* mptest.c:749:12: */
 15025  	var i int32
 15026  	if nIn <= 0 {
 15027  		*(*int8)(unsafe.Pointer(zOut + uintptr(0))) = int8(0)
 15028  		return 0
 15029  	}
 15030  	for i = 0; ((i < nIn) && (i < (nOut - 1))) && !(libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))))) != 0); i++ {
 15031  		*(*int8)(unsafe.Pointer(zOut + uintptr(i))) = *(*int8)(unsafe.Pointer(zIn + uintptr(i)))
 15032  	}
 15033  	*(*int8)(unsafe.Pointer(zOut + uintptr(i))) = int8(0)
 15034  	return i
 15035  }
 15036  
 15037  // Find the number of characters up to the start of the next "--end" token.
 15038  func findEnd(tls *libc.TLS, z uintptr, pnLine uintptr) int32 { /* mptest.c:763:12: */
 15039  	var n int32 = 0
 15040  	for (*(*int8)(unsafe.Pointer(z + uintptr(n))) != 0) && ((libc.Xstrncmp(tls, (z+uintptr(n)), ts+900 /* "--end" */, uint32(5)) != 0) || !(libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr((n + 5))))))) != 0)) {
 15041  		n = n + (tokenLength(tls, (z + uintptr(n)), pnLine))
 15042  	}
 15043  	return n
 15044  }
 15045  
 15046  // Find the number of characters up to the first character past the
 15047  // of the next "--endif"  or "--else" token. Nested --if commands are
 15048  // also skipped.
 15049  func findEndif(tls *libc.TLS, z uintptr, stopAtElse int32, pnLine uintptr) int32 { /* mptest.c:776:12: */
 15050  	var n int32 = 0
 15051  	for *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 {
 15052  		var len int32 = tokenLength(tls, (z + uintptr(n)), pnLine)
 15053  		if ((libc.Xstrncmp(tls, (z+uintptr(n)), ts+906 /* "--endif" */, uint32(7)) == 0) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr((n + 7))))))) != 0)) ||
 15054  			(((stopAtElse != 0) && (libc.Xstrncmp(tls, (z+uintptr(n)), ts+914 /* "--else" */, uint32(6)) == 0)) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr((n + 6))))))) != 0)) {
 15055  			return (n + len)
 15056  		}
 15057  		if (libc.Xstrncmp(tls, (z+uintptr(n)), ts+921 /* "--if" */, uint32(4)) == 0) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr((n + 4))))))) != 0) {
 15058  			var skip int32 = findEndif(tls, ((z + uintptr(n)) + uintptr(len)), 0, pnLine)
 15059  			n = n + (skip + len)
 15060  		} else {
 15061  			n = n + (len)
 15062  		}
 15063  	}
 15064  	return n
 15065  }
 15066  
 15067  // Wait for a client process to complete all its tasks
 15068  func waitForClient(tls *libc.TLS, iClient int32, iTimeout int32, zErrPrefix uintptr) { /* mptest.c:798:13: */
 15069  	bp := tls.Alloc(56)
 15070  	defer tls.Free(56)
 15071  
 15072  	var pStmt uintptr
 15073  	var rc int32
 15074  	if iClient > 0 {
 15075  		pStmt = prepareSql(tls,
 15076  
 15077  			ts+926, /* "SELECT 1 FROM ta..." */
 15078  			libc.VaList(bp, iClient))
 15079  	} else {
 15080  		pStmt = prepareSql(tls,
 15081  
 15082  			ts+1022 /* "SELECT 1 FROM ta..." */, 0)
 15083  	}
 15084  	g.iTimeout = 0
 15085  	for (((libc.AssignInt32(&rc, sqlite3.Xsqlite3_step(tls, pStmt))) == 5) || (rc == 100)) &&
 15086  		(iTimeout > 0) {
 15087  		sqlite3.Xsqlite3_reset(tls, pStmt)
 15088  		sqlite3.Xsqlite3_sleep(tls, 50)
 15089  		iTimeout = iTimeout - (50)
 15090  	}
 15091  	sqlite3.Xsqlite3_finalize(tls, pStmt)
 15092  	g.iTimeout = 10000
 15093  	if rc != 101 {
 15094  		if zErrPrefix == uintptr(0) {
 15095  			zErrPrefix = ts + 1103 /* "" */
 15096  		}
 15097  		if iClient > 0 {
 15098  			errorMessage(tls, ts+1104 /* "%stimeout waitin..." */, libc.VaList(bp+16, zErrPrefix, iClient))
 15099  		} else {
 15100  			errorMessage(tls, ts+1136 /* "%stimeout waitin..." */, libc.VaList(bp+40, zErrPrefix))
 15101  		}
 15102  	}
 15103  }
 15104  
 15105  // Return a pointer to the tail of a filename
 15106  func filenameTail(tls *libc.TLS, z uintptr) uintptr { /* mptest.c:836:13: */
 15107  	var i int32
 15108  	var j int32
 15109  	for i = libc.AssignInt32(&j, 0); *(*int8)(unsafe.Pointer(z + uintptr(i))) != 0; i++ {
 15110  		if ((int32(*(*int8)(unsafe.Pointer(z + uintptr(i))))) == '/') || ((int32(*(*int8)(unsafe.Pointer(z + uintptr(i))))) == '\\') {
 15111  			j = (i + 1)
 15112  		}
 15113  	}
 15114  	return (z + uintptr(j))
 15115  }
 15116  
 15117  // Interpret zArg as a boolean value.  Return either 0 or 1.
 15118  func booleanValue(tls *libc.TLS, zArg uintptr) int32 { /* mptest.c:845:12: */
 15119  	bp := tls.Alloc(16)
 15120  	defer tls.Free(16)
 15121  
 15122  	var i int32
 15123  	if zArg == uintptr(0) {
 15124  		return 0
 15125  	}
 15126  	for i = 0; (int32(*(*int8)(unsafe.Pointer(zArg + uintptr(i)))) >= '0') && (int32(*(*int8)(unsafe.Pointer(zArg + uintptr(i)))) <= '9'); i++ {
 15127  	}
 15128  	if (i > 0) && (int32(*(*int8)(unsafe.Pointer(zArg + uintptr(i)))) == 0) {
 15129  		return libc.Xatoi(tls, zArg)
 15130  	}
 15131  	if (sqlite3.Xsqlite3_stricmp(tls, zArg, ts+1170 /* "on" */) == 0) || (sqlite3.Xsqlite3_stricmp(tls, zArg, ts+1173 /* "yes" */) == 0) {
 15132  		return 1
 15133  	}
 15134  	if (sqlite3.Xsqlite3_stricmp(tls, zArg, ts+1177 /* "off" */) == 0) || (sqlite3.Xsqlite3_stricmp(tls, zArg, ts+1181 /* "no" */) == 0) {
 15135  		return 0
 15136  	}
 15137  	errorMessage(tls, ts+1184 /* "unknown boolean:..." */, libc.VaList(bp, zArg))
 15138  	return 0
 15139  }
 15140  
 15141  // This routine exists as a convenient place to set a debugger
 15142  // breakpoint.
 15143  func test_breakpoint(tls *libc.TLS) { /* mptest.c:864:13: */
 15144  	atomic.AddInt32(&cnt, 1)
 15145  }
 15146  
 15147  var cnt int32 = 0 /* mptest.c:864:56 */
 15148  
 15149  // Maximum number of arguments to a --command
 15150  
 15151  // Run a script.
 15152  func runScript(tls *libc.TLS, iClient int32, taskId int32, zScript uintptr, zFilename uintptr) { /* mptest.c:872:13: */
 15153  	bp := tls.Alloc(1766)
 15154  	defer tls.Free(1766)
 15155  
 15156  	*(*int32)(unsafe.Pointer(bp + 532 /* lineno */)) = 1
 15157  	var prevLine int32 = 1
 15158  	var ii int32 = 0
 15159  	var iBegin int32 = 0
 15160  	var n int32
 15161  	var c int32
 15162  	var j int32
 15163  	var len int32
 15164  	var nArg int32
 15165  	// var sResult String at bp+520, 12
 15166  
 15167  	// var zCmd [30]int8 at bp+536, 30
 15168  
 15169  	// var zError [1000]int8 at bp+766, 1000
 15170  
 15171  	// var azArg [2][100]int8 at bp+566, 200
 15172  
 15173  	libc.Xmemset(tls, bp+520 /* &sResult */, 0, uint32(unsafe.Sizeof(String{})))
 15174  	stringReset(tls, bp+520 /* &sResult */)
 15175  	for (libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(zScript + uintptr(ii)))))) != 0 {
 15176  		prevLine = *(*int32)(unsafe.Pointer(bp + 532 /* lineno */))
 15177  		len = tokenLength(tls, (zScript + uintptr(ii)), bp+532 /* &lineno */)
 15178  		if (libc.Xisspace(tls, int32(uint8(c))) != 0) || ((c == '/') && (int32(*(*int8)(unsafe.Pointer(zScript + uintptr((ii + 1))))) == '*')) {
 15179  			ii = ii + (len)
 15180  			continue
 15181  		}
 15182  		if ((c != '-') || (int32(*(*int8)(unsafe.Pointer(zScript + uintptr((ii + 1))))) != '-')) || !(libc.Xisalpha(tls, int32(*(*int8)(unsafe.Pointer(zScript + uintptr((ii + 2)))))) != 0) {
 15183  			ii = ii + (len)
 15184  			continue
 15185  		}
 15186  
 15187  		// Run any prior SQL before processing the new --command
 15188  		if ii > iBegin {
 15189  			var zSql uintptr = sqlite3.Xsqlite3_mprintf(tls, ts+1206 /* "%.*s" */, libc.VaList(bp, (ii-iBegin), (zScript+uintptr(iBegin))))
 15190  			evalSql(tls, bp+520 /* &sResult */, zSql, 0)
 15191  			sqlite3.Xsqlite3_free(tls, zSql)
 15192  			iBegin = (ii + len)
 15193  		}
 15194  
 15195  		// Parse the --command
 15196  		if g.iTrace >= 2 {
 15197  			logMessage(tls, ts+1206 /* "%.*s" */, libc.VaList(bp+24, len, (zScript+uintptr(ii))))
 15198  		}
 15199  		n = extractToken(tls, ((zScript + uintptr(ii)) + uintptr(2)), (len - 2), bp+536 /* &zCmd[0] */, int32(unsafe.Sizeof([30]int8{})))
 15200  		for nArg = 0; (n < (len - 2)) && (nArg < 2); nArg++ {
 15201  			for (n < (len - 2)) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zScript + uintptr(((ii + 2) + n))))))) != 0) {
 15202  				n++
 15203  			}
 15204  			if n >= (len - 2) {
 15205  				break
 15206  			}
 15207  			n = n + (extractToken(tls, (((zScript + uintptr(ii)) + uintptr(2)) + uintptr(n)), ((len - 2) - n),
 15208  				(bp + 566 /* &azArg[0] */ + uintptr(nArg)*100), int32(unsafe.Sizeof([100]int8{}))))
 15209  		}
 15210  		for j = nArg; j < 2; j++ {
 15211  			*(*int8)(unsafe.Pointer((bp + 566 /* &azArg[0] */ + uintptr(libc.PostIncInt32(&j, 1))*100) + uintptr(0))) = int8(0)
 15212  		}
 15213  
 15214  		//  --sleep N
 15215  		//
 15216  		// Pause for N milliseconds
 15217  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1211 /* "sleep" */) == 0 {
 15218  			sqlite3.Xsqlite3_sleep(tls, libc.Xatoi(tls, (bp+566 /* &azArg[0] */ +uintptr(0)*100)))
 15219  		} else
 15220  
 15221  		//   --exit N
 15222  		//
 15223  		// Exit this process.  If N>0 then exit without shutting down
 15224  		// SQLite.  (In other words, simulate a crash.)
 15225  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1217 /* "exit" */) == 0 {
 15226  			var rc int32 = libc.Xatoi(tls, (bp + 566 /* &azArg[0] */ + uintptr(0)*100))
 15227  			finishScript(tls, iClient, taskId, 1)
 15228  			if rc == 0 {
 15229  				sqlite3.Xsqlite3_close(tls, g.db)
 15230  			}
 15231  			libc.Xexit(tls, rc)
 15232  		} else
 15233  
 15234  		//   --testcase NAME
 15235  		//
 15236  		// Begin a new test case.  Announce in the log that the test case
 15237  		// has begun.
 15238  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1222 /* "testcase" */) == 0 {
 15239  			if g.iTrace == 1 {
 15240  				logMessage(tls, ts+1206 /* "%.*s" */, libc.VaList(bp+48, (len-1), (zScript+uintptr(ii))))
 15241  			}
 15242  			stringReset(tls, bp+520 /* &sResult */)
 15243  		} else
 15244  
 15245  		//   --finish
 15246  		//
 15247  		// Mark the current task as having finished, even if it is not.
 15248  		// This can be used in conjunction with --exit to simulate a crash.
 15249  		if (libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1231 /* "finish" */) == 0) && (iClient > 0) {
 15250  			finishScript(tls, iClient, taskId, 1)
 15251  		} else
 15252  
 15253  		//  --reset
 15254  		//
 15255  		// Reset accumulated results back to an empty string
 15256  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1238 /* "reset" */) == 0 {
 15257  			stringReset(tls, bp+520 /* &sResult */)
 15258  		} else
 15259  
 15260  		//  --match ANSWER...
 15261  		//
 15262  		// Check to see if output matches ANSWER.  Report an error if not.
 15263  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1244 /* "match" */) == 0 {
 15264  			var jj int32
 15265  			var zAns uintptr = (zScript + uintptr(ii))
 15266  			for jj = 7; (jj < (len - 1)) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zAns + uintptr(jj)))))) != 0); jj++ {
 15267  			}
 15268  			zAns += uintptr(jj)
 15269  			if (((len - jj) - 1) != (*String)(unsafe.Pointer(bp+520 /* &sResult */)).n) || (libc.Xstrncmp(tls, (*String)(unsafe.Pointer(bp+520 /* &sResult */)).z, zAns, (uint32((len-jj)-1))) != 0) {
 15270  				errorMessage(tls, ts+1250, /* "line %d of %s:\nE..." */
 15271  					libc.VaList(bp+72, prevLine, zFilename, ((len-jj)-1), zAns, (*String)(unsafe.Pointer(bp+520 /* &sResult */)).z))
 15272  			}
 15273  			g.nTest++
 15274  			stringReset(tls, bp+520 /* &sResult */)
 15275  		} else
 15276  
 15277  		//  --glob ANSWER...
 15278  		//  --notglob ANSWER....
 15279  		//
 15280  		// Check to see if output does or does not match the glob pattern
 15281  		// ANSWER.
 15282  		if (libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1295 /* "glob" */) == 0) || (libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1300 /* "notglob" */) == 0) {
 15283  			var jj int32
 15284  			var zAns uintptr = (zScript + uintptr(ii))
 15285  			var zCopy uintptr
 15286  			var isGlob int32 = (libc.Bool32(int32(*(*int8)(unsafe.Pointer(bp + 536 /* &zCmd[0] */ + uintptr(0)))) == 'g'))
 15287  			for jj = (9 - (3 * isGlob)); (jj < (len - 1)) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zAns + uintptr(jj)))))) != 0); jj++ {
 15288  			}
 15289  			zAns += uintptr(jj)
 15290  			zCopy = sqlite3.Xsqlite3_mprintf(tls, ts+1206 /* "%.*s" */, libc.VaList(bp+120, ((len-jj)-1), zAns))
 15291  			if ((libc.Bool32(sqlite3.Xsqlite3_strglob(tls, zCopy, (*String)(unsafe.Pointer(bp+520 /* &sResult */)).z) == 0)) ^ isGlob) != 0 {
 15292  				errorMessage(tls, ts+1308, /* "line %d of %s:\nE..." */
 15293  					libc.VaList(bp+144, prevLine, zFilename, zCopy, (*String)(unsafe.Pointer(bp+520 /* &sResult */)).z))
 15294  			}
 15295  			sqlite3.Xsqlite3_free(tls, zCopy)
 15296  			g.nTest++
 15297  			stringReset(tls, bp+520 /* &sResult */)
 15298  		} else
 15299  
 15300  		//  --output
 15301  		//
 15302  		// Output the result of the previous SQL.
 15303  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1351 /* "output" */) == 0 {
 15304  			logMessage(tls, ts+438 /* "%s" */, libc.VaList(bp+184, (*String)(unsafe.Pointer(bp+520 /* &sResult */)).z))
 15305  		} else
 15306  
 15307  		//  --source FILENAME
 15308  		//
 15309  		// Run a subscript from a separate file.
 15310  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1358 /* "source" */) == 0 {
 15311  			var zNewFile uintptr
 15312  			var zNewScript uintptr
 15313  			var zToDel uintptr = uintptr(0)
 15314  			zNewFile = (bp + 566 /* &azArg[0] */ + uintptr(0)*100)
 15315  			if !(((int32(*(*int8)(unsafe.Pointer(zNewFile + uintptr(0))))) == '/') || ((int32(*(*int8)(unsafe.Pointer(zNewFile + uintptr(0))))) == '\\')) {
 15316  				var k int32
 15317  				for k = (int32(libc.Xstrlen(tls, zFilename)) - 1); (k >= 0) && !(((int32(*(*int8)(unsafe.Pointer(zFilename + uintptr(k))))) == '/') || ((int32(*(*int8)(unsafe.Pointer(zFilename + uintptr(k))))) == '\\')); k-- {
 15318  				}
 15319  				if k > 0 {
 15320  					zNewFile = libc.AssignUintptr(&zToDel, sqlite3.Xsqlite3_mprintf(tls, ts+1365 /* "%.*s/%s" */, libc.VaList(bp+200, k, zFilename, zNewFile)))
 15321  				}
 15322  			}
 15323  			zNewScript = readFile(tls, zNewFile)
 15324  			if g.iTrace != 0 {
 15325  				logMessage(tls, ts+1373 /* "begin script [%s..." */, libc.VaList(bp+232, zNewFile))
 15326  			}
 15327  			runScript(tls, 0, 0, zNewScript, zNewFile)
 15328  			sqlite3.Xsqlite3_free(tls, zNewScript)
 15329  			if g.iTrace != 0 {
 15330  				logMessage(tls, ts+1392 /* "end script [%s]\n" */, libc.VaList(bp+248, zNewFile))
 15331  			}
 15332  			sqlite3.Xsqlite3_free(tls, zToDel)
 15333  		} else
 15334  
 15335  		//  --print MESSAGE....
 15336  		//
 15337  		// Output the remainder of the line to the log file
 15338  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1409 /* "print" */) == 0 {
 15339  			var jj int32
 15340  			for jj = 7; (jj < len) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zScript + uintptr((ii + jj))))))) != 0); jj++ {
 15341  			}
 15342  			logMessage(tls, ts+1206 /* "%.*s" */, libc.VaList(bp+264, (len-jj), ((zScript+uintptr(ii))+uintptr(jj))))
 15343  		} else
 15344  
 15345  		//  --if EXPR
 15346  		//
 15347  		// Skip forward to the next matching --endif or --else if EXPR is false.
 15348  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1415 /* "if" */) == 0 {
 15349  			var jj int32
 15350  			var rc int32
 15351  			var pStmt uintptr
 15352  			for jj = 4; (jj < len) && (libc.Xisspace(tls, int32(uint8(*(*int8)(unsafe.Pointer(zScript + uintptr((ii + jj))))))) != 0); jj++ {
 15353  			}
 15354  			pStmt = prepareSql(tls, ts+1418 /* "SELECT %.*s" */, libc.VaList(bp+288, (len-jj), ((zScript+uintptr(ii))+uintptr(jj))))
 15355  			rc = sqlite3.Xsqlite3_step(tls, pStmt)
 15356  			if (rc != 100) || (sqlite3.Xsqlite3_column_int(tls, pStmt, 0) == 0) {
 15357  				ii = ii + (findEndif(tls, ((zScript + uintptr(ii)) + uintptr(len)), 1, bp+532 /* &lineno */))
 15358  			}
 15359  			sqlite3.Xsqlite3_finalize(tls, pStmt)
 15360  		} else
 15361  
 15362  		//  --else
 15363  		//
 15364  		// This command can only be encountered if currently inside an --if that
 15365  		// is true.  Skip forward to the next matching --endif.
 15366  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1430 /* "else" */) == 0 {
 15367  			ii = ii + (findEndif(tls, ((zScript + uintptr(ii)) + uintptr(len)), 0, bp+532 /* &lineno */))
 15368  		} else
 15369  
 15370  		//  --endif
 15371  		//
 15372  		// This command can only be encountered if currently inside an --if that
 15373  		// is true or an --else of a false if.  This is a no-op.
 15374  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1435 /* "endif" */) == 0 {
 15375  			// no-op
 15376  		} else
 15377  
 15378  		//  --start CLIENT
 15379  		//
 15380  		// Start up the given client.
 15381  		if (libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1441 /* "start" */) == 0) && (iClient == 0) {
 15382  			var iNewClient int32 = libc.Xatoi(tls, (bp + 566 /* &azArg[0] */ + uintptr(0)*100))
 15383  			if iNewClient > 0 {
 15384  				startClient(tls, iNewClient)
 15385  			}
 15386  		} else
 15387  
 15388  		//  --wait CLIENT TIMEOUT
 15389  		//
 15390  		// Wait until all tasks complete for the given client.  If CLIENT is
 15391  		// "all" then wait for all clients to complete.  Wait no longer than
 15392  		// TIMEOUT milliseconds (default 10,000)
 15393  		if (libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1447 /* "wait" */) == 0) && (iClient == 0) {
 15394  			var iTimeout int32
 15395  			if nArg >= 2 {
 15396  				iTimeout = libc.Xatoi(tls, (bp + 566 /* &azArg[0] */ + uintptr(1)*100))
 15397  			} else {
 15398  				iTimeout = 10000
 15399  			}
 15400  			sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([1000]int8{})), bp+766 /* &zError[0] */, ts+1452, /* "line %d of %s\n" */
 15401  				libc.VaList(bp+312, prevLine, zFilename))
 15402  			waitForClient(tls, libc.Xatoi(tls, (bp+566 /* &azArg[0] */ +uintptr(0)*100)), iTimeout, bp+766 /* &zError[0] */)
 15403  		} else
 15404  
 15405  		//  --task CLIENT
 15406  		//     <task-content-here>
 15407  		//  --end
 15408  		//
 15409  		// Assign work to a client.  Start the client if it is not running
 15410  		// already.
 15411  		if (libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1467 /* "task" */) == 0) && (iClient == 0) {
 15412  			var iTarget int32 = libc.Xatoi(tls, (bp + 566 /* &azArg[0] */ + uintptr(0)*100))
 15413  			var iEnd int32
 15414  			var zTask uintptr
 15415  			var zTName uintptr
 15416  			iEnd = findEnd(tls, ((zScript + uintptr(ii)) + uintptr(len)), bp+532 /* &lineno */)
 15417  			if iTarget < 0 {
 15418  				errorMessage(tls, ts+1472, /* "line %d of %s: b..." */
 15419  					libc.VaList(bp+336, prevLine, zFilename, iTarget))
 15420  			} else {
 15421  				zTask = sqlite3.Xsqlite3_mprintf(tls, ts+1206 /* "%.*s" */, libc.VaList(bp+368, iEnd, ((zScript+uintptr(ii))+uintptr(len))))
 15422  				if nArg > 1 {
 15423  					zTName = sqlite3.Xsqlite3_mprintf(tls, ts+438 /* "%s" */, libc.VaList(bp+392, (bp+566 /* &azArg[0] */ +uintptr(1)*100)))
 15424  				} else {
 15425  					zTName = sqlite3.Xsqlite3_mprintf(tls, ts+1509 /* "%s:%d" */, libc.VaList(bp+408, filenameTail(tls, zFilename), prevLine))
 15426  				}
 15427  				startClient(tls, iTarget)
 15428  				runSql(tls,
 15429  					ts+1515 /* "INSERT INTO task..." */, libc.VaList(bp+432, iTarget, zTask, zTName))
 15430  				sqlite3.Xsqlite3_free(tls, zTask)
 15431  				sqlite3.Xsqlite3_free(tls, zTName)
 15432  			}
 15433  			iEnd = iEnd + (tokenLength(tls, (((zScript + uintptr(ii)) + uintptr(len)) + uintptr(iEnd)), bp+532 /* &lineno */))
 15434  			len = len + (iEnd)
 15435  			iBegin = (ii + len)
 15436  		} else
 15437  
 15438  		//  --breakpoint
 15439  		//
 15440  		// This command calls "test_breakpoint()" which is a routine provided
 15441  		// as a convenient place to set a debugger breakpoint.
 15442  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1571 /* "breakpoint" */) == 0 {
 15443  			test_breakpoint(tls)
 15444  		} else
 15445  
 15446  		//  --show-sql-errors BOOLEAN
 15447  		//
 15448  		// Turn display of SQL errors on and off.
 15449  		if libc.Xstrcmp(tls, bp+536 /* &zCmd[0] */, ts+1582 /* "show-sql-errors" */) == 0 {
 15450  			g.bIgnoreSqlErrors = func() int32 {
 15451  				if nArg >= 1 {
 15452  					return libc.BoolInt32(!(booleanValue(tls, (bp+566 /* &azArg[0] */ +uintptr(0)*100)) != 0))
 15453  				}
 15454  				return 1
 15455  			}()
 15456  		} else {
 15457  			errorMessage(tls, ts+1598, /* "line %d of %s: u..." */
 15458  				libc.VaList(bp+464, prevLine, zFilename, bp+536 /* &zCmd[0] */))
 15459  		}
 15460  		ii = ii + (len)
 15461  	}
 15462  	if iBegin < ii {
 15463  		var zSql uintptr = sqlite3.Xsqlite3_mprintf(tls, ts+1206 /* "%.*s" */, libc.VaList(bp+496, (ii-iBegin), (zScript+uintptr(iBegin))))
 15464  		runSql(tls, zSql, 0)
 15465  		sqlite3.Xsqlite3_free(tls, zSql)
 15466  	}
 15467  	stringFree(tls, bp+520 /* &sResult */)
 15468  }
 15469  
 15470  // Look for a command-line option.  If present, return a pointer.
 15471  // Return NULL if missing.
 15472  //
 15473  // hasArg==0 means the option is a flag.  It is either present or not.
 15474  // hasArg==1 means the option has an argument.  Return a pointer to the
 15475  // argument.
 15476  func findOption(tls *libc.TLS, azArg uintptr, pnArg uintptr, zOption uintptr, hasArg int32) uintptr { /* mptest.c:1201:13: */
 15477  	bp := tls.Alloc(16)
 15478  	defer tls.Free(16)
 15479  
 15480  	var i int32
 15481  	var j int32
 15482  	var zReturn uintptr = uintptr(0)
 15483  	var nArg int32 = *(*int32)(unsafe.Pointer(pnArg))
 15484  
 15485  	for i = 0; i < nArg; i++ {
 15486  		var z uintptr
 15487  		if (i + hasArg) >= nArg {
 15488  			break
 15489  		}
 15490  		z = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4))
 15491  		if int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) != '-' {
 15492  			continue
 15493  		}
 15494  		z++
 15495  		if int32(*(*int8)(unsafe.Pointer(z + uintptr(0)))) == '-' {
 15496  			if int32(*(*int8)(unsafe.Pointer(z + uintptr(1)))) == 0 {
 15497  				break
 15498  			}
 15499  			z++
 15500  		}
 15501  		if libc.Xstrcmp(tls, z, zOption) == 0 {
 15502  			if (hasArg != 0) && (i == (nArg - 1)) {
 15503  				fatalError(tls, ts+1634 /* "command-line opt..." */, libc.VaList(bp, z))
 15504  			}
 15505  			if hasArg != 0 {
 15506  				zReturn = *(*uintptr)(unsafe.Pointer(azArg + uintptr((i+1))*4))
 15507  			} else {
 15508  				zReturn = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4))
 15509  			}
 15510  			j = ((i + 1) + (libc.Bool32(hasArg != 0)))
 15511  			for j < nArg {
 15512  				*(*uintptr)(unsafe.Pointer(azArg + uintptr(libc.PostIncInt32(&i, 1))*4)) = *(*uintptr)(unsafe.Pointer(azArg + uintptr(libc.PostIncInt32(&j, 1))*4))
 15513  			}
 15514  			*(*int32)(unsafe.Pointer(pnArg)) = i
 15515  			return zReturn
 15516  		}
 15517  	}
 15518  	return zReturn
 15519  }
 15520  
 15521  // Print a usage message for the program and exit
 15522  func usage(tls *libc.TLS, argv0 uintptr) { /* mptest.c:1241:13: */
 15523  	bp := tls.Alloc(16)
 15524  	defer tls.Free(16)
 15525  
 15526  	var i int32
 15527  	var zTail uintptr = argv0
 15528  	for i = 0; *(*int8)(unsafe.Pointer(argv0 + uintptr(i))) != 0; i++ {
 15529  		if ((int32(*(*int8)(unsafe.Pointer(argv0 + uintptr(i))))) == '/') || ((int32(*(*int8)(unsafe.Pointer(argv0 + uintptr(i))))) == '\\') {
 15530  			zTail = ((argv0 + uintptr(i)) + uintptr(1))
 15531  		}
 15532  	}
 15533  	libc.Xfprintf(tls, libc.X__acrt_iob_func(tls, uint32(2)), ts+1682 /* "Usage: %s DATABA..." */, libc.VaList(bp, zTail))
 15534  	libc.Xfprintf(tls, libc.X__acrt_iob_func(tls, uint32(2)),
 15535  
 15536  		ts+1721 /* "Options:\n   --er..." */, 0)
 15537  	libc.Xexit(tls, 1)
 15538  }
 15539  
 15540  // Report on unrecognized arguments
 15541  func unrecognizedArguments(tls *libc.TLS, argv0 uintptr, nArg int32, azArg uintptr) { /* mptest.c:1265:13: */
 15542  	bp := tls.Alloc(32)
 15543  	defer tls.Free(32)
 15544  
 15545  	var i int32
 15546  	libc.Xfprintf(tls, libc.X__acrt_iob_func(tls, uint32(2)), ts+2293 /* "%s: unrecognized..." */, libc.VaList(bp, argv0))
 15547  	for i = 0; i < nArg; i++ {
 15548  		libc.Xfprintf(tls, libc.X__acrt_iob_func(tls, uint32(2)), ts+2321 /* " %s" */, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4))))
 15549  	}
 15550  	libc.Xfprintf(tls, libc.X__acrt_iob_func(tls, uint32(2)), ts+2325 /* "\n" */, 0)
 15551  	libc.Xexit(tls, 1)
 15552  }
 15553  
 15554  func main1(tls *libc.TLS, argc int32, argv uintptr) int32 { /* mptest.c:1279:18: */
 15555  	bp := tls.Alloc(416)
 15556  	defer tls.Free(416)
 15557  
 15558  	var zClient uintptr
 15559  	var iClient int32
 15560  	// var n int32 at bp+400, 4
 15561  
 15562  	var i int32
 15563  	var openFlags int32 = 0x00000002
 15564  	var rc int32
 15565  	// var zScript uintptr at bp+404, 4
 15566  
 15567  	// var taskId int32 at bp+408, 4
 15568  
 15569  	var zTrace uintptr
 15570  	var zCOption uintptr
 15571  	var zJMode uintptr
 15572  	var zNRep uintptr
 15573  	var nRep int32 = 1
 15574  	var iRep int32
 15575  	var iTmout int32 = 0 // Default: no timeout
 15576  	var zTmout uintptr
 15577  
 15578  	g.argv0 = *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*4))
 15579  	g.iTrace = 1
 15580  	if argc < 2 {
 15581  		usage(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*4)))
 15582  	}
 15583  	g.zDbFile = *(*uintptr)(unsafe.Pointer(argv + uintptr(1)*4))
 15584  	if strglob(tls, ts+2327 /* "*.test" */, g.zDbFile) != 0 {
 15585  		usage(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*4)))
 15586  	}
 15587  	if libc.Xstrcmp(tls, sqlite3.Xsqlite3_sourceid(tls), ts+2334 /* "2020-08-14 13:23..." */) != 0 {
 15588  		libc.Xfprintf(tls, libc.X__acrt_iob_func(tls, uint32(2)),
 15589  
 15590  			ts+2419, /* "SQLite library a..." */
 15591  			libc.VaList(bp, sqlite3.Xsqlite3_sourceid(tls), ts+2334 /* "2020-08-14 13:23..." */))
 15592  		libc.Xexit(tls, 1)
 15593  	}
 15594  	*(*int32)(unsafe.Pointer(bp + 400 /* n */)) = (argc - 2)
 15595  	sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([32]int8{})), uintptr(unsafe.Pointer(&g))+32 /* &.zName */, ts+2479 /* "%05d.mptest" */, libc.VaList(bp+24, int32(libc.XGetCurrentProcessId(tls))))
 15596  	zJMode = findOption(tls, (argv + uintptr(2)*4), bp+400 /* &n */, ts+2491 /* "journalmode" */, 1)
 15597  	zNRep = findOption(tls, (argv + uintptr(2)*4), bp+400 /* &n */, ts+2503 /* "repeat" */, 1)
 15598  	if zNRep != 0 {
 15599  		nRep = libc.Xatoi(tls, zNRep)
 15600  	}
 15601  	if nRep < 1 {
 15602  		nRep = 1
 15603  	}
 15604  	g.zVfs = findOption(tls, (argv + uintptr(2)*4), bp+400 /* &n */, ts+2510 /* "vfs" */, 1)
 15605  	zClient = findOption(tls, (argv + uintptr(2)*4), bp+400 /* &n */, ts+2514 /* "client" */, 1)
 15606  	g.zErrLog = findOption(tls, (argv + uintptr(2)*4), bp+400 /* &n */, ts+2521 /* "errlog" */, 1)
 15607  	g.zLog = findOption(tls, (argv + uintptr(2)*4), bp+400 /* &n */, ts+2528 /* "log" */, 1)
 15608  	zTrace = findOption(tls, (argv + uintptr(2)*4), bp+400 /* &n */, ts+2532 /* "trace" */, 1)
 15609  	if zTrace != 0 {
 15610  		g.iTrace = libc.Xatoi(tls, zTrace)
 15611  	}
 15612  	if findOption(tls, (argv+uintptr(2)*4), bp+400 /* &n */, ts+2538 /* "quiet" */, 0) != uintptr(0) {
 15613  		g.iTrace = 0
 15614  	}
 15615  	zTmout = findOption(tls, (argv + uintptr(2)*4), bp+400 /* &n */, ts+2544 /* "timeout" */, 1)
 15616  	if zTmout != 0 {
 15617  		iTmout = libc.Xatoi(tls, zTmout)
 15618  	}
 15619  	g.bSqlTrace = (libc.Bool32(findOption(tls, (argv+uintptr(2)*4), bp+400 /* &n */, ts+2552 /* "sqltrace" */, 0) != uintptr(0)))
 15620  	g.bSync = (libc.Bool32(findOption(tls, (argv+uintptr(2)*4), bp+400 /* &n */, ts+2561 /* "sync" */, 0) != uintptr(0)))
 15621  	if g.zErrLog != 0 {
 15622  		g.pErrLog = libc.Xfopen(tls, g.zErrLog, ts+2566 /* "a" */)
 15623  	} else {
 15624  		g.pErrLog = libc.X__acrt_iob_func(tls, uint32(2))
 15625  	}
 15626  	if g.zLog != 0 {
 15627  		g.pLog = libc.Xfopen(tls, g.zLog, ts+2566 /* "a" */)
 15628  	} else {
 15629  		g.pLog = libc.X__acrt_iob_func(tls, uint32(1))
 15630  	}
 15631  
 15632  	sqlite3.Xsqlite3_config(tls, 16, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(&struct {
 15633  		f func(*libc.TLS, uintptr, int32, uintptr)
 15634  	}{sqlErrorCallback})), 0))
 15635  	if zClient != 0 {
 15636  		iClient = libc.Xatoi(tls, zClient)
 15637  		if iClient < 1 {
 15638  			fatalError(tls, ts+2568 /* "illegal client n..." */, libc.VaList(bp+64, iClient))
 15639  		}
 15640  		sqlite3.Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([32]int8{})), uintptr(unsafe.Pointer(&g))+32 /* &.zName */, ts+2595, /* "%05d.client%02d" */
 15641  			libc.VaList(bp+80, int32(libc.XGetCurrentProcessId(tls)), iClient))
 15642  	} else {
 15643  		var nTry int32 = 0
 15644  		if g.iTrace > 0 {
 15645  			libc.Xprintf(tls, ts+2611 /* "BEGIN: %s" */, libc.VaList(bp+104, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*4))))
 15646  			for i = 1; i < argc; i++ {
 15647  				libc.Xprintf(tls, ts+2321 /* " %s" */, libc.VaList(bp+120, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4))))
 15648  			}
 15649  			libc.Xprintf(tls, ts+2325 /* "\n" */, 0)
 15650  			libc.Xprintf(tls, ts+2621 /* "With SQLite 3.33..." */, 0)
 15651  			for i = 0; (libc.AssignUintptr(&zCOption, sqlite3.Xsqlite3_compileoption_get(tls, i))) != uintptr(0); i++ {
 15652  				libc.Xprintf(tls, ts+2726 /* "-DSQLITE_%s\n" */, libc.VaList(bp+136, zCOption))
 15653  			}
 15654  			libc.Xfflush(tls, libc.X__acrt_iob_func(tls, uint32(1)))
 15655  		}
 15656  		iClient = 0
 15657  		for ok := true; ok; ok = (((rc != 0) && ((libc.PreIncInt32(&nTry, 1)) < 60)) && (sqlite3.Xsqlite3_sleep(tls, 1000) > 0)) {
 15658  			if (nTry % 5) == 4 {
 15659  				libc.Xprintf(tls, ts+2739, /* "... %strying to ..." */
 15660  					libc.VaList(bp+152, func() uintptr {
 15661  						if nTry > 5 {
 15662  							return ts + 2768 /* "still " */
 15663  						}
 15664  						return ts + 1103 /* "" */
 15665  					}(), g.zDbFile))
 15666  			}
 15667  			rc = libc.Xunlink(tls, g.zDbFile)
 15668  			if (rc != 0) && ((*(*int32)(unsafe.Pointer(libc.X_errno(tls)))) == 2) {
 15669  				rc = 0
 15670  			}
 15671  		}
 15672  		if rc != 0 {
 15673  			fatalError(tls, ts+2775, /* "unable to unlink..." */
 15674  				libc.VaList(bp+176, g.zDbFile, nTry))
 15675  		}
 15676  		openFlags = openFlags | (0x00000004)
 15677  	}
 15678  	rc = sqlite3.Xsqlite3_open_v2(tls, g.zDbFile, (uintptr(unsafe.Pointer(&g)) + 12 /* &.db */), openFlags, g.zVfs)
 15679  	if rc != 0 {
 15680  		fatalError(tls, ts+2816 /* "cannot open [%s]" */, libc.VaList(bp+200, g.zDbFile))
 15681  	}
 15682  	if iTmout > 0 {
 15683  		sqlite3.Xsqlite3_busy_timeout(tls, g.db, iTmout)
 15684  	}
 15685  
 15686  	if zJMode != 0 {
 15687  		if (sqlite3.Xsqlite3_stricmp(tls, zJMode, ts+2833 /* "persist" */) == 0) ||
 15688  			(sqlite3.Xsqlite3_stricmp(tls, zJMode, ts+2841 /* "truncate" */) == 0) {
 15689  			libc.Xprintf(tls, ts+2850 /* "Changing journal..." */, libc.VaList(bp+216, zJMode))
 15690  			zJMode = ts + 2890 /* "DELETE" */
 15691  		}
 15692  		runSql(tls, ts+2897 /* "PRAGMA journal_m..." */, libc.VaList(bp+232, zJMode))
 15693  	}
 15694  	if !(g.bSync != 0) {
 15695  		trySql(tls, ts+2921 /* "PRAGMA synchrono..." */, 0)
 15696  	}
 15697  	sqlite3.Xsqlite3_enable_load_extension(tls, g.db, 1)
 15698  	sqlite3.Xsqlite3_busy_handler(tls, g.db, *(*uintptr)(unsafe.Pointer(&struct {
 15699  		f func(*libc.TLS, uintptr, int32) int32
 15700  	}{busyHandler})), uintptr(0))
 15701  	sqlite3.Xsqlite3_create_function(tls, g.db, ts+2944 /* "vfsname" */, 0, 1, uintptr(0),
 15702  		*(*uintptr)(unsafe.Pointer(&struct {
 15703  			f func(*libc.TLS, uintptr, int32, uintptr)
 15704  		}{vfsNameFunc})), uintptr(0), uintptr(0))
 15705  	sqlite3.Xsqlite3_create_function(tls, g.db, ts+2952 /* "eval" */, 1, 1, uintptr(0),
 15706  		*(*uintptr)(unsafe.Pointer(&struct {
 15707  			f func(*libc.TLS, uintptr, int32, uintptr)
 15708  		}{evalFunc})), uintptr(0), uintptr(0))
 15709  	g.iTimeout = 10000
 15710  	if g.bSqlTrace != 0 {
 15711  		sqlite3.Xsqlite3_trace(tls, g.db, *(*uintptr)(unsafe.Pointer(&struct {
 15712  			f func(*libc.TLS, uintptr, uintptr)
 15713  		}{sqlTraceCallback})), uintptr(0))
 15714  	}
 15715  	if iClient > 0 {
 15716  		if *(*int32)(unsafe.Pointer(bp + 400 /* n */)) > 0 {
 15717  			unrecognizedArguments(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*4)), *(*int32)(unsafe.Pointer(bp + 400 /* n */)), (argv + uintptr(2)*4))
 15718  		}
 15719  		if g.iTrace != 0 {
 15720  			logMessage(tls, ts+2957 /* "start-client" */, 0)
 15721  		}
 15722  		for 1 != 0 {
 15723  			*(*uintptr)(unsafe.Pointer(bp + 412 /* zTaskName */)) = uintptr(0)
 15724  			rc = startScript(tls, iClient, bp+404 /* &zScript */, bp+408 /* &taskId */, bp+412 /* &zTaskName */)
 15725  			if rc == 101 {
 15726  				break
 15727  			}
 15728  			if g.iTrace != 0 {
 15729  				logMessage(tls, ts+2970 /* "begin %s (%d)" */, libc.VaList(bp+248, *(*uintptr)(unsafe.Pointer(bp + 412 /* zTaskName */)), *(*int32)(unsafe.Pointer(bp + 408 /* taskId */))))
 15730  			}
 15731  			runScript(tls, iClient, *(*int32)(unsafe.Pointer(bp + 408 /* taskId */)), *(*uintptr)(unsafe.Pointer(bp + 404 /* zScript */)), *(*uintptr)(unsafe.Pointer(bp + 412 /* zTaskName */)))
 15732  			if g.iTrace != 0 {
 15733  				logMessage(tls, ts+2984 /* "end %s (%d)" */, libc.VaList(bp+272, *(*uintptr)(unsafe.Pointer(bp + 412 /* zTaskName */)), *(*int32)(unsafe.Pointer(bp + 408 /* taskId */))))
 15734  			}
 15735  			finishScript(tls, iClient, *(*int32)(unsafe.Pointer(bp + 408 /* taskId */)), 0)
 15736  			sqlite3.Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 412 /* zTaskName */)))
 15737  			sqlite3.Xsqlite3_sleep(tls, 10)
 15738  		}
 15739  		if g.iTrace != 0 {
 15740  			logMessage(tls, ts+2996 /* "end-client" */, 0)
 15741  		}
 15742  	} else {
 15743  		var pStmt uintptr
 15744  		var iTimeout int32
 15745  		if *(*int32)(unsafe.Pointer(bp + 400 /* n */)) == 0 {
 15746  			fatalError(tls, ts+3007 /* "missing script f..." */, 0)
 15747  		}
 15748  		if *(*int32)(unsafe.Pointer(bp + 400 /* n */)) > 1 {
 15749  			unrecognizedArguments(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*4)), *(*int32)(unsafe.Pointer(bp + 400 /* n */)), (argv + uintptr(2)*4))
 15750  		}
 15751  		runSql(tls,
 15752  
 15753  			ts+3031 /* "DROP TABLE IF EX..." */, 0)
 15754  		*(*uintptr)(unsafe.Pointer(bp + 404 /* zScript */)) = readFile(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(2)*4)))
 15755  		for iRep = 1; iRep <= nRep; iRep++ {
 15756  			if g.iTrace != 0 {
 15757  				logMessage(tls, ts+3467 /* "begin script [%s..." */, libc.VaList(bp+296, *(*uintptr)(unsafe.Pointer(argv + uintptr(2)*4)), iRep))
 15758  			}
 15759  			runScript(tls, 0, 0, *(*uintptr)(unsafe.Pointer(bp + 404 /* zScript */)), *(*uintptr)(unsafe.Pointer(argv + uintptr(2)*4)))
 15760  			if g.iTrace != 0 {
 15761  				logMessage(tls, ts+3495 /* "end script [%s] ..." */, libc.VaList(bp+320, *(*uintptr)(unsafe.Pointer(argv + uintptr(2)*4)), iRep))
 15762  			}
 15763  		}
 15764  		sqlite3.Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 404 /* zScript */)))
 15765  		waitForClient(tls, 0, 2000, ts+3521 /* "during shutdown...." */)
 15766  		trySql(tls, ts+3541 /* "UPDATE client SE..." */, 0)
 15767  		sqlite3.Xsqlite3_sleep(tls, 10)
 15768  		g.iTimeout = 0
 15769  		iTimeout = 1000
 15770  		for (((libc.AssignInt32(&rc, trySql(tls, ts+3570 /* "SELECT 1 FROM cl..." */, 0))) == 5) ||
 15771  			(rc == 100)) && (iTimeout > 0) {
 15772  			sqlite3.Xsqlite3_sleep(tls, 10)
 15773  			iTimeout = iTimeout - (10)
 15774  		}
 15775  		sqlite3.Xsqlite3_sleep(tls, 100)
 15776  		pStmt = prepareSql(tls, ts+3591 /* "SELECT nError, n..." */, 0)
 15777  		iTimeout = 1000
 15778  		for ((libc.AssignInt32(&rc, sqlite3.Xsqlite3_step(tls, pStmt))) == 5) && (iTimeout > 0) {
 15779  			sqlite3.Xsqlite3_sleep(tls, 10)
 15780  			iTimeout = iTimeout - (10)
 15781  		}
 15782  		if rc == 100 {
 15783  			*(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&g)) + 80 /* &.nError */)) += (sqlite3.Xsqlite3_column_int(tls, pStmt, 0))
 15784  			*(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&g)) + 84 /* &.nTest */)) += (sqlite3.Xsqlite3_column_int(tls, pStmt, 1))
 15785  		}
 15786  		sqlite3.Xsqlite3_finalize(tls, pStmt)
 15787  	}
 15788  	sqlite3.Xsqlite3_close(tls, g.db)
 15789  	maybeClose(tls, g.pLog)
 15790  	maybeClose(tls, g.pErrLog)
 15791  	if iClient == 0 {
 15792  		libc.Xprintf(tls, ts+3626 /* "Summary: %d erro..." */, libc.VaList(bp+344, g.nError, g.nTest))
 15793  		libc.Xprintf(tls, ts+3662 /* "END: %s" */, libc.VaList(bp+368, *(*uintptr)(unsafe.Pointer(argv + uintptr(0)*4))))
 15794  		for i = 1; i < argc; i++ {
 15795  			libc.Xprintf(tls, ts+2321 /* " %s" */, libc.VaList(bp+384, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4))))
 15796  		}
 15797  		libc.Xprintf(tls, ts+2325 /* "\n" */, 0)
 15798  	}
 15799  	return (libc.Bool32(g.nError > 0))
 15800  }
 15801  
 15802  var ts1 = "%s%.*s\n\x00%s:ERROR: \x00%s:FATAL: \x00UPDATE client SET wantHalt=1;\x00%s: \x00main\x00timeout after %dms\x00[%.*s]\x00(info) %s\x00(errcode=%d) %s\x00%s\n%s\n\x00out of memory\x00 \x00nil\x00'\x00error(%d)\x00BEGIN IMMEDIATE\x00in startScript: %s\x00UPDATE counters SET nError=nError+%d, nTest=nTest+%d\x00SELECT 1 FROM client WHERE id=%d AND wantHalt\x00DELETE FROM client WHERE id=%d\x00COMMIT TRANSACTION;\x00SELECT script, id, name FROM task WHERE client=%d AND starttime IS NULL ORDER BY id LIMIT 1\x00%s\x00UPDATE task   SET starttime=strftime('%%Y-%%m-%%d %%H:%%M:%%f','now') WHERE id=%d;\x00Waited over 30 seconds with no work.  Giving up.\x00DELETE FROM client WHERE id=%d; COMMIT;\x00COMMIT\x00UPDATE task   SET endtime=strftime('%%Y-%%m-%%d %%H:%%M:%%f','now') WHERE id=%d;\x00INSERT OR IGNORE INTO client VALUES(%d,0)\x00%s \"%s\" --client %d --trace %d\x00%z --sqltrace\x00%z --sync\x00%z --vfs \"%s\"\x00system('%q')\x00CreateProcessA() fails with error code %lu\x00rb\x00cannot open \"%s\" for reading\x00--end\x00--endif\x00--else\x00--if\x00SELECT 1 FROM task WHERE client=%d   AND client IN (SELECT id FROM client)  AND endtime IS NULL\x00SELECT 1 FROM task WHERE client IN (SELECT id FROM client)   AND endtime IS NULL\x00\x00%stimeout waiting for client %d\x00%stimeout waiting for all clients\x00on\x00yes\x00off\x00no\x00unknown boolean: [%s]\x00%.*s\x00sleep\x00exit\x00testcase\x00finish\x00reset\x00match\x00line %d of %s:\nExpected [%.*s]\n     Got [%s]\x00glob\x00notglob\x00line %d of %s:\nExpected [%s]\n     Got [%s]\x00output\x00source\x00%.*s/%s\x00begin script [%s]\n\x00end script [%s]\n\x00print\x00if\x00SELECT %.*s\x00else\x00endif\x00start\x00wait\x00line %d of %s\n\x00task\x00line %d of %s: bad client number: %d\x00%s:%d\x00INSERT INTO task(client,script,name) VALUES(%d,'%q',%Q)\x00breakpoint\x00show-sql-errors\x00line %d of %s: unknown command --%s\x00command-line option \"--%s\" requires an argument\x00Usage: %s DATABASE ?OPTIONS? ?SCRIPT?\n\x00Options:\n   --errlog FILENAME           Write errors to FILENAME\n   --journalmode MODE          Use MODE as the journal_mode\n   --log FILENAME              Log messages to FILENAME\n   --quiet                     Suppress unnecessary output\n   --vfs NAME                  Use NAME as the VFS\n   --repeat N                  Repeat the test N times\n   --sqltrace                  Enable SQL tracing\n   --sync                      Enable synchronous disk writes\n   --timeout MILLISEC          Busy timeout is MILLISEC\n   --trace BOOLEAN             Enable or disable tracing\n\x00%s: unrecognized arguments:\x00 %s\x00\n\x00*.test\x002020-08-14 13:23:32 fca8dc8b578f215a969cd899336378966156154710873e68b3d9ac5881b0ff3f\x00SQLite library and header mismatch\nLibrary: %s\nHeader:  %s\n\x00%05d.mptest\x00journalmode\x00repeat\x00vfs\x00client\x00errlog\x00log\x00trace\x00quiet\x00timeout\x00sqltrace\x00sync\x00a\x00illegal client number: %d\n\x00%05d.client%02d\x00BEGIN: %s\x00With SQLite 3.33.0 2020-08-14 13:23:32 fca8dc8b578f215a969cd899336378966156154710873e68b3d9ac5881b0ff3f\n\x00-DSQLITE_%s\n\x00... %strying to unlink '%s'\n\x00still \x00unable to unlink '%s' after %d attempts\n\x00cannot open [%s]\x00persist\x00truncate\x00Changing journal mode to DELETE from %s\x00DELETE\x00PRAGMA journal_mode=%Q;\x00PRAGMA synchronous=OFF\x00vfsname\x00eval\x00start-client\x00begin %s (%d)\x00end %s (%d)\x00end-client\x00missing script filename\x00DROP TABLE IF EXISTS task;\nDROP TABLE IF EXISTS counters;\nDROP TABLE IF EXISTS client;\nCREATE TABLE task(\n  id INTEGER PRIMARY KEY,\n  name TEXT,\n  client INTEGER,\n  starttime DATE,\n  endtime DATE,\n  script TEXT\n);CREATE INDEX task_i1 ON task(client, starttime);\nCREATE INDEX task_i2 ON task(client, endtime);\nCREATE TABLE counters(nError,nTest);\nINSERT INTO counters VALUES(0,0);\nCREATE TABLE client(id INTEGER PRIMARY KEY, wantHalt);\n\x00begin script [%s] cycle %d\n\x00end script [%s] cycle %d\n\x00during shutdown...\n\x00UPDATE client SET wantHalt=1\x00SELECT 1 FROM client\x00SELECT nError, nTest FROM counters\x00Summary: %d errors out of %d tests\n\x00END: %s\x00"
 15803  var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data