// Code generated by modernc.org/undup from the per-target sqlite_*.go files; DO NOT EDIT.

//go:build (windows && (amd64 || arm64)) || (windows && 386)

package sqlite3

import (
	"unsafe"

	"modernc.org/libc"
)

type ABC = TABC

type ABCFLOAT = TABCFLOAT

const ABE_BOTTOM = 3

const ABE_LEFT = 0

const ABE_RIGHT = 2

const ABE_TOP = 1

const ABM_ACTIVATE = 6

const ABM_GETAUTOHIDEBAR = 7

const ABM_GETAUTOHIDEBAREX = 11

const ABM_GETSTATE = 4

const ABM_GETTASKBARPOS = 5

const ABM_NEW = 0

const ABM_QUERYPOS = 2

const ABM_REMOVE = 1

const ABM_SETAUTOHIDEBAR = 8

const ABM_SETAUTOHIDEBAREX = 12

const ABM_SETPOS = 3

const ABM_SETSTATE = 10

const ABM_WINDOWPOSCHANGED = 9

const ABN_FULLSCREENAPP = 2

const ABN_POSCHANGED = 1

const ABN_STATECHANGE = 0

const ABN_WINDOWARRANGE = 3

const ABORTDOC = 2

type ABORTPROC = TABORTPROC

const ABOVE_NORMAL_PRIORITY_CLASS = 32768

const ABSOLUTE = 1

const ABS_ALWAYSONTOP = 2

const ABS_AUTOHIDE = 1

type ACCEL = TACCEL

type ACCESSTIMEOUT = TACCESSTIMEOUT

type ACCESS_ALLOWED_ACE = TACCESS_ALLOWED_ACE

const ACCESS_ALLOWED_ACE_TYPE = 0

type ACCESS_ALLOWED_CALLBACK_ACE = TACCESS_ALLOWED_CALLBACK_ACE

const ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 9

type ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = TACCESS_ALLOWED_CALLBACK_OBJECT_ACE

const ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 11

const ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 4

type ACCESS_ALLOWED_OBJECT_ACE = TACCESS_ALLOWED_OBJECT_ACE

const ACCESS_ALLOWED_OBJECT_ACE_TYPE = 5

type ACCESS_DENIED_ACE = TACCESS_DENIED_ACE

const ACCESS_DENIED_ACE_TYPE = 1

type ACCESS_DENIED_CALLBACK_ACE = TACCESS_DENIED_CALLBACK_ACE

const ACCESS_DENIED_CALLBACK_ACE_TYPE = 10

type ACCESS_DENIED_CALLBACK_OBJECT_ACE = TACCESS_DENIED_CALLBACK_OBJECT_ACE

const ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 12

type ACCESS_DENIED_OBJECT_ACE = TACCESS_DENIED_OBJECT_ACE

const ACCESS_DENIED_OBJECT_ACE_TYPE = 6

const ACCESS_DS_OBJECT_TYPE_NAME_A = "Directory Service Object"

const ACCESS_DS_OBJECT_TYPE_NAME_W = "Directory Service Object"

const ACCESS_DS_SOURCE_A = "DS"

const ACCESS_DS_SOURCE_W = "DS"

const ACCESS_FILTERKEYS = 2

type ACCESS_MASK = TACCESS_MASK

const ACCESS_MAX_LEVEL = 4

const ACCESS_MAX_MS_ACE_TYPE = 8

const ACCESS_MAX_MS_OBJECT_ACE_TYPE = 8

const ACCESS_MAX_MS_V2_ACE_TYPE = 3

const ACCESS_MAX_MS_V3_ACE_TYPE = 4

const ACCESS_MAX_MS_V4_ACE_TYPE = 8

const ACCESS_MAX_MS_V5_ACE_TYPE = 19

const ACCESS_MIN_MS_ACE_TYPE = 0

const ACCESS_MIN_MS_OBJECT_ACE_TYPE = 5

const ACCESS_MOUSEKEYS = 3

const ACCESS_OBJECT_GUID = 0

const ACCESS_PROPERTY_GUID = 2

const ACCESS_PROPERTY_SET_GUID = 1

type ACCESS_REASON = TACCESS_REASON

type ACCESS_REASONS = TACCESS_REASONS

const ACCESS_REASON_DATA_MASK = 65535

const ACCESS_REASON_EXDATA_MASK = 2130706432

const ACCESS_REASON_STAGING_MASK = 2147483648

type ACCESS_REASON_TYPE = TACCESS_REASON_TYPE

const ACCESS_REASON_TYPE_MASK = 16711680

const ACCESS_STICKYKEYS = 1

const ACCESS_SYSTEM_SECURITY = 16777216

type ACE_HEADER = TACE_HEADER

const ACE_INHERITED_OBJECT_TYPE_PRESENT = 2

const ACE_OBJECT_TYPE_PRESENT = 1

type ACL = TACL

type ACL_INFORMATION_CLASS = TACL_INFORMATION_CLASS

const ACL_REVISION = 2

const ACL_REVISION1 = 1

const ACL_REVISION2 = 2

const ACL_REVISION3 = 3

const ACL_REVISION4 = 4

const ACL_REVISION_DS = 4

type ACL_REVISION_INFORMATION = TACL_REVISION_INFORMATION

type ACL_SIZE_INFORMATION = TACL_SIZE_INFORMATION

const ACPI_PPM_HARDWARE_ALL = 254

const ACPI_PPM_SOFTWARE_ALL = 252

const ACPI_PPM_SOFTWARE_ANY = 253

type ACTCTX = TACTCTX

type ACTCTXA = TACTCTXA

type ACTCTXW = TACTCTXW

type ACTCTX_COMPATIBILITY_ELEMENT_TYPE = TACTCTX_COMPATIBILITY_ELEMENT_TYPE

const ACTCTX_FLAG_APPLICATION_NAME_VALID = 32

const ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 4

const ACTCTX_FLAG_HMODULE_VALID = 128

const ACTCTX_FLAG_LANGID_VALID = 2

const ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 1

const ACTCTX_FLAG_RESOURCE_NAME_VALID = 8

const ACTCTX_FLAG_SET_PROCESS_DEFAULT = 16

const ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF = 64

type ACTCTX_REQUESTED_RUN_LEVEL = TACTCTX_REQUESTED_RUN_LEVEL

type ACTCTX_SECTION_KEYED_DATA = TACTCTX_SECTION_KEYED_DATA

type ACTCTX_SECTION_KEYED_DATA_2600 = TACTCTX_SECTION_KEYED_DATA_2600

type ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = TACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA

type ACTION_HEADER = TACTION_HEADER

const ACTIVATIONCONTEXTINFOCLASS = 0

type ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = TACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION

type ACTIVATION_CONTEXT_BASIC_INFORMATION = TACTIVATION_CONTEXT_BASIC_INFORMATION

const ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED = 1

type ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = TACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION

type ACTIVATION_CONTEXT_DETAILED_INFORMATION = TACTIVATION_CONTEXT_DETAILED_INFORMATION

type ACTIVATION_CONTEXT_INFO_CLASS = TACTIVATION_CONTEXT_INFO_CLASS

const ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF = 4

const ACTIVATION_CONTEXT_PATH_TYPE_NONE = 1

const ACTIVATION_CONTEXT_PATH_TYPE_URL = 3

const ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE = 2

type ACTIVATION_CONTEXT_QUERY_INDEX = TACTIVATION_CONTEXT_QUERY_INDEX

type ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = TACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION

const ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS = 10

const ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1

const ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES = 9

const ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO = 11

const ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION = 5

const ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION = 7

const ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION = 4

const ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION = 6

const ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION = 2

const ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE = 8

const ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION = 3

const ACTIVEOBJECT_STRONG = 0

const ACTIVEOBJECT_WEAK = 1

const AC_LINE_BACKUP_POWER = 2

const AC_LINE_OFFLINE = 0

const AC_LINE_ONLINE = 1

const AC_LINE_UNKNOWN = 255

const AC_SRC_ALPHA = 1

const AC_SRC_OVER = 0

type ADAPTER_STATUS = TADAPTER_STATUS

type ADDJOB_INFO_1 = TADDJOB_INFO_1

type ADDJOB_INFO_1A = TADDJOB_INFO_1A

type ADDJOB_INFO_1W = TADDJOB_INFO_1W

type ADMINISTRATOR_POWER_POLICY = TADMINISTRATOR_POWER_POLICY

type ADVF = TADVF

const AD_CLOCKWISE = 2

const AD_COUNTERCLOCKWISE = 1

const AF_BAN = 21

const AF_FIREFOX = 19

const AF_IPX = 6

const AF_MAX = 22

const AF_NETBIOS = 17

const AF_UNKNOWN1 = 20

const AF_VOICEVIEW = 18

const ALERT_SYSTEM_CRITICAL = 5

const ALERT_SYSTEM_ERROR = 3

const ALERT_SYSTEM_INFORMATIONAL = 1

const ALERT_SYSTEM_QUERY = 4

const ALERT_SYSTEM_WARNING = 2

const ALG_CLASS_ALL = 57344

const ALG_CLASS_ANY = 0

const ALG_CLASS_DATA_ENCRYPT = 24576

const ALG_CLASS_HASH = 32768

const ALG_CLASS_KEY_EXCHANGE = 40960

const ALG_CLASS_MSG_ENCRYPT = 16384

const ALG_CLASS_SIGNATURE = 8192

type ALG_ID = TALG_ID

const ALG_SID_3DES = 3

const ALG_SID_3DES_112 = 9

const ALG_SID_AES = 17

const ALG_SID_AES_128 = 14

const ALG_SID_AES_192 = 15

const ALG_SID_AES_256 = 16

const ALG_SID_AGREED_KEY_ANY = 3

const ALG_SID_ANY = 0

const ALG_SID_CAST = 6

const ALG_SID_CYLINK_MEK = 12

const ALG_SID_DES = 1

const ALG_SID_DESX = 4

const ALG_SID_DH_EPHEM = 2

const ALG_SID_DH_SANDF = 1

const ALG_SID_DSS_ANY = 0

const ALG_SID_DSS_DMS = 2

const ALG_SID_DSS_PKCS = 1

const ALG_SID_ECDH = 5

const ALG_SID_ECDH_EPHEM = 6

const ALG_SID_ECDSA = 3

const ALG_SID_ECMQV = 1

const ALG_SID_EXAMPLE = 80

const ALG_SID_HASH_REPLACE_OWF = 11

const ALG_SID_HMAC = 9

const ALG_SID_IDEA = 5

const ALG_SID_KEA = 4

const ALG_SID_MAC = 5

const ALG_SID_MD2 = 1

const ALG_SID_MD4 = 2

const ALG_SID_MD5 = 3

const ALG_SID_PCT1_MASTER = 4

const ALG_SID_RC2 = 2

const ALG_SID_RC4 = 1

const ALG_SID_RC5 = 13

const ALG_SID_RIPEMD = 6

const ALG_SID_RIPEMD160 = 7

const ALG_SID_RSA_ANY = 0

const ALG_SID_RSA_ENTRUST = 3

const ALG_SID_RSA_MSATWORK = 2

const ALG_SID_RSA_PGP = 4

const ALG_SID_RSA_PKCS = 1

const ALG_SID_SAFERSK128 = 8

const ALG_SID_SAFERSK64 = 7

const ALG_SID_SCHANNEL_ENC_KEY = 7

const ALG_SID_SCHANNEL_MAC_KEY = 3

const ALG_SID_SCHANNEL_MASTER_HASH = 2

const ALG_SID_SEAL = 2

const ALG_SID_SHA = 4

const ALG_SID_SHA1 = 4

const ALG_SID_SHA_256 = 12

const ALG_SID_SHA_384 = 13

const ALG_SID_SHA_512 = 14

const ALG_SID_SKIPJACK = 10

const ALG_SID_SSL2_MASTER = 5

const ALG_SID_SSL3SHAMD5 = 8

const ALG_SID_SSL3_MASTER = 1

const ALG_SID_TEK = 11

const ALG_SID_TLS1PRF = 10

const ALG_SID_TLS1_MASTER = 6

const ALG_TYPE_ANY = 0

const ALG_TYPE_BLOCK = 1536

const ALG_TYPE_DH = 2560

const ALG_TYPE_DSS = 512

const ALG_TYPE_ECDH = 3584

const ALG_TYPE_RSA = 1024

const ALG_TYPE_SECURECHANNEL = 3072

const ALG_TYPE_STREAM = 2048

const ALL_PROCESSOR_GROUPS = 65535

const ALL_TRANSPORTS = "M\\0\\0\\0"

const ALTERNATE = 1

const ALTNUMPAD_BIT = 67108864

type ALTTABINFO = TALTTABINFO

type ANIMATIONINFO = TANIMATIONINFO

type ANON_OBJECT_HEADER = TANON_OBJECT_HEADER

type ANON_OBJECT_HEADER_BIGOBJ = TANON_OBJECT_HEADER_BIGOBJ

type ANON_OBJECT_HEADER_V2 = TANON_OBJECT_HEADER_V2

const ANSI_CHARSET = 0

const ANSI_FIXED_FONT = 11

const ANSI_VAR_FONT = 12

const ANTIALIASED_QUALITY = 4

const ANYSIZE_ARRAY = 1

type APARTMENTID = TAPARTMENTID

type APC_CALLBACK_FUNCTION = TAPC_CALLBACK_FUNCTION

const APD_COPY_ALL_FILES = 4

const APD_COPY_FROM_DIRECTORY = 16

const APD_COPY_NEW_FILES = 8

const APD_STRICT_DOWNGRADE = 2

const APD_STRICT_UPGRADE = 1

const API_SET_EXTENSION_NAME_A = "EXT-"

const API_SET_EXTENSION_NAME_U = "EXT-"

const API_SET_HELPER_NAME = 0

const API_SET_LOAD_SCHEMA_ORDINAL = 1

const API_SET_LOOKUP_ORDINAL = 2

const API_SET_PREFIX_NAME_A = "API-"

const API_SET_PREFIX_NAME_U = "API-"

const API_SET_RELEASE_SCHEMA_ORDINAL = 3

const API_SET_SCHEMA_NAME = 0

const API_SET_SCHEMA_SUFFIX = ".sys"

const API_SET_SCHEMA_VERSION = 2

const API_SET_SECTION_NAME = ".apiset"

type APPBARDATA = TAPPBARDATA

const APPCLASS_MASK = 15

const APPCLASS_MONITOR = 1

const APPCLASS_STANDARD = 0

const APPCMD_CLIENTONLY = 16

const APPCMD_FILTERINITS = 32

const APPCMD_MASK = 4080

const APPCOMMAND_BASS_BOOST = 20

const APPCOMMAND_BASS_DOWN = 19

const APPCOMMAND_BASS_UP = 21

const APPCOMMAND_BROWSER_BACKWARD = 1

const APPCOMMAND_BROWSER_FAVORITES = 6

const APPCOMMAND_BROWSER_FORWARD = 2

const APPCOMMAND_BROWSER_HOME = 7

const APPCOMMAND_BROWSER_REFRESH = 3

const APPCOMMAND_BROWSER_SEARCH = 5

const APPCOMMAND_BROWSER_STOP = 4

const APPCOMMAND_CLOSE = 31

const APPCOMMAND_COPY = 36

const APPCOMMAND_CORRECTION_LIST = 45

const APPCOMMAND_CUT = 37

const APPCOMMAND_DELETE = 53

const APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43

const APPCOMMAND_DWM_FLIP3D = 54

const APPCOMMAND_FIND = 28

const APPCOMMAND_FORWARD_MAIL = 40

const APPCOMMAND_HELP = 27

const APPCOMMAND_LAUNCH_APP1 = 17

const APPCOMMAND_LAUNCH_APP2 = 18

const APPCOMMAND_LAUNCH_MAIL = 15

const APPCOMMAND_LAUNCH_MEDIA_SELECT = 16

const APPCOMMAND_MEDIA_CHANNEL_DOWN = 52

const APPCOMMAND_MEDIA_CHANNEL_UP = 51

const APPCOMMAND_MEDIA_FAST_FORWARD = 49

const APPCOMMAND_MEDIA_NEXTTRACK = 11

const APPCOMMAND_MEDIA_PAUSE = 47

const APPCOMMAND_MEDIA_PLAY = 46

const APPCOMMAND_MEDIA_PLAY_PAUSE = 14

const APPCOMMAND_MEDIA_PREVIOUSTRACK = 12

const APPCOMMAND_MEDIA_RECORD = 48

const APPCOMMAND_MEDIA_REWIND = 50

const APPCOMMAND_MEDIA_STOP = 13

const APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25

const APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24

const APPCOMMAND_MICROPHONE_VOLUME_UP = 26

const APPCOMMAND_MIC_ON_OFF_TOGGLE = 44

const APPCOMMAND_NEW = 29

const APPCOMMAND_OPEN = 30

const APPCOMMAND_PASTE = 38

const APPCOMMAND_PRINT = 33

const APPCOMMAND_REDO = 35

const APPCOMMAND_REPLY_TO_MAIL = 39

const APPCOMMAND_SAVE = 32

const APPCOMMAND_SEND_MAIL = 41

const APPCOMMAND_SPELL_CHECK = 42

const APPCOMMAND_TREBLE_DOWN = 22

const APPCOMMAND_TREBLE_UP = 23

const APPCOMMAND_UNDO = 34

const APPCOMMAND_VOLUME_DOWN = 9

const APPCOMMAND_VOLUME_MUTE = 8

const APPCOMMAND_VOLUME_UP = 10

const APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP = 1

const APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY = 4

const APPIDREGFLAGS_IUSERVER_ACTIVATE_IN_CLIENT_SESSION_ONLY = 32

const APPIDREGFLAGS_IUSERVER_SELF_SID_IN_LAUNCH_PERMISSION = 16

const APPIDREGFLAGS_IUSERVER_UNMODIFIED_LOGON_TOKEN = 8

const APPIDREGFLAGS_RESERVED1 = 64

const APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND = 2

type APPLICATIONLAUNCH_SETTING_VALUE = TAPPLICATIONLAUNCH_SETTING_VALUE

const APPLICATION_ERROR_MASK = 536870912

type APPLICATION_RECOVERY_CALLBACK = TAPPLICATION_RECOVERY_CALLBACK

const APPLICATION_VERIFIER_ACCESS_VIOLATION = 2

const APPLICATION_VERIFIER_BAD_HEAP_HANDLE = 5

const APPLICATION_VERIFIER_COM_API_IN_DLLMAIN = 1025

const APPLICATION_VERIFIER_COM_CF_SUCCESS_WITH_NULL = 1034

const APPLICATION_VERIFIER_COM_ERROR = 1024

const APPLICATION_VERIFIER_COM_GCO_SUCCESS_WITH_NULL = 1035

const APPLICATION_VERIFIER_COM_HOLDING_LOCKS_ON_CALL = 1040

const APPLICATION_VERIFIER_COM_NULL_DACL = 1030

const APPLICATION_VERIFIER_COM_OBJECT_IN_FREED_MEMORY = 1036

const APPLICATION_VERIFIER_COM_OBJECT_IN_UNLOADED_DLL = 1037

const APPLICATION_VERIFIER_COM_SMUGGLED_PROXY = 1033

const APPLICATION_VERIFIER_COM_SMUGGLED_WRAPPER = 1032

const APPLICATION_VERIFIER_COM_UNBALANCED_COINIT = 1027

const APPLICATION_VERIFIER_COM_UNBALANCED_OLEINIT = 1028

const APPLICATION_VERIFIER_COM_UNBALANCED_SWC = 1029

const APPLICATION_VERIFIER_COM_UNHANDLED_EXCEPTION = 1026

const APPLICATION_VERIFIER_COM_UNSAFE_IMPERSONATION = 1031

const APPLICATION_VERIFIER_COM_VTBL_IN_FREED_MEMORY = 1038

const APPLICATION_VERIFIER_COM_VTBL_IN_UNLOADED_DLL = 1039

const APPLICATION_VERIFIER_CONTINUABLE_BREAK = 268435456

const APPLICATION_VERIFIER_CORRUPTED_FREED_HEAP_BLOCK = 14

const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK = 8

const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_END_STAMP = 17

const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_HEADER = 11

const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_PROBING = 12

const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_HEADER = 13

const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_PREFIX = 18

const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_START_STAMP = 16

const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_SUFFIX = 15

const APPLICATION_VERIFIER_CORRUPTED_HEAP_LIST = 20

const APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP = 9

const APPLICATION_VERIFIER_DOUBLE_FREE = 7

const APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK = 512

const APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST = 4

const APPLICATION_VERIFIER_FIRST_CHANCE_ACCESS_VIOLATION = 19

const APPLICATION_VERIFIER_INCORRECT_WAIT_CALL = 770

const APPLICATION_VERIFIER_INTERNAL_ERROR = 2147483648

const APPLICATION_VERIFIER_INTERNAL_WARNING = 1073741824

const APPLICATION_VERIFIER_INVALID_ALLOCMEM = 1537

const APPLICATION_VERIFIER_INVALID_EXIT_PROCESS_CALL = 258

const APPLICATION_VERIFIER_INVALID_FREEMEM = 1536

const APPLICATION_VERIFIER_INVALID_HANDLE = 768

const APPLICATION_VERIFIER_INVALID_MAPVIEW = 1538

const APPLICATION_VERIFIER_INVALID_TLS_VALUE = 769

const APPLICATION_VERIFIER_LOCK_ALREADY_INITIALIZED = 529

const APPLICATION_VERIFIER_LOCK_CORRUPTED = 517

const APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE = 515

const APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT = 520

const APPLICATION_VERIFIER_LOCK_INVALID_OWNER = 518

const APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT = 519

const APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP = 514

const APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY = 516

const APPLICATION_VERIFIER_LOCK_IN_FREED_VMEM = 530

const APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL = 513

const APPLICATION_VERIFIER_LOCK_IN_UNMAPPED_MEM = 531

const APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED = 528

const APPLICATION_VERIFIER_LOCK_OVER_RELEASED = 521

const APPLICATION_VERIFIER_NO_BREAK = 536870912

const APPLICATION_VERIFIER_NULL_HANDLE = 771

const APPLICATION_VERIFIER_PROBE_FREE_MEM = 1540

const APPLICATION_VERIFIER_PROBE_GUARD_PAGE = 1541

const APPLICATION_VERIFIER_PROBE_INVALID_ADDRESS = 1539

const APPLICATION_VERIFIER_PROBE_INVALID_START_OR_SIZE = 1543

const APPLICATION_VERIFIER_PROBE_NULL = 1542

const APPLICATION_VERIFIER_RPC_ERROR = 1280

const APPLICATION_VERIFIER_SIZE_HEAP_UNEXPECTED_EXCEPTION = 1560

const APPLICATION_VERIFIER_STACK_OVERFLOW = 257

const APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE = 6

const APPLICATION_VERIFIER_TERMINATE_THREAD_CALL = 256

const APPLICATION_VERIFIER_THREAD_NOT_LOCK_OWNER = 532

const APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION = 10

const APPLICATION_VERIFIER_UNKNOWN_ERROR = 1

const APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS = 3

const APPLICATION_VERIFIER_WAIT_IN_DLLMAIN = 772

type APPLY_SNAPSHOT_VHDSET_FLAG = TAPPLY_SNAPSHOT_VHDSET_FLAG

type APPLY_SNAPSHOT_VHDSET_PARAMETERS = TAPPLY_SNAPSHOT_VHDSET_PARAMETERS

type APPLY_SNAPSHOT_VHDSET_VERSION = TAPPLY_SNAPSHOT_VHDSET_VERSION

const APPMODEL_ERROR_NO_APPLICATION = 15703

const APPMODEL_ERROR_NO_PACKAGE = 15700

const APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT = 15702

const APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT = 15701

type APP_LOCAL_DEVICE_ID = TAPP_LOCAL_DEVICE_ID

const APP_LOCAL_DEVICE_ID_SIZE = 32

type APP_MEMORY_INFORMATION = TAPP_MEMORY_INFORMATION

type APTTYPE = TAPTTYPE

type APTTYPEQUALIFIER = TAPTTYPEQUALIFIER

const ARABIC_CHARSET = 178

type ARRAYDESC = TARRAYDESC

type ARRAY_INFO = TARRAY_INFO

const ARW_BOTTOMLEFT = 0

const ARW_BOTTOMRIGHT = 1

const ARW_DOWN = 4

const ARW_HIDE = 8

const ARW_LEFT = 0

const ARW_RIGHT = 0

const ARW_STARTMASK = 3

const ARW_STARTRIGHT = 1

const ARW_STARTTOP = 2

const ARW_TOPLEFT = 2

const ARW_TOPRIGHT = 3

const ARW_UP = 4

type AR_STATE = TAR_STATE

const ASFW_ANY = -1

const ASPECTX = 40

const ASPECTXY = 44

const ASPECTY = 42

const ASPECT_FILTERING = 1

const ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION = 0

type ASSEMBLY_FILE_DETAILED_INFORMATION = TASSEMBLY_FILE_DETAILED_INFORMATION

const ASSERT_ALTERNATE = 9

const ASSERT_PRIMARY = 8

type ASSOCCLASS = TASSOCCLASS

type ASSOCIATIONELEMENT = TASSOCIATIONELEMENT

const ASYNCH = 128

const ASYNC_MODE_COMPATIBILITY = 1

const ASYNC_MODE_DEFAULT = 0

type ASYNC_STGMEDIUM = TASYNC_STGMEDIUM

const ATAPI_ID_CMD = 161

const ATF_ONOFFFEEDBACK = 2

const ATF_TIMEOUTON = 1

type ATOM = TATOM

const ATOM_FLAG_GLOBAL = 2

const ATTACH_PARENT_PROCESS = -1

type ATTACH_VIRTUAL_DISK_FLAG = TATTACH_VIRTUAL_DISK_FLAG

type ATTACH_VIRTUAL_DISK_PARAMETERS = TATTACH_VIRTUAL_DISK_PARAMETERS

type ATTACH_VIRTUAL_DISK_VERSION = TATTACH_VIRTUAL_DISK_VERSION

const ATTRIBUTE_SECURITY_INFORMATION = 32

const ATTR_CONVERTED = 2

const ATTR_FIXEDCONVERTED = 5

const ATTR_INPUT = 0

const ATTR_INPUT_ERROR = 4

const ATTR_TARGET_CONVERTED = 1

const ATTR_TARGET_NOTCONVERTED = 3

const AT_KEYEXCHANGE = 1

const AT_SIGNATURE = 2

type AUDIODESCRIPTION = TAUDIODESCRIPTION

const AUDIT_ALLOW_NO_PRIVILEGE = 1

type AUDIT_EVENT_TYPE = TAUDIT_EVENT_TYPE

type AUTHENTICATEF = TAUTHENTICATEF

type AUTHENTICATEINFO = TAUTHENTICATEINFO

type AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA = TAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA

type AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS = TAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS

type AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA = TAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA

const AUTHTYPE_CLIENT = 1

const AUTHTYPE_SERVER = 2

type AUXCAPS = TAUXCAPS

type AUXCAPS2 = TAUXCAPS2

type AUXCAPS2A = TAUXCAPS2A

type AUXCAPS2W = TAUXCAPS2W

type AUXCAPSA = TAUXCAPSA

type AUXCAPSW = TAUXCAPSW

const AUXCAPS_AUXIN = 2

const AUXCAPS_CDAUDIO = 1

const AUXCAPS_LRVOLUME = 2

const AUXCAPS_VOLUME = 1

const AUX_MAPPER = -1

const AW_ACTIVATE = 131072

const AW_BLEND = 524288

const AW_CENTER = 16

const AW_HIDE = 65536

const AW_HOR_NEGATIVE = 2

const AW_HOR_POSITIVE = 1

const AW_SLIDE = 262144

const AW_VER_NEGATIVE = 8

const AW_VER_POSITIVE = 4

type AXESLIST = TAXESLIST

type AXESLISTA = TAXESLISTA

type AXESLISTW = TAXESLISTW

type AXISINFO = TAXISINFO

type AXISINFOA = TAXISINFOA

type AXISINFOW = TAXISINFOW

const AbnormalTermination = 0

const AbortSystemShutdown = 0

const AccessCheckAndAuditAlarm = 0

const AccessCheckByTypeAndAuditAlarm = 0

const AccessCheckByTypeResultListAndAuditAlarm = 0

const AccessCheckByTypeResultListAndAuditAlarmByHandle = 0

const AddAtom = 0

const AddConsoleAlias = 0

const AddFontResource = 0

const AddFontResourceEx = 0

const AddForm = 0

const AddJob = 0

const AddMonitor = 0

const AddPort = 0

const AddPrintProcessor = 0

const AddPrintProvidor = 0

const AddPrinter = 0

const AddPrinterConnection = 0

const AddPrinterConnection2 = 0

const AddPrinterDriver = 0

const AddPrinterDriverEx = 0

const AdvancedDocumentProperties = 0

const AnsiLower = 0

const AnsiLowerBuff = 0

const AnsiNext = 0

const AnsiPrev = 0

const AnsiToOem = 0

const AnsiToOemBuff = 0

const AnsiUpper = 0

const AnsiUpperBuff = 0

const AppendMenu = 0

type ApplicationType = TApplicationType

type AsyncIAdviseSink = TAsyncIAdviseSink

type AsyncIAdviseSink2 = TAsyncIAdviseSink2

type AsyncIAdviseSink2Vtbl = TAsyncIAdviseSink2Vtbl

type AsyncIAdviseSinkVtbl = TAsyncIAdviseSinkVtbl

type AsyncIMultiQI = TAsyncIMultiQI

type AsyncIMultiQIVtbl = TAsyncIMultiQIVtbl

type AsyncIUnknown = TAsyncIUnknown

type AsyncIUnknownVtbl = TAsyncIUnknownVtbl

const BACKGROUND_BLUE = 16

const BACKGROUND_GREEN = 32

const BACKGROUND_INTENSITY = 128

const BACKGROUND_RED = 64

const BACKUP_ALTERNATE_DATA = 4

const BACKUP_DATA = 1

const BACKUP_EA_DATA = 2

const BACKUP_GHOSTED_FILE_EXTENTS = 11

const BACKUP_INVALID = 0

const BACKUP_LINK = 5

const BACKUP_OBJECT_ID = 7

const BACKUP_PROPERTY_DATA = 6

const BACKUP_REPARSE_DATA = 8

const BACKUP_SECURITY_DATA = 3

const BACKUP_SECURITY_INFORMATION = 65536

const BACKUP_SPARSE_BLOCK = 9

const BACKUP_TXFS_DATA = 10

type BAD_TRACK_NUMBER = TBAD_TRACK_NUMBER

const BALTIC_CHARSET = 186

const BANDINFO = 24

const BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE = 65536

const BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE = 1

const BASE_SEARCH_PATH_INVALID_FLAGS = -98306

const BASE_SEARCH_PATH_PERMANENT = 32768

const BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG = 2147483648

const BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG = 1073741824

const BATTERY_DISCHARGE_FLAGS_ENABLE = 2147483648

const BATTERY_DISCHARGE_FLAGS_EVENTCODE_MASK = 7

const BATTERY_FLAG_CHARGING = 8

const BATTERY_FLAG_CRITICAL = 4

const BATTERY_FLAG_HIGH = 1

const BATTERY_FLAG_LOW = 2

const BATTERY_FLAG_NO_BATTERY = 128

const BATTERY_FLAG_UNKNOWN = 255

const BATTERY_LIFE_UNKNOWN = 4294967295

const BATTERY_PERCENTAGE_UNKNOWN = 255

type BATTERY_REPORTING_SCALE = TBATTERY_REPORTING_SCALE

type BCHAR = TBCHAR

const BCRYPTBUFFER_VERSION = 0

const BCRYPT_3DES_112_ALGORITHM = "3DES_112"

const BCRYPT_3DES_ALGORITHM = "3DES"

const BCRYPT_AES_ALGORITHM = "AES"

const BCRYPT_AES_CMAC_ALGORITHM = "AES-CMAC"

const BCRYPT_AES_GMAC_ALGORITHM = "AES-GMAC"

const BCRYPT_AES_WRAP_KEY_BLOB = "Rfc3565KeyWrapBlob"

type BCRYPT_ALGORITHM_IDENTIFIER = TBCRYPT_ALGORITHM_IDENTIFIER

const BCRYPT_ALGORITHM_NAME = "AlgorithmName"

type BCRYPT_ALG_HANDLE = TBCRYPT_ALG_HANDLE

const BCRYPT_ALG_HANDLE_HMAC_FLAG = 8

const BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE = 3

const BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 4

type BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = TBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO

const BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION = 1

const BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG = 1

const BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG = 2

const BCRYPT_AUTH_TAG_LENGTH = "AuthTagLength"

type BCRYPT_AUTH_TAG_LENGTHS_STRUCT = TBCRYPT_AUTH_TAG_LENGTHS_STRUCT

const BCRYPT_BLOCK_LENGTH = "BlockLength"

const BCRYPT_BLOCK_PADDING = 1

const BCRYPT_BLOCK_SIZE_LIST = "BlockSizeList"

const BCRYPT_BUFFERS_LOCKED_FLAG = 64

const BCRYPT_CAPI_AES_FLAG = 16

const BCRYPT_CAPI_KDF_ALGORITHM = "CAPI_KDF"

const BCRYPT_CHAINING_MODE = "ChainingMode"

const BCRYPT_CHAIN_MODE_CBC = "ChainingModeCBC"

const BCRYPT_CHAIN_MODE_CCM = "ChainingModeCCM"

const BCRYPT_CHAIN_MODE_CFB = "ChainingModeCFB"

const BCRYPT_CHAIN_MODE_ECB = "ChainingModeECB"

const BCRYPT_CHAIN_MODE_GCM = "ChainingModeGCM"

const BCRYPT_CHAIN_MODE_NA = "ChainingModeN/A"

const BCRYPT_CIPHER_INTERFACE = 1

const BCRYPT_CIPHER_OPERATION = 1

const BCRYPT_DESX_ALGORITHM = "DESX"

const BCRYPT_DES_ALGORITHM = "DES"

const BCRYPT_DH_ALGORITHM = "DH"

type BCRYPT_DH_KEY_BLOB = TBCRYPT_DH_KEY_BLOB

const BCRYPT_DH_PARAMETERS = "DHParameters"

const BCRYPT_DH_PARAMETERS_MAGIC = 1297107012

type BCRYPT_DH_PARAMETER_HEADER = TBCRYPT_DH_PARAMETER_HEADER

const BCRYPT_DH_PRIVATE_BLOB = "DHPRIVATEBLOB"

const BCRYPT_DH_PRIVATE_MAGIC = 1448101956

const BCRYPT_DH_PUBLIC_BLOB = "DHPUBLICBLOB"

const BCRYPT_DH_PUBLIC_MAGIC = 1112557636

const BCRYPT_DSA_ALGORITHM = "DSA"

type BCRYPT_DSA_KEY_BLOB = TBCRYPT_DSA_KEY_BLOB

type BCRYPT_DSA_KEY_BLOB_V2 = TBCRYPT_DSA_KEY_BLOB_V2

const BCRYPT_DSA_PARAMETERS = "DSAParameters"

const BCRYPT_DSA_PARAMETERS_MAGIC = 1297109828

const BCRYPT_DSA_PARAMETERS_MAGIC_V2 = 843927620

type BCRYPT_DSA_PARAMETER_HEADER = TBCRYPT_DSA_PARAMETER_HEADER

type BCRYPT_DSA_PARAMETER_HEADER_V2 = TBCRYPT_DSA_PARAMETER_HEADER_V2

const BCRYPT_DSA_PRIVATE_BLOB = "DSAPRIVATEBLOB"

const BCRYPT_DSA_PRIVATE_MAGIC = 1448104772

const BCRYPT_DSA_PRIVATE_MAGIC_V2 = 844517444

const BCRYPT_DSA_PUBLIC_BLOB = "DSAPUBLICBLOB"

const BCRYPT_DSA_PUBLIC_MAGIC = 1112560452

const BCRYPT_DSA_PUBLIC_MAGIC_V2 = 843206724

const BCRYPT_ECCFULLPRIVATE_BLOB = "ECCFULLPRIVATEBLOB"

const BCRYPT_ECCFULLPUBLIC_BLOB = "ECCFULLPUBLICBLOB"

type BCRYPT_ECCKEY_BLOB = TBCRYPT_ECCKEY_BLOB

const BCRYPT_ECCPRIVATE_BLOB = "ECCPRIVATEBLOB"

const BCRYPT_ECCPUBLIC_BLOB = "ECCPUBLICBLOB"

type BCRYPT_ECC_CURVE_NAMES = TBCRYPT_ECC_CURVE_NAMES

const BCRYPT_ECDH_P256_ALGORITHM = "ECDH_P256"

const BCRYPT_ECDH_P384_ALGORITHM = "ECDH_P384"

const BCRYPT_ECDH_P521_ALGORITHM = "ECDH_P521"

const BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC = 1447772997

const BCRYPT_ECDH_PRIVATE_P256_MAGIC = 843793221

const BCRYPT_ECDH_PRIVATE_P384_MAGIC = 877347653

const BCRYPT_ECDH_PRIVATE_P521_MAGIC = 910902085

const BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC = 1347109701

const BCRYPT_ECDH_PUBLIC_P256_MAGIC = 827016005

const BCRYPT_ECDH_PUBLIC_P384_MAGIC = 860570437

const BCRYPT_ECDH_PUBLIC_P521_MAGIC = 894124869

const BCRYPT_ECDSA_P256_ALGORITHM = "ECDSA_P256"

const BCRYPT_ECDSA_P384_ALGORITHM = "ECDSA_P384"

const BCRYPT_ECDSA_P521_ALGORITHM = "ECDSA_P521"

const BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC = 1447314245

const BCRYPT_ECDSA_PRIVATE_P256_MAGIC = 844317509

const BCRYPT_ECDSA_PRIVATE_P384_MAGIC = 877871941

const BCRYPT_ECDSA_PRIVATE_P521_MAGIC = 911426373

const BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC = 1346650949

const BCRYPT_ECDSA_PUBLIC_P256_MAGIC = 827540293

const BCRYPT_ECDSA_PUBLIC_P384_MAGIC = 861094725

const BCRYPT_ECDSA_PUBLIC_P521_MAGIC = 894649157

const BCRYPT_EFFECTIVE_KEY_LENGTH = "EffectiveKeyLength"

const BCRYPT_GLOBAL_PARAMETERS = "SecretAgreementParam"

type BCRYPT_HANDLE = TBCRYPT_HANDLE

const BCRYPT_HASH_BLOCK_LENGTH = "HashBlockLength"

type BCRYPT_HASH_HANDLE = TBCRYPT_HASH_HANDLE

const BCRYPT_HASH_INTERFACE = 2

const BCRYPT_HASH_LENGTH = "HashDigestLength"

const BCRYPT_HASH_OID_LIST = "HashOIDList"

const BCRYPT_HASH_OPERATION = 2

type BCRYPT_HASH_OPERATION_TYPE = TBCRYPT_HASH_OPERATION_TYPE

const BCRYPT_HASH_REUSABLE_FLAG = 32

const BCRYPT_INITIALIZATION_VECTOR = "IV"

type BCRYPT_INTERFACE_VERSION = TBCRYPT_INTERFACE_VERSION

const BCRYPT_IS_KEYED_HASH = "IsKeyedHash"

const BCRYPT_IS_REUSABLE_HASH = "IsReusableHash"

const BCRYPT_KDF_HASH = "HASH"

const BCRYPT_KDF_HMAC = "HMAC"

const BCRYPT_KDF_RAW_SECRET = "TRUNCATE"

const BCRYPT_KDF_SP80056A_CONCAT = "SP800_56A_CONCAT"

const BCRYPT_KDF_TLS_PRF = "TLS_PRF"

type BCRYPT_KEY_BLOB = TBCRYPT_KEY_BLOB

const BCRYPT_KEY_DATA_BLOB = "KeyDataBlob"

type BCRYPT_KEY_DATA_BLOB_HEADER = TBCRYPT_KEY_DATA_BLOB_HEADER

const BCRYPT_KEY_DATA_BLOB_MAGIC = 1296188491

const BCRYPT_KEY_DATA_BLOB_VERSION1 = 1

const BCRYPT_KEY_DERIVATION_INTERFACE = 7

const BCRYPT_KEY_DERIVATION_OPERATION = 64

type BCRYPT_KEY_HANDLE = TBCRYPT_KEY_HANDLE

const BCRYPT_KEY_LENGTH = "KeyLength"

const BCRYPT_KEY_LENGTHS = "KeyLengths"

type BCRYPT_KEY_LENGTHS_STRUCT = TBCRYPT_KEY_LENGTHS_STRUCT

const BCRYPT_KEY_OBJECT_LENGTH = "KeyObjectLength"

const BCRYPT_KEY_STRENGTH = "KeyStrength"

const BCRYPT_MD2_ALGORITHM = "MD2"

const BCRYPT_MD4_ALGORITHM = "MD4"

const BCRYPT_MD5_ALGORITHM = "MD5"

const BCRYPT_MESSAGE_BLOCK_LENGTH = "MessageBlockLength"

type BCRYPT_MULTI_HASH_OPERATION = TBCRYPT_MULTI_HASH_OPERATION

const BCRYPT_MULTI_OBJECT_LENGTH = "MultiObjectLength"

type BCRYPT_MULTI_OBJECT_LENGTH_STRUCT = TBCRYPT_MULTI_OBJECT_LENGTH_STRUCT

type BCRYPT_MULTI_OPERATION_TYPE = TBCRYPT_MULTI_OPERATION_TYPE

const BCRYPT_NO_KEY_VALIDATION = 8

type BCRYPT_OAEP_PADDING_INFO = TBCRYPT_OAEP_PADDING_INFO

const BCRYPT_OBJECT_ALIGNMENT = 16

const BCRYPT_OBJECT_LENGTH = "ObjectLength"

type BCRYPT_OID = TBCRYPT_OID

type BCRYPT_OID_LIST = TBCRYPT_OID_LIST

const BCRYPT_OPAQUE_KEY_BLOB = "OpaqueKeyBlob"

const BCRYPT_PADDING_SCHEMES = "PaddingSchemes"

const BCRYPT_PAD_NONE = 1

const BCRYPT_PAD_OAEP = 4

const BCRYPT_PAD_PKCS1 = 2

const BCRYPT_PAD_PKCS1_OPTIONAL_HASH_OID = 16

const BCRYPT_PAD_PSS = 8

const BCRYPT_PBKDF2_ALGORITHM = "PBKDF2"

const BCRYPT_PCP_PLATFORM_TYPE_PROPERTY = "PCP_PLATFORM_TYPE"

const BCRYPT_PCP_PROVIDER_VERSION_PROPERTY = "PCP_PROVIDER_VERSION"

type BCRYPT_PKCS1_PADDING_INFO = TBCRYPT_PKCS1_PADDING_INFO

const BCRYPT_PRIMITIVE_TYPE = "PrimitiveType"

const BCRYPT_PRIVATE_KEY = "PrivKeyVal"

const BCRYPT_PRIVATE_KEY_BLOB = "PRIVATEBLOB"

const BCRYPT_PRIVATE_KEY_FLAG = 2

const BCRYPT_PROVIDER_HANDLE = "ProviderHandle"

type BCRYPT_PROVIDER_NAME = TBCRYPT_PROVIDER_NAME

const BCRYPT_PROV_DISPATCH = 1

type BCRYPT_PSS_PADDING_INFO = TBCRYPT_PSS_PADDING_INFO

const BCRYPT_PUBLIC_KEY_BLOB = "PUBLICBLOB"

const BCRYPT_PUBLIC_KEY_FLAG = 1

const BCRYPT_PUBLIC_KEY_LENGTH = "PublicKeyLength"

const BCRYPT_RC2_ALGORITHM = "RC2"

const BCRYPT_RC4_ALGORITHM = "RC4"

const BCRYPT_RNG_ALGORITHM = "RNG"

const BCRYPT_RNG_DUAL_EC_ALGORITHM = "DUALECRNG"

const BCRYPT_RNG_FIPS186_DSA_ALGORITHM = "FIPS186DSARNG"

const BCRYPT_RNG_INTERFACE = 6

const BCRYPT_RNG_OPERATION = 32

const BCRYPT_RNG_USE_ENTROPY_IN_BUFFER = 1

const BCRYPT_RSAFULLPRIVATE_BLOB = "RSAFULLPRIVATEBLOB"

const BCRYPT_RSAFULLPRIVATE_MAGIC = 859919186

type BCRYPT_RSAKEY_BLOB = TBCRYPT_RSAKEY_BLOB

const BCRYPT_RSAPRIVATE_BLOB = "RSAPRIVATEBLOB"

const BCRYPT_RSAPRIVATE_MAGIC = 843141970

const BCRYPT_RSAPUBLIC_BLOB = "RSAPUBLICBLOB"

const BCRYPT_RSAPUBLIC_MAGIC = 826364754

const BCRYPT_RSA_ALGORITHM = "RSA"

const BCRYPT_RSA_SIGN_ALGORITHM = "RSA_SIGN"

const BCRYPT_SECRET_AGREEMENT_INTERFACE = 4

const BCRYPT_SECRET_AGREEMENT_OPERATION = 8

type BCRYPT_SECRET_HANDLE = TBCRYPT_SECRET_HANDLE

const BCRYPT_SHA1_ALGORITHM = "SHA1"

const BCRYPT_SHA256_ALGORITHM = "SHA256"

const BCRYPT_SHA384_ALGORITHM = "SHA384"

const BCRYPT_SHA512_ALGORITHM = "SHA512"

const BCRYPT_SIGNATURE_INTERFACE = 5

const BCRYPT_SIGNATURE_LENGTH = "SignatureLength"

const BCRYPT_SIGNATURE_OPERATION = 16

const BCRYPT_SP800108_CTR_HMAC_ALGORITHM = "SP800_108_CTR_HMAC"

const BCRYPT_SP80056A_CONCAT_ALGORITHM = "SP800_56A_CONCAT"

const BCRYPT_SUPPORTED_PAD_OAEP = 8

const BCRYPT_SUPPORTED_PAD_PKCS1_ENC = 2

const BCRYPT_SUPPORTED_PAD_PKCS1_SIG = 4

const BCRYPT_SUPPORTED_PAD_PSS = 16

const BCRYPT_SUPPORTED_PAD_ROUTER = 1

const BCRYPT_USE_SYSTEM_PREFERRED_RNG = 2

type BCryptBuffer = TBCryptBuffer

type BCryptBufferDesc = TBCryptBufferDesc

const BDR_INNER = 12

const BDR_OUTER = 3

const BDR_RAISED = 5

const BDR_RAISEDINNER = 4

const BDR_RAISEDOUTER = 1

const BDR_SUNKEN = 10

const BDR_SUNKENINNER = 8

const BDR_SUNKENOUTER = 2

const BEGIN_PATH = 4096

const BELOW_NORMAL_PRIORITY_CLASS = 16384

type BEM_FREE_INTERFACE_CALLBACK = TBEM_FREE_INTERFACE_CALLBACK

const BF_ADJUST = 8192

const BF_BOTTOM = 8

const BF_BOTTOMLEFT = 9

const BF_BOTTOMRIGHT = 12

const BF_DIAGONAL = 16

const BF_DIAGONAL_ENDBOTTOMLEFT = 25

const BF_DIAGONAL_ENDBOTTOMRIGHT = 28

const BF_DIAGONAL_ENDTOPLEFT = 19

const BF_DIAGONAL_ENDTOPRIGHT = 22

const BF_FLAT = 16384

const BF_LEFT = 1

const BF_MIDDLE = 2048

const BF_MONO = 32768

const BF_RECT = 15

const BF_RIGHT = 4

const BF_SOFT = 4096

const BF_TOP = 2

const BF_TOPLEFT = 3

const BF_TOPRIGHT = 6

const BIDI_ACCESS_ADMINISTRATOR = 1

const BIDI_ACCESS_USER = 2

const BIDI_ACTION_ENUM_SCHEMA = "EnumSchema"

const BIDI_ACTION_GET = "Get"

const BIDI_ACTION_GET_ALL = "GetAll"

const BIDI_ACTION_SET = "Set"

type BIDI_DATA = TBIDI_DATA

type BIDI_REQUEST_CONTAINER = TBIDI_REQUEST_CONTAINER

type BIDI_REQUEST_DATA = TBIDI_REQUEST_DATA

type BIDI_RESPONSE_CONTAINER = TBIDI_RESPONSE_CONTAINER

type BIDI_RESPONSE_DATA = TBIDI_RESPONSE_DATA

type BIDI_TYPE = TBIDI_TYPE

type BINARY_CONTAINER = TBINARY_CONTAINER

type BINDF = TBINDF

type BINDF2 = TBINDF2

const BINDF_DONTPUTINCACHE = 0

const BINDF_DONTUSECACHE = 0

const BINDF_NOCOPYDATA = 0

type BINDHANDLETYPES = TBINDHANDLETYPES

type BINDINFO = TBINDINFO

type BINDINFOF = TBINDINFOF

type BINDINFO_OPTIONS = TBINDINFO_OPTIONS

type BINDPTR = TBINDPTR

type BINDSPEED = TBINDSPEED

type BINDSTATUS = TBINDSTATUS

type BINDSTRING = TBINDSTRING

type BINDVERB = TBINDVERB

type BIND_FLAGS = TBIND_FLAGS

type BIND_OPTS = TBIND_OPTS

type BIND_OPTS2 = TBIND_OPTS2

type BIND_OPTS3 = TBIND_OPTS3

type BIN_COUNT = TBIN_COUNT

type BIN_RANGE = TBIN_RANGE

type BIN_RESULTS = TBIN_RESULTS

type BIN_TYPES = TBIN_TYPES

type BITMAP = TBITMAP

type BITMAPCOREHEADER = TBITMAPCOREHEADER

type BITMAPCOREINFO = TBITMAPCOREINFO

type BITMAPFILEHEADER = TBITMAPFILEHEADER

type BITMAPINFO = TBITMAPINFO

type BITMAPINFOHEADER = TBITMAPINFOHEADER

type BITMAPV4HEADER = TBITMAPV4HEADER

type BITMAPV5HEADER = TBITMAPV5HEADER

const BITSPIXEL = 12

const BI_BITFIELDS = 3

const BI_JPEG = 4

const BI_PNG = 5

const BI_RGB = 0

const BI_RLE4 = 2

const BI_RLE8 = 1

const BKMODE_LAST = 2

const BLACKONWHITE = 1

const BLACK_BRUSH = 4

const BLACK_PEN = 7

type BLENDFUNCTION = TBLENDFUNCTION

type BLOB = TBLOB

type BLOBHEADER = TBLOBHEADER

const BLTALIGNMENT = 119

const BM_CLICK = 245

const BM_GETCHECK = 240

const BM_GETIMAGE = 246

const BM_GETSTATE = 242

const BM_SETCHECK = 241

const BM_SETDONTCLICK = 248

const BM_SETIMAGE = 247

const BM_SETSTATE = 243

const BM_SETSTYLE = 244

const BN_CLICKED = 0

const BN_DBLCLK = 5

const BN_DISABLE = 4

const BN_DOUBLECLICKED = 5

const BN_HILITE = 2

const BN_KILLFOCUS = 7

const BN_PAINT = 1

const BN_PUSHED = 2

const BN_SETFOCUS = 6

const BN_UNHILITE = 3

const BN_UNPUSHED = 3

const BOLD_FONTTYPE = 256

type BOOL = TBOOL

type BOOLEAN = TBOOLEAN

type BOOT_AREA_INFO = TBOOT_AREA_INFO

type BORDERWIDTHS = TBORDERWIDTHS

const BROADCAST_QUERY_DENY = 1112363332

type BSCF = TBSCF

const BSF_ALLOWSFW = 128

const BSF_FLUSHDISK = 4

const BSF_FORCEIFHUNG = 32

const BSF_IGNORECURRENTTASK = 2

const BSF_LUID = 1024

const BSF_NOHANG = 8

const BSF_NOTIMEOUTIFNOTHUNG = 64

const BSF_POSTMESSAGE = 16

const BSF_QUERY = 1

const BSF_RETURNHDESK = 512

const BSF_SENDNOTIFYMESSAGE = 256

type BSMINFO = TBSMINFO

const BSM_ALLCOMPONENTS = 0

const BSM_ALLDESKTOPS = 16

const BSM_APPLICATIONS = 8

const BSM_INSTALLABLEDRIVERS = 4

const BSM_NETDRIVER = 2

const BSM_VXDS = 1

type BSTR = TBSTR

type BSTRBLOB = TBSTRBLOB

const BST_CHECKED = 1

const BST_FOCUS = 8

const BST_INDETERMINATE = 2

const BST_PUSHED = 4

const BST_UNCHECKED = 0

const BS_3STATE = 5

const BS_AUTO3STATE = 6

const BS_AUTOCHECKBOX = 3

const BS_AUTORADIOBUTTON = 9

const BS_BITMAP = 128

const BS_BOTTOM = 2048

const BS_CENTER = 768

const BS_CHECKBOX = 2

const BS_DEFPUSHBUTTON = 1

const BS_DIBPATTERN = 5

const BS_DIBPATTERN8X8 = 8

const BS_DIBPATTERNPT = 6

const BS_FLAT = 32768

const BS_GROUPBOX = 7

const BS_HATCHED = 2

const BS_HOLLOW = 1

const BS_ICON = 64

const BS_INDEXED = 4

const BS_LEFT = 256

const BS_LEFTTEXT = 32

const BS_MONOPATTERN = 9

const BS_MULTILINE = 8192

const BS_NOTIFY = 16384

const BS_NULL = 1

const BS_OWNERDRAW = 11

const BS_PATTERN = 3

const BS_PATTERN8X8 = 7

const BS_PUSHBOX = 10

const BS_PUSHBUTTON = 0

const BS_PUSHLIKE = 4096

const BS_RADIOBUTTON = 4

const BS_RIGHT = 512

const BS_RIGHTBUTTON = 32

const BS_SOLID = 0

const BS_TEXT = 0

const BS_TOP = 1024

const BS_TYPEMASK = 15

const BS_USERBUTTON = 8

const BS_VCENTER = 3072

const BUFSIZ = 512

type BULK_SECURITY_TEST_DATA = TBULK_SECURITY_TEST_DATA

type BYTE = TBYTE

type BYTE_BLOB = TBYTE_BLOB

type BYTE_SIZEDARR = TBYTE_SIZEDARR

type BY_HANDLE_FILE_INFORMATION = TBY_HANDLE_FILE_INFORMATION

const BackupEventLog = 0

const BeginUpdateResource = 0

type BinaryParam = TBinaryParam

const BitScanForward = 0

const BitScanReverse = 0

const BitTest = 0

const BitTestAndComplement = 0

const BitTestAndReset = 0

const BitTestAndSet = 0

const BroadcastSystemMessage = 0

const BroadcastSystemMessageEx = 0

const BuildCommDCB = 0

const BuildCommDCBAndTimeouts = 0

const C1_ALPHA = 256

const C1_BLANK = 64

const C1_CNTRL = 32

const C1_DEFINED = 512

const C1_DIGIT = 4

const C1_LOWER = 2

const C1_PUNCT = 16

const C1_SPACE = 8

const C1_UPPER = 1

const C1_XDIGIT = 128

const C2_ARABICNUMBER = 6

const C2_BLOCKSEPARATOR = 8

const C2_COMMONSEPARATOR = 7

const C2_EUROPENUMBER = 3

const C2_EUROPESEPARATOR = 4

const C2_EUROPETERMINATOR = 5

const C2_LEFTTORIGHT = 1

const C2_NOTAPPLICABLE = 0

const C2_OTHERNEUTRAL = 11

const C2_RIGHTTOLEFT = 2

const C2_SEGMENTSEPARATOR = 9

const C2_WHITESPACE = 10

const C3_ALPHA = 32768

const C3_DIACRITIC = 2

const C3_FULLWIDTH = 128

const C3_HALFWIDTH = 64

const C3_HIGHSURROGATE = 2048

const C3_HIRAGANA = 32

const C3_IDEOGRAPH = 256

const C3_KASHIDA = 512

const C3_KATAKANA = 16

const C3_LEXICAL = 1024

const C3_LOWSURROGATE = 4096

const C3_NONSPACING = 1

const C3_NOTAPPLICABLE = 0

const C3_SYMBOL = 8

const C3_VOWELMARK = 4

type CABOOL = TCABOOL

type CABSTR = TCABSTR

type CABSTRBLOB = TCABSTRBLOB

type CAC = TCAC

type CACHE_DESCRIPTOR = TCACHE_DESCRIPTOR

const CACHE_E_FIRST = 2147746160

const CACHE_E_LAST = 2147746175

const CACHE_FULLY_ASSOCIATIVE = 255

type CACHE_RELATIONSHIP = TCACHE_RELATIONSHIP

const CACHE_S_FIRST = 262512

const CACHE_S_LAST = 262527

type CACLIPDATA = TCACLIPDATA

type CACLSID = TCACLSID

type CACY = TCACY

type CADATE = TCADATE

type CADBL = TCADBL

const CADV_LATEACK = 65535

type CAFILETIME = TCAFILETIME

type CAFLT = TCAFLT

type CAH = TCAH

type CAI = TCAI

type CAL = TCAL

const CALERT_SYSTEM = 6

const CALG_3DES = 26115

const CALG_3DES_112 = 26121

const CALG_AES = 26129

const CALG_AES_128 = 26126

const CALG_AES_192 = 26127

const CALG_AES_256 = 26128

const CALG_AGREEDKEY_ANY = 43523

const CALG_CYLINK_MEK = 26124

const CALG_DES = 26113

const CALG_DESX = 26116

const CALG_DH_EPHEM = 43522

const CALG_DH_SF = 43521

const CALG_DSS_SIGN = 8704

const CALG_ECDH = 43525

const CALG_ECDH_EPHEM = 44550

const CALG_ECDSA = 8707

const CALG_ECMQV = 40961

const CALG_HASH_REPLACE_OWF = 32779

const CALG_HMAC = 32777

const CALG_HUGHES_MD5 = 40963

const CALG_KEA_KEYX = 43524

const CALG_MAC = 32773

const CALG_MD2 = 32769

const CALG_MD4 = 32770

const CALG_MD5 = 32771

const CALG_NO_SIGN = 8192

const CALG_NULLCIPHER = 24576

const CALG_OID_INFO_CNG_ONLY = 4294967295

const CALG_OID_INFO_PARAMETERS = 4294967294

const CALG_PCT1_MASTER = 19460

const CALG_RC2 = 26114

const CALG_RC4 = 26625

const CALG_RC5 = 26125

const CALG_RSA_KEYX = 41984

const CALG_RSA_SIGN = 9216

const CALG_SCHANNEL_ENC_KEY = 19463

const CALG_SCHANNEL_MAC_KEY = 19459

const CALG_SCHANNEL_MASTER_HASH = 19458

const CALG_SEAL = 26626

const CALG_SHA = 32772

const CALG_SHA1 = 32772

const CALG_SHA_256 = 32780

const CALG_SHA_384 = 32781

const CALG_SHA_512 = 32782

const CALG_SKIPJACK = 26122

const CALG_SSL2_MASTER = 19461

const CALG_SSL3_MASTER = 19457

const CALG_SSL3_SHAMD5 = 32776

const CALG_TEK = 26123

const CALG_TLS1PRF = 32778

const CALG_TLS1_MASTER = 19462

type CALID = TCALID

const CALINFO_ENUMPROC = 0

type CALINFO_ENUMPROCA = TCALINFO_ENUMPROCA

const CALINFO_ENUMPROCEX = 0

type CALINFO_ENUMPROCEXA = TCALINFO_ENUMPROCEXA

type CALINFO_ENUMPROCEXEX = TCALINFO_ENUMPROCEXEX

type CALINFO_ENUMPROCEXW = TCALINFO_ENUMPROCEXW

type CALINFO_ENUMPROCW = TCALINFO_ENUMPROCW

const CALLBACK_CHUNK_FINISHED = 0

const CALLBACK_EVENT = 327680

const CALLBACK_FUNCTION = 196608

const CALLBACK_NULL = 0

const CALLBACK_STREAM_SWITCH = 1

const CALLBACK_TASK = 131072

const CALLBACK_THREAD = 131072

const CALLBACK_TYPEMASK = 458752

const CALLBACK_WINDOW = 65536

type CALLCONV = TCALLCONV

type CALLTYPE = TCALLTYPE

const CALL_PENDING = 2

type CALPSTR = TCALPSTR

type CALPWSTR = TCALPWSTR

type CALTYPE = TCALTYPE

const CAL_GREGORIAN = 1

const CAL_GREGORIAN_ARABIC = 10

const CAL_GREGORIAN_ME_FRENCH = 9

const CAL_GREGORIAN_US = 2

const CAL_GREGORIAN_XLIT_ENGLISH = 11

const CAL_GREGORIAN_XLIT_FRENCH = 12

const CAL_HEBREW = 8

const CAL_HIJRI = 6

const CAL_ICALINTVALUE = 1

const CAL_ITWODIGITYEARMAX = 48

const CAL_IYEAROFFSETRANGE = 3

const CAL_JAPAN = 3

const CAL_KOREA = 5

const CAL_NOUSEROVERRIDE = 2147483648

const CAL_RETURN_GENITIVE_NAMES = 268435456

const CAL_RETURN_NUMBER = 536870912

const CAL_SABBREVDAYNAME1 = 14

const CAL_SABBREVDAYNAME2 = 15

const CAL_SABBREVDAYNAME3 = 16

const CAL_SABBREVDAYNAME4 = 17

const CAL_SABBREVDAYNAME5 = 18

const CAL_SABBREVDAYNAME6 = 19

const CAL_SABBREVDAYNAME7 = 20

const CAL_SABBREVERASTRING = 57

const CAL_SABBREVMONTHNAME1 = 34

const CAL_SABBREVMONTHNAME10 = 43

const CAL_SABBREVMONTHNAME11 = 44

const CAL_SABBREVMONTHNAME12 = 45

const CAL_SABBREVMONTHNAME13 = 46

const CAL_SABBREVMONTHNAME2 = 35

const CAL_SABBREVMONTHNAME3 = 36

const CAL_SABBREVMONTHNAME4 = 37

const CAL_SABBREVMONTHNAME5 = 38

const CAL_SABBREVMONTHNAME6 = 39

const CAL_SABBREVMONTHNAME7 = 40

const CAL_SABBREVMONTHNAME8 = 41

const CAL_SABBREVMONTHNAME9 = 42

const CAL_SCALNAME = 2

const CAL_SDAYNAME1 = 7

const CAL_SDAYNAME2 = 8

const CAL_SDAYNAME3 = 9

const CAL_SDAYNAME4 = 10

const CAL_SDAYNAME5 = 11

const CAL_SDAYNAME6 = 12

const CAL_SDAYNAME7 = 13

const CAL_SERASTRING = 4

const CAL_SJAPANESEERAFIRSTYEAR = 61

const CAL_SLONGDATE = 6

const CAL_SMONTHDAY = 56

const CAL_SMONTHNAME1 = 21

const CAL_SMONTHNAME10 = 30

const CAL_SMONTHNAME11 = 31

const CAL_SMONTHNAME12 = 32

const CAL_SMONTHNAME13 = 33

const CAL_SMONTHNAME2 = 22

const CAL_SMONTHNAME3 = 23

const CAL_SMONTHNAME4 = 24

const CAL_SMONTHNAME5 = 25

const CAL_SMONTHNAME6 = 26

const CAL_SMONTHNAME7 = 27

const CAL_SMONTHNAME8 = 28

const CAL_SMONTHNAME9 = 29

const CAL_SRELATIVELONGDATE = 58

const CAL_SSHORTDATE = 5

const CAL_SSHORTESTDAYNAME1 = 49

const CAL_SSHORTESTDAYNAME2 = 50

const CAL_SSHORTESTDAYNAME3 = 51

const CAL_SSHORTESTDAYNAME4 = 52

const CAL_SSHORTESTDAYNAME5 = 53

const CAL_SSHORTESTDAYNAME6 = 54

const CAL_SSHORTESTDAYNAME7 = 55

const CAL_SYEARMONTH = 47

const CAL_TAIWAN = 4

const CAL_THAI = 7

const CAL_UMALQURA = 23

const CAL_USE_CP_ACP = 1073741824

type CANDIDATEFORM = TCANDIDATEFORM

type CANDIDATELIST = TCANDIDATELIST

type CAPROPVARIANT = TCAPROPVARIANT

const CAPSLOCK_ON = 128

const CAP_ATAPI_ID_CMD = 2

const CAP_ATA_ID_CMD = 1

const CAP_SMART_CMD = 4

type CASCODE = TCASCODE

const CAT_E_FIRST = 2147746144

const CAT_E_LAST = 2147746145

type CAUB = TCAUB

type CAUH = TCAUH

type CAUI = TCAUI

type CAUL = TCAUL

const CA_LOG_FILTER = 2

const CA_NEGATIVE = 1

const CBF_FAIL_ADVISES = 16384

const CBF_FAIL_ALLSVRXACTIONS = 258048

const CBF_FAIL_CONNECTIONS = 8192

const CBF_FAIL_EXECUTES = 32768

const CBF_FAIL_POKES = 65536

const CBF_FAIL_REQUESTS = 131072

const CBF_FAIL_SELFCONNECTIONS = 4096

const CBF_SKIP_ALLNOTIFICATIONS = 3932160

const CBF_SKIP_CONNECT_CONFIRMS = 262144

const CBF_SKIP_DISCONNECTS = 2097152

const CBF_SKIP_REGISTRATIONS = 524288

const CBF_SKIP_UNREGISTRATIONS = 1048576

const CBM_INIT = 4

const CBN_CLOSEUP = 8

const CBN_DBLCLK = 2

const CBN_DROPDOWN = 7

const CBN_EDITCHANGE = 5

const CBN_EDITUPDATE = 6

const CBN_ERRSPACE = -1

const CBN_KILLFOCUS = 4

const CBN_SELCHANGE = 1

const CBN_SELENDCANCEL = 10

const CBN_SELENDOK = 9

const CBN_SETFOCUS = 3

const CBR_110 = 110

const CBR_115200 = 115200

const CBR_1200 = 1200

const CBR_128000 = 128000

const CBR_14400 = 14400

const CBR_19200 = 19200

const CBR_2400 = 2400

const CBR_256000 = 256000

const CBR_300 = 300

const CBR_38400 = 38400

const CBR_4800 = 4800

const CBR_56000 = 56000

const CBR_57600 = 57600

const CBR_600 = 600

const CBR_9600 = 9600

const CBR_BLOCK = -1

const CBS_AUTOHSCROLL = 64

const CBS_DISABLENOSCROLL = 2048

const CBS_DROPDOWN = 2

const CBS_DROPDOWNLIST = 3

const CBS_HASSTRINGS = 512

const CBS_LOWERCASE = 16384

const CBS_NOINTEGRALHEIGHT = 1024

const CBS_OEMCONVERT = 128

const CBS_OWNERDRAWFIXED = 16

const CBS_OWNERDRAWVARIABLE = 32

const CBS_SIMPLE = 1

const CBS_SORT = 256

const CBS_UPPERCASE = 8192

type CBTACTIVATESTRUCT = TCBTACTIVATESTRUCT

type CBT_CREATEWND = TCBT_CREATEWND

type CBT_CREATEWNDA = TCBT_CREATEWNDA

type CBT_CREATEWNDW = TCBT_CREATEWNDW

const CB_ADDSTRING = 323

const CB_DELETESTRING = 324

const CB_DIR = 325

const CB_ERR = -1

const CB_ERRSPACE = -2

const CB_FINDSTRING = 332

const CB_FINDSTRINGEXACT = 344

const CB_GETCOMBOBOXINFO = 356

const CB_GETCOUNT = 326

const CB_GETCURSEL = 327

const CB_GETDROPPEDCONTROLRECT = 338

const CB_GETDROPPEDSTATE = 343

const CB_GETDROPPEDWIDTH = 351

const CB_GETEDITSEL = 320

const CB_GETEXTENDEDUI = 342

const CB_GETHORIZONTALEXTENT = 349

const CB_GETITEMDATA = 336

const CB_GETITEMHEIGHT = 340

const CB_GETLBTEXT = 328

const CB_GETLBTEXTLEN = 329

const CB_GETLOCALE = 346

const CB_GETTOPINDEX = 347

const CB_INITSTORAGE = 353

const CB_INSERTSTRING = 330

const CB_LIMITTEXT = 321

const CB_MSGMAX = 357

const CB_OKAY = 0

const CB_RESETCONTENT = 331

const CB_SELECTSTRING = 333

const CB_SETCURSEL = 334

const CB_SETDROPPEDWIDTH = 352

const CB_SETEDITSEL = 322

const CB_SETEXTENDEDUI = 341

const CB_SETHORIZONTALEXTENT = 350

const CB_SETITEMDATA = 337

const CB_SETITEMHEIGHT = 339

const CB_SETLOCALE = 345

const CB_SETTOPINDEX = 348

const CB_SHOWDROPDOWN = 335

const CCERR_CHOOSECOLORCODES = 20480

type CCERT_STORE_PROV_FIND_INFO = TCCERT_STORE_PROV_FIND_INFO

type CCHAR = TCCHAR

const CCHDEVICENAME = 32

const CCHFORMNAME = 32

const CCHILDREN_SCROLLBAR = 5

const CCHILDREN_TITLEBAR = 5

const CCH_MAX_PROPSTG_NAME = 31

type CCRYPT_OID_INFO = TCCRYPT_OID_INFO

const CC_ANYCOLOR = 256

const CC_CHORD = 4

const CC_CIRCLES = 1

const CC_ELLIPSES = 8

const CC_ENABLEHOOK = 16

const CC_ENABLETEMPLATE = 32

const CC_ENABLETEMPLATEHANDLE = 64

const CC_FULLOPEN = 2

const CC_INTERIORS = 128

const CC_NONE = 0

const CC_PIE = 2

const CC_PREVENTFULLOPEN = 4

const CC_RGBINIT = 1

const CC_ROUNDRECT = 256

const CC_SHOWHELP = 8

const CC_SOLIDCOLOR = 128

const CC_STYLED = 32

const CC_WIDE = 16

const CC_WIDESTYLED = 64

const CDERR_DIALOGFAILURE = 65535

const CDERR_FINDRESFAILURE = 6

const CDERR_GENERALCODES = 0

const CDERR_INITIALIZATION = 2

const CDERR_LOADRESFAILURE = 7

const CDERR_LOADSTRFAILURE = 5

const CDERR_LOCKRESFAILURE = 8

const CDERR_MEMALLOCFAILURE = 9

const CDERR_MEMLOCKFAILURE = 10

const CDERR_NOHINSTANCE = 4

const CDERR_NOHOOK = 11

const CDERR_NOTEMPLATE = 3

const CDERR_REGISTERMSGFAIL = 12

const CDERR_STRUCTSIZE = 1

const CDM_FIRST = 1124

const CDM_GETFILEPATH = 1125

const CDM_GETFOLDERIDLIST = 1127

const CDM_GETFOLDERPATH = 1126

const CDM_GETSPEC = 1124

const CDM_HIDECONTROL = 1129

const CDM_LAST = 1224

const CDM_SETCONTROLTEXT = 1128

const CDM_SETDEFEXT = 1130

const CDN_FILEOK = 18446744073709551010

const CDN_FIRST = 18446744073709551015

const CDN_FOLDERCHANGE = 18446744073709551013

const CDN_HELP = 18446744073709551011

const CDN_INCLUDEITEM = 18446744073709551008

const CDN_INITDONE = 18446744073709551015

const CDN_LAST = 18446744073709550917

const CDN_SELCHANGE = 18446744073709551014

const CDN_SHAREVIOLATION = 18446744073709551012

const CDN_TYPECHANGE = 18446744073709551009

const CDS_DISABLE_UNSAFE_MODES = 512

const CDS_ENABLE_UNSAFE_MODES = 256

const CDS_FULLSCREEN = 4

const CDS_GLOBAL = 8

const CDS_NORESET = 268435456

const CDS_RESET = 1073741824

const CDS_RESET_EX = 536870912

const CDS_SET_PRIMARY = 16

const CDS_TEST = 2

const CDS_UPDATEREGISTRY = 1

const CDS_VIDEOPARAMETERS = 32

const CD_LBSELADD = 2

const CD_LBSELCHANGE = 0

const CD_LBSELNOITEMS = -1

const CD_LBSELSUB = 1

type CERT_ACCESS_DESCRIPTION = TCERT_ACCESS_DESCRIPTION

const CERT_ACCESS_STATE_GP_SYSTEM_STORE_FLAG = 8

const CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG = 4

const CERT_ACCESS_STATE_PROP_ID = 14

const CERT_ACCESS_STATE_SHARED_USER_FLAG = 16

const CERT_ACCESS_STATE_SYSTEM_STORE_FLAG = 2

const CERT_ACCESS_STATE_WRITE_PERSIST_FLAG = 1

const CERT_AIA_URL_RETRIEVED_PROP_ID = 67

const CERT_ALT_NAME_DIRECTORY_NAME = 5

const CERT_ALT_NAME_DNS_NAME = 3

const CERT_ALT_NAME_EDI_PARTY_NAME = 6

type CERT_ALT_NAME_ENTRY = TCERT_ALT_NAME_ENTRY

const CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK = 255

const CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT = 16

type CERT_ALT_NAME_INFO = TCERT_ALT_NAME_INFO

const CERT_ALT_NAME_IP_ADDRESS = 8

const CERT_ALT_NAME_OTHER_NAME = 1

const CERT_ALT_NAME_REGISTERED_ID = 9

const CERT_ALT_NAME_RFC822_NAME = 2

const CERT_ALT_NAME_URL = 7

const CERT_ALT_NAME_VALUE_ERR_INDEX_MASK = 65535

const CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT = 0

const CERT_ALT_NAME_X400_ADDRESS = 4

const CERT_ARCHIVED_KEY_HASH_PROP_ID = 65

const CERT_ARCHIVED_PROP_ID = 19

type CERT_AUTHORITY_INFO_ACCESS = TCERT_AUTHORITY_INFO_ACCESS

const CERT_AUTHORITY_INFO_ACCESS_PROP_ID = 68

type CERT_AUTHORITY_KEY_ID2_INFO = TCERT_AUTHORITY_KEY_ID2_INFO

type CERT_AUTHORITY_KEY_ID_INFO = TCERT_AUTHORITY_KEY_ID_INFO

const CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_PARTIAL_CHAIN_LOGGING_FLAG = 2

const CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG = 1

const CERT_AUTH_ROOT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME = "EncodedCtl"

const CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME = "Flags"

const CERT_AUTH_ROOT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME = "LastSyncTime"

const CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH = "CERT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH"

const CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME = "CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME"

const CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME = "SyncDeltaTime"

const CERT_AUTH_ROOT_CAB_FILENAME = "authrootstl.cab"

const CERT_AUTH_ROOT_CERT_EXT = ".crt"

const CERT_AUTH_ROOT_CTL_FILENAME = "authroot.stl"

const CERT_AUTH_ROOT_CTL_FILENAME_A = "authroot.stl"

const CERT_AUTH_ROOT_SEQ_FILENAME = "authrootseq.txt"

const CERT_AUTH_ROOT_SHA256_HASH_PROP_ID = 98

const CERT_AUTO_ENROLL_PROP_ID = 21

const CERT_AUTO_ENROLL_RETRY_PROP_ID = 66

const CERT_AUTO_UPDATE_DISABLE_RANDOM_QUERY_STRING_FLAG = 4

const CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME = "RootDirUrl"

const CERT_AUTO_UPDATE_SYNC_FROM_DIR_URL_VALUE_NAME = "SyncFromDirUrl"

const CERT_BACKED_UP_PROP_ID = 69

type CERT_BASIC_CONSTRAINTS2_INFO = TCERT_BASIC_CONSTRAINTS2_INFO

type CERT_BASIC_CONSTRAINTS_INFO = TCERT_BASIC_CONSTRAINTS_INFO

type CERT_BIOMETRIC_DATA = TCERT_BIOMETRIC_DATA

type CERT_BIOMETRIC_EXT_INFO = TCERT_BIOMETRIC_EXT_INFO

const CERT_BIOMETRIC_OID_DATA_CHOICE = 2

const CERT_BIOMETRIC_PICTURE_TYPE = 0

const CERT_BIOMETRIC_PREDEFINED_DATA_CHOICE = 1

const CERT_BIOMETRIC_SIGNATURE_TYPE = 1

type CERT_BLOB = TCERT_BLOB

const CERT_BUNDLE_CERTIFICATE = 0

const CERT_BUNDLE_CRL = 1

const CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG = 2

const CERT_CA_DISABLE_CRL_PROP_ID = 82

const CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID = 81

const CERT_CA_SUBJECT_FLAG = 128

const CERT_CEP_PROP_ID = 87

type CERT_CHAIN = TCERT_CHAIN

const CERT_CHAIN_AUTO_CURRENT_USER = 1

const CERT_CHAIN_AUTO_FLAGS_VALUE_NAME = "AutoFlags"

const CERT_CHAIN_AUTO_FLUSH_DISABLE_FLAG = 1

const CERT_CHAIN_AUTO_FLUSH_FIRST_DELTA_SECONDS_DEFAULT = 300

const CERT_CHAIN_AUTO_FLUSH_FIRST_DELTA_SECONDS_VALUE_NAME = "AutoFlushFirstDeltaSeconds"

const CERT_CHAIN_AUTO_FLUSH_NEXT_DELTA_SECONDS_DEFAULT = 1800

const CERT_CHAIN_AUTO_FLUSH_NEXT_DELTA_SECONDS_VALUE_NAME = "AutoFlushNextDeltaSeconds"

const CERT_CHAIN_AUTO_HPKP_RULE_INFO = 8

const CERT_CHAIN_AUTO_IMPERSONATED = 3

const CERT_CHAIN_AUTO_LOCAL_MACHINE = 2

const CERT_CHAIN_AUTO_LOG_CREATE_FLAG = 2

const CERT_CHAIN_AUTO_LOG_FILE_NAME_VALUE_NAME = "AutoLogFileName"

const CERT_CHAIN_AUTO_LOG_FLAGS = 14

const CERT_CHAIN_AUTO_LOG_FLUSH_FLAG = 8

const CERT_CHAIN_AUTO_LOG_FREE_FLAG = 4

const CERT_CHAIN_AUTO_NETWORK_INFO = 6

const CERT_CHAIN_AUTO_PINRULE_INFO = 5

const CERT_CHAIN_AUTO_PROCESS_INFO = 4

const CERT_CHAIN_AUTO_SERIAL_LOCAL_MACHINE = 7

const CERT_CHAIN_CACHE_END_CERT = 1

const CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL = 4

const CERT_CHAIN_CACHE_RESYNC_FILETIME_VALUE_NAME = "ChainCacheResyncFiletime"

const CERT_CHAIN_CONFIG_REGPATH = "Software\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CertDllCreateCertificateChainEngine\\\\Config"

type CERT_CHAIN_CONTEXT = TCERT_CHAIN_CONTEXT

const CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_DEFAULT = 12

const CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_VALUE_NAME = "CRLValidityExtensionPeriod"

const CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_DEFAULT = 168

const CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_VALUE_NAME = "CrossCertDownloadIntervalHours"

const CERT_CHAIN_DEFAULT_CONFIG_SUBDIR = "Default"

const CERT_CHAIN_DISABLE_AIA = 8192

const CERT_CHAIN_DISABLE_AIA_URL_RETRIEVAL_VALUE_NAME = "DisableAIAUrlRetrieval"

const CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG = 65536

const CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE = 256

const CERT_CHAIN_DISABLE_AUTO_FLUSH_PROCESS_NAME_LIST_VALUE_NAME = "DisableAutoFlushProcessNameList"

const CERT_CHAIN_DISABLE_CA_NAME_CONSTRAINTS_VALUE_NAME = "DisableCANameConstraints"

const CERT_CHAIN_DISABLE_CODE_SIGNING_WEAK_FLAG = 4194304

const CERT_CHAIN_DISABLE_FILE_HASH_WEAK_FLAG = 4096

const CERT_CHAIN_DISABLE_FILE_HASH_WEAK_FLAGS = 12288

const CERT_CHAIN_DISABLE_MANDATORY_BASIC_CONSTRAINTS_VALUE_NAME = "DisableMandatoryBasicConstraints"

const CERT_CHAIN_DISABLE_MD2_MD4 = 4096

const CERT_CHAIN_DISABLE_MOTW_CODE_SIGNING_WEAK_FLAG = 8388608

const CERT_CHAIN_DISABLE_MOTW_FILE_HASH_WEAK_FLAG = 8192

const CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_HASH_WEAK_FLAG = 32768

const CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_WEAK_FLAG = 134217728

const CERT_CHAIN_DISABLE_MY_PEER_TRUST = 2048

const CERT_CHAIN_DISABLE_OPT_IN_SERVER_AUTH_WEAK_FLAG = 262144

const CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING = 64

const CERT_CHAIN_DISABLE_SERIAL_CHAIN_VALUE_NAME = "DisableSerialChain"

const CERT_CHAIN_DISABLE_SERVER_AUTH_WEAK_FLAG = 1048576

const CERT_CHAIN_DISABLE_SYNC_WITH_SSL_TIME_VALUE_NAME = "DisableSyncWithSslTime"

const CERT_CHAIN_DISABLE_TIMESTAMP_HASH_WEAK_FLAG = 16384

const CERT_CHAIN_DISABLE_TIMESTAMP_HASH_WEAK_FLAGS = 49152

const CERT_CHAIN_DISABLE_TIMESTAMP_WEAK_FLAG = 67108864

const CERT_CHAIN_DISABLE_UNSUPPORTED_CRITICAL_EXTENSIONS_VALUE_NAME = "DisableUnsupportedCriticalExtensions"

const CERT_CHAIN_DISABLE_WEAK_FLAGS = 215285760

type CERT_CHAIN_ELEMENT = TCERT_CHAIN_ELEMENT

const CERT_CHAIN_ENABLE_ALL_EKU_HYGIENE_FLAG = 131072

const CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE = 16

const CERT_CHAIN_ENABLE_CODE_SIGNING_HYGIENE_FLAG = 16777216

const CERT_CHAIN_ENABLE_HYGIENE_FLAGS = 857866240

const CERT_CHAIN_ENABLE_MD2_MD4_FLAG = 1

const CERT_CHAIN_ENABLE_MOTW_CODE_SIGNING_HYGIENE_FLAG = 33554432

const CERT_CHAIN_ENABLE_MOTW_TIMESTAMP_HYGIENE_FLAG = 536870912

const CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG = 8

const CERT_CHAIN_ENABLE_PEER_TRUST = 1024

const CERT_CHAIN_ENABLE_SERVER_AUTH_HYGIENE_FLAG = 2097152

const CERT_CHAIN_ENABLE_SHARE_STORE = 32

const CERT_CHAIN_ENABLE_TIMESTAMP_HYGIENE_FLAG = 268435456

const CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG = 4

const CERT_CHAIN_ENABLE_WEAK_RSA_ROOT_FLAG = 2

const CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG = 2147483648

const CERT_CHAIN_ENABLE_WEAK_SIGNATURE_FLAGS_VALUE_NAME = "EnableWeakSignatureFlags"

type CERT_CHAIN_ENGINE_CONFIG = TCERT_CHAIN_ENGINE_CONFIG

const CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG = 1

const CERT_CHAIN_FIND_BY_ISSUER = 1

const CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 32768

const CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 4

const CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 1

const CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 2

const CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 8

const CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 16384

type CERT_CHAIN_FIND_BY_ISSUER_PARA = TCERT_CHAIN_FIND_BY_ISSUER_PARA

type CERT_CHAIN_FIND_ISSUER_PARA = TCERT_CHAIN_FIND_ISSUER_PARA

const CERT_CHAIN_HAS_MOTW = 16384

const CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT = 5

const CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_VALUE_NAME = "MaxAIAUrlCountInCert"

const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT = 100000

const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME = "MaxAIAUrlRetrievalByteCount"

const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT = 10

const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_VALUE_NAME = "MaxAIAUrlRetrievalCertCount"

const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT = 3

const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_VALUE_NAME = "MaxAIAUrlRetrievalCountPerChain"

const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DEFAULT = 5

const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DISABLE = 4294967295

const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_VALUE_NAME = "MaxSslTimeUpdatedEventCount"

const CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_DEFAULT = 104857600

const CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME = "MaxUrlRetrievalByteCount"

const CERT_CHAIN_MIN_PUB_KEY_BIT_LENGTH_DISABLE = 4294967295

const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_DEFAULT = 1023

const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_DISABLE = 4294967295

const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_VALUE_NAME = "MinRsaPubKeyBitLength"

const CERT_CHAIN_MOTW_IGNORE_AFTER_TIME_WEAK_FLAG = 1073741824

const CERT_CHAIN_MOTW_WEAK_FLAGS = 1786773504

const CERT_CHAIN_OCSP_VALIDITY_SECONDS_DEFAULT = 43200

const CERT_CHAIN_OCSP_VALIDITY_SECONDS_VALUE_NAME = "OcspValiditySeconds"

const CERT_CHAIN_ONLY_ADDITIONAL_AND_AUTH_ROOT = 32768

const CERT_CHAIN_OPTIONS_VALUE_NAME = "Options"

const CERT_CHAIN_OPTION_DISABLE_AIA_URL_RETRIEVAL = 2

const CERT_CHAIN_OPTION_ENABLE_SIA_URL_RETRIEVAL = 4

const CERT_CHAIN_OPT_IN_WEAK_FLAGS = 262144

const CERT_CHAIN_OPT_IN_WEAK_SIGNATURE = 65536

type CERT_CHAIN_PARA = TCERT_CHAIN_PARA

const CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG = 32768

const CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG = 16

const CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS = 7

const CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS = 3840

const CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG = 1024

const CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG = 2

const CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG = 512

const CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG = 256

const CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG = 8

const CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG = 64

const CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG = 128

const CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG = 8192

const CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG = 4

const CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG = 1

const CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG = 4096

const CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG = 2048

const CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG = 32

type CERT_CHAIN_POLICY_PARA = TCERT_CHAIN_POLICY_PARA

const CERT_CHAIN_POLICY_SSL_F12_ERROR_LEVEL = 2

const CERT_CHAIN_POLICY_SSL_F12_NONE_CATEGORY = 0

const CERT_CHAIN_POLICY_SSL_F12_ROOT_PROGRAM_CATEGORY = 2

const CERT_CHAIN_POLICY_SSL_F12_SUCCESS_LEVEL = 0

const CERT_CHAIN_POLICY_SSL_F12_WARNING_LEVEL = 1

const CERT_CHAIN_POLICY_SSL_F12_WEAK_CRYPTO_CATEGORY = 1

const CERT_CHAIN_POLICY_SSL_KEY_PIN_MISMATCH_ERROR = -2

const CERT_CHAIN_POLICY_SSL_KEY_PIN_MISMATCH_WARNING = 2

const CERT_CHAIN_POLICY_SSL_KEY_PIN_MITM_ERROR = -1

const CERT_CHAIN_POLICY_SSL_KEY_PIN_MITM_WARNING = 1

const CERT_CHAIN_POLICY_SSL_KEY_PIN_SUCCESS = 0

type CERT_CHAIN_POLICY_STATUS = TCERT_CHAIN_POLICY_STATUS

const CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG = 16384

const CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS = 128

const CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT = 134217728

const CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY = 2147483648

const CERT_CHAIN_REVOCATION_CHECK_CHAIN = 536870912

const CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 1073741824

const CERT_CHAIN_REVOCATION_CHECK_END_CERT = 268435456

const CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT = 67108864

const CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT = 20000

const CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME = "ChainRevAccumulativeUrlRetrievalTimeoutMilliseconds"

const CERT_CHAIN_SERIAL_CHAIN_LOG_FILE_NAME_VALUE_NAME = "SerialChainLogFileName"

const CERT_CHAIN_SSL_HANDSHAKE_LOG_FILE_NAME_VALUE_NAME = "SslHandshakeLogFileName"

const CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG = 1

const CERT_CHAIN_THREAD_STORE_SYNC = 2

const CERT_CHAIN_TIMESTAMP_TIME = 512

const CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT = 15000

const CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME = "ChainUrlRetrievalTimeoutMilliseconds"

const CERT_CHAIN_USE_LOCAL_MACHINE_STORE = 8

const CERT_CHAIN_WEAK_AFTER_TIME_NAME = "AfterTime"

const CERT_CHAIN_WEAK_ALL_CONFIG_NAME = "All"

const CERT_CHAIN_WEAK_FILE_HASH_AFTER_TIME_NAME = "FileHashAfterTime"

const CERT_CHAIN_WEAK_FLAGS_NAME = "Flags"

const CERT_CHAIN_WEAK_HYGIENE_NAME = "Hygiene"

const CERT_CHAIN_WEAK_MIN_BIT_LENGTH_NAME = "MinBitLength"

const CERT_CHAIN_WEAK_PREFIX_NAME = "Weak"

const CERT_CHAIN_WEAK_RSA_PUB_KEY_TIME_DEFAULT = 129067776000000000

const CERT_CHAIN_WEAK_RSA_PUB_KEY_TIME_VALUE_NAME = "WeakRsaPubKeyTime"

const CERT_CHAIN_WEAK_SHA256_ALLOW_NAME = "Sha256Allow"

const CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME = "WeakSignatureLogDir"

const CERT_CHAIN_WEAK_THIRD_PARTY_CONFIG_NAME = "ThirdParty"

const CERT_CHAIN_WEAK_TIMESTAMP_HASH_AFTER_TIME_NAME = "TimestampHashAfterTime"

const CERT_CLOSE_STORE_CHECK_FLAG = 2

const CERT_CLOSE_STORE_FORCE_FLAG = 1

const CERT_CLR_DELETE_KEY_PROP_ID = 125

const CERT_COMPARE_ANY = 0

const CERT_COMPARE_ATTR = 3

const CERT_COMPARE_CERT_ID = 16

const CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17

const CERT_COMPARE_CTL_USAGE = 10

const CERT_COMPARE_ENHKEY_USAGE = 10

const CERT_COMPARE_EXISTING = 13

const CERT_COMPARE_HASH = 1

const CERT_COMPARE_HASH_STR = 20

const CERT_COMPARE_HAS_PRIVATE_KEY = 21

const CERT_COMPARE_ISSUER_OF = 12

const CERT_COMPARE_KEY_IDENTIFIER = 15

const CERT_COMPARE_KEY_SPEC = 9

const CERT_COMPARE_MASK = 65535

const CERT_COMPARE_MD5_HASH = 4

const CERT_COMPARE_NAME = 2

const CERT_COMPARE_NAME_STR_A = 7

const CERT_COMPARE_NAME_STR_W = 8

const CERT_COMPARE_PROPERTY = 5

const CERT_COMPARE_PUBKEY_MD5_HASH = 18

const CERT_COMPARE_PUBLIC_KEY = 6

const CERT_COMPARE_SHA1_HASH = 1

const CERT_COMPARE_SHIFT = 16

const CERT_COMPARE_SIGNATURE_HASH = 14

const CERT_COMPARE_SUBJECT_CERT = 11

const CERT_COMPARE_SUBJECT_INFO_ACCESS = 19

type CERT_CONTEXT = TCERT_CONTEXT

const CERT_CONTEXT_REVOCATION_TYPE = 1

const CERT_CREATE_CONTEXT_NOCOPY_FLAG = 1

const CERT_CREATE_CONTEXT_NO_ENTRY_FLAG = 8

const CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG = 4

type CERT_CREATE_CONTEXT_PARA = TCERT_CREATE_CONTEXT_PARA

const CERT_CREATE_CONTEXT_SORTED_FLAG = 2

const CERT_CREATE_SELFSIGN_NO_KEY_INFO = 2

const CERT_CREATE_SELFSIGN_NO_SIGN = 1

type CERT_CRL_CONTEXT_PAIR = TCERT_CRL_CONTEXT_PAIR

const CERT_CRL_SIGN_KEY_USAGE = 2

const CERT_CROSS_CERT_DIST_POINTS_PROP_ID = 23

const CERT_CTL_USAGE_PROP_ID = 9

const CERT_DATA_ENCIPHERMENT_KEY_USAGE = 16

const CERT_DATE_STAMP_PROP_ID = 27

const CERT_DECIPHER_ONLY_KEY_USAGE = 128

const CERT_DEFAULT_OID_PUBLIC_KEY_SIGN = "szOID_RSA_RSA"

const CERT_DEFAULT_OID_PUBLIC_KEY_XCHG = "szOID_RSA_RSA"

const CERT_DESCRIPTION_PROP_ID = 13

type CERT_DH_PARAMETERS = TCERT_DH_PARAMETERS

const CERT_DIGITAL_SIGNATURE_KEY_USAGE = 128

const CERT_DISABLE_PIN_RULES_AUTO_UPDATE_VALUE_NAME = "DisablePinRulesAutoUpdate"

const CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME = "DisableRootAutoUpdate"

const CERT_DISALLOWED_CERT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME = "DisallowedCertEncodedCtl"

const CERT_DISALLOWED_CERT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME = "DisallowedCertLastSyncTime"

const CERT_DISALLOWED_CERT_AUTO_UPDATE_LIST_IDENTIFIER = "DisallowedCert_AutoUpdate_1"

const CERT_DISALLOWED_CERT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME = "DisallowedCertSyncDeltaTime"

const CERT_DISALLOWED_CERT_CAB_FILENAME = "disallowedcertstl.cab"

const CERT_DISALLOWED_CERT_CTL_FILENAME = "disallowedcert.stl"

const CERT_DISALLOWED_CERT_CTL_FILENAME_A = "disallowedcert.stl"

const CERT_DISALLOWED_ENHKEY_USAGE_PROP_ID = 122

const CERT_DISALLOWED_FILETIME_PROP_ID = 104

type CERT_DSS_PARAMETERS = TCERT_DSS_PARAMETERS

const CERT_DSS_R_LEN = 20

const CERT_DSS_SIGNATURE_LEN = 40

const CERT_DSS_S_LEN = 20

type CERT_ECC_SIGNATURE = TCERT_ECC_SIGNATURE

const CERT_EFSBLOB_VALUE_NAME = "EFSBlob"

const CERT_EFS_PROP_ID = 17

const CERT_ENABLE_DISALLOWED_CERT_AUTO_UPDATE_VALUE_NAME = "EnableDisallowedCertAutoUpdate"

const CERT_ENCIPHER_ONLY_KEY_USAGE = 1

const CERT_ENCODING_TYPE_MASK = 65535

const CERT_END_ENTITY_SUBJECT_FLAG = 64

type CERT_ENHKEY_USAGE = TCERT_ENHKEY_USAGE

const CERT_ENHKEY_USAGE_PROP_ID = 9

const CERT_ENROLLMENT_PROP_ID = 26

const CERT_EXCLUDED_SUBTREE_BIT = 2147483648

const CERT_EXTENDED_ERROR_INFO_PROP_ID = 30

type CERT_EXTENSION = TCERT_EXTENSION

type CERT_EXTENSIONS = TCERT_EXTENSIONS

const CERT_FILE_HASH_USE_TYPE = 1

const CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 65536

const CERT_FIND_ANY = 0

const CERT_FIND_CERT_ID = 1048576

const CERT_FIND_CROSS_CERT_DIST_POINTS = 1114112

const CERT_FIND_CTL_USAGE = 655360

const CERT_FIND_ENHKEY_USAGE = 655360

const CERT_FIND_EXISTING = 851968

const CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG = 2

const CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 2

const CERT_FIND_HASH = 65536

const CERT_FIND_HASH_STR = 1310720

const CERT_FIND_HAS_PRIVATE_KEY = 1376256

const CERT_FIND_ISSUER_ATTR = 196612

const CERT_FIND_ISSUER_NAME = 131076

const CERT_FIND_ISSUER_OF = 786432

const CERT_FIND_ISSUER_STR = 524292

const CERT_FIND_ISSUER_STR_A = 458756

const CERT_FIND_ISSUER_STR_W = 524292

const CERT_FIND_KEY_IDENTIFIER = 983040

const CERT_FIND_KEY_SPEC = 589824

const CERT_FIND_MD5_HASH = 262144

const CERT_FIND_NO_CTL_USAGE_FLAG = 8

const CERT_FIND_NO_ENHKEY_USAGE_FLAG = 8

const CERT_FIND_OPTIONAL_CTL_USAGE_FLAG = 1

const CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 1

const CERT_FIND_OR_CTL_USAGE_FLAG = 16

const CERT_FIND_OR_ENHKEY_USAGE_FLAG = 16

const CERT_FIND_PROPERTY = 327680

const CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG = 4

const CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 4

const CERT_FIND_PUBKEY_MD5_HASH = 1179648

const CERT_FIND_PUBLIC_KEY = 393216

const CERT_FIND_SHA1_HASH = 65536

const CERT_FIND_SIGNATURE_HASH = 917504

const CERT_FIND_SUBJECT_ATTR = 196615

const CERT_FIND_SUBJECT_CERT = 720896

const CERT_FIND_SUBJECT_INFO_ACCESS = 1245184

const CERT_FIND_SUBJECT_NAME = 131079

const CERT_FIND_SUBJECT_STR = 524295

const CERT_FIND_SUBJECT_STR_A = 458759

const CERT_FIND_SUBJECT_STR_W = 524295

const CERT_FIND_VALID_CTL_USAGE_FLAG = 32

const CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 32

const CERT_FIRST_RESERVED_PROP_ID = 107

const CERT_FIRST_USER_PROP_ID = 32768

type CERT_FORTEZZA_DATA_PROP = TCERT_FORTEZZA_DATA_PROP

const CERT_FORTEZZA_DATA_PROP_ID = 18

const CERT_FRIENDLY_NAME_PROP_ID = 11

type CERT_GENERAL_SUBTREE = TCERT_GENERAL_SUBTREE

const CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH = "Software\\\\Policies\\\\Microsoft\\\\SystemCertificates"

type CERT_HASHED_URL = TCERT_HASHED_URL

const CERT_HASH_PROP_ID = 3

const CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID = 79

const CERT_HCRYPTPROV_TRANSFER_PROP_ID = 100

type CERT_ID = TCERT_ID

const CERT_ID_ISSUER_SERIAL_NUMBER = 1

const CERT_ID_KEY_IDENTIFIER = 2

const CERT_ID_SHA1_HASH = 3

const CERT_IE30_RESERVED_PROP_ID = 7

const CERT_IE_DIRTY_FLAGS_REGPATH = "Software\\\\Microsoft\\\\Cryptography\\\\IEDirtyFlags"

type CERT_INFO = TCERT_INFO

const CERT_INFO_EXTENSION_FLAG = 11

const CERT_INFO_ISSUER_FLAG = 4

const CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9

const CERT_INFO_NOT_AFTER_FLAG = 6

const CERT_INFO_NOT_BEFORE_FLAG = 5

const CERT_INFO_SERIAL_NUMBER_FLAG = 2

const CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3

const CERT_INFO_SUBJECT_FLAG = 7

const CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8

const CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10

const CERT_INFO_VERSION_FLAG = 1

const CERT_ISOLATED_KEY_PROP_ID = 118

const CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID = 96

const CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID = 95

const CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID = 24

const CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID = 94

type CERT_ISSUER_SERIAL_NUMBER = TCERT_ISSUER_SERIAL_NUMBER

const CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = 28

type CERT_KEYGEN_REQUEST_INFO = TCERT_KEYGEN_REQUEST_INFO

const CERT_KEYGEN_REQUEST_V1 = 0

const CERT_KEY_AGREEMENT_KEY_USAGE = 8

type CERT_KEY_ATTRIBUTES_INFO = TCERT_KEY_ATTRIBUTES_INFO

const CERT_KEY_CERT_SIGN_KEY_USAGE = 4

const CERT_KEY_CLASSIFICATION_PROP_ID = 120

type CERT_KEY_CONTEXT = TCERT_KEY_CONTEXT

const CERT_KEY_CONTEXT_PROP_ID = 5

const CERT_KEY_ENCIPHERMENT_KEY_USAGE = 32

const CERT_KEY_IDENTIFIER_PROP_ID = 20

const CERT_KEY_PROV_HANDLE_PROP_ID = 1

const CERT_KEY_PROV_INFO_PROP_ID = 2

const CERT_KEY_REPAIR_ATTEMPTED_PROP_ID = 103

const CERT_KEY_SPEC_PROP_ID = 6

type CERT_KEY_USAGE_RESTRICTION_INFO = TCERT_KEY_USAGE_RESTRICTION_INFO

const CERT_LAST_RESERVED_PROP_ID = 32767

const CERT_LAST_USER_PROP_ID = 65535

const CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 131072

const CERT_LDAP_STORE_OPENED_FLAG = 262144

type CERT_LDAP_STORE_OPENED_PARA = TCERT_LDAP_STORE_OPENED_PARA

const CERT_LDAP_STORE_SIGN_FLAG = 65536

const CERT_LDAP_STORE_UNBIND_FLAG = 524288

const CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH = "Software\\\\Microsoft\\\\SystemCertificates"

type CERT_LOGOTYPE_AUDIO = TCERT_LOGOTYPE_AUDIO

type CERT_LOGOTYPE_AUDIO_INFO = TCERT_LOGOTYPE_AUDIO_INFO

const CERT_LOGOTYPE_BITS_IMAGE_RESOLUTION_CHOICE = 1

const CERT_LOGOTYPE_COLOR_IMAGE_INFO_CHOICE = 2

type CERT_LOGOTYPE_DATA = TCERT_LOGOTYPE_DATA

type CERT_LOGOTYPE_DETAILS = TCERT_LOGOTYPE_DETAILS

const CERT_LOGOTYPE_DIRECT_INFO_CHOICE = 1

type CERT_LOGOTYPE_EXT_INFO = TCERT_LOGOTYPE_EXT_INFO

const CERT_LOGOTYPE_GRAY_SCALE_IMAGE_INFO_CHOICE = 1

type CERT_LOGOTYPE_IMAGE = TCERT_LOGOTYPE_IMAGE

type CERT_LOGOTYPE_IMAGE_INFO = TCERT_LOGOTYPE_IMAGE_INFO

const CERT_LOGOTYPE_INDIRECT_INFO_CHOICE = 2

type CERT_LOGOTYPE_INFO = TCERT_LOGOTYPE_INFO

const CERT_LOGOTYPE_NO_IMAGE_RESOLUTION_CHOICE = 0

type CERT_LOGOTYPE_REFERENCE = TCERT_LOGOTYPE_REFERENCE

const CERT_LOGOTYPE_TABLE_SIZE_IMAGE_RESOLUTION_CHOICE = 2

const CERT_MAX_ASN_ENCODED_DSS_SIGNATURE_LEN = 48

const CERT_MD5_HASH_PROP_ID = 4

const CERT_NAME_ATTR_TYPE = 3

type CERT_NAME_BLOB = TCERT_NAME_BLOB

type CERT_NAME_CONSTRAINTS_INFO = TCERT_NAME_CONSTRAINTS_INFO

const CERT_NAME_DISABLE_IE4_UTF8_FLAG = 65536

const CERT_NAME_DNS_TYPE = 6

const CERT_NAME_EMAIL_TYPE = 1

const CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5

type CERT_NAME_INFO = TCERT_NAME_INFO

const CERT_NAME_ISSUER_FLAG = 1

const CERT_NAME_RDN_TYPE = 2

const CERT_NAME_SEARCH_ALL_NAMES_FLAG = 2

const CERT_NAME_SIMPLE_DISPLAY_TYPE = 4

const CERT_NAME_STR_COMMA_FLAG = 67108864

const CERT_NAME_STR_CRLF_FLAG = 134217728

const CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG = 65536

const CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG = 1048576

const CERT_NAME_STR_ENABLE_PUNYCODE_FLAG = 2097152

const CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG = 131072

const CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG = 262144

const CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG = 524288

const CERT_NAME_STR_FORWARD_FLAG = 16777216

const CERT_NAME_STR_NO_PLUS_FLAG = 536870912

const CERT_NAME_STR_NO_QUOTING_FLAG = 268435456

const CERT_NAME_STR_REVERSE_FLAG = 33554432

const CERT_NAME_STR_SEMICOLON_FLAG = 1073741824

const CERT_NAME_UPN_TYPE = 8

const CERT_NAME_URL_TYPE = 7

type CERT_NAME_VALUE = TCERT_NAME_VALUE

const CERT_NCRYPT_KEY_HANDLE_PROP_ID = 78

const CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID = 99

const CERT_NCRYPT_KEY_SPEC = 4294967295

const CERT_NEW_KEY_PROP_ID = 74

const CERT_NEXT_UPDATE_LOCATION_PROP_ID = 10

const CERT_NONCOMPLIANT_ROOT_URL_PROP_ID = 123

const CERT_NON_REPUDIATION_KEY_USAGE = 64

const CERT_NOT_BEFORE_ENHKEY_USAGE_PROP_ID = 127

const CERT_NOT_BEFORE_FILETIME_PROP_ID = 126

const CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID = 77

const CERT_NO_EXPIRE_NOTIFICATION_PROP_ID = 97

const CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH = "SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Setup\\\\OC Manager\\\\Subcomponents"

const CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME = "RootAutoUpdate"

const CERT_OCSP_CACHE_PREFIX_PROP_ID = 75

const CERT_OCSP_MUST_STAPLE_PROP_ID = 121

const CERT_OCSP_RESPONSE_PROP_ID = 70

const CERT_OFFLINE_CRL_SIGN_KEY_USAGE = 2

const CERT_OID_NAME_STR = 2

type CERT_OR_CRL_BLOB = TCERT_OR_CRL_BLOB

type CERT_OR_CRL_BUNDLE = TCERT_OR_CRL_BUNDLE

type CERT_OTHER_LOGOTYPE_INFO = TCERT_OTHER_LOGOTYPE_INFO

type CERT_OTHER_NAME = TCERT_OTHER_NAME

type CERT_PAIR = TCERT_PAIR

const CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG = 1

const CERT_PHYSICAL_STORE_AUTH_ROOT_NAME = ".AuthRoot"

const CERT_PHYSICAL_STORE_DEFAULT_NAME = ".Default"

const CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME = ".UserCertificate"

const CERT_PHYSICAL_STORE_ENTERPRISE_NAME = ".Enterprise"

const CERT_PHYSICAL_STORE_GROUP_POLICY_NAME = ".GroupPolicy"

type CERT_PHYSICAL_STORE_INFO = TCERT_PHYSICAL_STORE_INFO

const CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG = 8

const CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME = ".LocalMachineGroupPolicy"

const CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME = ".LocalMachine"

const CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG = 2

const CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG = 1

const CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG = 4

const CERT_PHYSICAL_STORE_SMART_CARD_NAME = ".SmartCard"

const CERT_PIN_RULES_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME = "PinRulesEncodedCtl"

const CERT_PIN_RULES_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME = "PinRulesLastSyncTime"

const CERT_PIN_RULES_AUTO_UPDATE_LIST_IDENTIFIER = "PinRules_AutoUpdate_1"

const CERT_PIN_RULES_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME = "PinRulesSyncDeltaTime"

const CERT_PIN_RULES_CAB_FILENAME = "pinrulesstl.cab"

const CERT_PIN_RULES_CTL_FILENAME = "pinrules.stl"

const CERT_PIN_RULES_CTL_FILENAME_A = "pinrules.stl"

const CERT_PIN_SHA256_HASH_PROP_ID = 124

type CERT_POLICIES_INFO = TCERT_POLICIES_INFO

type CERT_POLICY95_QUALIFIER1 = TCERT_POLICY95_QUALIFIER1

type CERT_POLICY_CONSTRAINTS_INFO = TCERT_POLICY_CONSTRAINTS_INFO

type CERT_POLICY_ID = TCERT_POLICY_ID

type CERT_POLICY_INFO = TCERT_POLICY_INFO

type CERT_POLICY_MAPPING = TCERT_POLICY_MAPPING

type CERT_POLICY_MAPPINGS_INFO = TCERT_POLICY_MAPPINGS_INFO

type CERT_POLICY_QUALIFIER_INFO = TCERT_POLICY_QUALIFIER_INFO

type CERT_POLICY_QUALIFIER_NOTICE_REFERENCE = TCERT_POLICY_QUALIFIER_NOTICE_REFERENCE

type CERT_POLICY_QUALIFIER_USER_NOTICE = TCERT_POLICY_QUALIFIER_USER_NOTICE

type CERT_PRIVATE_KEY_VALIDITY = TCERT_PRIVATE_KEY_VALIDITY

const CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG = 1

const CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG = 8

const CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG = 32

const CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG = 16

const CERT_PROT_ROOT_DISABLE_PEER_TRUST = 65536

const CERT_PROT_ROOT_FLAGS_VALUE_NAME = "Flags"

const CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG = 2

const CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG = 4

const CERT_PROT_ROOT_ONLY_LM_GPT_FLAG = 8

const CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME = "PeerUsages"

const CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME_A = "PeerUsages"

const CERT_PUBKEY_ALG_PARA_PROP_ID = 22

const CERT_PUBKEY_HASH_RESERVED_PROP_ID = 8

type CERT_PUBLIC_KEY_INFO = TCERT_PUBLIC_KEY_INFO

const CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID = 93

const CERT_PVK_FILE_PROP_ID = 12

type CERT_QC_STATEMENT = TCERT_QC_STATEMENT

type CERT_QC_STATEMENTS_EXT_INFO = TCERT_QC_STATEMENTS_EXT_INFO

const CERT_QUERY_CONTENT_CERT = 1

const CERT_QUERY_CONTENT_CERT_PAIR = 13

const CERT_QUERY_CONTENT_CRL = 3

const CERT_QUERY_CONTENT_CTL = 2

const CERT_QUERY_CONTENT_FLAG_ALL = 16382

const CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT = 818

const CERT_QUERY_CONTENT_FLAG_CERT = 2

const CERT_QUERY_CONTENT_FLAG_CERT_PAIR = 8192

const CERT_QUERY_CONTENT_FLAG_CRL = 8

const CERT_QUERY_CONTENT_FLAG_CTL = 4

const CERT_QUERY_CONTENT_FLAG_PFX = 4096

const CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD = 16384

const CERT_QUERY_CONTENT_FLAG_PKCS10 = 2048

const CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = 256

const CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = 1024

const CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = 512

const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = 32

const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = 128

const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = 64

const CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = 16

const CERT_QUERY_CONTENT_PFX = 12

const CERT_QUERY_CONTENT_PFX_AND_LOAD = 14

const CERT_QUERY_CONTENT_PKCS10 = 11

const CERT_QUERY_CONTENT_PKCS7_SIGNED = 8

const CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = 10

const CERT_QUERY_CONTENT_PKCS7_UNSIGNED = 9

const CERT_QUERY_CONTENT_SERIALIZED_CERT = 5

const CERT_QUERY_CONTENT_SERIALIZED_CRL = 7

const CERT_QUERY_CONTENT_SERIALIZED_CTL = 6

const CERT_QUERY_CONTENT_SERIALIZED_STORE = 4

const CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = 3

const CERT_QUERY_FORMAT_BASE64_ENCODED = 2

const CERT_QUERY_FORMAT_BINARY = 1

const CERT_QUERY_FORMAT_FLAG_ALL = 14

const CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = 8

const CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = 4

const CERT_QUERY_FORMAT_FLAG_BINARY = 2

const CERT_QUERY_OBJECT_BLOB = 2

const CERT_QUERY_OBJECT_FILE = 1

type CERT_RDN = TCERT_RDN

const CERT_RDN_ANY_TYPE = 0

type CERT_RDN_ATTR = TCERT_RDN_ATTR

const CERT_RDN_BMP_STRING = 12

const CERT_RDN_DISABLE_CHECK_TYPE_FLAG = 1073741824

const CERT_RDN_DISABLE_IE4_UTF8_FLAG = 16777216

const CERT_RDN_ENABLE_PUNYCODE_FLAG = 33554432

const CERT_RDN_ENABLE_T61_UNICODE_FLAG = 2147483648

const CERT_RDN_ENABLE_UTF8_UNICODE_FLAG = 536870912

const CERT_RDN_ENCODED_BLOB = 1

const CERT_RDN_FLAGS_MASK = 4278190080

const CERT_RDN_FORCE_UTF8_UNICODE_FLAG = 268435456

const CERT_RDN_GENERAL_STRING = 10

const CERT_RDN_GRAPHIC_STRING = 8

const CERT_RDN_IA5_STRING = 7

const CERT_RDN_INT4_STRING = 11

const CERT_RDN_ISO646_STRING = 9

const CERT_RDN_NUMERIC_STRING = 3

const CERT_RDN_OCTET_STRING = 2

const CERT_RDN_PRINTABLE_STRING = 4

const CERT_RDN_T61_STRING = 5

const CERT_RDN_TELETEX_STRING = 5

const CERT_RDN_TYPE_MASK = 255

const CERT_RDN_UNICODE_STRING = 12

const CERT_RDN_UNIVERSAL_STRING = 11

const CERT_RDN_UTF8_STRING = 13

type CERT_RDN_VALUE_BLOB = TCERT_RDN_VALUE_BLOB

const CERT_RDN_VIDEOTEX_STRING = 6

const CERT_RDN_VISIBLE_STRING = 9

const CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 2147483648

type CERT_REGISTRY_STORE_CLIENT_GPT_PARA = TCERT_REGISTRY_STORE_CLIENT_GPT_PARA

const CERT_REGISTRY_STORE_EXTERNAL_FLAG = 1048576

const CERT_REGISTRY_STORE_LM_GPT_FLAG = 16777216

const CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 524288

const CERT_REGISTRY_STORE_REMOTE_FLAG = 65536

const CERT_REGISTRY_STORE_ROAMING_FLAG = 262144

type CERT_REGISTRY_STORE_ROAMING_PARA = TCERT_REGISTRY_STORE_ROAMING_PARA

const CERT_REGISTRY_STORE_SERIALIZED_FLAG = 131072

const CERT_RENEWAL_PROP_ID = 64

type CERT_REQUEST_INFO = TCERT_REQUEST_INFO

const CERT_REQUEST_ORIGINATOR_PROP_ID = 71

const CERT_REQUEST_V1 = 0

const CERT_RETR_BEHAVIOR_FILE_VALUE_NAME = "AllowFileUrlScheme"

const CERT_RETR_BEHAVIOR_INET_AUTH_VALUE_NAME = "EnableInetUnknownAuth"

const CERT_RETR_BEHAVIOR_INET_STATUS_VALUE_NAME = "EnableInetLocal"

const CERT_RETR_BEHAVIOR_LDAP_VALUE_NAME = "DisableLDAPSignAndEncrypt"

type CERT_REVOCATION_CHAIN_PARA = TCERT_REVOCATION_CHAIN_PARA

type CERT_REVOCATION_CRL_INFO = TCERT_REVOCATION_CRL_INFO

type CERT_REVOCATION_INFO = TCERT_REVOCATION_INFO

type CERT_REVOCATION_PARA = TCERT_REVOCATION_PARA

type CERT_REVOCATION_STATUS = TCERT_REVOCATION_STATUS

const CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID = 83

const CERT_ROOT_PROGRAM_CHAIN_POLICIES_PROP_ID = 105

const CERT_ROOT_PROGRAM_FLAG_ADDRESS = 8

const CERT_ROOT_PROGRAM_FLAG_LSC = 64

const CERT_ROOT_PROGRAM_FLAG_ORG = 128

const CERT_ROOT_PROGRAM_FLAG_OU = 16

const CERT_ROOT_PROGRAM_FLAG_SUBJECT_LOGO = 32

const CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID = 84

const CERT_RSA_PUBLIC_KEY_OBJID = "szOID_RSA_RSA"

const CERT_SCARD_PIN_ID_PROP_ID = 90

const CERT_SCARD_PIN_INFO_PROP_ID = 91

const CERT_SCEP_CA_CERT_PROP_ID = 111

const CERT_SCEP_ENCRYPT_HASH_CNG_ALG_PROP_ID = 114

const CERT_SCEP_FLAGS_PROP_ID = 115

const CERT_SCEP_GUID_PROP_ID = 116

const CERT_SCEP_NONCE_PROP_ID = 113

const CERT_SCEP_RA_ENCRYPTION_CERT_PROP_ID = 110

const CERT_SCEP_RA_SIGNATURE_CERT_PROP_ID = 109

const CERT_SCEP_SERVER_CERTS_PROP_ID = 108

const CERT_SCEP_SIGNER_CERT_PROP_ID = 112

const CERT_SELECT_ALLOW_DUPLICATES = 128

const CERT_SELECT_ALLOW_EXPIRED = 1

const CERT_SELECT_BY_ENHKEY_USAGE = 1

const CERT_SELECT_BY_EXTENSION = 5

const CERT_SELECT_BY_FRIENDLYNAME = 13

const CERT_SELECT_BY_ISSUER_ATTR = 7

const CERT_SELECT_BY_ISSUER_DISPLAYNAME = 12

const CERT_SELECT_BY_ISSUER_NAME = 9

const CERT_SELECT_BY_KEY_USAGE = 2

const CERT_SELECT_BY_POLICY_OID = 3

const CERT_SELECT_BY_PROV_NAME = 4

const CERT_SELECT_BY_PUBLIC_KEY = 10

const CERT_SELECT_BY_SUBJECT_ATTR = 8

const CERT_SELECT_BY_SUBJECT_HOST_NAME = 6

const CERT_SELECT_BY_THUMBPRINT = 14

const CERT_SELECT_BY_TLS_SIGNATURES = 11

type CERT_SELECT_CHAIN_PARA = TCERT_SELECT_CHAIN_PARA

type CERT_SELECT_CRITERIA = TCERT_SELECT_CRITERIA

const CERT_SELECT_DISALLOW_SELFSIGNED = 4

const CERT_SELECT_HARDWARE_ONLY = 64

const CERT_SELECT_HAS_KEY_FOR_KEY_EXCHANGE = 32

const CERT_SELECT_HAS_KEY_FOR_SIGNATURE = 16

const CERT_SELECT_HAS_PRIVATE_KEY = 8

const CERT_SELECT_IGNORE_AUTOSELECT = 256

const CERT_SELECT_LAST = 11

const CERT_SELECT_MAX = 33

const CERT_SELECT_MAX_PARA = 500

const CERT_SELECT_TRUSTED_ROOT = 2

const CERT_SEND_AS_TRUSTED_ISSUER_PROP_ID = 102

const CERT_SERIALIZABLE_KEY_CONTEXT_PROP_ID = 117

const CERT_SERIAL_CHAIN_PROP_ID = 119

const CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG = 1

type CERT_SERVER_OCSP_RESPONSE_CONTEXT = TCERT_SERVER_OCSP_RESPONSE_CONTEXT

type CERT_SERVER_OCSP_RESPONSE_OPEN_PARA = TCERT_SERVER_OCSP_RESPONSE_OPEN_PARA

const CERT_SERVER_OCSP_RESPONSE_OPEN_PARA_READ_FLAG = 1

const CERT_SERVER_OCSP_RESPONSE_OPEN_PARA_WRITE_FLAG = 2

const CERT_SET_KEY_CONTEXT_PROP_ID = 1

const CERT_SET_KEY_PROV_HANDLE_PROP_ID = 1

const CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG = 2147483648

const CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG = 1073741824

const CERT_SHA1_HASH_PROP_ID = 3

const CERT_SHA256_HASH_PROP_ID = 107

const CERT_SIGNATURE_HASH_PROP_ID = 15

type CERT_SIGNED_CONTENT_INFO = TCERT_SIGNED_CONTENT_INFO

const CERT_SIGN_HASH_CNG_ALG_PROP_ID = 89

type CERT_SIMPLE_CHAIN = TCERT_SIMPLE_CHAIN

const CERT_SIMPLE_NAME_STR = 1

const CERT_SMART_CARD_DATA_PROP_ID = 16

const CERT_SMART_CARD_READER_NON_REMOVABLE_PROP_ID = 106

const CERT_SMART_CARD_READER_PROP_ID = 101

const CERT_SMART_CARD_ROOT_INFO_PROP_ID = 76

const CERT_SOURCE_LOCATION_PROP_ID = 72

const CERT_SOURCE_URL_PROP_ID = 73

const CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT = 14400

const CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME = "SrvOcspRespMaxBeforeNextUpdateSeconds"

const CERT_SRV_OCSP_RESP_MAX_SYNC_CERT_FILE_SECONDS_DEFAULT = 3600

const CERT_SRV_OCSP_RESP_MAX_SYNC_CERT_FILE_SECONDS_VALUE_NAME = "SrvOcspRespMaxSyncCertFileSeconds"

const CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT = 60

const CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME = "SrvOcspRespMinAfterNextUpdateSeconds"

const CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT = 120

const CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME = "SrvOcspRespMinBeforeNextUpdateSeconds"

const CERT_SRV_OCSP_RESP_MIN_SYNC_CERT_FILE_SECONDS_DEFAULT = 5

const CERT_SRV_OCSP_RESP_MIN_SYNC_CERT_FILE_SECONDS_VALUE_NAME = "SrvOcspRespMinSyncCertFileSeconds"

const CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT = 600

const CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME = "SrvOcspRespMinValiditySeconds"

const CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT = 15000

const CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME = "SrvOcspRespUrlRetrievalTimeoutMilliseconds"

const CERT_STORE_ADD_ALWAYS = 4

const CERT_STORE_ADD_NEW = 1

const CERT_STORE_ADD_NEWER = 6

const CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7

const CERT_STORE_ADD_REPLACE_EXISTING = 3

const CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5

const CERT_STORE_ADD_USE_EXISTING = 2

const CERT_STORE_ALL_CONTEXT_FLAG = 18446744073709551615

const CERT_STORE_BACKUP_RESTORE_FLAG = 2048

const CERT_STORE_BASE_CRL_FLAG = 256

const CERT_STORE_CERTIFICATE_CONTEXT = 1

const CERT_STORE_CERTIFICATE_CONTEXT_FLAG = 2

const CERT_STORE_CREATE_NEW_FLAG = 8192

const CERT_STORE_CRL_CONTEXT = 2

const CERT_STORE_CRL_CONTEXT_FLAG = 4

const CERT_STORE_CTL_CONTEXT = 3

const CERT_STORE_CTL_CONTEXT_FLAG = 8

const CERT_STORE_CTRL_AUTO_RESYNC = 4

const CERT_STORE_CTRL_CANCEL_NOTIFY = 5

const CERT_STORE_CTRL_COMMIT = 3

const CERT_STORE_CTRL_COMMIT_CLEAR_FLAG = 2

const CERT_STORE_CTRL_COMMIT_FORCE_FLAG = 1

const CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG = 1

const CERT_STORE_CTRL_NOTIFY_CHANGE = 2

const CERT_STORE_CTRL_RESYNC = 1

const CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 4

const CERT_STORE_DELETE_FLAG = 16

const CERT_STORE_DELTA_CRL_FLAG = 512

const CERT_STORE_ENUM_ARCHIVED_FLAG = 512

const CERT_STORE_LOCALIZED_NAME_PROP_ID = 4096

const CERT_STORE_MANIFOLD_FLAG = 256

const CERT_STORE_MAXIMUM_ALLOWED_FLAG = 4096

const CERT_STORE_NO_CRL_FLAG = 65536

const CERT_STORE_NO_CRYPT_RELEASE_FLAG = 1

const CERT_STORE_NO_ISSUER_FLAG = 131072

const CERT_STORE_OPEN_EXISTING_FLAG = 16384

const CERT_STORE_PROV_CLOSE_FUNC = 0

const CERT_STORE_PROV_CONTROL_FUNC = 13

const CERT_STORE_PROV_DELETED_FLAG = 2

const CERT_STORE_PROV_DELETE_CERT_FUNC = 3

const CERT_STORE_PROV_DELETE_CRL_FUNC = 7

const CERT_STORE_PROV_DELETE_CTL_FUNC = 11

const CERT_STORE_PROV_EXTERNAL_FLAG = 1

const CERT_STORE_PROV_FILENAME = "CERT_STORE_PROV_FILENAME_W"

const CERT_STORE_PROV_FIND_CERT_FUNC = 14

const CERT_STORE_PROV_FIND_CRL_FUNC = 17

const CERT_STORE_PROV_FIND_CTL_FUNC = 20

type CERT_STORE_PROV_FIND_INFO = TCERT_STORE_PROV_FIND_INFO

const CERT_STORE_PROV_FREE_FIND_CERT_FUNC = 15

const CERT_STORE_PROV_FREE_FIND_CRL_FUNC = 18

const CERT_STORE_PROV_FREE_FIND_CTL_FUNC = 21

const CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC = 16

const CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC = 19

const CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC = 22

const CERT_STORE_PROV_GP_SYSTEM_STORE_FLAG = 32

type CERT_STORE_PROV_INFO = TCERT_STORE_PROV_INFO

const CERT_STORE_PROV_LDAP = "CERT_STORE_PROV_LDAP_W"

const CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG = 16

const CERT_STORE_PROV_NO_PERSIST_FLAG = 4

const CERT_STORE_PROV_PHYSICAL = "CERT_STORE_PROV_PHYSICAL_W"

const CERT_STORE_PROV_READ_CERT_FUNC = 1

const CERT_STORE_PROV_READ_CRL_FUNC = 5

const CERT_STORE_PROV_READ_CTL_FUNC = 9

const CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC = 4

const CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC = 8

const CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC = 12

const CERT_STORE_PROV_SHARED_USER_FLAG = 64

const CERT_STORE_PROV_SMART_CARD = "CERT_STORE_PROV_SMART_CARD_W"

const CERT_STORE_PROV_SYSTEM = "CERT_STORE_PROV_SYSTEM_W"

const CERT_STORE_PROV_SYSTEM_REGISTRY = "CERT_STORE_PROV_SYSTEM_REGISTRY_W"

const CERT_STORE_PROV_SYSTEM_STORE_FLAG = 8

const CERT_STORE_PROV_WRITE_ADD_FLAG = 1

const CERT_STORE_PROV_WRITE_CERT_FUNC = 2

const CERT_STORE_PROV_WRITE_CRL_FUNC = 6

const CERT_STORE_PROV_WRITE_CTL_FUNC = 10

const CERT_STORE_READONLY_FLAG = 32768

const CERT_STORE_REVOCATION_FLAG = 4

const CERT_STORE_SAVE_AS_PKCS12 = 3

const CERT_STORE_SAVE_AS_PKCS7 = 2

const CERT_STORE_SAVE_AS_STORE = 1

const CERT_STORE_SAVE_TO_FILE = 1

const CERT_STORE_SAVE_TO_FILENAME = 4

const CERT_STORE_SAVE_TO_FILENAME_A = 3

const CERT_STORE_SAVE_TO_FILENAME_W = 4

const CERT_STORE_SAVE_TO_MEMORY = 2

const CERT_STORE_SET_LOCALIZED_NAME_FLAG = 2

const CERT_STORE_SHARE_CONTEXT_FLAG = 128

const CERT_STORE_SHARE_STORE_FLAG = 64

const CERT_STORE_SIGNATURE_FLAG = 1

const CERT_STORE_TIME_VALIDITY_FLAG = 2

const CERT_STORE_UNSAFE_PHYSICAL_FLAG = 32

const CERT_STORE_UPDATE_KEYID_FLAG = 1024

const CERT_STRONG_SIGN_ECDSA_ALGORITHM = "ECDSA"

const CERT_STRONG_SIGN_ENABLE_CRL_CHECK = 1

const CERT_STRONG_SIGN_ENABLE_OCSP_CHECK = 2

const CERT_STRONG_SIGN_OID_INFO_CHOICE = 2

type CERT_STRONG_SIGN_PARA = TCERT_STRONG_SIGN_PARA

type CERT_STRONG_SIGN_SERIALIZED_INFO = TCERT_STRONG_SIGN_SERIALIZED_INFO

const CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE = 1

const CERT_SUBJECT_DISABLE_CRL_PROP_ID = 86

type CERT_SUBJECT_INFO_ACCESS = TCERT_SUBJECT_INFO_ACCESS

const CERT_SUBJECT_INFO_ACCESS_PROP_ID = 80

const CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = 29

const CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID = 85

const CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID = 25

const CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID = 92

type CERT_SUPPORTED_ALGORITHM_INFO = TCERT_SUPPORTED_ALGORITHM_INFO

const CERT_SYSTEM_STORE_CURRENT_SERVICE = 262144

const CERT_SYSTEM_STORE_CURRENT_SERVICE_ID = 4

const CERT_SYSTEM_STORE_CURRENT_USER = 65536

const CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 458752

const CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID = 7

const CERT_SYSTEM_STORE_CURRENT_USER_ID = 1

const CERT_SYSTEM_STORE_DEFER_READ_FLAG = 536870912

type CERT_SYSTEM_STORE_INFO = TCERT_SYSTEM_STORE_INFO

const CERT_SYSTEM_STORE_LOCAL_MACHINE = 131072

const CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 589824

const CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID = 9

const CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 524288

const CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID = 8

const CERT_SYSTEM_STORE_LOCAL_MACHINE_ID = 2

const CERT_SYSTEM_STORE_LOCAL_MACHINE_WCOS = 655360

const CERT_SYSTEM_STORE_LOCAL_MACHINE_WCOS_ID = 10

const CERT_SYSTEM_STORE_LOCATION_MASK = 16711680

const CERT_SYSTEM_STORE_LOCATION_SHIFT = 16

const CERT_SYSTEM_STORE_MASK = 4294901760

const CERT_SYSTEM_STORE_RELOCATE_FLAG = 2147483648

type CERT_SYSTEM_STORE_RELOCATE_PARA = TCERT_SYSTEM_STORE_RELOCATE_PARA

const CERT_SYSTEM_STORE_SERVICES = 327680

const CERT_SYSTEM_STORE_SERVICES_ID = 5

const CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 1073741824

const CERT_SYSTEM_STORE_USERS = 393216

const CERT_SYSTEM_STORE_USERS_ID = 6

type CERT_TEMPLATE_EXT = TCERT_TEMPLATE_EXT

const CERT_TIMESTAMP_HASH_USE_TYPE = 2

type CERT_TPM_SPECIFICATION_INFO = TCERT_TPM_SPECIFICATION_INFO

const CERT_TRUST_AUTO_UPDATE_CA_REVOCATION = 16

const CERT_TRUST_AUTO_UPDATE_END_REVOCATION = 32

const CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 262144

const CERT_TRUST_CTL_IS_NOT_TIME_VALID = 131072

const CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 524288

const CERT_TRUST_HAS_ALLOW_WEAK_SIGNATURE = 131072

const CERT_TRUST_HAS_AUTO_UPDATE_WEAK_SIGNATURE = 32768

const CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 4096

const CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 1

const CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 32768

const CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 512

const CERT_TRUST_HAS_KEY_MATCH_ISSUER = 2

const CERT_TRUST_HAS_NAME_MATCH_ISSUER = 4

const CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 8192

const CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 16384

const CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 134217728

const CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 4096

const CERT_TRUST_HAS_PREFERRED_ISSUER = 256

const CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 1024

const CERT_TRUST_HAS_WEAK_SIGNATURE = 1048576

const CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 1024

const CERT_TRUST_INVALID_EXTENSION = 256

const CERT_TRUST_INVALID_NAME_CONSTRAINTS = 2048

const CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 512

const CERT_TRUST_IS_CA_TRUSTED = 16384

const CERT_TRUST_IS_COMPLEX_CHAIN = 65536

const CERT_TRUST_IS_CYCLIC = 128

const CERT_TRUST_IS_EXPLICIT_DISTRUST = 67108864

const CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 8192

const CERT_TRUST_IS_KEY_ROLLOVER = 128

const CERT_TRUST_IS_NOT_SIGNATURE_VALID = 8

const CERT_TRUST_IS_NOT_TIME_NESTED = 2

const CERT_TRUST_IS_NOT_TIME_VALID = 1

const CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 16

const CERT_TRUST_IS_OFFLINE_REVOCATION = 16777216

const CERT_TRUST_IS_PARTIAL_CHAIN = 65536

const CERT_TRUST_IS_PEER_TRUSTED = 2048

const CERT_TRUST_IS_REVOKED = 4

const CERT_TRUST_IS_SELF_SIGNED = 8

const CERT_TRUST_IS_UNTRUSTED_ROOT = 32

type CERT_TRUST_LIST_INFO = TCERT_TRUST_LIST_INFO

const CERT_TRUST_NO_ERROR = 0

const CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 33554432

const CERT_TRUST_NO_OCSP_FAILOVER_TO_CRL = 64

const CERT_TRUST_NO_TIME_CHECK = 33554432

const CERT_TRUST_PUB_ALLOW_END_USER_TRUST = 0

const CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST = 2

const CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST = 1

const CERT_TRUST_PUB_ALLOW_TRUST_MASK = 3

const CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME = "AuthenticodeFlags"

const CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG = 256

const CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG = 512

const CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 64

const CERT_TRUST_SSL_HANDSHAKE_OCSP = 262144

const CERT_TRUST_SSL_RECONNECT_OCSP = 1048576

const CERT_TRUST_SSL_TIME_VALID = 16777216

const CERT_TRUST_SSL_TIME_VALID_OCSP = 524288

type CERT_TRUST_STATUS = TCERT_TRUST_STATUS

const CERT_UNICODE_ATTR_ERR_INDEX_MASK = 63

const CERT_UNICODE_ATTR_ERR_INDEX_SHIFT = 16

const CERT_UNICODE_IS_RDN_ATTRS_FLAG = 1

const CERT_UNICODE_RDN_ERR_INDEX_MASK = 1023

const CERT_UNICODE_RDN_ERR_INDEX_SHIFT = 22

const CERT_UNICODE_VALUE_ERR_INDEX_MASK = 65535

const CERT_UNICODE_VALUE_ERR_INDEX_SHIFT = 0

type CERT_USAGE_MATCH = TCERT_USAGE_MATCH

const CERT_V1 = 0

const CERT_V2 = 1

const CERT_V3 = 2

const CERT_VERIFY_ALLOW_MORE_USAGE_FLAG = 8

const CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION = 2

const CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG = 1

const CERT_VERIFY_NO_TIME_CHECK_FLAG = 4

const CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG = 4

const CERT_VERIFY_REV_CHAIN_FLAG = 1

const CERT_VERIFY_REV_NO_OCSP_FAILOVER_TO_CRL_FLAG = 16

const CERT_VERIFY_REV_SERVER_OCSP_FLAG = 8

const CERT_VERIFY_TRUSTED_SIGNERS_FLAG = 2

const CERT_VERIFY_UPDATED_CTL_FLAG = 1

const CERT_X500_NAME_STR = 3

type CERT_X942_DH_PARAMETERS = TCERT_X942_DH_PARAMETERS

type CERT_X942_DH_VALIDATION_PARAMS = TCERT_X942_DH_VALIDATION_PARAMS

const CERT_XML_NAME_STR = 4

const CE_BREAK = 16

const CE_DNS = 2048

const CE_FRAME = 8

const CE_IOE = 1024

const CE_MODE = 32768

const CE_OOP = 4096

const CE_OVERRUN = 2

const CE_PTO = 512

const CE_RXOVER = 1

const CE_RXPARITY = 4

const CE_TXFULL = 256

const CFERR_CHOOSEFONTCODES = 8192

const CFERR_MAXLESSTHANMIN = 8194

const CFERR_NOFONTS = 8193

const CFG_CALL_TARGET_CONVERT_EXPORT_SUPPRESSED_TO_VALID = 4

type CFG_CALL_TARGET_INFO = TCFG_CALL_TARGET_INFO

const CFG_CALL_TARGET_PROCESSED = 2

const CFG_CALL_TARGET_VALID = 1

const CFSEPCHAR = 43

const CFSTR_MIME_NULL = "NULL"

const CFS_CANDIDATEPOS = 64

const CFS_DEFAULT = 0

const CFS_EXCLUDE = 128

const CFS_FORCE_POSITION = 32

const CFS_POINT = 2

const CFS_RECT = 1

const CF_ANSIONLY = 1024

const CF_APPLY = 512

const CF_BITMAP = 2

const CF_BOTH = 3

const CF_DIB = 8

const CF_DIBV5 = 17

const CF_DIF = 5

const CF_DSPBITMAP = 130

const CF_DSPENHMETAFILE = 142

const CF_DSPMETAFILEPICT = 131

const CF_DSPTEXT = 129

const CF_EFFECTS = 256

const CF_ENABLEHOOK = 8

const CF_ENABLETEMPLATE = 16

const CF_ENABLETEMPLATEHANDLE = 32

const CF_ENHMETAFILE = 14

const CF_FIXEDPITCHONLY = 16384

const CF_FORCEFONTEXIST = 65536

const CF_GDIOBJFIRST = 768

const CF_GDIOBJLAST = 1023

const CF_HDROP = 15

const CF_INACTIVEFONTS = 33554432

const CF_INITTOLOGFONTSTRUCT = 64

const CF_LIMITSIZE = 8192

const CF_LOCALE = 16

const CF_MAX = 18

const CF_METAFILEPICT = 3

const CF_NOFACESEL = 524288

const CF_NOOEMFONTS = 2048

const CF_NOSCRIPTSEL = 8388608

const CF_NOSIMULATIONS = 4096

const CF_NOSIZESEL = 2097152

const CF_NOSTYLESEL = 1048576

const CF_NOVECTORFONTS = 2048

const CF_NOVERTFONTS = 16777216

const CF_NULL = 0

const CF_OEMTEXT = 7

const CF_OWNERDISPLAY = 128

const CF_PALETTE = 9

const CF_PENDATA = 10

const CF_PRINTERFONTS = 2

const CF_PRIVATEFIRST = 512

const CF_PRIVATELAST = 767

const CF_RIFF = 11

const CF_SCALABLEONLY = 131072

const CF_SCREENFONTS = 1

const CF_SCRIPTSONLY = 1024

const CF_SELECTSCRIPT = 4194304

const CF_SHOWHELP = 4

const CF_SYLK = 4

const CF_TEXT = 1

const CF_TIFF = 6

const CF_TTONLY = 262144

const CF_UNICODETEXT = 13

const CF_USESTYLE = 128

const CF_WAVE = 12

const CF_WYSIWYG = 32768

type CHANGEFILTERSTRUCT = TCHANGEFILTERSTRUCT

type CHANGEKIND = TCHANGEKIND

const CHANGER_BAR_CODE_SCANNER_INSTALLED = 1

const CHANGER_CARTRIDGE_MAGAZINE = 256

const CHANGER_CLEANER_ACCESS_NOT_VALID = 262144

const CHANGER_CLEANER_AUTODISMOUNT = 2147483652

const CHANGER_CLEANER_OPS_NOT_SUPPORTED = 2147483712

const CHANGER_CLEANER_SLOT = 64

const CHANGER_CLOSE_IEPORT = 4

type CHANGER_DEVICE_PROBLEM_TYPE = TCHANGER_DEVICE_PROBLEM_TYPE

const CHANGER_DEVICE_REINITIALIZE_CAPABLE = 134217728

const CHANGER_DRIVE_CLEANING_REQUIRED = 65536

const CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS = 536870912

type CHANGER_ELEMENT = TCHANGER_ELEMENT

type CHANGER_ELEMENT_LIST = TCHANGER_ELEMENT_LIST

type CHANGER_ELEMENT_STATUS = TCHANGER_ELEMENT_STATUS

type CHANGER_ELEMENT_STATUS_EX = TCHANGER_ELEMENT_STATUS_EX

const CHANGER_EXCHANGE_MEDIA = 32

type CHANGER_EXCHANGE_MEDIUM = TCHANGER_EXCHANGE_MEDIUM

const CHANGER_IEPORT_USER_CONTROL_CLOSE = 2147483904

const CHANGER_IEPORT_USER_CONTROL_OPEN = 2147483776

type CHANGER_INITIALIZE_ELEMENT_STATUS = TCHANGER_INITIALIZE_ELEMENT_STATUS

const CHANGER_INIT_ELEM_STAT_WITH_RANGE = 2

const CHANGER_KEYPAD_ENABLE_DISABLE = 268435456

const CHANGER_LOCK_UNLOCK = 128

const CHANGER_MEDIUM_FLIP = 512

const CHANGER_MOVE_EXTENDS_IEPORT = 2147484160

type CHANGER_MOVE_MEDIUM = TCHANGER_MOVE_MEDIUM

const CHANGER_MOVE_RETRACTS_IEPORT = 2147484672

const CHANGER_OPEN_IEPORT = 8

const CHANGER_POSITION_TO_ELEMENT = 1024

const CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE = 2147483650

const CHANGER_PREDISMOUNT_ALIGN_TO_SLOT = 2147483649

const CHANGER_PREDISMOUNT_EJECT_REQUIRED = 131072

const CHANGER_PREMOUNT_EJECT_REQUIRED = 524288

type CHANGER_PRODUCT_DATA = TCHANGER_PRODUCT_DATA

type CHANGER_READ_ELEMENT_STATUS = TCHANGER_READ_ELEMENT_STATUS

const CHANGER_REPORT_IEPORT_STATE = 2048

const CHANGER_RESERVED_BIT = 2147483648

const CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR = 2147483680

type CHANGER_SEND_VOLUME_TAG_INFORMATION = TCHANGER_SEND_VOLUME_TAG_INFORMATION

const CHANGER_SERIAL_NUMBER_VALID = 67108864

type CHANGER_SET_ACCESS = TCHANGER_SET_ACCESS

type CHANGER_SET_POSITION = TCHANGER_SET_POSITION

const CHANGER_SLOTS_USE_TRAYS = 2147483664

const CHANGER_STATUS_NON_VOLATILE = 16

const CHANGER_STORAGE_DRIVE = 4096

const CHANGER_STORAGE_IEPORT = 8192

const CHANGER_STORAGE_SLOT = 16384

const CHANGER_STORAGE_TRANSPORT = 32768

const CHANGER_TO_DRIVE = 8

const CHANGER_TO_IEPORT = 4

const CHANGER_TO_SLOT = 2

const CHANGER_TO_TRANSPORT = 1

const CHANGER_TRUE_EXCHANGE_CAPABLE = 2147483656

const CHANGER_VOLUME_ASSERT = 4194304

const CHANGER_VOLUME_IDENTIFICATION = 1048576

const CHANGER_VOLUME_REPLACE = 8388608

const CHANGER_VOLUME_SEARCH = 2097152

const CHANGER_VOLUME_UNDEFINE = 16777216

type CHAR = TCHAR

type CHARSETINFO = TCHARSETINFO

type CHAR_INFO = TCHAR_INFO

const CHECKJPEGFORMAT = 4119

const CHECKPNGFORMAT = 4120

const CHILDID_SELF = 0

const CHINESEBIG5_CHARSET = 136

type CHOOSECOLOR = TCHOOSECOLOR

type CHOOSECOLORA = TCHOOSECOLORA

type CHOOSECOLORW = TCHOOSECOLORW

type CHOOSEFONT = TCHOOSEFONT

type CHOOSEFONTA = TCHOOSEFONTA

type CHOOSEFONTW = TCHOOSEFONTW

type CIEXYZ = TCIEXYZ

type CIEXYZTRIPLE = TCIEXYZTRIPLE

type CIP_STATUS = TCIP_STATUS

type CLAIM_SECURITY_ATTRIBUTES_INFORMATION = TCLAIM_SECURITY_ATTRIBUTES_INFORMATION

const CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION = 1

const CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1 = 1

const CLAIM_SECURITY_ATTRIBUTE_CUSTOM_FLAGS = 4294901760

const CLAIM_SECURITY_ATTRIBUTE_DISABLED = 16

const CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT = 8

type CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = TCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE

const CLAIM_SECURITY_ATTRIBUTE_MANDATORY = 32

const CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE = 1

type CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = TCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE

type CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = TCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1

const CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN = 6

const CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN = 4

const CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64 = 1

const CLAIM_SECURITY_ATTRIBUTE_TYPE_INVALID = 0

const CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING = 16

const CLAIM_SECURITY_ATTRIBUTE_TYPE_SID = 5

const CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING = 3

const CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64 = 2

const CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY = 4

type CLAIM_SECURITY_ATTRIBUTE_V1 = TCLAIM_SECURITY_ATTRIBUTE_V1

const CLAIM_SECURITY_ATTRIBUTE_VALID_FLAGS = 63

const CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE = 2

const CLASSFACTORY_E_FIRST = 2147746064

const CLASSFACTORY_E_LAST = 2147746079

const CLASSFACTORY_S_FIRST = 262416

const CLASSFACTORY_S_LAST = 262431

type CLASS_MEDIA_CHANGE_CONTEXT = TCLASS_MEDIA_CHANGE_CONTEXT

type CLEANLOCALSTORAGE = TCLEANLOCALSTORAGE

const CLEARTYPE_NATURAL_QUALITY = 6

const CLEARTYPE_QUALITY = 5

type CLIENTCREATESTRUCT = TCLIENTCREATESTRUCT

const CLIENTSITE_E_FIRST = 2147746192

const CLIENTSITE_E_LAST = 2147746207

const CLIENTSITE_S_FIRST = 262544

const CLIENTSITE_S_LAST = 262559

type CLIENT_CALL_RETURN = TCLIENT_CALL_RETURN

const CLIPBRD_E_FIRST = 2147746256

const CLIPBRD_E_LAST = 2147746271

const CLIPBRD_S_FIRST = 262608

const CLIPBRD_S_LAST = 262623

const CLIPCAPS = 36

type CLIPDATA = TCLIPDATA

type CLIPFORMAT = TCLIPFORMAT

const CLIP_CHARACTER_PRECIS = 1

const CLIP_DEFAULT_PRECIS = 0

const CLIP_DFA_DISABLE = 64

const CLIP_EMBEDDED = 128

const CLIP_LH_ANGLES = 16

const CLIP_MASK = 15

const CLIP_STROKE_PRECIS = 2

const CLIP_TO_PATH = 4097

const CLIP_TT_ALWAYS = 32

const CLK_TCK = 1000

const CLOCKS_PER_SEC = 1000

const CLOCK_REALTIME_COARSE = 4

const CLOSECHANNEL = 4112

const CLRBREAK = 9

const CLRDTR = 6

const CLRRTS = 4

const CLR_INVALID = 4294967295

type CLSCTX = TCLSCTX

const CLSCTX_ALL = 0

const CLSCTX_INPROC = 0

const CLSCTX_SERVER = 0

const CLSCTX_VALID_MASK = 0

type CLSID = TCLSID

const CLSID_NULL = 0

const CMAPI = "DECLSPEC_IMPORT"

type CMC_ADD_ATTRIBUTES_INFO = TCMC_ADD_ATTRIBUTES_INFO

type CMC_ADD_EXTENSIONS_INFO = TCMC_ADD_EXTENSIONS_INFO

type CMC_DATA_INFO = TCMC_DATA_INFO

const CMC_FAIL_BAD_ALG = 0

const CMC_FAIL_BAD_CERT_ID = 4

const CMC_FAIL_BAD_IDENTITY = 7

const CMC_FAIL_BAD_MESSAGE_CHECK = 1

const CMC_FAIL_BAD_REQUEST = 2

const CMC_FAIL_BAD_TIME = 3

const CMC_FAIL_INTERNAL_CA_ERROR = 11

const CMC_FAIL_MUST_ARCHIVE_KEYS = 6

const CMC_FAIL_NO_KEY_REUSE = 10

const CMC_FAIL_POP_FAILED = 9

const CMC_FAIL_POP_REQUIRED = 8

const CMC_FAIL_TRY_LATER = 12

const CMC_FAIL_UNSUPORTED_EXT = 5

const CMC_OTHER_INFO_FAIL_CHOICE = 1

const CMC_OTHER_INFO_NO_CHOICE = 0

const CMC_OTHER_INFO_PEND_CHOICE = 2

type CMC_PEND_INFO = TCMC_PEND_INFO

type CMC_RESPONSE_INFO = TCMC_RESPONSE_INFO

const CMC_STATUS_CONFIRM_REQUIRED = 5

const CMC_STATUS_FAILED = 2

type CMC_STATUS_INFO = TCMC_STATUS_INFO

const CMC_STATUS_NO_SUPPORT = 4

const CMC_STATUS_PENDING = 3

const CMC_STATUS_SUCCESS = 0

type CMC_TAGGED_ATTRIBUTE = TCMC_TAGGED_ATTRIBUTE

type CMC_TAGGED_CERT_REQUEST = TCMC_TAGGED_CERT_REQUEST

const CMC_TAGGED_CERT_REQUEST_CHOICE = 1

type CMC_TAGGED_CONTENT_INFO = TCMC_TAGGED_CONTENT_INFO

type CMC_TAGGED_OTHER_MSG = TCMC_TAGGED_OTHER_MSG

type CMC_TAGGED_REQUEST = TCMC_TAGGED_REQUEST

const CMSG_ALL_FLAGS = 18446744073709551615

type CMSG_ATTR = TCMSG_ATTR

const CMSG_ATTR_CERT_COUNT_PARAM = 31

const CMSG_ATTR_CERT_PARAM = 32

const CMSG_AUTHENTICATED_ATTRIBUTES_FLAG = 8

const CMSG_BARE_CONTENT_FLAG = 1

const CMSG_BARE_CONTENT_PARAM = 3

const CMSG_CERT_COUNT_PARAM = 11

const CMSG_CERT_PARAM = 12

const CMSG_CMS_ENCAPSULATED_CONTENT_FLAG = 64

const CMSG_CMS_ENCAPSULATED_CTL_FLAG = 32768

const CMSG_CMS_RECIPIENT_COUNT_PARAM = 33

const CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM = 35

const CMSG_CMS_RECIPIENT_INDEX_PARAM = 34

type CMSG_CMS_RECIPIENT_INFO = TCMSG_CMS_RECIPIENT_INFO

const CMSG_CMS_RECIPIENT_INFO_PARAM = 36

type CMSG_CMS_SIGNER_INFO = TCMSG_CMS_SIGNER_INFO

const CMSG_CMS_SIGNER_INFO_PARAM = 39

type CMSG_CNG_CONTENT_DECRYPT_INFO = TCMSG_CNG_CONTENT_DECRYPT_INFO

const CMSG_COMPUTED_HASH_PARAM = 22

const CMSG_CONTENTS_OCTETS_FLAG = 16

const CMSG_CONTENT_ENCRYPT_FREE_OBJID_FLAG = 2

const CMSG_CONTENT_ENCRYPT_FREE_PARA_FLAG = 1

type CMSG_CONTENT_ENCRYPT_INFO = TCMSG_CONTENT_ENCRYPT_INFO

const CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG = 1

const CMSG_CONTENT_ENCRYPT_RELEASE_CONTEXT_FLAG = 32768

const CMSG_CONTENT_PARAM = 2

const CMSG_CRL_COUNT_PARAM = 13

const CMSG_CRL_PARAM = 14

const CMSG_CRYPT_RELEASE_CONTEXT_FLAG = 32768

const CMSG_CTRL_ADD_ATTR_CERT = 14

const CMSG_CTRL_ADD_CERT = 10

const CMSG_CTRL_ADD_CMS_SIGNER_INFO = 20

const CMSG_CTRL_ADD_CRL = 12

const CMSG_CTRL_ADD_SIGNER = 6

const CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR = 8

type CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = TCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA

const CMSG_CTRL_DECRYPT = 2

type CMSG_CTRL_DECRYPT_PARA = TCMSG_CTRL_DECRYPT_PARA

const CMSG_CTRL_DEL_ATTR_CERT = 15

const CMSG_CTRL_DEL_CERT = 11

const CMSG_CTRL_DEL_CRL = 13

const CMSG_CTRL_DEL_SIGNER = 7

const CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR = 9

type CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = TCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA

const CMSG_CTRL_ENABLE_STRONG_SIGNATURE = 21

const CMSG_CTRL_KEY_AGREE_DECRYPT = 17

type CMSG_CTRL_KEY_AGREE_DECRYPT_PARA = TCMSG_CTRL_KEY_AGREE_DECRYPT_PARA

const CMSG_CTRL_KEY_TRANS_DECRYPT = 16

type CMSG_CTRL_KEY_TRANS_DECRYPT_PARA = TCMSG_CTRL_KEY_TRANS_DECRYPT_PARA

const CMSG_CTRL_MAIL_LIST_DECRYPT = 18

type CMSG_CTRL_MAIL_LIST_DECRYPT_PARA = TCMSG_CTRL_MAIL_LIST_DECRYPT_PARA

const CMSG_CTRL_VERIFY_HASH = 5

const CMSG_CTRL_VERIFY_SIGNATURE = 1

const CMSG_CTRL_VERIFY_SIGNATURE_EX = 19

type CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = TCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA

const CMSG_DATA = 1

const CMSG_DATA_FLAG = 2

const CMSG_DETACHED_FLAG = 4

const CMSG_ENCODED_MESSAGE = 29

const CMSG_ENCODED_SIGNER = 28

const CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG = 2

const CMSG_ENCODE_SORTED_CTL_FLAG = 1

const CMSG_ENCODING_TYPE_MASK = 4294901760

const CMSG_ENCRYPTED = 6

const CMSG_ENCRYPTED_DIGEST = 27

type CMSG_ENCRYPTED_ENCODE_INFO = TCMSG_ENCRYPTED_ENCODE_INFO

const CMSG_ENCRYPTED_FLAG = 64

const CMSG_ENCRYPT_PARAM = 26

const CMSG_ENVELOPED = 3

const CMSG_ENVELOPED_DATA_CMS_VERSION = 2

const CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION = 0

const CMSG_ENVELOPED_DATA_V0 = 0

const CMSG_ENVELOPED_DATA_V2 = 2

type CMSG_ENVELOPED_ENCODE_INFO = TCMSG_ENVELOPED_ENCODE_INFO

const CMSG_ENVELOPED_FLAG = 8

const CMSG_ENVELOPED_RECIPIENT_V0 = 0

const CMSG_ENVELOPED_RECIPIENT_V2 = 2

const CMSG_ENVELOPED_RECIPIENT_V3 = 3

const CMSG_ENVELOPED_RECIPIENT_V4 = 4

const CMSG_ENVELOPE_ALGORITHM_PARAM = 15

const CMSG_HASHED = 5

const CMSG_HASHED_DATA_CMS_VERSION = 2

const CMSG_HASHED_DATA_PKCS_1_5_VERSION = 0

const CMSG_HASHED_DATA_V0 = 0

const CMSG_HASHED_DATA_V2 = 2

type CMSG_HASHED_ENCODE_INFO = TCMSG_HASHED_ENCODE_INFO

const CMSG_HASHED_FLAG = 32

const CMSG_HASH_ALGORITHM_PARAM = 20

const CMSG_HASH_DATA_PARAM = 21

const CMSG_INDEFINITE_LENGTH = 4294967295

const CMSG_INNER_CONTENT_TYPE_PARAM = 4

const CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG = 2

const CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG = 32

const CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG = 1

const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG = 4

const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG = 16

const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG = 8

type CMSG_KEY_AGREE_ENCRYPT_INFO = TCMSG_KEY_AGREE_ENCRYPT_INFO

const CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE = 1

type CMSG_KEY_AGREE_KEY_ENCRYPT_INFO = TCMSG_KEY_AGREE_KEY_ENCRYPT_INFO

const CMSG_KEY_AGREE_ORIGINATOR_CERT = 1

const CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY = 2

const CMSG_KEY_AGREE_RECIPIENT = 2

type CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = TCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO

type CMSG_KEY_AGREE_RECIPIENT_INFO = TCMSG_KEY_AGREE_RECIPIENT_INFO

const CMSG_KEY_AGREE_STATIC_KEY_CHOICE = 2

const CMSG_KEY_AGREE_VERSION = 3

const CMSG_KEY_TRANS_CMS_VERSION = 2

const CMSG_KEY_TRANS_ENCRYPT_FREE_OBJID_FLAG = 2

const CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG = 1

type CMSG_KEY_TRANS_ENCRYPT_INFO = TCMSG_KEY_TRANS_ENCRYPT_INFO

const CMSG_KEY_TRANS_PKCS_1_5_VERSION = 0

const CMSG_KEY_TRANS_RECIPIENT = 1

type CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = TCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO

type CMSG_KEY_TRANS_RECIPIENT_INFO = TCMSG_KEY_TRANS_RECIPIENT_INFO

const CMSG_LENGTH_ONLY_FLAG = 2

const CMSG_MAIL_LIST_ENCRYPT_FREE_OBJID_FLAG = 2

const CMSG_MAIL_LIST_ENCRYPT_FREE_PARA_FLAG = 1

type CMSG_MAIL_LIST_ENCRYPT_INFO = TCMSG_MAIL_LIST_ENCRYPT_INFO

const CMSG_MAIL_LIST_HANDLE_KEY_CHOICE = 1

const CMSG_MAIL_LIST_RECIPIENT = 3

type CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = TCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO

type CMSG_MAIL_LIST_RECIPIENT_INFO = TCMSG_MAIL_LIST_RECIPIENT_INFO

const CMSG_MAIL_LIST_VERSION = 4

const CMSG_MAX_LENGTH_FLAG = 32

const CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC = "CMSG_OID_EXPORT_KEY_AGREE_FUNC"

const CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC = "CMSG_OID_EXPORT_KEY_TRANS_FUNC"

const CMSG_OID_CAPI1_EXPORT_MAIL_LIST_FUNC = "CMSG_OID_EXPORT_MAIL_LIST_FUNC"

const CMSG_OID_CAPI1_GEN_CONTENT_ENCRYPT_KEY_FUNC = "CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC"

const CMSG_OID_CAPI1_IMPORT_KEY_AGREE_FUNC = "CMSG_OID_IMPORT_KEY_AGREE_FUNC"

const CMSG_OID_CAPI1_IMPORT_KEY_TRANS_FUNC = "CMSG_OID_IMPORT_KEY_TRANS_FUNC"

const CMSG_OID_CAPI1_IMPORT_MAIL_LIST_FUNC = "CMSG_OID_IMPORT_MAIL_LIST_FUNC"

const CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC = "CryptMsgDllCNGExportKeyAgree"

const CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC = "CryptMsgDllCNGExportKeyTrans"

const CMSG_OID_CNG_GEN_CONTENT_ENCRYPT_KEY_FUNC = "CryptMsgDllCNGGenContentEncryptKey"

const CMSG_OID_CNG_IMPORT_CONTENT_ENCRYPT_KEY_FUNC = "CryptMsgDllCNGImportContentEncryptKey"

const CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC = "CryptMsgDllCNGImportKeyAgree"

const CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC = "CryptMsgDllCNGImportKeyTrans"

const CMSG_OID_EXPORT_ENCRYPT_KEY_FUNC = "CryptMsgDllExportEncryptKey"

const CMSG_OID_EXPORT_KEY_AGREE_FUNC = "CryptMsgDllExportKeyAgree"

const CMSG_OID_EXPORT_KEY_TRANS_FUNC = "CryptMsgDllExportKeyTrans"

const CMSG_OID_EXPORT_MAIL_LIST_FUNC = "CryptMsgDllExportMailList"

const CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC = "CryptMsgDllGenContentEncryptKey"

const CMSG_OID_GEN_ENCRYPT_KEY_FUNC = "CryptMsgDllGenEncryptKey"

const CMSG_OID_IMPORT_ENCRYPT_KEY_FUNC = "CryptMsgDllImportEncryptKey"

const CMSG_OID_IMPORT_KEY_AGREE_FUNC = "CryptMsgDllImportKeyAgree"

const CMSG_OID_IMPORT_KEY_TRANS_FUNC = "CryptMsgDllImportKeyTrans"

const CMSG_OID_IMPORT_MAIL_LIST_FUNC = "CryptMsgDllImportMailList"

type CMSG_RC2_AUX_INFO = TCMSG_RC2_AUX_INFO

type CMSG_RC4_AUX_INFO = TCMSG_RC4_AUX_INFO

const CMSG_RC4_NO_SALT_FLAG = 1073741824

const CMSG_RECIPIENT_COUNT_PARAM = 17

type CMSG_RECIPIENT_ENCODE_INFO = TCMSG_RECIPIENT_ENCODE_INFO

type CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = TCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

type CMSG_RECIPIENT_ENCRYPTED_KEY_INFO = TCMSG_RECIPIENT_ENCRYPTED_KEY_INFO

const CMSG_RECIPIENT_INDEX_PARAM = 18

const CMSG_RECIPIENT_INFO_PARAM = 19

const CMSG_SIGNED = 2

const CMSG_SIGNED_AND_ENVELOPED = 4

type CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = TCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO

const CMSG_SIGNED_AND_ENVELOPED_FLAG = 16

const CMSG_SIGNED_DATA_CMS_VERSION = 3

const CMSG_SIGNED_DATA_NO_SIGN_FLAG = 128

const CMSG_SIGNED_DATA_PKCS_1_5_VERSION = 1

const CMSG_SIGNED_DATA_V1 = 1

const CMSG_SIGNED_DATA_V3 = 3

type CMSG_SIGNED_ENCODE_INFO = TCMSG_SIGNED_ENCODE_INFO

const CMSG_SIGNED_FLAG = 4

const CMSG_SIGNER_AUTH_ATTR_PARAM = 9

const CMSG_SIGNER_CERT_ID_PARAM = 38

const CMSG_SIGNER_CERT_INFO_PARAM = 7

const CMSG_SIGNER_COUNT_PARAM = 5

type CMSG_SIGNER_ENCODE_INFO = TCMSG_SIGNER_ENCODE_INFO

const CMSG_SIGNER_HASH_ALGORITHM_PARAM = 8

type CMSG_SIGNER_INFO = TCMSG_SIGNER_INFO

const CMSG_SIGNER_INFO_CMS_VERSION = 3

const CMSG_SIGNER_INFO_PARAM = 6

const CMSG_SIGNER_INFO_PKCS_1_5_VERSION = 1

const CMSG_SIGNER_INFO_V1 = 1

const CMSG_SIGNER_INFO_V3 = 3

const CMSG_SIGNER_ONLY_FLAG = 2

const CMSG_SIGNER_UNAUTH_ATTR_PARAM = 10

type CMSG_SP3_COMPATIBLE_AUX_INFO = TCMSG_SP3_COMPATIBLE_AUX_INFO

const CMSG_SP3_COMPATIBLE_ENCRYPT_FLAG = 2147483648

type CMSG_STREAM_INFO = TCMSG_STREAM_INFO

const CMSG_TRUSTED_SIGNER_FLAG = 1

const CMSG_TYPE_PARAM = 1

const CMSG_UNPROTECTED_ATTR_PARAM = 37

const CMSG_USE_SIGNER_INDEX_FLAG = 4

const CMSG_VERIFY_COUNTER_SIGN_ENABLE_STRONG_FLAG = 1

const CMSG_VERIFY_SIGNER_CERT = 2

const CMSG_VERIFY_SIGNER_CHAIN = 3

const CMSG_VERIFY_SIGNER_NULL = 4

const CMSG_VERIFY_SIGNER_PUBKEY = 1

const CMSG_VERSION_PARAM = 30

type CMS_DH_KEY_INFO = TCMS_DH_KEY_INFO

type CMS_KEY_INFO = TCMS_KEY_INFO

const CM_CMYK_COLOR = 4

const CM_DEVICE_ICM = 1

const CM_GAMMA_RAMP = 2

const CM_IN_GAMUT = 0

const CM_NONE = 0

const CM_OUT_OF_GAMUT = 255

type CM_POWER_DATA = TCM_POWER_DATA

type CM_Power_Data_s = TCM_Power_Data_s

const CM_SERVICE_MEASURED_BOOT_LOAD = 32

const CM_SERVICE_NETWORK_BOOT_LOAD = 1

const CM_SERVICE_SD_DISK_BOOT_LOAD = 8

const CM_SERVICE_USB3_DISK_BOOT_LOAD = 16

const CM_SERVICE_USB_DISK_BOOT_LOAD = 4

const CM_SERVICE_VALID_PROMOTION_MASK = 255

const CM_SERVICE_VERIFIER_BOOT_LOAD = 64

const CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD = 2

const CM_SERVICE_WINPE_BOOT_LOAD = 128

type COAUTHIDENTITY = TCOAUTHIDENTITY

type COAUTHINFO = TCOAUTHINFO

type CODEBASEHOLD = TCODEBASEHOLD

const CODEPAGE_ENUMPROC = 0

type CODEPAGE_ENUMPROCA = TCODEPAGE_ENUMPROCA

type CODEPAGE_ENUMPROCW = TCODEPAGE_ENUMPROCW

type COINIT = TCOINIT

type COINITBASE = TCOINITBASE

type COLOR16 = TCOLOR16

type COLORADJUSTMENT = TCOLORADJUSTMENT

const COLORMATCHTOTARGET_EMBEDED = 1

const COLORMGMTCAPS = 121

const COLORMGMTDLGORD = 1551

const COLOROKSTRINGA = "commdlg_ColorOK"

const COLOROKSTRINGW = "commdlg_ColorOK"

const COLORONCOLOR = 3

type COLORREF = TCOLORREF

const COLORRES = 108

const COLOR_3DDKSHADOW = 21

const COLOR_3DFACE = 15

const COLOR_3DHIGHLIGHT = 20

const COLOR_3DHILIGHT = 20

const COLOR_3DLIGHT = 22

const COLOR_3DSHADOW = 16

const COLOR_ACTIVEBORDER = 10

const COLOR_ACTIVECAPTION = 2

const COLOR_ADJ_MIN = -100

const COLOR_APPWORKSPACE = 12

const COLOR_BACKGROUND = 1

const COLOR_BTNFACE = 15

const COLOR_BTNHIGHLIGHT = 20

const COLOR_BTNHILIGHT = 20

const COLOR_BTNSHADOW = 16

const COLOR_BTNTEXT = 18

const COLOR_CAPTIONTEXT = 9

const COLOR_DESKTOP = 1

const COLOR_GRADIENTACTIVECAPTION = 27

const COLOR_GRADIENTINACTIVECAPTION = 28

const COLOR_GRAYTEXT = 17

const COLOR_HIGHLIGHT = 13

const COLOR_HIGHLIGHTTEXT = 14

const COLOR_HOTLIGHT = 26

const COLOR_INACTIVEBORDER = 11

const COLOR_INACTIVECAPTION = 3

const COLOR_INACTIVECAPTIONTEXT = 19

const COLOR_INFOBK = 24

const COLOR_INFOTEXT = 23

const COLOR_MENU = 4

const COLOR_MENUBAR = 30

const COLOR_MENUHILIGHT = 29

const COLOR_MENUTEXT = 7

const COLOR_SCROLLBAR = 0

const COLOR_WINDOW = 5

const COLOR_WINDOWFRAME = 6

const COLOR_WINDOWTEXT = 8

type COMBOBOXINFO = TCOMBOBOXINFO

type COMMCONFIG = TCOMMCONFIG

const COMMON_LVB_GRID_HORIZONTAL = 1024

const COMMON_LVB_GRID_LVERTICAL = 2048

const COMMON_LVB_GRID_RVERTICAL = 4096

const COMMON_LVB_LEADING_BYTE = 256

const COMMON_LVB_REVERSE_VIDEO = 16384

const COMMON_LVB_SBCSDBCS = 768

const COMMON_LVB_TRAILING_BYTE = 512

const COMMON_LVB_UNDERSCORE = 32768

type COMMPROP = TCOMMPROP

type COMMTIMEOUTS = TCOMMTIMEOUTS

type COMM_FAULT_OFFSETS = TCOMM_FAULT_OFFSETS

type COMPACT_VIRTUAL_DISK_FLAG = TCOMPACT_VIRTUAL_DISK_FLAG

type COMPACT_VIRTUAL_DISK_PARAMETERS = TCOMPACT_VIRTUAL_DISK_PARAMETERS

type COMPACT_VIRTUAL_DISK_VERSION = TCOMPACT_VIRTUAL_DISK_VERSION

type COMPAREITEMSTRUCT = TCOMPAREITEMSTRUCT

type COMPARTMENT_ID = TCOMPARTMENT_ID

type COMPATIBILITY_CONTEXT_ELEMENT = TCOMPATIBILITY_CONTEXT_ELEMENT

const COMPLEXREGION = 3

type COMPONENT_FILTER = TCOMPONENT_FILTER

const COMPONENT_KTM = 1

const COMPONENT_VALID_FLAGS = 1

type COMPOSITIONFORM = TCOMPOSITIONFORM

const COMPRESSION_ENGINE_HIBER = 512

const COMPRESSION_ENGINE_MAXIMUM = 256

const COMPRESSION_ENGINE_STANDARD = 0

const COMPRESSION_FORMAT_DEFAULT = 1

const COMPRESSION_FORMAT_LZNT1 = 2

const COMPRESSION_FORMAT_NONE = 0

const COMPRESSION_FORMAT_SPARSE = 16384

const COMPRESSION_FORMAT_XPRESS = 3

const COMPRESSION_FORMAT_XPRESS_HUFF = 4

type COMPUTER_NAME_FORMAT = TCOMPUTER_NAME_FORMAT

type COMSD = TCOMSD

type COMSTAT = TCOMSTAT

const COM_RIGHTS_ACTIVATE_LOCAL = 8

const COM_RIGHTS_ACTIVATE_REMOTE = 16

const COM_RIGHTS_EXECUTE = 1

const COM_RIGHTS_EXECUTE_LOCAL = 2

const COM_RIGHTS_EXECUTE_REMOTE = 4

type CONDITION_VARIABLE = TCONDITION_VARIABLE

const CONDITION_VARIABLE_INIT = "RTL_CONDITION_VARIABLE_INIT"

const CONDITION_VARIABLE_LOCKMODE_SHARED = 1

type CONFIRMSAFETY = TCONFIRMSAFETY

const CONFIRMSAFETYACTION_LOADOBJECT = 1

const CONNDLG_CONN_POINT = 2

const CONNDLG_HIDE_BOX = 8

const CONNDLG_NOT_PERSIST = 32

const CONNDLG_PERSIST = 16

const CONNDLG_RO_PATH = 1

const CONNDLG_USE_MRU = 4

type CONNECTDLGSTRUCT = TCONNECTDLGSTRUCT

type CONNECTDLGSTRUCTA = TCONNECTDLGSTRUCTA

type CONNECTDLGSTRUCTW = TCONNECTDLGSTRUCTW

const CONNECT_CMD_SAVECRED = 4096

const CONNECT_COMMANDLINE = 2048

const CONNECT_CRED_RESET = 8192

const CONNECT_CURRENT_MEDIA = 512

const CONNECT_DEFERRED = 1024

const CONNECT_INTERACTIVE = 8

const CONNECT_LOCALDRIVE = 256

const CONNECT_NEED_DRIVE = 32

const CONNECT_PROMPT = 16

const CONNECT_REDIRECT = 128

const CONNECT_REFCOUNT = 64

const CONNECT_RESERVED = 4278190080

const CONNECT_TEMPORARY = 4

const CONNECT_UPDATE_PROFILE = 1

const CONNECT_UPDATE_RECENT = 2

const CONSOLE_CARET_SELECTION = 1

const CONSOLE_CARET_VISIBLE = 2

type CONSOLE_CURSOR_INFO = TCONSOLE_CURSOR_INFO

type CONSOLE_FONT_INFO = TCONSOLE_FONT_INFO

type CONSOLE_FONT_INFOEX = TCONSOLE_FONT_INFOEX

const CONSOLE_FULLSCREEN = 1

const CONSOLE_FULLSCREEN_HARDWARE = 2

const CONSOLE_FULLSCREEN_MODE = 1

type CONSOLE_HISTORY_INFO = TCONSOLE_HISTORY_INFO

const CONSOLE_MOUSE_DOWN = 8

const CONSOLE_MOUSE_SELECTION = 4

const CONSOLE_NO_SELECTION = 0

type CONSOLE_READCONSOLE_CONTROL = TCONSOLE_READCONSOLE_CONTROL

type CONSOLE_SCREEN_BUFFER_INFO = TCONSOLE_SCREEN_BUFFER_INFO

type CONSOLE_SCREEN_BUFFER_INFOEX = TCONSOLE_SCREEN_BUFFER_INFOEX

type CONSOLE_SELECTION_INFO = TCONSOLE_SELECTION_INFO

const CONSOLE_SELECTION_IN_PROGRESS = 1

const CONSOLE_SELECTION_NOT_EMPTY = 2

const CONSOLE_TEXTMODE_BUFFER = 1

const CONSOLE_WINDOWED_MODE = 2

const CONST = 0

const CONTACTVISUALIZATION_OFF = 0

const CONTACTVISUALIZATION_ON = 1

const CONTACTVISUALIZATION_PRESENTATIONMODE = 2

const CONTAINER_INHERIT_ACE = 2

type CONTEXT = TCONTEXT

const CONTEXT_E_FIRST = 2147803136

const CONTEXT_E_LAST = 2147803183

const CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC = "ContextDllCreateObjectContext"

const CONTEXT_S_FIRST = 319488

const CONTEXT_S_LAST = 319535

const CONTROL_C_EXIT = "STATUS_CONTROL_C_EXIT"

type CONVCONTEXT = TCONVCONTEXT

const CONVERT10_E_FIRST = 2147746240

const CONVERT10_E_LAST = 2147746255

const CONVERT10_S_FIRST = 262592

const CONVERT10_S_LAST = 262607

type CONVINFO = TCONVINFO

type COORD = TCOORD

type COPYDATASTRUCT = TCOPYDATASTRUCT

type COPYFILE2_COPY_PHASE = TCOPYFILE2_COPY_PHASE

type COPYFILE2_EXTENDED_PARAMETERS = TCOPYFILE2_EXTENDED_PARAMETERS

type COPYFILE2_MESSAGE = TCOPYFILE2_MESSAGE

type COPYFILE2_MESSAGE_ACTION = TCOPYFILE2_MESSAGE_ACTION

const COPYFILE2_MESSAGE_COPY_OFFLOAD = 1

type COPYFILE2_MESSAGE_TYPE = TCOPYFILE2_MESSAGE_TYPE

const COPYFILE_SIS_FLAGS = 3

const COPYFILE_SIS_LINK = 1

const COPYFILE_SIS_REPLACE = 2

const COPY_FILE_ALLOW_DECRYPTED_DESTINATION = 8

const COPY_FILE_COPY_SYMLINK = 2048

const COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC = 33554432

const COPY_FILE_FAIL_IF_EXISTS = 1

const COPY_FILE_IGNORE_EDP_BLOCK = 4194304

const COPY_FILE_IGNORE_SOURCE_ENCRYPTION = 8388608

const COPY_FILE_NO_BUFFERING = 4096

const COPY_FILE_NO_OFFLOAD = 262144

const COPY_FILE_OPEN_SOURCE_FOR_WRITE = 4

const COPY_FILE_REQUEST_COMPRESSED_TRAFFIC = 268435456

const COPY_FILE_REQUEST_SECURITY_PRIVILEGES = 8192

const COPY_FILE_RESTARTABLE = 2

const COPY_FILE_RESUME_FROM_PAUSE = 16384

const CORE_PARKING_POLICY_CHANGE_IDEAL = 0

const CORE_PARKING_POLICY_CHANGE_MAX = 3

const CORE_PARKING_POLICY_CHANGE_MULTISTEP = 3

const CORE_PARKING_POLICY_CHANGE_ROCKET = 2

const CORE_PARKING_POLICY_CHANGE_SINGLE = 1

type CORE_PRINTER_DRIVER = TCORE_PRINTER_DRIVER

type CORE_PRINTER_DRIVERA = TCORE_PRINTER_DRIVERA

type CORE_PRINTER_DRIVERW = TCORE_PRINTER_DRIVERW

type COSERVERINFO = TCOSERVERINFO

type COWAIT_FLAGS = TCOWAIT_FLAGS

const CO_E_FIRST = 2147746288

const CO_E_LAST = 2147746303

type CO_MARSHALING_CONTEXT_ATTRIBUTES = TCO_MARSHALING_CONTEXT_ATTRIBUTES

type CO_MTA_USAGE_COOKIE = TCO_MTA_USAGE_COOKIE

type CO_MTA_USAGE_COOKIE__ = TCO_MTA_USAGE_COOKIE__

const CO_S_FIRST = 262640

const CO_S_LAST = 262655

type CPINFO = TCPINFO

type CPINFOEX = TCPINFOEX

type CPINFOEXA = TCPINFOEXA

type CPINFOEXW = TCPINFOEXW

const CPS_CANCEL = 4

const CPS_COMPLETE = 1

const CPS_CONVERT = 2

const CPS_REVERT = 3

type CPS_URLS = TCPS_URLS

const CP_ACP = 0

const CP_INSTALLED = 1

const CP_MACCP = 2

const CP_NONE = 0

const CP_OEMCP = 1

const CP_RECTANGLE = 1

const CP_REGION = 2

const CP_SUPPORTED = 2

const CP_SYMBOL = 42

const CP_THREAD_ACP = 3

const CP_UTF7 = 65000

const CP_UTF8 = 65001

const CP_WINANSI = 1004

const CP_WINNEUTRAL = 1004

const CP_WINUNICODE = 1200

const CREATECOLORSPACE_EMBEDED = 1

type CREATEFILE2_EXTENDED_PARAMETERS = TCREATEFILE2_EXTENDED_PARAMETERS

type CREATESTRUCT = TCREATESTRUCT

type CREATESTRUCTA = TCREATESTRUCTA

type CREATESTRUCTW = TCREATESTRUCTW

const CREATE_ALWAYS = 2

const CREATE_BOUNDARY_DESCRIPTOR_ADD_APPCONTAINER_SID = 1

const CREATE_BREAKAWAY_FROM_JOB = 16777216

const CREATE_DEFAULT_ERROR_MODE = 67108864

type CREATE_DISK = TCREATE_DISK

type CREATE_DISK_GPT = TCREATE_DISK_GPT

type CREATE_DISK_MBR = TCREATE_DISK_MBR

const CREATE_EVENT_INITIAL_SET = 2

const CREATE_EVENT_MANUAL_RESET = 1

const CREATE_FORCEDOS = 8192

const CREATE_FOR_DIR = 2

const CREATE_FOR_IMPORT = 1

const CREATE_IGNORE_SYSTEM_DEFAULT = 2147483648

const CREATE_MUTEX_INITIAL_OWNER = 1

const CREATE_NEW = 1

const CREATE_NEW_CONSOLE = 16

const CREATE_NEW_PROCESS_GROUP = 512

const CREATE_NO_WINDOW = 134217728

const CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 33554432

const CREATE_PROCESS_DEBUG_EVENT = 3

type CREATE_PROCESS_DEBUG_INFO = TCREATE_PROCESS_DEBUG_INFO

const CREATE_PROTECTED_PROCESS = 262144

const CREATE_SECURE_PROCESS = 4194304

const CREATE_SEPARATE_WOW_VDM = 2048

const CREATE_SHARED_WOW_VDM = 4096

const CREATE_SUSPENDED = 4

const CREATE_THREAD_DEBUG_EVENT = 2

type CREATE_THREAD_DEBUG_INFO = TCREATE_THREAD_DEBUG_INFO

const CREATE_UNICODE_ENVIRONMENT = 1024

type CREATE_USN_JOURNAL_DATA = TCREATE_USN_JOURNAL_DATA

type CREATE_VIRTUAL_DISK_FLAG = TCREATE_VIRTUAL_DISK_FLAG

type CREATE_VIRTUAL_DISK_PARAMETERS = TCREATE_VIRTUAL_DISK_PARAMETERS

type CREATE_VIRTUAL_DISK_VERSION = TCREATE_VIRTUAL_DISK_VERSION

const CREATE_WAITABLE_TIMER_MANUAL_RESET = 1

const CREDUIAPI = "DECLSPEC_IMPORT"

type CRGB = TCRGB

type CRITICAL_SECTION = TCRITICAL_SECTION

type CRITICAL_SECTION_DEBUG = TCRITICAL_SECTION_DEBUG

const CRITICAL_SECTION_NO_DEBUG_INFO = 16777216

type CRL_BLOB = TCRL_BLOB

type CRL_CONTEXT = TCRL_CONTEXT

type CRL_DIST_POINT = TCRL_DIST_POINT

type CRL_DIST_POINTS_INFO = TCRL_DIST_POINTS_INFO

const CRL_DIST_POINT_ERR_CRL_ISSUER_BIT = 2147483648

const CRL_DIST_POINT_ERR_INDEX_MASK = 127

const CRL_DIST_POINT_ERR_INDEX_SHIFT = 24

const CRL_DIST_POINT_FULL_NAME = 1

const CRL_DIST_POINT_ISSUER_RDN_NAME = 2

type CRL_DIST_POINT_NAME = TCRL_DIST_POINT_NAME

const CRL_DIST_POINT_NO_NAME = 0

type CRL_ENTRY = TCRL_ENTRY

const CRL_FIND_ANY = 0

const CRL_FIND_EXISTING = 2

const CRL_FIND_ISSUED_BY = 1

const CRL_FIND_ISSUED_BY_AKI_FLAG = 1

const CRL_FIND_ISSUED_BY_BASE_FLAG = 8

const CRL_FIND_ISSUED_BY_DELTA_FLAG = 4

const CRL_FIND_ISSUED_BY_SIGNATURE_FLAG = 2

const CRL_FIND_ISSUED_FOR = 3

type CRL_FIND_ISSUED_FOR_PARA = TCRL_FIND_ISSUED_FOR_PARA

const CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG = 16

type CRL_INFO = TCRL_INFO

type CRL_ISSUING_DIST_POINT = TCRL_ISSUING_DIST_POINT

const CRL_REASON_AA_COMPROMISE = 10

const CRL_REASON_AA_COMPROMISE_FLAG = 128

const CRL_REASON_AFFILIATION_CHANGED = 3

const CRL_REASON_AFFILIATION_CHANGED_FLAG = 16

const CRL_REASON_CA_COMPROMISE = 2

const CRL_REASON_CA_COMPROMISE_FLAG = 32

const CRL_REASON_CERTIFICATE_HOLD = 6

const CRL_REASON_CERTIFICATE_HOLD_FLAG = 2

const CRL_REASON_CESSATION_OF_OPERATION = 5

const CRL_REASON_CESSATION_OF_OPERATION_FLAG = 4

const CRL_REASON_KEY_COMPROMISE = 1

const CRL_REASON_KEY_COMPROMISE_FLAG = 64

const CRL_REASON_PRIVILEGE_WITHDRAWN = 9

const CRL_REASON_PRIVILEGE_WITHDRAWN_FLAG = 1

const CRL_REASON_REMOVE_FROM_CRL = 8

const CRL_REASON_SUPERSEDED = 4

const CRL_REASON_SUPERSEDED_FLAG = 8

const CRL_REASON_UNSPECIFIED = 0

const CRL_REASON_UNUSED_FLAG = 128

type CRL_REVOCATION_INFO = TCRL_REVOCATION_INFO

const CRL_V1 = 0

const CRL_V2 = 1

const CRM_PROTOCOL_DYNAMIC_MARSHAL_INFO = 2

const CRM_PROTOCOL_EXPLICIT_MARSHAL_ONLY = 1

type CRM_PROTOCOL_ID = TCRM_PROTOCOL_ID

const CRM_PROTOCOL_MAXIMUM_OPTION = 3

type CROSS_CERT_DIST_POINTS_INFO = TCROSS_CERT_DIST_POINTS_INFO

const CROSS_CERT_DIST_POINT_ERR_INDEX_MASK = 255

const CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT = 24

const CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_DEFAULT = 50

const CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_VALUE_NAME = "CryptnetCachedOcspSwitchToCrlCount"

const CRYPTNET_CRL_BEFORE_OCSP_ENABLE = 4294967295

const CRYPTNET_CRL_PRE_FETCH_DISABLE_INFORMATION_EVENTS_VALUE_NAME = "DisableInformationEvents"

const CRYPTNET_CRL_PRE_FETCH_LOG_FILE_NAME_VALUE_NAME = "LogFileName"

const CRYPTNET_CRL_PRE_FETCH_MAX_AGE_SECONDS_DEFAULT = 7200

const CRYPTNET_CRL_PRE_FETCH_MAX_AGE_SECONDS_MIN = 300

const CRYPTNET_CRL_PRE_FETCH_MAX_AGE_SECONDS_VALUE_NAME = "MaxAgeSeconds"

const CRYPTNET_CRL_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT = 300

const CRYPTNET_CRL_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME = "MinAfterNextUpdateSeconds"

const CRYPTNET_CRL_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT = 300

const CRYPTNET_CRL_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME = "MinBeforeNextUpdateSeconds"

const CRYPTNET_CRL_PRE_FETCH_PROCESS_NAME_LIST_VALUE_NAME = "ProcessNameList"

const CRYPTNET_CRL_PRE_FETCH_PUBLISH_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT = 3600

const CRYPTNET_CRL_PRE_FETCH_PUBLISH_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME = "PublishBeforeNextUpdateSeconds"

const CRYPTNET_CRL_PRE_FETCH_PUBLISH_RANDOM_INTERVAL_SECONDS_DEFAULT = 300

const CRYPTNET_CRL_PRE_FETCH_PUBLISH_RANDOM_INTERVAL_SECONDS_VALUE_NAME = "PublishRandomIntervalSeconds"

const CRYPTNET_CRL_PRE_FETCH_TIMEOUT_SECONDS_DEFAULT = 300

const CRYPTNET_CRL_PRE_FETCH_TIMEOUT_SECONDS_VALUE_NAME = "TimeoutSeconds"

const CRYPTNET_CRL_PRE_FETCH_URL_LIST_VALUE_NAME = "PreFetchUrlList"

const CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_DEFAULT = 500

const CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_VALUE_NAME = "CryptnetMaxCachedOcspPerCrlCount"

const CRYPTNET_OCSP_AFTER_CRL_DISABLE = 4294967295

const CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_DEFAULT = 1800

const CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME = "CryptnetPreFetchAfterCurrentTimePreFetchPeriodSeconds"

const CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_DEFAULT = 10

const CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_VALUE_NAME = "CryptnetPreFetchAfterPublishPreFetchDivisor"

const CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT = 20

const CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME = "CryptnetPreFetchBeforeNextUpdatePreFetchDivisor"

const CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT = 14400

const CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME = "CryptnetPreFetchMaxAfterNextUpdatePreFetchPeriodSeconds"

const CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_DEFAULT = 1209600

const CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_VALUE_NAME = "CryptnetPreFetchMaxMaxAgeSeconds"

const CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT = 1800

const CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME = "CryptnetPreFetchMinAfterNextUpdatePreFetchPeriodSeconds"

const CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT = 3600

const CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME = "CryptnetPreFetchMinBeforeNextUpdatePreFetchSeconds"

const CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_DEFAULT = 3600

const CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_VALUE_NAME = "CryptnetPreFetchMinMaxAgeSeconds"

const CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_DEFAULT = 1209600

const CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_VALUE_NAME = "CryptnetPreFetchMinOcspValidityPeriodSeconds"

const CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_DEFAULT = 300

const CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_VALUE_NAME = "CryptnetPreFetchRetrievalTimeoutSeconds"

const CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_DEFAULT = 30

const CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_VALUE_NAME = "CryptnetPreFetchScanAfterTriggerDelaySeconds"

const CRYPTNET_PRE_FETCH_TRIGGER_DISABLE = 4294967295

const CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_DEFAULT = 600

const CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_VALUE_NAME = "CryptnetPreFetchTriggerPeriodSeconds"

const CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT = 10

const CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME = "CryptnetPreFetchValidityPeriodAfterNextUpdatePreFetchDivisor"

const CRYPTNET_URL_CACHE_DEFAULT_FLUSH = 0

const CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_DEFAULT = 2419200

const CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_VALUE_NAME = "CryptnetDefaultFlushExemptSeconds"

const CRYPTNET_URL_CACHE_DISABLE_FLUSH = 4294967295

type CRYPTNET_URL_CACHE_FLUSH_INFO = TCRYPTNET_URL_CACHE_FLUSH_INFO

const CRYPTNET_URL_CACHE_PRE_FETCH_AUTOROOT_CAB = 5

const CRYPTNET_URL_CACHE_PRE_FETCH_BLOB = 1

const CRYPTNET_URL_CACHE_PRE_FETCH_CRL = 2

const CRYPTNET_URL_CACHE_PRE_FETCH_DISALLOWED_CERT_CAB = 6

type CRYPTNET_URL_CACHE_PRE_FETCH_INFO = TCRYPTNET_URL_CACHE_PRE_FETCH_INFO

const CRYPTNET_URL_CACHE_PRE_FETCH_NONE = 0

const CRYPTNET_URL_CACHE_PRE_FETCH_OCSP = 3

const CRYPTNET_URL_CACHE_PRE_FETCH_PIN_RULES_CAB = 7

const CRYPTNET_URL_CACHE_RESPONSE_HTTP = 1

type CRYPTNET_URL_CACHE_RESPONSE_INFO = TCRYPTNET_URL_CACHE_RESPONSE_INFO

const CRYPTNET_URL_CACHE_RESPONSE_NONE = 0

const CRYPTNET_URL_CACHE_RESPONSE_VALIDATED = 32768

const CRYPTPROTECTMEMORY_BLOCK_SIZE = 16

const CRYPTPROTECTMEMORY_CROSS_PROCESS = 1

const CRYPTPROTECTMEMORY_SAME_LOGON = 2

const CRYPTPROTECTMEMORY_SAME_PROCESS = 0

const CRYPTPROTECT_AUDIT = 16

const CRYPTPROTECT_CRED_REGENERATE = 128

const CRYPTPROTECT_CRED_SYNC = 8

const CRYPTPROTECT_FIRST_RESERVED_FLAGVAL = 268435455

const CRYPTPROTECT_LAST_RESERVED_FLAGVAL = 4294967295

const CRYPTPROTECT_LOCAL_MACHINE = 4

const CRYPTPROTECT_NO_RECOVERY = 32

type CRYPTPROTECT_PROMPTSTRUCT = TCRYPTPROTECT_PROMPTSTRUCT

const CRYPTPROTECT_PROMPT_ON_PROTECT = 2

const CRYPTPROTECT_PROMPT_ON_UNPROTECT = 1

const CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 16

const CRYPTPROTECT_PROMPT_RESERVED = 4

const CRYPTPROTECT_PROMPT_STRONG = 8

const CRYPTPROTECT_UI_FORBIDDEN = 1

const CRYPTPROTECT_VERIFY_PROTECTION = 64

type CRYPT_3DES_KEY_STATE = TCRYPT_3DES_KEY_STATE

const CRYPT_ACCUMULATIVE_TIMEOUT = 2048

const CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = 65536

const CRYPT_ACQUIRE_CACHE_FLAG = 1

const CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 4

const CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = 458752

const CRYPT_ACQUIRE_NO_HEALING = 8

const CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 262144

const CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 131072

const CRYPT_ACQUIRE_SILENT_FLAG = 64

const CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 2

const CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG = 128

type CRYPT_AES_128_KEY_STATE = TCRYPT_AES_128_KEY_STATE

type CRYPT_AES_256_KEY_STATE = TCRYPT_AES_256_KEY_STATE

const CRYPT_AIA_RETRIEVAL = 524288

type CRYPT_ALGORITHM_IDENTIFIER = TCRYPT_ALGORITHM_IDENTIFIER

const CRYPT_ALL_FUNCTIONS = 1

const CRYPT_ALL_PROVIDERS = 2

const CRYPT_ANY = 4

const CRYPT_ARCHIVABLE = 16384

const CRYPT_ARCHIVE = 256

const CRYPT_ASN_ENCODING = 1

const CRYPT_ASYNC_RETRIEVAL = 16

type CRYPT_ASYNC_RETRIEVAL_COMPLETION = TCRYPT_ASYNC_RETRIEVAL_COMPLETION

type CRYPT_ATTRIBUTE = TCRYPT_ATTRIBUTE

type CRYPT_ATTRIBUTES = TCRYPT_ATTRIBUTES

type CRYPT_ATTRIBUTE_TYPE_VALUE = TCRYPT_ATTRIBUTE_TYPE_VALUE

type CRYPT_ATTR_BLOB = TCRYPT_ATTR_BLOB

type CRYPT_BIT_BLOB = TCRYPT_BIT_BLOB

type CRYPT_BLOB_ARRAY = TCRYPT_BLOB_ARRAY

const CRYPT_BLOB_VER3 = 128

const CRYPT_CACHE_ONLY_RETRIEVAL = 2

const CRYPT_CHECK_FRESHNESS_TIME_VALIDITY = 1024

type CRYPT_CONTENT_INFO = TCRYPT_CONTENT_INFO

type CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = TCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY

type CRYPT_CONTEXTS = TCRYPT_CONTEXTS

type CRYPT_CONTEXT_CONFIG = TCRYPT_CONTEXT_CONFIG

type CRYPT_CONTEXT_FUNCTIONS = TCRYPT_CONTEXT_FUNCTIONS

type CRYPT_CONTEXT_FUNCTION_CONFIG = TCRYPT_CONTEXT_FUNCTION_CONFIG

type CRYPT_CONTEXT_FUNCTION_PROVIDERS = TCRYPT_CONTEXT_FUNCTION_PROVIDERS

const CRYPT_CREATE_IV = 512

const CRYPT_CREATE_NEW_FLUSH_ENTRY = 268435456

const CRYPT_CREATE_SALT = 4

type CRYPT_CREDENTIALS = TCRYPT_CREDENTIALS

type CRYPT_CSP_PROVIDER = TCRYPT_CSP_PROVIDER

type CRYPT_DATA_BLOB = TCRYPT_DATA_BLOB

const CRYPT_DATA_KEY = 2048

const CRYPT_DECODE_ALLOC_FLAG = 32768

const CRYPT_DECODE_ENABLE_IA5CONVERSION_FLAG = 100663296

const CRYPT_DECODE_ENABLE_PUNYCODE_FLAG = 33554432

const CRYPT_DECODE_ENABLE_UTF8PERCENT_FLAG = 67108864

const CRYPT_DECODE_NOCOPY_FLAG = 1

const CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG = 8

type CRYPT_DECODE_PARA = TCRYPT_DECODE_PARA

const CRYPT_DECODE_SHARE_OID_STRING_FLAG = 4

const CRYPT_DECODE_TO_BE_SIGNED_FLAG = 2

const CRYPT_DECRYPT = 2

type CRYPT_DECRYPT_MESSAGE_PARA = TCRYPT_DECRYPT_MESSAGE_PARA

const CRYPT_DECRYPT_RSA_NO_PADDING_CHECK = 32

const CRYPT_DEFAULT_CONTAINER_OPTIONAL = 128

const CRYPT_DEFAULT_CONTEXT = "Default"

const CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG = 1

const CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID = 1

const CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID = 2

type CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA = TCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA

const CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG = 2

const CRYPT_DEFAULT_OID = "DEFAULT"

const CRYPT_DELETEKEYSET = 16

const CRYPT_DELETE_DEFAULT = 4

const CRYPT_DELETE_KEYSET = 16

type CRYPT_DER_BLOB = TCRYPT_DER_BLOB

const CRYPT_DESTROYKEY = 4

type CRYPT_DES_KEY_STATE = TCRYPT_DES_KEY_STATE

type CRYPT_DIGEST_BLOB = TCRYPT_DIGEST_BLOB

const CRYPT_DOMAIN = 2

const CRYPT_DONT_CACHE_RESULT = 8

const CRYPT_DONT_CHECK_TIME_VALIDITY = 512

const CRYPT_DONT_VERIFY_SIGNATURE = 256

type CRYPT_ECC_CMS_SHARED_INFO = TCRYPT_ECC_CMS_SHARED_INFO

const CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH = 4

type CRYPT_ECC_PRIVATE_KEY_INFO = TCRYPT_ECC_PRIVATE_KEY_INFO

const CRYPT_ECC_PRIVATE_KEY_INFO_v1 = 1

const CRYPT_ENABLE_FILE_RETRIEVAL = 134217728

const CRYPT_ENABLE_SSL_REVOCATION_RETRIEVAL = 8388608

const CRYPT_ENCODE_ALLOC_FLAG = 32768

const CRYPT_ENCODE_DECODE_NONE = 0

const CRYPT_ENCODE_ENABLE_IA5CONVERSION_FLAG = 393216

const CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG = 131072

const CRYPT_ENCODE_ENABLE_UTF8PERCENT_FLAG = 262144

const CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG = 8

type CRYPT_ENCODE_PARA = TCRYPT_ENCODE_PARA

const CRYPT_ENCRYPT = 1

type CRYPT_ENCRYPTED_PRIVATE_KEY_INFO = TCRYPT_ENCRYPTED_PRIVATE_KEY_INFO

const CRYPT_ENCRYPT_ALG_OID_GROUP_ID = 2

type CRYPT_ENCRYPT_MESSAGE_PARA = TCRYPT_ENCRYPT_MESSAGE_PARA

const CRYPT_ENHKEY_USAGE_OID_GROUP_ID = 7

type CRYPT_ENROLLMENT_NAME_VALUE_PAIR = TCRYPT_ENROLLMENT_NAME_VALUE_PAIR

const CRYPT_EXCLUSIVE = 1

const CRYPT_EXPORT = 4

const CRYPT_EXPORTABLE = 1

const CRYPT_EXPORT_KEY = 64

const CRYPT_EXT_OR_ATTR_OID_GROUP_ID = 6

const CRYPT_FAILED = 0

const CRYPT_FASTSGC = 2

const CRYPT_FIND_MACHINE_KEYSET_FLAG = 2

const CRYPT_FIND_SILENT_KEYSET_FLAG = 64

const CRYPT_FIND_USER_KEYSET_FLAG = 1

const CRYPT_FIRST = 1

const CRYPT_FIRST_ALG_OID_GROUP_ID = 1

const CRYPT_FLAG_IPSEC = 16

const CRYPT_FLAG_PCT1 = 1

const CRYPT_FLAG_SIGNING = 32

const CRYPT_FLAG_SSL2 = 2

const CRYPT_FLAG_SSL3 = 4

const CRYPT_FLAG_TLS1 = 8

const CRYPT_FORCE_KEY_PROTECTION_HIGH = 32768

const CRYPT_FORMAT_COMMA = 4096

const CRYPT_FORMAT_CRLF = 512

const CRYPT_FORMAT_OID = 4

const CRYPT_FORMAT_RDN_CRLF = 512

const CRYPT_FORMAT_RDN_REVERSE = 2048

const CRYPT_FORMAT_RDN_SEMICOLON = 256

const CRYPT_FORMAT_RDN_UNQUOTE = 1024

const CRYPT_FORMAT_SEMICOLON = 256

const CRYPT_FORMAT_SIMPLE = 1

const CRYPT_FORMAT_STR_MULTI_LINE = 1

const CRYPT_FORMAT_STR_NO_HEX = 16

const CRYPT_FORMAT_X509 = 2

const CRYPT_GET_INSTALLED_OID_FUNC_FLAG = 1

type CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO = TCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO

const CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE = 8

const CRYPT_GET_URL_FROM_EXTENSION = 2

const CRYPT_GET_URL_FROM_PROPERTY = 1

const CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE = 4

const CRYPT_HASH_ALG_OID_GROUP_ID = 1

type CRYPT_HASH_BLOB = TCRYPT_HASH_BLOB

type CRYPT_HASH_INFO = TCRYPT_HASH_INFO

type CRYPT_HASH_MESSAGE_PARA = TCRYPT_HASH_MESSAGE_PARA

const CRYPT_HTTP_POST_RETRIEVAL = 1048576

type CRYPT_IMAGE_REF = TCRYPT_IMAGE_REF

type CRYPT_IMAGE_REG = TCRYPT_IMAGE_REG

const CRYPT_IMPL_HARDWARE = 1

const CRYPT_IMPL_MIXED = 3

const CRYPT_IMPL_REMOVABLE = 8

const CRYPT_IMPL_SOFTWARE = 2

const CRYPT_IMPL_UNKNOWN = 4

const CRYPT_IMPORT_KEY = 128

const CRYPT_INITIATOR = 64

const CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG = 1

const CRYPT_INSTALL_OID_INFO_BEFORE_FLAG = 1

type CRYPT_INTEGER_BLOB = TCRYPT_INTEGER_BLOB

type CRYPT_INTERFACE_REG = TCRYPT_INTERFACE_REG

const CRYPT_IPSEC_HMAC_KEY = 256

const CRYPT_KDF_OID_GROUP_ID = 10

const CRYPT_KEEP_TIME_VALID = 128

const CRYPT_KEK = 1024

const CRYPT_KEYID_ALLOC_FLAG = 32768

const CRYPT_KEYID_DELETE_FLAG = 16

const CRYPT_KEYID_MACHINE_FLAG = 32

const CRYPT_KEYID_SET_NEW_FLAG = 8192

type CRYPT_KEY_PROV_INFO = TCRYPT_KEY_PROV_INFO

type CRYPT_KEY_PROV_PARAM = TCRYPT_KEY_PROV_PARAM

type CRYPT_KEY_SIGN_MESSAGE_PARA = TCRYPT_KEY_SIGN_MESSAGE_PARA

type CRYPT_KEY_VERIFY_MESSAGE_PARA = TCRYPT_KEY_VERIFY_MESSAGE_PARA

const CRYPT_KM = 2

const CRYPT_LAST_ALG_OID_GROUP_ID = 4

const CRYPT_LAST_OID_GROUP_ID = 10

const CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL = 262144

const CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE = 32768

const CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL = 8192

const CRYPT_LDAP_SIGN_RETRIEVAL = 65536

const CRYPT_LITTLE_ENDIAN = 1

const CRYPT_LOCAL = 1

const CRYPT_LOCALIZED_NAME_ENCODING_TYPE = 0

const CRYPT_LOCALIZED_NAME_OID = "LocalizedNames"

const CRYPT_MAC = 32

const CRYPT_MACHINE_DEFAULT = 1

const CRYPT_MACHINE_KEYSET = 32

type CRYPT_MASK_GEN_ALGORITHM = TCRYPT_MASK_GEN_ALGORITHM

const CRYPT_MATCH_ANY_ENCODING_TYPE = 4294967295

const CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG = 1

const CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG = 2

const CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG = 4

const CRYPT_MESSAGE_KEYID_SIGNER_FLAG = 4

const CRYPT_MESSAGE_SILENT_KEYSET_FLAG = 64

const CRYPT_MIN_DEPENDENCIES = 1

const CRYPT_MM = 3

const CRYPT_MODE_CBC = 1

const CRYPT_MODE_CBCI = 6

const CRYPT_MODE_CBCOFM = 9

const CRYPT_MODE_CBCOFMI = 10

const CRYPT_MODE_CFB = 4

const CRYPT_MODE_CFBP = 7

const CRYPT_MODE_CTS = 5

const CRYPT_MODE_ECB = 2

const CRYPT_MODE_OFB = 3

const CRYPT_MODE_OFBP = 8

const CRYPT_NDR_ENCODING = 2

const CRYPT_NEWKEYSET = 8

const CRYPT_NEXT = 2

const CRYPT_NOHASHOID = 1

const CRYPT_NOT_MODIFIED_RETRIEVAL = 4194304

const CRYPT_NO_AUTH_RETRIEVAL = 131072

const CRYPT_NO_OCSP_FAILOVER_TO_CRL_RETRIEVAL = 33554432

const CRYPT_NO_SALT = 16

const CRYPT_OAEP = 64

const CRYPT_OBJECT_LOCATOR_FIRST_RESERVED_USER_NAME_TYPE = 33

const CRYPT_OBJECT_LOCATOR_LAST_RESERVED_NAME_TYPE = 32

const CRYPT_OBJECT_LOCATOR_LAST_RESERVED_USER_NAME_TYPE = 65535

type CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE = TCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE

const CRYPT_OBJECT_LOCATOR_RELEASE_DLL_UNLOAD = 4

const CRYPT_OBJECT_LOCATOR_RELEASE_PROCESS_EXIT = 3

const CRYPT_OBJECT_LOCATOR_RELEASE_SERVICE_STOP = 2

const CRYPT_OBJECT_LOCATOR_RELEASE_SYSTEM_SHUTDOWN = 1

const CRYPT_OBJECT_LOCATOR_SPN_NAME_TYPE = 1

type CRYPT_OBJID_BLOB = TCRYPT_OBJID_BLOB

type CRYPT_OBJID_TABLE = TCRYPT_OBJID_TABLE

const CRYPT_OCSP_ONLY_RETRIEVAL = 16777216

const CRYPT_OFFLINE_CHECK_RETRIEVAL = 16384

const CRYPT_OID_CREATE_COM_OBJECT_FUNC = "CryptDllCreateCOMObject"

const CRYPT_OID_DECODE_OBJECT_EX_FUNC = "CryptDllDecodeObjectEx"

const CRYPT_OID_DECODE_OBJECT_FUNC = "CryptDllDecodeObject"

const CRYPT_OID_DISABLE_SEARCH_DS_FLAG = 2147483648

const CRYPT_OID_ENCODE_OBJECT_EX_FUNC = "CryptDllEncodeObjectEx"

const CRYPT_OID_ENCODE_OBJECT_FUNC = "CryptDllEncodeObject"

const CRYPT_OID_ENUM_PHYSICAL_STORE_FUNC = "CertDllEnumPhysicalStore"

const CRYPT_OID_ENUM_SYSTEM_STORE_FUNC = "CertDllEnumSystemStore"

const CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC = "CryptDllExportPrivateKeyInfoEx"

const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC = "CryptDllExportPublicKeyInfoEx2"

const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC = "CryptDllExportPublicKeyInfoFromBCryptKeyHandle"

const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC = "CryptDllExportPublicKeyInfoEx"

const CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC = "CryptDllExtractEncodedSignatureParameters"

const CRYPT_OID_FIND_LOCALIZED_NAME_FUNC = "CryptDllFindLocalizedName"

const CRYPT_OID_FIND_OID_INFO_FUNC = "CryptDllFindOIDInfo"

const CRYPT_OID_FORMAT_OBJECT_FUNC = "CryptDllFormatObject"

type CRYPT_OID_FUNC_ENTRY = TCRYPT_OID_FUNC_ENTRY

const CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC = "CryptDllImportPrivateKeyInfoEx"

const CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC = "CryptDllImportPublicKeyInfoEx2"

const CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC = "CryptDllImportPublicKeyInfoEx"

type CRYPT_OID_INFO = TCRYPT_OID_INFO

const CRYPT_OID_INFO_ALGID_KEY = 3

const CRYPT_OID_INFO_CNG_ALGID_KEY = 5

const CRYPT_OID_INFO_CNG_SIGN_KEY = 6

const CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM = "CryptOIDInfoECCParameters"

const CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM = "CryptOIDInfoECCWrapParameters"

const CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM = "CryptOIDInfoHashParameters"

const CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM = "CryptOIDInfoMgf1Parameters"

const CRYPT_OID_INFO_NAME_KEY = 2

const CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM = "CryptOIDInfoNoParameters"

const CRYPT_OID_INFO_NO_SIGN_ALGORITHM = "CryptOIDInfoNoSign"

const CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM = "CryptOIDInfoOAEPParameters"

const CRYPT_OID_INFO_OID_GROUP_BIT_LEN_MASK = 268369920

const CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT = 16

const CRYPT_OID_INFO_OID_KEY = 1

const CRYPT_OID_INFO_OID_KEY_FLAGS_MASK = 4294901760

const CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG = 1073741824

const CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG = 2147483648

const CRYPT_OID_INFO_SIGN_KEY = 4

const CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG = 1

const CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG = 4

const CRYPT_OID_OPEN_STORE_PROV_FUNC = "CertDllOpenStoreProv"

const CRYPT_OID_OPEN_SYSTEM_STORE_PROV_FUNC = "CertDllOpenSystemStoreProv"

const CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG = 1073741824

const CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG = 2147483648

const CRYPT_OID_REGISTER_PHYSICAL_STORE_FUNC = "CertDllRegisterPhysicalStore"

const CRYPT_OID_REGISTER_SYSTEM_STORE_FUNC = "CertDllRegisterSystemStore"

const CRYPT_OID_REGPATH = "Software\\\\Microsoft\\\\Cryptography\\\\OID"

const CRYPT_OID_REG_DLL_VALUE_NAME = "Dll"

const CRYPT_OID_REG_ENCODING_TYPE_PREFIX = "EncodingType "

const CRYPT_OID_REG_FLAGS_VALUE_NAME = "CryptFlags"

const CRYPT_OID_REG_FUNC_NAME_VALUE_NAME = "FuncName"

const CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A = "FuncName"

const CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC = "CryptDllSignAndEncodeHash"

const CRYPT_OID_SYSTEM_STORE_LOCATION_VALUE_NAME = "SystemStoreLocation"

const CRYPT_OID_UNREGISTER_PHYSICAL_STORE_FUNC = "CertDllUnregisterPhysicalStore"

const CRYPT_OID_UNREGISTER_SYSTEM_STORE_FUNC = "CertDllUnregisterSystemStore"

const CRYPT_OID_USE_CURVE_NAME_FOR_ENCODE_FLAG = 536870912

const CRYPT_OID_USE_CURVE_PARAMETERS_FOR_ENCODE_FLAG = 268435456

const CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG = 2

const CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC = "CertDllVerifyCertificateChainPolicy"

const CRYPT_OID_VERIFY_CTL_USAGE_FUNC = "CertDllVerifyCTLUsage"

const CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC = "CryptDllVerifyEncodedSignature"

const CRYPT_OID_VERIFY_REVOCATION_FUNC = "CertDllVerifyRevocation"

const CRYPT_ONLINE = 128

const CRYPT_OVERRIDE = 65536

const CRYPT_OVERWRITE = 1

const CRYPT_OWF_REPL_LM_HASH = 1

type CRYPT_PASSWORD_CREDENTIALS = TCRYPT_PASSWORD_CREDENTIALS

type CRYPT_PASSWORD_CREDENTIALSA = TCRYPT_PASSWORD_CREDENTIALSA

type CRYPT_PASSWORD_CREDENTIALSW = TCRYPT_PASSWORD_CREDENTIALSW

type CRYPT_PKCS12_PBE_PARAMS = TCRYPT_PKCS12_PBE_PARAMS

type CRYPT_PKCS8_EXPORT_PARAMS = TCRYPT_PKCS8_EXPORT_PARAMS

type CRYPT_PKCS8_IMPORT_PARAMS = TCRYPT_PKCS8_IMPORT_PARAMS

const CRYPT_POLICY_OID_GROUP_ID = 8

const CRYPT_PREGEN = 64

const CRYPT_PRIORITY_BOTTOM = 4294967295

const CRYPT_PRIORITY_TOP = 0

type CRYPT_PRIVATE_KEY_BLOB_AND_PARAMS = TCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS

type CRYPT_PRIVATE_KEY_INFO = TCRYPT_PRIVATE_KEY_INFO

const CRYPT_PROCESS_ISOLATE = 65536

type CRYPT_PROPERTY_REF = TCRYPT_PROPERTY_REF

type CRYPT_PROVIDERS = TCRYPT_PROVIDERS

type CRYPT_PROVIDER_REF = TCRYPT_PROVIDER_REF

type CRYPT_PROVIDER_REFS = TCRYPT_PROVIDER_REFS

type CRYPT_PROVIDER_REG = TCRYPT_PROVIDER_REG

const CRYPT_PROXY_CACHE_RETRIEVAL = 2097152

type CRYPT_PSOURCE_ALGORITHM = TCRYPT_PSOURCE_ALGORITHM

const CRYPT_PSTORE = 2

const CRYPT_PUBKEY_ALG_OID_GROUP_ID = 3

const CRYPT_RANDOM_QUERY_STRING_RETRIEVAL = 67108864

const CRYPT_RC2_128BIT_VERSION = 58

const CRYPT_RC2_40BIT_VERSION = 160

const CRYPT_RC2_56BIT_VERSION = 52

const CRYPT_RC2_64BIT_VERSION = 120

type CRYPT_RC2_CBC_PARAMETERS = TCRYPT_RC2_CBC_PARAMETERS

type CRYPT_RC4_KEY_STATE = TCRYPT_RC4_KEY_STATE

const CRYPT_RDN_ATTR_OID_GROUP_ID = 5

const CRYPT_READ = 8

const CRYPT_RECIPIENT = 16

const CRYPT_REGISTER_FIRST_INDEX = 0

const CRYPT_REGISTER_LAST_INDEX = 4294967295

type CRYPT_RETRIEVE_AUX_INFO = TCRYPT_RETRIEVE_AUX_INFO

const CRYPT_RETRIEVE_MAX_ERROR_CONTENT_LENGTH = 4096

const CRYPT_RETRIEVE_MULTIPLE_OBJECTS = 1

type CRYPT_RSAES_OAEP_PARAMETERS = TCRYPT_RSAES_OAEP_PARAMETERS

type CRYPT_RSA_SSA_PSS_PARAMETERS = TCRYPT_RSA_SSA_PSS_PARAMETERS

const CRYPT_SECRETDIGEST = 1

const CRYPT_SEC_DESCR = 1

type CRYPT_SEQUENCE_OF_ANY = TCRYPT_SEQUENCE_OF_ANY

const CRYPT_SERVER = 1024

const CRYPT_SF = 256

const CRYPT_SGC = 1

const CRYPT_SGCKEY = 8192

const CRYPT_SGC_ENUM = 4

const CRYPT_SIGN_ALG_OID_GROUP_ID = 4

type CRYPT_SIGN_MESSAGE_PARA = TCRYPT_SIGN_MESSAGE_PARA

const CRYPT_SILENT = 64

type CRYPT_SMART_CARD_ROOT_INFO = TCRYPT_SMART_CARD_ROOT_INFO

type CRYPT_SMIME_CAPABILITIES = TCRYPT_SMIME_CAPABILITIES

type CRYPT_SMIME_CAPABILITY = TCRYPT_SMIME_CAPABILITY

const CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG = 65536

const CRYPT_SSL2_FALLBACK = 2

const CRYPT_STICKY_CACHE_RETRIEVAL = 4096

const CRYPT_STRING_ANY = 7

const CRYPT_STRING_BASE64 = 1

const CRYPT_STRING_BASE64HEADER = 0

const CRYPT_STRING_BASE64REQUESTHEADER = 3

const CRYPT_STRING_BASE64URI = 13

const CRYPT_STRING_BASE64X509CRLHEADER = 9

const CRYPT_STRING_BASE64_ANY = 6

const CRYPT_STRING_BINARY = 2

const CRYPT_STRING_ENCODEMASK = 255

const CRYPT_STRING_HASHDATA = 268435456

const CRYPT_STRING_HEX = 4

const CRYPT_STRING_HEXADDR = 10

const CRYPT_STRING_HEXASCII = 5

const CRYPT_STRING_HEXASCIIADDR = 11

const CRYPT_STRING_HEXRAW = 12

const CRYPT_STRING_HEX_ANY = 8

const CRYPT_STRING_NOCR = 2147483648

const CRYPT_STRING_NOCRLF = 1073741824

const CRYPT_STRING_PERCENTESCAPE = 134217728

const CRYPT_STRING_RESERVED100 = 256

const CRYPT_STRING_RESERVED200 = 512

const CRYPT_STRING_STRICT = 536870912

const CRYPT_SUCCEED = 1

const CRYPT_TEMPLATE_OID_GROUP_ID = 9

type CRYPT_TIMESTAMP_ACCURACY = TCRYPT_TIMESTAMP_ACCURACY

type CRYPT_TIMESTAMP_CONTEXT = TCRYPT_TIMESTAMP_CONTEXT

type CRYPT_TIMESTAMP_INFO = TCRYPT_TIMESTAMP_INFO

type CRYPT_TIMESTAMP_PARA = TCRYPT_TIMESTAMP_PARA

type CRYPT_TIMESTAMP_REQUEST = TCRYPT_TIMESTAMP_REQUEST

type CRYPT_TIMESTAMP_RESPONSE = TCRYPT_TIMESTAMP_RESPONSE

type CRYPT_TIME_STAMP_REQUEST_INFO = TCRYPT_TIME_STAMP_REQUEST_INFO

const CRYPT_TYPE2_FORMAT = 2

type CRYPT_UINT_BLOB = TCRYPT_UINT_BLOB

const CRYPT_UI_PROMPT = 4

const CRYPT_UM = 1

const CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG = 16777216

const CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG = 1073741824

const CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG = 2147483648

const CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG = 536870912

const CRYPT_UNICODE_NAME_ENCODE_FORCE_UTF8_UNICODE_FLAG = 268435456

const CRYPT_UPDATE_KEY = 8

type CRYPT_URL_ARRAY = TCRYPT_URL_ARRAY

type CRYPT_URL_INFO = TCRYPT_URL_INFO

const CRYPT_USERDATA = 1

const CRYPT_USER_DEFAULT = 2

const CRYPT_USER_KEYSET = 4096

const CRYPT_USER_PROTECTED = 2

const CRYPT_USER_PROTECTED_STRONG = 1048576

const CRYPT_VERIFYCONTEXT = 4026531840

const CRYPT_VERIFY_CERT_SIGN_DISABLE_MD2_MD4_FLAG = 1

const CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT = 2

const CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN = 3

const CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL = 4

const CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY = 1

const CRYPT_VERIFY_CERT_SIGN_RETURN_STRONG_PROPERTIES_FLAG = 4

const CRYPT_VERIFY_CERT_SIGN_SET_STRONG_PROPERTIES_FLAG = 2

type CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO = TCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO

const CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB = 1

const CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT = 2

const CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL = 3

const CRYPT_VERIFY_CERT_SIGN_SUBJECT_OCSP_BASIC_SIGNED_RESPONSE = 4

const CRYPT_VERIFY_CONTEXT_SIGNATURE = 32

const CRYPT_VERIFY_DATA_HASH = 64

type CRYPT_VERIFY_MESSAGE_PARA = TCRYPT_VERIFY_MESSAGE_PARA

const CRYPT_VOLATILE = 4096

const CRYPT_WIRE_ONLY_RETRIEVAL = 4

const CRYPT_WRITE = 16

const CRYPT_X931_FORMAT = 4

const CRYPT_X942_COUNTER_BYTE_LENGTH = 4

const CRYPT_X942_KEY_LENGTH_BYTE_LENGTH = 4

type CRYPT_X942_OTHER_INFO = TCRYPT_X942_OTHER_INFO

const CRYPT_X942_PUB_INFO_BYTE_LENGTH = 64

const CRYPT_Y_ONLY = 1

const CSOUND_SYSTEM = 16

type CSPLATFORM = TCSPLATFORM

const CSTR_EQUAL = 2

const CSTR_GREATER_THAN = 3

const CSTR_LESS_THAN = 1

const CSV_INVALID_DEVICE_NUMBER = 4294967295

type CSV_NAMESPACE_INFO = TCSV_NAMESPACE_INFO

const CSV_NAMESPACE_INFO_V1 = 0

const CS_BYTEALIGNCLIENT = 4096

const CS_BYTEALIGNWINDOW = 8192

const CS_CLASSDC = 64

const CS_DBLCLKS = 8

const CS_DELETE_TRANSFORM = 3

const CS_DISABLE = 2

const CS_DROPSHADOW = 131072

const CS_ENABLE = 1

const CS_E_FIRST = 2147746148

const CS_E_LAST = 2147746159

const CS_GLOBALCLASS = 16384

const CS_HREDRAW = 2

const CS_IME = 65536

const CS_INSERTCHAR = 8192

const CS_NOCLOSE = 512

const CS_NOMOVECARET = 16384

const CS_OWNDC = 32

const CS_PARENTDC = 128

const CS_SAVEBITS = 2048

type CS_STUB_INFO = TCS_STUB_INFO

type CS_TAG_GETTING_ROUTINE = TCS_TAG_GETTING_ROUTINE

type CS_TYPE_FROM_NETCS_ROUTINE = TCS_TYPE_FROM_NETCS_ROUTINE

type CS_TYPE_LOCAL_SIZE_ROUTINE = TCS_TYPE_LOCAL_SIZE_ROUTINE

type CS_TYPE_NET_SIZE_ROUTINE = TCS_TYPE_NET_SIZE_ROUTINE

type CS_TYPE_TO_NETCS_ROUTINE = TCS_TYPE_TO_NETCS_ROUTINE

const CS_VREDRAW = 1

const CTLCOLOR_BTN = 3

const CTLCOLOR_DLG = 4

const CTLCOLOR_EDIT = 1

const CTLCOLOR_LISTBOX = 2

const CTLCOLOR_MAX = 7

const CTLCOLOR_MSGBOX = 0

const CTLCOLOR_SCROLLBAR = 5

const CTLCOLOR_STATIC = 6

type CTL_ANY_SUBJECT_INFO = TCTL_ANY_SUBJECT_INFO

const CTL_ANY_SUBJECT_TYPE = 1

const CTL_CERT_SUBJECT_TYPE = 2

type CTL_CONTEXT = TCTL_CONTEXT

type CTL_ENTRY = TCTL_ENTRY

const CTL_ENTRY_FROM_PROP_CHAIN_FLAG = 1

const CTL_FIND_ANY = 0

const CTL_FIND_EXISTING = 5

const CTL_FIND_MD5_HASH = 2

const CTL_FIND_NO_LIST_ID_CBDATA = 4294967295

const CTL_FIND_NO_SIGNER_PTR = -1

const CTL_FIND_SAME_USAGE_FLAG = 1

const CTL_FIND_SHA1_HASH = 1

const CTL_FIND_SUBJECT = 4

type CTL_FIND_SUBJECT_PARA = TCTL_FIND_SUBJECT_PARA

const CTL_FIND_USAGE = 3

type CTL_FIND_USAGE_PARA = TCTL_FIND_USAGE_PARA

type CTL_INFO = TCTL_INFO

type CTL_USAGE = TCTL_USAGE

type CTL_USAGE_MATCH = TCTL_USAGE_MATCH

const CTL_V1 = 0

type CTL_VERIFY_USAGE_PARA = TCTL_VERIFY_USAGE_PARA

type CTL_VERIFY_USAGE_STATUS = TCTL_VERIFY_USAGE_STATUS

const CTMF_INCLUDE_APPCONTAINER = 1

const CTMF_VALID_FLAGS = 1

const CTRL_BREAK_EVENT = 1

const CTRL_CLOSE_EVENT = 2

const CTRL_C_EVENT = 0

const CTRL_LOGOFF_EVENT = 5

const CTRL_SHUTDOWN_EVENT = 6

const CTRY_ALBANIA = 355

const CTRY_ALGERIA = 213

const CTRY_ARGENTINA = 54

const CTRY_ARMENIA = 374

const CTRY_AUSTRALIA = 61

const CTRY_AUSTRIA = 43

const CTRY_AZERBAIJAN = 994

const CTRY_BAHRAIN = 973

const CTRY_BELARUS = 375

const CTRY_BELGIUM = 32

const CTRY_BELIZE = 501

const CTRY_BOLIVIA = 591

const CTRY_BRAZIL = 55

const CTRY_BRUNEI_DARUSSALAM = 673

const CTRY_BULGARIA = 359

const CTRY_CANADA = 2

const CTRY_CARIBBEAN = 1

const CTRY_CHILE = 56

const CTRY_COLOMBIA = 57

const CTRY_COSTA_RICA = 506

const CTRY_CROATIA = 385

const CTRY_CZECH = 420

const CTRY_DEFAULT = 0

const CTRY_DENMARK = 45

const CTRY_DOMINICAN_REPUBLIC = 1

const CTRY_ECUADOR = 593

const CTRY_EGYPT = 20

const CTRY_EL_SALVADOR = 503

const CTRY_ESTONIA = 372

const CTRY_FAEROE_ISLANDS = 298

const CTRY_FINLAND = 358

const CTRY_FRANCE = 33

const CTRY_GEORGIA = 995

const CTRY_GERMANY = 49

const CTRY_GREECE = 30

const CTRY_GUATEMALA = 502

const CTRY_HONDURAS = 504

const CTRY_HONG_KONG = 852

const CTRY_HUNGARY = 36

const CTRY_ICELAND = 354

const CTRY_INDIA = 91

const CTRY_INDONESIA = 62

const CTRY_IRAN = 981

const CTRY_IRAQ = 964

const CTRY_IRELAND = 353

const CTRY_ISRAEL = 972

const CTRY_ITALY = 39

const CTRY_JAMAICA = 1

const CTRY_JAPAN = 81

const CTRY_JORDAN = 962

const CTRY_KAZAKSTAN = 7

const CTRY_KENYA = 254

const CTRY_KUWAIT = 965

const CTRY_KYRGYZSTAN = 996

const CTRY_LATVIA = 371

const CTRY_LEBANON = 961

const CTRY_LIBYA = 218

const CTRY_LIECHTENSTEIN = 41

const CTRY_LITHUANIA = 370

const CTRY_LUXEMBOURG = 352

const CTRY_MACAU = 853

const CTRY_MACEDONIA = 389

const CTRY_MALAYSIA = 60

const CTRY_MALDIVES = 960

const CTRY_MEXICO = 52

const CTRY_MONACO = 33

const CTRY_MONGOLIA = 976

const CTRY_MOROCCO = 212

const CTRY_NETHERLANDS = 31

const CTRY_NEW_ZEALAND = 64

const CTRY_NICARAGUA = 505

const CTRY_NORWAY = 47

const CTRY_OMAN = 968

const CTRY_PAKISTAN = 92

const CTRY_PANAMA = 507

const CTRY_PARAGUAY = 595

const CTRY_PERU = 51

const CTRY_PHILIPPINES = 63

const CTRY_POLAND = 48

const CTRY_PORTUGAL = 351

const CTRY_PRCHINA = 86

const CTRY_PUERTO_RICO = 1

const CTRY_QATAR = 974

const CTRY_ROMANIA = 40

const CTRY_RUSSIA = 7

const CTRY_SAUDI_ARABIA = 966

const CTRY_SERBIA = 381

const CTRY_SINGAPORE = 65

const CTRY_SLOVAK = 421

const CTRY_SLOVENIA = 386

const CTRY_SOUTH_AFRICA = 27

const CTRY_SOUTH_KOREA = 82

const CTRY_SPAIN = 34

const CTRY_SWEDEN = 46

const CTRY_SWITZERLAND = 41

const CTRY_SYRIA = 963

const CTRY_TAIWAN = 886

const CTRY_TATARSTAN = 7

const CTRY_THAILAND = 66

const CTRY_TRINIDAD_Y_TOBAGO = 1

const CTRY_TUNISIA = 216

const CTRY_TURKEY = 90

const CTRY_UAE = 971

const CTRY_UKRAINE = 380

const CTRY_UNITED_KINGDOM = 44

const CTRY_UNITED_STATES = 1

const CTRY_URUGUAY = 598

const CTRY_UZBEKISTAN = 7

const CTRY_VENEZUELA = 58

const CTRY_VIET_NAM = 84

const CTRY_YEMEN = 967

const CTRY_ZIMBABWE = 263

const CT_CTYPE1 = 1

const CT_CTYPE2 = 2

const CT_CTYPE3 = 4

type CURRENCY = TCURRENCY

type CURRENCYFMT = TCURRENCYFMT

type CURRENCYFMTA = TCURRENCYFMTA

type CURRENCYFMTW = TCURRENCYFMTW

const CURRENT_IMPORT_REDIRECTION_VERSION = 1

type CURSORINFO = TCURSORINFO

type CURSORSHAPE = TCURSORSHAPE

const CURSOR_SHOWING = 1

const CURSOR_SUPPRESSED = 2

const CURVECAPS = 28

const CUR_BLOB_VERSION = 2

type CUSTDATA = TCUSTDATA

type CUSTDATAITEM = TCUSTDATAITEM

const CWCSTORAGENAME = 32

const CWF_CREATE_ONLY = 1

type CWMO_FLAGS = TCWMO_FLAGS

const CWMO_MAX_HANDLES = 56

type CWPRETSTRUCT = TCWPRETSTRUCT

type CWPSTRUCT = TCWPSTRUCT

const CWP_ALL = 0

const CWP_SKIPDISABLED = 2

const CWP_SKIPINVISIBLE = 1

const CWP_SKIPTRANSPARENT = 4

type CY = TCY

const CallMsgFilter = 0

const CallNamedPipe = 0

const CallWindowProc = 0

const CaptureStackBackTrace = 0

const CdChangerClassGuid = 0

const CdRomClassGuid = 0

const CertAddEncodedCertificateToSystemStore = 0

const CertGetNameString = 0

type CertKeyType = TCertKeyType

const CertNameToStr = 0

const CertOpenSystemStore = 0

const CertRDNValueToStr = 0

const CertStrToName = 0

const ChangeDisplaySettings = 0

const ChangeDisplaySettingsEx = 0

const ChangeMenu = 0

const ChangeServiceConfig = 0

const ChangeServiceConfig2 = 0

const CharLower = 0

const CharLowerBuff = 0

const CharNext = 0

const CharPrev = 0

const CharToOem = 0

const CharToOemBuff = 0

const CharUpper = 0

const CharUpperBuff = 0

const CheckNameLegalDOS8Dot3 = 0

const ChooseColor = 0

const ChooseFont = 0

const ClearEventLog = 0

const CommConfigDialog = 0

const CommDlg_OpenSave_GetFilePath = 0

const CommDlg_OpenSave_GetFolderPath = 0

const CommDlg_OpenSave_GetSpec = 0

const CompareString = 0

const ConfigurePort = 0

const ControlServiceEx = 0

const CopyAcceleratorTable = 0

const CopyEnhMetaFile = 0

const CopyFile = 0

const CopyFileEx = 0

const CopyFileTransacted = 0

const CopyMemory = 0

const CopyMetaFile = 0

const CreateAcceleratorTable = 0

const CreateActCtx = 0

const CreateBoundaryDescriptor = 0

const CreateColorSpace = 0

const CreateDC = 0

const CreateDesktop = 0

const CreateDesktopEx = 0

const CreateDialog = 0

const CreateDialogIndirect = 0

const CreateDialogIndirectParam = 0

const CreateDialogParam = 0

const CreateDirectory = 0

const CreateDirectoryEx = 0

const CreateDirectoryTransacted = 0

const CreateEnhMetaFile = 0

const CreateEvent = 0

const CreateEventEx = 0

const CreateFile = 0

const CreateFileMapping = 0

const CreateFileMappingNuma = 0

const CreateFileTransacted = 0

const CreateFont = 0

const CreateFontIndirect = 0

const CreateFontIndirectEx = 0

const CreateHardLink = 0

const CreateHardLinkTransacted = 0

const CreateIC = 0

const CreateJobObject = 0

const CreateMDIWindow = 0

const CreateMailslot = 0

const CreateMetaFile = 0

const CreateMutex = 0

const CreateMutexEx = 0

const CreateNamedPipe = 0

const CreatePrivateNamespace = 0

const CreateProcess = 0

const CreateProcessAsUser = 0

const CreatePropertySheetPage = 0

const CreateScalableFontResource = 0

const CreateSemaphore = 0

const CreateSemaphoreEx = 0

const CreateService = 0

const CreateSymbolicLink = 0

const CreateSymbolicLinkTransacted = 0

const CreateWaitableTimer = 0

const CreateWaitableTimerEx = 0

const CreateWindow = 0

const CreateWindowEx = 0

const CreateWindowStation = 0

const CryptAcquireContext = 0

const CryptBinaryToString = 0

const CryptEnumProviderTypes = 0

const CryptEnumProviders = 0

const CryptGetDefaultProvider = 0

const CryptRetrieveObjectByUrl = 0

const CryptSetProvider = 0

const CryptSetProviderEx = 0

const CryptSignHash = 0

const CryptStringToBinary = 0

const CryptVerifySignature = 0

const DACL_SECURITY_INFORMATION = 4

type DATADIR = TDATADIR

type DATAINFO = TDATAINFO

type DATATYPES_INFO_1 = TDATATYPES_INFO_1

type DATATYPES_INFO_1A = TDATATYPES_INFO_1A

type DATATYPES_INFO_1W = TDATATYPES_INFO_1W

type DATA_BLOB = TDATA_BLOB

const DATA_E_FIRST = 2147746096

const DATA_E_FORMATETC = "DV_E_FORMATETC"

const DATA_E_LAST = 2147746111

const DATA_S_FIRST = 262448

const DATA_S_LAST = 262463

type DATE = TDATE

const DATEFMT_ENUMPROC = 0

type DATEFMT_ENUMPROCA = TDATEFMT_ENUMPROCA

const DATEFMT_ENUMPROCEX = 0

type DATEFMT_ENUMPROCEXA = TDATEFMT_ENUMPROCEXA

type DATEFMT_ENUMPROCEXEX = TDATEFMT_ENUMPROCEXEX

type DATEFMT_ENUMPROCEXW = TDATEFMT_ENUMPROCEXW

type DATEFMT_ENUMPROCW = TDATEFMT_ENUMPROCW

const DATE_AUTOLAYOUT = 64

const DATE_LONGDATE = 2

const DATE_LTRREADING = 16

const DATE_MONTHDAY = 128

const DATE_RTLREADING = 32

const DATE_SHORTDATE = 1

const DATE_USE_ALT_CALENDAR = 4

const DATE_YEARMONTH = 8

type DCB = TDCB

const DCBA_FACEDOWNCENTER = 257

const DCBA_FACEDOWNLEFT = 258

const DCBA_FACEDOWNNONE = 256

const DCBA_FACEDOWNRIGHT = 259

const DCBA_FACEUPCENTER = 1

const DCBA_FACEUPLEFT = 2

const DCBA_FACEUPNONE = 0

const DCBA_FACEUPRIGHT = 3

const DCB_ACCUMULATE = 2

const DCB_DIRTY = 2

const DCB_DISABLE = 8

const DCB_ENABLE = 4

const DCB_RESET = 1

const DCB_SET = 3

const DCE_C_ERROR_STRING_LEN = 256

const DCOMSCM_ACTIVATION_DISALLOW_UNSECURE_CALL = 2

const DCOMSCM_ACTIVATION_USE_ALL_AUTHNSERVICES = 1

const DCOMSCM_PING_DISALLOW_UNSECURE_CALL = 32

const DCOMSCM_PING_USE_MID_AUTHNSERVICE = 16

const DCOMSCM_RESOLVE_DISALLOW_UNSECURE_CALL = 8

const DCOMSCM_RESOLVE_USE_ALL_AUTHNSERVICES = 4

type DCOM_CALL_STATE = TDCOM_CALL_STATE

const DCTT_BITMAP = 1

const DCTT_DOWNLOAD = 2

const DCTT_DOWNLOAD_OUTLINE = 8

const DCTT_SUBDEV = 4

const DCX_CACHE = 2

const DCX_CLIPCHILDREN = 8

const DCX_CLIPSIBLINGS = 16

const DCX_EXCLUDERGN = 64

const DCX_EXCLUDEUPDATE = 256

const DCX_INTERSECTRGN = 128

const DCX_INTERSECTUPDATE = 512

const DCX_LOCKWINDOWUPDATE = 1024

const DCX_NORESETATTRS = 4

const DCX_PARENTCLIP = 32

const DCX_VALIDATE = 2097152

const DCX_WINDOW = 1

const DC_ACTIVE = 1

const DC_BINADJUST = 19

const DC_BINNAMES = 12

const DC_BINS = 6

const DC_BRUSH = 18

const DC_BUTTONS = 4096

const DC_COLLATE = 22

const DC_COLORDEVICE = 32

const DC_COPIES = 18

const DC_DATATYPE_PRODUCED = 21

const DC_DRIVER = 11

const DC_DUPLEX = 7

const DC_EMF_COMPLIANT = 20

const DC_ENUMRESOLUTIONS = 13

const DC_EXTRA = 9

const DC_FIELDS = 1

const DC_FILEDEPENDENCIES = 14

const DC_GRADIENT = 32

const DC_HASDEFID = 21323

const DC_ICON = 4

const DC_INBUTTON = 16

const DC_MANUFACTURER = 23

const DC_MAXEXTENT = 5

const DC_MEDIAREADY = 29

const DC_MEDIATYPENAMES = 34

const DC_MEDIATYPES = 35

const DC_MINEXTENT = 4

const DC_MODEL = 24

const DC_NUP = 33

const DC_ORIENTATION = 17

const DC_PAPERNAMES = 16

const DC_PAPERS = 2

const DC_PAPERSIZE = 3

const DC_PEN = 19

const DC_PERSONALITY = 25

const DC_PRINTERMEM = 28

const DC_PRINTRATE = 26

const DC_PRINTRATEPPM = 31

const DC_PRINTRATEUNIT = 27

const DC_SIZE = 8

const DC_SMALLCAP = 2

const DC_STAPLE = 30

const DC_TEXT = 8

const DC_TRUETYPE = 15

const DC_VERSION = 10

const DDD_EXACT_MATCH_ON_REMOVE = 4

const DDD_LUID_BROADCAST_DRIVE = 16

const DDD_NO_BROADCAST_SYSTEM = 8

const DDD_RAW_TARGET_PATH = 1

const DDD_REMOVE_DEFINITION = 2

type DDEACK = TDDEACK

type DDEADVISE = TDDEADVISE

type DDEDATA = TDDEDATA

type DDELN = TDDELN

type DDEML_MSG_HOOK_DATA = TDDEML_MSG_HOOK_DATA

type DDEPOKE = TDDEPOKE

type DDEUP = TDDEUP

const DDE_FACK = 32768

const DDE_FACKREQ = 32768

const DDE_FACKRESERVED = -49408

const DDE_FADVRESERVED = -49153

const DDE_FAPPSTATUS = 255

const DDE_FBUSY = 16384

const DDE_FDATRESERVED = -45057

const DDE_FDEFERUPD = 16384

const DDE_FNOTPROCESSED = 0

const DDE_FPOKRESERVED = -8193

const DDE_FRELEASE = 8192

const DDE_FREQUESTED = 4096

const DDL_ARCHIVE = 32

const DDL_DIRECTORY = 16

const DDL_DRIVES = 16384

const DDL_EXCLUSIVE = 32768

const DDL_HIDDEN = 2

const DDL_POSTMSGS = 8192

const DDL_READONLY = 1

const DDL_READWRITE = 0

const DDL_SYSTEM = 4

const DD_DEFDRAGDELAY = 200

const DD_DEFDRAGMINDIST = 2

const DD_DEFSCROLLDELAY = 50

const DD_DEFSCROLLINSET = 11

const DD_DEFSCROLLINTERVAL = 50

const DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 1

type DEBUGHOOKINFO = TDEBUGHOOKINFO

type DEBUG_EVENT = TDEBUG_EVENT

const DEBUG_ONLY_THIS_PROCESS = 2

const DEBUG_PROCESS = 1

type DECIMAL = TDECIMAL

type DECRYPTION_STATUS_BUFFER = TDECRYPTION_STATUS_BUFFER

const DEFAULT_CHARSET = 1

const DEFAULT_GUI_FONT = 17

const DEFAULT_IMPERSONATION_LEVEL = 0

const DEFAULT_PALETTE = 15

const DEFAULT_PITCH = 0

const DEFAULT_QUALITY = 0

const DEF_PRIORITY = 1

const DELETE = 65536

type DELETEITEMSTRUCT = TDELETEITEMSTRUCT

type DELETE_SNAPSHOT_VHDSET_FLAG = TDELETE_SNAPSHOT_VHDSET_FLAG

type DELETE_SNAPSHOT_VHDSET_PARAMETERS = TDELETE_SNAPSHOT_VHDSET_PARAMETERS

type DELETE_SNAPSHOT_VHDSET_VERSION = TDELETE_SNAPSHOT_VHDSET_VERSION

type DELETE_USN_JOURNAL_DATA = TDELETE_USN_JOURNAL_DATA

type DEPENDENT_DISK_FLAG = TDEPENDENT_DISK_FLAG

type DEP_SYSTEM_POLICY_TYPE = TDEP_SYSTEM_POLICY_TYPE

const DEREGISTERED = 5

type DESCKIND = TDESCKIND

type DESIGNVECTOR = TDESIGNVECTOR

type DESKTOPENUMPROC = TDESKTOPENUMPROC

type DESKTOPENUMPROCA = TDESKTOPENUMPROCA

type DESKTOPENUMPROCW = TDESKTOPENUMPROCW

const DESKTOPHORZRES = 118

const DESKTOPVERTRES = 117

const DESKTOP_CREATEMENU = 4

const DESKTOP_CREATEWINDOW = 2

const DESKTOP_ENUMERATE = 64

const DESKTOP_HOOKCONTROL = 8

const DESKTOP_JOURNALPLAYBACK = 32

const DESKTOP_JOURNALRECORD = 16

const DESKTOP_READOBJECTS = 1

const DESKTOP_SWITCHDESKTOP = 256

const DESKTOP_WRITEOBJECTS = 128

const DETACHED_PROCESS = 8

type DETACH_VIRTUAL_DISK_FLAG = TDETACH_VIRTUAL_DISK_FLAG

type DETECTION_TYPE = TDETECTION_TYPE

const DEVICEDATA = 19

type DEVICE_COPY_OFFLOAD_DESCRIPTOR = TDEVICE_COPY_OFFLOAD_DESCRIPTOR

type DEVICE_DATA_MANAGEMENT_SET_ACTION = TDEVICE_DATA_MANAGEMENT_SET_ACTION

type DEVICE_DATA_SET_RANGE = TDEVICE_DATA_SET_RANGE

const DEVICE_DEFAULT_FONT = 14

const DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE = 1

type DEVICE_DSM_NOTIFICATION_PARAMETERS = TDEVICE_DSM_NOTIFICATION_PARAMETERS

const DEVICE_DSM_NOTIFY_FLAG_BEGIN = 1

const DEVICE_DSM_NOTIFY_FLAG_END = 2

const DEVICE_FONTTYPE = 2

type DEVICE_LB_PROVISIONING_DESCRIPTOR = TDEVICE_LB_PROVISIONING_DESCRIPTOR

type DEVICE_MANAGE_DATA_SET_ATTRIBUTES = TDEVICE_MANAGE_DATA_SET_ATTRIBUTES

type DEVICE_MEDIA_INFO = TDEVICE_MEDIA_INFO

const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = 4

const DEVICE_NOTIFY_SERVICE_HANDLE = 1

const DEVICE_NOTIFY_WINDOW_HANDLE = 0

type DEVICE_POWER_DESCRIPTOR = TDEVICE_POWER_DESCRIPTOR

type DEVICE_POWER_STATE = TDEVICE_POWER_STATE

type DEVICE_SEEK_PENALTY_DESCRIPTOR = TDEVICE_SEEK_PENALTY_DESCRIPTOR

type DEVICE_TRIM_DESCRIPTOR = TDEVICE_TRIM_DESCRIPTOR

const DEVICE_TYPE = 0

type DEVICE_WRITE_AGGREGATION_DESCRIPTOR = TDEVICE_WRITE_AGGREGATION_DESCRIPTOR

type DEVMODE = TDEVMODE

type DEVMODEA = TDEVMODEA

type DEVMODEW = TDEVMODEW

type DEVNAMES = TDEVNAMES

const DFCS_ADJUSTRECT = 8192

const DFCS_BUTTON3STATE = 8

const DFCS_BUTTONCHECK = 0

const DFCS_BUTTONPUSH = 16

const DFCS_BUTTONRADIO = 4

const DFCS_BUTTONRADIOIMAGE = 1

const DFCS_BUTTONRADIOMASK = 2

const DFCS_CAPTIONCLOSE = 0

const DFCS_CAPTIONHELP = 4

const DFCS_CAPTIONMAX = 2

const DFCS_CAPTIONMIN = 1

const DFCS_CAPTIONRESTORE = 3

const DFCS_CHECKED = 1024

const DFCS_FLAT = 16384

const DFCS_HOT = 4096

const DFCS_INACTIVE = 256

const DFCS_MENUARROW = 0

const DFCS_MENUARROWRIGHT = 4

const DFCS_MENUBULLET = 2

const DFCS_MENUCHECK = 1

const DFCS_MONO = 32768

const DFCS_PUSHED = 512

const DFCS_SCROLLCOMBOBOX = 5

const DFCS_SCROLLDOWN = 1

const DFCS_SCROLLLEFT = 2

const DFCS_SCROLLRIGHT = 3

const DFCS_SCROLLSIZEGRIP = 8

const DFCS_SCROLLSIZEGRIPRIGHT = 16

const DFCS_SCROLLUP = 0

const DFCS_TRANSPARENT = 2048

const DFC_BUTTON = 4

const DFC_CAPTION = 1

const DFC_MENU = 2

const DFC_POPUPMENU = 5

const DFC_SCROLL = 3

const DF_ALLOWOTHERACCOUNTHOOK = 1

type DHPRIVKEY_VER3 = TDHPRIVKEY_VER3

type DHPUBKEY = TDHPUBKEY

type DHPUBKEY_VER3 = TDHPUBKEY_VER3

const DIAGNOSTIC_REASON_DETAILED_STRING = 2

const DIAGNOSTIC_REASON_INVALID_FLAGS = -2147483652

const DIAGNOSTIC_REASON_NOT_SPECIFIED = 2147483648

const DIAGNOSTIC_REASON_SIMPLE_STRING = 1

const DIAGNOSTIC_REASON_VERSION = 0

type DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = TDIALOG_CONTROL_DPI_CHANGE_BEHAVIORS

type DIALOG_DPI_CHANGE_BEHAVIORS = TDIALOG_DPI_CHANGE_BEHAVIORS

const DIALOPTION_BILLING = 64

const DIALOPTION_DIALTONE = 256

const DIALOPTION_QUIET = 128

type DIBSECTION = TDIBSECTION

const DIB_PAL_COLORS = 1

const DIB_RGB_COLORS = 0

const DIFFERENCE = 11

const DISABLE_MAX_PRIVILEGE = 1

const DISABLE_NEWLINE_AUTO_RETURN = 8

const DISABLE_SMART = 217

type DISCARDCACHE = TDISCARDCACHE

type DISCDLGSTRUCT = TDISCDLGSTRUCT

type DISCDLGSTRUCTA = TDISCDLGSTRUCTA

type DISCDLGSTRUCTW = TDISCDLGSTRUCTW

const DISCHARGE_POLICY_CRITICAL = 0

const DISCHARGE_POLICY_LOW = 1

const DISC_NO_FORCE = 64

const DISC_UPDATE_PROFILE = 1

const DISK_BINNING = 3

type DISK_CACHE_INFORMATION = TDISK_CACHE_INFORMATION

type DISK_CACHE_RETENTION_PRIORITY = TDISK_CACHE_RETENTION_PRIORITY

type DISK_CONTROLLER_NUMBER = TDISK_CONTROLLER_NUMBER

type DISK_DETECTION_INFO = TDISK_DETECTION_INFO

type DISK_EXTENT = TDISK_EXTENT

type DISK_EX_INT13_INFO = TDISK_EX_INT13_INFO

type DISK_GEOMETRY = TDISK_GEOMETRY

type DISK_GEOMETRY_EX = TDISK_GEOMETRY_EX

type DISK_GROW_PARTITION = TDISK_GROW_PARTITION

type DISK_HISTOGRAM = TDISK_HISTOGRAM

const DISK_HISTOGRAM_SIZE = 0

type DISK_INT13_INFO = TDISK_INT13_INFO

type DISK_LOGGING = TDISK_LOGGING

const DISK_LOGGING_DUMP = 2

const DISK_LOGGING_START = 0

const DISK_LOGGING_STOP = 1

type DISK_PARTITION_INFO = TDISK_PARTITION_INFO

type DISK_PERFORMANCE = TDISK_PERFORMANCE

type DISK_RECORD = TDISK_RECORD

const DISPATCH_METHOD = 1

const DISPATCH_PROPERTYGET = 2

const DISPATCH_PROPERTYPUT = 4

const DISPATCH_PROPERTYPUTREF = 8

type DISPID = TDISPID

const DISPID_COLLECT = -8

const DISPID_CONSTRUCTOR = -6

const DISPID_DESTRUCTOR = -7

const DISPID_EVALUATE = -5

const DISPID_NEWENUM = -4

const DISPID_PROPERTYPUT = -3

const DISPID_UNKNOWN = -1

const DISPID_VALUE = 0

type DISPLAYCONFIG_2DREGION = TDISPLAYCONFIG_2DREGION

type DISPLAYCONFIG_ADAPTER_NAME = TDISPLAYCONFIG_ADAPTER_NAME

type DISPLAYCONFIG_COLOR_ENCODING = TDISPLAYCONFIG_COLOR_ENCODING

type DISPLAYCONFIG_DESKTOP_IMAGE_INFO = TDISPLAYCONFIG_DESKTOP_IMAGE_INFO

type DISPLAYCONFIG_DEVICE_INFO_HEADER = TDISPLAYCONFIG_DEVICE_INFO_HEADER

type DISPLAYCONFIG_DEVICE_INFO_TYPE = TDISPLAYCONFIG_DEVICE_INFO_TYPE

type DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO = TDISPLAYCONFIG_GET_ADVANCED_COLOR_INFO

const DISPLAYCONFIG_MAXPATH = 1024

type DISPLAYCONFIG_MODE_INFO = TDISPLAYCONFIG_MODE_INFO

type DISPLAYCONFIG_MODE_INFO_TYPE = TDISPLAYCONFIG_MODE_INFO_TYPE

const DISPLAYCONFIG_PATH_ACTIVE = 1

const DISPLAYCONFIG_PATH_CLONE_GROUP_INVALID = 65535

const DISPLAYCONFIG_PATH_DESKTOP_IMAGE_IDX_INVALID = 65535

type DISPLAYCONFIG_PATH_INFO = TDISPLAYCONFIG_PATH_INFO

const DISPLAYCONFIG_PATH_MODE_IDX_INVALID = 4294967295

const DISPLAYCONFIG_PATH_PREFERRED_UNSCALED = 4

type DISPLAYCONFIG_PATH_SOURCE_INFO = TDISPLAYCONFIG_PATH_SOURCE_INFO

const DISPLAYCONFIG_PATH_SOURCE_MODE_IDX_INVALID = 65535

const DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE = 8

type DISPLAYCONFIG_PATH_TARGET_INFO = TDISPLAYCONFIG_PATH_TARGET_INFO

const DISPLAYCONFIG_PATH_TARGET_MODE_IDX_INVALID = 65535

const DISPLAYCONFIG_PATH_VALID_FLAGS = 13

type DISPLAYCONFIG_PIXELFORMAT = TDISPLAYCONFIG_PIXELFORMAT

type DISPLAYCONFIG_RATIONAL = TDISPLAYCONFIG_RATIONAL

type DISPLAYCONFIG_ROTATION = TDISPLAYCONFIG_ROTATION

type DISPLAYCONFIG_SCALING = TDISPLAYCONFIG_SCALING

type DISPLAYCONFIG_SCANLINE_ORDERING = TDISPLAYCONFIG_SCANLINE_ORDERING

type DISPLAYCONFIG_SDR_WHITE_LEVEL = TDISPLAYCONFIG_SDR_WHITE_LEVEL

type DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE = TDISPLAYCONFIG_SET_ADVANCED_COLOR_STATE

type DISPLAYCONFIG_SET_TARGET_PERSISTENCE = TDISPLAYCONFIG_SET_TARGET_PERSISTENCE

type DISPLAYCONFIG_SOURCE_DEVICE_NAME = TDISPLAYCONFIG_SOURCE_DEVICE_NAME

const DISPLAYCONFIG_SOURCE_IN_USE = 1

type DISPLAYCONFIG_SOURCE_MODE = TDISPLAYCONFIG_SOURCE_MODE

type DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION = TDISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION

type DISPLAYCONFIG_TARGET_BASE_TYPE = TDISPLAYCONFIG_TARGET_BASE_TYPE

type DISPLAYCONFIG_TARGET_DEVICE_NAME = TDISPLAYCONFIG_TARGET_DEVICE_NAME

type DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS = TDISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS

const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT = 4

const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH = 8

const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM = 16

const DISPLAYCONFIG_TARGET_FORCIBLE = 2

const DISPLAYCONFIG_TARGET_IN_USE = 1

const DISPLAYCONFIG_TARGET_IS_HMD = 32

type DISPLAYCONFIG_TARGET_MODE = TDISPLAYCONFIG_TARGET_MODE

type DISPLAYCONFIG_TARGET_PREFERRED_MODE = TDISPLAYCONFIG_TARGET_PREFERRED_MODE

type DISPLAYCONFIG_TOPOLOGY_ID = TDISPLAYCONFIG_TOPOLOGY_ID

type DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = TDISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY

type DISPLAYCONFIG_VIDEO_SIGNAL_INFO = TDISPLAYCONFIG_VIDEO_SIGNAL_INFO

type DISPLAY_DEVICE = TDISPLAY_DEVICE

type DISPLAY_DEVICEA = TDISPLAY_DEVICEA

type DISPLAY_DEVICEW = TDISPLAY_DEVICEW

const DISPLAY_DEVICE_ACC_DRIVER = 64

const DISPLAY_DEVICE_ACTIVE = 1

const DISPLAY_DEVICE_ATTACHED = 2

const DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 1

const DISPLAY_DEVICE_DISCONNECT = 33554432

const DISPLAY_DEVICE_MIRRORING_DRIVER = 8

const DISPLAY_DEVICE_MODESPRUNED = 134217728

const DISPLAY_DEVICE_MULTI_DRIVER = 2

const DISPLAY_DEVICE_PRIMARY_DEVICE = 4

const DISPLAY_DEVICE_RDPUDD = 16777216

const DISPLAY_DEVICE_REMOTE = 67108864

const DISPLAY_DEVICE_REMOVABLE = 32

const DISPLAY_DEVICE_TS_COMPATIBLE = 2097152

const DISPLAY_DEVICE_UNSAFE_MODES_ON = 524288

const DISPLAY_DEVICE_VGA_COMPATIBLE = 16

type DISPPARAMS = TDISPPARAMS

const DISP_CHANGE_BADDUALVIEW = -6

const DISP_CHANGE_BADFLAGS = -4

const DISP_CHANGE_BADMODE = -2

const DISP_CHANGE_BADPARAM = -5

const DISP_CHANGE_FAILED = -1

const DISP_CHANGE_NOTUPDATED = -3

const DISP_CHANGE_RESTART = 1

const DISP_CHANGE_SUCCESSFUL = 0

const DI_APPBANDING = 1

const DI_CHANNEL = 1

const DI_COMPAT = 4

const DI_DEFAULTSIZE = 8

const DI_IMAGE = 2

const DI_MASK = 1

const DI_MEMORYMAP_WRITE = 1

const DI_NOMIRROR = 16

const DI_NORMAL = 3

const DI_READ_SPOOL_JOB = 3

const DI_ROPS_READ_DESTINATION = 2

const DKGRAY_BRUSH = 3

const DLGC_BUTTON = 8192

const DLGC_DEFPUSHBUTTON = 16

const DLGC_HASSETSEL = 8

const DLGC_RADIOBUTTON = 64

const DLGC_STATIC = 256

const DLGC_UNDEFPUSHBUTTON = 32

const DLGC_WANTALLKEYS = 4

const DLGC_WANTARROWS = 1

const DLGC_WANTCHARS = 128

const DLGC_WANTMESSAGE = 4

const DLGC_WANTTAB = 2

type DLGITEMTEMPLATE = TDLGITEMTEMPLATE

type DLGPROC = TDLGPROC

type DLGTEMPLATE = TDLGTEMPLATE

const DLGWINDOWEXTRA = 30

type DLL_DIRECTORY_COOKIE = TDLL_DIRECTORY_COOKIE

const DLL_PROCESS_ATTACH = 1

const DLL_PROCESS_DETACH = 0

const DLL_PROCESS_VERIFIER = 4

const DLL_THREAD_ATTACH = 2

const DLL_THREAD_DETACH = 3

const DMBIN_AUTO = 7

const DMBIN_CASSETTE = 14

const DMBIN_ENVELOPE = 5

const DMBIN_ENVMANUAL = 6

const DMBIN_FIRST = 1

const DMBIN_FORMSOURCE = 15

const DMBIN_LARGECAPACITY = 11

const DMBIN_LARGEFMT = 10

const DMBIN_LAST = 15

const DMBIN_LOWER = 2

const DMBIN_MANUAL = 4

const DMBIN_MIDDLE = 3

const DMBIN_ONLYONE = 1

const DMBIN_SMALLFMT = 9

const DMBIN_TRACTOR = 8

const DMBIN_UPPER = 1

const DMBIN_USER = 256

const DMCOLLATE_FALSE = 0

const DMCOLLATE_TRUE = 1

const DMCOLOR_COLOR = 2

const DMCOLOR_MONOCHROME = 1

const DMDFO_CENTER = 2

const DMDFO_DEFAULT = 0

const DMDFO_STRETCH = 1

const DMDISPLAYFLAGS_TEXTMODE = 4

const DMDITHER_COARSE = 2

const DMDITHER_ERRORDIFFUSION = 5

const DMDITHER_FINE = 3

const DMDITHER_GRAYSCALE = 10

const DMDITHER_LINEART = 4

const DMDITHER_NONE = 1

const DMDITHER_RESERVED6 = 6

const DMDITHER_RESERVED7 = 7

const DMDITHER_RESERVED8 = 8

const DMDITHER_RESERVED9 = 9

const DMDITHER_USER = 256

const DMDO_180 = 2

const DMDO_270 = 3

const DMDO_90 = 1

const DMDO_DEFAULT = 0

const DMDUP_HORIZONTAL = 3

const DMDUP_SIMPLEX = 1

const DMDUP_VERTICAL = 2

const DMICMMETHOD_DEVICE = 4

const DMICMMETHOD_DRIVER = 3

const DMICMMETHOD_NONE = 1

const DMICMMETHOD_SYSTEM = 2

const DMICMMETHOD_USER = 256

const DMICM_ABS_COLORIMETRIC = 4

const DMICM_COLORIMETRIC = 3

const DMICM_CONTRAST = 2

const DMICM_SATURATE = 1

const DMICM_USER = 256

const DMLERR_ADVACKTIMEOUT = 16384

const DMLERR_BUSY = 16385

const DMLERR_DATAACKTIMEOUT = 16386

const DMLERR_DLL_NOT_INITIALIZED = 16387

const DMLERR_DLL_USAGE = 16388

const DMLERR_EXECACKTIMEOUT = 16389

const DMLERR_FIRST = 16384

const DMLERR_INVALIDPARAMETER = 16390

const DMLERR_LAST = 16401

const DMLERR_LOW_MEMORY = 16391

const DMLERR_MEMORY_ERROR = 16392

const DMLERR_NOTPROCESSED = 16393

const DMLERR_NO_CONV_ESTABLISHED = 16394

const DMLERR_NO_ERROR = 0

const DMLERR_POKEACKTIMEOUT = 16395

const DMLERR_POSTMSG_FAILED = 16396

const DMLERR_REENTRANCY = 16397

const DMLERR_SERVER_DIED = 16398

const DMLERR_SYS_ERROR = 16399

const DMLERR_UNADVACKTIMEOUT = 16400

const DMLERR_UNFOUND_QUEUE_ID = 16401

const DMMEDIA_GLOSSY = 3

const DMMEDIA_STANDARD = 1

const DMMEDIA_TRANSPARENCY = 2

const DMMEDIA_USER = 256

const DMNUP_ONEUP = 2

const DMNUP_SYSTEM = 1

const DMORIENT_LANDSCAPE = 2

const DMORIENT_PORTRAIT = 1

const DMPAPER_10X11 = 45

const DMPAPER_10X14 = 16

const DMPAPER_11X17 = 17

const DMPAPER_12X11 = 90

const DMPAPER_15X11 = 46

const DMPAPER_9X11 = 44

const DMPAPER_A2 = 66

const DMPAPER_A3 = 8

const DMPAPER_A3_EXTRA = 63

const DMPAPER_A3_EXTRA_TRANSVERSE = 68

const DMPAPER_A3_ROTATED = 76

const DMPAPER_A3_TRANSVERSE = 67

const DMPAPER_A4 = 9

const DMPAPER_A4SMALL = 10

const DMPAPER_A4_EXTRA = 53

const DMPAPER_A4_PLUS = 60

const DMPAPER_A4_ROTATED = 77

const DMPAPER_A4_TRANSVERSE = 55

const DMPAPER_A5 = 11

const DMPAPER_A5_EXTRA = 64

const DMPAPER_A5_ROTATED = 78

const DMPAPER_A5_TRANSVERSE = 61

const DMPAPER_A6 = 70

const DMPAPER_A6_ROTATED = 83

const DMPAPER_A_PLUS = 57

const DMPAPER_B4 = 12

const DMPAPER_B4_JIS_ROTATED = 79

const DMPAPER_B5 = 13

const DMPAPER_B5_EXTRA = 65

const DMPAPER_B5_JIS_ROTATED = 80

const DMPAPER_B5_TRANSVERSE = 62

const DMPAPER_B6_JIS = 88

const DMPAPER_B6_JIS_ROTATED = 89

const DMPAPER_B_PLUS = 58

const DMPAPER_CSHEET = 24

const DMPAPER_DBL_JAPANESE_POSTCARD = 69

const DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82

const DMPAPER_DSHEET = 25

const DMPAPER_ENV_10 = 20

const DMPAPER_ENV_11 = 21

const DMPAPER_ENV_12 = 22

const DMPAPER_ENV_14 = 23

const DMPAPER_ENV_9 = 19

const DMPAPER_ENV_B4 = 33

const DMPAPER_ENV_B5 = 34

const DMPAPER_ENV_B6 = 35

const DMPAPER_ENV_C3 = 29

const DMPAPER_ENV_C4 = 30

const DMPAPER_ENV_C5 = 28

const DMPAPER_ENV_C6 = 31

const DMPAPER_ENV_C65 = 32

const DMPAPER_ENV_DL = 27

const DMPAPER_ENV_INVITE = 47

const DMPAPER_ENV_ITALY = 36

const DMPAPER_ENV_MONARCH = 37

const DMPAPER_ENV_PERSONAL = 38

const DMPAPER_ESHEET = 26

const DMPAPER_EXECUTIVE = 7

const DMPAPER_FANFOLD_LGL_GERMAN = 41

const DMPAPER_FANFOLD_STD_GERMAN = 40

const DMPAPER_FANFOLD_US = 39

const DMPAPER_FIRST = 1

const DMPAPER_FOLIO = 14

const DMPAPER_ISO_B4 = 42

const DMPAPER_JAPANESE_POSTCARD = 43

const DMPAPER_JAPANESE_POSTCARD_ROTATED = 81

const DMPAPER_JENV_CHOU3 = 73

const DMPAPER_JENV_CHOU3_ROTATED = 86

const DMPAPER_JENV_CHOU4 = 74

const DMPAPER_JENV_CHOU4_ROTATED = 87

const DMPAPER_JENV_KAKU2 = 71

const DMPAPER_JENV_KAKU2_ROTATED = 84

const DMPAPER_JENV_KAKU3 = 72

const DMPAPER_JENV_KAKU3_ROTATED = 85

const DMPAPER_JENV_YOU4 = 91

const DMPAPER_JENV_YOU4_ROTATED = 92

const DMPAPER_LAST = 118

const DMPAPER_LEDGER = 4

const DMPAPER_LEGAL = 5

const DMPAPER_LEGAL_EXTRA = 51

const DMPAPER_LETTER = 1

const DMPAPER_LETTERSMALL = 2

const DMPAPER_LETTER_EXTRA = 50

const DMPAPER_LETTER_EXTRA_TRANSVERSE = 56

const DMPAPER_LETTER_PLUS = 59

const DMPAPER_LETTER_ROTATED = 75

const DMPAPER_LETTER_TRANSVERSE = 54

const DMPAPER_NOTE = 18

const DMPAPER_P16K = 93

const DMPAPER_P16K_ROTATED = 106

const DMPAPER_P32K = 94

const DMPAPER_P32KBIG = 95

const DMPAPER_P32KBIG_ROTATED = 108

const DMPAPER_P32K_ROTATED = 107

const DMPAPER_PENV_1 = 96

const DMPAPER_PENV_10 = 105

const DMPAPER_PENV_10_ROTATED = 118

const DMPAPER_PENV_1_ROTATED = 109

const DMPAPER_PENV_2 = 97

const DMPAPER_PENV_2_ROTATED = 110

const DMPAPER_PENV_3 = 98

const DMPAPER_PENV_3_ROTATED = 111

const DMPAPER_PENV_4 = 99

const DMPAPER_PENV_4_ROTATED = 112

const DMPAPER_PENV_5 = 100

const DMPAPER_PENV_5_ROTATED = 113

const DMPAPER_PENV_6 = 101

const DMPAPER_PENV_6_ROTATED = 114

const DMPAPER_PENV_7 = 102

const DMPAPER_PENV_7_ROTATED = 115

const DMPAPER_PENV_8 = 103

const DMPAPER_PENV_8_ROTATED = 116

const DMPAPER_PENV_9 = 104

const DMPAPER_PENV_9_ROTATED = 117

const DMPAPER_QUARTO = 15

const DMPAPER_RESERVED_48 = 48

const DMPAPER_RESERVED_49 = 49

const DMPAPER_STATEMENT = 6

const DMPAPER_TABLOID = 3

const DMPAPER_TABLOID_EXTRA = 52

const DMPAPER_USER = 256

const DMRES_DRAFT = -1

const DMRES_HIGH = -4

const DMRES_LOW = -2

const DMRES_MEDIUM = -3

const DMTT_BITMAP = 1

const DMTT_DOWNLOAD = 2

const DMTT_DOWNLOAD_OUTLINE = 4

const DMTT_SUBDEV = 3

const DM_BITSPERPEL = 262144

const DM_COLLATE = 32768

const DM_COLOR = 2048

const DM_COPIES = 256

const DM_COPY = 2

const DM_DEFAULTSOURCE = 512

const DM_DISPLAYFIXEDOUTPUT = 536870912

const DM_DISPLAYFLAGS = 2097152

const DM_DISPLAYFREQUENCY = 4194304

const DM_DISPLAYORIENTATION = 128

const DM_DITHERTYPE = 67108864

const DM_DUPLEX = 4096

const DM_FORMNAME = 65536

const DM_GETDEFID = 1024

const DM_ICMINTENT = 16777216

const DM_ICMMETHOD = 8388608

const DM_INTERLACED = 2

const DM_IN_BUFFER = 8

const DM_IN_PROMPT = 4

const DM_LOGPIXELS = 131072

const DM_MEDIATYPE = 33554432

const DM_MODIFY = 8

const DM_NUP = 64

const DM_ORIENTATION = 1

const DM_OUT_BUFFER = 2

const DM_OUT_DEFAULT = 1

const DM_PANNINGHEIGHT = 268435456

const DM_PANNINGWIDTH = 134217728

const DM_PAPERLENGTH = 4

const DM_PAPERSIZE = 2

const DM_PAPERWIDTH = 8

const DM_PELSHEIGHT = 1048576

const DM_PELSWIDTH = 524288

const DM_POINTERHITTEST = 592

const DM_POSITION = 32

const DM_PRINTQUALITY = 1024

const DM_PROMPT = 4

const DM_REPOSITION = 1026

const DM_SCALE = 16

const DM_SETDEFID = 1025

const DM_SPECVERSION = 1025

const DM_TTOPTION = 16384

const DM_UPDATE = 1

const DM_YRESOLUTION = 8192

const DNS_ERROR_AUTOZONE_ALREADY_EXISTS = 9610

const DNS_ERROR_AXFR = 9752

const DNS_ERROR_BAD_PACKET = 9502

const DNS_ERROR_CANNOT_FIND_ROOT_HINTS = 9564

const DNS_ERROR_CNAME_COLLISION = 9709

const DNS_ERROR_CNAME_LOOP = 9707

const DNS_ERROR_DATABASE_BASE = 9700

const DNS_ERROR_DATAFILE_BASE = 9650

const DNS_ERROR_DATAFILE_OPEN_FAILURE = 9653

const DNS_ERROR_DATAFILE_PARSING = 9655

const DNS_ERROR_DP_ALREADY_ENLISTED = 9904

const DNS_ERROR_DP_ALREADY_EXISTS = 9902

const DNS_ERROR_DP_BASE = 9900

const DNS_ERROR_DP_DOES_NOT_EXIST = 9901

const DNS_ERROR_DP_FSMO_ERROR = 9906

const DNS_ERROR_DP_NOT_AVAILABLE = 9905

const DNS_ERROR_DP_NOT_ENLISTED = 9903

const DNS_ERROR_DS_UNAVAILABLE = 9717

const DNS_ERROR_DS_ZONE_ALREADY_EXISTS = 9718

const DNS_ERROR_FILE_WRITEBACK_FAILED = 9654

const DNS_ERROR_FORWARDER_ALREADY_EXISTS = 9619

const DNS_ERROR_GENERAL_API_BASE = 9550

const DNS_ERROR_INCONSISTENT_ROOT_HINTS = 9565

const DNS_ERROR_INVALID_DATA = 13

const DNS_ERROR_INVALID_DATAFILE_NAME = 9652

const DNS_ERROR_INVALID_IP_ADDRESS = 9552

const DNS_ERROR_INVALID_NAME = 123

const DNS_ERROR_INVALID_NAME_CHAR = 9560

const DNS_ERROR_INVALID_PROPERTY = 9553

const DNS_ERROR_INVALID_TYPE = 9551

const DNS_ERROR_INVALID_ZONE_OPERATION = 9603

const DNS_ERROR_INVALID_ZONE_TYPE = 9611

const DNS_ERROR_MASK = 9000

const DNS_ERROR_NAME_DOES_NOT_EXIST = 9714

const DNS_ERROR_NAME_NOT_IN_ZONE = 9706

const DNS_ERROR_NBSTAT_INIT_FAILED = 9617

const DNS_ERROR_NEED_SECONDARY_ADDRESSES = 9614

const DNS_ERROR_NEED_WINS_SERVERS = 9616

const DNS_ERROR_NODE_CREATION_FAILED = 9703

const DNS_ERROR_NODE_IS_CNAME = 9708

const DNS_ERROR_NON_RFC_NAME = 9556

const DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER = 9562

const DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION = 9563

const DNS_ERROR_NOT_UNIQUE = 9555

const DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE = 9719

const DNS_ERROR_NO_CREATE_CACHE_DATA = 9713

const DNS_ERROR_NO_DNS_SERVERS = 9852

const DNS_ERROR_NO_MEMORY = 14

const DNS_ERROR_NO_PACKET = 9503

const DNS_ERROR_NO_TCPIP = 9851

const DNS_ERROR_NO_ZONE_INFO = 9602

const DNS_ERROR_NUMERIC_NAME = 9561

const DNS_ERROR_OPERATION_BASE = 9750

const DNS_ERROR_PACKET_FMT_BASE = 9500

const DNS_ERROR_PRIMARY_REQUIRES_DATAFILE = 9651

const DNS_ERROR_RCODE = 9504

const DNS_ERROR_RCODE_BADKEY = 9017

const DNS_ERROR_RCODE_BADSIG = 9016

const DNS_ERROR_RCODE_BADTIME = 9018

const DNS_ERROR_RCODE_FORMAT_ERROR = 9001

const DNS_ERROR_RCODE_LAST = 9018

const DNS_ERROR_RCODE_NAME_ERROR = 9003

const DNS_ERROR_RCODE_NOTAUTH = 9009

const DNS_ERROR_RCODE_NOTZONE = 9010

const DNS_ERROR_RCODE_NOT_IMPLEMENTED = 9004

const DNS_ERROR_RCODE_NO_ERROR = 0

const DNS_ERROR_RCODE_NXRRSET = 9008

const DNS_ERROR_RCODE_REFUSED = 9005

const DNS_ERROR_RCODE_SERVER_FAILURE = 9002

const DNS_ERROR_RCODE_YXDOMAIN = 9006

const DNS_ERROR_RCODE_YXRRSET = 9007

const DNS_ERROR_RECORD_ALREADY_EXISTS = 9711

const DNS_ERROR_RECORD_DOES_NOT_EXIST = 9701

const DNS_ERROR_RECORD_FORMAT = 9702

const DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT = 9710

const DNS_ERROR_RECORD_TIMED_OUT = 9705

const DNS_ERROR_RESPONSE_CODES_BASE = 9000

const DNS_ERROR_SECONDARY_DATA = 9712

const DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP = 9612

const DNS_ERROR_SECURE_BASE = 9800

const DNS_ERROR_SETUP_BASE = 9850

const DNS_ERROR_SOA_DELETE_INVALID = 9618

const DNS_ERROR_TRY_AGAIN_LATER = 9554

const DNS_ERROR_UNKNOWN_RECORD_TYPE = 9704

const DNS_ERROR_UNSECURE_PACKET = 9505

const DNS_ERROR_WINS_INIT_FAILED = 9615

const DNS_ERROR_ZONE_ALREADY_EXISTS = 9609

const DNS_ERROR_ZONE_BASE = 9600

const DNS_ERROR_ZONE_CONFIGURATION_ERROR = 9604

const DNS_ERROR_ZONE_CREATION_FAILED = 9608

const DNS_ERROR_ZONE_DOES_NOT_EXIST = 9601

const DNS_ERROR_ZONE_HAS_NO_NS_RECORDS = 9606

const DNS_ERROR_ZONE_HAS_NO_SOA_RECORD = 9605

const DNS_ERROR_ZONE_IS_SHUTDOWN = 9621

const DNS_ERROR_ZONE_LOCKED = 9607

const DNS_ERROR_ZONE_NOT_SECONDARY = 9613

const DNS_ERROR_ZONE_REQUIRES_MASTER_IP = 9620

const DNS_FILTEROFF = 8

const DNS_FILTERON = 4

const DNS_INFO_ADDED_LOCAL_WINS = 9753

const DNS_INFO_AXFR_COMPLETE = 9751

const DNS_INFO_NO_RECORDS = 9501

const DNS_REGISTER = 1

const DNS_STATUS_CONTINUE_NEEDED = 9801

const DNS_STATUS_DOTTED_NAME = 9558

const DNS_STATUS_FQDN = 9557

const DNS_STATUS_PACKET_UNSECURE = 9505

const DNS_STATUS_SINGLE_PART_NAME = 9559

const DNS_UNREGISTER = 2

const DNS_WARNING_DOMAIN_UNDELETED = 9716

const DNS_WARNING_PTR_CREATE_FAILED = 9715

const DN_DEFAULTPRN = 1

type DOCINFO = TDOCINFO

type DOCINFOA = TDOCINFOA

type DOCINFOW = TDOCINFOW

const DOCKINFO_DOCKED = 2

const DOCKINFO_UNDOCKED = 1

const DOCKINFO_USER_DOCKED = 6

const DOCKINFO_USER_SUPPLIED = 4

const DOCKINFO_USER_UNDOCKED = 5

type DOC_INFO_1 = TDOC_INFO_1

type DOC_INFO_1A = TDOC_INFO_1A

type DOC_INFO_1W = TDOC_INFO_1W

type DOC_INFO_2 = TDOC_INFO_2

type DOC_INFO_2A = TDOC_INFO_2A

type DOC_INFO_2W = TDOC_INFO_2W

type DOC_INFO_3 = TDOC_INFO_3

type DOC_INFO_3A = TDOC_INFO_3A

type DOC_INFO_3W = TDOC_INFO_3W

const DOF_DIRECTORY = 32771

const DOF_DOCUMENT = 32770

const DOF_EXECUTABLE = 32769

const DOF_MULTIPLE = 32772

const DOF_PROGMAN = 1

const DOF_SHELLDATA = 2

const DOMAIN_ALIAS_RID_ACCESS_CONTROL_ASSISTANCE_OPS = 579

const DOMAIN_ALIAS_RID_ACCOUNT_OPS = 548

const DOMAIN_ALIAS_RID_ADMINS = 544

const DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 560

const DOMAIN_ALIAS_RID_BACKUP_OPS = 551

const DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 571

const DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP = 574

const DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 569

const DOMAIN_ALIAS_RID_DCOM_USERS = 562

const DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 573

const DOMAIN_ALIAS_RID_GUESTS = 546

const DOMAIN_ALIAS_RID_HYPER_V_ADMINS = 578

const DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 557

const DOMAIN_ALIAS_RID_IUSERS = 568

const DOMAIN_ALIAS_RID_LOGGING_USERS = 559

const DOMAIN_ALIAS_RID_MONITORING_USERS = 558

const DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 556

const DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 572

const DOMAIN_ALIAS_RID_POWER_USERS = 547

const DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 554

const DOMAIN_ALIAS_RID_PRINT_OPS = 550

const DOMAIN_ALIAS_RID_RAS_SERVERS = 553

const DOMAIN_ALIAS_RID_RDS_ENDPOINT_SERVERS = 576

const DOMAIN_ALIAS_RID_RDS_MANAGEMENT_SERVERS = 577

const DOMAIN_ALIAS_RID_RDS_REMOTE_ACCESS_SERVERS = 575

const DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 555

const DOMAIN_ALIAS_RID_REMOTE_MANAGEMENT_USERS = 580

const DOMAIN_ALIAS_RID_REPLICATOR = 552

const DOMAIN_ALIAS_RID_SYSTEM_OPS = 549

const DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 561

const DOMAIN_ALIAS_RID_USERS = 545

const DOMAIN_GROUP_RID_ADMINS = 512

const DOMAIN_GROUP_RID_AUTHORIZATION_DATA_CONTAINS_CLAIMS = 497

const DOMAIN_GROUP_RID_AUTHORIZATION_DATA_IS_COMPOUNDED = 496

const DOMAIN_GROUP_RID_CERT_ADMINS = 517

const DOMAIN_GROUP_RID_CLONEABLE_CONTROLLERS = 522

const DOMAIN_GROUP_RID_COMPUTERS = 515

const DOMAIN_GROUP_RID_CONTROLLERS = 516

const DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 519

const DOMAIN_GROUP_RID_ENTERPRISE_READONLY_DOMAIN_CONTROLLERS = 498

const DOMAIN_GROUP_RID_GUESTS = 514

const DOMAIN_GROUP_RID_POLICY_ADMINS = 520

const DOMAIN_GROUP_RID_READONLY_CONTROLLERS = 521

const DOMAIN_GROUP_RID_SCHEMA_ADMINS = 518

const DOMAIN_GROUP_RID_USERS = 513

const DOMAIN_USER_RID_ADMIN = 500

const DOMAIN_USER_RID_GUEST = 501

const DOMAIN_USER_RID_KRBTGT = 502

const DOMAIN_USER_RID_MAX = 999

type DOMNodeType = TDOMNodeType

const DONT_RESOLVE_DLL_REFERENCES = 1

type DOUBLE = TDOUBLE

const DOUBLE_CLICK = 2

const DOWNLOADFACE = 514

const DOWNLOADHEADER = 4111

const DO_DROPFILE = 1162627398

const DO_PRINTFILE = 1414419024

const DPAPI_IMP = "DECLSPEC_IMPORT"

const DPD_DELETE_ALL_FILES = 4

const DPD_DELETE_SPECIFIC_VERSION = 2

const DPD_DELETE_UNUSED_FILES = 1

type DPI_AWARENESS = TDPI_AWARENESS

type DPI_AWARENESS_CONTEXT = TDPI_AWARENESS_CONTEXT

const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = -3

const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 = -4

const DPI_AWARENESS_CONTEXT_SYSTEM_AWARE = -2

const DPI_AWARENESS_CONTEXT_UNAWARE = -1

const DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED = -5

type DPI_AWARENESS_CONTEXT__ = TDPI_AWARENESS_CONTEXT__

type DPI_HOSTING_BEHAVIOR = TDPI_HOSTING_BEHAVIOR

const DRAFTMODE = 7

const DRAFT_QUALITY = 1

const DRAGDROP_E_FIRST = 2147746048

const DRAGDROP_E_LAST = 2147746063

const DRAGDROP_S_FIRST = 262400

const DRAGDROP_S_LAST = 262415

type DRAGINFO = TDRAGINFO

type DRAGINFOA = TDRAGINFOA

type DRAGINFOW = TDRAGINFOW

type DRAWITEMSTRUCT = TDRAWITEMSTRUCT

type DRAWPATRECT = TDRAWPATRECT

const DRAWPATTERNRECT = 25

type DRAWSTATEPROC = TDRAWSTATEPROC

type DRAWTEXTPARAMS = TDRAWTEXTPARAMS

type DRIVERPROC = TDRIVERPROC

type DRIVERSTATUS = TDRIVERSTATUS

const DRIVERVERSION = 0

type DRIVER_INFO_1 = TDRIVER_INFO_1

type DRIVER_INFO_1A = TDRIVER_INFO_1A

type DRIVER_INFO_1W = TDRIVER_INFO_1W

type DRIVER_INFO_2 = TDRIVER_INFO_2

type DRIVER_INFO_2A = TDRIVER_INFO_2A

type DRIVER_INFO_2W = TDRIVER_INFO_2W

type DRIVER_INFO_3 = TDRIVER_INFO_3

type DRIVER_INFO_3A = TDRIVER_INFO_3A

type DRIVER_INFO_3W = TDRIVER_INFO_3W

type DRIVER_INFO_4 = TDRIVER_INFO_4

type DRIVER_INFO_4A = TDRIVER_INFO_4A

type DRIVER_INFO_4W = TDRIVER_INFO_4W

type DRIVER_INFO_5 = TDRIVER_INFO_5

type DRIVER_INFO_5A = TDRIVER_INFO_5A

type DRIVER_INFO_5W = TDRIVER_INFO_5W

type DRIVER_INFO_6 = TDRIVER_INFO_6

type DRIVER_INFO_6A = TDRIVER_INFO_6A

type DRIVER_INFO_6W = TDRIVER_INFO_6W

type DRIVER_INFO_8 = TDRIVER_INFO_8

type DRIVER_INFO_8A = TDRIVER_INFO_8A

type DRIVER_INFO_8W = TDRIVER_INFO_8W

const DRIVER_KERNELMODE = 1

const DRIVER_USERMODE = 2

const DRIVE_CDROM = 5

const DRIVE_FIXED = 3

type DRIVE_LAYOUT_INFORMATION = TDRIVE_LAYOUT_INFORMATION

type DRIVE_LAYOUT_INFORMATION_EX = TDRIVE_LAYOUT_INFORMATION_EX

type DRIVE_LAYOUT_INFORMATION_GPT = TDRIVE_LAYOUT_INFORMATION_GPT

type DRIVE_LAYOUT_INFORMATION_MBR = TDRIVE_LAYOUT_INFORMATION_MBR

const DRIVE_NO_ROOT_DIR = 1

const DRIVE_RAMDISK = 6

const DRIVE_REMOTE = 4

const DRIVE_REMOVABLE = 2

const DRIVE_UNKNOWN = 0

const DROPEFFECT_COPY = 1

const DROPEFFECT_LINK = 4

const DROPEFFECT_MOVE = 2

const DROPEFFECT_NONE = 0

const DROPEFFECT_SCROLL = 2147483648

type DROPSTRUCT = TDROPSTRUCT

const DRVCNF_CANCEL = 0

const DRVCNF_OK = 1

const DRVCNF_RESTART = 2

type DRVCONFIGINFO = TDRVCONFIGINFO

type DRVCONFIGINFOEX = TDRVCONFIGINFOEX

const DRV_CANCEL = 0

const DRV_CLOSE = 4

const DRV_CONFIGURE = 7

const DRV_DISABLE = 5

const DRV_ENABLE = 2

const DRV_EXITSESSION = 11

const DRV_FREE = 6

const DRV_INSTALL = 9

const DRV_LOAD = 1

const DRV_MCI_FIRST = 2048

const DRV_MCI_LAST = 6143

const DRV_OK = 1

const DRV_OPEN = 3

const DRV_POWER = 15

const DRV_QUERYCONFIGURE = 8

const DRV_REMOVE = 10

const DRV_RESERVED = 2048

const DRV_RESTART = 2

const DRV_USER = 16384

type DSAFIPSVERSION_ENUM = TDSAFIPSVERSION_ENUM

const DSPRINT_PENDING = 2147483648

const DSPRINT_PUBLISH = 1

const DSPRINT_REPUBLISH = 8

const DSPRINT_UNPUBLISH = 4

const DSPRINT_UPDATE = 2

type DSSPRIVKEY_VER3 = TDSSPRIVKEY_VER3

type DSSPUBKEY = TDSSPUBKEY

type DSSPUBKEY_VER3 = TDSSPUBKEY_VER3

type DSSSEED = TDSSSEED

const DSS_DISABLED = 32

const DSS_HIDEPREFIX = 512

const DSS_MONO = 128

const DSS_NORMAL = 0

const DSS_PREFIXONLY = 1024

const DSS_RIGHT = 32768

const DSS_UNION = 16

const DST_BITMAP = 4

const DST_COMPLEX = 0

const DST_ICON = 3

const DST_PREFIXTEXT = 2

const DST_TEXT = 1

const DS_3DLOOK = 4

const DS_ABSALIGN = 1

const DS_CENTER = 2048

const DS_CENTERMOUSE = 4096

const DS_CONTEXTHELP = 8192

const DS_CONTROL = 1024

const DS_FIXEDSYS = 8

const DS_LOCALEDIT = 32

const DS_MODALFRAME = 128

const DS_NOFAILCREATE = 16

const DS_NOIDLEMSG = 256

const DS_SETFONT = 64

const DS_SETFOREGROUND = 512

const DS_SHELLFONT = 72

const DS_SYSMODAL = 2

const DS_S_SUCCESS = 0

const DTR_CONTROL_DISABLE = 0

const DTR_CONTROL_ENABLE = 1

const DTR_CONTROL_HANDSHAKE = 2

const DT_BOTTOM = 8

const DT_CALCRECT = 1024

const DT_CENTER = 1

const DT_CHARSTREAM = 4

const DT_DISPFILE = 6

const DT_EDITCONTROL = 8192

const DT_END_ELLIPSIS = 32768

const DT_EXPANDTABS = 64

const DT_EXTERNALLEADING = 512

const DT_HIDEPREFIX = 1048576

const DT_INTERNAL = 4096

const DT_LEFT = 0

const DT_METAFILE = 5

const DT_MODIFYSTRING = 65536

const DT_NOCLIP = 256

const DT_NOFULLWIDTHCHARBREAK = 524288

const DT_NOPREFIX = 2048

const DT_PATH_ELLIPSIS = 16384

const DT_PLOTTER = 0

const DT_PREFIXONLY = 2097152

const DT_RASCAMERA = 3

const DT_RASDISPLAY = 1

const DT_RASPRINTER = 2

const DT_RIGHT = 2

const DT_RTLREADING = 131072

const DT_SINGLELINE = 32

const DT_TABSTOP = 128

const DT_TOP = 0

const DT_VCENTER = 4

const DT_WORDBREAK = 16

const DT_WORD_ELLIPSIS = 262144

const DUPLICATE = 6

const DUPLICATE_CLOSE_SOURCE = 1

const DUPLICATE_DEREG = 7

const DUPLICATE_SAME_ACCESS = 2

type DVASPECT = TDVASPECT

type DVTARGETDEVICE = TDVTARGETDEVICE

const DWLP_DLGPROC = 0

const DWLP_MSGRESULT = 0

const DWLP_USER = 0

type DWORD = TDWORD

type DWORD32 = TDWORD32

type DWORD64 = TDWORD64

type DWORDLONG = TDWORDLONG

type DWORD_BLOB = TDWORD_BLOB

type DWORD_PTR = TDWORD_PTR

type DWORD_SIZEDARR = TDWORD_SIZEDARR

const DYNAMIC_EH_CONTINUATION_TARGET_ADD = 1

const DYNAMIC_EH_CONTINUATION_TARGET_PROCESSED = 2

const DYNAMIC_ENFORCED_ADDRESS_RANGE_ADD = 1

const DYNAMIC_ENFORCED_ADDRESS_RANGE_PROCESSED = 2

type DYNAMIC_TIME_ZONE_INFORMATION = TDYNAMIC_TIME_ZONE_INFORMATION

const DbgRaiseAssertionFailure = 0

const DceErrorInqText = 0

const DdeCreateStringHandle = 0

const DdeInitialize = 0

const DdeQueryString = 0

const DecryptFile = 0

const DefDlgProc = 0

const DefFrameProc = 0

const DefMDIChildProc = 0

const DefWindowProc = 0

const DefineDosDevice = 0

const DeleteFile = 0

const DeleteFileTransacted = 0

const DeleteForm = 0

const DeleteMonitor = 0

const DeletePort = 0

const DeletePrintProcessor = 0

const DeletePrintProvidor = 0

const DeletePrinterConnection = 0

const DeletePrinterData = 0

const DeletePrinterDataEx = 0

const DeletePrinterDriver = 0

const DeletePrinterDriverEx = 0

const DeletePrinterDriverPackage = 0

const DeletePrinterKey = 0

const DeleteVolumeMountPoint = 0

const DeviceCapabilities = 0

const DeviceDsmActionFlag_NonDestructive = 2147483648

const DeviceDsmAction_None = 0

const DeviceDsmAction_Notification = 2147483650

const DeviceDsmAction_Trim = 1

const DialogBox = 0

const DialogBoxIndirect = 0

const DialogBoxIndirectParam = 0

const DialogBoxParam = 0

const DiskClassGuid = 0

const DispatchMessage = 0

const DlgDirList = 0

const DlgDirListComboBox = 0

const DlgDirSelectComboBoxEx = 0

const DlgDirSelectEx = 0

const DnsHostnameToComputerName = 0

const DoEnvironmentSubst = 0

const DocumentEvent = 0

const DocumentProperties = 0

const DragQueryFile = 0

const DrawState = 0

const DrawText = 0

const DrawTextEx = 0

const EADDRINUSE = 100

const EADDRNOTAVAIL = 101

const EAFNOSUPPORT = 102

const EALREADY = 103

const EASTEUROPE_CHARSET = 238

const EBADMSG = 104

const ECANCELED = 105

const ECONNABORTED = 106

const ECONNREFUSED = 107

const ECONNRESET = 108

const EC_DISABLE = 8

const EC_ENABLEALL = 0

const EC_ENABLEONE = 128

const EC_LEFTMARGIN = 1

const EC_QUERYWAITING = 2

const EC_RIGHTMARGIN = 2

const EC_USEFONTINFO = 65535

const EDD_GET_DEVICE_INTERFACE_NAME = 1

const EDEADLK = 36

const EDEADLOCK = 36

const EDESTADDRREQ = 109

const EDGE_BUMP = 9

const EDGE_ETCHED = 6

const EDGE_RAISED = 5

const EDGE_SUNKEN = 10

type EDITWORDBREAKPROC = TEDITWORDBREAKPROC

type EDITWORDBREAKPROCA = TEDITWORDBREAKPROCA

type EDITWORDBREAKPROCW = TEDITWORDBREAKPROCW

const EDS_RAWMODE = 2

const EDS_ROTATEDMODE = 4

const EEInfoGCCOM = 11

const EEInfoGCFRS = 12

const EEInfoNextRecordsMissing = 2

const EEInfoPreviousRecordsMissing = 1

const EEInfoUseFileTime = 4

const EFSRPC_SECURE_ONLY = 8

type EFS_CERTIFICATE_BLOB = TEFS_CERTIFICATE_BLOB

const EFS_DROP_ALTERNATE_STREAMS = 16

type EFS_HASH_BLOB = TEFS_HASH_BLOB

type EFS_KEY_INFO = TEFS_KEY_INFO

type EFS_RPC_BLOB = TEFS_RPC_BLOB

const EFS_USE_RECOVERY_KEYS = 1

const EHOSTUNREACH = 110

const EIDRM = 111

const EILSEQ = 42

const EIMES_CANCELCOMPSTRINFOCUS = 2

const EIMES_COMPLETECOMPSTRKILLFOCUS = 4

const EIMES_GETCOMPSTRATONCE = 1

const EINPROGRESS = 112

const EISCONN = 113

type ELEMDESC = TELEMDESC

const ELEMENT_STATUS_ACCESS = 8

const ELEMENT_STATUS_AVOLTAG = 536870912

const ELEMENT_STATUS_EXCEPT = 4

const ELEMENT_STATUS_EXENAB = 16

const ELEMENT_STATUS_FULL = 1

const ELEMENT_STATUS_ID_VALID = 8192

const ELEMENT_STATUS_IMPEXP = 2

const ELEMENT_STATUS_INENAB = 32

const ELEMENT_STATUS_INVERT = 4194304

const ELEMENT_STATUS_LUN_VALID = 4096

const ELEMENT_STATUS_NOT_BUS = 32768

const ELEMENT_STATUS_PRODUCT_DATA = 64

const ELEMENT_STATUS_PVOLTAG = 268435456

const ELEMENT_STATUS_SVALID = 8388608

type ELEMENT_TYPE = TELEMENT_TYPE

const ELF_CULTURE_LATIN = 0

const ELF_VENDOR_SIZE = 4

const ELF_VERSION = 0

const ELOOP = 114

const EMARCH_ENC_I17_IC_INST_WORD_POS_X = 12

const EMARCH_ENC_I17_IC_INST_WORD_X = 3

const EMARCH_ENC_I17_IC_SIZE_X = 1

const EMARCH_ENC_I17_IC_VAL_POS_X = 21

const EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X = 14

const EMARCH_ENC_I17_IMM41a_INST_WORD_X = 1

const EMARCH_ENC_I17_IMM41a_SIZE_X = 10

const EMARCH_ENC_I17_IMM41a_VAL_POS_X = 22

const EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X = 24

const EMARCH_ENC_I17_IMM41b_INST_WORD_X = 1

const EMARCH_ENC_I17_IMM41b_SIZE_X = 8

const EMARCH_ENC_I17_IMM41b_VAL_POS_X = 32

const EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X = 0

const EMARCH_ENC_I17_IMM41c_INST_WORD_X = 2

const EMARCH_ENC_I17_IMM41c_SIZE_X = 23

const EMARCH_ENC_I17_IMM41c_VAL_POS_X = 40

const EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X = 13

const EMARCH_ENC_I17_IMM5C_INST_WORD_X = 3

const EMARCH_ENC_I17_IMM5C_SIZE_X = 5

const EMARCH_ENC_I17_IMM5C_VAL_POS_X = 16

const EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X = 4

const EMARCH_ENC_I17_IMM7B_INST_WORD_X = 3

const EMARCH_ENC_I17_IMM7B_SIZE_X = 7

const EMARCH_ENC_I17_IMM7B_VAL_POS_X = 0

const EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X = 18

const EMARCH_ENC_I17_IMM9D_INST_WORD_X = 3

const EMARCH_ENC_I17_IMM9D_SIZE_X = 9

const EMARCH_ENC_I17_IMM9D_VAL_POS_X = 7

const EMARCH_ENC_I17_SIGN_INST_WORD_POS_X = 27

const EMARCH_ENC_I17_SIGN_INST_WORD_X = 3

const EMARCH_ENC_I17_SIGN_SIZE_X = 1

const EMARCH_ENC_I17_SIGN_VAL_POS_X = 63

const EMBDHLP_CREATENOW = 0

const EMBDHLP_DELAYCREATE = 65536

const EMBDHLP_INPROC_HANDLER = 0

const EMBDHLP_INPROC_SERVER = 1

type EMR = TEMR

type EMRABORTPATH = TEMRABORTPATH

type EMRALPHABLEND = TEMRALPHABLEND

type EMRANGLEARC = TEMRANGLEARC

type EMRARC = TEMRARC

type EMRARCTO = TEMRARCTO

type EMRBEGINPATH = TEMRBEGINPATH

type EMRBITBLT = TEMRBITBLT

type EMRCHORD = TEMRCHORD

type EMRCLOSEFIGURE = TEMRCLOSEFIGURE

type EMRCOLORCORRECTPALETTE = TEMRCOLORCORRECTPALETTE

type EMRCOLORMATCHTOTARGET = TEMRCOLORMATCHTOTARGET

type EMRCREATEBRUSHINDIRECT = TEMRCREATEBRUSHINDIRECT

type EMRCREATECOLORSPACE = TEMRCREATECOLORSPACE

type EMRCREATECOLORSPACEW = TEMRCREATECOLORSPACEW

type EMRCREATEDIBPATTERNBRUSHPT = TEMRCREATEDIBPATTERNBRUSHPT

type EMRCREATEMONOBRUSH = TEMRCREATEMONOBRUSH

type EMRCREATEPALETTE = TEMRCREATEPALETTE

type EMRCREATEPEN = TEMRCREATEPEN

type EMRDELETECOLORSPACE = TEMRDELETECOLORSPACE

type EMRDELETEOBJECT = TEMRDELETEOBJECT

type EMRDRAWESCAPE = TEMRDRAWESCAPE

type EMRELLIPSE = TEMRELLIPSE

type EMRENDPATH = TEMRENDPATH

type EMREOF = TEMREOF

type EMREXCLUDECLIPRECT = TEMREXCLUDECLIPRECT

type EMREXTCREATEFONTINDIRECTW = TEMREXTCREATEFONTINDIRECTW

type EMREXTCREATEPEN = TEMREXTCREATEPEN

type EMREXTESCAPE = TEMREXTESCAPE

type EMREXTFLOODFILL = TEMREXTFLOODFILL

type EMREXTSELECTCLIPRGN = TEMREXTSELECTCLIPRGN

type EMREXTTEXTOUTA = TEMREXTTEXTOUTA

type EMREXTTEXTOUTW = TEMREXTTEXTOUTW

type EMRFILLPATH = TEMRFILLPATH

type EMRFILLRGN = TEMRFILLRGN

type EMRFLATTENPATH = TEMRFLATTENPATH

type EMRFORMAT = TEMRFORMAT

type EMRFRAMERGN = TEMRFRAMERGN

type EMRGDICOMMENT = TEMRGDICOMMENT

type EMRGLSBOUNDEDRECORD = TEMRGLSBOUNDEDRECORD

type EMRGLSRECORD = TEMRGLSRECORD

type EMRGRADIENTFILL = TEMRGRADIENTFILL

type EMRINTERSECTCLIPRECT = TEMRINTERSECTCLIPRECT

type EMRINVERTRGN = TEMRINVERTRGN

type EMRLINETO = TEMRLINETO

type EMRMASKBLT = TEMRMASKBLT

type EMRMODIFYWORLDTRANSFORM = TEMRMODIFYWORLDTRANSFORM

type EMRMOVETOEX = TEMRMOVETOEX

type EMRNAMEDESCAPE = TEMRNAMEDESCAPE

type EMROFFSETCLIPRGN = TEMROFFSETCLIPRGN

type EMRPAINTRGN = TEMRPAINTRGN

type EMRPIE = TEMRPIE

type EMRPIXELFORMAT = TEMRPIXELFORMAT

type EMRPLGBLT = TEMRPLGBLT

type EMRPOLYBEZIER = TEMRPOLYBEZIER

type EMRPOLYBEZIER16 = TEMRPOLYBEZIER16

type EMRPOLYBEZIERTO = TEMRPOLYBEZIERTO

type EMRPOLYBEZIERTO16 = TEMRPOLYBEZIERTO16

type EMRPOLYDRAW = TEMRPOLYDRAW

type EMRPOLYDRAW16 = TEMRPOLYDRAW16

type EMRPOLYGON = TEMRPOLYGON

type EMRPOLYGON16 = TEMRPOLYGON16

type EMRPOLYLINE = TEMRPOLYLINE

type EMRPOLYLINE16 = TEMRPOLYLINE16

type EMRPOLYLINETO = TEMRPOLYLINETO

type EMRPOLYLINETO16 = TEMRPOLYLINETO16

type EMRPOLYPOLYGON = TEMRPOLYPOLYGON

type EMRPOLYPOLYGON16 = TEMRPOLYPOLYGON16

type EMRPOLYPOLYLINE = TEMRPOLYPOLYLINE

type EMRPOLYPOLYLINE16 = TEMRPOLYPOLYLINE16

type EMRPOLYTEXTOUTA = TEMRPOLYTEXTOUTA

type EMRPOLYTEXTOUTW = TEMRPOLYTEXTOUTW

type EMRREALIZEPALETTE = TEMRREALIZEPALETTE

type EMRRECTANGLE = TEMRRECTANGLE

type EMRRESIZEPALETTE = TEMRRESIZEPALETTE

type EMRRESTOREDC = TEMRRESTOREDC

type EMRROUNDRECT = TEMRROUNDRECT

type EMRSAVEDC = TEMRSAVEDC

type EMRSCALEVIEWPORTEXTEX = TEMRSCALEVIEWPORTEXTEX

type EMRSCALEWINDOWEXTEX = TEMRSCALEWINDOWEXTEX

type EMRSELECTCLIPPATH = TEMRSELECTCLIPPATH

type EMRSELECTCOLORSPACE = TEMRSELECTCOLORSPACE

type EMRSELECTOBJECT = TEMRSELECTOBJECT

type EMRSELECTPALETTE = TEMRSELECTPALETTE

type EMRSETARCDIRECTION = TEMRSETARCDIRECTION

type EMRSETBKCOLOR = TEMRSETBKCOLOR

type EMRSETBKMODE = TEMRSETBKMODE

type EMRSETBRUSHORGEX = TEMRSETBRUSHORGEX

type EMRSETCOLORADJUSTMENT = TEMRSETCOLORADJUSTMENT

type EMRSETCOLORSPACE = TEMRSETCOLORSPACE

type EMRSETDIBITSTODEVICE = TEMRSETDIBITSTODEVICE

type EMRSETICMMODE = TEMRSETICMMODE

type EMRSETICMPROFILE = TEMRSETICMPROFILE

type EMRSETICMPROFILEA = TEMRSETICMPROFILEA

type EMRSETICMPROFILEW = TEMRSETICMPROFILEW

type EMRSETLAYOUT = TEMRSETLAYOUT

type EMRSETMAPMODE = TEMRSETMAPMODE

type EMRSETMAPPERFLAGS = TEMRSETMAPPERFLAGS

type EMRSETMETARGN = TEMRSETMETARGN

type EMRSETMITERLIMIT = TEMRSETMITERLIMIT

type EMRSETPALETTEENTRIES = TEMRSETPALETTEENTRIES

type EMRSETPIXELV = TEMRSETPIXELV

type EMRSETPOLYFILLMODE = TEMRSETPOLYFILLMODE

type EMRSETROP2 = TEMRSETROP2

type EMRSETSTRETCHBLTMODE = TEMRSETSTRETCHBLTMODE

type EMRSETTEXTALIGN = TEMRSETTEXTALIGN

type EMRSETTEXTCOLOR = TEMRSETTEXTCOLOR

type EMRSETVIEWPORTEXTEX = TEMRSETVIEWPORTEXTEX

type EMRSETVIEWPORTORGEX = TEMRSETVIEWPORTORGEX

type EMRSETWINDOWEXTEX = TEMRSETWINDOWEXTEX

type EMRSETWINDOWORGEX = TEMRSETWINDOWORGEX

type EMRSETWORLDTRANSFORM = TEMRSETWORLDTRANSFORM

type EMRSTRETCHBLT = TEMRSTRETCHBLT

type EMRSTRETCHDIBITS = TEMRSTRETCHDIBITS

type EMRSTROKEANDFILLPATH = TEMRSTROKEANDFILLPATH

type EMRSTROKEPATH = TEMRSTROKEPATH

type EMRTEXT = TEMRTEXT

type EMRTRANSPARENTBLT = TEMRTRANSPARENTBLT

type EMRWIDENPATH = TEMRWIDENPATH

const EMR_ABORTPATH = 68

const EMR_ALPHABLEND = 114

const EMR_ANGLEARC = 41

const EMR_ARC = 45

const EMR_ARCTO = 55

const EMR_BEGINPATH = 59

const EMR_BITBLT = 76

const EMR_CHORD = 46

const EMR_CLOSEFIGURE = 61

const EMR_COLORCORRECTPALETTE = 111

const EMR_COLORMATCHTOTARGETW = 121

const EMR_CREATEBRUSHINDIRECT = 39

const EMR_CREATECOLORSPACE = 99

const EMR_CREATECOLORSPACEW = 122

const EMR_CREATEDIBPATTERNBRUSHPT = 94

const EMR_CREATEMONOBRUSH = 93

const EMR_CREATEPALETTE = 49

const EMR_CREATEPEN = 38

const EMR_DELETECOLORSPACE = 101

const EMR_DELETEOBJECT = 40

const EMR_ELLIPSE = 42

const EMR_ENDPATH = 60

const EMR_EOF = 14

const EMR_EXCLUDECLIPRECT = 29

const EMR_EXTCREATEFONTINDIRECTW = 82

const EMR_EXTCREATEPEN = 95

const EMR_EXTFLOODFILL = 53

const EMR_EXTSELECTCLIPRGN = 75

const EMR_EXTTEXTOUTA = 83

const EMR_EXTTEXTOUTW = 84

const EMR_FILLPATH = 62

const EMR_FILLRGN = 71

const EMR_FLATTENPATH = 65

const EMR_FRAMERGN = 72

const EMR_GDICOMMENT = 70

const EMR_GLSBOUNDEDRECORD = 103

const EMR_GLSRECORD = 102

const EMR_GRADIENTFILL = 118

const EMR_HEADER = 1

const EMR_INTERSECTCLIPRECT = 30

const EMR_INVERTRGN = 73

const EMR_LINETO = 54

const EMR_MASKBLT = 78

const EMR_MAX = 122

const EMR_MIN = 1

const EMR_MODIFYWORLDTRANSFORM = 36

const EMR_MOVETOEX = 27

const EMR_OFFSETCLIPRGN = 26

const EMR_PAINTRGN = 74

const EMR_PIE = 47

const EMR_PIXELFORMAT = 104

const EMR_PLGBLT = 79

const EMR_POLYBEZIER = 2

const EMR_POLYBEZIER16 = 85

const EMR_POLYBEZIERTO = 5

const EMR_POLYBEZIERTO16 = 88

const EMR_POLYDRAW = 56

const EMR_POLYDRAW16 = 92

const EMR_POLYGON = 3

const EMR_POLYGON16 = 86

const EMR_POLYLINE = 4

const EMR_POLYLINE16 = 87

const EMR_POLYLINETO = 6

const EMR_POLYLINETO16 = 89

const EMR_POLYPOLYGON = 8

const EMR_POLYPOLYGON16 = 91

const EMR_POLYPOLYLINE = 7

const EMR_POLYPOLYLINE16 = 90

const EMR_POLYTEXTOUTA = 96

const EMR_POLYTEXTOUTW = 97

const EMR_REALIZEPALETTE = 52

const EMR_RECTANGLE = 43

const EMR_RESERVED_105 = 105

const EMR_RESERVED_106 = 106

const EMR_RESERVED_107 = 107

const EMR_RESERVED_108 = 108

const EMR_RESERVED_109 = 109

const EMR_RESERVED_110 = 110

const EMR_RESERVED_117 = 117

const EMR_RESERVED_119 = 119

const EMR_RESERVED_120 = 120

const EMR_RESIZEPALETTE = 51

const EMR_RESTOREDC = 34

const EMR_ROUNDRECT = 44

const EMR_SAVEDC = 33

const EMR_SCALEVIEWPORTEXTEX = 31

const EMR_SCALEWINDOWEXTEX = 32

const EMR_SELECTCLIPPATH = 67

const EMR_SELECTOBJECT = 37

const EMR_SELECTPALETTE = 48

const EMR_SETARCDIRECTION = 57

const EMR_SETBKCOLOR = 25

const EMR_SETBKMODE = 18

const EMR_SETBRUSHORGEX = 13

const EMR_SETCOLORADJUSTMENT = 23

const EMR_SETCOLORSPACE = 100

const EMR_SETDIBITSTODEVICE = 80

const EMR_SETICMMODE = 98

const EMR_SETICMPROFILEA = 112

const EMR_SETICMPROFILEW = 113

const EMR_SETLAYOUT = 115

const EMR_SETMAPMODE = 17

const EMR_SETMAPPERFLAGS = 16

const EMR_SETMETARGN = 28

const EMR_SETMITERLIMIT = 58

const EMR_SETPALETTEENTRIES = 50

const EMR_SETPIXELV = 15

const EMR_SETPOLYFILLMODE = 19

const EMR_SETROP2 = 20

const EMR_SETSTRETCHBLTMODE = 21

const EMR_SETTEXTALIGN = 22

const EMR_SETTEXTCOLOR = 24

const EMR_SETVIEWPORTEXTEX = 11

const EMR_SETVIEWPORTORGEX = 12

const EMR_SETWINDOWEXTEX = 9

const EMR_SETWINDOWORGEX = 10

const EMR_SETWORLDTRANSFORM = 35

const EMR_STRETCHBLT = 77

const EMR_STRETCHDIBITS = 81

const EMR_STROKEANDFILLPATH = 63

const EMR_STROKEPATH = 64

const EMR_TRANSPARENTBLT = 116

const EMR_WIDENPATH = 66

const EMSGSIZE = 115

const EMSIS_COMPOSITIONSTRING = 1

const EM_CANUNDO = 198

const EM_CHARFROMPOS = 215

const EM_EMPTYUNDOBUFFER = 205

const EM_ENABLEFEATURE = 218

const EM_FMTLINES = 200

const EM_GETFIRSTVISIBLELINE = 206

const EM_GETHANDLE = 189

const EM_GETIMESTATUS = 217

const EM_GETLIMITTEXT = 213

const EM_GETLINE = 196

const EM_GETLINECOUNT = 186

const EM_GETMARGINS = 212

const EM_GETMODIFY = 184

const EM_GETPASSWORDCHAR = 210

const EM_GETRECT = 178

const EM_GETSEL = 176

const EM_GETTHUMB = 190

const EM_GETWORDBREAKPROC = 209

const EM_LIMITTEXT = 197

const EM_LINEFROMCHAR = 201

const EM_LINEINDEX = 187

const EM_LINELENGTH = 193

const EM_LINESCROLL = 182

const EM_POSFROMCHAR = 214

const EM_REPLACESEL = 194

const EM_SCROLL = 181

const EM_SCROLLCARET = 183

const EM_SETHANDLE = 188

const EM_SETIMESTATUS = 216

const EM_SETLIMITTEXT = 197

const EM_SETMARGINS = 211

const EM_SETMODIFY = 185

const EM_SETPASSWORDCHAR = 204

const EM_SETREADONLY = 207

const EM_SETRECT = 179

const EM_SETRECTNP = 180

const EM_SETSEL = 177

const EM_SETTABSTOPS = 203

const EM_SETWORDBREAKPROC = 208

const EM_UNDO = 199

const ENABLEDUPLEX = 28

const ENABLEPAIRKERNING = 769

const ENABLERELATIVEWIDTHS = 768

const ENABLE_AUTO_POSITION = 256

const ENABLE_DISABLE_AUTOSAVE = 210

const ENABLE_DISABLE_AUTO_OFFLINE = 219

const ENABLE_ECHO_INPUT = 4

const ENABLE_EXTENDED_FLAGS = 128

const ENABLE_INSERT_MODE = 32

const ENABLE_LINE_INPUT = 2

const ENABLE_LVB_GRID_WORLDWIDE = 16

const ENABLE_MOUSE_INPUT = 16

const ENABLE_PROCESSED_INPUT = 1

const ENABLE_PROCESSED_OUTPUT = 1

const ENABLE_QUICK_EDIT_MODE = 64

const ENABLE_SMART = 216

const ENABLE_VIRTUAL_TERMINAL_INPUT = 512

const ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4

const ENABLE_WINDOW_INPUT = 8

const ENABLE_WRAP_AT_EOL_OUTPUT = 2

const ENAMETOOLONG = 38

const ENCAPSULATED_POSTSCRIPT = 4116

type ENCRYPTED_DATA_INFO = TENCRYPTED_DATA_INFO

const ENCRYPTED_DATA_INFO_SPARSE_FILE = 1

type ENCRYPTION_BUFFER = TENCRYPTION_BUFFER

type ENCRYPTION_CERTIFICATE = TENCRYPTION_CERTIFICATE

type ENCRYPTION_CERTIFICATE_HASH = TENCRYPTION_CERTIFICATE_HASH

type ENCRYPTION_CERTIFICATE_HASH_LIST = TENCRYPTION_CERTIFICATE_HASH_LIST

type ENCRYPTION_CERTIFICATE_LIST = TENCRYPTION_CERTIFICATE_LIST

const ENCRYPTION_FORMAT_DEFAULT = 1

const ENDDOC = 11

const ENDSESSION_CLOSEAPP = 1

const ENDSESSION_CRITICAL = 1073741824

const ENDSESSION_LOGOFF = 2147483648

const END_PATH = 4098

const ENETDOWN = 116

const ENETRESET = 117

const ENETUNREACH = 118

const ENHANCED_KEY = 256

type ENHMETAHEADER = TENHMETAHEADER

type ENHMETARECORD = TENHMETARECORD

const ENHMETA_SIGNATURE = 1179469088

const ENHMETA_STOCK_OBJECT = 2147483648

type ENHMFENUMPROC = TENHMFENUMPROC

const ENLISTMENT_ALL_ACCESS = 983071

type ENLISTMENT_BASIC_INFORMATION = TENLISTMENT_BASIC_INFORMATION

type ENLISTMENT_CRM_INFORMATION = TENLISTMENT_CRM_INFORMATION

const ENLISTMENT_GENERIC_EXECUTE = 131100

const ENLISTMENT_GENERIC_READ = 131073

const ENLISTMENT_GENERIC_WRITE = 131102

type ENLISTMENT_INFORMATION_CLASS = TENLISTMENT_INFORMATION_CLASS

const ENLISTMENT_MAXIMUM_OPTION = 1

const ENLISTMENT_OBJECT_NAME_LENGTH_IN_BYTES = 0

const ENLISTMENT_OBJECT_PATH = "\\\\Enlistment\\\\"

const ENLISTMENT_QUERY_INFORMATION = 1

const ENLISTMENT_RECOVER = 4

const ENLISTMENT_SET_INFORMATION = 2

const ENLISTMENT_SUBORDINATE_RIGHTS = 8

const ENLISTMENT_SUPERIOR = 1

const ENLISTMENT_SUPERIOR_RIGHTS = 16

const ENOBUFS = 119

const ENODATA = 120

const ENOFILE = 2

const ENOLCK = 39

const ENOLINK = 121

const ENOMSG = 122

const ENOPROTOOPT = 123

const ENOSR = 124

const ENOSTR = 125

const ENOSYS = 40

const ENOTCONN = 126

const ENOTEMPTY = 41

const ENOTRECOVERABLE = 127

const ENOTSOCK = 128

const ENOTSUP = 129

type ENUMLOGFONT = TENUMLOGFONT

type ENUMLOGFONTA = TENUMLOGFONTA

type ENUMLOGFONTEX = TENUMLOGFONTEX

type ENUMLOGFONTEXA = TENUMLOGFONTEXA

type ENUMLOGFONTEXDV = TENUMLOGFONTEXDV

type ENUMLOGFONTEXDVA = TENUMLOGFONTEXDVA

type ENUMLOGFONTEXDVW = TENUMLOGFONTEXDVW

type ENUMLOGFONTEXW = TENUMLOGFONTEXW

type ENUMLOGFONTW = TENUMLOGFONTW

const ENUMPAPERBINS = 31

const ENUMPAPERMETRICS = 34

const ENUMRESLANGPROC = 0

type ENUMRESLANGPROCA = TENUMRESLANGPROCA

type ENUMRESLANGPROCW = TENUMRESLANGPROCW

const ENUMRESNAMEPROC = 0

type ENUMRESNAMEPROCA = TENUMRESNAMEPROCA

type ENUMRESNAMEPROCW = TENUMRESNAMEPROCW

const ENUMRESTYPEPROC = 0

type ENUMRESTYPEPROCA = TENUMRESTYPEPROCA

type ENUMRESTYPEPROCW = TENUMRESTYPEPROCW

type ENUMTEXTMETRIC = TENUMTEXTMETRIC

type ENUMTEXTMETRICA = TENUMTEXTMETRICA

type ENUMTEXTMETRICW = TENUMTEXTMETRICW

type ENUMUILANG = TENUMUILANG

const ENUM_ALL_CALENDARS = 4294967295

const ENUM_CURRENT_SETTINGS = -1

const ENUM_E_FIRST = 2147746224

const ENUM_E_LAST = 2147746239

const ENUM_REGISTRY_SETTINGS = -2

type ENUM_SERVICE_STATUS = TENUM_SERVICE_STATUS

type ENUM_SERVICE_STATUSA = TENUM_SERVICE_STATUSA

type ENUM_SERVICE_STATUSW = TENUM_SERVICE_STATUSW

type ENUM_SERVICE_STATUS_PROCESS = TENUM_SERVICE_STATUS_PROCESS

type ENUM_SERVICE_STATUS_PROCESSA = TENUM_SERVICE_STATUS_PROCESSA

type ENUM_SERVICE_STATUS_PROCESSW = TENUM_SERVICE_STATUS_PROCESSW

const ENUM_S_FIRST = 262576

const ENUM_S_LAST = 262591

const EN_AFTER_PASTE = 2049

const EN_ALIGN_LTR_EC = 1792

const EN_ALIGN_RTL_EC = 1793

const EN_BEFORE_PASTE = 2048

const EN_CHANGE = 768

const EN_ERRSPACE = 1280

const EN_HSCROLL = 1537

const EN_KILLFOCUS = 512

const EN_MAXTEXT = 1281

const EN_SETFOCUS = 256

const EN_UPDATE = 1024

const EN_VSCROLL = 1538

type EOLE_AUTHENTICATION_CAPABILITIES = TEOLE_AUTHENTICATION_CAPABILITIES

const EOPNOTSUPP = 130

const EOVERFLOW = 132

const EOWNERDEAD = 133

const EPROTO = 134

const EPROTONOSUPPORT = 135

const EPROTOTYPE = 136

const EPSPRINTING = 33

const EPS_SIGNATURE = 1179865157

const EPT_S_CANT_CREATE = 1899

const EPT_S_CANT_PERFORM_OP = 1752

const EPT_S_INVALID_ENTRY = 1751

const EPT_S_NOT_REGISTERED = 1753

type EPrintXPSJobOperation = TEPrintXPSJobOperation

type EPrintXPSJobProgress = TEPrintXPSJobProgress

const ERROR = 0

const ERROR_ABANDONED_WAIT_0 = 735

const ERROR_ABANDONED_WAIT_63 = 736

const ERROR_ACCESS_DENIED = 5

const ERROR_ACCESS_DISABLED_BY_POLICY = 1260

const ERROR_ACCESS_DISABLED_WEBBLADE = 1277

const ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER = 1278

const ERROR_ACCOUNT_DISABLED = 1331

const ERROR_ACCOUNT_EXPIRED = 1793

const ERROR_ACCOUNT_LOCKED_OUT = 1909

const ERROR_ACCOUNT_RESTRICTION = 1327

const ERROR_ACTIVATION_COUNT_EXCEEDED = 7059

const ERROR_ACTIVE_CONNECTIONS = 2402

const ERROR_ADAP_HDW_ERR = 57

const ERROR_ADDRESS_ALREADY_ASSOCIATED = 1227

const ERROR_ADDRESS_NOT_ASSOCIATED = 1228

const ERROR_ADVANCED_INSTALLER_FAILED = 14099

const ERROR_ALERTED = 739

const ERROR_ALIAS_EXISTS = 1379

const ERROR_ALLOTTED_SPACE_EXCEEDED = 1344

const ERROR_ALL_NODES_NOT_AVAILABLE = 5037

const ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED = 1933

const ERROR_ALREADY_ASSIGNED = 85

const ERROR_ALREADY_EXISTS = 183

const ERROR_ALREADY_FIBER = 1280

const ERROR_ALREADY_INITIALIZED = 1247

const ERROR_ALREADY_REGISTERED = 1242

const ERROR_ALREADY_RUNNING_LKG = 1074

const ERROR_ALREADY_THREAD = 1281

const ERROR_ALREADY_WAITING = 1904

const ERROR_AMBIGUOUS_SYSTEM_DEVICE = 15250

const ERROR_API_UNAVAILABLE = 15841

const ERROR_APPHELP_BLOCK = 1259

const ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN = 15624

const ERROR_APP_WRONG_OS = 1151

const ERROR_ARENA_TRASHED = 7

const ERROR_ARITHMETIC_OVERFLOW = 534

const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174

const ERROR_AUTHENTICATION_FIREWALL_FAILED = 1935

const ERROR_AUTHIP_FAILURE = 1469

const ERROR_AUTODATASEG_EXCEEDS_64k = 199

const ERROR_BADDB = 1009

const ERROR_BADKEY = 1010

const ERROR_BAD_ARGUMENTS = 160

const ERROR_BAD_COMMAND = 22

const ERROR_BAD_CONFIGURATION = 1610

const ERROR_BAD_DESCRIPTOR_FORMAT = 1361

const ERROR_BAD_DEVICE = 1200

const ERROR_BAD_DEV_TYPE = 66

const ERROR_BAD_DRIVER = 2001

const ERROR_BAD_DRIVER_LEVEL = 119

const ERROR_BAD_ENVIRONMENT = 10

const ERROR_BAD_EXE_FORMAT = 193

const ERROR_BAD_FILE_TYPE = 222

const ERROR_BAD_FORMAT = 11

const ERROR_BAD_IMPERSONATION_LEVEL = 1346

const ERROR_BAD_INHERITANCE_ACL = 1340

const ERROR_BAD_LENGTH = 24

const ERROR_BAD_LOGON_SESSION_STATE = 1365

const ERROR_BAD_NETPATH = 53

const ERROR_BAD_NET_NAME = 67

const ERROR_BAD_NET_RESP = 58

const ERROR_BAD_PATHNAME = 161

const ERROR_BAD_PIPE = 230

const ERROR_BAD_PROFILE = 1206

const ERROR_BAD_PROVIDER = 1204

const ERROR_BAD_QUERY_SYNTAX = 1615

const ERROR_BAD_RECOVERY_POLICY = 6012

const ERROR_BAD_REM_ADAP = 60

const ERROR_BAD_THREADID_ADDR = 159

const ERROR_BAD_TOKEN_TYPE = 1349

const ERROR_BAD_UNIT = 20

const ERROR_BAD_USERNAME = 2202

const ERROR_BAD_USER_PROFILE = 1253

const ERROR_BAD_VALIDATION_CLASS = 1348

const ERROR_BEGINNING_OF_MEDIA = 1102

const ERROR_BIDI_DEVICE_OFFLINE = 13004

const ERROR_BIDI_ERROR_BASE = 13000

const ERROR_BIDI_NOT_SUPPORTED = 50

const ERROR_BIDI_SCHEMA_NOT_SUPPORTED = 13005

const ERROR_BIDI_SCHEMA_READ_ONLY = 13002

const ERROR_BIDI_SERVER_OFFLINE = 13003

const ERROR_BIDI_STATUS_OK = 0

const ERROR_BIDI_STATUS_WARNING = 13001

const ERROR_BOOT_ALREADY_ACCEPTED = 1076

const ERROR_BROKEN_PIPE = 109

const ERROR_BUFFER_OVERFLOW = 111

const ERROR_BUSY = 170

const ERROR_BUSY_DRIVE = 142

const ERROR_BUS_RESET = 1111

const ERROR_CALLBACK_SUPPLIED_INVALID_DATA = 1273

const ERROR_CALL_NOT_IMPLEMENTED = 120

const ERROR_CANCELLED = 1223

const ERROR_CANCEL_VIOLATION = 173

const ERROR_CANNOT_COPY = 266

const ERROR_CANNOT_DETECT_DRIVER_FAILURE = 1080

const ERROR_CANNOT_DETECT_PROCESS_ABORT = 1081

const ERROR_CANNOT_FIND_WND_CLASS = 1407

const ERROR_CANNOT_IMPERSONATE = 1368

const ERROR_CANNOT_MAKE = 82

const ERROR_CANNOT_OPEN_PROFILE = 1205

const ERROR_CANNOT_SWITCH_RUNLEVEL = 15400

const ERROR_CANTOPEN = 1011

const ERROR_CANTREAD = 1012

const ERROR_CANTWRITE = 1013

const ERROR_CANT_ACCESS_DOMAIN_INFO = 1351

const ERROR_CANT_ACCESS_FILE = 1920

const ERROR_CANT_DELETE_LAST_ITEM = 4335

const ERROR_CANT_DISABLE_MANDATORY = 1310

const ERROR_CANT_EVICT_ACTIVE_NODE = 5009

const ERROR_CANT_OPEN_ANONYMOUS = 1347

const ERROR_CANT_RESOLVE_FILENAME = 1921

const ERROR_CAN_NOT_COMPLETE = 1003

const ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001

const ERROR_CASE_DIFFERING_NAMES_IN_DIR = 424

const ERROR_CHECKOUT_REQUIRED = 221

const ERROR_CHILD_MUST_BE_VOLATILE = 1021

const ERROR_CHILD_NOT_COMPLETE = 129

const ERROR_CHILD_WINDOW_MENU = 1436

const ERROR_CIRCULAR_DEPENDENCY = 1059

const ERROR_CLASS_ALREADY_EXISTS = 1410

const ERROR_CLASS_DOES_NOT_EXIST = 1411

const ERROR_CLASS_HAS_WINDOWS = 1412

const ERROR_CLEANER_CARTRIDGE_INSTALLED = 4340

const ERROR_CLEANER_CARTRIDGE_SPENT = 4333

const ERROR_CLEANER_SLOT_NOT_SET = 4332

const ERROR_CLEANER_SLOT_SET = 4331

const ERROR_CLIPBOARD_NOT_OPEN = 1418

const ERROR_CLIPPING_NOT_SUPPORTED = 2005

const ERROR_CLUSCFG_ALREADY_COMMITTED = 5901

const ERROR_CLUSCFG_ROLLBACK_FAILED = 5902

const ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT = 5903

const ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND = 5032

const ERROR_CLUSTERLOG_CORRUPT = 5029

const ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE = 5031

const ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE = 5033

const ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE = 5030

const ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME = 5900

const ERROR_CLUSTER_DATABASE_SEQMISMATCH = 5083

const ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP = 5896

const ERROR_CLUSTER_GUM_NOT_LOCKER = 5085

const ERROR_CLUSTER_INCOMPATIBLE_VERSIONS = 5075

const ERROR_CLUSTER_INSTANCE_ID_MISMATCH = 5893

const ERROR_CLUSTER_INVALID_NETWORK = 5054

const ERROR_CLUSTER_INVALID_NETWORK_PROVIDER = 5049

const ERROR_CLUSTER_INVALID_NODE = 5039

const ERROR_CLUSTER_INVALID_REQUEST = 5048

const ERROR_CLUSTER_IPADDR_IN_USE = 5057

const ERROR_CLUSTER_JOIN_ABORTED = 5074

const ERROR_CLUSTER_JOIN_IN_PROGRESS = 5041

const ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS = 5053

const ERROR_CLUSTER_LAST_INTERNAL_NETWORK = 5066

const ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND = 5043

const ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED = 5076

const ERROR_CLUSTER_MEMBERSHIP_HALT = 5892

const ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE = 5890

const ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME = 5905

const ERROR_CLUSTER_NETINTERFACE_EXISTS = 5046

const ERROR_CLUSTER_NETINTERFACE_NOT_FOUND = 5047

const ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE = 5064

const ERROR_CLUSTER_NETWORK_ALREADY_ONLINE = 5063

const ERROR_CLUSTER_NETWORK_EXISTS = 5044

const ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS = 5067

const ERROR_CLUSTER_NETWORK_NOT_FOUND = 5045

const ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP = 5894

const ERROR_CLUSTER_NETWORK_NOT_INTERNAL = 5060

const ERROR_CLUSTER_NODE_ALREADY_DOWN = 5062

const ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT = 5088

const ERROR_CLUSTER_NODE_ALREADY_MEMBER = 5065

const ERROR_CLUSTER_NODE_ALREADY_UP = 5061

const ERROR_CLUSTER_NODE_DOWN = 5050

const ERROR_CLUSTER_NODE_EXISTS = 5040

const ERROR_CLUSTER_NODE_NOT_FOUND = 5042

const ERROR_CLUSTER_NODE_NOT_MEMBER = 5052

const ERROR_CLUSTER_NODE_NOT_PAUSED = 5058

const ERROR_CLUSTER_NODE_NOT_READY = 5072

const ERROR_CLUSTER_NODE_PAUSED = 5070

const ERROR_CLUSTER_NODE_SHUTTING_DOWN = 5073

const ERROR_CLUSTER_NODE_UNREACHABLE = 5051

const ERROR_CLUSTER_NODE_UP = 5056

const ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED = 5081

const ERROR_CLUSTER_NO_SECURITY_CONTEXT = 5059

const ERROR_CLUSTER_OLD_VERSION = 5904

const ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST = 5082

const ERROR_CLUSTER_PARAMETER_MISMATCH = 5897

const ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH = 5895

const ERROR_CLUSTER_QUORUMLOG_NOT_FOUND = 5891

const ERROR_CLUSTER_RESNAME_NOT_FOUND = 5080

const ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND = 5078

const ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED = 5079

const ERROR_CLUSTER_SHUTTING_DOWN = 5022

const ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED = 5077

const ERROR_CLUSTER_WRONG_OS_VERSION = 5899

const ERROR_COLORSPACE_MISMATCH = 2021

const ERROR_COMMITMENT_LIMIT = 1455

const ERROR_COMMITMENT_MINIMUM = 635

const ERROR_COMPRESSION_NOT_BENEFICIAL = 344

const ERROR_COM_TASK_STOP_PENDING = 15501

const ERROR_CONNECTED_OTHER_PASSWORD = 2108

const ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT = 2109

const ERROR_CONNECTION_ABORTED = 1236

const ERROR_CONNECTION_ACTIVE = 1230

const ERROR_CONNECTION_COUNT_LIMIT = 1238

const ERROR_CONNECTION_INVALID = 1229

const ERROR_CONNECTION_REFUSED = 1225

const ERROR_CONNECTION_UNAVAIL = 1201

const ERROR_CONTEXT_EXPIRED = 1931

const ERROR_CONTINUE = 1246

const ERROR_CONTROLLING_IEPORT = 4329

const ERROR_CONTROL_ID_NOT_FOUND = 1421

const ERROR_CORE_RESOURCE = 5026

const ERROR_COUNTER_TIMEOUT = 1121

const ERROR_CRC = 23

const ERROR_CREATE_FAILED = 1631

const ERROR_CSCSHARE_OFFLINE = 1262

const ERROR_CTX_BAD_VIDEO_MODE = 7025

const ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY = 7005

const ERROR_CTX_CLIENT_LICENSE_IN_USE = 7052

const ERROR_CTX_CLIENT_LICENSE_NOT_SET = 7053

const ERROR_CTX_CLIENT_QUERY_TIMEOUT = 7040

const ERROR_CTX_CLOSE_PENDING = 7007

const ERROR_CTX_CONSOLE_CONNECT = 7042

const ERROR_CTX_CONSOLE_DISCONNECT = 7041

const ERROR_CTX_GRAPHICS_INVALID = 7035

const ERROR_CTX_INVALID_MODEMNAME = 7010

const ERROR_CTX_INVALID_PD = 7002

const ERROR_CTX_INVALID_WD = 7049

const ERROR_CTX_LICENSE_CLIENT_INVALID = 7055

const ERROR_CTX_LICENSE_EXPIRED = 7056

const ERROR_CTX_LICENSE_NOT_AVAILABLE = 7054

const ERROR_CTX_LOGON_DISABLED = 7037

const ERROR_CTX_MODEM_INF_NOT_FOUND = 7009

const ERROR_CTX_MODEM_RESPONSE_BUSY = 7015

const ERROR_CTX_MODEM_RESPONSE_ERROR = 7011

const ERROR_CTX_MODEM_RESPONSE_NO_CARRIER = 7013

const ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE = 7014

const ERROR_CTX_MODEM_RESPONSE_TIMEOUT = 7012

const ERROR_CTX_MODEM_RESPONSE_VOICE = 7016

const ERROR_CTX_NOT_CONSOLE = 7038

const ERROR_CTX_NO_OUTBUF = 7008

const ERROR_CTX_PD_NOT_FOUND = 7003

const ERROR_CTX_SERVICE_NAME_COLLISION = 7006

const ERROR_CTX_SHADOW_DENIED = 7044

const ERROR_CTX_SHADOW_DISABLED = 7051

const ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE = 7058

const ERROR_CTX_SHADOW_INVALID = 7050

const ERROR_CTX_SHADOW_NOT_RUNNING = 7057

const ERROR_CTX_TD_ERROR = 7017

const ERROR_CTX_WD_NOT_FOUND = 7004

const ERROR_CTX_WINSTATION_ACCESS_DENIED = 7045

const ERROR_CTX_WINSTATION_ALREADY_EXISTS = 7023

const ERROR_CTX_WINSTATION_BUSY = 7024

const ERROR_CTX_WINSTATION_NAME_INVALID = 7001

const ERROR_CTX_WINSTATION_NOT_FOUND = 7022

const ERROR_CURRENT_DIRECTORY = 16

const ERROR_CURRENT_DOMAIN_NOT_ALLOWED = 1399

const ERROR_DATABASE_BACKUP_CORRUPT = 5087

const ERROR_DATABASE_DOES_NOT_EXIST = 1065

const ERROR_DATABASE_FAILURE = 4313

const ERROR_DATABASE_FULL = 4314

const ERROR_DATATYPE_MISMATCH = 1629

const ERROR_DC_NOT_FOUND = 1425

const ERROR_DDE_FAIL = 1156

const ERROR_DEBUGGER_INACTIVE = 1284

const ERROR_DECRYPTION_FAILED = 6001

const ERROR_DELAY_LOAD_FAILED = 1285

const ERROR_DELETE_PENDING = 303

const ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED = 15621

const ERROR_DELETING_ICM_XFORM = 2019

const ERROR_DEPENDENCY_ALREADY_EXISTS = 5003

const ERROR_DEPENDENCY_NOT_ALLOWED = 5069

const ERROR_DEPENDENCY_NOT_FOUND = 5002

const ERROR_DEPENDENT_RESOURCE_EXISTS = 5001

const ERROR_DEPENDENT_SERVICES_RUNNING = 1051

const ERROR_DEPLOYMENT_BLOCKED_BY_POLICY = 15617

const ERROR_DESTINATION_ELEMENT_FULL = 1161

const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435

const ERROR_DEVICE_ALREADY_REMEMBERED = 1202

const ERROR_DEVICE_DOOR_OPEN = 1166

const ERROR_DEVICE_IN_USE = 2404

const ERROR_DEVICE_NOT_AVAILABLE = 4319

const ERROR_DEVICE_NOT_CONNECTED = 1167

const ERROR_DEVICE_NOT_PARTITIONED = 1107

const ERROR_DEVICE_REINITIALIZATION_NEEDED = 1164

const ERROR_DEVICE_REMOVED = 1617

const ERROR_DEVICE_REQUIRES_CLEANING = 1165

const ERROR_DEV_NOT_EXIST = 55

const ERROR_DHCP_ADDRESS_CONFLICT = 4100

const ERROR_DIFFERENT_SERVICE_ACCOUNT = 1079

const ERROR_DIRECTORY = 267

const ERROR_DIRECT_ACCESS_HANDLE = 130

const ERROR_DIR_EFS_DISALLOWED = 6010

const ERROR_DIR_NOT_EMPTY = 145

const ERROR_DIR_NOT_ROOT = 144

const ERROR_DISCARDED = 157

const ERROR_DISK_CHANGE = 107

const ERROR_DISK_CORRUPT = 1393

const ERROR_DISK_FULL = 112

const ERROR_DISK_OPERATION_FAILED = 1127

const ERROR_DISK_RECALIBRATE_FAILED = 1126

const ERROR_DISK_RESET_FAILED = 1128

const ERROR_DISK_TOO_FRAGMENTED = 302

const ERROR_DLL_INIT_FAILED = 1114

const ERROR_DLL_NOT_FOUND = 1157

const ERROR_DOMAIN_CONTROLLER_EXISTS = 1250

const ERROR_DOMAIN_CONTROLLER_NOT_FOUND = 1908

const ERROR_DOMAIN_EXISTS = 1356

const ERROR_DOMAIN_LIMIT_EXCEEDED = 1357

const ERROR_DOMAIN_TRUST_INCONSISTENT = 1810

const ERROR_DOWNGRADE_DETECTED = 1265

const ERROR_DRIVER_BLOCKED = 1275

const ERROR_DRIVE_LOCKED = 108

const ERROR_DRIVE_MEDIA_MISMATCH = 4303

const ERROR_DRIVE_NOT_INSTALLED = 8

const ERROR_DS_ADD_REPLICA_INHIBITED = 8302

const ERROR_DS_ADMIN_LIMIT_EXCEEDED = 8228

const ERROR_DS_AFFECTS_MULTIPLE_DSAS = 8249

const ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = 8578

const ERROR_DS_ALIASED_OBJ_MISSING = 8334

const ERROR_DS_ALIAS_DEREF_PROBLEM = 8244

const ERROR_DS_ALIAS_POINTS_TO_ALIAS = 8336

const ERROR_DS_ALIAS_PROBLEM = 8241

const ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS = 8205

const ERROR_DS_ATTRIBUTE_OWNED_BY_SAM = 8346

const ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED = 8204

const ERROR_DS_ATT_ALREADY_EXISTS = 8318

const ERROR_DS_ATT_IS_NOT_ON_OBJ = 8310

const ERROR_DS_ATT_NOT_DEF_FOR_CLASS = 8317

const ERROR_DS_ATT_NOT_DEF_IN_SCHEMA = 8303

const ERROR_DS_ATT_SCHEMA_REQ_ID = 8399

const ERROR_DS_ATT_SCHEMA_REQ_SYNTAX = 8416

const ERROR_DS_ATT_VAL_ALREADY_EXISTS = 8323

const ERROR_DS_AUTHORIZATION_FAILED = 8599

const ERROR_DS_AUTH_METHOD_NOT_SUPPORTED = 8231

const ERROR_DS_AUTH_UNKNOWN = 8234

const ERROR_DS_AUX_CLS_TEST_FAIL = 8389

const ERROR_DS_BACKLINK_WITHOUT_LINK = 8482

const ERROR_DS_BAD_ATT_SCHEMA_SYNTAX = 8400

const ERROR_DS_BAD_HIERARCHY_FILE = 8425

const ERROR_DS_BAD_INSTANCE_TYPE = 8313

const ERROR_DS_BAD_NAME_SYNTAX = 8335

const ERROR_DS_BAD_RDN_ATT_ID_SYNTAX = 8392

const ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED = 8426

const ERROR_DS_BUSY = 8206

const ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD = 8585

const ERROR_DS_CANT_ADD_ATT_VALUES = 8320

const ERROR_DS_CANT_ADD_SYSTEM_ONLY = 8358

const ERROR_DS_CANT_ADD_TO_GC = 8550

const ERROR_DS_CANT_CACHE_ATT = 8401

const ERROR_DS_CANT_CACHE_CLASS = 8402

const ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC = 8553

const ERROR_DS_CANT_CREATE_UNDER_SCHEMA = 8510

const ERROR_DS_CANT_DELETE = 8398

const ERROR_DS_CANT_DELETE_DSA_OBJ = 8340

const ERROR_DS_CANT_DEL_MASTER_CROSSREF = 8375

const ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC = 8604

const ERROR_DS_CANT_DEREF_ALIAS = 8337

const ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN = 8603

const ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF = 8589

const ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN = 8537

const ERROR_DS_CANT_FIND_DSA_OBJ = 8419

const ERROR_DS_CANT_FIND_EXPECTED_NC = 8420

const ERROR_DS_CANT_FIND_NC_IN_CACHE = 8421

const ERROR_DS_CANT_MIX_MASTER_AND_REPS = 8331

const ERROR_DS_CANT_MOD_OBJ_CLASS = 8215

const ERROR_DS_CANT_MOD_PRIMARYGROUPID = 8506

const ERROR_DS_CANT_MOD_SYSTEM_ONLY = 8369

const ERROR_DS_CANT_MOVE_ACCOUNT_GROUP = 8498

const ERROR_DS_CANT_MOVE_APP_BASIC_GROUP = 8608

const ERROR_DS_CANT_MOVE_APP_QUERY_GROUP = 8609

const ERROR_DS_CANT_MOVE_DELETED_OBJECT = 8489

const ERROR_DS_CANT_MOVE_RESOURCE_GROUP = 8499

const ERROR_DS_CANT_ON_NON_LEAF = 8213

const ERROR_DS_CANT_ON_RDN = 8214

const ERROR_DS_CANT_REMOVE_ATT_CACHE = 8403

const ERROR_DS_CANT_REMOVE_CLASS_CACHE = 8404

const ERROR_DS_CANT_REM_MISSING_ATT = 8324

const ERROR_DS_CANT_REM_MISSING_ATT_VAL = 8325

const ERROR_DS_CANT_REPLACE_HIDDEN_REC = 8424

const ERROR_DS_CANT_RETRIEVE_ATTS = 8481

const ERROR_DS_CANT_RETRIEVE_CHILD = 8422

const ERROR_DS_CANT_RETRIEVE_DN = 8405

const ERROR_DS_CANT_RETRIEVE_INSTANCE = 8407

const ERROR_DS_CANT_RETRIEVE_SD = 8526

const ERROR_DS_CANT_START = 8531

const ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ = 8560

const ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS = 8493

const ERROR_DS_CHILDREN_EXIST = 8332

const ERROR_DS_CLASS_MUST_BE_CONCRETE = 8359

const ERROR_DS_CLASS_NOT_DSA = 8343

const ERROR_DS_CLIENT_LOOP = 8259

const ERROR_DS_CODE_INCONSISTENCY = 8408

const ERROR_DS_COMPARE_FALSE = 8229

const ERROR_DS_COMPARE_TRUE = 8230

const ERROR_DS_CONFIDENTIALITY_REQUIRED = 8237

const ERROR_DS_CONFIG_PARAM_MISSING = 8427

const ERROR_DS_CONSTRAINT_VIOLATION = 8239

const ERROR_DS_CONSTRUCTED_ATT_MOD = 8475

const ERROR_DS_CONTROL_NOT_FOUND = 8258

const ERROR_DS_COULDNT_CONTACT_FSMO = 8367

const ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE = 8503

const ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE = 8502

const ERROR_DS_COULDNT_UPDATE_SPNS = 8525

const ERROR_DS_COUNTING_AB_INDICES_FAILED = 8428

const ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD = 8491

const ERROR_DS_CROSS_DOM_MOVE_ERROR = 8216

const ERROR_DS_CROSS_NC_DN_RENAME = 8368

const ERROR_DS_CROSS_REF_BUSY = 8602

const ERROR_DS_CROSS_REF_EXISTS = 8374

const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE = 8495

const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 = 8586

const ERROR_DS_DATABASE_ERROR = 8409

const ERROR_DS_DECODING_ERROR = 8253

const ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED = 8536

const ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST = 8535

const ERROR_DS_DIFFERENT_REPL_EPOCHS = 8593

const ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER = 8615

const ERROR_DS_DNS_LOOKUP_FAILURE = 8524

const ERROR_DS_DOMAIN_RENAME_IN_PROGRESS = 8612

const ERROR_DS_DOMAIN_VERSION_TOO_HIGH = 8564

const ERROR_DS_DOMAIN_VERSION_TOO_LOW = 8566

const ERROR_DS_DRA_ABANDON_SYNC = 8462

const ERROR_DS_DRA_ACCESS_DENIED = 8453

const ERROR_DS_DRA_BAD_DN = 8439

const ERROR_DS_DRA_BAD_INSTANCE_TYPE = 8445

const ERROR_DS_DRA_BAD_NC = 8440

const ERROR_DS_DRA_BUSY = 8438

const ERROR_DS_DRA_CONNECTION_FAILED = 8444

const ERROR_DS_DRA_DB_ERROR = 8451

const ERROR_DS_DRA_DN_EXISTS = 8441

const ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT = 8544

const ERROR_DS_DRA_EXTN_CONNECTION_FAILED = 8466

const ERROR_DS_DRA_GENERIC = 8436

const ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET = 8464

const ERROR_DS_DRA_INCONSISTENT_DIT = 8443

const ERROR_DS_DRA_INTERNAL_ERROR = 8442

const ERROR_DS_DRA_INVALID_PARAMETER = 8437

const ERROR_DS_DRA_MAIL_PROBLEM = 8447

const ERROR_DS_DRA_MISSING_PARENT = 8460

const ERROR_DS_DRA_NAME_COLLISION = 8458

const ERROR_DS_DRA_NOT_SUPPORTED = 8454

const ERROR_DS_DRA_NO_REPLICA = 8452

const ERROR_DS_DRA_OBJ_IS_REP_SOURCE = 8450

const ERROR_DS_DRA_OBJ_NC_MISMATCH = 8545

const ERROR_DS_DRA_OUT_OF_MEM = 8446

const ERROR_DS_DRA_OUT_SCHEDULE_WINDOW = 8617

const ERROR_DS_DRA_PREEMPTED = 8461

const ERROR_DS_DRA_REF_ALREADY_EXISTS = 8448

const ERROR_DS_DRA_REF_NOT_FOUND = 8449

const ERROR_DS_DRA_REPL_PENDING = 8477

const ERROR_DS_DRA_RPC_CANCELLED = 8455

const ERROR_DS_DRA_SCHEMA_CONFLICT = 8543

const ERROR_DS_DRA_SCHEMA_INFO_SHIP = 8542

const ERROR_DS_DRA_SCHEMA_MISMATCH = 8418

const ERROR_DS_DRA_SHUTDOWN = 8463

const ERROR_DS_DRA_SINK_DISABLED = 8457

const ERROR_DS_DRA_SOURCE_DISABLED = 8456

const ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA = 8465

const ERROR_DS_DRA_SOURCE_REINSTALLED = 8459

const ERROR_DS_DRS_EXTENSIONS_CHANGED = 8594

const ERROR_DS_DSA_MUST_BE_INT_MASTER = 8342

const ERROR_DS_DST_DOMAIN_NOT_NATIVE = 8496

const ERROR_DS_DST_NC_MISMATCH = 8486

const ERROR_DS_DS_REQUIRED = 8478

const ERROR_DS_DUPLICATE_ID_FOUND = 8605

const ERROR_DS_DUP_LDAP_DISPLAY_NAME = 8382

const ERROR_DS_DUP_LINK_ID = 8468

const ERROR_DS_DUP_MAPI_ID = 8380

const ERROR_DS_DUP_MSDS_INTID = 8597

const ERROR_DS_DUP_OID = 8379

const ERROR_DS_DUP_RDN = 8378

const ERROR_DS_DUP_SCHEMA_ID_GUID = 8381

const ERROR_DS_ENCODING_ERROR = 8252

const ERROR_DS_EPOCH_MISMATCH = 8483

const ERROR_DS_EXISTING_AD_CHILD_NC = 8613

const ERROR_DS_EXISTS_IN_AUX_CLS = 8393

const ERROR_DS_EXISTS_IN_MAY_HAVE = 8386

const ERROR_DS_EXISTS_IN_MUST_HAVE = 8385

const ERROR_DS_EXISTS_IN_POSS_SUP = 8395

const ERROR_DS_EXISTS_IN_RDNATTID = 8598

const ERROR_DS_EXISTS_IN_SUB_CLS = 8394

const ERROR_DS_FILTER_UNKNOWN = 8254

const ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS = 8555

const ERROR_DS_FOREST_VERSION_TOO_HIGH = 8563

const ERROR_DS_FOREST_VERSION_TOO_LOW = 8565

const ERROR_DS_GCVERIFY_ERROR = 8417

const ERROR_DS_GC_NOT_AVAILABLE = 8217

const ERROR_DS_GC_REQUIRED = 8547

const ERROR_DS_GENERIC_ERROR = 8341

const ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = 8519

const ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = 8516

const ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = 8517

const ERROR_DS_GOVERNSID_MISSING = 8410

const ERROR_DS_GROUP_CONVERSION_ERROR = 8607

const ERROR_DS_HAVE_PRIMARY_MEMBERS = 8521

const ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED = 8429

const ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD = 8507

const ERROR_DS_ILLEGAL_MOD_OPERATION = 8311

const ERROR_DS_ILLEGAL_SUPERIOR = 8345

const ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION = 8492

const ERROR_DS_INAPPROPRIATE_AUTH = 8233

const ERROR_DS_INAPPROPRIATE_MATCHING = 8238

const ERROR_DS_INCOMPATIBLE_CONTROLS_USED = 8574

const ERROR_DS_INCOMPATIBLE_VERSION = 8567

const ERROR_DS_INCORRECT_ROLE_OWNER = 8210

const ERROR_DS_INIT_FAILURE = 8532

const ERROR_DS_INIT_FAILURE_CONSOLE = 8561

const ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE = 8512

const ERROR_DS_INSTALL_NO_SRC_SCH_VERSION = 8511

const ERROR_DS_INSTALL_SCHEMA_MISMATCH = 8467

const ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT = 8606

const ERROR_DS_INSUFF_ACCESS_RIGHTS = 8344

const ERROR_DS_INTERNAL_FAILURE = 8430

const ERROR_DS_INVALID_ATTRIBUTE_SYNTAX = 8203

const ERROR_DS_INVALID_DMD = 8360

const ERROR_DS_INVALID_DN_SYNTAX = 8242

const ERROR_DS_INVALID_GROUP_TYPE = 8513

const ERROR_DS_INVALID_LDAP_DISPLAY_NAME = 8479

const ERROR_DS_INVALID_NAME_FOR_SPN = 8554

const ERROR_DS_INVALID_ROLE_OWNER = 8366

const ERROR_DS_INVALID_SCRIPT = 8600

const ERROR_DS_INVALID_SEARCH_FLAG = 8500

const ERROR_DS_IS_LEAF = 8243

const ERROR_DS_KEY_NOT_UNIQUE = 8527

const ERROR_DS_LDAP_SEND_QUEUE_FULL = 8616

const ERROR_DS_LINK_ID_NOT_AVAILABLE = 8577

const ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = 8520

const ERROR_DS_LOCAL_ERROR = 8251

const ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = 8548

const ERROR_DS_LOOP_DETECT = 8246

const ERROR_DS_LOW_DSA_VERSION = 8568

const ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 = 8572

const ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = 8557

const ERROR_DS_MASTERDSA_REQUIRED = 8314

const ERROR_DS_MAX_OBJ_SIZE_EXCEEDED = 8304

const ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY = 8201

const ERROR_DS_MISSING_EXPECTED_ATT = 8411

const ERROR_DS_MISSING_FSMO_SETTINGS = 8434

const ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER = 8497

const ERROR_DS_MISSING_REQUIRED_ATT = 8316

const ERROR_DS_MISSING_SUPREF = 8406

const ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG = 8581

const ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE = 8579

const ERROR_DS_MODIFYDN_WRONG_GRANDPARENT = 8582

const ERROR_DS_MUST_BE_RUN_ON_DST_DC = 8558

const ERROR_DS_NAME_ERROR_DOMAIN_ONLY = 8473

const ERROR_DS_NAME_ERROR_NOT_FOUND = 8470

const ERROR_DS_NAME_ERROR_NOT_UNIQUE = 8471

const ERROR_DS_NAME_ERROR_NO_MAPPING = 8472

const ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 8474

const ERROR_DS_NAME_ERROR_RESOLVING = 8469

const ERROR_DS_NAME_ERROR_TRUST_REFERRAL = 8583

const ERROR_DS_NAME_NOT_UNIQUE = 8571

const ERROR_DS_NAME_REFERENCE_INVALID = 8373

const ERROR_DS_NAME_TOO_LONG = 8348

const ERROR_DS_NAME_TOO_MANY_PARTS = 8347

const ERROR_DS_NAME_TYPE_UNKNOWN = 8351

const ERROR_DS_NAME_UNPARSEABLE = 8350

const ERROR_DS_NAME_VALUE_TOO_LONG = 8349

const ERROR_DS_NAMING_MASTER_GC = 8523

const ERROR_DS_NAMING_VIOLATION = 8247

const ERROR_DS_NCNAME_MISSING_CR_REF = 8412

const ERROR_DS_NCNAME_MUST_BE_NC = 8357

const ERROR_DS_NC_MUST_HAVE_NC_PARENT = 8494

const ERROR_DS_NC_STILL_HAS_DSAS = 8546

const ERROR_DS_NONEXISTENT_MAY_HAVE = 8387

const ERROR_DS_NONEXISTENT_MUST_HAVE = 8388

const ERROR_DS_NONEXISTENT_POSS_SUP = 8390

const ERROR_DS_NONSAFE_SCHEMA_CHANGE = 8508

const ERROR_DS_NON_BASE_SEARCH = 8480

const ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX = 8377

const ERROR_DS_NOT_AN_OBJECT = 8352

const ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC = 8487

const ERROR_DS_NOT_CLOSEST = 8588

const ERROR_DS_NOT_INSTALLED = 8200

const ERROR_DS_NOT_ON_BACKLINK = 8362

const ERROR_DS_NOT_SUPPORTED = 8256

const ERROR_DS_NOT_SUPPORTED_SORT_ORDER = 8570

const ERROR_DS_NO_ATTRIBUTE_OR_VALUE = 8202

const ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN = 8569

const ERROR_DS_NO_CHAINED_EVAL = 8328

const ERROR_DS_NO_CHAINING = 8327

const ERROR_DS_NO_CHECKPOINT_WITH_PDC = 8551

const ERROR_DS_NO_CROSSREF_FOR_NC = 8363

const ERROR_DS_NO_DELETED_NAME = 8355

const ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS = 8549

const ERROR_DS_NO_MORE_RIDS = 8209

const ERROR_DS_NO_MSDS_INTID = 8596

const ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = 8514

const ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = 8515

const ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC = 8580

const ERROR_DS_NO_PARENT_OBJECT = 8329

const ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION = 8533

const ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA = 8306

const ERROR_DS_NO_REF_DOMAIN = 8575

const ERROR_DS_NO_REQUESTED_ATTS_FOUND = 8308

const ERROR_DS_NO_RESULTS_RETURNED = 8257

const ERROR_DS_NO_RIDS_ALLOCATED = 8208

const ERROR_DS_NO_SUCH_OBJECT = 8240

const ERROR_DS_NO_TREE_DELETE_ABOVE_NC = 8501

const ERROR_DS_NTDSCRIPT_PROCESS_ERROR = 8592

const ERROR_DS_NTDSCRIPT_SYNTAX_ERROR = 8591

const ERROR_DS_OBJECT_BEING_REMOVED = 8339

const ERROR_DS_OBJECT_CLASS_REQUIRED = 8315

const ERROR_DS_OBJECT_RESULTS_TOO_LARGE = 8248

const ERROR_DS_OBJ_CLASS_NOT_DEFINED = 8371

const ERROR_DS_OBJ_CLASS_NOT_SUBCLASS = 8372

const ERROR_DS_OBJ_CLASS_VIOLATION = 8212

const ERROR_DS_OBJ_GUID_EXISTS = 8361

const ERROR_DS_OBJ_NOT_FOUND = 8333

const ERROR_DS_OBJ_STRING_NAME_EXISTS = 8305

const ERROR_DS_OBJ_TOO_LARGE = 8312

const ERROR_DS_OFFSET_RANGE_ERROR = 8262

const ERROR_DS_OPERATIONS_ERROR = 8224

const ERROR_DS_OUT_OF_SCOPE = 8338

const ERROR_DS_OUT_OF_VERSION_STORE = 8573

const ERROR_DS_PARAM_ERROR = 8255

const ERROR_DS_PARENT_IS_AN_ALIAS = 8330

const ERROR_DS_PDC_OPERATION_IN_PROGRESS = 8490

const ERROR_DS_PROTOCOL_ERROR = 8225

const ERROR_DS_RANGE_CONSTRAINT = 8322

const ERROR_DS_RDN_DOESNT_MATCH_SCHEMA = 8307

const ERROR_DS_RECALCSCHEMA_FAILED = 8396

const ERROR_DS_REFERRAL = 8235

const ERROR_DS_REFERRAL_LIMIT_EXCEEDED = 8260

const ERROR_DS_REFUSING_FSMO_ROLES = 8433

const ERROR_DS_REMOTE_CROSSREF_OP_FAILED = 8601

const ERROR_DS_REPLICATOR_ONLY = 8370

const ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR = 8595

const ERROR_DS_REPL_LIFETIME_EXCEEDED = 8614

const ERROR_DS_RESERVED_LINK_ID = 8576

const ERROR_DS_RIDMGR_INIT_ERROR = 8211

const ERROR_DS_ROLE_NOT_VERIFIED = 8610

const ERROR_DS_ROOT_CANT_BE_SUBREF = 8326

const ERROR_DS_ROOT_MUST_BE_NC = 8301

const ERROR_DS_ROOT_REQUIRES_CLASS_TOP = 8432

const ERROR_DS_SAM_INIT_FAILURE = 8504

const ERROR_DS_SAM_INIT_FAILURE_CONSOLE = 8562

const ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY = 8530

const ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD = 8529

const ERROR_DS_SCHEMA_ALLOC_FAILED = 8415

const ERROR_DS_SCHEMA_NOT_LOADED = 8414

const ERROR_DS_SCHEMA_UPDATE_DISALLOWED = 8509

const ERROR_DS_SECURITY_CHECKING_ERROR = 8413

const ERROR_DS_SECURITY_ILLEGAL_MODIFY = 8423

const ERROR_DS_SEC_DESC_INVALID = 8354

const ERROR_DS_SEC_DESC_TOO_SHORT = 8353

const ERROR_DS_SEMANTIC_ATT_TEST = 8383

const ERROR_DS_SENSITIVE_GROUP_VIOLATION = 8505

const ERROR_DS_SERVER_DOWN = 8250

const ERROR_DS_SHUTTING_DOWN = 8364

const ERROR_DS_SINGLE_USER_MODE_FAILED = 8590

const ERROR_DS_SINGLE_VALUE_CONSTRAINT = 8321

const ERROR_DS_SIZELIMIT_EXCEEDED = 8227

const ERROR_DS_SORT_CONTROL_MISSING = 8261

const ERROR_DS_SOURCE_AUDITING_NOT_ENABLED = 8552

const ERROR_DS_SOURCE_DOMAIN_IN_FOREST = 8534

const ERROR_DS_SRC_AND_DST_NC_IDENTICAL = 8485

const ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH = 8540

const ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER = 8559

const ERROR_DS_SRC_GUID_MISMATCH = 8488

const ERROR_DS_SRC_NAME_MISMATCH = 8484

const ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER = 8538

const ERROR_DS_SRC_SID_EXISTS_IN_FOREST = 8539

const ERROR_DS_STRING_SD_CONVERSION_FAILED = 8522

const ERROR_DS_STRONG_AUTH_REQUIRED = 8232

const ERROR_DS_SUBREF_MUST_HAVE_PARENT = 8356

const ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD = 8376

const ERROR_DS_SUB_CLS_TEST_FAIL = 8391

const ERROR_DS_SYNTAX_MISMATCH = 8384

const ERROR_DS_THREAD_LIMIT_EXCEEDED = 8587

const ERROR_DS_TIMELIMIT_EXCEEDED = 8226

const ERROR_DS_TREE_DELETE_NOT_FINISHED = 8397

const ERROR_DS_UNABLE_TO_SURRENDER_ROLES = 8435

const ERROR_DS_UNAVAILABLE = 8207

const ERROR_DS_UNAVAILABLE_CRIT_EXTENSION = 8236

const ERROR_DS_UNICODEPWD_NOT_IN_QUOTES = 8556

const ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = 8518

const ERROR_DS_UNKNOWN_ERROR = 8431

const ERROR_DS_UNKNOWN_OPERATION = 8365

const ERROR_DS_UNWILLING_TO_PERFORM = 8245

const ERROR_DS_USER_BUFFER_TO_SMALL = 8309

const ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL = 8611

const ERROR_DS_WRONG_LINKED_ATT_SYNTAX = 8528

const ERROR_DS_WRONG_OM_OBJ_CLASS = 8476

const ERROR_DUPLICATE_SERVICE_NAME = 1078

const ERROR_DUPLICATE_TAG = 2014

const ERROR_DUP_DOMAINNAME = 1221

const ERROR_DUP_NAME = 52

const ERROR_DYNLINK_FROM_INVALID_RING = 196

const ERROR_EAS_DIDNT_FIT = 275

const ERROR_EAS_NOT_SUPPORTED = 282

const ERROR_EA_ACCESS_DENIED = 994

const ERROR_EA_FILE_CORRUPT = 276

const ERROR_EA_LIST_INCONSISTENT = 255

const ERROR_EA_TABLE_FULL = 277

const ERROR_EC_CIRCULAR_FORWARDING = 15082

const ERROR_EC_CREDSTORE_FULL = 15083

const ERROR_EC_CRED_NOT_FOUND = 15084

const ERROR_EC_LOG_DISABLED = 15081

const ERROR_EC_NO_ACTIVE_CHANNEL = 15085

const ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE = 15080

const ERROR_EFS_ALG_BLOB_TOO_BIG = 6013

const ERROR_EFS_DISABLED = 6015

const ERROR_EFS_SERVER_NOT_TRUSTED = 6011

const ERROR_EFS_VERSION_NOT_SUPPORT = 6016

const ERROR_EMPTY = 4306

const ERROR_ENCRYPTION_FAILED = 6000

const ERROR_END_OF_MEDIA = 1100

const ERROR_ENVVAR_NOT_FOUND = 203

const ERROR_EOM_OVERFLOW = 1129

const ERROR_EVENTLOG_CANT_START = 1501

const ERROR_EVENTLOG_FILE_CHANGED = 1503

const ERROR_EVENTLOG_FILE_CORRUPT = 1500

const ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY = 15036

const ERROR_EVT_CHANNEL_CANNOT_ACTIVATE = 15025

const ERROR_EVT_CHANNEL_NOT_FOUND = 15007

const ERROR_EVT_CONFIGURATION_ERROR = 15010

const ERROR_EVT_EVENT_DEFINITION_NOT_FOUND = 15032

const ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND = 15003

const ERROR_EVT_FILTER_ALREADYSCOPED = 15014

const ERROR_EVT_FILTER_INVARG = 15016

const ERROR_EVT_FILTER_INVTEST = 15017

const ERROR_EVT_FILTER_INVTYPE = 15018

const ERROR_EVT_FILTER_NOTELTSET = 15015

const ERROR_EVT_FILTER_OUT_OF_RANGE = 15038

const ERROR_EVT_FILTER_PARSEERR = 15019

const ERROR_EVT_FILTER_TOO_COMPLEX = 15026

const ERROR_EVT_FILTER_UNEXPECTEDTOKEN = 15021

const ERROR_EVT_FILTER_UNSUPPORTEDOP = 15020

const ERROR_EVT_INVALID_CHANNEL_PATH = 15000

const ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE = 15023

const ERROR_EVT_INVALID_EVENT_DATA = 15005

const ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL = 15022

const ERROR_EVT_INVALID_PUBLISHER_NAME = 15004

const ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE = 15024

const ERROR_EVT_INVALID_QUERY = 15001

const ERROR_EVT_MALFORMED_XML_TEXT = 15008

const ERROR_EVT_MAX_INSERTS_REACHED = 15031

const ERROR_EVT_MESSAGE_ID_NOT_FOUND = 15028

const ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND = 15033

const ERROR_EVT_MESSAGE_NOT_FOUND = 15027

const ERROR_EVT_NON_VALIDATING_MSXML = 15013

const ERROR_EVT_PUBLISHER_DISABLED = 15037

const ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND = 15002

const ERROR_EVT_QUERY_RESULT_INVALID_POSITION = 15012

const ERROR_EVT_QUERY_RESULT_STALE = 15011

const ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL = 15009

const ERROR_EVT_UNRESOLVED_PARAMETER_INSERT = 15030

const ERROR_EVT_UNRESOLVED_VALUE_INSERT = 15029

const ERROR_EVT_VERSION_TOO_NEW = 15035

const ERROR_EVT_VERSION_TOO_OLD = 15034

const ERROR_EXCEPTION_IN_SERVICE = 1064

const ERROR_EXCL_SEM_ALREADY_OWNED = 101

const ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY = 217

const ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY = 218

const ERROR_EXE_MACHINE_TYPE_MISMATCH = 216

const ERROR_EXE_MARKED_INVALID = 192

const ERROR_EXTENDED_ERROR = 1208

const ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN = 343

const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063

const ERROR_FAIL_I24 = 83

const ERROR_FILEMARK_DETECTED = 1101

const ERROR_FILENAME_EXCED_RANGE = 206

const ERROR_FILE_CHECKED_OUT = 220

const ERROR_FILE_CORRUPT = 1392

const ERROR_FILE_ENCRYPTED = 6002

const ERROR_FILE_EXISTS = 80

const ERROR_FILE_INVALID = 1006

const ERROR_FILE_NOT_ENCRYPTED = 6007

const ERROR_FILE_NOT_FOUND = 2

const ERROR_FILE_OFFLINE = 4350

const ERROR_FILE_READ_ONLY = 6009

const ERROR_FILE_TOO_LARGE = 223

const ERROR_FLOPPY_BAD_REGISTERS = 1125

const ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122

const ERROR_FLOPPY_UNKNOWN_ERROR = 1124

const ERROR_FLOPPY_WRONG_CYLINDER = 1123

const ERROR_FORMS_AUTH_REQUIRED = 224

const ERROR_FULLSCREEN_MODE = 1007

const ERROR_FULL_BACKUP = 4004

const ERROR_FUNCTION_FAILED = 1627

const ERROR_FUNCTION_NOT_CALLED = 1626

const ERROR_GENERIC_COMMAND_FAILED = 14109

const ERROR_GENERIC_NOT_MAPPED = 1360

const ERROR_GEN_FAILURE = 31

const ERROR_GLOBAL_ONLY_HOOK = 1429

const ERROR_GPIO_CLIENT_INFORMATION_INVALID = 15322

const ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE = 15326

const ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED = 15327

const ERROR_GPIO_INVALID_REGISTRATION_PACKET = 15324

const ERROR_GPIO_OPERATION_DENIED = 15325

const ERROR_GPIO_VERSION_NOT_SUPPORTED = 15323

const ERROR_GRACEFUL_DISCONNECT = 1226

const ERROR_GROUP_EXISTS = 1318

const ERROR_GROUP_NOT_AVAILABLE = 5012

const ERROR_GROUP_NOT_FOUND = 5013

const ERROR_GROUP_NOT_ONLINE = 5014

const ERROR_HANDLE_DISK_FULL = 39

const ERROR_HANDLE_EOF = 38

const ERROR_HASH_NOT_PRESENT = 15301

const ERROR_HASH_NOT_SUPPORTED = 15300

const ERROR_HOOK_NEEDS_HMOD = 1428

const ERROR_HOOK_NOT_INSTALLED = 1431

const ERROR_HOOK_TYPE_NOT_ALLOWED = 1458

const ERROR_HOST_DOWN = 1256

const ERROR_HOST_NODE_NOT_AVAILABLE = 5005

const ERROR_HOST_NODE_NOT_GROUP_OWNER = 5016

const ERROR_HOST_NODE_NOT_RESOURCE_OWNER = 5015

const ERROR_HOST_UNREACHABLE = 1232

const ERROR_HOTKEY_ALREADY_REGISTERED = 1409

const ERROR_HOTKEY_NOT_REGISTERED = 1419

const ERROR_HWNDS_HAVE_DIFF_PARENT = 1441

const ERROR_ICM_NOT_ENABLED = 2018

const ERROR_IEPORT_FULL = 4341

const ERROR_ILLEGAL_ELEMENT_ADDRESS = 1162

const ERROR_ILL_FORMED_PASSWORD = 1324

const ERROR_INCORRECT_ADDRESS = 1241

const ERROR_INCORRECT_SIZE = 1462

const ERROR_INC_BACKUP = 4003

const ERROR_INDEX_ABSENT = 1611

const ERROR_INDIGENOUS_TYPE = 4338

const ERROR_INFLOOP_IN_RELOC_CHAIN = 202

const ERROR_INIT_STATUS_NEEDED = 17

const ERROR_INSTALL_ALREADY_RUNNING = 1618

const ERROR_INSTALL_CANCEL = 15608

const ERROR_INSTALL_DEREGISTRATION_FAILURE = 15607

const ERROR_INSTALL_FAILED = 15609

const ERROR_INSTALL_FAILURE = 1603

const ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING = 15626

const ERROR_INSTALL_INVALID_PACKAGE = 15602

const ERROR_INSTALL_LANGUAGE_UNSUPPORTED = 1623

const ERROR_INSTALL_LOG_FAILURE = 1622

const ERROR_INSTALL_NETWORK_FAILURE = 15605

const ERROR_INSTALL_NOTUSED = 1634

const ERROR_INSTALL_OPEN_PACKAGE_FAILED = 15600

const ERROR_INSTALL_OUT_OF_DISK_SPACE = 15604

const ERROR_INSTALL_PACKAGE_DOWNGRADE = 15622

const ERROR_INSTALL_PACKAGE_INVALID = 1620

const ERROR_INSTALL_PACKAGE_NOT_FOUND = 15601

const ERROR_INSTALL_PACKAGE_OPEN_FAILED = 1619

const ERROR_INSTALL_PACKAGE_REJECTED = 1625

const ERROR_INSTALL_PACKAGE_VERSION = 1613

const ERROR_INSTALL_PLATFORM_UNSUPPORTED = 1633

const ERROR_INSTALL_POLICY_FAILURE = 15615

const ERROR_INSTALL_PREREQUISITE_FAILED = 15613

const ERROR_INSTALL_REGISTRATION_FAILURE = 15606

const ERROR_INSTALL_REMOTE_DISALLOWED = 1640

const ERROR_INSTALL_REMOTE_PROHIBITED = 1645

const ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED = 15603

const ERROR_INSTALL_SERVICE_FAILURE = 1601

const ERROR_INSTALL_SOURCE_ABSENT = 1612

const ERROR_INSTALL_SUSPEND = 1604

const ERROR_INSTALL_TEMP_UNWRITABLE = 1632

const ERROR_INSTALL_TRANSFORM_FAILURE = 1624

const ERROR_INSTALL_TRANSFORM_REJECTED = 1644

const ERROR_INSTALL_UI_FAILURE = 1621

const ERROR_INSTALL_USEREXIT = 1602

const ERROR_INSUFFICIENT_BUFFER = 122

const ERROR_INTERNAL_DB_CORRUPTION = 1358

const ERROR_INTERNAL_DB_ERROR = 1383

const ERROR_INTERNAL_ERROR = 1359

const ERROR_INVALID_ACCEL_HANDLE = 1403

const ERROR_INVALID_ACCESS = 12

const ERROR_INVALID_ACCOUNT_NAME = 1315

const ERROR_INVALID_ACL = 1336

const ERROR_INVALID_ADDRESS = 487

const ERROR_INVALID_AT_INTERRUPT_TIME = 104

const ERROR_INVALID_BLOCK = 9

const ERROR_INVALID_BLOCK_LENGTH = 1106

const ERROR_INVALID_CATEGORY = 117

const ERROR_INVALID_CLEANER = 4310

const ERROR_INVALID_CMM = 2010

const ERROR_INVALID_COLORINDEX = 2022

const ERROR_INVALID_COLORSPACE = 2017

const ERROR_INVALID_COMBOBOX_MESSAGE = 1422

const ERROR_INVALID_COMMAND_LINE = 1639

const ERROR_INVALID_COMPUTERNAME = 1210

const ERROR_INVALID_CURSOR_HANDLE = 1402

const ERROR_INVALID_DATA = 13

const ERROR_INVALID_DATATYPE = 1804

const ERROR_INVALID_DLL = 1154

const ERROR_INVALID_DOMAINNAME = 1212

const ERROR_INVALID_DOMAIN_ROLE = 1354

const ERROR_INVALID_DOMAIN_STATE = 1353

const ERROR_INVALID_DRIVE = 15

const ERROR_INVALID_DRIVE_OBJECT = 4321

const ERROR_INVALID_DWP_HANDLE = 1405

const ERROR_INVALID_EA_HANDLE = 278

const ERROR_INVALID_EA_NAME = 254

const ERROR_INVALID_EDIT_HEIGHT = 1424

const ERROR_INVALID_ENVIRONMENT = 1805

const ERROR_INVALID_EVENTNAME = 1211

const ERROR_INVALID_EVENT_COUNT = 151

const ERROR_INVALID_EXE_SIGNATURE = 191

const ERROR_INVALID_FIELD = 1616

const ERROR_INVALID_FILTER_PROC = 1427

const ERROR_INVALID_FLAGS = 1004

const ERROR_INVALID_FLAG_NUMBER = 186

const ERROR_INVALID_FORM_NAME = 1902

const ERROR_INVALID_FORM_SIZE = 1903

const ERROR_INVALID_FUNCTION = 1

const ERROR_INVALID_GROUPNAME = 1209

const ERROR_INVALID_GROUP_ATTRIBUTES = 1345

const ERROR_INVALID_GW_COMMAND = 1443

const ERROR_INVALID_HANDLE = 6

const ERROR_INVALID_HANDLE_STATE = 1609

const ERROR_INVALID_HOOK_FILTER = 1426

const ERROR_INVALID_HOOK_HANDLE = 1404

const ERROR_INVALID_ICON_HANDLE = 1414

const ERROR_INVALID_ID_AUTHORITY = 1343

const ERROR_INVALID_IMPORT_OF_NON_DLL = 1276

const ERROR_INVALID_INDEX = 1413

const ERROR_INVALID_KEYBOARD_HANDLE = 1457

const ERROR_INVALID_LB_MESSAGE = 1432

const ERROR_INVALID_LEVEL = 124

const ERROR_INVALID_LIBRARY = 4301

const ERROR_INVALID_LIST_FORMAT = 153

const ERROR_INVALID_LOGON_HOURS = 1328

const ERROR_INVALID_LOGON_TYPE = 1367

const ERROR_INVALID_MEDIA = 4300

const ERROR_INVALID_MEDIA_POOL = 4302

const ERROR_INVALID_MEMBER = 1388

const ERROR_INVALID_MENU_HANDLE = 1401

const ERROR_INVALID_MESSAGE = 1002

const ERROR_INVALID_MESSAGEDEST = 1218

const ERROR_INVALID_MESSAGENAME = 1217

const ERROR_INVALID_MINALLOCSIZE = 195

const ERROR_INVALID_MODULETYPE = 190

const ERROR_INVALID_MONITOR_HANDLE = 1461

const ERROR_INVALID_MSGBOX_STYLE = 1438

const ERROR_INVALID_NAME = 123

const ERROR_INVALID_NETNAME = 1214

const ERROR_INVALID_OPERATION = 4317

const ERROR_INVALID_OPERATION_ON_QUORUM = 5068

const ERROR_INVALID_OPLOCK_PROTOCOL = 301

const ERROR_INVALID_ORDINAL = 182

const ERROR_INVALID_OWNER = 1307

const ERROR_INVALID_PARAMETER = 87

const ERROR_INVALID_PASSWORD = 86

const ERROR_INVALID_PASSWORDNAME = 1216

const ERROR_INVALID_PIXEL_FORMAT = 2000

const ERROR_INVALID_PRIMARY_GROUP = 1308

const ERROR_INVALID_PRINTER_COMMAND = 1803

const ERROR_INVALID_PRINTER_NAME = 1801

const ERROR_INVALID_PRINTER_STATE = 1906

const ERROR_INVALID_PRINT_MONITOR = 3007

const ERROR_INVALID_PRIORITY = 1800

const ERROR_INVALID_PROFILE = 2011

const ERROR_INVALID_REPARSE_DATA = 4392

const ERROR_INVALID_RUNLEVEL_SETTING = 15401

const ERROR_INVALID_SCROLLBAR_RANGE = 1448

const ERROR_INVALID_SECURITY_DESCR = 1338

const ERROR_INVALID_SEGDPL = 198

const ERROR_INVALID_SEGMENT_NUMBER = 180

const ERROR_INVALID_SEPARATOR_FILE = 1799

const ERROR_INVALID_SERVER_STATE = 1352

const ERROR_INVALID_SERVICENAME = 1213

const ERROR_INVALID_SERVICE_ACCOUNT = 1057

const ERROR_INVALID_SERVICE_CONTROL = 1052

const ERROR_INVALID_SERVICE_LOCK = 1071

const ERROR_INVALID_SHARENAME = 1215

const ERROR_INVALID_SHOWWIN_COMMAND = 1449

const ERROR_INVALID_SID = 1337

const ERROR_INVALID_SIGNAL_NUMBER = 209

const ERROR_INVALID_SPI_VALUE = 1439

const ERROR_INVALID_STACKSEG = 189

const ERROR_INVALID_STAGED_SIGNATURE = 15620

const ERROR_INVALID_STARTING_CODESEG = 188

const ERROR_INVALID_STATE = 5023

const ERROR_INVALID_SUB_AUTHORITY = 1335

const ERROR_INVALID_TABLE = 1628

const ERROR_INVALID_TARGET_HANDLE = 114

const ERROR_INVALID_THREAD_ID = 1444

const ERROR_INVALID_TIME = 1901

const ERROR_INVALID_TOKEN = 315

const ERROR_INVALID_TRANSFORM = 2020

const ERROR_INVALID_USER_BUFFER = 1784

const ERROR_INVALID_VERIFY_SWITCH = 118

const ERROR_INVALID_WINDOW_HANDLE = 1400

const ERROR_INVALID_WINDOW_STYLE = 2002

const ERROR_INVALID_WORKSTATION = 1329

const ERROR_IOPL_NOT_ENABLED = 197

const ERROR_IO_DEVICE = 1117

const ERROR_IO_INCOMPLETE = 996

const ERROR_IO_PENDING = 997

const ERROR_IPSEC_AUTH_FIREWALL_DROP = 13917

const ERROR_IPSEC_BAD_SPI = 13910

const ERROR_IPSEC_CLEAR_TEXT_DROP = 13916

const ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND = 13014

const ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND = 13013

const ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND = 13015

const ERROR_IPSEC_DOSP_BLOCK = 13925

const ERROR_IPSEC_DOSP_INVALID_PACKET = 13927

const ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED = 13930

const ERROR_IPSEC_DOSP_MAX_ENTRIES = 13929

const ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES = 13932

const ERROR_IPSEC_DOSP_NOT_INSTALLED = 13931

const ERROR_IPSEC_DOSP_RECEIVED_MULTICAST = 13926

const ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED = 13928

const ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED = 13860

const ERROR_IPSEC_IKE_ATTRIB_FAIL = 13802

const ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE = 13905

const ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY = 13907

const ERROR_IPSEC_IKE_AUTH_FAIL = 13801

const ERROR_IPSEC_IKE_BENIGN_REINIT = 13878

const ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH = 13887

const ERROR_IPSEC_IKE_CGA_AUTH_FAILED = 13892

const ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS = 13902

const ERROR_IPSEC_IKE_CRL_FAILED = 13817

const ERROR_IPSEC_IKE_DECRYPT = 13867

const ERROR_IPSEC_IKE_DH_FAIL = 13822

const ERROR_IPSEC_IKE_DH_FAILURE = 13864

const ERROR_IPSEC_IKE_DOS_COOKIE_SENT = 13890

const ERROR_IPSEC_IKE_DROP_NO_RESPONSE = 13813

const ERROR_IPSEC_IKE_ENCRYPT = 13866

const ERROR_IPSEC_IKE_ERROR = 13816

const ERROR_IPSEC_IKE_FAILQUERYSSP = 13854

const ERROR_IPSEC_IKE_FAILSSPINIT = 13853

const ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR = 13804

const ERROR_IPSEC_IKE_GETSPIFAIL = 13857

const ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE = 13899

const ERROR_IPSEC_IKE_INVALID_AUTH_ALG = 13874

const ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD = 13889

const ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN = 13881

const ERROR_IPSEC_IKE_INVALID_CERT_TYPE = 13819

const ERROR_IPSEC_IKE_INVALID_COOKIE = 13846

const ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG = 13873

const ERROR_IPSEC_IKE_INVALID_FILTER = 13858

const ERROR_IPSEC_IKE_INVALID_GROUP = 13865

const ERROR_IPSEC_IKE_INVALID_HASH = 13870

const ERROR_IPSEC_IKE_INVALID_HASH_ALG = 13871

const ERROR_IPSEC_IKE_INVALID_HASH_SIZE = 13872

const ERROR_IPSEC_IKE_INVALID_HEADER = 13824

const ERROR_IPSEC_IKE_INVALID_KEY_USAGE = 13818

const ERROR_IPSEC_IKE_INVALID_MM_FOR_QM = 13894

const ERROR_IPSEC_IKE_INVALID_PAYLOAD = 13843

const ERROR_IPSEC_IKE_INVALID_POLICY = 13861

const ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY = 13879

const ERROR_IPSEC_IKE_INVALID_SIG = 13875

const ERROR_IPSEC_IKE_INVALID_SIGNATURE = 13826

const ERROR_IPSEC_IKE_INVALID_SITUATION = 13863

const ERROR_IPSEC_IKE_KERBEROS_ERROR = 13827

const ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL = 13898

const ERROR_IPSEC_IKE_LOAD_FAILED = 13876

const ERROR_IPSEC_IKE_LOAD_SOFT_SA = 13844

const ERROR_IPSEC_IKE_MM_ACQUIRE_DROP = 13809

const ERROR_IPSEC_IKE_MM_DELAY_DROP = 13814

const ERROR_IPSEC_IKE_MM_EXPIRED = 13885

const ERROR_IPSEC_IKE_MM_LIMIT = 13882

const ERROR_IPSEC_IKE_NEGOTIATION_DISABLED = 13883

const ERROR_IPSEC_IKE_NEGOTIATION_PENDING = 13803

const ERROR_IPSEC_IKE_NEG_STATUS_BEGIN = 13800

const ERROR_IPSEC_IKE_NEG_STATUS_END = 13897

const ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END = 13909

const ERROR_IPSEC_IKE_NOTCBPRIV = 13851

const ERROR_IPSEC_IKE_NO_CERT = 13806

const ERROR_IPSEC_IKE_NO_MM_POLICY = 13850

const ERROR_IPSEC_IKE_NO_PEER_CERT = 13847

const ERROR_IPSEC_IKE_NO_POLICY = 13825

const ERROR_IPSEC_IKE_NO_PRIVATE_KEY = 13820

const ERROR_IPSEC_IKE_NO_PUBLIC_KEY = 13828

const ERROR_IPSEC_IKE_OUT_OF_MEMORY = 13859

const ERROR_IPSEC_IKE_PEER_CRL_FAILED = 13848

const ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE = 13904

const ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID = 13886

const ERROR_IPSEC_IKE_POLICY_CHANGE = 13849

const ERROR_IPSEC_IKE_POLICY_MATCH = 13868

const ERROR_IPSEC_IKE_PROCESS_ERR = 13829

const ERROR_IPSEC_IKE_PROCESS_ERR_CERT = 13835

const ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ = 13836

const ERROR_IPSEC_IKE_PROCESS_ERR_DELETE = 13841

const ERROR_IPSEC_IKE_PROCESS_ERR_HASH = 13837

const ERROR_IPSEC_IKE_PROCESS_ERR_ID = 13834

const ERROR_IPSEC_IKE_PROCESS_ERR_KE = 13833

const ERROR_IPSEC_IKE_PROCESS_ERR_NATOA = 13893

const ERROR_IPSEC_IKE_PROCESS_ERR_NONCE = 13839

const ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY = 13840

const ERROR_IPSEC_IKE_PROCESS_ERR_PROP = 13831

const ERROR_IPSEC_IKE_PROCESS_ERR_SA = 13830

const ERROR_IPSEC_IKE_PROCESS_ERR_SIG = 13838

const ERROR_IPSEC_IKE_PROCESS_ERR_TRANS = 13832

const ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR = 13842

const ERROR_IPSEC_IKE_QM_ACQUIRE_DROP = 13810

const ERROR_IPSEC_IKE_QM_DELAY_DROP = 13815

const ERROR_IPSEC_IKE_QM_EXPIRED = 13895

const ERROR_IPSEC_IKE_QM_LIMIT = 13884

const ERROR_IPSEC_IKE_QUEUE_DROP_MM = 13811

const ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM = 13812

const ERROR_IPSEC_IKE_RATELIMIT_DROP = 13903

const ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING = 13900

const ERROR_IPSEC_IKE_RPC_DELETE = 13877

const ERROR_IPSEC_IKE_SA_DELETED = 13807

const ERROR_IPSEC_IKE_SA_REAPED = 13808

const ERROR_IPSEC_IKE_SECLOADFAIL = 13852

const ERROR_IPSEC_IKE_SHUTTING_DOWN = 13891

const ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN = 13845

const ERROR_IPSEC_IKE_SRVACQFAIL = 13855

const ERROR_IPSEC_IKE_SRVQUERYCRED = 13856

const ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE = 13908

const ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE = 13906

const ERROR_IPSEC_IKE_TIMED_OUT = 13805

const ERROR_IPSEC_IKE_TOO_MANY_FILTERS = 13896

const ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID = 13888

const ERROR_IPSEC_IKE_UNKNOWN_DOI = 13862

const ERROR_IPSEC_IKE_UNSUPPORTED_ID = 13869

const ERROR_IPSEC_INTEGRITY_CHECK_FAILED = 13915

const ERROR_IPSEC_INVALID_PACKET = 13914

const ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING = 13901

const ERROR_IPSEC_MM_AUTH_EXISTS = 13010

const ERROR_IPSEC_MM_AUTH_IN_USE = 13012

const ERROR_IPSEC_MM_AUTH_NOT_FOUND = 13011

const ERROR_IPSEC_MM_AUTH_PENDING_DELETION = 13022

const ERROR_IPSEC_MM_FILTER_EXISTS = 13006

const ERROR_IPSEC_MM_FILTER_NOT_FOUND = 13007

const ERROR_IPSEC_MM_FILTER_PENDING_DELETION = 13018

const ERROR_IPSEC_MM_POLICY_EXISTS = 13003

const ERROR_IPSEC_MM_POLICY_IN_USE = 13005

const ERROR_IPSEC_MM_POLICY_NOT_FOUND = 13004

const ERROR_IPSEC_MM_POLICY_PENDING_DELETION = 13021

const ERROR_IPSEC_QM_POLICY_EXISTS = 13000

const ERROR_IPSEC_QM_POLICY_IN_USE = 13002

const ERROR_IPSEC_QM_POLICY_NOT_FOUND = 13001

const ERROR_IPSEC_QM_POLICY_PENDING_DELETION = 13023

const ERROR_IPSEC_REPLAY_CHECK_FAILED = 13913

const ERROR_IPSEC_SA_LIFETIME_EXPIRED = 13911

const ERROR_IPSEC_THROTTLE_DROP = 13918

const ERROR_IPSEC_TRANSPORT_FILTER_EXISTS = 13008

const ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND = 13009

const ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION = 13019

const ERROR_IPSEC_TUNNEL_FILTER_EXISTS = 13016

const ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND = 13017

const ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION = 13020

const ERROR_IPSEC_WRONG_SA = 13912

const ERROR_IRQ_BUSY = 1119

const ERROR_IS_JOINED = 134

const ERROR_IS_JOIN_PATH = 147

const ERROR_IS_JOIN_TARGET = 133

const ERROR_IS_SUBSTED = 135

const ERROR_IS_SUBST_PATH = 146

const ERROR_IS_SUBST_TARGET = 149

const ERROR_ITERATED_DATA_EXCEEDS_64k = 194

const ERROR_JOIN_TO_JOIN = 138

const ERROR_JOIN_TO_SUBST = 140

const ERROR_JOURNAL_DELETE_IN_PROGRESS = 1178

const ERROR_JOURNAL_ENTRY_DELETED = 1181

const ERROR_JOURNAL_HOOK_SET = 1430

const ERROR_JOURNAL_NOT_ACTIVE = 1179

const ERROR_KERNEL_APC = 738

const ERROR_KEY_DELETED = 1018

const ERROR_KEY_HAS_CHILDREN = 1020

const ERROR_KM_DRIVER_BLOCKED = 1930

const ERROR_LABEL_QUESTIONABLE = 2

const ERROR_LABEL_TOO_LONG = 154

const ERROR_LABEL_UNREADABLE = 1

const ERROR_LAST_ADMIN = 1322

const ERROR_LB_WITHOUT_TABSTOPS = 1434

const ERROR_LIBRARY_FULL = 4322

const ERROR_LIBRARY_OFFLINE = 4305

const ERROR_LICENSE_QUOTA_EXCEEDED = 1395

const ERROR_LISTBOX_ID_NOT_FOUND = 1416

const ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390

const ERROR_LOCAL_USER_SESSION_KEY = 1303

const ERROR_LOCKED = 212

const ERROR_LOCK_FAILED = 167

const ERROR_LOCK_VIOLATION = 33

const ERROR_LOGIN_TIME_RESTRICTION = 1239

const ERROR_LOGIN_WKSTA_RESTRICTION = 1240

const ERROR_LOGON_FAILURE = 1326

const ERROR_LOGON_NOT_GRANTED = 1380

const ERROR_LOGON_SESSION_COLLISION = 1366

const ERROR_LOGON_SESSION_EXISTS = 1363

const ERROR_LOGON_TYPE_NOT_GRANTED = 1385

const ERROR_LOG_FILE_FULL = 1502

const ERROR_LUIDS_EXHAUSTED = 1334

const ERROR_MACHINE_LOCKED = 1271

const ERROR_MAGAZINE_NOT_PRESENT = 1163

const ERROR_MALFORMED_SUBSTITUTION_STRING = 14094

const ERROR_MAPPED_ALIGNMENT = 1132

const ERROR_MAX_THRDS_REACHED = 164

const ERROR_MCA_INTERNAL_ERROR = 15205

const ERROR_MCA_INVALID_CAPABILITIES_STRING = 15200

const ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED = 15206

const ERROR_MCA_INVALID_VCP_VERSION = 15201

const ERROR_MCA_MCCS_VERSION_MISMATCH = 15203

const ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION = 15202

const ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE = 15207

const ERROR_MCA_UNSUPPORTED_MCCS_VERSION = 15204

const ERROR_MEDIA_CHANGED = 1110

const ERROR_MEDIA_INCOMPATIBLE = 4315

const ERROR_MEDIA_NOT_AVAILABLE = 4318

const ERROR_MEDIA_OFFLINE = 4304

const ERROR_MEDIA_UNAVAILABLE = 4308

const ERROR_MEDIUM_NOT_ACCESSIBLE = 4323

const ERROR_MEMBERS_PRIMARY_GROUP = 1374

const ERROR_MEMBER_IN_ALIAS = 1378

const ERROR_MEMBER_IN_GROUP = 1320

const ERROR_MEMBER_NOT_IN_ALIAS = 1377

const ERROR_MEMBER_NOT_IN_GROUP = 1321

const ERROR_MENU_ITEM_NOT_FOUND = 1456

const ERROR_MESSAGE_EXCEEDS_MAX_SIZE = 4336

const ERROR_MESSAGE_SYNC_ONLY = 1159

const ERROR_METAFILE_NOT_SUPPORTED = 2003

const ERROR_META_EXPANSION_TOO_LONG = 208

const ERROR_MOD_NOT_FOUND = 126

const ERROR_MORE_DATA = 234

const ERROR_MORE_WRITES = 1120

const ERROR_MRM_AUTOMERGE_ENABLED = 15139

const ERROR_MRM_DUPLICATE_ENTRY = 15119

const ERROR_MRM_DUPLICATE_MAP_NAME = 15118

const ERROR_MRM_FILEPATH_TOO_LONG = 15121

const ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE = 15138

const ERROR_MRM_INVALID_FILE_TYPE = 15112

const ERROR_MRM_INVALID_PRICONFIG = 15111

const ERROR_MRM_INVALID_PRI_FILE = 15126

const ERROR_MRM_INVALID_QUALIFIER_OPERATOR = 15137

const ERROR_MRM_INVALID_QUALIFIER_VALUE = 15114

const ERROR_MRM_INVALID_RESOURCE_IDENTIFIER = 15120

const ERROR_MRM_MAP_NOT_FOUND = 15135

const ERROR_MRM_NAMED_RESOURCE_NOT_FOUND = 15127

const ERROR_MRM_NO_CANDIDATE = 15115

const ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE = 15116

const ERROR_MRM_RESOURCE_TYPE_MISMATCH = 15117

const ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE = 15110

const ERROR_MRM_TOO_MANY_RESOURCES = 15140

const ERROR_MRM_UNKNOWN_QUALIFIER = 15113

const ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE = 15122

const ERROR_MRM_UNSUPPORTED_PROFILE_TYPE = 15136

const ERROR_MR_MID_NOT_FOUND = 317

const ERROR_MUI_FILE_NOT_FOUND = 15100

const ERROR_MUI_FILE_NOT_LOADED = 15105

const ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME = 15108

const ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED = 15107

const ERROR_MUI_INVALID_FILE = 15101

const ERROR_MUI_INVALID_LOCALE_NAME = 15103

const ERROR_MUI_INVALID_RC_CONFIG = 15102

const ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME = 15104

const ERROR_MUTUAL_AUTH_FAILED = 1397

const ERROR_NEEDS_REMEDIATION = 15612

const ERROR_NEGATIVE_SEEK = 131

const ERROR_NESTING_NOT_ALLOWED = 215

const ERROR_NETLOGON_NOT_STARTED = 1792

const ERROR_NETNAME_DELETED = 64

const ERROR_NETWORK_ACCESS_DENIED = 65

const ERROR_NETWORK_BUSY = 54

const ERROR_NETWORK_NOT_AVAILABLE = 5035

const ERROR_NETWORK_UNREACHABLE = 1231

const ERROR_NET_WRITE_FAULT = 88

const ERROR_NOACCESS = 998

const ERROR_NODE_CANNOT_BE_CLUSTERED = 5898

const ERROR_NODE_CANT_HOST_RESOURCE = 5071

const ERROR_NODE_NOT_AVAILABLE = 5036

const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807

const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809

const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808

const ERROR_NONE_MAPPED = 1332

const ERROR_NONPAGED_SYSTEM_RESOURCES = 1451

const ERROR_NON_ACCOUNT_SID = 1257

const ERROR_NON_DOMAIN_SID = 1258

const ERROR_NON_MDICHILD_WINDOW = 1445

const ERROR_NOTIFY_ENUM_DIR = 1022

const ERROR_NOT_ALL_ASSIGNED = 1300

const ERROR_NOT_AUTHENTICATED = 1244

const ERROR_NOT_A_REPARSE_POINT = 4390

const ERROR_NOT_CHILD_WINDOW = 1442

const ERROR_NOT_CONNECTED = 2250

const ERROR_NOT_CONTAINER = 1207

const ERROR_NOT_DOS_DISK = 26

const ERROR_NOT_EMPTY = 4307

const ERROR_NOT_ENOUGH_MEMORY = 8

const ERROR_NOT_ENOUGH_QUOTA = 1816

const ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130

const ERROR_NOT_EXPORT_FORMAT = 6008

const ERROR_NOT_FOUND = 1168

const ERROR_NOT_GUI_PROCESS = 1471

const ERROR_NOT_JOINED = 136

const ERROR_NOT_LOCKED = 158

const ERROR_NOT_LOGGED_ON = 1245

const ERROR_NOT_LOGON_PROCESS = 1362

const ERROR_NOT_OWNER = 288

const ERROR_NOT_QUORUM_CAPABLE = 5021

const ERROR_NOT_QUORUM_CLASS = 5025

const ERROR_NOT_READY = 21

const ERROR_NOT_REGISTRY_FILE = 1017

const ERROR_NOT_SAFEBOOT_SERVICE = 1084

const ERROR_NOT_SAME_DEVICE = 17

const ERROR_NOT_SUBSTED = 137

const ERROR_NOT_SUPPORTED = 50

const ERROR_NOT_SUPPORTED_ON_SBS = 1254

const ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER = 8584

const ERROR_NO_ASSOCIATION = 1155

const ERROR_NO_BROWSER_SERVERS_FOUND = 6118

const ERROR_NO_DATA = 232

const ERROR_NO_DATA_DETECTED = 1104

const ERROR_NO_EFS = 6004

const ERROR_NO_IMPERSONATION_TOKEN = 1309

const ERROR_NO_INHERITANCE = 1391

const ERROR_NO_LOGON_SERVERS = 1311

const ERROR_NO_LOG_SPACE = 1019

const ERROR_NO_MATCH = 1169

const ERROR_NO_MEDIA_IN_DRIVE = 1112

const ERROR_NO_MORE_DEVICES = 1248

const ERROR_NO_MORE_FILES = 18

const ERROR_NO_MORE_ITEMS = 259

const ERROR_NO_MORE_SEARCH_HANDLES = 113

const ERROR_NO_MORE_USER_HANDLES = 1158

const ERROR_NO_NETWORK = 1222

const ERROR_NO_NET_OR_BAD_PATH = 1203

const ERROR_NO_NVRAM_RESOURCES = 1470

const ERROR_NO_PROC_SLOTS = 89

const ERROR_NO_PROMOTION_ACTIVE = 8222

const ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302

const ERROR_NO_RECOVERY_POLICY = 6003

const ERROR_NO_RECOVERY_PROGRAM = 1082

const ERROR_NO_SCROLLBARS = 1447

const ERROR_NO_SECURITY_ON_OBJECT = 1350

const ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116

const ERROR_NO_SIGNAL_SENT = 205

const ERROR_NO_SITENAME = 1919

const ERROR_NO_SPOOL_SPACE = 62

const ERROR_NO_SUCH_ALIAS = 1376

const ERROR_NO_SUCH_DOMAIN = 1355

const ERROR_NO_SUCH_GROUP = 1319

const ERROR_NO_SUCH_LOGON_SESSION = 1312

const ERROR_NO_SUCH_MEMBER = 1387

const ERROR_NO_SUCH_PACKAGE = 1364

const ERROR_NO_SUCH_PRIVILEGE = 1313

const ERROR_NO_SUCH_SITE = 1249

const ERROR_NO_SUCH_USER = 1317

const ERROR_NO_SUPPORTING_DRIVES = 4339

const ERROR_NO_SYSTEM_MENU = 1437

const ERROR_NO_SYSTEM_RESOURCES = 1450

const ERROR_NO_TOKEN = 1008

const ERROR_NO_TRACKING_SERVICE = 1172

const ERROR_NO_TRUST_LSA_SECRET = 1786

const ERROR_NO_TRUST_SAM_ACCOUNT = 1787

const ERROR_NO_UNICODE_TRANSLATION = 1113

const ERROR_NO_USER_KEYS = 6006

const ERROR_NO_USER_SESSION_KEY = 1394

const ERROR_NO_VOLUME_ID = 1173

const ERROR_NO_VOLUME_LABEL = 125

const ERROR_NO_WILDCARD_CHARACTERS = 1417

const ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386

const ERROR_NULL_LM_PASSWORD = 1304

const ERROR_OBJECT_ALREADY_EXISTS = 5010

const ERROR_OBJECT_IN_LIST = 5011

const ERROR_OBJECT_NOT_EXTERNALLY_BACKED = 342

const ERROR_OBJECT_NOT_FOUND = 4312

const ERROR_OLD_WIN_VERSION = 1150

const ERROR_ONLY_IF_CONNECTED = 1251

const ERROR_OPEN_FAILED = 110

const ERROR_OPEN_FILES = 2401

const ERROR_OPERATION_ABORTED = 995

const ERROR_OPLOCK_NOT_GRANTED = 300

const ERROR_OUTOFMEMORY = 14

const ERROR_OUT_OF_PAPER = 28

const ERROR_OUT_OF_STRUCTURES = 84

const ERROR_OVERRIDE_NOCHANGES = 1252

const ERROR_PACKAGES_IN_USE = 15618

const ERROR_PACKAGE_ALREADY_EXISTS = 15611

const ERROR_PACKAGE_REPOSITORY_CORRUPTED = 15614

const ERROR_PACKAGE_UPDATING = 15616

const ERROR_PAGED_SYSTEM_RESOURCES = 1452

const ERROR_PAGEFILE_QUOTA = 1454

const ERROR_PARAMETER_QUOTA_EXCEEDED = 1283

const ERROR_PARTIAL_COPY = 299

const ERROR_PARTITION_FAILURE = 1105

const ERROR_PASSWORD_EXPIRED = 1330

const ERROR_PASSWORD_MUST_CHANGE = 1907

const ERROR_PASSWORD_RESTRICTION = 1325

const ERROR_PATCH_PACKAGE_INVALID = 1636

const ERROR_PATCH_PACKAGE_OPEN_FAILED = 1635

const ERROR_PATCH_PACKAGE_REJECTED = 1643

const ERROR_PATCH_PACKAGE_UNSUPPORTED = 1637

const ERROR_PATCH_TARGET_NOT_FOUND = 1642

const ERROR_PATH_BUSY = 148

const ERROR_PATH_NOT_FOUND = 3

const ERROR_PER_USER_TRUST_QUOTA_EXCEEDED = 1932

const ERROR_PIPE_BUSY = 231

const ERROR_PIPE_CONNECTED = 535

const ERROR_PIPE_LISTENING = 536

const ERROR_PIPE_LOCAL = 229

const ERROR_PIPE_NOT_CONNECTED = 233

const ERROR_PKINIT_FAILURE = 1263

const ERROR_POINT_NOT_FOUND = 1171

const ERROR_POLICY_OBJECT_NOT_FOUND = 8219

const ERROR_POLICY_ONLY_IN_DS = 8220

const ERROR_POPUP_ALREADY_ACTIVE = 1446

const ERROR_PORT_UNREACHABLE = 1234

const ERROR_POSSIBLE_DEADLOCK = 1131

const ERROR_POTENTIAL_FILE_FOUND = 1180

const ERROR_PRINTER_ALREADY_EXISTS = 1802

const ERROR_PRINTER_DELETED = 1905

const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795

const ERROR_PRINTER_DRIVER_BLOCKED = 3014

const ERROR_PRINTER_DRIVER_IN_USE = 3001

const ERROR_PRINTER_DRIVER_WARNED = 3013

const ERROR_PRINTER_HAS_JOBS_QUEUED = 3009

const ERROR_PRINTER_NOT_FOUND = 3012

const ERROR_PRINTQ_FULL = 61

const ERROR_PRINT_CANCELLED = 63

const ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006

const ERROR_PRINT_MONITOR_IN_USE = 3008

const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005

const ERROR_PRIVATE_DIALOG_INDEX = 1415

const ERROR_PRIVILEGE_NOT_HELD = 1314

const ERROR_PROCESS_ABORTED = 1067

const ERROR_PROC_NOT_FOUND = 127

const ERROR_PRODUCT_UNINSTALLED = 1614

const ERROR_PRODUCT_VERSION = 1638

const ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE = 2015

const ERROR_PROFILE_NOT_FOUND = 2016

const ERROR_PROMOTION_ACTIVE = 8221

const ERROR_PROTOCOL_UNREACHABLE = 1233

const ERROR_QUORUMLOG_OPEN_FAILED = 5028

const ERROR_QUORUM_DISK_NOT_FOUND = 5086

const ERROR_QUORUM_OWNER_ALIVE = 5034

const ERROR_QUORUM_RESOURCE = 5020

const ERROR_QUORUM_RESOURCE_ONLINE_FAILED = 5027

const ERROR_READ_FAULT = 30

const ERROR_RECOVERY_FAILURE = 1279

const ERROR_RECOVERY_FILE_CORRUPT = 15619

const ERROR_REC_NON_EXISTENT = 4005

const ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794

const ERROR_REDIR_PAUSED = 72

const ERROR_REGISTRY_CORRUPT = 1015

const ERROR_REGISTRY_IO_FAILED = 1016

const ERROR_REGISTRY_RECOVERED = 1014

const ERROR_REG_NAT_CONSUMPTION = 1261

const ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201

const ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED = 1936

const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220

const ERROR_REMOTE_STORAGE_MEDIA_ERROR = 4352

const ERROR_REMOTE_STORAGE_NOT_ACTIVE = 4351

const ERROR_REMOVE_FAILED = 15610

const ERROR_REM_NOT_LIST = 51

const ERROR_REPARSE_ATTRIBUTE_CONFLICT = 4391

const ERROR_REPARSE_TAG_INVALID = 4393

const ERROR_REPARSE_TAG_MISMATCH = 4394

const ERROR_REQUEST_ABORTED = 1235

const ERROR_REQUEST_REFUSED = 4320

const ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION = 1459

const ERROR_REQ_NOT_ACCEP = 71

const ERROR_RESILIENCY_FILE_CORRUPT = 15625

const ERROR_RESMON_CREATE_FAILED = 5017

const ERROR_RESMON_INVALID_STATE = 5084

const ERROR_RESMON_ONLINE_FAILED = 5018

const ERROR_RESOURCE_DATA_NOT_FOUND = 1812

const ERROR_RESOURCE_DISABLED = 4309

const ERROR_RESOURCE_ENUM_USER_STOP = 15106

const ERROR_RESOURCE_FAILED = 5038

const ERROR_RESOURCE_LANG_NOT_FOUND = 1815

const ERROR_RESOURCE_NAME_NOT_FOUND = 1814

const ERROR_RESOURCE_NOT_AVAILABLE = 5006

const ERROR_RESOURCE_NOT_FOUND = 5007

const ERROR_RESOURCE_NOT_ONLINE = 5004

const ERROR_RESOURCE_NOT_PRESENT = 4316

const ERROR_RESOURCE_ONLINE = 5019

const ERROR_RESOURCE_PROPERTIES_STORED = 5024

const ERROR_RESOURCE_PROPERTY_UNCHANGEABLE = 5089

const ERROR_RESOURCE_TYPE_NOT_FOUND = 1813

const ERROR_RESTART_APPLICATION = 1467

const ERROR_RETRY = 1237

const ERROR_REVISION_MISMATCH = 1306

const ERROR_RING2SEG_MUST_BE_MOVABLE = 200

const ERROR_RING2_STACK_IN_USE = 207

const ERROR_RMODE_APP = 1153

const ERROR_RPL_NOT_ALLOWED = 4006

const ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT = 15403

const ERROR_RUNLEVEL_SWITCH_IN_PROGRESS = 15404

const ERROR_RUNLEVEL_SWITCH_TIMEOUT = 15402

const ERROR_RXACT_COMMIT_FAILURE = 1370

const ERROR_RXACT_INVALID_STATE = 1369

const ERROR_SAME_DRIVE = 143

const ERROR_SAM_INIT_FAILURE = 8541

const ERROR_SCOPE_NOT_FOUND = 318

const ERROR_SCREEN_ALREADY_LOCKED = 1440

const ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED = 15321

const ERROR_SECRET_TOO_LONG = 1382

const ERROR_SECTOR_NOT_FOUND = 27

const ERROR_SEEK = 25

const ERROR_SEEK_ON_DEVICE = 132

const ERROR_SEM_IS_SET = 102

const ERROR_SEM_NOT_FOUND = 187

const ERROR_SEM_OWNER_DIED = 105

const ERROR_SEM_TIMEOUT = 121

const ERROR_SEM_USER_LIMIT = 106

const ERROR_SERIAL_NO_DEVICE = 1118

const ERROR_SERVER_DISABLED = 1341

const ERROR_SERVER_HAS_OPEN_HANDLES = 1811

const ERROR_SERVER_NOT_DISABLED = 1342

const ERROR_SERVER_SHUTDOWN_IN_PROGRESS = 1255

const ERROR_SERVICES_FAILED_AUTOSTART = 15405

const ERROR_SERVICE_ALREADY_RUNNING = 1056

const ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061

const ERROR_SERVICE_DATABASE_LOCKED = 1055

const ERROR_SERVICE_DEPENDENCY_DELETED = 1075

const ERROR_SERVICE_DEPENDENCY_FAIL = 1068

const ERROR_SERVICE_DISABLED = 1058

const ERROR_SERVICE_DOES_NOT_EXIST = 1060

const ERROR_SERVICE_EXISTS = 1073

const ERROR_SERVICE_LOGON_FAILED = 1069

const ERROR_SERVICE_MARKED_FOR_DELETE = 1072

const ERROR_SERVICE_NEVER_STARTED = 1077

const ERROR_SERVICE_NOT_ACTIVE = 1062

const ERROR_SERVICE_NOT_FOUND = 1243

const ERROR_SERVICE_NOT_IN_EXE = 1083

const ERROR_SERVICE_NO_THREAD = 1054

const ERROR_SERVICE_REQUEST_TIMEOUT = 1053

const ERROR_SERVICE_SPECIFIC_ERROR = 1066

const ERROR_SERVICE_START_HANG = 1070

const ERROR_SESSION_CREDENTIAL_CONFLICT = 1219

const ERROR_SETCOUNT_ON_BAD_LB = 1433

const ERROR_SETMARK_DETECTED = 1103

const ERROR_SET_NOT_FOUND = 1170

const ERROR_SET_POWER_STATE_FAILED = 1141

const ERROR_SET_POWER_STATE_VETOED = 1140

const ERROR_SEVERITY_ERROR = 3221225472

const ERROR_SEVERITY_INFORMATIONAL = 1073741824

const ERROR_SEVERITY_SUCCESS = 0

const ERROR_SEVERITY_WARNING = 2147483648

const ERROR_SHARED_POLICY = 8218

const ERROR_SHARING_BUFFER_EXCEEDED = 36

const ERROR_SHARING_PAUSED = 70

const ERROR_SHARING_VIOLATION = 32

const ERROR_SHUTDOWN_CLUSTER = 5008

const ERROR_SHUTDOWN_IN_PROGRESS = 1115

const ERROR_SIGNAL_PENDING = 162

const ERROR_SIGNAL_REFUSED = 156

const ERROR_SINGLE_INSTANCE_APP = 1152

const ERROR_SLOT_NOT_PRESENT = 4

const ERROR_SMARTCARD_SUBSYSTEM_FAILURE = 1264

const ERROR_SMI_PRIMITIVE_INSTALLER_FAILED = 14108

const ERROR_SOME_NOT_MAPPED = 1301

const ERROR_SOURCE_ELEMENT_EMPTY = 1160

const ERROR_SPECIAL_ACCOUNT = 1371

const ERROR_SPECIAL_GROUP = 1372

const ERROR_SPECIAL_USER = 1373

const ERROR_SPL_NO_ADDJOB = 3004

const ERROR_SPL_NO_STARTDOC = 3003

const ERROR_SPOOL_FILE_NOT_FOUND = 3002

const ERROR_STACK_BUFFER_OVERRUN = 1282

const ERROR_STACK_OVERFLOW = 1001

const ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED = 15815

const ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED = 15818

const ERROR_STATE_CREATE_CONTAINER_FAILED = 15805

const ERROR_STATE_DELETE_CONTAINER_FAILED = 15806

const ERROR_STATE_DELETE_SETTING_FAILED = 15809

const ERROR_STATE_ENUMERATE_CONTAINER_FAILED = 15813

const ERROR_STATE_ENUMERATE_SETTINGS_FAILED = 15814

const ERROR_STATE_GET_VERSION_FAILED = 15801

const ERROR_STATE_LOAD_STORE_FAILED = 15800

const ERROR_STATE_OPEN_CONTAINER_FAILED = 15804

const ERROR_STATE_QUERY_SETTING_FAILED = 15810

const ERROR_STATE_READ_COMPOSITE_SETTING_FAILED = 15811

const ERROR_STATE_READ_SETTING_FAILED = 15807

const ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED = 15817

const ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED = 15816

const ERROR_STATE_SET_VERSION_FAILED = 15802

const ERROR_STATE_STRUCTURED_RESET_FAILED = 15803

const ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED = 15812

const ERROR_STATE_WRITE_SETTING_FAILED = 15808

const ERROR_STATIC_INIT = 4002

const ERROR_SUBST_TO_JOIN = 141

const ERROR_SUBST_TO_SUBST = 139

const ERROR_SUCCESS = 0

const ERROR_SUCCESS_REBOOT_INITIATED = 1641

const ERROR_SUCCESS_REBOOT_REQUIRED = 3010

const ERROR_SUCCESS_RESTART_REQUIRED = 3011

const ERROR_SWAPERROR = 999

const ERROR_SXS_ACTIVATION_CONTEXT_DISABLED = 14006

const ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT = 14103

const ERROR_SXS_ASSEMBLY_MISSING = 14081

const ERROR_SXS_ASSEMBLY_NOT_FOUND = 14003

const ERROR_SXS_ASSEMBLY_NOT_LOCKED = 14097

const ERROR_SXS_CANT_GEN_ACTCTX = 14001

const ERROR_SXS_COMPONENT_STORE_CORRUPT = 14098

const ERROR_SXS_CORRUPTION = 14083

const ERROR_SXS_CORRUPT_ACTIVATION_STACK = 14082

const ERROR_SXS_DUPLICATE_ASSEMBLY_NAME = 14027

const ERROR_SXS_DUPLICATE_CLSID = 14023

const ERROR_SXS_DUPLICATE_DLL_NAME = 14021

const ERROR_SXS_DUPLICATE_IID = 14024

const ERROR_SXS_DUPLICATE_PROGID = 14026

const ERROR_SXS_DUPLICATE_TLBID = 14025

const ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME = 14022

const ERROR_SXS_EARLY_DEACTIVATION = 14084

const ERROR_SXS_FILE_HASH_MISMATCH = 14028

const ERROR_SXS_FILE_HASH_MISSING = 14110

const ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY = 14104

const ERROR_SXS_IDENTITIES_DIFFERENT = 14102

const ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE = 14092

const ERROR_SXS_IDENTITY_PARSE_ERROR = 14093

const ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN = 14095

const ERROR_SXS_INVALID_ACTCTXDATA_FORMAT = 14002

const ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE = 14017

const ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME = 14080

const ERROR_SXS_INVALID_DEACTIVATION = 14085

const ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME = 14091

const ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE = 14090

const ERROR_SXS_INVALID_XML_NAMESPACE_URI = 14014

const ERROR_SXS_KEY_NOT_FOUND = 14007

const ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED = 14016

const ERROR_SXS_MANIFEST_FORMAT_ERROR = 14004

const ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT = 14101

const ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE = 14019

const ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE = 14018

const ERROR_SXS_MANIFEST_PARSE_ERROR = 14005

const ERROR_SXS_MANIFEST_TOO_BIG = 14105

const ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE = 14079

const ERROR_SXS_MULTIPLE_DEACTIVATION = 14086

const ERROR_SXS_POLICY_PARSE_ERROR = 14029

const ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT = 14020

const ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET = 14011

const ERROR_SXS_PROCESS_TERMINATION_REQUESTED = 14087

const ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING = 14078

const ERROR_SXS_PROTECTION_CATALOG_NOT_VALID = 14076

const ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT = 14075

const ERROR_SXS_PROTECTION_RECOVERY_FAILED = 14074

const ERROR_SXS_RELEASE_ACTIVATION_CONTEXT = 14088

const ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED = 14015

const ERROR_SXS_SECTION_NOT_FOUND = 14000

const ERROR_SXS_SETTING_NOT_REGISTERED = 14106

const ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY = 14089

const ERROR_SXS_THREAD_QUERIES_DISABLED = 14010

const ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE = 14107

const ERROR_SXS_UNKNOWN_ENCODING = 14013

const ERROR_SXS_UNKNOWN_ENCODING_GROUP = 14012

const ERROR_SXS_UNTRANSLATABLE_HRESULT = 14077

const ERROR_SXS_VERSION_CONFLICT = 14008

const ERROR_SXS_WRONG_SECTION_TYPE = 14009

const ERROR_SXS_XML_E_BADCHARDATA = 14036

const ERROR_SXS_XML_E_BADCHARINSTRING = 14034

const ERROR_SXS_XML_E_BADNAMECHAR = 14033

const ERROR_SXS_XML_E_BADPEREFINSUBSET = 14059

const ERROR_SXS_XML_E_BADSTARTNAMECHAR = 14032

const ERROR_SXS_XML_E_BADXMLCASE = 14069

const ERROR_SXS_XML_E_BADXMLDECL = 14056

const ERROR_SXS_XML_E_COMMENTSYNTAX = 14031

const ERROR_SXS_XML_E_DUPLICATEATTRIBUTE = 14053

const ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE = 14045

const ERROR_SXS_XML_E_EXPECTINGTAGEND = 14038

const ERROR_SXS_XML_E_INCOMPLETE_ENCODING = 14043

const ERROR_SXS_XML_E_INTERNALERROR = 14041

const ERROR_SXS_XML_E_INVALIDATROOTLEVEL = 14055

const ERROR_SXS_XML_E_INVALIDENCODING = 14067

const ERROR_SXS_XML_E_INVALIDSWITCH = 14068

const ERROR_SXS_XML_E_INVALID_DECIMAL = 14047

const ERROR_SXS_XML_E_INVALID_HEXIDECIMAL = 14048

const ERROR_SXS_XML_E_INVALID_STANDALONE = 14070

const ERROR_SXS_XML_E_INVALID_UNICODE = 14049

const ERROR_SXS_XML_E_INVALID_VERSION = 14072

const ERROR_SXS_XML_E_MISSINGEQUALS = 14073

const ERROR_SXS_XML_E_MISSINGQUOTE = 14030

const ERROR_SXS_XML_E_MISSINGROOT = 14057

const ERROR_SXS_XML_E_MISSINGSEMICOLON = 14039

const ERROR_SXS_XML_E_MISSINGWHITESPACE = 14037

const ERROR_SXS_XML_E_MISSING_PAREN = 14044

const ERROR_SXS_XML_E_MULTIPLEROOTS = 14054

const ERROR_SXS_XML_E_MULTIPLE_COLONS = 14046

const ERROR_SXS_XML_E_RESERVEDNAMESPACE = 14066

const ERROR_SXS_XML_E_UNBALANCEDPAREN = 14040

const ERROR_SXS_XML_E_UNCLOSEDCDATA = 14065

const ERROR_SXS_XML_E_UNCLOSEDCOMMENT = 14063

const ERROR_SXS_XML_E_UNCLOSEDDECL = 14064

const ERROR_SXS_XML_E_UNCLOSEDENDTAG = 14061

const ERROR_SXS_XML_E_UNCLOSEDSTARTTAG = 14060

const ERROR_SXS_XML_E_UNCLOSEDSTRING = 14062

const ERROR_SXS_XML_E_UNCLOSEDTAG = 14052

const ERROR_SXS_XML_E_UNEXPECTEDENDTAG = 14051

const ERROR_SXS_XML_E_UNEXPECTEDEOF = 14058

const ERROR_SXS_XML_E_UNEXPECTED_STANDALONE = 14071

const ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE = 14042

const ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK = 14050

const ERROR_SXS_XML_E_XMLDECLSYNTAX = 14035

const ERROR_SYMLINK_CLASS_DISABLED = 1463

const ERROR_SYMLINK_NOT_SUPPORTED = 1464

const ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED = 1274

const ERROR_SYSTEM_DEVICE_NOT_FOUND = 15299

const ERROR_SYSTEM_NEEDS_REMEDIATION = 15623

const ERROR_SYSTEM_TRACE = 150

const ERROR_TAG_NOT_FOUND = 2012

const ERROR_TAG_NOT_PRESENT = 2013

const ERROR_THREAD_1_INACTIVE = 210

const ERROR_TIMEOUT = 1460

const ERROR_TIME_SKEW = 1398

const ERROR_TLW_WITH_WSCHILD = 1406

const ERROR_TOKEN_ALREADY_IN_USE = 1375

const ERROR_TOO_MANY_CMDS = 56

const ERROR_TOO_MANY_CONTEXT_IDS = 1384

const ERROR_TOO_MANY_LINKS = 1142

const ERROR_TOO_MANY_LUIDS_REQUESTED = 1333

const ERROR_TOO_MANY_MODULES = 214

const ERROR_TOO_MANY_MUXWAITERS = 152

const ERROR_TOO_MANY_NAMES = 68

const ERROR_TOO_MANY_OPEN_FILES = 4

const ERROR_TOO_MANY_POSTS = 298

const ERROR_TOO_MANY_SECRETS = 1381

const ERROR_TOO_MANY_SEMAPHORES = 100

const ERROR_TOO_MANY_SEM_REQUESTS = 103

const ERROR_TOO_MANY_SESS = 69

const ERROR_TOO_MANY_SIDS = 1389

const ERROR_TOO_MANY_TCBS = 155

const ERROR_TRANSFORM_NOT_SUPPORTED = 2004

const ERROR_TRANSPORT_FULL = 4328

const ERROR_TRAY_MALFUNCTION = 16

const ERROR_TRUSTED_DOMAIN_FAILURE = 1788

const ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789

const ERROR_TRUST_FAILURE = 1790

const ERROR_UNABLE_TO_CLEAN = 4311

const ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA = 4330

const ERROR_UNABLE_TO_INVENTORY_DRIVE = 4325

const ERROR_UNABLE_TO_INVENTORY_SLOT = 4326

const ERROR_UNABLE_TO_INVENTORY_TRANSPORT = 4327

const ERROR_UNABLE_TO_LOAD_MEDIUM = 4324

const ERROR_UNABLE_TO_LOCK_MEDIA = 1108

const ERROR_UNABLE_TO_MOVE_REPLACEMENT = 1176

const ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 = 1177

const ERROR_UNABLE_TO_REMOVE_REPLACED = 1175

const ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109

const ERROR_UNEXPECTED_OMID = 4334

const ERROR_UNEXP_NET_ERR = 59

const ERROR_UNHANDLED_ERROR = 4294967295

const ERROR_UNIDENTIFIED_ERROR = 1287

const ERROR_UNKNOWN_COMPONENT = 1607

const ERROR_UNKNOWN_FEATURE = 1606

const ERROR_UNKNOWN_PORT = 1796

const ERROR_UNKNOWN_PRINTER_DRIVER = 1797

const ERROR_UNKNOWN_PRINTPROCESSOR = 1798

const ERROR_UNKNOWN_PRINT_MONITOR = 3000

const ERROR_UNKNOWN_PRODUCT = 1605

const ERROR_UNKNOWN_PROPERTY = 1608

const ERROR_UNKNOWN_REVISION = 1305

const ERROR_UNMAPPED_SUBSTITUTION_STRING = 14096

const ERROR_UNRECOGNIZED_MEDIA = 1785

const ERROR_UNRECOGNIZED_VOLUME = 1005

const ERROR_UNSUPPORTED_TYPE = 1630

const ERROR_USER_APC = 737

const ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED = 1934

const ERROR_USER_EXISTS = 1316

const ERROR_USER_MAPPED_FILE = 1224

const ERROR_VC_DISCONNECTED = 240

const ERROR_VDM_DISALLOWED = 1286

const ERROR_VOLUME_CONTAINS_SYS_FILES = 4337

const ERROR_VOLUME_NOT_SIS_ENABLED = 4500

const ERROR_VOLUME_NOT_SUPPORT_EFS = 6014

const ERROR_WAIT_1 = 731

const ERROR_WAIT_2 = 732

const ERROR_WAIT_3 = 733

const ERROR_WAIT_63 = 734

const ERROR_WAIT_NO_CHILDREN = 128

const ERROR_WAKE_SYSTEM = 730

const ERROR_WINDOW_NOT_COMBOBOX = 1423

const ERROR_WINDOW_NOT_DIALOG = 1420

const ERROR_WINDOW_OF_OTHER_THREAD = 1408

const ERROR_WINS_INTERNAL = 4000

const ERROR_WMI_ALREADY_DISABLED = 4212

const ERROR_WMI_ALREADY_ENABLED = 4206

const ERROR_WMI_DP_FAILED = 4209

const ERROR_WMI_DP_NOT_FOUND = 4204

const ERROR_WMI_GUID_DISCONNECTED = 4207

const ERROR_WMI_GUID_NOT_FOUND = 4200

const ERROR_WMI_INSTANCE_NOT_FOUND = 4201

const ERROR_WMI_INVALID_MOF = 4210

const ERROR_WMI_INVALID_REGINFO = 4211

const ERROR_WMI_ITEMID_NOT_FOUND = 4202

const ERROR_WMI_READ_ONLY = 4213

const ERROR_WMI_SERVER_UNAVAILABLE = 4208

const ERROR_WMI_SET_FAILURE = 4214

const ERROR_WMI_TRY_AGAIN = 4203

const ERROR_WMI_UNRESOLVED_INSTANCE_REF = 4205

const ERROR_WORKING_SET_QUOTA = 1453

const ERROR_WRITE_FAULT = 29

const ERROR_WRITE_PROTECT = 19

const ERROR_WRONG_COMPARTMENT = 1468

const ERROR_WRONG_DISK = 34

const ERROR_WRONG_EFS = 6005

const ERROR_WRONG_PASSWORD = 1323

const ERROR_WRONG_TARGET_NAME = 1396

const ERROR_XMLDSIG_ERROR = 1466

const ERROR_XML_ENCODING_MISMATCH = 14100

const ERROR_XML_PARSE_ERROR = 1465

const ESB_DISABLE_BOTH = 3

const ESB_DISABLE_DOWN = 2

const ESB_DISABLE_LEFT = 1

const ESB_DISABLE_LTUP = 1

const ESB_DISABLE_RIGHT = 2

const ESB_DISABLE_RTDN = 2

const ESB_DISABLE_UP = 1

const ESB_ENABLE_BOTH = 0

const ES_AUTOHSCROLL = 128

const ES_AUTOVSCROLL = 64

const ES_CENTER = 1

const ES_LEFT = 0

const ES_LOWERCASE = 16

const ES_MULTILINE = 4

const ES_NOHIDESEL = 256

const ES_NUMBER = 8192

const ES_OEMCONVERT = 1024

const ES_PASSWORD = 32

const ES_READONLY = 2048

const ES_RIGHT = 2

const ES_UPPERCASE = 8

const ES_WANTRETURN = 4096

const ETIME = 137

const ETIMEDOUT = 138

const ETO_CLIPPED = 4

const ETO_GLYPH_INDEX = 16

const ETO_IGNORELANGUAGE = 4096

const ETO_NUMERICSLATIN = 2048

const ETO_NUMERICSLOCAL = 1024

const ETO_OPAQUE = 2

const ETO_PDY = 8192

const ETO_REVERSE_INDEX_MAP = 65536

const ETO_RTLREADING = 128

const ETXTBSY = 139

const EVENPARITY = 2

type EVENTLOGRECORD = TEVENTLOGRECORD

const EVENTLOG_AUDIT_FAILURE = 16

const EVENTLOG_AUDIT_SUCCESS = 8

const EVENTLOG_BACKWARDS_READ = 8

const EVENTLOG_END_ALL_PAIRED_EVENTS = 4

const EVENTLOG_END_PAIRED_EVENT = 2

const EVENTLOG_ERROR_TYPE = 1

const EVENTLOG_FORWARDS_READ = 4

const EVENTLOG_FULL_INFO = 0

type EVENTLOG_FULL_INFORMATION = TEVENTLOG_FULL_INFORMATION

const EVENTLOG_INFORMATION_TYPE = 4

const EVENTLOG_PAIRED_EVENT_ACTIVE = 8

const EVENTLOG_PAIRED_EVENT_INACTIVE = 16

const EVENTLOG_SEEK_READ = 2

const EVENTLOG_SEQUENTIAL_READ = 1

const EVENTLOG_START_PAIRED_EVENT = 1

const EVENTLOG_SUCCESS = 0

const EVENTLOG_WARNING_TYPE = 2

type EVENTMSG = TEVENTMSG

type EVENTSFORLOGFILE = TEVENTSFORLOGFILE

const EVENT_AIA_END = 45055

const EVENT_AIA_START = 40960

const EVENT_ALL_ACCESS = 2031619

const EVENT_CONSOLE_CARET = 16385

const EVENT_CONSOLE_END = 16639

const EVENT_CONSOLE_END_APPLICATION = 16391

const EVENT_CONSOLE_LAYOUT = 16389

const EVENT_CONSOLE_START_APPLICATION = 16390

const EVENT_CONSOLE_UPDATE_REGION = 16386

const EVENT_CONSOLE_UPDATE_SCROLL = 16388

const EVENT_CONSOLE_UPDATE_SIMPLE = 16387

const EVENT_E_FIRST = 2147746304

const EVENT_E_LAST = 2147746335

const EVENT_MAX = 2147483647

const EVENT_MIN = 1

const EVENT_MODIFY_STATE = 2

const EVENT_OBJECT_ACCELERATORCHANGE = 32786

const EVENT_OBJECT_CLOAKED = 32791

const EVENT_OBJECT_CONTENTSCROLLED = 32789

const EVENT_OBJECT_CREATE = 32768

const EVENT_OBJECT_DEFACTIONCHANGE = 32785

const EVENT_OBJECT_DESCRIPTIONCHANGE = 32781

const EVENT_OBJECT_DESTROY = 32769

const EVENT_OBJECT_DRAGCANCEL = 32802

const EVENT_OBJECT_DRAGCOMPLETE = 32803

const EVENT_OBJECT_DRAGDROPPED = 32806

const EVENT_OBJECT_DRAGENTER = 32804

const EVENT_OBJECT_DRAGLEAVE = 32805

const EVENT_OBJECT_DRAGSTART = 32801

const EVENT_OBJECT_END = 33023

const EVENT_OBJECT_FOCUS = 32773

const EVENT_OBJECT_HELPCHANGE = 32784

const EVENT_OBJECT_HIDE = 32771

const EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED = 32800

const EVENT_OBJECT_IME_CHANGE = 32809

const EVENT_OBJECT_IME_HIDE = 32808

const EVENT_OBJECT_IME_SHOW = 32807

const EVENT_OBJECT_INVOKED = 32787

const EVENT_OBJECT_LIVEREGIONCHANGED = 32793

const EVENT_OBJECT_LOCATIONCHANGE = 32779

const EVENT_OBJECT_NAMECHANGE = 32780

const EVENT_OBJECT_PARENTCHANGE = 32783

const EVENT_OBJECT_REORDER = 32772

const EVENT_OBJECT_SELECTION = 32774

const EVENT_OBJECT_SELECTIONADD = 32775

const EVENT_OBJECT_SELECTIONREMOVE = 32776

const EVENT_OBJECT_SELECTIONWITHIN = 32777

const EVENT_OBJECT_SHOW = 32770

const EVENT_OBJECT_STATECHANGE = 32778

const EVENT_OBJECT_TEXTSELECTIONCHANGED = 32788

const EVENT_OBJECT_UNCLOAKED = 32792

const EVENT_OBJECT_VALUECHANGE = 32782

const EVENT_OEM_DEFINED_END = 511

const EVENT_OEM_DEFINED_START = 257

const EVENT_SYSTEM_ALERT = 2

const EVENT_SYSTEM_ARRANGMENTPREVIEW = 32790

const EVENT_SYSTEM_CAPTUREEND = 9

const EVENT_SYSTEM_CAPTURESTART = 8

const EVENT_SYSTEM_CONTEXTHELPEND = 13

const EVENT_SYSTEM_CONTEXTHELPSTART = 12

const EVENT_SYSTEM_DESKTOPSWITCH = 32

const EVENT_SYSTEM_DIALOGEND = 17

const EVENT_SYSTEM_DIALOGSTART = 16

const EVENT_SYSTEM_DRAGDROPEND = 15

const EVENT_SYSTEM_DRAGDROPSTART = 14

const EVENT_SYSTEM_END = 255

const EVENT_SYSTEM_FOREGROUND = 3

const EVENT_SYSTEM_IME_KEY_NOTIFICATION = 41

const EVENT_SYSTEM_MENUEND = 5

const EVENT_SYSTEM_MENUPOPUPEND = 7

const EVENT_SYSTEM_MENUPOPUPSTART = 6

const EVENT_SYSTEM_MENUSTART = 4

const EVENT_SYSTEM_MINIMIZEEND = 23

const EVENT_SYSTEM_MINIMIZESTART = 22

const EVENT_SYSTEM_MOVESIZEEND = 11

const EVENT_SYSTEM_MOVESIZESTART = 10

const EVENT_SYSTEM_SCROLLINGEND = 19

const EVENT_SYSTEM_SCROLLINGSTART = 18

const EVENT_SYSTEM_SOUND = 1

const EVENT_SYSTEM_SWITCHEND = 21

const EVENT_SYSTEM_SWITCHER_APPDROPPED = 38

const EVENT_SYSTEM_SWITCHER_APPGRABBED = 36

const EVENT_SYSTEM_SWITCHER_APPOVERTARGET = 37

const EVENT_SYSTEM_SWITCHER_CANCELLED = 39

const EVENT_SYSTEM_SWITCHSTART = 20

const EVENT_S_FIRST = 262656

const EVENT_S_LAST = 262687

const EVENT_UIA_EVENTID_END = 20223

const EVENT_UIA_EVENTID_START = 19968

const EVENT_UIA_PROPID_END = 30207

const EVENT_UIA_PROPID_START = 29952

const EV_BREAK = 64

const EV_CTS = 8

const EV_DSR = 16

const EV_ERR = 128

const EV_EVENT1 = 2048

const EV_EVENT2 = 4096

type EV_EXTRA_CERT_CHAIN_POLICY_PARA = TEV_EXTRA_CERT_CHAIN_POLICY_PARA

type EV_EXTRA_CERT_CHAIN_POLICY_STATUS = TEV_EXTRA_CERT_CHAIN_POLICY_STATUS

const EV_PERR = 512

const EV_RING = 256

const EV_RLSD = 32

const EV_RX80FULL = 1024

const EV_RXCHAR = 1

const EV_RXFLAG = 2

const EV_TXEMPTY = 4

const EWOULDBLOCK = 140

const EWX_ARSO = 67108864

const EWX_BOOTOPTIONS = 16777216

const EWX_CHECK_SAFE_FOR_SERVER = 134217728

const EWX_FORCE = 4

const EWX_FORCEIFHUNG = 16

const EWX_HYBRID_SHUTDOWN = 4194304

const EWX_LOGOFF = 0

const EWX_POWEROFF = 8

const EWX_QUICKRESOLVE = 32

const EWX_REBOOT = 2

const EWX_RESTARTAPPS = 64

const EWX_SHUTDOWN = 1

type EXCEPINFO = TEXCEPINFO

const EXCEPTION_ACCESS_VIOLATION = "STATUS_ACCESS_VIOLATION"

const EXCEPTION_ARRAY_BOUNDS_EXCEEDED = "STATUS_ARRAY_BOUNDS_EXCEEDED"

const EXCEPTION_BREAKPOINT = "STATUS_BREAKPOINT"

const EXCEPTION_COLLIDED_UNWIND = 64

const EXCEPTION_CONTINUE_EXECUTION = -1

const EXCEPTION_CONTINUE_SEARCH = 0

const EXCEPTION_DATATYPE_MISALIGNMENT = "STATUS_DATATYPE_MISALIGNMENT"

const EXCEPTION_DEBUG_EVENT = 1

type EXCEPTION_DEBUG_INFO = TEXCEPTION_DEBUG_INFO

const EXCEPTION_DISPOSITION = 0

const EXCEPTION_EXECUTE_FAULT = 8

const EXCEPTION_EXECUTE_HANDLER = 1

const EXCEPTION_EXIT_UNWIND = 4

const EXCEPTION_FLT_DENORMAL_OPERAND = "STATUS_FLOAT_DENORMAL_OPERAND"

const EXCEPTION_FLT_DIVIDE_BY_ZERO = "STATUS_FLOAT_DIVIDE_BY_ZERO"

const EXCEPTION_FLT_INEXACT_RESULT = "STATUS_FLOAT_INEXACT_RESULT"

const EXCEPTION_FLT_INVALID_OPERATION = "STATUS_FLOAT_INVALID_OPERATION"

const EXCEPTION_FLT_OVERFLOW = "STATUS_FLOAT_OVERFLOW"

const EXCEPTION_FLT_STACK_CHECK = "STATUS_FLOAT_STACK_CHECK"

const EXCEPTION_FLT_UNDERFLOW = "STATUS_FLOAT_UNDERFLOW"

const EXCEPTION_GUARD_PAGE = "STATUS_GUARD_PAGE_VIOLATION"

const EXCEPTION_ILLEGAL_INSTRUCTION = "STATUS_ILLEGAL_INSTRUCTION"

const EXCEPTION_INT_DIVIDE_BY_ZERO = "STATUS_INTEGER_DIVIDE_BY_ZERO"

const EXCEPTION_INT_OVERFLOW = "STATUS_INTEGER_OVERFLOW"

const EXCEPTION_INVALID_DISPOSITION = "STATUS_INVALID_DISPOSITION"

const EXCEPTION_INVALID_HANDLE = "STATUS_INVALID_HANDLE"

const EXCEPTION_IN_PAGE_ERROR = "STATUS_IN_PAGE_ERROR"

const EXCEPTION_MAXIMUM_PARAMETERS = 15

const EXCEPTION_NESTED_CALL = 16

const EXCEPTION_NONCONTINUABLE = 1

const EXCEPTION_NONCONTINUABLE_EXCEPTION = "STATUS_NONCONTINUABLE_EXCEPTION"

type EXCEPTION_POINTERS = TEXCEPTION_POINTERS

const EXCEPTION_POSSIBLE_DEADLOCK = 0

const EXCEPTION_PRIV_INSTRUCTION = "STATUS_PRIVILEGED_INSTRUCTION"

const EXCEPTION_READ_FAULT = 0

type EXCEPTION_RECORD = TEXCEPTION_RECORD

type EXCEPTION_RECORD32 = TEXCEPTION_RECORD32

type EXCEPTION_RECORD64 = TEXCEPTION_RECORD64

type EXCEPTION_REGISTRATION = TEXCEPTION_REGISTRATION

type EXCEPTION_REGISTRATION_RECORD = TEXCEPTION_REGISTRATION_RECORD

const EXCEPTION_SINGLE_STEP = "STATUS_SINGLE_STEP"

const EXCEPTION_STACK_INVALID = 8

const EXCEPTION_STACK_OVERFLOW = "STATUS_STACK_OVERFLOW"

const EXCEPTION_TARGET_UNWIND = 32

const EXCEPTION_UNWIND = 102

const EXCEPTION_UNWINDING = 2

const EXCEPTION_WRITE_FAULT = 1

const EXECUTE_OFFLINE_DIAGS = 212

type EXECUTION_STATE = TEXECUTION_STATE

type EXFAT_STATISTICS = TEXFAT_STATISTICS

const EXIT_PROCESS_DEBUG_EVENT = 5

type EXIT_PROCESS_DEBUG_INFO = TEXIT_PROCESS_DEBUG_INFO

const EXIT_THREAD_DEBUG_EVENT = 4

type EXIT_THREAD_DEBUG_INFO = TEXIT_THREAD_DEBUG_INFO

type EXPAND_VIRTUAL_DISK_FLAG = TEXPAND_VIRTUAL_DISK_FLAG

type EXPAND_VIRTUAL_DISK_PARAMETERS = TEXPAND_VIRTUAL_DISK_PARAMETERS

type EXPAND_VIRTUAL_DISK_VERSION = TEXPAND_VIRTUAL_DISK_VERSION

const EXPORT_PRIVATE_KEYS = 4

const EXPO_OFFLOAD_FUNC_NAME = "OffloadModExpo"

const EXPO_OFFLOAD_REG_VALUE = "ExpoOffload"

type EXPR_EVAL = TEXPR_EVAL

type EXTCONN = TEXTCONN

type EXTENDED_ENCRYPTED_DATA_INFO = TEXTENDED_ENCRYPTED_DATA_INFO

const EXTENDED_STARTUPINFO_PRESENT = 524288

const EXTEND_IEPORT = 2

const EXTERN_C = 0

type EXTLOGFONT = TEXTLOGFONT

type EXTLOGFONTA = TEXTLOGFONTA

type EXTLOGFONTW = TEXTLOGFONTW

type EXTLOGPEN = TEXTLOGPEN

type EXTLOGPEN32 = TEXTLOGPEN32

const EXTTEXTOUT = 512

const EXT_DEVICE_CAPS = 4099

const E_DRAW = "VIEW_E_DRAW"

const EncryptFile = 0

const EndUpdateResource = 0

type EntropyGatherer = TEntropyGatherer

const EnumCalendarInfo = 0

const EnumCalendarInfoEx = 0

const EnumDateFormats = 0

const EnumDateFormatsEx = 0

const EnumDependentServices = 0

const EnumDesktops = 0

const EnumDisplayDevices = 0

const EnumDisplaySettings = 0

const EnumDisplaySettingsEx = 0

const EnumFontFamilies = 0

const EnumFontFamiliesEx = 0

const EnumFonts = 0

const EnumForms = 0

const EnumICMProfiles = 0

const EnumJobs = 0

const EnumLanguageGroupLocales = 0

const EnumMonitors = 0

const EnumPorts = 0

const EnumPrintProcessorDatatypes = 0

const EnumPrintProcessors = 0

const EnumPrinterData = 0

const EnumPrinterDataEx = 0

const EnumPrinterDrivers = 0

const EnumPrinterKey = 0

const EnumPrinters = 0

const EnumProps = 0

const EnumPropsEx = 0

const EnumResourceLanguages = 0

const EnumResourceLanguagesEx = 0

const EnumResourceNames = 0

const EnumResourceNamesEx = 0

const EnumResourceTypes = 0

const EnumResourceTypesEx = 0

const EnumServicesStatus = 0

const EnumServicesStatusEx = 0

const EnumSystemCodePages = 0

const EnumSystemLanguageGroups = 0

const EnumSystemLocales = 0

const EnumTimeFormats = 0

const EnumUILanguages = 0

const EnumWindowStations = 0

const ExceptionCollidedUnwind = 3

const ExceptionContinueExecution = 0

const ExceptionContinueSearch = 1

const ExceptionExecuteHandler = 4

const ExceptionNestedException = 2

const ExpandEnvironmentStrings = 0

const ExpungeConsoleCommandHistory = 0

const ExtTextOut = 0

type ExtendedErrorParamTypes = TExtendedErrorParamTypes

const ExtractAssociatedIcon = 0

const ExtractAssociatedIconEx = 0

const ExtractIcon = 0

const ExtractIconEx = 0

const FACILITY_AAF = 18

const FACILITY_ACS = 20

const FACILITY_AUDCLNT = 2185

const FACILITY_BACKGROUNDCOPY = 32

const FACILITY_CERT = 11

const FACILITY_COMPLUS = 17

const FACILITY_CONFIGURATION = 33

const FACILITY_CONTROL = 10

const FACILITY_DIRECTORYSERVICE = 37

const FACILITY_DISPATCH = 2

const FACILITY_DPLAY = 21

const FACILITY_HTTP = 25

const FACILITY_INTERNET = 12

const FACILITY_ITF = 4

const FACILITY_MEDIASERVER = 13

const FACILITY_METADIRECTORY = 35

const FACILITY_MSMQ = 14

const FACILITY_NT_BIT = 268435456

const FACILITY_NULL = 0

const FACILITY_RPC = 1

const FACILITY_SCARD = 16

const FACILITY_SECURITY = 9

const FACILITY_SETUPAPI = 15

const FACILITY_SSPI = 9

const FACILITY_STATE_MANAGEMENT = 34

const FACILITY_STORAGE = 3

const FACILITY_SXS = 23

const FACILITY_UMI = 22

const FACILITY_URT = 19

const FACILITY_USERMODE_FILTER_MANAGER = 31

const FACILITY_WIN32 = 7

const FACILITY_WINDOWS = 8

const FACILITY_WINDOWSUPDATE = 36

const FACILITY_WINDOWS_CE = 24

const FADF_AUTO = 1

const FADF_BSTR = 256

const FADF_DISPATCH = 1024

const FADF_EMBEDDED = 4

const FADF_FIXEDSIZE = 16

const FADF_HAVEIID = 64

const FADF_HAVEVARTYPE = 128

const FADF_RECORD = 32

const FADF_RESERVED = 61448

const FADF_STATIC = 2

const FADF_UNKNOWN = 512

const FADF_VARIANT = 2048

const FAILED_ACCESS_ACE_FLAG = 128

const FAIL_FAST_GENERATE_EXCEPTION_ADDRESS = 1

const FAIL_FAST_NO_HARD_ERROR_DLG = 2

const FALT = 16

const FAPPCOMMAND_KEY = 0

const FAPPCOMMAND_MASK = 61440

const FAPPCOMMAND_MOUSE = 32768

const FAPPCOMMAND_OEM = 4096

type FARPROC = TFARPROC

const FAST_FAIL_CORRUPT_LIST_ENTRY = 3

const FAST_FAIL_FATAL_APP_EXIT = 7

const FAST_FAIL_GS_COOKIE_INIT = 6

const FAST_FAIL_INCORRECT_STACK = 4

const FAST_FAIL_INVALID_ARG = 5

const FAST_FAIL_INVALID_FAST_FAIL_CODE = 4294967295

const FAST_FAIL_LEGACY_GS_VIOLATION = 0

const FAST_FAIL_RANGE_CHECK_FAILURE = 8

const FAST_FAIL_STACK_COOKIE_CHECK_FAILURE = 2

const FAST_FAIL_UNSAFE_REGISTRY_ACCESS = 9

const FAST_FAIL_VTGUARD_CHECK_FAILURE = 1

type FAT_STATISTICS = TFAT_STATISTICS

type FCHAR = TFCHAR

const FCONTROL = 8

const FD_ACCEPT = 8

const FD_CLOSE = 32

const FD_CONNECT = 16

const FD_OOB = 4

const FD_READ = 1

type FD_SET = TFD_SET

const FD_SETSIZE = 64

const FD_WRITE = 2

const FEATURESETTING_CUSTPAPER = 3

const FEATURESETTING_MIRROR = 4

const FEATURESETTING_NEGATIVE = 5

const FEATURESETTING_NUP = 0

const FEATURESETTING_OUTPUT = 1

const FEATURESETTING_PRIVATE_BEGIN = 4096

const FEATURESETTING_PRIVATE_END = 8191

const FEATURESETTING_PROTOCOL = 6

const FEATURESETTING_PSLEVEL = 2

type FEEDBACK_TYPE = TFEEDBACK_TYPE

const FE_FONTSMOOTHINGCLEARTYPE = 2

const FE_FONTSMOOTHINGDOCKING = 32768

const FE_FONTSMOOTHINGORIENTATIONBGR = 0

const FE_FONTSMOOTHINGORIENTATIONRGB = 1

const FE_FONTSMOOTHINGSTANDARD = 1

const FF_DECORATIVE = 80

const FF_DONTCARE = 0

const FF_MODERN = 48

const FF_ROMAN = 16

const FF_SCRIPT = 64

const FF_SWISS = 32

const FIBER_FLAG_FLOAT_SWITCH = 1

const FIEF_FLAG_FORCE_JITUI = 1

const FIEF_FLAG_PEEK = 2

const FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK = 4

type FILEMUIINFO = TFILEMUIINFO

const FILENAME_MAX = 260

const FILEOKSTRINGA = "commdlg_FileNameOK"

const FILEOKSTRINGW = "commdlg_FileNameOK"

const FILEOPENORD = 1536

type FILEOP_FLAGS = TFILEOP_FLAGS

type FILESYSTEM_STATISTICS = TFILESYSTEM_STATISTICS

const FILESYSTEM_STATISTICS_TYPE_EXFAT = 3

const FILESYSTEM_STATISTICS_TYPE_FAT = 2

const FILESYSTEM_STATISTICS_TYPE_NTFS = 1

type FILETIME = TFILETIME

const FILE_ACTION_ADDED = 1

const FILE_ACTION_MODIFIED = 3

const FILE_ACTION_REMOVED = 2

const FILE_ACTION_RENAMED_NEW_NAME = 5

const FILE_ACTION_RENAMED_OLD_NAME = 4

const FILE_ADD_FILE = 2

const FILE_ADD_SUBDIRECTORY = 4

type FILE_ALIGNMENT_INFO = TFILE_ALIGNMENT_INFO

type FILE_ALLOCATED_RANGE_BUFFER = TFILE_ALLOCATED_RANGE_BUFFER

type FILE_ALLOCATION_INFO = TFILE_ALLOCATION_INFO

const FILE_ALL_ACCESS = 2032127

const FILE_ANY_ACCESS = 0

const FILE_APPEND_DATA = 4

const FILE_ATTRIBUTE_ARCHIVE = 32

const FILE_ATTRIBUTE_COMPRESSED = 2048

const FILE_ATTRIBUTE_DEVICE = 64

const FILE_ATTRIBUTE_DIRECTORY = 16

const FILE_ATTRIBUTE_ENCRYPTED = 16384

const FILE_ATTRIBUTE_HIDDEN = 2

const FILE_ATTRIBUTE_MASK = 262135

const FILE_ATTRIBUTE_NORMAL = 128

const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192

const FILE_ATTRIBUTE_OFFLINE = 4096

const FILE_ATTRIBUTE_READONLY = 1

const FILE_ATTRIBUTE_REPARSE_POINT = 1024

const FILE_ATTRIBUTE_SPARSE_FILE = 512

const FILE_ATTRIBUTE_SYSTEM = 4

type FILE_ATTRIBUTE_TAG_INFO = TFILE_ATTRIBUTE_TAG_INFO

const FILE_ATTRIBUTE_TEMPORARY = 256

const FILE_ATTRIBUTE_VIRTUAL = 65536

type FILE_BASIC_INFO = TFILE_BASIC_INFO

const FILE_BEGIN = 0

const FILE_CACHE_MAX_HARD_DISABLE = 2

const FILE_CACHE_MAX_HARD_ENABLE = 1

const FILE_CACHE_MIN_HARD_DISABLE = 8

const FILE_CACHE_MIN_HARD_ENABLE = 4

const FILE_CASE_PRESERVED_NAMES = 2

type FILE_CASE_SENSITIVE_INFO = TFILE_CASE_SENSITIVE_INFO

const FILE_CASE_SENSITIVE_SEARCH = 1

const FILE_CLEAR_ENCRYPTION = 2

const FILE_COMPLETE_IF_OPLOCKED = 256

type FILE_COMPRESSION_INFO = TFILE_COMPRESSION_INFO

const FILE_CREATE = 2

const FILE_CREATE_PIPE_INSTANCE = 4

const FILE_CREATE_TREE_CONNECTION = 128

const FILE_CURRENT = 1

const FILE_DELETE_CHILD = 64

const FILE_DELETE_ON_CLOSE = 4096

const FILE_DEVICE_8042_PORT = 39

const FILE_DEVICE_ACPI = 50

const FILE_DEVICE_BATTERY = 41

const FILE_DEVICE_BEEP = 1

const FILE_DEVICE_BIOMETRIC = 68

const FILE_DEVICE_BLUETOOTH = 65

const FILE_DEVICE_BUS_EXTENDER = 42

const FILE_DEVICE_CD_ROM = 2

const FILE_DEVICE_CD_ROM_FILE_SYSTEM = 3

const FILE_DEVICE_CHANGER = 48

const FILE_DEVICE_CONSOLE = 80

const FILE_DEVICE_CONTROLLER = 4

const FILE_DEVICE_CRYPT_PROVIDER = 63

const FILE_DEVICE_DATALINK = 5

const FILE_DEVICE_DEVAPI = 71

const FILE_DEVICE_DFS = 6

const FILE_DEVICE_DFS_FILE_SYSTEM = 53

const FILE_DEVICE_DFS_VOLUME = 54

const FILE_DEVICE_DISK = 7

const FILE_DEVICE_DISK_FILE_SYSTEM = 8

const FILE_DEVICE_DVD = 51

const FILE_DEVICE_EHSTOR = 70

const FILE_DEVICE_EVENT_COLLECTOR = 95

const FILE_DEVICE_FILE_SYSTEM = 9

const FILE_DEVICE_FIPS = 58

const FILE_DEVICE_FULLSCREEN_VIDEO = 52

const FILE_DEVICE_GPIO = 72

const FILE_DEVICE_HOLOGRAPHIC = 91

const FILE_DEVICE_INFINIBAND = 59

const FILE_DEVICE_INPORT_PORT = 10

const FILE_DEVICE_KEYBOARD = 11

const FILE_DEVICE_KS = 47

const FILE_DEVICE_KSEC = 57

const FILE_DEVICE_MAILSLOT = 12

const FILE_DEVICE_MASS_STORAGE = 45

const FILE_DEVICE_MIDI_IN = 13

const FILE_DEVICE_MIDI_OUT = 14

const FILE_DEVICE_MODEM = 43

const FILE_DEVICE_MOUSE = 15

const FILE_DEVICE_MT_COMPOSITE = 66

const FILE_DEVICE_MT_TRANSPORT = 67

const FILE_DEVICE_MULTI_UNC_PROVIDER = 16

const FILE_DEVICE_NAMED_PIPE = 17

const FILE_DEVICE_NETWORK = 18

const FILE_DEVICE_NETWORK_BROWSER = 19

const FILE_DEVICE_NETWORK_FILE_SYSTEM = 20

const FILE_DEVICE_NETWORK_REDIRECTOR = 40

const FILE_DEVICE_NFP = 81

const FILE_DEVICE_NULL = 21

const FILE_DEVICE_NVDIMM = 90

const FILE_DEVICE_PARALLEL_PORT = 22

const FILE_DEVICE_PERSISTENT_MEMORY = 89

const FILE_DEVICE_PHYSICAL_NETCARD = 23

const FILE_DEVICE_PMI = 69

const FILE_DEVICE_POINT_OF_SERVICE = 84

const FILE_DEVICE_PRINTER = 24

const FILE_DEVICE_PRM = 94

const FILE_DEVICE_SCANNER = 25

const FILE_DEVICE_SCREEN = 28

const FILE_DEVICE_SDFXHCI = 92

const FILE_DEVICE_SERENUM = 55

const FILE_DEVICE_SERIAL_MOUSE_PORT = 26

const FILE_DEVICE_SERIAL_PORT = 27

const FILE_DEVICE_SMARTCARD = 49

const FILE_DEVICE_SMB = 46

const FILE_DEVICE_SOUND = 29

const FILE_DEVICE_SOUNDWIRE = 97

const FILE_DEVICE_STORAGE_REPLICATION = 85

const FILE_DEVICE_STREAMS = 30

const FILE_DEVICE_SYSENV = 82

const FILE_DEVICE_TAPE = 31

const FILE_DEVICE_TAPE_FILE_SYSTEM = 32

const FILE_DEVICE_TERMSRV = 56

const FILE_DEVICE_TRANSPORT = 33

const FILE_DEVICE_TRUST_ENV = 86

const FILE_DEVICE_UCM = 87

const FILE_DEVICE_UCMTCPCI = 88

const FILE_DEVICE_UCMUCSI = 93

const FILE_DEVICE_UNKNOWN = 34

const FILE_DEVICE_USB4 = 96

const FILE_DEVICE_USBEX = 73

const FILE_DEVICE_VDM = 44

const FILE_DEVICE_VIDEO = 35

const FILE_DEVICE_VIRTUAL_BLOCK = 83

const FILE_DEVICE_VIRTUAL_DISK = 36

const FILE_DEVICE_VMBUS = 62

const FILE_DEVICE_WAVE_IN = 37

const FILE_DEVICE_WAVE_OUT = 38

const FILE_DEVICE_WPD = 64

const FILE_DIRECTORY_FILE = 1

const FILE_DIR_DISALLOWED = 9

const FILE_DISALLOW_EXCLUSIVE = 131072

const FILE_DISPOSITION_FLAG_DELETE = 1

const FILE_DISPOSITION_FLAG_DO_NOT_DELETE = 0

const FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK = 4

const FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE = 16

const FILE_DISPOSITION_FLAG_ON_CLOSE = 8

const FILE_DISPOSITION_FLAG_POSIX_SEMANTICS = 2

type FILE_DISPOSITION_INFO = TFILE_DISPOSITION_INFO

type FILE_DISPOSITION_INFO_EX = TFILE_DISPOSITION_INFO_EX

const FILE_ENCRYPTABLE = 0

const FILE_END = 2

type FILE_END_OF_FILE_INFO = TFILE_END_OF_FILE_INFO

const FILE_EXECUTE = 32

const FILE_FILE_COMPRESSION = 16

const FILE_FLAG_BACKUP_SEMANTICS = 33554432

const FILE_FLAG_DELETE_ON_CLOSE = 67108864

const FILE_FLAG_FIRST_PIPE_INSTANCE = 524288

const FILE_FLAG_MASK = 4282122240

const FILE_FLAG_NO_BUFFERING = 536870912

const FILE_FLAG_OPEN_NO_RECALL = 1048576

const FILE_FLAG_OPEN_REPARSE_POINT = 2097152

const FILE_FLAG_OPEN_REQUIRING_OPLOCK = 262144

const FILE_FLAG_OVERLAPPED = 1073741824

const FILE_FLAG_POSIX_SEMANTICS = 16777216

const FILE_FLAG_RANDOM_ACCESS = 268435456

const FILE_FLAG_SEQUENTIAL_SCAN = 134217728

const FILE_FLAG_SESSION_AWARE = 8388608

const FILE_FLAG_WRITE_THROUGH = 2147483648

type FILE_FS_PERSISTENT_VOLUME_INFORMATION = TFILE_FS_PERSISTENT_VOLUME_INFORMATION

type FILE_FULL_DIR_INFO = TFILE_FULL_DIR_INFO

const FILE_GENERIC_EXECUTE = 1179808

const FILE_GENERIC_READ = 1179785

const FILE_GENERIC_WRITE = 1179926

type FILE_ID_128 = TFILE_ID_128

type FILE_ID_BOTH_DIR_INFO = TFILE_ID_BOTH_DIR_INFO

type FILE_ID_DESCRIPTOR = TFILE_ID_DESCRIPTOR

type FILE_ID_EXTD_DIR_INFO = TFILE_ID_EXTD_DIR_INFO

type FILE_ID_INFO = TFILE_ID_INFO

type FILE_ID_TYPE = TFILE_ID_TYPE

type FILE_INFO_BY_HANDLE_CLASS = TFILE_INFO_BY_HANDLE_CLASS

type FILE_IO_PRIORITY_HINT_INFO = TFILE_IO_PRIORITY_HINT_INFO

const FILE_IS_ENCRYPTED = 1

const FILE_LIST_DIRECTORY = 1

type FILE_MAKE_COMPATIBLE_BUFFER = TFILE_MAKE_COMPATIBLE_BUFFER

const FILE_MAP_ALL_ACCESS = 983071

const FILE_MAP_COPY = 1

const FILE_MAP_EXECUTE = 32

const FILE_MAP_LARGE_PAGES = 536870912

const FILE_MAP_READ = 4

const FILE_MAP_RESERVE = 2147483648

const FILE_MAP_TARGETS_INVALID = 1073741824

const FILE_MAP_WRITE = 2

const FILE_MAXIMUM_DISPOSITION = 5

const FILE_NAMED_STREAMS = 262144

type FILE_NAME_INFO = TFILE_NAME_INFO

const FILE_NAME_NORMALIZED = 0

const FILE_NAME_OPENED = 8

const FILE_NON_DIRECTORY_FILE = 64

const FILE_NOTIFY_CHANGE_ATTRIBUTES = 4

const FILE_NOTIFY_CHANGE_CREATION = 64

const FILE_NOTIFY_CHANGE_DIR_NAME = 2

const FILE_NOTIFY_CHANGE_FILE_NAME = 1

const FILE_NOTIFY_CHANGE_LAST_ACCESS = 32

const FILE_NOTIFY_CHANGE_LAST_WRITE = 16

const FILE_NOTIFY_CHANGE_SECURITY = 256

const FILE_NOTIFY_CHANGE_SIZE = 8

type FILE_NOTIFY_INFORMATION = TFILE_NOTIFY_INFORMATION

const FILE_NO_COMPRESSION = 32768

const FILE_NO_EA_KNOWLEDGE = 512

const FILE_NO_INTERMEDIATE_BUFFERING = 8

type FILE_OBJECTID_BUFFER = TFILE_OBJECTID_BUFFER

const FILE_OPEN = 1

const FILE_OPEN_BY_FILE_ID = 8192

const FILE_OPEN_FOR_BACKUP_INTENT = 16384

const FILE_OPEN_FOR_FREE_SPACE_QUERY = 8388608

const FILE_OPEN_IF = 3

const FILE_OPEN_NO_RECALL = 4194304

const FILE_OPEN_REMOTE_INSTANCE = 1024

const FILE_OPEN_REPARSE_POINT = 2097152

const FILE_OPEN_REQUIRING_OPLOCK = 65536

const FILE_OVERWRITE = 4

const FILE_OVERWRITE_IF = 5

const FILE_PERSISTENT_ACLS = 8

type FILE_PREFETCH = TFILE_PREFETCH

type FILE_PREFETCH_EX = TFILE_PREFETCH_EX

const FILE_PREFETCH_TYPE_FOR_CREATE = 1

const FILE_PREFETCH_TYPE_FOR_CREATE_EX = 3

const FILE_PREFETCH_TYPE_FOR_DIRENUM = 2

const FILE_PREFETCH_TYPE_FOR_DIRENUM_EX = 4

const FILE_PREFETCH_TYPE_MAX = 4

const FILE_PROVIDER_COMPRESSION_LZX = 1

const FILE_PROVIDER_COMPRESSION_XPRESS16K = 3

const FILE_PROVIDER_COMPRESSION_XPRESS4K = 0

const FILE_PROVIDER_COMPRESSION_XPRESS8K = 2

const FILE_PROVIDER_CURRENT_VERSION = 1

type FILE_PROVIDER_EXTERNAL_INFO_V0 = TFILE_PROVIDER_EXTERNAL_INFO_V0

type FILE_PROVIDER_EXTERNAL_INFO_V1 = TFILE_PROVIDER_EXTERNAL_INFO_V1

type FILE_QUERY_ON_DISK_VOL_INFO_BUFFER = TFILE_QUERY_ON_DISK_VOL_INFO_BUFFER

type FILE_QUERY_SPARING_BUFFER = TFILE_QUERY_SPARING_BUFFER

const FILE_RANDOM_ACCESS = 2048

const FILE_READ_ACCESS = 1

const FILE_READ_ATTRIBUTES = 128

const FILE_READ_DATA = 1

const FILE_READ_EA = 8

const FILE_READ_ONLY = 8

const FILE_READ_ONLY_VOLUME = 524288

type FILE_REMOTE_PROTOCOL_INFO = TFILE_REMOTE_PROTOCOL_INFO

const FILE_RENAME_FLAG_POSIX_SEMANTICS = 2

const FILE_RENAME_FLAG_REPLACE_IF_EXISTS = 1

const FILE_RENAME_FLAG_SUPPRESS_PIN_STATE_INHERITANCE = 4

type FILE_RENAME_INFO = TFILE_RENAME_INFO

const FILE_RESERVE_OPFILTER = 1048576

const FILE_ROOT_DIR = 3

type FILE_SEGMENT_ELEMENT = TFILE_SEGMENT_ELEMENT

const FILE_SEQUENTIAL_ONLY = 4

const FILE_SEQUENTIAL_WRITE_ONCE = 1048576

type FILE_SET_DEFECT_MGMT_BUFFER = TFILE_SET_DEFECT_MGMT_BUFFER

const FILE_SET_ENCRYPTION = 1

type FILE_SET_SPARSE_BUFFER = TFILE_SET_SPARSE_BUFFER

const FILE_SHARE_DELETE = 4

const FILE_SHARE_READ = 1

const FILE_SHARE_VALID_FLAGS = 7

const FILE_SHARE_WRITE = 2

const FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1

const FILE_SKIP_SET_EVENT_ON_HANDLE = 2

const FILE_SPECIAL_ACCESS = 0

type FILE_STANDARD_INFO = TFILE_STANDARD_INFO

type FILE_STORAGE_INFO = TFILE_STORAGE_INFO

type FILE_STREAM_INFO = TFILE_STREAM_INFO

const FILE_SUPERSEDE = 0

const FILE_SUPPORTS_ENCRYPTION = 131072

const FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 8388608

const FILE_SUPPORTS_HARD_LINKS = 4194304

const FILE_SUPPORTS_INTEGRITY_STREAMS = 67108864

const FILE_SUPPORTS_OBJECT_IDS = 65536

const FILE_SUPPORTS_OPEN_BY_FILE_ID = 16777216

const FILE_SUPPORTS_REMOTE_STORAGE = 256

const FILE_SUPPORTS_REPARSE_POINTS = 128

const FILE_SUPPORTS_SPARSE_FILES = 64

const FILE_SUPPORTS_TRANSACTIONS = 2097152

const FILE_SUPPORTS_USN_JOURNAL = 33554432

const FILE_SYNCHRONOUS_IO_ALERT = 16

const FILE_SYNCHRONOUS_IO_NONALERT = 32

const FILE_SYSTEM_ATTR = 2

const FILE_SYSTEM_DIR = 4

const FILE_SYSTEM_NOT_SUPPORT = 6

type FILE_SYSTEM_RECOGNITION_INFORMATION = TFILE_SYSTEM_RECOGNITION_INFORMATION

type FILE_SYSTEM_RECOGNITION_STRUCTURE = TFILE_SYSTEM_RECOGNITION_STRUCTURE

const FILE_TRAVERSE = 32

const FILE_TYPE_CHAR = 2

const FILE_TYPE_DISK = 1

const FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN = 1

const FILE_TYPE_NOTIFICATION_FLAG_USAGE_END = 2

type FILE_TYPE_NOTIFICATION_INPUT = TFILE_TYPE_NOTIFICATION_INPUT

const FILE_TYPE_PIPE = 3

const FILE_TYPE_REMOTE = 32768

const FILE_TYPE_UNKNOWN = 0

const FILE_UNICODE_ON_DISK = 4

const FILE_UNKNOWN = 5

const FILE_USER_DISALLOWED = 7

const FILE_VER_GET_LOCALISED = 1

const FILE_VER_GET_NEUTRAL = 2

const FILE_VER_GET_PREFETCHED = 4

const FILE_VOLUME_IS_COMPRESSED = 32768

const FILE_VOLUME_QUOTAS = 32

const FILE_WRITE_ACCESS = 2

const FILE_WRITE_ATTRIBUTES = 256

const FILE_WRITE_DATA = 2

const FILE_WRITE_EA = 16

const FILE_WRITE_THROUGH = 2

type FILE_ZERO_DATA_INFORMATION = TFILE_ZERO_DATA_INFORMATION

type FILTERKEYS = TFILTERKEYS

const FINDDLGORD = 1540

type FINDEX_INFO_LEVELS = TFINDEX_INFO_LEVELS

type FINDEX_SEARCH_OPS = TFINDEX_SEARCH_OPS

const FINDMSGSTRINGA = "commdlg_FindReplace"

const FINDMSGSTRINGW = "commdlg_FindReplace"

type FINDREPLACE = TFINDREPLACE

type FINDREPLACEA = TFINDREPLACEA

type FINDREPLACEW = TFINDREPLACEW

const FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA = 4

const FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS = 2

const FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 1

type FIND_BY_SID_DATA = TFIND_BY_SID_DATA

type FIND_BY_SID_OUTPUT = TFIND_BY_SID_OUTPUT

const FIND_ENDSWITH = 2097152

const FIND_FIRST_EX_CASE_SENSITIVE = 1

const FIND_FIRST_EX_LARGE_FETCH = 2

const FIND_FROMEND = 8388608

const FIND_FROMSTART = 4194304

type FIND_NAME_BUFFER = TFIND_NAME_BUFFER

type FIND_NAME_HEADER = TFIND_NAME_HEADER

const FIND_RESOURCE_DIRECTORY_LANGUAGES = 1024

const FIND_RESOURCE_DIRECTORY_NAMES = 512

const FIND_RESOURCE_DIRECTORY_TYPES = 256

const FIND_STARTSWITH = 1048576

type FIRMWARE_TYPE = TFIRMWARE_TYPE

type FIXED = TFIXED

const FIXED_PITCH = 1

const FKF_AVAILABLE = 2

const FKF_CLICKON = 64

const FKF_CONFIRMHOTKEY = 8

const FKF_FILTERKEYSON = 1

const FKF_HOTKEYACTIVE = 4

const FKF_HOTKEYSOUND = 16

const FKF_INDICATOR = 32

type FLAGGED_BYTE_BLOB = TFLAGGED_BYTE_BLOB

type FLAGGED_WORD_BLOB = TFLAGGED_WORD_BLOB

type FLAG_STGMEDIUM = TFLAG_STGMEDIUM

type FLASHWINFO = TFLASHWINFO

const FLASHW_ALL = 3

const FLASHW_CAPTION = 1

const FLASHW_STOP = 0

const FLASHW_TIMER = 4

const FLASHW_TIMERNOFG = 12

const FLASHW_TRAY = 2

const FLI_GLYPHS = 262144

const FLI_MASK = 4155

type FLOAT = TFLOAT

type FLOAT128 = TFLOAT128

type FLONG = TFLONG

const FLOODFILLBORDER = 0

const FLOODFILLSURFACE = 1

const FLS_MAXIMUM_AVAILABLE = 128

const FLUSHOUTPUT = 6

const FMFD_DEFAULT = 0

const FMFD_ENABLEMIMESNIFFING = 2

const FMFD_IGNOREMIMETEXTPLAIN = 4

const FMFD_RESPECTTEXTPLAIN = 16

const FMFD_RETURNUPDATEDIMGMIMES = 32

const FMFD_SERVERMIME = 8

const FMFD_URLASFILENAME = 1

type FMTID = TFMTID

const FMTID_NULL = 0

const FNERR_BUFFERTOOSMALL = 12291

const FNERR_FILENAMECODES = 12288

const FNERR_INVALIDFILENAME = 12290

const FNERR_SUBCLASSFAILURE = 12289

const FNOINVERT = 2

const FOCUS_EVENT = 16

type FOCUS_EVENT_RECORD = TFOCUS_EVENT_RECORD

const FOF_ALLOWUNDO = 64

const FOF_CONFIRMMOUSE = 2

const FOF_FILESONLY = 128

const FOF_MULTIDESTFILES = 1

const FOF_NOCONFIRMATION = 16

const FOF_NOCONFIRMMKDIR = 512

const FOF_NOCOPYSECURITYATTRIBS = 2048

const FOF_NOERRORUI = 1024

const FOF_NORECURSEREPARSE = 32768

const FOF_NORECURSION = 4096

const FOF_NO_CONNECTED_ELEMENTS = 8192

const FOF_NO_UI = 1556

const FOF_RENAMEONCOLLISION = 8

const FOF_SILENT = 4

const FOF_SIMPLEPROGRESS = 256

const FOF_WANTMAPPINGHANDLE = 32

const FOF_WANTNUKEWARNING = 16384

const FONTDLGORD = 1542

type FONTENUMPROC = TFONTENUMPROC

type FONTENUMPROCA = TFONTENUMPROCA

type FONTENUMPROCW = TFONTENUMPROCW

const FONTMAPPER_MAX = 10

type FONTSIGNATURE = TFONTSIGNATURE

const FORCEINLINE = "__forceinline"

const FOREGROUND_BLUE = 1

const FOREGROUND_GREEN = 2

const FOREGROUND_INTENSITY = 8

const FOREGROUND_RED = 4

const FOREST_USER_RID_MAX = 499

const FORMATDLGORD30 = 1544

const FORMATDLGORD31 = 1543

type FORMATETC = TFORMATETC

type FORMAT_EX_PARAMETERS = TFORMAT_EX_PARAMETERS

const FORMAT_MESSAGE_ALLOCATE_BUFFER = 256

const FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192

const FORMAT_MESSAGE_FROM_HMODULE = 2048

const FORMAT_MESSAGE_FROM_STRING = 1024

const FORMAT_MESSAGE_FROM_SYSTEM = 4096

const FORMAT_MESSAGE_IGNORE_INSERTS = 512

const FORMAT_MESSAGE_MAX_WIDTH_MASK = 255

type FORMAT_PARAMETERS = TFORMAT_PARAMETERS

const FORM_BUILTIN = 1

type FORM_INFO_1 = TFORM_INFO_1

type FORM_INFO_1A = TFORM_INFO_1A

type FORM_INFO_1W = TFORM_INFO_1W

type FORM_INFO_2 = TFORM_INFO_2

type FORM_INFO_2A = TFORM_INFO_2A

type FORM_INFO_2W = TFORM_INFO_2W

const FORM_PRINTER = 2

const FORM_USER = 0

type FOURCC = TFOURCC

const FO_COPY = 2

const FO_DELETE = 3

const FO_MOVE = 1

const FO_RENAME = 4

type FPO_DATA = TFPO_DATA

const FP_INFINITE = 1280

const FP_NAN = 256

const FP_NDENORM = 16

const FP_NINF = 4

const FP_NNORM = 8

const FP_NORMAL = 1024

const FP_NZERO = 32

const FP_PDENORM = 128

const FP_PINF = 512

const FP_PNORM = 256

const FP_PZERO = 64

const FP_QNAN = 2

const FP_SUBNORMAL = 17408

const FP_ZERO = 16384

const FRAME_FPO = 0

const FRAME_NONFPO = 3

const FRAME_TRAP = 1

const FRAME_TSS = 2

const FRERR_BUFFERLENGTHZERO = 16385

const FRERR_FINDREPLACECODES = 16384

const FROM_LEFT_1ST_BUTTON_PRESSED = 1

const FROM_LEFT_2ND_BUTTON_PRESSED = 4

const FROM_LEFT_3RD_BUTTON_PRESSED = 8

const FROM_LEFT_4TH_BUTTON_PRESSED = 16

const FRS_ERR_AUTHENTICATION = 8008

const FRS_ERR_CHILD_TO_PARENT_COMM = 8011

const FRS_ERR_INSUFFICIENT_PRIV = 8007

const FRS_ERR_INTERNAL = 8005

const FRS_ERR_INTERNAL_API = 8004

const FRS_ERR_INVALID_API_SEQUENCE = 8001

const FRS_ERR_INVALID_SERVICE_PARAMETER = 8017

const FRS_ERR_PARENT_AUTHENTICATION = 8010

const FRS_ERR_PARENT_INSUFFICIENT_PRIV = 8009

const FRS_ERR_PARENT_TO_CHILD_COMM = 8012

const FRS_ERR_SERVICE_COMM = 8006

const FRS_ERR_STARTING_SERVICE = 8002

const FRS_ERR_STOPPING_SERVICE = 8003

const FRS_ERR_SYSVOL_DEMOTE = 8016

const FRS_ERR_SYSVOL_IS_BUSY = 8015

const FRS_ERR_SYSVOL_POPULATE = 8013

const FRS_ERR_SYSVOL_POPULATE_TIMEOUT = 8014

const FR_DIALOGTERM = 64

const FR_DOWN = 1

const FR_ENABLEHOOK = 256

const FR_ENABLETEMPLATE = 512

const FR_ENABLETEMPLATEHANDLE = 8192

const FR_FINDNEXT = 8

const FR_HIDEMATCHCASE = 32768

const FR_HIDEUPDOWN = 16384

const FR_HIDEWHOLEWORD = 65536

const FR_MATCHALEFHAMZA = 2147483648

const FR_MATCHCASE = 4

const FR_MATCHDIAC = 536870912

const FR_MATCHKASHIDA = 1073741824

const FR_NOMATCHCASE = 2048

const FR_NOT_ENUM = 32

const FR_NOUPDOWN = 1024

const FR_NOWHOLEWORD = 4096

const FR_PRIVATE = 16

const FR_RAW = 131072

const FR_REPLACE = 16

const FR_REPLACEALL = 32

const FR_SHOWHELP = 128

const FR_WHOLEWORD = 2

const FSCTL_ALLOW_EXTENDED_DASD_IO = 589955

const FSCTL_CREATE_OR_GET_OBJECT_ID = 590016

const FSCTL_CREATE_USN_JOURNAL = 590055

const FSCTL_CSC_INTERNAL = 590255

const FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT = 590420

const FSCTL_CSV_GET_VOLUME_PATH_NAME = 590416

const FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME = 590424

const FSCTL_CSV_TUNNEL_REQUEST = 590404

const FSCTL_DELETE_EXTERNAL_BACKING = 590612

const FSCTL_DELETE_OBJECT_ID = 589984

const FSCTL_DELETE_REPARSE_POINT = 589996

const FSCTL_DELETE_USN_JOURNAL = 590072

const FSCTL_DFSR_SET_GHOST_HANDLE_STATE = 590264

const FSCTL_DISMOUNT_VOLUME = 589856

const FSCTL_ENABLE_UPGRADE = 622800

const FSCTL_ENCRYPTION_FSCTL_IO = 590043

const FSCTL_ENUM_USN_DATA = 590003

const FSCTL_EXTEND_VOLUME = 590064

const FSCTL_FILESYSTEM_GET_STATISTICS = 589920

const FSCTL_FILE_PREFETCH = 590112

const FSCTL_FILE_TYPE_NOTIFICATION = 590340

const FSCTL_FIND_FILES_BY_SID = 589967

const FSCTL_GET_BOOT_AREA_INFO = 590384

const FSCTL_GET_COMPRESSION = 589884

const FSCTL_GET_EXTERNAL_BACKING = 590608

const FSCTL_GET_NTFS_FILE_RECORD = 589928

const FSCTL_GET_NTFS_VOLUME_DATA = 589924

const FSCTL_GET_OBJECT_ID = 589980

const FSCTL_GET_REPAIR = 590236

const FSCTL_GET_REPARSE_POINT = 589992

const FSCTL_GET_RETRIEVAL_POINTERS = 589939

const FSCTL_GET_RETRIEVAL_POINTER_BASE = 590388

const FSCTL_GET_VOLUME_BITMAP = 589935

const FSCTL_HSM_DATA = 639251

const FSCTL_HSM_MSG = 639240

const FSCTL_INITIATE_REPAIR = 590248

const FSCTL_INVALIDATE_VOLUMES = 589908

const FSCTL_IS_CSV_FILE = 590408

const FSCTL_IS_FILE_ON_CSV_VOLUME = 590428

const FSCTL_IS_PATHNAME_VALID = 589868

const FSCTL_IS_VOLUME_DIRTY = 589944

const FSCTL_IS_VOLUME_MOUNTED = 589864

const FSCTL_LOCK_VOLUME = 589848

const FSCTL_LOOKUP_STREAM_FROM_CLUSTER = 590332

const FSCTL_MAKE_MEDIA_COMPATIBLE = 622896

const FSCTL_MARK_AS_SYSTEM_HIVE = 589903

const FSCTL_MARK_HANDLE = 590076

const FSCTL_MARK_VOLUME_DIRTY = 589872

const FSCTL_MOVE_FILE = 589940

const FSCTL_OPBATCH_ACK_CLOSE_PENDING = 589840

const FSCTL_OPLOCK_BREAK_ACKNOWLEDGE = 589836

const FSCTL_OPLOCK_BREAK_ACK_NO_2 = 589904

const FSCTL_OPLOCK_BREAK_NOTIFY = 589844

const FSCTL_QUERY_ALLOCATED_RANGES = 606415

const FSCTL_QUERY_DEPENDENT_VOLUME = 590320

const FSCTL_QUERY_FAT_BPB = 589912

type FSCTL_QUERY_FAT_BPB_BUFFER = TFSCTL_QUERY_FAT_BPB_BUFFER

const FSCTL_QUERY_FILE_SYSTEM_RECOGNITION = 590412

const FSCTL_QUERY_ON_DISK_VOLUME_INFO = 590140

const FSCTL_QUERY_PAGEFILE_ENCRYPTION = 590312

const FSCTL_QUERY_PERSISTENT_VOLUME_STATE = 590396

const FSCTL_QUERY_RETRIEVAL_POINTERS = 589883

const FSCTL_QUERY_SPARING_INFO = 590136

const FSCTL_QUERY_USN_JOURNAL = 590068

const FSCTL_READ_FILE_USN_DATA = 590059

const FSCTL_READ_FROM_PLEX = 606494

const FSCTL_READ_RAW_ENCRYPTED = 590051

const FSCTL_READ_USN_JOURNAL = 590011

const FSCTL_RECALL_FILE = 590103

const FSCTL_REQUEST_BATCH_OPLOCK = 589832

const FSCTL_REQUEST_FILTER_OPLOCK = 589916

const FSCTL_REQUEST_OPLOCK = 590400

const FSCTL_REQUEST_OPLOCK_LEVEL_1 = 589824

const FSCTL_REQUEST_OPLOCK_LEVEL_2 = 589828

const FSCTL_RESET_VOLUME_ALLOCATION_HINTS = 590316

const FSCTL_SD_GLOBAL_CHANGE = 590324

const FSCTL_SECURITY_ID_CHECK = 606391

const FSCTL_SET_BOOTLOADER_ACCESSED = 589903

const FSCTL_SET_COMPRESSION = 639040

const FSCTL_SET_DEFECT_MANAGEMENT = 622900

const FSCTL_SET_ENCRYPTION = 590039

const FSCTL_SET_EXTERNAL_BACKING = 590604

const FSCTL_SET_OBJECT_ID = 589976

const FSCTL_SET_OBJECT_ID_EXTENDED = 590012

const FSCTL_SET_PERSISTENT_VOLUME_STATE = 590392

const FSCTL_SET_REPAIR = 590232

const FSCTL_SET_REPARSE_POINT = 589988

const FSCTL_SET_SHORT_NAME_BEHAVIOR = 590260

const FSCTL_SET_SPARSE = 590020

const FSCTL_SET_VOLUME_COMPRESSION_STATE = 590144

const FSCTL_SET_ZERO_DATA = 622792

const FSCTL_SET_ZERO_ON_DEALLOCATION = 590228

const FSCTL_SHRINK_VOLUME = 590256

const FSCTL_SIS_COPYFILE = 590080

const FSCTL_SIS_LINK_FILES = 639236

const FSCTL_TXFS_CREATE_MINIVERSION = 622972

const FSCTL_TXFS_CREATE_SECONDARY_RM = 622952

const FSCTL_TXFS_GET_METADATA_INFO = 606572

const FSCTL_TXFS_GET_TRANSACTED_VERSION = 606576

const FSCTL_TXFS_LIST_TRANSACTIONS = 606692

const FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES = 606688

const FSCTL_TXFS_MODIFY_RM = 622916

const FSCTL_TXFS_QUERY_RM_INFORMATION = 606536

const FSCTL_TXFS_READ_BACKUP_INFORMATION = 606560

const FSCTL_TXFS_READ_BACKUP_INFORMATION2 = 590328

const FSCTL_TXFS_ROLLFORWARD_REDO = 622928

const FSCTL_TXFS_ROLLFORWARD_UNDO = 622932

const FSCTL_TXFS_SAVEPOINT_INFORMATION = 622968

const FSCTL_TXFS_SHUTDOWN_RM = 622940

const FSCTL_TXFS_START_RM = 622936

const FSCTL_TXFS_TRANSACTION_ACTIVE = 606604

const FSCTL_TXFS_WRITE_BACKUP_INFORMATION = 622948

const FSCTL_TXFS_WRITE_BACKUP_INFORMATION2 = 590336

const FSCTL_UNLOCK_VOLUME = 589852

const FSCTL_WAIT_FOR_REPAIR = 590240

const FSCTL_WRITE_RAW_ENCRYPTED = 590047

const FSCTL_WRITE_USN_CLOSE_RECORD = 590063

const FSHIFT = 4

type FSHORT = TFSHORT

const FS_ARABIC = 64

const FS_BALTIC = 128

const FS_CASE_IS_PRESERVED = 2

const FS_CASE_SENSITIVE = 1

const FS_CHINESESIMP = 262144

const FS_CHINESETRAD = 1048576

const FS_CYRILLIC = 4

const FS_FILE_COMPRESSION = 16

const FS_FILE_ENCRYPTION = 131072

const FS_GREEK = 8

const FS_HEBREW = 32

const FS_JISJAPAN = 131072

const FS_JOHAB = 2097152

const FS_LATIN1 = 1

const FS_LATIN2 = 2

const FS_PERSISTENT_ACLS = 8

const FS_SYMBOL = 2147483648

const FS_THAI = 65536

const FS_TURKISH = 16

const FS_UNICODE_STORED_ON_DISK = 4

const FS_VIETNAMESE = 256

const FS_VOL_IS_COMPRESSED = 32768

const FS_WANSUNG = 524288

type FULL_PTR_TO_REFID_ELEMENT = TFULL_PTR_TO_REFID_ELEMENT

type FULL_PTR_XLAT_TABLES = TFULL_PTR_XLAT_TABLES

type FUNCDESC = TFUNCDESC

type FUNCFLAGS = TFUNCFLAGS

type FUNCKIND = TFUNCKIND

const FVIRTKEY = 1

const FW_BLACK = 900

const FW_BOLD = 700

const FW_DEMIBOLD = 600

const FW_DONTCARE = 0

const FW_EXTRABOLD = 800

const FW_EXTRALIGHT = 200

const FW_HEAVY = 900

const FW_LIGHT = 300

const FW_MEDIUM = 500

const FW_NORMAL = 400

const FW_REGULAR = 400

const FW_SEMIBOLD = 600

const FW_THIN = 100

const FW_ULTRABOLD = 800

const FW_ULTRALIGHT = 200

type FXPT16DOT16 = TFXPT16DOT16

type FXPT2DOT30 = TFXPT2DOT30

const FatalAppExit = 0

const FileEncryptionStatus = 0

const FillConsoleOutputCharacter = 0

const FillMemory = 0

const FindActCtxSectionString = 0

const FindAtom = 0

const FindExecutable = 0

const FindFirstChangeNotification = 0

const FindFirstFile = 0

const FindFirstFileEx = 0

const FindFirstFileTransacted = 0

const FindFirstVolume = 0

const FindFirstVolumeMountPoint = 0

const FindNextFile = 0

const FindNextVolume = 0

const FindNextVolumeMountPoint = 0

const FindResource = 0

const FindResourceEx = 0

const FindText = 0

const FindWindow = 0

const FindWindowEx = 0

const FloppyClassGuid = 0

const FoldString = 0

const FormatMessage = 0

const FreeEnvironmentStrings = 0

const GA_PARENT = 1

const GA_ROOT = 2

const GA_ROOTOWNER = 3

const GB2312_CHARSET = 134

const GCF_INCLUDE_ANCESTORS = 1

const GCLP_HBRBACKGROUND = -10

const GCLP_HCURSOR = -12

const GCLP_HICON = -14

const GCLP_HICONSM = -34

const GCLP_HMODULE = -16

const GCLP_MENUNAME = -8

const GCLP_WNDPROC = -24

const GCL_CBCLSEXTRA = -20

const GCL_CBWNDEXTRA = -18

const GCL_CONVERSION = 1

const GCL_REVERSECONVERSION = 2

const GCL_REVERSE_LENGTH = 3

const GCL_STYLE = -26

const GCPCLASS_ARABIC = 2

const GCPCLASS_HEBREW = 2

const GCPCLASS_LATIN = 1

const GCPCLASS_LATINNUMBER = 5

const GCPCLASS_LATINNUMERICSEPARATOR = 7

const GCPCLASS_LATINNUMERICTERMINATOR = 6

const GCPCLASS_LOCALNUMBER = 4

const GCPCLASS_NEUTRAL = 3

const GCPCLASS_NUMERICSEPARATOR = 8

const GCPCLASS_POSTBOUNDLTR = 32

const GCPCLASS_POSTBOUNDRTL = 16

const GCPCLASS_PREBOUNDLTR = 128

const GCPCLASS_PREBOUNDRTL = 64

const GCPGLYPH_LINKAFTER = 16384

const GCPGLYPH_LINKBEFORE = 32768

const GCP_CLASSIN = 524288

const GCP_DBCS = 1

const GCP_DIACRITIC = 256

const GCP_DISPLAYZWG = 4194304

const GCP_ERROR = 32768

const GCP_GLYPHSHAPE = 16

const GCP_JUSTIFY = 65536

const GCP_JUSTIFYIN = 2097152

const GCP_KASHIDA = 1024

const GCP_LIGATE = 32

const GCP_MAXEXTENT = 1048576

const GCP_NEUTRALOVERRIDE = 33554432

const GCP_NUMERICOVERRIDE = 16777216

const GCP_NUMERICSLATIN = 67108864

const GCP_NUMERICSLOCAL = 134217728

const GCP_REORDER = 2

type GCP_RESULTS = TGCP_RESULTS

type GCP_RESULTSA = TGCP_RESULTSA

type GCP_RESULTSW = TGCP_RESULTSW

const GCP_SYMSWAPOFF = 8388608

const GCP_USEKERNING = 8

const GCS_COMPATTR = 16

const GCS_COMPCLAUSE = 32

const GCS_COMPREADATTR = 2

const GCS_COMPREADCLAUSE = 4

const GCS_COMPREADSTR = 1

const GCS_COMPSTR = 8

const GCS_CURSORPOS = 128

const GCS_DELTASTART = 256

const GCS_RESULTCLAUSE = 4096

const GCS_RESULTREADCLAUSE = 1024

const GCS_RESULTREADSTR = 512

const GCS_RESULTSTR = 2048

const GCW_ATOM = -32

const GC_ALLGESTURES = 1

const GC_PAN = 1

const GC_PAN_WITH_GUTTER = 8

const GC_PAN_WITH_INERTIA = 16

const GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY = 4

const GC_PAN_WITH_SINGLE_FINGER_VERTICALLY = 2

const GC_PRESSANDTAP = 1

const GC_ROLLOVER = 1

const GC_ROTATE = 1

const GC_TWOFINGERTAP = 1

const GC_ZOOM = 1

const GDICOMMENT_BEGINGROUP = 2

const GDICOMMENT_ENDGROUP = 3

const GDICOMMENT_IDENTIFIER = 1128875079

const GDICOMMENT_MULTIFORMATS = 1073741828

const GDICOMMENT_UNICODE_END = 128

const GDICOMMENT_UNICODE_STRING = 64

const GDICOMMENT_WINDOWS_METAFILE = 2147483649

const GDIPLUS_TS_QUERYVER = 4122

const GDIPLUS_TS_RECORD = 4123

const GDI_ERROR = 4294967295

type GDI_NONREMOTE = TGDI_NONREMOTE

type GDI_OBJECT = TGDI_OBJECT

const GDI_OBJ_LAST = 14

const GENERIC_ALL = 268435456

type GENERIC_BINDING_INFO = TGENERIC_BINDING_INFO

type GENERIC_BINDING_ROUTINE = TGENERIC_BINDING_ROUTINE

type GENERIC_BINDING_ROUTINE_PAIR = TGENERIC_BINDING_ROUTINE_PAIR

const GENERIC_EXECUTE = 536870912

type GENERIC_MAPPING = TGENERIC_MAPPING

const GENERIC_READ = 2147483648

type GENERIC_UNBIND_ROUTINE = TGENERIC_UNBIND_ROUTINE

const GENERIC_WRITE = 1073741824

type GEOCLASS = TGEOCLASS

type GEOID = TGEOID

const GEOID_NOT_AVAILABLE = -1

type GEOTYPE = TGEOTYPE

type GEO_ENUMPROC = TGEO_ENUMPROC

type GESTURECONFIG = TGESTURECONFIG

const GESTURECONFIGMAXCOUNT = 256

type GESTUREINFO = TGESTUREINFO

type GESTURENOTIFYSTRUCT = TGESTURENOTIFYSTRUCT

const GESTUREVISUALIZATION_DOUBLETAP = 2

const GESTUREVISUALIZATION_OFF = 0

const GESTUREVISUALIZATION_ON = 31

const GESTUREVISUALIZATION_PRESSANDHOLD = 8

const GESTUREVISUALIZATION_PRESSANDTAP = 4

const GESTUREVISUALIZATION_RIGHTTAP = 16

const GESTUREVISUALIZATION_TAP = 1

const GETCOLORTABLE = 5

const GETDEVICEUNITS = 42

const GETEXTENDEDTEXTMETRICS = 256

const GETEXTENTTABLE = 257

const GETFACENAME = 513

const GETPAIRKERNTABLE = 258

const GETPENWIDTH = 16

const GETPHYSPAGESIZE = 12

const GETPRINTINGOFFSET = 13

const GETSCALINGFACTOR = 14

const GETSETPAPERBINS = 29

const GETSETPAPERMETRICS = 35

const GETSETPRINTORIENT = 30

const GETSETSCREENPARAMS = 3072

const GETTECHNOLGY = 20

const GETTECHNOLOGY = 20

const GETTRACKKERNTABLE = 259

const GETVECTORBRUSHSIZE = 27

const GETVECTORPENSIZE = 26

type GETVERSIONINPARAMS = TGETVERSIONINPARAMS

type GET_CHANGER_PARAMETERS = TGET_CHANGER_PARAMETERS

const GET_FEATURE_FROM_PROCESS = 2

const GET_FEATURE_FROM_REGISTRY = 4

const GET_FEATURE_FROM_THREAD = 1

const GET_FEATURE_FROM_THREAD_INTERNET = 64

const GET_FEATURE_FROM_THREAD_INTRANET = 16

const GET_FEATURE_FROM_THREAD_LOCALMACHINE = 8

const GET_FEATURE_FROM_THREAD_RESTRICTED = 128

const GET_FEATURE_FROM_THREAD_TRUSTED = 32

type GET_FILEEX_INFO_LEVELS = TGET_FILEEX_INFO_LEVELS

type GET_LENGTH_INFORMATION = TGET_LENGTH_INFORMATION

type GET_MEDIA_TYPES = TGET_MEDIA_TYPES

const GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4

const GET_MODULE_HANDLE_EX_FLAG_PIN = 1

const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2

const GET_MOUSEORKEY_LPARAM = 0

const GET_PS_FEATURESETTING = 4121

type GET_STORAGE_DEPENDENCY_FLAG = TGET_STORAGE_DEPENDENCY_FLAG

const GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A = "GetSystemWow64DirectoryA"

const GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W = "GetSystemWow64DirectoryA"

const GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A = "GetSystemWow64DirectoryW"

const GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W = "GetSystemWow64DirectoryW"

const GET_TAPE_DRIVE_INFORMATION = 1

const GET_TAPE_MEDIA_INFORMATION = 0

type GET_VIRTUAL_DISK_INFO = TGET_VIRTUAL_DISK_INFO

type GET_VIRTUAL_DISK_INFO_VERSION = TGET_VIRTUAL_DISK_INFO_VERSION

const GF_BEGIN = 1

const GF_END = 4

const GF_INERTIA = 2

const GGI_MARK_NONEXISTING_GLYPHS = 1

const GGL_INDEX = 2

const GGL_LEVEL = 1

const GGL_PRIVATE = 4

const GGL_STRING = 3

const GGO_BEZIER = 3

const GGO_BITMAP = 1

const GGO_GLYPH_INDEX = 128

const GGO_GRAY2_BITMAP = 4

const GGO_GRAY4_BITMAP = 5

const GGO_GRAY8_BITMAP = 6

const GGO_METRICS = 0

const GGO_NATIVE = 2

const GGO_UNHINTED = 256

const GHND = 66

const GIDC_ARRIVAL = 1

const GIDC_REMOVAL = 2

const GID_BEGIN = 1

const GID_END = 2

const GID_PAN = 4

const GID_PRESSANDTAP = 7

const GID_ROLLOVER = 7

const GID_ROTATE = 5

const GID_TWOFINGERTAP = 6

const GID_ZOOM = 3

type GLOBALHANDLE = TGLOBALHANDLE

type GLOBALOPT_EH_VALUES = TGLOBALOPT_EH_VALUES

type GLOBALOPT_PROPERTIES = TGLOBALOPT_PROPERTIES

type GLOBALOPT_RO_FLAGS = TGLOBALOPT_RO_FLAGS

type GLOBALOPT_RPCTP_VALUES = TGLOBALOPT_RPCTP_VALUES

type GLOBALOPT_UNMARSHALING_POLICY_VALUES = TGLOBALOPT_UNMARSHALING_POLICY_VALUES

type GLYPHMETRICS = TGLYPHMETRICS

type GLYPHMETRICSFLOAT = TGLYPHMETRICSFLOAT

type GLYPHSET = TGLYPHSET

const GL_ID_CANNOTSAVE = 17

const GL_ID_CHOOSECANDIDATE = 40

const GL_ID_INPUTCODE = 38

const GL_ID_INPUTRADICAL = 37

const GL_ID_INPUTREADING = 36

const GL_ID_INPUTSYMBOL = 39

const GL_ID_NOCONVERT = 32

const GL_ID_NODICTIONARY = 16

const GL_ID_NOMODULE = 1

const GL_ID_PRIVATE_FIRST = 32768

const GL_ID_PRIVATE_LAST = 65535

const GL_ID_READINGCONFLICT = 35

const GL_ID_REVERSECONVERSION = 41

const GL_ID_TOOMANYSTROKE = 34

const GL_ID_TYPINGERROR = 33

const GL_ID_UNKNOWN = 0

const GL_LEVEL_ERROR = 2

const GL_LEVEL_FATAL = 1

const GL_LEVEL_INFORMATION = 4

const GL_LEVEL_NOGUIDELINE = 0

const GL_LEVEL_WARNING = 3

const GMDI_GOINTOPOPUPS = 2

const GMDI_USEDISABLED = 1

const GMEM_DDESHARE = 8192

const GMEM_DISCARDABLE = 256

const GMEM_DISCARDED = 16384

const GMEM_FIXED = 0

const GMEM_INVALID_HANDLE = 32768

const GMEM_LOCKCOUNT = 255

const GMEM_LOWER = 4096

const GMEM_MODIFY = 128

const GMEM_MOVEABLE = 2

const GMEM_NOCOMPACT = 16

const GMEM_NODISCARD = 32

const GMEM_NOTIFY = 16384

const GMEM_NOT_BANKED = 4096

const GMEM_SHARE = 8192

const GMEM_VALID_FLAGS = 32626

const GMEM_ZEROINIT = 64

const GMMP_USE_DISPLAY_POINTS = 1

const GMMP_USE_HIGH_RESOLUTION_POINTS = 2

const GM_ADVANCED = 2

const GM_COMPATIBLE = 1

const GM_LAST = 2

type GOBJENUMPROC = TGOBJENUMPROC

const GPTR = 64

const GPT_ATTRIBUTE_PLATFORM_REQUIRED = 1

const GPT_BASIC_DATA_ATTRIBUTE_HIDDEN = 4611686018427387904

const GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER = 9223372036854775808

const GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY = 1152921504606846976

const GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY = 2305843009213693952

const GRADIENT_FILL_OP_FLAG = 255

const GRADIENT_FILL_RECT_H = 0

const GRADIENT_FILL_RECT_V = 1

const GRADIENT_FILL_TRIANGLE = 2

type GRADIENT_RECT = TGRADIENT_RECT

type GRADIENT_TRIANGLE = TGRADIENT_TRIANGLE

type GRAYSTRINGPROC = TGRAYSTRINGPROC

const GRAY_BRUSH = 2

const GREEK_CHARSET = 161

type GROUP_AFFINITY = TGROUP_AFFINITY

const GROUP_NAME = 128

type GROUP_RELATIONSHIP = TGROUP_RELATIONSHIP

const GROUP_SECURITY_INFORMATION = 2

const GR_GDIOBJECTS = 0

const GR_GDIOBJECTS_PEAK = 2

const GR_GLOBAL = -2

const GR_USEROBJECTS = 1

const GR_USEROBJECTS_PEAK = 4

const GSS_ALLOW_INHERITED_COMMON = 1

const GS_8BIT_INDICES = 1

type GUID = TGUID

const GUID_CLASS_COMPORT = 0

const GUID_SERENUM_BUS_ENUMERATOR = 0

type GUITHREADINFO = TGUITHREADINFO

const GUI_CARETBLINKING = 1

const GUI_INMENUMODE = 4

const GUI_INMOVESIZE = 2

const GUI_POPUPMENUMODE = 16

const GUI_SYSTEMMENUMODE = 8

const GWFS_INCLUDE_ANCESTORS = 1

const GWLP_HINSTANCE = -6

const GWLP_HWNDPARENT = -8

const GWLP_ID = -12

const GWLP_USERDATA = -21

const GWLP_WNDPROC = -4

const GWL_EXSTYLE = -20

const GWL_ID = -12

const GWL_STYLE = -16

const GW_CHILD = 5

const GW_ENABLEDPOPUP = 6

const GW_HWNDFIRST = 0

const GW_HWNDLAST = 1

const GW_HWNDNEXT = 2

const GW_HWNDPREV = 3

const GW_MAX = 6

const GW_OWNER = 4

const GetAltTabInfo = 0

const GetAtomName = 0

const GetBinaryType = 0

const GetCPInfoEx = 0

const GetCalendarInfo = 0

const GetCharABCWidths = 0

const GetCharABCWidthsFloat = 0

const GetCharWidth = 0

const GetCharWidth32 = 0

const GetCharWidthFloat = 0

const GetCharacterPlacement = 0

const GetClassInfo = 0

const GetClassInfoEx = 0

const GetClassLong = 0

const GetClassLongPtr = 0

const GetClassName = 0

const GetClipboardFormatName = 0

const GetCommandLine = 0

const GetCompressedFileSize = 0

const GetCompressedFileSizeTransacted = 0

const GetComputerName = 0

const GetComputerNameEx = 0

const GetConsoleAlias = 0

const GetConsoleAliasExes = 0

const GetConsoleAliasExesLength = 0

const GetConsoleAliases = 0

const GetConsoleAliasesLength = 0

const GetConsoleCommandHistory = 0

const GetConsoleCommandHistoryLength = 0

const GetConsoleOriginalTitle = 0

const GetConsoleTitle = 0

const GetCorePrinterDrivers = 0

const GetCurrencyFormat = 0

const GetCurrentDirectory = 0

const GetCurrentHwProfile = 0

const GetDateFormat = 0

const GetDefaultCommConfig = 0

const GetDefaultPrinter = 0

const GetDiskFreeSpace = 0

const GetDiskFreeSpaceEx = 0

const GetDlgItemText = 0

const GetDllDirectory = 0

const GetDriveType = 0

const GetEnhMetaFile = 0

const GetEnhMetaFileDescription = 0

const GetEnvironmentStringsA = 0

const GetEnvironmentVariable = 0

const GetExceptionCode = 0

const GetExpandedName = 0

const GetFileAttributes = 0

const GetFileAttributesEx = 0

const GetFileAttributesTransacted = 0

const GetFileSecurity = 0

const GetFileTitle = 0

const GetFileVersionInfo = 0

const GetFileVersionInfoEx = 0

const GetFileVersionInfoSize = 0

const GetFileVersionInfoSizeEx = 0

const GetFinalPathNameByHandle = 0

const GetFirmwareEnvironmentVariable = 0

const GetFirmwareEnvironmentVariableEx = 0

const GetForm = 0

const GetFullPathName = 0

const GetFullPathNameTransacted = 0

const GetGeoInfo = 0

const GetGlyphIndices = 0

const GetGlyphOutline = 0

const GetICMProfile = 0

const GetIconInfoEx = 0

const GetJob = 0

const GetKerningPairs = 0

const GetKeyNameText = 0

const GetKeyboardLayoutName = 0

const GetLocaleInfo = 0

const GetLogColorSpace = 0

const GetLogicalDriveStrings = 0

const GetLongPathName = 0

const GetLongPathNameTransacted = 0

const GetMenuItemInfo = 0

const GetMenuString = 0

const GetMessage = 0

const GetMetaFile = 0

const GetModuleFileName = 0

const GetModuleHandle = 0

const GetModuleHandleEx = 0

const GetMonitorInfo = 0

const GetNamedPipeClientComputerName = 0

const GetNamedPipeHandleState = 0

const GetNumberFormat = 0

const GetObject = 0

const GetOpenCardName = 0

const GetOpenFileName = 0

const GetOutlineTextMetrics = 0

const GetPrintProcessorDirectory = 0

const GetPrinter = 0

const GetPrinterData = 0

const GetPrinterDataEx = 0

const GetPrinterDriver = 0

const GetPrinterDriver2 = 0

const GetPrinterDriverDirectory = 0

const GetPrinterDriverPackagePath = 0

const GetPrivateProfileInt = 0

const GetPrivateProfileSection = 0

const GetPrivateProfileSectionNames = 0

const GetPrivateProfileString = 0

const GetPrivateProfileStruct = 0

const GetProfileInt = 0

const GetProfileSection = 0

const GetProfileString = 0

const GetProp = 0

const GetRawInputDeviceInfo = 0

const GetSaveFileName = 0

const GetServiceDisplayName = 0

const GetServiceKeyName = 0

const GetShortPathName = 0

const GetSpoolFileHandle = 0

const GetStartupInfo = 0

const GetStringTypeEx = 0

const GetSystemDirectory = 0

const GetSystemWindowsDirectory = 0

const GetSystemWow64Directory = 0

const GetSystemWow64Directory2 = 0

const GetTabbedTextExtent = 0

const GetTempFileName = 0

const GetTempPath = 0

const GetTextExtentExPoint = 0

const GetTextExtentPoint = 0

const GetTextExtentPoint32 = 0

const GetTextFace = 0

const GetTextMetrics = 0

const GetTimeFormat = 0

const GetUserName = 0

const GetUserObjectInformation = 0

const GetVersionEx = 0

const GetVolumeInformation = 0

const GetVolumeNameForVolumeMountPoint = 0

const GetVolumePathName = 0

const GetVolumePathNamesForVolumeName = 0

const GetWindowLong = 0

const GetWindowLongPtr = 0

const GetWindowModuleFileName = 0

const GetWindowText = 0

const GetWindowTextLength = 0

const GetWindowsDirectory = 0

const GlobalAddAtom = 0

const GlobalAddAtomEx = 0

const GlobalFindAtom = 0

const GlobalGetAtomName = 0

const GrayString = 0

type HACCEL = THACCEL

type HACCEL__ = THACCEL__

const HALFTONE = 4

type HALF_PTR = THALF_PTR

type HANDLE = THANDLE

type HANDLETABLE = THANDLETABLE

const HANDLE_FLAG_INHERIT = 1

const HANDLE_FLAG_PROTECT_FROM_CLOSE = 2

type HANDLE_PTR = THANDLE_PTR

const HANGEUL_CHARSET = 129

const HANGUL_CHARSET = 129

const HANGUP_COMPLETE = 5

const HANGUP_PENDING = 4

type HARDWAREHOOKSTRUCT = THARDWAREHOOKSTRUCT

type HARDWAREINPUT = THARDWAREINPUT

type HARDWARE_COUNTER_DATA = THARDWARE_COUNTER_DATA

type HARDWARE_COUNTER_TYPE = THARDWARE_COUNTER_TYPE

type HASHALGORITHM_ENUM = THASHALGORITHM_ENUM

type HBITMAP = THBITMAP

type HBITMAP__ = THBITMAP__

const HBMMENU_CALLBACK = -1

type HBRUSH = THBRUSH

type HBRUSH__ = THBRUSH__

const HCBT_ACTIVATE = 5

const HCBT_CLICKSKIPPED = 6

const HCBT_CREATEWND = 3

const HCBT_DESTROYWND = 4

const HCBT_KEYSKIPPED = 7

const HCBT_MINMAX = 1

const HCBT_MOVESIZE = 0

const HCBT_QS = 2

const HCBT_SETFOCUS = 9

const HCBT_SYSCOMMAND = 8

type HCERTCHAINENGINE = THCERTCHAINENGINE

type HCERTSTORE = THCERTSTORE

type HCERTSTOREPROV = THCERTSTOREPROV

type HCERT_SERVER_OCSP_RESPONSE = THCERT_SERVER_OCSP_RESPONSE

const HCF_AVAILABLE = 2

const HCF_CONFIRMHOTKEY = 8

const HCF_DEFAULTDESKTOP = 512

const HCF_HIGHCONTRASTON = 1

const HCF_HOTKEYACTIVE = 4

const HCF_HOTKEYAVAILABLE = 64

const HCF_HOTKEYSOUND = 16

const HCF_INDICATOR = 32

const HCF_LOGONDESKTOP = 256

const HCF_OPTION_NOTHEMECHANGE = 4096

type HCOLORSPACE = THCOLORSPACE

type HCOLORSPACE__ = THCOLORSPACE__

type HCONTEXT = THCONTEXT

type HCONV = THCONV

type HCONVLIST = THCONVLIST

type HCONVLIST__ = THCONVLIST__

type HCONV__ = THCONV__

type HCRYPTASYNC = THCRYPTASYNC

type HCRYPTDEFAULTCONTEXT = THCRYPTDEFAULTCONTEXT

type HCRYPTHASH = THCRYPTHASH

type HCRYPTKEY = THCRYPTKEY

type HCRYPTMSG = THCRYPTMSG

type HCRYPTOIDFUNCADDR = THCRYPTOIDFUNCADDR

type HCRYPTOIDFUNCSET = THCRYPTOIDFUNCSET

type HCRYPTPROV = THCRYPTPROV

type HCRYPTPROV_LEGACY = THCRYPTPROV_LEGACY

type HCRYPTPROV_OR_NCRYPT_KEY_HANDLE = THCRYPTPROV_OR_NCRYPT_KEY_HANDLE

type HCURSOR = THCURSOR

const HC_ACTION = 0

const HC_GETNEXT = 1

const HC_NOREM = 3

const HC_NOREMOVE = 3

const HC_SKIP = 2

const HC_SYSMODALOFF = 5

const HC_SYSMODALON = 4

const HDATA_APPOWNED = 1

type HDC = THDC

type HDC__ = THDC__

type HDDEDATA = THDDEDATA

type HDDEDATA__ = THDDEDATA__

type HDESK = THDESK

type HDESK__ = THDESK__

type HDEVNOTIFY = THDEVNOTIFY

type HDROP = THDROP

type HDROP__ = THDROP__

type HDRVR = THDRVR

type HDRVR__ = THDRVR__

type HDWP = THDWP

const HEAP_CREATE_ALIGN_16 = 65536

const HEAP_CREATE_ENABLE_EXECUTE = 262144

const HEAP_CREATE_ENABLE_TRACING = 131072

const HEAP_DISABLE_COALESCE_ON_FREE = 128

const HEAP_FREE_CHECKING_ENABLED = 64

const HEAP_GENERATE_EXCEPTIONS = 4

const HEAP_GROWABLE = 2

type HEAP_INFORMATION_CLASS = THEAP_INFORMATION_CLASS

const HEAP_MAXIMUM_TAG = 4095

const HEAP_NO_SERIALIZE = 1

const HEAP_PSEUDO_TAG_FLAG = 32768

const HEAP_REALLOC_IN_PLACE_ONLY = 16

type HEAP_SUMMARY = THEAP_SUMMARY

const HEAP_TAG_SHIFT = 18

const HEAP_TAIL_CHECKING_ENABLED = 32

const HEAP_ZERO_MEMORY = 8

const HEBREW_CHARSET = 177

type HELPINFO = THELPINFO

const HELPINFO_MENUITEM = 2

const HELPINFO_WINDOW = 1

const HELPMSGSTRINGA = "commdlg_help"

const HELPMSGSTRINGW = "commdlg_help"

type HELPPOLY = THELPPOLY

type HELPWININFO = THELPWININFO

type HELPWININFOA = THELPWININFOA

type HELPWININFOW = THELPWININFOW

const HELP_COMMAND = 258

const HELP_CONTENTS = 3

const HELP_CONTEXT = 1

const HELP_CONTEXTMENU = 10

const HELP_CONTEXTPOPUP = 8

const HELP_FINDER = 11

const HELP_FORCEFILE = 9

const HELP_HELPONHELP = 4

const HELP_INDEX = 3

const HELP_KEY = 257

const HELP_MULTIKEY = 513

const HELP_PARTIALKEY = 261

const HELP_QUIT = 2

const HELP_SETCONTENTS = 5

const HELP_SETINDEX = 5

const HELP_SETPOPUP_POS = 13

const HELP_SETWINPOS = 515

const HELP_TCARD = 32768

const HELP_TCARD_DATA = 16

const HELP_TCARD_OTHER_CALLER = 17

const HELP_WM_HELP = 12

type HENHMETAFILE = THENHMETAFILE

type HENHMETAFILE__ = THENHMETAFILE__

type HFILE = THFILE

const HFILE_ERROR = -1

type HFONT = THFONT

type HFONT__ = THFONT__

type HGDIOBJ = THGDIOBJ

type HGESTUREINFO = THGESTUREINFO

type HGESTUREINFO__ = THGESTUREINFO__

type HGLOBAL = THGLOBAL

type HGLRC = THGLRC

type HGLRC__ = THGLRC__

type HHOOK = THHOOK

type HHOOK__ = THHOOK__

type HICON = THICON

type HICON__ = THICON__

const HIDE_WINDOW = 0

type HIGHCONTRAST = THIGHCONTRAST

type HIGHCONTRASTA = THIGHCONTRASTA

type HIGHCONTRASTW = THIGHCONTRASTW

const HIGH_PRIORITY_CLASS = 128

const HIGH_SURROGATE_END = 56319

const HIGH_SURROGATE_START = 55296

type HIMC = THIMC

type HIMCC = THIMCC

type HIMCC__ = THIMCC__

type HIMC__ = THIMC__

type HINSTANCE = THINSTANCE

const HINSTANCE_ERROR = 32

type HINSTANCE__ = THINSTANCE__

type HISTOGRAM_BUCKET = THISTOGRAM_BUCKET

const HISTOGRAM_BUCKET_SIZE = 0

const HISTORY_NO_DUP_FLAG = 1

const HIST_NO_OF_BUCKETS = 24

type HIT_LOGGING_INFO = THIT_LOGGING_INFO

type HKEY = THKEY

type HKEY__ = THKEY__

type HKL = THKL

const HKL_NEXT = 1

const HKL_PREV = 0

type HKL__ = THKL__

type HLOCAL = THLOCAL

type HLSURF = THLSURF

type HLSURF__ = THLSURF__

type HMAC_INFO = THMAC_INFO

type HMENU = THMENU

type HMENU__ = THMENU__

type HMETAFILE = THMETAFILE

type HMETAFILEPICT = THMETAFILEPICT

type HMETAFILE__ = THMETAFILE__

type HMIDI = THMIDI

type HMIDIIN = THMIDIIN

type HMIDIIN__ = THMIDIIN__

type HMIDIOUT = THMIDIOUT

type HMIDIOUT__ = THMIDIOUT__

type HMIDISTRM = THMIDISTRM

type HMIDISTRM__ = THMIDISTRM__

type HMIDI__ = THMIDI__

type HMIXER = THMIXER

type HMIXEROBJ = THMIXEROBJ

type HMIXEROBJ__ = THMIXEROBJ__

type HMIXER__ = THMIXER__

type HMMIO = THMMIO

type HMMIO__ = THMMIO__

type HMODULE = THMODULE

type HMONITOR = THMONITOR

const HMONITOR_DECLARED = 1

type HMONITOR__ = THMONITOR__

type HOLEMENU = THOLEMENU

const HOLLOW_BRUSH = 5

type HOOKPROC = THOOKPROC

const HORZRES = 8

const HORZSIZE = 4

type HOSTENT = THOSTENT

const HOST_NOT_FOUND = 11001

const HOVER_DEFAULT = 4294967295

type HPALETTE = THPALETTE

type HPALETTE__ = THPALETTE__

type HPEN = THPEN

type HPEN__ = THPEN__

type HPOWERNOTIFY = THPOWERNOTIFY

type HPROPSHEETPAGE = THPROPSHEETPAGE

type HPSTR = THPSTR

const HP_ALGID = 1

const HP_HASHSIZE = 4

const HP_HASHVAL = 2

const HP_HMAC_INFO = 5

const HP_TLS1PRF_LABEL = 6

const HP_TLS1PRF_SEED = 7

type HRAWINPUT = THRAWINPUT

type HRAWINPUT__ = THRAWINPUT__

type HREFTYPE = THREFTYPE

type HRESULT = THRESULT

type HRGN = THRGN

type HRGN__ = THRGN__

type HRSRC = THRSRC

type HRSRC__ = THRSRC__

const HSHELL_ACCESSIBILITYSTATE = 11

const HSHELL_ACTIVATESHELLWINDOW = 3

const HSHELL_APPCOMMAND = 12

const HSHELL_ENDTASK = 10

const HSHELL_FLASH = 32774

const HSHELL_GETMINRECT = 5

const HSHELL_HIGHBIT = 32768

const HSHELL_LANGUAGE = 8

const HSHELL_MONITORCHANGED = 16

const HSHELL_REDRAW = 6

const HSHELL_RUDEAPPACTIVATED = 32772

const HSHELL_SYSMENU = 9

const HSHELL_TASKMAN = 7

const HSHELL_WINDOWACTIVATED = 4

const HSHELL_WINDOWCREATED = 1

const HSHELL_WINDOWDESTROYED = 2

const HSHELL_WINDOWREPLACED = 13

const HSHELL_WINDOWREPLACING = 14

type HSPRITE = THSPRITE

type HSPRITE__ = THSPRITE__

type HSTR = THSTR

type HSTR__ = THSTR__

type HSZ = THSZ

type HSZPAIR = THSZPAIR

type HSZ__ = THSZ__

const HS_API_MAX = 12

const HS_BDIAGONAL = 3

const HS_CROSS = 4

const HS_DIAGCROSS = 5

const HS_FDIAGONAL = 2

const HS_HORIZONTAL = 0

const HS_VERTICAL = 1

type HTASK = THTASK

type HTASK__ = THTASK__

const HTBORDER = 18

const HTBOTTOM = 15

const HTBOTTOMLEFT = 16

const HTBOTTOMRIGHT = 17

const HTCAPTION = 2

const HTCLIENT = 1

const HTCLOSE = 20

const HTERROR = -2

const HTGROWBOX = 4

const HTHELP = 21

const HTHSCROLL = 6

const HTLEFT = 10

const HTMAXBUTTON = 9

const HTMENU = 5

const HTMINBUTTON = 8

const HTNOWHERE = 0

const HTOBJECT = 19

type HTOUCHINPUT = THTOUCHINPUT

type HTOUCHINPUT__ = THTOUCHINPUT__

const HTREDUCE = 8

const HTRIGHT = 11

const HTSIZE = 4

const HTSIZEFIRST = 10

const HTSIZELAST = 17

const HTSYSMENU = 3

const HTTOP = 12

const HTTOPLEFT = 13

const HTTOPRIGHT = 14

type HTTPSPolicyCallbackData = THTTPSPolicyCallbackData

const HTTRANSPARENT = -1

const HTVSCROLL = 7

const HTZOOM = 9

type HUMPD = THUMPD

type HUMPD__ = THUMPD__

type HWAVE = THWAVE

type HWAVEIN = THWAVEIN

type HWAVEIN__ = THWAVEIN__

type HWAVEOUT = THWAVEOUT

type HWAVEOUT__ = THWAVEOUT__

type HWAVE__ = THWAVE__

type HWINEVENTHOOK = THWINEVENTHOOK

type HWINEVENTHOOK__ = THWINEVENTHOOK__

type HWINSTA = THWINSTA

type HWINSTA__ = THWINSTA__

type HWND = THWND

const HWND_MESSAGE = -3

const HWND_NOTOPMOST = -2

const HWND_TOPMOST = -1

type HWND__ = THWND__

const HW_PROFILE_GUIDLEN = 39

type HW_PROFILE_INFO = THW_PROFILE_INFO

type HW_PROFILE_INFOA = THW_PROFILE_INFOA

type HW_PROFILE_INFOW = THW_PROFILE_INFOW

type HYPER_SIZEDARR = THYPER_SIZEDARR

const HiddenVolumeClassGuid = 0

const IACE_CHILDREN = 1

const IACE_DEFAULT = 16

const IACE_IGNORENOCONTEXT = 32

type IAddrExclusionControl = TIAddrExclusionControl

type IAddrExclusionControlVtbl = TIAddrExclusionControlVtbl

type IAddrTrackingControl = TIAddrTrackingControl

type IAddrTrackingControlVtbl = TIAddrTrackingControlVtbl

type IAdviseSink = TIAdviseSink

type IAdviseSink2 = TIAdviseSink2

type IAdviseSink2Vtbl = TIAdviseSink2Vtbl

type IAdviseSinkVtbl = TIAdviseSinkVtbl

type IAgileObject = TIAgileObject

type IAgileObjectVtbl = TIAgileObjectVtbl

type IAgileReference = TIAgileReference

type IAgileReferenceVtbl = TIAgileReferenceVtbl

type IApartmentShutdown = TIApartmentShutdown

type IApartmentShutdownVtbl = TIApartmentShutdownVtbl

type IAsyncManager = TIAsyncManager

type IAsyncManagerVtbl = TIAsyncManagerVtbl

type IAsyncRpcChannelBuffer = TIAsyncRpcChannelBuffer

type IAsyncRpcChannelBufferVtbl = TIAsyncRpcChannelBufferVtbl

type IAuthenticate = TIAuthenticate

type IAuthenticateEx = TIAuthenticateEx

type IAuthenticateExVtbl = TIAuthenticateExVtbl

type IAuthenticateVtbl = TIAuthenticateVtbl

type IBindCallbackRedirect = TIBindCallbackRedirect

type IBindCallbackRedirectVtbl = TIBindCallbackRedirectVtbl

type IBindCtx = TIBindCtx

type IBindCtxVtbl = TIBindCtxVtbl

type IBindHost = TIBindHost

type IBindHostVtbl = TIBindHostVtbl

type IBindProtocol = TIBindProtocol

type IBindProtocolVtbl = TIBindProtocolVtbl

type IBindStatusCallback = TIBindStatusCallback

type IBindStatusCallbackEx = TIBindStatusCallbackEx

type IBindStatusCallbackExVtbl = TIBindStatusCallbackExVtbl

type IBindStatusCallbackVtbl = TIBindStatusCallbackVtbl

type IBinding = TIBinding

type IBindingVtbl = TIBindingVtbl

type IBlockingLock = TIBlockingLock

type IBlockingLockVtbl = TIBlockingLockVtbl

const ICMENUMPROC = 0

type ICMENUMPROCA = TICMENUMPROCA

type ICMENUMPROCW = TICMENUMPROCW

const ICM_ADDPROFILE = 1

const ICM_DELETEPROFILE = 2

const ICM_DONE_OUTSIDEDC = 4

const ICM_OFF = 1

const ICM_ON = 2

const ICM_QUERY = 3

const ICM_QUERYMATCH = 7

const ICM_QUERYPROFILE = 3

const ICM_REGISTERICMATCHER = 5

const ICM_SETDEFAULTPROFILE = 4

const ICM_UNREGISTERICMATCHER = 6

type ICONINFO = TICONINFO

type ICONINFOEX = TICONINFOEX

type ICONINFOEXA = TICONINFOEXA

type ICONINFOEXW = TICONINFOEXW

type ICONMETRICS = TICONMETRICS

type ICONMETRICSA = TICONMETRICSA

type ICONMETRICSW = TICONMETRICSW

const ICON_BIG = 1

const ICON_SMALL = 0

const ICON_SMALL2 = 2

type ICallFactory = TICallFactory

type ICallFactoryVtbl = TICallFactoryVtbl

type ICancelMethodCalls = TICancelMethodCalls

type ICancelMethodCallsVtbl = TICancelMethodCallsVtbl

type ICatalogFileInfo = TICatalogFileInfo

type ICatalogFileInfoVtbl = TICatalogFileInfoVtbl

type IChannelHook = TIChannelHook

type IChannelHookVtbl = TIChannelHookVtbl

type IClassActivator = TIClassActivator

type IClassActivatorVtbl = TIClassActivatorVtbl

type IClassFactory = TIClassFactory

type IClassFactoryVtbl = TIClassFactoryVtbl

type IClientSecurity = TIClientSecurity

type IClientSecurityVtbl = TIClientSecurityVtbl

type ICodeInstall = TICodeInstall

type ICodeInstallVtbl = TICodeInstallVtbl

type IComThreadingInfo = TIComThreadingInfo

type IComThreadingInfoVtbl = TIComThreadingInfoVtbl

type IContinue = TIContinue

type IContinueVtbl = TIContinueVtbl

type ICreateErrorInfo = TICreateErrorInfo

type ICreateErrorInfoVtbl = TICreateErrorInfoVtbl

type ICreateTypeInfo = TICreateTypeInfo

type ICreateTypeInfo2 = TICreateTypeInfo2

type ICreateTypeInfo2Vtbl = TICreateTypeInfo2Vtbl

type ICreateTypeInfoVtbl = TICreateTypeInfoVtbl

type ICreateTypeLib = TICreateTypeLib

type ICreateTypeLib2 = TICreateTypeLib2

type ICreateTypeLib2Vtbl = TICreateTypeLib2Vtbl

type ICreateTypeLibVtbl = TICreateTypeLibVtbl

const IDABORT = 3

const IDANI_CAPTION = 3

const IDANI_OPEN = 1

const IDCANCEL = 2

const IDCLOSE = 8

const IDCONTINUE = 11

const IDENTIFY_BUFFER_SIZE = 512

type IDEREGS = TIDEREGS

const IDHELP = 9

const IDHOT_SNAPDESKTOP = -2

const IDHOT_SNAPWINDOW = -1

const IDH_CANCEL = 28444

const IDH_GENERIC_HELP_BUTTON = 28442

const IDH_HELP = 28445

const IDH_MISSING_CONTEXT = 28441

const IDH_NO_HELP = 28440

const IDH_OK = 28443

const IDIGNORE = 5

const IDI_ERROR = "IDI_HAND"

const IDI_INFORMATION = "IDI_ASTERISK"

const IDI_WARNING = "IDI_EXCLAMATION"

type IDLDESC = TIDLDESC

const IDLE_PRIORITY_CLASS = 64

const IDLFLAG_FIN = 1

const IDLFLAG_FLCID = 4

const IDLFLAG_FOUT = 2

const IDLFLAG_FRETVAL = 8

const IDLFLAG_NONE = 0

type IDL_CS_CONVERT = TIDL_CS_CONVERT

const IDNO = 7

const IDN_ALLOW_UNASSIGNED = 1

const IDN_EMAIL_ADDRESS = 4

const IDN_RAW_PUNYCODE = 8

const IDN_USE_STD3_ASCII_RULES = 2

const IDOK = 1

const IDRETRY = 4

const IDTIMEOUT = 32000

const IDTRYAGAIN = 10

const IDYES = 6

const ID_CMD = 236

const ID_DEFAULTINST = -2

const ID_PSREBOOTSYSTEM = 3

const ID_PSRESTARTWINDOWS = 2

type IDataAdviseHolder = TIDataAdviseHolder

type IDataAdviseHolderVtbl = TIDataAdviseHolderVtbl

type IDataFilter = TIDataFilter

type IDataFilterVtbl = TIDataFilterVtbl

type IDataObject = TIDataObject

type IDataObjectVtbl = TIDataObjectVtbl

type IDirectWriterLock = TIDirectWriterLock

type IDirectWriterLockVtbl = TIDirectWriterLockVtbl

type IDispatch = TIDispatch

type IDispatchVtbl = TIDispatchVtbl

type IDropSource = TIDropSource

type IDropSourceNotify = TIDropSourceNotify

type IDropSourceNotifyVtbl = TIDropSourceNotifyVtbl

type IDropSourceVtbl = TIDropSourceVtbl

type IDropTarget = TIDropTarget

type IDropTargetVtbl = TIDropTargetVtbl

type IDummyHICONIncluder = TIDummyHICONIncluder

type IDummyHICONIncluderVtbl = TIDummyHICONIncluderVtbl

const IE_BADID = -1

const IE_BAUDRATE = -12

const IE_BYTESIZE = -11

const IE_DEFAULT = -5

const IE_HARDWARE = -10

const IE_MEMORY = -4

const IE_NOPEN = -3

const IE_OPEN = -2

type IEncodingFilterFactory = TIEncodingFilterFactory

type IEncodingFilterFactoryVtbl = TIEncodingFilterFactoryVtbl

type IEnumFORMATETC = TIEnumFORMATETC

type IEnumFORMATETCVtbl = TIEnumFORMATETCVtbl

type IEnumMoniker = TIEnumMoniker

type IEnumMonikerVtbl = TIEnumMonikerVtbl

type IEnumOLEVERB = TIEnumOLEVERB

type IEnumOLEVERBVtbl = TIEnumOLEVERBVtbl

type IEnumSTATDATA = TIEnumSTATDATA

type IEnumSTATDATAVtbl = TIEnumSTATDATAVtbl

type IEnumSTATPROPSETSTG = TIEnumSTATPROPSETSTG

type IEnumSTATPROPSETSTGVtbl = TIEnumSTATPROPSETSTGVtbl

type IEnumSTATPROPSTG = TIEnumSTATPROPSTG

type IEnumSTATPROPSTGVtbl = TIEnumSTATPROPSTGVtbl

type IEnumSTATSTG = TIEnumSTATSTG

type IEnumSTATSTGVtbl = TIEnumSTATSTGVtbl

type IEnumString = TIEnumString

type IEnumStringVtbl = TIEnumStringVtbl

type IEnumUnknown = TIEnumUnknown

type IEnumUnknownVtbl = TIEnumUnknownVtbl

type IEnumVARIANT = TIEnumVARIANT

type IEnumVARIANTVtbl = TIEnumVARIANTVtbl

type IErrorInfo = TIErrorInfo

type IErrorInfoVtbl = TIErrorInfoVtbl

type IErrorLog = TIErrorLog

type IErrorLogVtbl = TIErrorLogVtbl

type IExternalConnection = TIExternalConnection

type IExternalConnectionVtbl = TIExternalConnectionVtbl

const IFACEMETHODIMPV = "STDMETHODIMPV"

type IFastRundown = TIFastRundown

type IFastRundownVtbl = TIFastRundownVtbl

type IFillLockBytes = TIFillLockBytes

type IFillLockBytesVtbl = TIFillLockBytesVtbl

type IForegroundTransfer = TIForegroundTransfer

type IForegroundTransferVtbl = TIForegroundTransferVtbl

const IGIMIF_RIGHTMENU = 1

const IGIMII_CMODE = 1

const IGIMII_CONFIGURE = 4

const IGIMII_HELP = 16

const IGIMII_INPUTTOOLS = 64

const IGIMII_OTHER = 32

const IGIMII_SMODE = 2

const IGIMII_TOOLS = 8

const IGNORE = 0

const IGP_CONVERSION = 8

const IGP_PROPERTY = 4

const IGP_SELECT = 24

const IGP_SENTENCE = 12

const IGP_SETCOMPSTR = 20

const IGP_UI = 16

type IGetBindHandle = TIGetBindHandle

type IGetBindHandleVtbl = TIGetBindHandleVtbl

type IGlobalInterfaceTable = TIGlobalInterfaceTable

type IGlobalInterfaceTableVtbl = TIGlobalInterfaceTableVtbl

type IGlobalOptions = TIGlobalOptions

type IGlobalOptionsVtbl = TIGlobalOptionsVtbl

type IHttpNegotiate = TIHttpNegotiate

type IHttpNegotiate2 = TIHttpNegotiate2

type IHttpNegotiate2Vtbl = TIHttpNegotiate2Vtbl

type IHttpNegotiate3 = TIHttpNegotiate3

type IHttpNegotiate3Vtbl = TIHttpNegotiate3Vtbl

type IHttpNegotiateVtbl = TIHttpNegotiateVtbl

type IHttpSecurity = TIHttpSecurity

type IHttpSecurityVtbl = TIHttpSecurityVtbl

type IID = TIID

const IID_IOInet = 0

const IID_IOInetBindInfo = 0

const IID_IOInetBindInfoEx = 0

const IID_IOInetPriority = 0

const IID_IOInetProtocol = 0

const IID_IOInetProtocolEx = 0

const IID_IOInetProtocolInfo = 0

const IID_IOInetProtocolRoot = 0

const IID_IOInetProtocolSink = 0

const IID_IOInetProtocolSinkStackable = 0

const IID_IOInetSession = 0

const IID_IOInetThreadSwitch = 0

const IID_NULL = 0

type IInitializeSpy = TIInitializeSpy

type IInitializeSpyVtbl = TIInitializeSpyVtbl

type IInternalUnknown = TIInternalUnknown

type IInternalUnknownVtbl = TIInternalUnknownVtbl

type IInternet = TIInternet

type IInternetBindInfo = TIInternetBindInfo

type IInternetBindInfoEx = TIInternetBindInfoEx

type IInternetBindInfoExVtbl = TIInternetBindInfoExVtbl

type IInternetBindInfoVtbl = TIInternetBindInfoVtbl

type IInternetHostSecurityManager = TIInternetHostSecurityManager

type IInternetHostSecurityManagerVtbl = TIInternetHostSecurityManagerVtbl

type IInternetPriority = TIInternetPriority

type IInternetPriorityVtbl = TIInternetPriorityVtbl

type IInternetProtocol = TIInternetProtocol

type IInternetProtocolEx = TIInternetProtocolEx

type IInternetProtocolExVtbl = TIInternetProtocolExVtbl

type IInternetProtocolInfo = TIInternetProtocolInfo

type IInternetProtocolInfoVtbl = TIInternetProtocolInfoVtbl

type IInternetProtocolRoot = TIInternetProtocolRoot

type IInternetProtocolRootVtbl = TIInternetProtocolRootVtbl

type IInternetProtocolSink = TIInternetProtocolSink

type IInternetProtocolSinkStackable = TIInternetProtocolSinkStackable

type IInternetProtocolSinkStackableVtbl = TIInternetProtocolSinkStackableVtbl

type IInternetProtocolSinkVtbl = TIInternetProtocolSinkVtbl

type IInternetProtocolVtbl = TIInternetProtocolVtbl

type IInternetSecurityManager = TIInternetSecurityManager

type IInternetSecurityManagerEx = TIInternetSecurityManagerEx

type IInternetSecurityManagerEx2 = TIInternetSecurityManagerEx2

type IInternetSecurityManagerEx2Vtbl = TIInternetSecurityManagerEx2Vtbl

type IInternetSecurityManagerExVtbl = TIInternetSecurityManagerExVtbl

type IInternetSecurityManagerVtbl = TIInternetSecurityManagerVtbl

type IInternetSecurityMgrSite = TIInternetSecurityMgrSite

type IInternetSecurityMgrSiteVtbl = TIInternetSecurityMgrSiteVtbl

type IInternetSession = TIInternetSession

type IInternetSessionVtbl = TIInternetSessionVtbl

type IInternetThreadSwitch = TIInternetThreadSwitch

type IInternetThreadSwitchVtbl = TIInternetThreadSwitchVtbl

type IInternetVtbl = TIInternetVtbl

type IInternetZoneManager = TIInternetZoneManager

type IInternetZoneManagerEx = TIInternetZoneManagerEx

type IInternetZoneManagerEx2 = TIInternetZoneManagerEx2

type IInternetZoneManagerEx2Vtbl = TIInternetZoneManagerEx2Vtbl

type IInternetZoneManagerExVtbl = TIInternetZoneManagerExVtbl

type IInternetZoneManagerVtbl = TIInternetZoneManagerVtbl

const ILLUMINANT_A = 1

const ILLUMINANT_B = 2

const ILLUMINANT_C = 3

const ILLUMINANT_D50 = 4

const ILLUMINANT_D55 = 5

const ILLUMINANT_D65 = 6

const ILLUMINANT_D75 = 7

const ILLUMINANT_DAYLIGHT = 3

const ILLUMINANT_DEVICE_DEFAULT = 0

const ILLUMINANT_F2 = 8

const ILLUMINANT_FLUORESCENT = 8

const ILLUMINANT_MAX_INDEX = 8

const ILLUMINANT_NTSC = 3

const ILLUMINANT_TUNGSTEN = 1

type ILayoutStorage = TILayoutStorage

type ILayoutStorageVtbl = TILayoutStorageVtbl

type ILockBytes = TILockBytes

type ILockBytesVtbl = TILockBytesVtbl

type IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = TIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY

type IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = TIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY

type IMAGE_ARCHITECTURE_ENTRY = TIMAGE_ARCHITECTURE_ENTRY

type IMAGE_ARCHITECTURE_HEADER = TIMAGE_ARCHITECTURE_HEADER

const IMAGE_ARCHIVE_END = "`\\n"

const IMAGE_ARCHIVE_LINKER_MEMBER = "/               "

const IMAGE_ARCHIVE_LONGNAMES_MEMBER = "//              "

type IMAGE_ARCHIVE_MEMBER_HEADER = TIMAGE_ARCHIVE_MEMBER_HEADER

const IMAGE_ARCHIVE_PAD = "\\n"

const IMAGE_ARCHIVE_START = "!<arch>\\n"

const IMAGE_ARCHIVE_START_SIZE = 8

type IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = TIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY

type IMAGE_ARM_RUNTIME_FUNCTION_ENTRY = TIMAGE_ARM_RUNTIME_FUNCTION_ENTRY

type IMAGE_AUX_SYMBOL = TIMAGE_AUX_SYMBOL

type IMAGE_AUX_SYMBOL_EX = TIMAGE_AUX_SYMBOL_EX

type IMAGE_AUX_SYMBOL_TOKEN_DEF = TIMAGE_AUX_SYMBOL_TOKEN_DEF

type IMAGE_AUX_SYMBOL_TYPE = TIMAGE_AUX_SYMBOL_TYPE

type IMAGE_BASE_RELOCATION = TIMAGE_BASE_RELOCATION

const IMAGE_BITMAP = 0

type IMAGE_BOUND_FORWARDER_REF = TIMAGE_BOUND_FORWARDER_REF

type IMAGE_BOUND_IMPORT_DESCRIPTOR = TIMAGE_BOUND_IMPORT_DESCRIPTOR

type IMAGE_CE_RUNTIME_FUNCTION_ENTRY = TIMAGE_CE_RUNTIME_FUNCTION_ENTRY

type IMAGE_COFF_SYMBOLS_HEADER = TIMAGE_COFF_SYMBOLS_HEADER

const IMAGE_COMDAT_SELECT_ANY = 2

const IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5

const IMAGE_COMDAT_SELECT_EXACT_MATCH = 4

const IMAGE_COMDAT_SELECT_LARGEST = 6

const IMAGE_COMDAT_SELECT_NEWEST = 7

const IMAGE_COMDAT_SELECT_NODUPLICATES = 1

const IMAGE_COMDAT_SELECT_SAME_SIZE = 3

type IMAGE_COR20_HEADER = TIMAGE_COR20_HEADER

const IMAGE_CURSOR = 2

type IMAGE_DATA_DIRECTORY = TIMAGE_DATA_DIRECTORY

type IMAGE_DEBUG_DIRECTORY = TIMAGE_DEBUG_DIRECTORY

type IMAGE_DEBUG_MISC = TIMAGE_DEBUG_MISC

const IMAGE_DEBUG_MISC_EXENAME = 1

const IMAGE_DEBUG_TYPE_BORLAND = 9

const IMAGE_DEBUG_TYPE_CLSID = 11

const IMAGE_DEBUG_TYPE_CODEVIEW = 2

const IMAGE_DEBUG_TYPE_COFF = 1

const IMAGE_DEBUG_TYPE_EXCEPTION = 5

const IMAGE_DEBUG_TYPE_FIXUP = 6

const IMAGE_DEBUG_TYPE_FPO = 3

const IMAGE_DEBUG_TYPE_MISC = 4

const IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8

const IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7

const IMAGE_DEBUG_TYPE_RESERVED10 = 10

const IMAGE_DEBUG_TYPE_UNKNOWN = 0

type IMAGE_DELAYLOAD_DESCRIPTOR = TIMAGE_DELAYLOAD_DESCRIPTOR

const IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7

const IMAGE_DIRECTORY_ENTRY_BASERELOC = 5

const IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11

const IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14

const IMAGE_DIRECTORY_ENTRY_DEBUG = 6

const IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13

const IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3

const IMAGE_DIRECTORY_ENTRY_EXPORT = 0

const IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8

const IMAGE_DIRECTORY_ENTRY_IAT = 12

const IMAGE_DIRECTORY_ENTRY_IMPORT = 1

const IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10

const IMAGE_DIRECTORY_ENTRY_RESOURCE = 2

const IMAGE_DIRECTORY_ENTRY_SECURITY = 4

const IMAGE_DIRECTORY_ENTRY_TLS = 9

const IMAGE_DLLCHARACTERISTICS_APPCONTAINER = 4096

const IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = 64

const IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY = 128

const IMAGE_DLLCHARACTERISTICS_GUARD_CF = 16384

const IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA = 32

const IMAGE_DLLCHARACTERISTICS_NO_BIND = 2048

const IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 512

const IMAGE_DLLCHARACTERISTICS_NO_SEH = 1024

const IMAGE_DLLCHARACTERISTICS_NX_COMPAT = 256

const IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 32768

const IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 8192

type IMAGE_DOS_HEADER = TIMAGE_DOS_HEADER

const IMAGE_DOS_SIGNATURE = 23117

const IMAGE_ENHMETAFILE = 3

type IMAGE_EXPORT_DIRECTORY = TIMAGE_EXPORT_DIRECTORY

const IMAGE_FILE_32BIT_MACHINE = 256

const IMAGE_FILE_AGGRESIVE_WS_TRIM = 16

const IMAGE_FILE_BYTES_REVERSED_HI = 32768

const IMAGE_FILE_BYTES_REVERSED_LO = 128

const IMAGE_FILE_DEBUG_STRIPPED = 512

const IMAGE_FILE_DLL = 8192

const IMAGE_FILE_EXECUTABLE_IMAGE = 2

type IMAGE_FILE_HEADER = TIMAGE_FILE_HEADER

const IMAGE_FILE_LARGE_ADDRESS_AWARE = 32

const IMAGE_FILE_LINE_NUMS_STRIPPED = 4

const IMAGE_FILE_LOCAL_SYMS_STRIPPED = 8

const IMAGE_FILE_MACHINE_ALPHA = 388

const IMAGE_FILE_MACHINE_ALPHA64 = 644

const IMAGE_FILE_MACHINE_AM33 = 467

const IMAGE_FILE_MACHINE_AMD64 = 34404

const IMAGE_FILE_MACHINE_ARM = 448

const IMAGE_FILE_MACHINE_ARM64 = 43620

const IMAGE_FILE_MACHINE_ARMNT = 452

const IMAGE_FILE_MACHINE_ARMV7 = 452

const IMAGE_FILE_MACHINE_AXP64 = 644

const IMAGE_FILE_MACHINE_CEE = 49390

const IMAGE_FILE_MACHINE_CEF = 3311

const IMAGE_FILE_MACHINE_EBC = 3772

const IMAGE_FILE_MACHINE_I386 = 332

const IMAGE_FILE_MACHINE_IA64 = 512

const IMAGE_FILE_MACHINE_M32R = 36929

const IMAGE_FILE_MACHINE_MIPS16 = 614

const IMAGE_FILE_MACHINE_MIPSFPU = 870

const IMAGE_FILE_MACHINE_MIPSFPU16 = 1126

const IMAGE_FILE_MACHINE_POWERPC = 496

const IMAGE_FILE_MACHINE_POWERPCFP = 497

const IMAGE_FILE_MACHINE_R10000 = 360

const IMAGE_FILE_MACHINE_R3000 = 354

const IMAGE_FILE_MACHINE_R4000 = 358

const IMAGE_FILE_MACHINE_SH3 = 418

const IMAGE_FILE_MACHINE_SH3DSP = 419

const IMAGE_FILE_MACHINE_SH3E = 420

const IMAGE_FILE_MACHINE_SH4 = 422

const IMAGE_FILE_MACHINE_SH5 = 424

const IMAGE_FILE_MACHINE_THUMB = 450

const IMAGE_FILE_MACHINE_TRICORE = 1312

const IMAGE_FILE_MACHINE_UNKNOWN = 0

const IMAGE_FILE_MACHINE_WCEMIPSV2 = 361

const IMAGE_FILE_NET_RUN_FROM_SWAP = 2048

const IMAGE_FILE_RELOCS_STRIPPED = 1

const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 1024

const IMAGE_FILE_SYSTEM = 4096

const IMAGE_FILE_UP_SYSTEM_ONLY = 16384

type IMAGE_FUNCTION_ENTRY = TIMAGE_FUNCTION_ENTRY

type IMAGE_FUNCTION_ENTRY64 = TIMAGE_FUNCTION_ENTRY64

type IMAGE_IA64_RUNTIME_FUNCTION_ENTRY = TIMAGE_IA64_RUNTIME_FUNCTION_ENTRY

const IMAGE_ICON = 1

type IMAGE_IMPORT_BY_NAME = TIMAGE_IMPORT_BY_NAME

type IMAGE_IMPORT_DESCRIPTOR = TIMAGE_IMPORT_DESCRIPTOR

type IMAGE_LINENUMBER = TIMAGE_LINENUMBER

type IMAGE_LOAD_CONFIG_DIRECTORY = TIMAGE_LOAD_CONFIG_DIRECTORY

type IMAGE_LOAD_CONFIG_DIRECTORY32 = TIMAGE_LOAD_CONFIG_DIRECTORY32

type IMAGE_LOAD_CONFIG_DIRECTORY64 = TIMAGE_LOAD_CONFIG_DIRECTORY64

type IMAGE_NT_HEADERS = TIMAGE_NT_HEADERS

type IMAGE_NT_HEADERS32 = TIMAGE_NT_HEADERS32

type IMAGE_NT_HEADERS64 = TIMAGE_NT_HEADERS64

const IMAGE_NT_OPTIONAL_HDR32_MAGIC = 267

const IMAGE_NT_OPTIONAL_HDR64_MAGIC = 523

const IMAGE_NT_SIGNATURE = 17744

const IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16

type IMAGE_OPTIONAL_HEADER = TIMAGE_OPTIONAL_HEADER

type IMAGE_OPTIONAL_HEADER32 = TIMAGE_OPTIONAL_HEADER32

type IMAGE_OPTIONAL_HEADER64 = TIMAGE_OPTIONAL_HEADER64

const IMAGE_ORDINAL_FLAG32 = 2147483648

const IMAGE_ORDINAL_FLAG64 = 9223372036854775808

type IMAGE_OS2_HEADER = TIMAGE_OS2_HEADER

const IMAGE_OS2_SIGNATURE = 17742

const IMAGE_OS2_SIGNATURE_LE = 17740

type IMAGE_RELOCATION = TIMAGE_RELOCATION

const IMAGE_REL_ALPHA_ABSOLUTE = 0

const IMAGE_REL_ALPHA_BRADDR = 7

const IMAGE_REL_ALPHA_GPDISP = 6

const IMAGE_REL_ALPHA_GPREL32 = 3

const IMAGE_REL_ALPHA_GPRELHI = 23

const IMAGE_REL_ALPHA_GPRELLO = 22

const IMAGE_REL_ALPHA_HINT = 8

const IMAGE_REL_ALPHA_INLINE_REFLONG = 9

const IMAGE_REL_ALPHA_LITERAL = 4

const IMAGE_REL_ALPHA_LITUSE = 5

const IMAGE_REL_ALPHA_MATCH = 13

const IMAGE_REL_ALPHA_PAIR = 12

const IMAGE_REL_ALPHA_REFHI = 10

const IMAGE_REL_ALPHA_REFLO = 11

const IMAGE_REL_ALPHA_REFLONG = 1

const IMAGE_REL_ALPHA_REFLONGNB = 16

const IMAGE_REL_ALPHA_REFQ1 = 21

const IMAGE_REL_ALPHA_REFQ2 = 20

const IMAGE_REL_ALPHA_REFQ3 = 19

const IMAGE_REL_ALPHA_REFQUAD = 2

const IMAGE_REL_ALPHA_SECREL = 15

const IMAGE_REL_ALPHA_SECRELHI = 18

const IMAGE_REL_ALPHA_SECRELLO = 17

const IMAGE_REL_ALPHA_SECTION = 14

const IMAGE_REL_AMD64_ABSOLUTE = 0

const IMAGE_REL_AMD64_ADDR32 = 2

const IMAGE_REL_AMD64_ADDR32NB = 3

const IMAGE_REL_AMD64_ADDR64 = 1

const IMAGE_REL_AMD64_PAIR = 15

const IMAGE_REL_AMD64_REL32 = 4

const IMAGE_REL_AMD64_REL32_1 = 5

const IMAGE_REL_AMD64_REL32_2 = 6

const IMAGE_REL_AMD64_REL32_3 = 7

const IMAGE_REL_AMD64_REL32_4 = 8

const IMAGE_REL_AMD64_REL32_5 = 9

const IMAGE_REL_AMD64_SECREL = 11

const IMAGE_REL_AMD64_SECREL7 = 12

const IMAGE_REL_AMD64_SECTION = 10

const IMAGE_REL_AMD64_SREL32 = 14

const IMAGE_REL_AMD64_SSPAN32 = 16

const IMAGE_REL_AMD64_TOKEN = 13

const IMAGE_REL_AM_ABSOLUTE = 0

const IMAGE_REL_AM_ADDR32 = 1

const IMAGE_REL_AM_ADDR32NB = 2

const IMAGE_REL_AM_CALL32 = 3

const IMAGE_REL_AM_FUNCINFO = 4

const IMAGE_REL_AM_REL32_1 = 5

const IMAGE_REL_AM_REL32_2 = 6

const IMAGE_REL_AM_SECREL = 7

const IMAGE_REL_AM_SECTION = 8

const IMAGE_REL_AM_TOKEN = 9

const IMAGE_REL_ARM_ABSOLUTE = 0

const IMAGE_REL_ARM_ADDR32 = 1

const IMAGE_REL_ARM_ADDR32NB = 2

const IMAGE_REL_ARM_BLX11 = 9

const IMAGE_REL_ARM_BLX23T = 21

const IMAGE_REL_ARM_BLX24 = 8

const IMAGE_REL_ARM_BRANCH11 = 4

const IMAGE_REL_ARM_BRANCH20T = 18

const IMAGE_REL_ARM_BRANCH24 = 3

const IMAGE_REL_ARM_BRANCH24T = 20

const IMAGE_REL_ARM_GPREL12 = 6

const IMAGE_REL_ARM_GPREL7 = 7

const IMAGE_REL_ARM_MOV32 = 16

const IMAGE_REL_ARM_MOV32A = 16

const IMAGE_REL_ARM_MOV32T = 17

const IMAGE_REL_ARM_SECREL = 15

const IMAGE_REL_ARM_SECTION = 14

const IMAGE_REL_ARM_TOKEN = 5

const IMAGE_REL_BASED_ABSOLUTE = 0

const IMAGE_REL_BASED_ARM_MOV32 = 5

const IMAGE_REL_BASED_DIR64 = 10

const IMAGE_REL_BASED_HIGH = 1

const IMAGE_REL_BASED_HIGHADJ = 4

const IMAGE_REL_BASED_HIGHLOW = 3

const IMAGE_REL_BASED_IA64_IMM64 = 9

const IMAGE_REL_BASED_LOW = 2

const IMAGE_REL_BASED_MIPS_JMPADDR = 5

const IMAGE_REL_BASED_MIPS_JMPADDR16 = 9

const IMAGE_REL_BASED_THUMB_MOV32 = 7

const IMAGE_REL_CEE_ABSOLUTE = 0

const IMAGE_REL_CEE_ADDR32 = 1

const IMAGE_REL_CEE_ADDR32NB = 3

const IMAGE_REL_CEE_ADDR64 = 2

const IMAGE_REL_CEE_SECREL = 5

const IMAGE_REL_CEE_SECTION = 4

const IMAGE_REL_CEE_TOKEN = 6

const IMAGE_REL_CEF_ABSOLUTE = 0

const IMAGE_REL_CEF_ADDR32 = 1

const IMAGE_REL_CEF_ADDR32NB = 3

const IMAGE_REL_CEF_ADDR64 = 2

const IMAGE_REL_CEF_SECREL = 5

const IMAGE_REL_CEF_SECTION = 4

const IMAGE_REL_CEF_TOKEN = 6

const IMAGE_REL_EBC_ABSOLUTE = 0

const IMAGE_REL_EBC_ADDR32NB = 1

const IMAGE_REL_EBC_REL32 = 2

const IMAGE_REL_EBC_SECREL = 4

const IMAGE_REL_EBC_SECTION = 3

const IMAGE_REL_I386_ABSOLUTE = 0

const IMAGE_REL_I386_DIR16 = 1

const IMAGE_REL_I386_DIR32 = 6

const IMAGE_REL_I386_DIR32NB = 7

const IMAGE_REL_I386_REL16 = 2

const IMAGE_REL_I386_REL32 = 20

const IMAGE_REL_I386_SECREL = 11

const IMAGE_REL_I386_SECREL7 = 13

const IMAGE_REL_I386_SECTION = 10

const IMAGE_REL_I386_SEG12 = 9

const IMAGE_REL_I386_TOKEN = 12

const IMAGE_REL_IA64_ABSOLUTE = 0

const IMAGE_REL_IA64_ADDEND = 31

const IMAGE_REL_IA64_DIR32 = 4

const IMAGE_REL_IA64_DIR32NB = 16

const IMAGE_REL_IA64_DIR64 = 5

const IMAGE_REL_IA64_GPREL22 = 9

const IMAGE_REL_IA64_GPREL32 = 28

const IMAGE_REL_IA64_IMM14 = 1

const IMAGE_REL_IA64_IMM22 = 2

const IMAGE_REL_IA64_IMM64 = 3

const IMAGE_REL_IA64_IMMGPREL64 = 26

const IMAGE_REL_IA64_LTOFF22 = 10

const IMAGE_REL_IA64_PCREL21B = 6

const IMAGE_REL_IA64_PCREL21F = 8

const IMAGE_REL_IA64_PCREL21M = 7

const IMAGE_REL_IA64_PCREL60B = 22

const IMAGE_REL_IA64_PCREL60F = 23

const IMAGE_REL_IA64_PCREL60I = 24

const IMAGE_REL_IA64_PCREL60M = 25

const IMAGE_REL_IA64_PCREL60X = 21

const IMAGE_REL_IA64_SECREL22 = 12

const IMAGE_REL_IA64_SECREL32 = 14

const IMAGE_REL_IA64_SECREL64I = 13

const IMAGE_REL_IA64_SECTION = 11

const IMAGE_REL_IA64_SREL14 = 17

const IMAGE_REL_IA64_SREL22 = 18

const IMAGE_REL_IA64_SREL32 = 19

const IMAGE_REL_IA64_TOKEN = 27

const IMAGE_REL_IA64_UREL32 = 20

const IMAGE_REL_M32R_ABSOLUTE = 0

const IMAGE_REL_M32R_ADDR24 = 3

const IMAGE_REL_M32R_ADDR32 = 1

const IMAGE_REL_M32R_ADDR32NB = 2

const IMAGE_REL_M32R_GPREL16 = 4

const IMAGE_REL_M32R_PAIR = 11

const IMAGE_REL_M32R_PCREL16 = 6

const IMAGE_REL_M32R_PCREL24 = 5

const IMAGE_REL_M32R_PCREL8 = 7

const IMAGE_REL_M32R_REFHALF = 8

const IMAGE_REL_M32R_REFHI = 9

const IMAGE_REL_M32R_REFLO = 10

const IMAGE_REL_M32R_SECREL32 = 13

const IMAGE_REL_M32R_SECTION = 12

const IMAGE_REL_M32R_TOKEN = 14

const IMAGE_REL_MIPS_ABSOLUTE = 0

const IMAGE_REL_MIPS_GPREL = 6

const IMAGE_REL_MIPS_JMPADDR = 3

const IMAGE_REL_MIPS_JMPADDR16 = 16

const IMAGE_REL_MIPS_LITERAL = 7

const IMAGE_REL_MIPS_PAIR = 37

const IMAGE_REL_MIPS_REFHALF = 1

const IMAGE_REL_MIPS_REFHI = 4

const IMAGE_REL_MIPS_REFLO = 5

const IMAGE_REL_MIPS_REFWORD = 2

const IMAGE_REL_MIPS_REFWORDNB = 34

const IMAGE_REL_MIPS_SECREL = 11

const IMAGE_REL_MIPS_SECRELHI = 13

const IMAGE_REL_MIPS_SECRELLO = 12

const IMAGE_REL_MIPS_SECTION = 10

const IMAGE_REL_MIPS_TOKEN = 14

const IMAGE_REL_PPC_ABSOLUTE = 0

const IMAGE_REL_PPC_ADDR14 = 5

const IMAGE_REL_PPC_ADDR16 = 4

const IMAGE_REL_PPC_ADDR24 = 3

const IMAGE_REL_PPC_ADDR32 = 2

const IMAGE_REL_PPC_ADDR32NB = 10

const IMAGE_REL_PPC_ADDR64 = 1

const IMAGE_REL_PPC_BRNTAKEN = 1024

const IMAGE_REL_PPC_BRTAKEN = 512

const IMAGE_REL_PPC_GPREL = 21

const IMAGE_REL_PPC_IFGLUE = 13

const IMAGE_REL_PPC_IMGLUE = 14

const IMAGE_REL_PPC_NEG = 256

const IMAGE_REL_PPC_PAIR = 18

const IMAGE_REL_PPC_REFHI = 16

const IMAGE_REL_PPC_REFLO = 17

const IMAGE_REL_PPC_REL14 = 7

const IMAGE_REL_PPC_REL24 = 6

const IMAGE_REL_PPC_SECREL = 11

const IMAGE_REL_PPC_SECREL16 = 15

const IMAGE_REL_PPC_SECRELHI = 20

const IMAGE_REL_PPC_SECRELLO = 19

const IMAGE_REL_PPC_SECTION = 12

const IMAGE_REL_PPC_TOCDEFN = 2048

const IMAGE_REL_PPC_TOCREL14 = 9

const IMAGE_REL_PPC_TOCREL16 = 8

const IMAGE_REL_PPC_TOKEN = 22

const IMAGE_REL_PPC_TYPEMASK = 255

const IMAGE_REL_SH3_ABSOLUTE = 0

const IMAGE_REL_SH3_DIRECT16 = 1

const IMAGE_REL_SH3_DIRECT32 = 2

const IMAGE_REL_SH3_DIRECT32_NB = 16

const IMAGE_REL_SH3_DIRECT4 = 6

const IMAGE_REL_SH3_DIRECT4_LONG = 8

const IMAGE_REL_SH3_DIRECT4_WORD = 7

const IMAGE_REL_SH3_DIRECT8 = 3

const IMAGE_REL_SH3_DIRECT8_LONG = 5

const IMAGE_REL_SH3_DIRECT8_WORD = 4

const IMAGE_REL_SH3_GPREL4_LONG = 17

const IMAGE_REL_SH3_PCREL12_WORD = 11

const IMAGE_REL_SH3_PCREL8_LONG = 10

const IMAGE_REL_SH3_PCREL8_WORD = 9

const IMAGE_REL_SH3_SECREL = 15

const IMAGE_REL_SH3_SECTION = 14

const IMAGE_REL_SH3_SIZEOF_SECTION = 13

const IMAGE_REL_SH3_STARTOF_SECTION = 12

const IMAGE_REL_SH3_TOKEN = 18

const IMAGE_REL_SHM_PAIR = 24

const IMAGE_REL_SHM_PCRELPT = 19

const IMAGE_REL_SHM_REFHALF = 21

const IMAGE_REL_SHM_REFLO = 20

const IMAGE_REL_SHM_RELHALF = 23

const IMAGE_REL_SHM_RELLO = 22

const IMAGE_REL_SH_NOMODE = 32768

const IMAGE_REL_THUMB_BLX23 = 21

const IMAGE_REL_THUMB_BRANCH20 = 18

const IMAGE_REL_THUMB_BRANCH24 = 20

const IMAGE_REL_THUMB_MOV32 = 17

type IMAGE_RESOURCE_DATA_ENTRY = TIMAGE_RESOURCE_DATA_ENTRY

const IMAGE_RESOURCE_DATA_IS_DIRECTORY = 2147483648

type IMAGE_RESOURCE_DIRECTORY = TIMAGE_RESOURCE_DIRECTORY

type IMAGE_RESOURCE_DIRECTORY_ENTRY = TIMAGE_RESOURCE_DIRECTORY_ENTRY

type IMAGE_RESOURCE_DIRECTORY_STRING = TIMAGE_RESOURCE_DIRECTORY_STRING

type IMAGE_RESOURCE_DIR_STRING_U = TIMAGE_RESOURCE_DIR_STRING_U

const IMAGE_RESOURCE_NAME_IS_STRING = 2147483648

type IMAGE_ROM_HEADERS = TIMAGE_ROM_HEADERS

const IMAGE_ROM_OPTIONAL_HDR_MAGIC = 263

type IMAGE_ROM_OPTIONAL_HEADER = TIMAGE_ROM_OPTIONAL_HEADER

type IMAGE_RUNTIME_FUNCTION_ENTRY = TIMAGE_RUNTIME_FUNCTION_ENTRY

const IMAGE_SCN_ALIGN_1024BYTES = 11534336

const IMAGE_SCN_ALIGN_128BYTES = 8388608

const IMAGE_SCN_ALIGN_16BYTES = 5242880

const IMAGE_SCN_ALIGN_1BYTES = 1048576

const IMAGE_SCN_ALIGN_2048BYTES = 12582912

const IMAGE_SCN_ALIGN_256BYTES = 9437184

const IMAGE_SCN_ALIGN_2BYTES = 2097152

const IMAGE_SCN_ALIGN_32BYTES = 6291456

const IMAGE_SCN_ALIGN_4096BYTES = 13631488

const IMAGE_SCN_ALIGN_4BYTES = 3145728

const IMAGE_SCN_ALIGN_512BYTES = 10485760

const IMAGE_SCN_ALIGN_64BYTES = 7340032

const IMAGE_SCN_ALIGN_8192BYTES = 14680064

const IMAGE_SCN_ALIGN_8BYTES = 4194304

const IMAGE_SCN_ALIGN_MASK = 15728640

const IMAGE_SCN_CNT_CODE = 32

const IMAGE_SCN_CNT_INITIALIZED_DATA = 64

const IMAGE_SCN_CNT_UNINITIALIZED_DATA = 128

const IMAGE_SCN_GPREL = 32768

const IMAGE_SCN_LNK_COMDAT = 4096

const IMAGE_SCN_LNK_INFO = 512

const IMAGE_SCN_LNK_NRELOC_OVFL = 16777216

const IMAGE_SCN_LNK_OTHER = 256

const IMAGE_SCN_LNK_REMOVE = 2048

const IMAGE_SCN_MEM_16BIT = 131072

const IMAGE_SCN_MEM_DISCARDABLE = 33554432

const IMAGE_SCN_MEM_EXECUTE = 536870912

const IMAGE_SCN_MEM_FARDATA = 32768

const IMAGE_SCN_MEM_LOCKED = 262144

const IMAGE_SCN_MEM_NOT_CACHED = 67108864

const IMAGE_SCN_MEM_NOT_PAGED = 134217728

const IMAGE_SCN_MEM_PRELOAD = 524288

const IMAGE_SCN_MEM_PURGEABLE = 131072

const IMAGE_SCN_MEM_READ = 1073741824

const IMAGE_SCN_MEM_SHARED = 268435456

const IMAGE_SCN_MEM_WRITE = 2147483648

const IMAGE_SCN_NO_DEFER_SPEC_EXC = 16384

const IMAGE_SCN_SCALE_INDEX = 1

const IMAGE_SCN_TYPE_NO_PAD = 8

type IMAGE_SECTION_HEADER = TIMAGE_SECTION_HEADER

const IMAGE_SEPARATE_DEBUG_FLAGS_MASK = 32768

type IMAGE_SEPARATE_DEBUG_HEADER = TIMAGE_SEPARATE_DEBUG_HEADER

const IMAGE_SEPARATE_DEBUG_MISMATCH = 32768

const IMAGE_SEPARATE_DEBUG_SIGNATURE = 18756

const IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60

const IMAGE_SIZEOF_AUX_SYMBOL = 18

const IMAGE_SIZEOF_BASE_RELOCATION = 8

const IMAGE_SIZEOF_FILE_HEADER = 20

const IMAGE_SIZEOF_LINENUMBER = 6

const IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224

const IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240

const IMAGE_SIZEOF_RELOCATION = 10

const IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56

const IMAGE_SIZEOF_SECTION_HEADER = 40

const IMAGE_SIZEOF_SHORT_NAME = 8

const IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28

const IMAGE_SIZEOF_SYMBOL = 18

const IMAGE_SUBSYSTEM_EFI_APPLICATION = 10

const IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11

const IMAGE_SUBSYSTEM_EFI_ROM = 13

const IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12

const IMAGE_SUBSYSTEM_NATIVE = 1

const IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8

const IMAGE_SUBSYSTEM_OS2_CUI = 5

const IMAGE_SUBSYSTEM_POSIX_CUI = 7

const IMAGE_SUBSYSTEM_UNKNOWN = 0

const IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16

const IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9

const IMAGE_SUBSYSTEM_WINDOWS_CUI = 3

const IMAGE_SUBSYSTEM_WINDOWS_GUI = 2

const IMAGE_SUBSYSTEM_XBOX = 14

type IMAGE_SYMBOL = TIMAGE_SYMBOL

type IMAGE_SYMBOL_EX = TIMAGE_SYMBOL_EX

const IMAGE_SYM_ABSOLUTE = -1

const IMAGE_SYM_CLASS_ARGUMENT = 9

const IMAGE_SYM_CLASS_AUTOMATIC = 1

const IMAGE_SYM_CLASS_BIT_FIELD = 18

const IMAGE_SYM_CLASS_BLOCK = 100

const IMAGE_SYM_CLASS_CLR_TOKEN = 107

const IMAGE_SYM_CLASS_END_OF_FUNCTION = -1

const IMAGE_SYM_CLASS_END_OF_STRUCT = 102

const IMAGE_SYM_CLASS_ENUM_TAG = 15

const IMAGE_SYM_CLASS_EXTERNAL = 2

const IMAGE_SYM_CLASS_EXTERNAL_DEF = 5

const IMAGE_SYM_CLASS_FAR_EXTERNAL = 68

const IMAGE_SYM_CLASS_FILE = 103

const IMAGE_SYM_CLASS_FUNCTION = 101

const IMAGE_SYM_CLASS_LABEL = 6

const IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 16

const IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 8

const IMAGE_SYM_CLASS_MEMBER_OF_UNION = 11

const IMAGE_SYM_CLASS_NULL = 0

const IMAGE_SYM_CLASS_REGISTER = 4

const IMAGE_SYM_CLASS_REGISTER_PARAM = 17

const IMAGE_SYM_CLASS_SECTION = 104

const IMAGE_SYM_CLASS_STATIC = 3

const IMAGE_SYM_CLASS_STRUCT_TAG = 10

const IMAGE_SYM_CLASS_TYPE_DEFINITION = 13

const IMAGE_SYM_CLASS_UNDEFINED_LABEL = 7

const IMAGE_SYM_CLASS_UNDEFINED_STATIC = 14

const IMAGE_SYM_CLASS_UNION_TAG = 12

const IMAGE_SYM_CLASS_WEAK_EXTERNAL = 105

const IMAGE_SYM_DEBUG = -2

const IMAGE_SYM_DTYPE_ARRAY = 3

const IMAGE_SYM_DTYPE_FUNCTION = 2

const IMAGE_SYM_DTYPE_NULL = 0

const IMAGE_SYM_DTYPE_POINTER = 1

const IMAGE_SYM_SECTION_MAX = 65279

const IMAGE_SYM_SECTION_MAX_EX = 2147483647

const IMAGE_SYM_TYPE_BYTE = 12

const IMAGE_SYM_TYPE_CHAR = 2

const IMAGE_SYM_TYPE_DOUBLE = 7

const IMAGE_SYM_TYPE_DWORD = 15

const IMAGE_SYM_TYPE_ENUM = 10

const IMAGE_SYM_TYPE_FLOAT = 6

const IMAGE_SYM_TYPE_INT = 4

const IMAGE_SYM_TYPE_LONG = 5

const IMAGE_SYM_TYPE_MOE = 11

const IMAGE_SYM_TYPE_NULL = 0

const IMAGE_SYM_TYPE_PCODE = 32768

const IMAGE_SYM_TYPE_SHORT = 3

const IMAGE_SYM_TYPE_STRUCT = 8

const IMAGE_SYM_TYPE_UINT = 14

const IMAGE_SYM_TYPE_UNION = 9

const IMAGE_SYM_TYPE_VOID = 1

const IMAGE_SYM_TYPE_WORD = 13

type IMAGE_THUNK_DATA = TIMAGE_THUNK_DATA

type IMAGE_THUNK_DATA32 = TIMAGE_THUNK_DATA32

type IMAGE_THUNK_DATA64 = TIMAGE_THUNK_DATA64

type IMAGE_TLS_DIRECTORY = TIMAGE_TLS_DIRECTORY

type IMAGE_TLS_DIRECTORY32 = TIMAGE_TLS_DIRECTORY32

type IMAGE_TLS_DIRECTORY64 = TIMAGE_TLS_DIRECTORY64

type IMAGE_VXD_HEADER = TIMAGE_VXD_HEADER

const IMAGE_VXD_SIGNATURE = 17740

const IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3

const IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2

const IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1

type IMCENUMPROC = TIMCENUMPROC

const IMC_CLOSESTATUSWINDOW = 33

const IMC_GETCANDIDATEPOS = 7

const IMC_GETCOMPOSITIONFONT = 9

const IMC_GETCOMPOSITIONWINDOW = 11

const IMC_GETSTATUSWINDOWPOS = 15

const IMC_OPENSTATUSWINDOW = 34

const IMC_SETCANDIDATEPOS = 8

const IMC_SETCOMPOSITIONFONT = 10

const IMC_SETCOMPOSITIONWINDOW = 12

const IMC_SETSTATUSWINDOWPOS = 16

type IMECHARPOSITION = TIMECHARPOSITION

type IMEMENUITEMINFO = TIMEMENUITEMINFO

type IMEMENUITEMINFOA = TIMEMENUITEMINFOA

type IMEMENUITEMINFOW = TIMEMENUITEMINFOW

const IMEMENUITEM_STRING_SIZE = 80

const IMEVER_0310 = 196618

const IMEVER_0400 = 262144

const IME_CAND_CODE = 2

const IME_CAND_MEANING = 3

const IME_CAND_RADICAL = 4

const IME_CAND_READ = 1

const IME_CAND_STROKE = 5

const IME_CAND_UNKNOWN = 0

const IME_CHOTKEY_IME_NONIME_TOGGLE = 16

const IME_CHOTKEY_SHAPE_TOGGLE = 17

const IME_CHOTKEY_SYMBOL_TOGGLE = 18

const IME_CMODE_ALPHANUMERIC = 0

const IME_CMODE_CHARCODE = 32

const IME_CMODE_CHINESE = 1

const IME_CMODE_EUDC = 512

const IME_CMODE_FIXED = 2048

const IME_CMODE_FULLSHAPE = 8

const IME_CMODE_HANGEUL = 1

const IME_CMODE_HANGUL = 1

const IME_CMODE_HANJACONVERT = 64

const IME_CMODE_JAPANESE = 1

const IME_CMODE_KATAKANA = 2

const IME_CMODE_LANGUAGE = 3

const IME_CMODE_NATIVE = 1

const IME_CMODE_NOCONVERSION = 256

const IME_CMODE_RESERVED = 4026531840

const IME_CMODE_ROMAN = 16

const IME_CMODE_SOFTKBD = 128

const IME_CMODE_SYMBOL = 1024

const IME_CONFIG_GENERAL = 1

const IME_CONFIG_REGISTERWORD = 2

const IME_CONFIG_SELECTDICTIONARY = 3

const IME_ESC_AUTOMATA = 4105

const IME_ESC_GETHELPFILENAME = 4107

const IME_ESC_GET_EUDC_DICTIONARY = 4099

const IME_ESC_HANJA_MODE = 4104

const IME_ESC_IME_NAME = 4102

const IME_ESC_MAX_KEY = 4101

const IME_ESC_PRIVATE_FIRST = 2048

const IME_ESC_PRIVATE_HOTKEY = 4106

const IME_ESC_PRIVATE_LAST = 4095

const IME_ESC_QUERY_SUPPORT = 3

const IME_ESC_RESERVED_FIRST = 4

const IME_ESC_RESERVED_LAST = 2047

const IME_ESC_SEQUENCE_TO_INTERNAL = 4097

const IME_ESC_SET_EUDC_DICTIONARY = 4100

const IME_ESC_SYNC_HOTKEY = 4103

const IME_HOTKEY_DSWITCH_FIRST = 256

const IME_HOTKEY_DSWITCH_LAST = 287

const IME_HOTKEY_PRIVATE_FIRST = 512

const IME_HOTKEY_PRIVATE_LAST = 543

const IME_ITHOTKEY_PREVIOUS_COMPOSITION = 513

const IME_ITHOTKEY_RECONVERTSTRING = 515

const IME_ITHOTKEY_RESEND_RESULTSTR = 512

const IME_ITHOTKEY_UISTYLE_TOGGLE = 514

const IME_JHOTKEY_CLOSE_OPEN = 48

const IME_KHOTKEY_ENGLISH = 82

const IME_KHOTKEY_HANJACONVERT = 81

const IME_KHOTKEY_SHAPE_TOGGLE = 80

const IME_PROP_AT_CARET = 65536

const IME_PROP_CANDLIST_START_FROM_1 = 262144

const IME_PROP_COMPLETE_ON_UNSELECT = 1048576

const IME_PROP_SPECIAL_UI = 131072

const IME_PROP_UNICODE = 524288

const IME_REGWORD_STYLE_EUDC = 1

const IME_REGWORD_STYLE_USER_FIRST = 2147483648

const IME_REGWORD_STYLE_USER_LAST = 4294967295

const IME_SMODE_AUTOMATIC = 4

const IME_SMODE_CONVERSATION = 16

const IME_SMODE_NONE = 0

const IME_SMODE_PHRASEPREDICT = 8

const IME_SMODE_PLAURALCLAUSE = 1

const IME_SMODE_RESERVED = 61440

const IME_SMODE_SINGLECONVERT = 2

const IME_THOTKEY_IME_NONIME_TOGGLE = 112

const IME_THOTKEY_SHAPE_TOGGLE = 113

const IME_THOTKEY_SYMBOL_TOGGLE = 114

const IMFS_CHECKED = 8

const IMFS_DEFAULT = 4096

const IMFS_DISABLED = 3

const IMFS_ENABLED = 0

const IMFS_GRAYED = 3

const IMFS_HILITE = 128

const IMFS_UNCHECKED = 0

const IMFS_UNHILITE = 0

const IMFT_RADIOCHECK = 1

const IMFT_SEPARATOR = 2

const IMFT_SUBMENU = 4

const IMM_ERROR_GENERAL = -2

const IMM_ERROR_NODATA = -1

const IMN_CHANGECANDIDATE = 3

const IMN_CLOSECANDIDATE = 4

const IMN_CLOSESTATUSWINDOW = 1

const IMN_GUIDELINE = 13

const IMN_OPENCANDIDATE = 5

const IMN_OPENSTATUSWINDOW = 2

const IMN_PRIVATE = 14

const IMN_SETCANDIDATEPOS = 9

const IMN_SETCOMPOSITIONFONT = 10

const IMN_SETCOMPOSITIONWINDOW = 11

const IMN_SETCONVERSIONMODE = 6

const IMN_SETOPENSTATUS = 8

const IMN_SETSENTENCEMODE = 7

const IMN_SETSTATUSWINDOWPOS = 12

const IMPLINK_HIGHEXPER = 158

const IMPLINK_IP = 155

const IMPLINK_LOWEXPER = 156

const IMPLTYPEFLAG_FDEFAULT = 1

const IMPLTYPEFLAG_FDEFAULTVTABLE = 8

const IMPLTYPEFLAG_FRESTRICTED = 4

const IMPLTYPEFLAG_FSOURCE = 2

const IMPORT_OBJECT_HDR_SIG2 = 65535

type IMPORT_OBJECT_HEADER = TIMPORT_OBJECT_HEADER

type IMPORT_OBJECT_NAME_TYPE = TIMPORT_OBJECT_NAME_TYPE

type IMPORT_OBJECT_TYPE = TIMPORT_OBJECT_TYPE

const IMR_CANDIDATEWINDOW = 2

const IMR_COMPOSITIONFONT = 3

const IMR_COMPOSITIONWINDOW = 1

const IMR_CONFIRMRECONVERTSTRING = 5

const IMR_DOCUMENTFEED = 7

const IMR_QUERYCHARPOSITION = 6

const IMR_RECONVERTSTRING = 4

type IMalloc = TIMalloc

type IMallocSpy = TIMallocSpy

type IMallocSpyVtbl = TIMallocSpyVtbl

type IMallocVtbl = TIMallocVtbl

type IMarshal = TIMarshal

type IMarshal2 = TIMarshal2

type IMarshal2Vtbl = TIMarshal2Vtbl

type IMarshalVtbl = TIMarshalVtbl

type IMarshalingStream = TIMarshalingStream

type IMarshalingStreamVtbl = TIMarshalingStreamVtbl

type IMessageFilter = TIMessageFilter

type IMessageFilterVtbl = TIMessageFilterVtbl

type IMoniker = TIMoniker

type IMonikerProp = TIMonikerProp

type IMonikerPropVtbl = TIMonikerPropVtbl

type IMonikerVtbl = TIMonikerVtbl

type IMultiQI = TIMultiQI

type IMultiQIVtbl = TIMultiQIVtbl

const INADDR_LOOPBACK = 2130706433

const INADDR_NONE = 4294967295

const INDEXID_CONTAINER = 0

const INDEXID_OBJECT = 0

const INET_E_DEFAULT_ACTION = "INET_E_USE_DEFAULT_PROTOCOLHANDLER"

const INET_E_ERROR_LAST = "INET_E_BLOCKED_PLUGGABLE_PROTOCOL"

const INFINITE = 4294967295

const INHERITED_ACE = 16

const INHERIT_CALLER_PRIORITY = 131072

const INHERIT_ONLY_ACE = 8

const INHERIT_PARENT_AFFINITY = 65536

type INIT_ONCE = TINIT_ONCE

const INIT_ONCE_ASYNC = 2

const INIT_ONCE_CHECK_ONLY = 1

const INIT_ONCE_CTX_RESERVED_BITS = 2

const INIT_ONCE_INIT_FAILED = 4

const INIT_ONCE_STATIC_INIT = "RTL_RUN_ONCE_INIT"

const INPLACE_E_FIRST = 2147746208

const INPLACE_E_LAST = 2147746223

const INPLACE_S_FIRST = 262560

const INPLACE_S_LAST = 262575

type INPUT = TINPUT

const INPUTLANGCHANGE_BACKWARD = 4

const INPUTLANGCHANGE_FORWARD = 2

const INPUTLANGCHANGE_SYSCHARSET = 1

const INPUT_HARDWARE = 2

type INPUT_INJECTION_VALUE = TINPUT_INJECTION_VALUE

const INPUT_KEYBOARD = 1

type INPUT_MESSAGE_DEVICE_TYPE = TINPUT_MESSAGE_DEVICE_TYPE

type INPUT_MESSAGE_ORIGIN_ID = TINPUT_MESSAGE_ORIGIN_ID

type INPUT_MESSAGE_SOURCE = TINPUT_MESSAGE_SOURCE

const INPUT_MOUSE = 0

type INPUT_RECORD = TINPUT_RECORD

type INPUT_TRANSFORM = TINPUT_TRANSFORM

type INT = TINT

type INT16 = TINT16

type INT32 = TINT32

type INT64 = TINT64

type INT8 = TINT8

type INTERFACEDATA = TINTERFACEDATA

type INTERFACEINFO = TINTERFACEINFO

const INTERNATIONAL_USAGE = 1

type INTERNETFEATURELIST = TINTERNETFEATURELIST

type INT_PTR = TINT_PTR

const INVALID_FILE_ATTRIBUTES = -1

const INVALID_OS_COUNT = 65535

const INVALID_P_ROOT_SECURITY_ID = -1

const INVALID_SET_FILE_POINTER = -1

type INVOKEKIND = TINVOKEKIND

type IN_ADDR = TIN_ADDR

const IN_CLASSA_HOST = 16777215

const IN_CLASSA_MAX = 128

const IN_CLASSA_NET = 4278190080

const IN_CLASSA_NSHIFT = 24

const IN_CLASSB_HOST = 65535

const IN_CLASSB_MAX = 65536

const IN_CLASSB_NET = 4294901760

const IN_CLASSB_NSHIFT = 16

const IN_CLASSC_HOST = 255

const IN_CLASSC_NET = 4294967040

const IN_CLASSC_NSHIFT = 8

type INoMarshal = TINoMarshal

type INoMarshalVtbl = TINoMarshalVtbl

const IOCPARM_MASK = 127

const IOCTL_CHANGER_BASE = 48

const IOCTL_CHANGER_EXCHANGE_MEDIUM = 3162144

const IOCTL_CHANGER_GET_ELEMENT_STATUS = 3194900

const IOCTL_CHANGER_GET_PARAMETERS = 3162112

const IOCTL_CHANGER_GET_PRODUCT_DATA = 3162120

const IOCTL_CHANGER_GET_STATUS = 3162116

const IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS = 3162136

const IOCTL_CHANGER_MOVE_MEDIUM = 3162148

const IOCTL_CHANGER_QUERY_VOLUME_TAGS = 3194924

const IOCTL_CHANGER_REINITIALIZE_TRANSPORT = 3162152

const IOCTL_CHANGER_SET_ACCESS = 3194896

const IOCTL_CHANGER_SET_POSITION = 3162140

const IOCTL_DISK_BASE = 7

const IOCTL_DISK_CHECK_VERIFY = 477184

const IOCTL_DISK_CONTROLLER_NUMBER = 458820

const IOCTL_DISK_CREATE_DISK = 507992

const IOCTL_DISK_DELETE_DRIVE_LAYOUT = 508160

const IOCTL_DISK_EJECT_MEDIA = 477192

const IOCTL_DISK_FIND_NEW_DEVICES = 477208

const IOCTL_DISK_FORMAT_DRIVE = 508876

const IOCTL_DISK_FORMAT_TRACKS = 507928

const IOCTL_DISK_FORMAT_TRACKS_EX = 507948

const IOCTL_DISK_GET_CACHE_INFORMATION = 475348

const IOCTL_DISK_GET_DRIVE_GEOMETRY = 458752

const IOCTL_DISK_GET_DRIVE_GEOMETRY_EX = 458912

const IOCTL_DISK_GET_DRIVE_LAYOUT = 475148

const IOCTL_DISK_GET_DRIVE_LAYOUT_EX = 458832

const IOCTL_DISK_GET_LENGTH_INFO = 475228

const IOCTL_DISK_GET_MEDIA_TYPES = 461824

const IOCTL_DISK_GET_PARTITION_INFO = 475140

const IOCTL_DISK_GET_PARTITION_INFO_EX = 458824

const IOCTL_DISK_GROW_PARTITION = 508112

const IOCTL_DISK_HISTOGRAM_DATA = 458804

const IOCTL_DISK_HISTOGRAM_RESET = 458808

const IOCTL_DISK_HISTOGRAM_STRUCTURE = 458800

const IOCTL_DISK_IS_WRITABLE = 458788

const IOCTL_DISK_LOAD_MEDIA = 477196

const IOCTL_DISK_LOGGING = 458792

const IOCTL_DISK_MEDIA_REMOVAL = 477188

const IOCTL_DISK_PERFORMANCE = 458784

const IOCTL_DISK_PERFORMANCE_OFF = 458848

const IOCTL_DISK_REASSIGN_BLOCKS = 507932

const IOCTL_DISK_REASSIGN_BLOCKS_EX = 508068

const IOCTL_DISK_RELEASE = 477204

const IOCTL_DISK_REQUEST_DATA = 458816

const IOCTL_DISK_REQUEST_STRUCTURE = 458812

const IOCTL_DISK_RESERVE = 477200

const IOCTL_DISK_RESET_SNAPSHOT_INFO = 508432

const IOCTL_DISK_SENSE_DEVICE = 459744

const IOCTL_DISK_SET_CACHE_INFORMATION = 508120

const IOCTL_DISK_SET_DRIVE_LAYOUT = 507920

const IOCTL_DISK_SET_DRIVE_LAYOUT_EX = 507988

const IOCTL_DISK_SET_PARTITION_INFO = 507912

const IOCTL_DISK_SET_PARTITION_INFO_EX = 507980

const IOCTL_DISK_UPDATE_DRIVE_SIZE = 508104

const IOCTL_DISK_UPDATE_PROPERTIES = 459072

const IOCTL_DISK_VERIFY = 458772

const IOCTL_SERENUM_EXPOSE_HARDWARE = 3604992

const IOCTL_SERENUM_GET_PORT_NAME = 3605004

const IOCTL_SERENUM_PORT_DESC = 3605000

const IOCTL_SERENUM_REMOVE_HARDWARE = 3604996

const IOCTL_SERIAL_LSRMST_INSERT = 1769596

const IOCTL_SMARTCARD_CONFISCATE = 3211280

const IOCTL_SMARTCARD_EJECT = 3211288

const IOCTL_SMARTCARD_GET_ATTRIBUTE = 3211272

const IOCTL_SMARTCARD_GET_LAST_ERROR = 3211324

const IOCTL_SMARTCARD_GET_PERF_CNTR = 3211328

const IOCTL_SMARTCARD_GET_STATE = 3211320

const IOCTL_SMARTCARD_IS_ABSENT = 3211308

const IOCTL_SMARTCARD_IS_PRESENT = 3211304

const IOCTL_SMARTCARD_POWER = 3211268

const IOCTL_SMARTCARD_SET_ATTRIBUTE = 3211276

const IOCTL_SMARTCARD_SET_PROTOCOL = 3211312

const IOCTL_SMARTCARD_SWALLOW = 3211292

const IOCTL_SMARTCARD_TRANSMIT = 3211284

const IOCTL_STORAGE_ALLOCATE_BC_STREAM = 3004420

const IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT = 3005596

const IOCTL_STORAGE_BASE = 45

const IOCTL_STORAGE_BC_VERSION = 1

const IOCTL_STORAGE_BREAK_RESERVATION = 2969620

const IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT = 2955392

const IOCTL_STORAGE_CHECK_VERIFY = 2967552

const IOCTL_STORAGE_CHECK_VERIFY2 = 2951168

const IOCTL_STORAGE_DEVICE_POWER_CAP = 2956436

const IOCTL_STORAGE_DEVICE_TELEMETRY_NOTIFY = 3002820

const IOCTL_STORAGE_DEVICE_TELEMETRY_QUERY_CAPS = 3002824

const IOCTL_STORAGE_DIAGNOSTIC = 2956448

const IOCTL_STORAGE_EJECTION_CONTROL = 2951488

const IOCTL_STORAGE_EJECT_MEDIA = 2967560

const IOCTL_STORAGE_ENABLE_IDLE_POWER = 2956416

const IOCTL_STORAGE_EVENT_NOTIFICATION = 2956432

const IOCTL_STORAGE_FAILURE_PREDICTION_CONFIG = 2953476

const IOCTL_STORAGE_FIND_NEW_DEVICES = 2967576

const IOCTL_STORAGE_FIRMWARE_ACTIVATE = 3005448

const IOCTL_STORAGE_FIRMWARE_DOWNLOAD = 3005444

const IOCTL_STORAGE_FIRMWARE_GET_INFO = 2956288

const IOCTL_STORAGE_FREE_BC_STREAM = 3004424

const IOCTL_STORAGE_GET_BC_PROPERTIES = 2971648

const IOCTL_STORAGE_GET_COUNTERS = 2953480

const IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG = 2956484

const IOCTL_STORAGE_GET_DEVICE_NUMBER = 2953344

const IOCTL_STORAGE_GET_DEVICE_NUMBER_EX = 2953348

const IOCTL_STORAGE_GET_DEVICE_TELEMETRY = 3002816

const IOCTL_STORAGE_GET_DEVICE_TELEMETRY_RAW = 3002828

const IOCTL_STORAGE_GET_HOTPLUG_INFO = 2952212

const IOCTL_STORAGE_GET_IDLE_POWERUP_REASON = 2956420

const IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES = 2970632

const IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER = 2952208

const IOCTL_STORAGE_GET_MEDIA_TYPES = 2952192

const IOCTL_STORAGE_GET_MEDIA_TYPES_EX = 2952196

const IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS = 2956452

const IOCTL_STORAGE_LOAD_MEDIA = 2967564

const IOCTL_STORAGE_LOAD_MEDIA2 = 2951180

const IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES = 2987012

const IOCTL_STORAGE_MCN_CONTROL = 2951492

const IOCTL_STORAGE_MEDIA_REMOVAL = 2967556

const IOCTL_STORAGE_PERSISTENT_RESERVE_IN = 2969624

const IOCTL_STORAGE_PERSISTENT_RESERVE_OUT = 3002396

const IOCTL_STORAGE_POWER_ACTIVE = 2956424

const IOCTL_STORAGE_POWER_IDLE = 2956428

const IOCTL_STORAGE_PREDICT_FAILURE = 2953472

const IOCTL_STORAGE_PROTOCOL_COMMAND = 3003328

const IOCTL_STORAGE_QUERY_PROPERTY = 2954240

const IOCTL_STORAGE_READ_CAPACITY = 2969920

const IOCTL_STORAGE_REINITIALIZE_MEDIA = 2987584

const IOCTL_STORAGE_RELEASE = 2967572

const IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE = 2956480

const IOCTL_STORAGE_RESERVE = 2967568

const IOCTL_STORAGE_RESET_BUS = 2969600

const IOCTL_STORAGE_RESET_DEVICE = 2969604

const IOCTL_STORAGE_RPMB_COMMAND = 2956440

const IOCTL_STORAGE_SET_HOTPLUG_INFO = 3001368

const IOCTL_STORAGE_SET_PROPERTY = 2987004

const IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD = 3002880

const IOCTL_STORAGE_START_DATA_INTEGRITY_CHECK = 3004548

const IOCTL_STORAGE_STOP_DATA_INTEGRITY_CHECK = 3004552

const IOInet = 0

const IOInetBindInfo = 0

const IOInetBindInfoEx = 0

const IOInetPriority = 0

const IOInetProtocol = 0

const IOInetProtocolEx = 0

const IOInetProtocolInfo = 0

const IOInetProtocolRoot = 0

const IOInetProtocolSink = 0

const IOInetProtocolSinkStackable = 0

const IOInetSession = 0

const IOInetThreadSwitch = 0

const IO_COMPLETION_ALL_ACCESS = 2031619

const IO_COMPLETION_MODIFY_STATE = 2

type IO_COUNTERS = TIO_COUNTERS

const IO_REPARSE_TAG_AF_UNIX = 2147483683

const IO_REPARSE_TAG_APPEXECLINK = 2147483675

const IO_REPARSE_TAG_CLOUD = 2415919130

const IO_REPARSE_TAG_CLOUD_1 = 2415923226

const IO_REPARSE_TAG_CLOUD_2 = 2415927322

const IO_REPARSE_TAG_CLOUD_3 = 2415931418

const IO_REPARSE_TAG_CLOUD_4 = 2415935514

const IO_REPARSE_TAG_CLOUD_5 = 2415939610

const IO_REPARSE_TAG_CLOUD_6 = 2415943706

const IO_REPARSE_TAG_CLOUD_7 = 2415947802

const IO_REPARSE_TAG_CLOUD_8 = 2415951898

const IO_REPARSE_TAG_CLOUD_9 = 2415955994

const IO_REPARSE_TAG_CLOUD_A = 2415960090

const IO_REPARSE_TAG_CLOUD_B = 2415964186

const IO_REPARSE_TAG_CLOUD_C = 2415968282

const IO_REPARSE_TAG_CLOUD_D = 2415972378

const IO_REPARSE_TAG_CLOUD_E = 2415976474

const IO_REPARSE_TAG_CLOUD_F = 2415980570

const IO_REPARSE_TAG_CLOUD_MASK = 61440

const IO_REPARSE_TAG_CSV = 2147483657

const IO_REPARSE_TAG_DEDUP = 2147483667

const IO_REPARSE_TAG_DFS = 2147483658

const IO_REPARSE_TAG_DFSR = 2147483666

const IO_REPARSE_TAG_DRIVE_EXTENDER = 2147483653

const IO_REPARSE_TAG_FILE_PLACEHOLDER = 2147483669

const IO_REPARSE_TAG_FILTER_MANAGER = 2147483659

const IO_REPARSE_TAG_GLOBAL_REPARSE = 2684354585

const IO_REPARSE_TAG_HSM = 3221225476

const IO_REPARSE_TAG_HSM2 = 2147483654

const IO_REPARSE_TAG_IIS_CACHE = 2684354576

const IO_REPARSE_TAG_MOUNT_POINT = 2684354563

const IO_REPARSE_TAG_NFS = 2147483668

const IO_REPARSE_TAG_ONEDRIVE = 2147483681

const IO_REPARSE_TAG_PROJFS = 2415919132

const IO_REPARSE_TAG_PROJFS_TOMBSTONE = 2684354594

const IO_REPARSE_TAG_RESERVED_ONE = 1

const IO_REPARSE_TAG_RESERVED_RANGE = 1

const IO_REPARSE_TAG_RESERVED_ZERO = 0

const IO_REPARSE_TAG_SIS = 2147483655

const IO_REPARSE_TAG_STORAGE_SYNC = 2147483678

const IO_REPARSE_TAG_SYMLINK = 2684354572

const IO_REPARSE_TAG_UNHANDLED = 2147483680

const IO_REPARSE_TAG_WCI = 2147483672

const IO_REPARSE_TAG_WCI_1 = 2415923224

const IO_REPARSE_TAG_WCI_TOMBSTONE = 2684354591

const IO_REPARSE_TAG_WIM = 2147483656

const IO_REPARSE_TAG_WOF = 2147483671

type IOleAdviseHolder = TIOleAdviseHolder

type IOleAdviseHolderVtbl = TIOleAdviseHolderVtbl

type IOleCache = TIOleCache

type IOleCache2 = TIOleCache2

type IOleCache2Vtbl = TIOleCache2Vtbl

type IOleCacheControl = TIOleCacheControl

type IOleCacheControlVtbl = TIOleCacheControlVtbl

type IOleCacheVtbl = TIOleCacheVtbl

type IOleClientSite = TIOleClientSite

type IOleClientSiteVtbl = TIOleClientSiteVtbl

type IOleContainer = TIOleContainer

type IOleContainerVtbl = TIOleContainerVtbl

type IOleInPlaceActiveObject = TIOleInPlaceActiveObject

type IOleInPlaceActiveObjectVtbl = TIOleInPlaceActiveObjectVtbl

type IOleInPlaceFrame = TIOleInPlaceFrame

type IOleInPlaceFrameVtbl = TIOleInPlaceFrameVtbl

type IOleInPlaceObject = TIOleInPlaceObject

type IOleInPlaceObjectVtbl = TIOleInPlaceObjectVtbl

type IOleInPlaceSite = TIOleInPlaceSite

type IOleInPlaceSiteVtbl = TIOleInPlaceSiteVtbl

type IOleInPlaceUIWindow = TIOleInPlaceUIWindow

type IOleInPlaceUIWindowVtbl = TIOleInPlaceUIWindowVtbl

type IOleItemContainer = TIOleItemContainer

type IOleItemContainerVtbl = TIOleItemContainerVtbl

type IOleLink = TIOleLink

type IOleLinkVtbl = TIOleLinkVtbl

type IOleObject = TIOleObject

type IOleObjectVtbl = TIOleObjectVtbl

type IOleWindow = TIOleWindow

type IOleWindowVtbl = TIOleWindowVtbl

type IOplockStorage = TIOplockStorage

type IOplockStorageVtbl = TIOplockStorageVtbl

const IPPORT_BIFFUDP = 512

const IPPORT_CMDSERVER = 514

const IPPORT_DAYTIME = 13

const IPPORT_DISCARD = 9

const IPPORT_ECHO = 7

const IPPORT_EFSSERVER = 520

const IPPORT_EXECSERVER = 512

const IPPORT_FINGER = 79

const IPPORT_FTP = 21

const IPPORT_LOGINSERVER = 513

const IPPORT_MTP = 57

const IPPORT_NAMESERVER = 42

const IPPORT_NETSTAT = 15

const IPPORT_RESERVED = 1024

const IPPORT_RJE = 77

const IPPORT_ROUTESERVER = 520

const IPPORT_SMTP = 25

const IPPORT_SUPDUP = 95

const IPPORT_SYSTAT = 11

const IPPORT_TELNET = 23

const IPPORT_TFTP = 69

const IPPORT_TIMESERVER = 37

const IPPORT_TTYLINK = 87

const IPPORT_WHOIS = 43

const IPPORT_WHOSERVER = 513

const IPPROTO_GGP = 3

const IPPROTO_ICMP = 1

const IPPROTO_IDP = 22

const IPPROTO_IGMP = 2

const IPPROTO_IP = 0

const IPPROTO_MAX = 256

const IPPROTO_ND = 77

const IPPROTO_PUP = 12

const IPPROTO_RAW = 255

const IPPROTO_TCP = 6

const IPPROTO_UDP = 17

type IPSFactoryBuffer = TIPSFactoryBuffer

type IPSFactoryBufferVtbl = TIPSFactoryBufferVtbl

const IP_ADD_MEMBERSHIP = 5

const IP_DEFAULT_MULTICAST_LOOP = 1

const IP_DEFAULT_MULTICAST_TTL = 1

const IP_DONTFRAGMENT = 9

const IP_DROP_MEMBERSHIP = 6

const IP_MAX_MEMBERSHIPS = 20

type IP_MREQ = TIP_MREQ

const IP_MULTICAST_IF = 2

const IP_MULTICAST_LOOP = 4

const IP_MULTICAST_TTL = 3

const IP_OPTIONS = 1

const IP_TOS = 8

const IP_TTL = 7

type IParseDisplayName = TIParseDisplayName

type IParseDisplayNameVtbl = TIParseDisplayNameVtbl

type IPersist = TIPersist

type IPersistFile = TIPersistFile

type IPersistFileVtbl = TIPersistFileVtbl

type IPersistMoniker = TIPersistMoniker

type IPersistMonikerVtbl = TIPersistMonikerVtbl

type IPersistStorage = TIPersistStorage

type IPersistStorageVtbl = TIPersistStorageVtbl

type IPersistStream = TIPersistStream

type IPersistStreamVtbl = TIPersistStreamVtbl

type IPersistVtbl = TIPersistVtbl

type IPipeByte = TIPipeByte

type IPipeByteVtbl = TIPipeByteVtbl

type IPipeDouble = TIPipeDouble

type IPipeDoubleVtbl = TIPipeDoubleVtbl

type IPipeLong = TIPipeLong

type IPipeLongVtbl = TIPipeLongVtbl

type IPrintDialogCallback = TIPrintDialogCallback

type IPrintDialogCallbackVtbl = TIPrintDialogCallbackVtbl

type IPrintDialogServices = TIPrintDialogServices

type IPrintDialogServicesVtbl = TIPrintDialogServicesVtbl

type IProcessInitControl = TIProcessInitControl

type IProcessInitControlVtbl = TIProcessInitControlVtbl

type IProcessLock = TIProcessLock

type IProcessLockVtbl = TIProcessLockVtbl

type IProgressNotify = TIProgressNotify

type IProgressNotifyVtbl = TIProgressNotifyVtbl

type IPropertyBag = TIPropertyBag

type IPropertyBagVtbl = TIPropertyBagVtbl

type IPropertySetStorage = TIPropertySetStorage

type IPropertySetStorageVtbl = TIPropertySetStorageVtbl

type IPropertyStorage = TIPropertyStorage

type IPropertyStorageVtbl = TIPropertyStorageVtbl

type IROTData = TIROTData

type IROTDataVtbl = TIROTDataVtbl

type IRecordInfo = TIRecordInfo

type IRecordInfoVtbl = TIRecordInfoVtbl

type IReleaseMarshalBuffers = TIReleaseMarshalBuffers

type IReleaseMarshalBuffersVtbl = TIReleaseMarshalBuffersVtbl

type IRootStorage = TIRootStorage

type IRootStorageVtbl = TIRootStorageVtbl

type IRpcChannelBuffer = TIRpcChannelBuffer

type IRpcChannelBuffer2 = TIRpcChannelBuffer2

type IRpcChannelBuffer2Vtbl = TIRpcChannelBuffer2Vtbl

type IRpcChannelBuffer3 = TIRpcChannelBuffer3

type IRpcChannelBuffer3Vtbl = TIRpcChannelBuffer3Vtbl

type IRpcChannelBufferVtbl = TIRpcChannelBufferVtbl

type IRpcHelper = TIRpcHelper

type IRpcHelperVtbl = TIRpcHelperVtbl

type IRpcOptions = TIRpcOptions

type IRpcOptionsVtbl = TIRpcOptionsVtbl

type IRpcProxyBuffer = TIRpcProxyBuffer

type IRpcProxyBufferVtbl = TIRpcProxyBufferVtbl

type IRpcStubBuffer = TIRpcStubBuffer

type IRpcStubBufferVtbl = TIRpcStubBufferVtbl

type IRpcSyntaxNegotiate = TIRpcSyntaxNegotiate

type IRpcSyntaxNegotiateVtbl = TIRpcSyntaxNegotiateVtbl

type IRunnableObject = TIRunnableObject

type IRunnableObjectVtbl = TIRunnableObjectVtbl

type IRunningObjectTable = TIRunningObjectTable

type IRunningObjectTableVtbl = TIRunningObjectTableVtbl

const ISC_SHOWUIALL = 3221225487

const ISC_SHOWUIALLCANDIDATEWINDOW = 15

const ISC_SHOWUICANDIDATEWINDOW = 1

const ISC_SHOWUICOMPOSITIONWINDOW = 2147483648

const ISC_SHOWUIGUIDELINE = 1073741824

const ISMEX_CALLBACK = 4

const ISMEX_NOSEND = 0

const ISMEX_NOTIFY = 2

const ISMEX_REPLIED = 8

const ISMEX_SEND = 1

const IS_TEXT_UNICODE_ASCII16 = 1

const IS_TEXT_UNICODE_CONTROLS = 4

const IS_TEXT_UNICODE_DBCS_LEADBYTE = 1024

const IS_TEXT_UNICODE_ILLEGAL_CHARS = 256

const IS_TEXT_UNICODE_NOT_ASCII_MASK = 61440

const IS_TEXT_UNICODE_NOT_UNICODE_MASK = 3840

const IS_TEXT_UNICODE_NULL_BYTES = 4096

const IS_TEXT_UNICODE_ODD_LENGTH = 512

const IS_TEXT_UNICODE_REVERSE_ASCII16 = 16

const IS_TEXT_UNICODE_REVERSE_CONTROLS = 64

const IS_TEXT_UNICODE_REVERSE_MASK = 240

const IS_TEXT_UNICODE_REVERSE_SIGNATURE = 128

const IS_TEXT_UNICODE_REVERSE_STATISTICS = 32

const IS_TEXT_UNICODE_SIGNATURE = 8

const IS_TEXT_UNICODE_STATISTICS = 2

const IS_TEXT_UNICODE_UNICODE_MASK = 15

type ISequentialStream = TISequentialStream

type ISequentialStreamVtbl = TISequentialStreamVtbl

type IServerSecurity = TIServerSecurity

type IServerSecurityVtbl = TIServerSecurityVtbl

type IServiceProvider = TIServiceProvider

type IServiceProviderVtbl = TIServiceProviderVtbl

type ISoftDistExt = TISoftDistExt

type ISoftDistExtVtbl = TISoftDistExtVtbl

type IStdMarshalInfo = TIStdMarshalInfo

type IStdMarshalInfoVtbl = TIStdMarshalInfoVtbl

type IStorage = TIStorage

type IStorageVtbl = TIStorageVtbl

type IStream = TIStream

type IStreamVtbl = TIStreamVtbl

type ISupportErrorInfo = TISupportErrorInfo

type ISupportErrorInfoVtbl = TISupportErrorInfoVtbl

type ISurrogate = TISurrogate

type ISurrogateService = TISurrogateService

type ISurrogateServiceVtbl = TISurrogateServiceVtbl

type ISurrogateVtbl = TISurrogateVtbl

type ISynchronize = TISynchronize

type ISynchronizeContainer = TISynchronizeContainer

type ISynchronizeContainerVtbl = TISynchronizeContainerVtbl

type ISynchronizeEvent = TISynchronizeEvent

type ISynchronizeEventVtbl = TISynchronizeEventVtbl

type ISynchronizeHandle = TISynchronizeHandle

type ISynchronizeHandleVtbl = TISynchronizeHandleVtbl

type ISynchronizeMutex = TISynchronizeMutex

type ISynchronizeMutexVtbl = TISynchronizeMutexVtbl

type ISynchronizeVtbl = TISynchronizeVtbl

const ITALIC_FONTTYPE = 512

type IThumbnailExtractor = TIThumbnailExtractor

type IThumbnailExtractorVtbl = TIThumbnailExtractorVtbl

type ITimeAndNoticeControl = TITimeAndNoticeControl

type ITimeAndNoticeControlVtbl = TITimeAndNoticeControlVtbl

type ITypeChangeEvents = TITypeChangeEvents

type ITypeChangeEventsVtbl = TITypeChangeEventsVtbl

type ITypeComp = TITypeComp

type ITypeCompVtbl = TITypeCompVtbl

type ITypeFactory = TITypeFactory

type ITypeFactoryVtbl = TITypeFactoryVtbl

type ITypeInfo = TITypeInfo

type ITypeInfo2 = TITypeInfo2

type ITypeInfo2Vtbl = TITypeInfo2Vtbl

type ITypeInfoVtbl = TITypeInfoVtbl

type ITypeLib = TITypeLib

type ITypeLib2 = TITypeLib2

type ITypeLib2Vtbl = TITypeLib2Vtbl

type ITypeLibVtbl = TITypeLibVtbl

type ITypeMarshal = TITypeMarshal

type ITypeMarshalVtbl = TITypeMarshalVtbl

type IUnknown = TIUnknown

type IUnknownVtbl = TIUnknownVtbl

type IUri = TIUri

type IUriBuilder = TIUriBuilder

type IUriBuilderFactory = TIUriBuilderFactory

type IUriBuilderFactoryVtbl = TIUriBuilderFactoryVtbl

type IUriBuilderVtbl = TIUriBuilderVtbl

type IUriContainer = TIUriContainer

type IUriContainerVtbl = TIUriContainerVtbl

type IUriVtbl = TIUriVtbl

type IUrlMon = TIUrlMon

type IUrlMonVtbl = TIUrlMonVtbl

type IViewObject = TIViewObject

type IViewObject2 = TIViewObject2

type IViewObject2Vtbl = TIViewObject2Vtbl

type IViewObjectVtbl = TIViewObjectVtbl

type IWaitMultiple = TIWaitMultiple

type IWaitMultipleVtbl = TIWaitMultipleVtbl

type IWinInetCacheHints = TIWinInetCacheHints

type IWinInetCacheHints2 = TIWinInetCacheHints2

type IWinInetCacheHints2Vtbl = TIWinInetCacheHints2Vtbl

type IWinInetCacheHintsVtbl = TIWinInetCacheHintsVtbl

type IWinInetFileStream = TIWinInetFileStream

type IWinInetFileStreamVtbl = TIWinInetFileStreamVtbl

type IWinInetHttpInfo = TIWinInetHttpInfo

type IWinInetHttpInfoVtbl = TIWinInetHttpInfoVtbl

type IWinInetHttpTimeouts = TIWinInetHttpTimeouts

type IWinInetHttpTimeoutsVtbl = TIWinInetHttpTimeoutsVtbl

type IWinInetInfo = TIWinInetInfo

type IWinInetInfoVtbl = TIWinInetInfoVtbl

type IWindowForBindingUI = TIWindowForBindingUI

type IWindowForBindingUIVtbl = TIWindowForBindingUIVtbl

type IWrappedProtocol = TIWrappedProtocol

type IWrappedProtocolVtbl = TIWrappedProtocolVtbl

type IXMLAttribute = TIXMLAttribute

type IXMLAttributeVtbl = TIXMLAttributeVtbl

type IXMLDOMAttribute = TIXMLDOMAttribute

type IXMLDOMAttributeVtbl = TIXMLDOMAttributeVtbl

type IXMLDOMCDATASection = TIXMLDOMCDATASection

type IXMLDOMCDATASectionVtbl = TIXMLDOMCDATASectionVtbl

type IXMLDOMCharacterData = TIXMLDOMCharacterData

type IXMLDOMCharacterDataVtbl = TIXMLDOMCharacterDataVtbl

type IXMLDOMComment = TIXMLDOMComment

type IXMLDOMCommentVtbl = TIXMLDOMCommentVtbl

type IXMLDOMDocument = TIXMLDOMDocument

type IXMLDOMDocumentFragment = TIXMLDOMDocumentFragment

type IXMLDOMDocumentFragmentVtbl = TIXMLDOMDocumentFragmentVtbl

type IXMLDOMDocumentType = TIXMLDOMDocumentType

type IXMLDOMDocumentTypeVtbl = TIXMLDOMDocumentTypeVtbl

type IXMLDOMDocumentVtbl = TIXMLDOMDocumentVtbl

type IXMLDOMElement = TIXMLDOMElement

type IXMLDOMElementVtbl = TIXMLDOMElementVtbl

type IXMLDOMEntity = TIXMLDOMEntity

type IXMLDOMEntityReference = TIXMLDOMEntityReference

type IXMLDOMEntityReferenceVtbl = TIXMLDOMEntityReferenceVtbl

type IXMLDOMEntityVtbl = TIXMLDOMEntityVtbl

type IXMLDOMImplementation = TIXMLDOMImplementation

type IXMLDOMImplementationVtbl = TIXMLDOMImplementationVtbl

type IXMLDOMNamedNodeMap = TIXMLDOMNamedNodeMap

type IXMLDOMNamedNodeMapVtbl = TIXMLDOMNamedNodeMapVtbl

type IXMLDOMNode = TIXMLDOMNode

type IXMLDOMNodeList = TIXMLDOMNodeList

type IXMLDOMNodeListVtbl = TIXMLDOMNodeListVtbl

type IXMLDOMNodeVtbl = TIXMLDOMNodeVtbl

type IXMLDOMNotation = TIXMLDOMNotation

type IXMLDOMNotationVtbl = TIXMLDOMNotationVtbl

type IXMLDOMParseError = TIXMLDOMParseError

type IXMLDOMParseErrorVtbl = TIXMLDOMParseErrorVtbl

type IXMLDOMProcessingInstruction = TIXMLDOMProcessingInstruction

type IXMLDOMProcessingInstructionVtbl = TIXMLDOMProcessingInstructionVtbl

type IXMLDOMText = TIXMLDOMText

type IXMLDOMTextVtbl = TIXMLDOMTextVtbl

type IXMLDSOControl = TIXMLDSOControl

type IXMLDSOControlVtbl = TIXMLDSOControlVtbl

type IXMLDocument = TIXMLDocument

type IXMLDocument2 = TIXMLDocument2

type IXMLDocument2Vtbl = TIXMLDocument2Vtbl

type IXMLDocumentVtbl = TIXMLDocumentVtbl

type IXMLElement = TIXMLElement

type IXMLElement2 = TIXMLElement2

type IXMLElement2Vtbl = TIXMLElement2Vtbl

type IXMLElementCollection = TIXMLElementCollection

type IXMLElementCollectionVtbl = TIXMLElementCollectionVtbl

type IXMLElementVtbl = TIXMLElementVtbl

type IXMLError = TIXMLError

type IXMLErrorVtbl = TIXMLErrorVtbl

type IXMLHttpRequest = TIXMLHttpRequest

type IXMLHttpRequestVtbl = TIXMLHttpRequestVtbl

type IXTLRuntime = TIXTLRuntime

type IXTLRuntimeVtbl = TIXTLRuntimeVtbl

type IZoneIdentifier = TIZoneIdentifier

type IZoneIdentifierVtbl = TIZoneIdentifierVtbl

type I_RPC_HANDLE = TI_RPC_HANDLE

type I_RPC_MUTEX = TI_RPC_MUTEX

const I_RpcBindingInqDynamicEndpoint = 0

type I_RpcFreeCalloutStateFn = TI_RpcFreeCalloutStateFn

const I_RpcNsBindingSetEntryName = 0

type I_RpcPerformCalloutFn = TI_RpcPerformCalloutFn

type I_RpcProxyCallbackInterface = TI_RpcProxyCallbackInterface

type I_RpcProxyGetClientAddressFn = TI_RpcProxyGetClientAddressFn

type I_RpcProxyGetConnectionTimeoutFn = TI_RpcProxyGetConnectionTimeoutFn

type I_RpcProxyIsValidMachineFn = TI_RpcProxyIsValidMachineFn

const I_RpcServerUseProtseq2 = 0

const I_RpcServerUseProtseqEp2 = 0

const ImmConfigureIME = 0

const ImmEnumRegisterWord = 0

const ImmEscape = 0

const ImmGetCandidateList = 0

const ImmGetCandidateListCount = 0

const ImmGetCompositionFont = 0

const ImmGetCompositionString = 0

const ImmGetConversionList = 0

const ImmGetDescription = 0

const ImmGetGuideLine = 0

const ImmGetIMEFileName = 0

const ImmGetImeMenuItems = 0

const ImmGetRegisterWordStyle = 0

const ImmInstallIME = 0

const ImmIsUIMessage = 0

const ImmRegisterWord = 0

const ImmSetCompositionFont = 0

const ImmSetCompositionString = 0

const ImmUnregisterWord = 0

const InitiateShutdown = 0

const InitiateSystemShutdown = 0

const InitiateSystemShutdownEx = 0

const InsertMenu = 0

const InsertMenuItem = 0

const InterlockedAdd = 0

const InterlockedAdd64 = 0

const InterlockedAnd = 0

const InterlockedAnd64 = 0

const InterlockedAndAffinity = 0

const InterlockedCompareExchange = 0

const InterlockedCompareExchange16 = 0

const InterlockedCompareExchange64 = 0

const InterlockedCompareExchangeAcquire = 0

const InterlockedCompareExchangeAcquire64 = 0

const InterlockedCompareExchangePointerAcquire = 0

const InterlockedCompareExchangePointerRelease = 0

const InterlockedCompareExchangeRelease = 0

const InterlockedCompareExchangeRelease64 = 0

const InterlockedDecrement = 0

const InterlockedDecrement16 = 0

const InterlockedDecrement64 = 0

const InterlockedDecrementAcquire = 0

const InterlockedDecrementRelease = 0

const InterlockedExchange = 0

const InterlockedExchange64 = 0

const InterlockedExchangeAcquire64 = 0

const InterlockedExchangeAdd = 0

const InterlockedExchangeAdd64 = 0

const InterlockedExchangePointer = 0

const InterlockedIncrement = 0

const InterlockedIncrement16 = 0

const InterlockedIncrement64 = 0

const InterlockedIncrementAcquire = 0

const InterlockedIncrementRelease = 0

const InterlockedOr = 0

const InterlockedOr64 = 0

const InterlockedOrAffinity = 0

const InterlockedPushListSList = 0

const InterlockedXor = 0

const InterlockedXor64 = 0

const IsBadStringPtr = 0

const IsCharAlpha = 0

const IsCharAlphaNumeric = 0

const IsCharLower = 0

const IsCharUpper = 0

const IsDialogMessage = 0

const IsLFNDrive = 0

const IsLoggingEnabled = 0

const IsValidDevmode = 0

type JIT_DEBUG_INFO = TJIT_DEBUG_INFO

type JIT_DEBUG_INFO32 = TJIT_DEBUG_INFO32

type JIT_DEBUG_INFO64 = TJIT_DEBUG_INFO64

type JOBOBJECTINFOCLASS = TJOBOBJECTINFOCLASS

type JOBOBJECT_ASSOCIATE_COMPLETION_PORT = TJOBOBJECT_ASSOCIATE_COMPLETION_PORT

type JOBOBJECT_BASIC_ACCOUNTING_INFORMATION = TJOBOBJECT_BASIC_ACCOUNTING_INFORMATION

type JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = TJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION

type JOBOBJECT_BASIC_LIMIT_INFORMATION = TJOBOBJECT_BASIC_LIMIT_INFORMATION

type JOBOBJECT_BASIC_PROCESS_ID_LIST = TJOBOBJECT_BASIC_PROCESS_ID_LIST

type JOBOBJECT_BASIC_UI_RESTRICTIONS = TJOBOBJECT_BASIC_UI_RESTRICTIONS

type JOBOBJECT_CPU_RATE_CONTROL_INFORMATION = TJOBOBJECT_CPU_RATE_CONTROL_INFORMATION

type JOBOBJECT_END_OF_JOB_TIME_INFORMATION = TJOBOBJECT_END_OF_JOB_TIME_INFORMATION

type JOBOBJECT_EXTENDED_LIMIT_INFORMATION = TJOBOBJECT_EXTENDED_LIMIT_INFORMATION

type JOBOBJECT_JOBSET_INFORMATION = TJOBOBJECT_JOBSET_INFORMATION

type JOBOBJECT_LIMIT_VIOLATION_INFORMATION = TJOBOBJECT_LIMIT_VIOLATION_INFORMATION

type JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = TJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

type JOBOBJECT_RATE_CONTROL_TOLERANCE = TJOBOBJECT_RATE_CONTROL_TOLERANCE

type JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = TJOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL

type JOBOBJECT_SECURITY_LIMIT_INFORMATION = TJOBOBJECT_SECURITY_LIMIT_INFORMATION

const JOB_ACCESS_ADMINISTER = 16

const JOB_ACCESS_READ = 32

const JOB_ALL_ACCESS = 983088

const JOB_CONTROL_CANCEL = 3

const JOB_CONTROL_DELETE = 5

const JOB_CONTROL_LAST_PAGE_EJECTED = 7

const JOB_CONTROL_PAUSE = 1

const JOB_CONTROL_RESTART = 4

const JOB_CONTROL_RESUME = 2

const JOB_CONTROL_SENT_TO_PRINTER = 6

const JOB_EXECUTE = 131088

type JOB_INFO_1 = TJOB_INFO_1

type JOB_INFO_1A = TJOB_INFO_1A

type JOB_INFO_1W = TJOB_INFO_1W

type JOB_INFO_2 = TJOB_INFO_2

type JOB_INFO_2A = TJOB_INFO_2A

type JOB_INFO_2W = TJOB_INFO_2W

type JOB_INFO_3 = TJOB_INFO_3

const JOB_NOTIFY_FIELD_BYTES_PRINTED = 23

const JOB_NOTIFY_FIELD_DATATYPE = 5

const JOB_NOTIFY_FIELD_DEVMODE = 9

const JOB_NOTIFY_FIELD_DOCUMENT = 13

const JOB_NOTIFY_FIELD_DRIVER_NAME = 8

const JOB_NOTIFY_FIELD_MACHINE_NAME = 1

const JOB_NOTIFY_FIELD_NOTIFY_NAME = 4

const JOB_NOTIFY_FIELD_PAGES_PRINTED = 21

const JOB_NOTIFY_FIELD_PARAMETERS = 7

const JOB_NOTIFY_FIELD_PORT_NAME = 2

const JOB_NOTIFY_FIELD_POSITION = 15

const JOB_NOTIFY_FIELD_PRINTER_NAME = 0

const JOB_NOTIFY_FIELD_PRINT_PROCESSOR = 6

const JOB_NOTIFY_FIELD_PRIORITY = 14

const JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR = 12

const JOB_NOTIFY_FIELD_START_TIME = 17

const JOB_NOTIFY_FIELD_STATUS = 10

const JOB_NOTIFY_FIELD_STATUS_STRING = 11

const JOB_NOTIFY_FIELD_SUBMITTED = 16

const JOB_NOTIFY_FIELD_TIME = 19

const JOB_NOTIFY_FIELD_TOTAL_BYTES = 22

const JOB_NOTIFY_FIELD_TOTAL_PAGES = 20

const JOB_NOTIFY_FIELD_UNTIL_TIME = 18

const JOB_NOTIFY_FIELD_USER_NAME = 3

const JOB_NOTIFY_TYPE = 1

const JOB_OBJECT_ALL_ACCESS = 2031647

const JOB_OBJECT_ASSIGN_PROCESS = 1

const JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS = 255

const JOB_OBJECT_CPU_RATE_CONTROL_ENABLE = 1

const JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP = 4

const JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY = 8

const JOB_OBJECT_CPU_RATE_CONTROL_VALID_FLAGS = 15

const JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED = 2

const JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS = 32767

const JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 8

const JOB_OBJECT_LIMIT_AFFINITY = 16

const JOB_OBJECT_LIMIT_BREAKAWAY_OK = 2048

const JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 1024

const JOB_OBJECT_LIMIT_JOB_MEMORY = 512

const JOB_OBJECT_LIMIT_JOB_READ_BYTES = 65536

const JOB_OBJECT_LIMIT_JOB_TIME = 4

const JOB_OBJECT_LIMIT_JOB_WRITE_BYTES = 131072

const JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 8192

const JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 64

const JOB_OBJECT_LIMIT_PRIORITY_CLASS = 32

const JOB_OBJECT_LIMIT_PROCESS_MEMORY = 256

const JOB_OBJECT_LIMIT_PROCESS_TIME = 2

const JOB_OBJECT_LIMIT_RATE_CONTROL = 262144

const JOB_OBJECT_LIMIT_RESERVED3 = 32768

const JOB_OBJECT_LIMIT_RESERVED4 = 65536

const JOB_OBJECT_LIMIT_RESERVED5 = 131072

const JOB_OBJECT_LIMIT_RESERVED6 = 262144

const JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 128

const JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 4096

const JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 16384

const JOB_OBJECT_LIMIT_VALID_FLAGS = 524287

const JOB_OBJECT_LIMIT_WORKINGSET = 1

const JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS = 8

const JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT = 3

const JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO = 4

const JOB_OBJECT_MSG_END_OF_JOB_TIME = 1

const JOB_OBJECT_MSG_END_OF_PROCESS_TIME = 2

const JOB_OBJECT_MSG_EXIT_PROCESS = 7

const JOB_OBJECT_MSG_JOB_CYCLE_TIME_LIMIT = 12

const JOB_OBJECT_MSG_JOB_MEMORY_LIMIT = 10

const JOB_OBJECT_MSG_MAXIMUM = 12

const JOB_OBJECT_MSG_MINIMUM = 1

const JOB_OBJECT_MSG_NEW_PROCESS = 6

const JOB_OBJECT_MSG_NOTIFICATION_LIMIT = 11

const JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT = 9

const JOB_OBJECT_NOTIFICATION_LIMIT_VALID_FLAGS = 459268

const JOB_OBJECT_POST_AT_END_OF_JOB = 1

const JOB_OBJECT_QUERY = 4

const JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS = 524287

const JOB_OBJECT_SECURITY_FILTER_TOKENS = 8

const JOB_OBJECT_SECURITY_NO_ADMIN = 1

const JOB_OBJECT_SECURITY_ONLY_TOKEN = 4

const JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 2

const JOB_OBJECT_SECURITY_VALID_FLAGS = 15

const JOB_OBJECT_SET_ATTRIBUTES = 2

const JOB_OBJECT_SET_SECURITY_ATTRIBUTES = 16

const JOB_OBJECT_TERMINATE = 8

const JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0

const JOB_OBJECT_UILIMIT_ALL = 255

const JOB_OBJECT_UILIMIT_DESKTOP = 64

const JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 16

const JOB_OBJECT_UILIMIT_EXITWINDOWS = 128

const JOB_OBJECT_UILIMIT_GLOBALATOMS = 32

const JOB_OBJECT_UILIMIT_HANDLES = 1

const JOB_OBJECT_UILIMIT_NONE = 0

const JOB_OBJECT_UILIMIT_READCLIPBOARD = 2

const JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 8

const JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 4

const JOB_OBJECT_UI_VALID_FLAGS = 255

const JOB_POSITION_UNSPECIFIED = 0

const JOB_READ = 131104

type JOB_SET_ARRAY = TJOB_SET_ARRAY

const JOB_STATUS_BLOCKED_DEVQ = 512

const JOB_STATUS_COMPLETE = 4096

const JOB_STATUS_DELETED = 256

const JOB_STATUS_DELETING = 4

const JOB_STATUS_ERROR = 2

const JOB_STATUS_OFFLINE = 32

const JOB_STATUS_PAPEROUT = 64

const JOB_STATUS_PAUSED = 1

const JOB_STATUS_PRINTED = 128

const JOB_STATUS_PRINTING = 16

const JOB_STATUS_RESTART = 2048

const JOB_STATUS_SPOOLING = 8

const JOB_STATUS_USER_INTERVENTION = 1024

const JOB_WRITE = 131088

const JOHAB_CHARSET = 130

type JOYCAPS = TJOYCAPS

type JOYCAPS2 = TJOYCAPS2

type JOYCAPS2A = TJOYCAPS2A

type JOYCAPS2W = TJOYCAPS2W

type JOYCAPSA = TJOYCAPSA

type JOYCAPSW = TJOYCAPSW

const JOYCAPS_HASPOV = 16

const JOYCAPS_HASR = 2

const JOYCAPS_HASU = 4

const JOYCAPS_HASV = 8

const JOYCAPS_HASZ = 1

const JOYCAPS_POV4DIR = 32

const JOYCAPS_POVCTS = 64

const JOYERR_BASE = 160

const JOYERR_NOCANDO = 166

const JOYERR_NOERROR = 0

const JOYERR_PARMS = 165

const JOYERR_UNPLUGGED = 167

type JOYINFO = TJOYINFO

type JOYINFOEX = TJOYINFOEX

const JOYSTICKID1 = 0

const JOYSTICKID2 = 1

const JOY_BUTTON1 = 1

const JOY_BUTTON10 = 512

const JOY_BUTTON11 = 1024

const JOY_BUTTON12 = 2048

const JOY_BUTTON13 = 4096

const JOY_BUTTON14 = 8192

const JOY_BUTTON15 = 16384

const JOY_BUTTON16 = 32768

const JOY_BUTTON17 = 65536

const JOY_BUTTON18 = 131072

const JOY_BUTTON19 = 262144

const JOY_BUTTON1CHG = 256

const JOY_BUTTON2 = 2

const JOY_BUTTON20 = 524288

const JOY_BUTTON21 = 1048576

const JOY_BUTTON22 = 2097152

const JOY_BUTTON23 = 4194304

const JOY_BUTTON24 = 8388608

const JOY_BUTTON25 = 16777216

const JOY_BUTTON26 = 33554432

const JOY_BUTTON27 = 67108864

const JOY_BUTTON28 = 134217728

const JOY_BUTTON29 = 268435456

const JOY_BUTTON2CHG = 512

const JOY_BUTTON3 = 4

const JOY_BUTTON30 = 536870912

const JOY_BUTTON31 = 1073741824

const JOY_BUTTON32 = 2147483648

const JOY_BUTTON3CHG = 1024

const JOY_BUTTON4 = 8

const JOY_BUTTON4CHG = 2048

const JOY_BUTTON5 = 16

const JOY_BUTTON6 = 32

const JOY_BUTTON7 = 64

const JOY_BUTTON8 = 128

const JOY_BUTTON9 = 256

const JOY_CAL_READ3 = 262144

const JOY_CAL_READ4 = 524288

const JOY_CAL_READ5 = 4194304

const JOY_CAL_READ6 = 8388608

const JOY_CAL_READALWAYS = 65536

const JOY_CAL_READRONLY = 33554432

const JOY_CAL_READUONLY = 67108864

const JOY_CAL_READVONLY = 134217728

const JOY_CAL_READXONLY = 1048576

const JOY_CAL_READXYONLY = 131072

const JOY_CAL_READYONLY = 2097152

const JOY_CAL_READZONLY = 16777216

const JOY_POVBACKWARD = 18000

const JOY_POVCENTERED = -1

const JOY_POVFORWARD = 0

const JOY_POVLEFT = 27000

const JOY_POVRIGHT = 9000

const JOY_RETURNALL = 255

const JOY_RETURNBUTTONS = 128

const JOY_RETURNCENTERED = 1024

const JOY_RETURNPOV = 64

const JOY_RETURNPOVCTS = 512

const JOY_RETURNR = 8

const JOY_RETURNRAWDATA = 256

const JOY_RETURNU = 16

const JOY_RETURNV = 32

const JOY_RETURNX = 1

const JOY_RETURNY = 2

const JOY_RETURNZ = 4

const JOY_USEDEADZONE = 2048

type KAFFINITY = TKAFFINITY

type KBDLLHOOKSTRUCT = TKBDLLHOOKSTRUCT

type KCRM_MARSHAL_HEADER = TKCRM_MARSHAL_HEADER

type KCRM_PROTOCOL_BLOB = TKCRM_PROTOCOL_BLOB

type KCRM_TRANSACTION_BLOB = TKCRM_TRANSACTION_BLOB

const KDF_ALGORITHMID = 8

const KDF_CONTEXT = 14

const KDF_GENERIC_PARAMETER = 17

const KDF_HASH_ALGORITHM = 0

const KDF_HMAC_KEY = 3

const KDF_ITERATION_COUNT = 16

const KDF_KEYBITLENGTH = 18

const KDF_LABEL = 13

const KDF_PARTYUINFO = 9

const KDF_PARTYVINFO = 10

const KDF_SALT = 15

const KDF_SECRET_APPEND = 2

const KDF_SECRET_HANDLE = 6

const KDF_SECRET_PREPEND = 1

const KDF_SUPPPRIVINFO = 12

const KDF_SUPPPUBINFO = 11

const KDF_TLS_PRF_LABEL = 4

const KDF_TLS_PRF_PROTOCOL = 7

const KDF_TLS_PRF_SEED = 5

const KDF_USE_SECRET_AS_HMAC_KEY_FLAG = 1

type KEAPUBKEY = TKEAPUBKEY

type KERNINGPAIR = TKERNINGPAIR

type KEYARRAY = TKEYARRAY

type KEYBDINPUT = TKEYBDINPUT

const KEYBOARD_OVERRUN_MAKE_CODE = 255

const KEYEVENTF_EXTENDEDKEY = 1

const KEYEVENTF_KEYUP = 2

const KEYEVENTF_SCANCODE = 8

const KEYEVENTF_UNICODE = 4

const KEYSTATEBLOB = 12

const KEY_ALL_ACCESS = 983103

const KEY_CREATE_LINK = 32

const KEY_CREATE_SUB_KEY = 4

const KEY_ENUMERATE_SUB_KEYS = 8

const KEY_EVENT = 1

type KEY_EVENT_RECORD = TKEY_EVENT_RECORD

const KEY_EXECUTE = 131097

const KEY_LENGTH_MASK = 4294901760

const KEY_NOTIFY = 16

const KEY_QUERY_VALUE = 1

const KEY_READ = 131097

const KEY_SET_VALUE = 2

type KEY_TYPE_SUBTYPE = TKEY_TYPE_SUBTYPE

const KEY_WOW64_32KEY = 512

const KEY_WOW64_64KEY = 256

const KEY_WOW64_RES = 768

const KEY_WRITE = 131078

const KF_ALTDOWN = 8192

const KF_DLGMODE = 2048

const KF_EXTENDED = 256

const KF_MENUMODE = 4096

const KF_REPEAT = 16384

const KF_UP = 32768

const KLF_ACTIVATE = 1

const KLF_NOTELLSHELL = 128

const KLF_REORDER = 8

const KLF_REPLACELANG = 16

const KLF_RESET = 1073741824

const KLF_SETFORPROCESS = 256

const KLF_SHIFTLOCK = 65536

const KLF_SUBSTITUTE_OK = 2

const KL_NAMELENGTH = 9

const KP_ADMIN_PIN = 31

const KP_ALGID = 7

const KP_BLOCKLEN = 8

const KP_CERTIFICATE = 26

const KP_CLEAR_KEY = 27

const KP_CLIENT_RANDOM = 21

const KP_CMS_DH_KEY_INFO = 38

const KP_CMS_KEY_INFO = 37

const KP_EFFECTIVE_KEYLEN = 19

const KP_G = 12

const KP_GET_USE_COUNT = 42

const KP_HIGHEST_VERSION = 41

const KP_INFO = 18

const KP_IV = 1

const KP_KEYEXCHANGE_PIN = 32

const KP_KEYLEN = 9

const KP_KEYVAL = 30

const KP_MODE = 4

const KP_MODE_BITS = 5

const KP_OAEP_PARAMS = 36

const KP_P = 11

const KP_PADDING = 3

const KP_PERMISSIONS = 6

const KP_PIN_ID = 43

const KP_PIN_INFO = 44

const KP_PRECOMP_MD5 = 24

const KP_PRECOMP_SHA = 25

const KP_PREHASH = 34

const KP_PUB_EX_LEN = 28

const KP_PUB_EX_VAL = 29

const KP_PUB_PARAMS = 39

const KP_Q = 13

const KP_RA = 16

const KP_RB = 17

const KP_ROUNDS = 35

const KP_RP = 23

const KP_SALT = 2

const KP_SALT_EX = 10

const KP_SCHANNEL_ALG = 20

const KP_SERVER_RANDOM = 22

const KP_SIGNATURE_PIN = 33

const KP_VERIFY_PARAMS = 40

const KP_X = 14

const KP_Y = 15

type KSPIN_LOCK = TKSPIN_LOCK

type KTMOBJECT_CURSOR = TKTMOBJECT_CURSOR

type KTMOBJECT_TYPE = TKTMOBJECT_TYPE

const KTM_MARSHAL_BLOB_VERSION_MAJOR = 1

const KTM_MARSHAL_BLOB_VERSION_MINOR = 1

const LABEL_SECURITY_INFORMATION = 16

type LANA_ENUM = TLANA_ENUM

const LANGGROUPLOCALE_ENUMPROC = 0

type LANGGROUPLOCALE_ENUMPROCA = TLANGGROUPLOCALE_ENUMPROCA

type LANGGROUPLOCALE_ENUMPROCW = TLANGGROUPLOCALE_ENUMPROCW

type LANGID = TLANGID

const LANGUAGEGROUP_ENUMPROC = 0

type LANGUAGEGROUP_ENUMPROCA = TLANGUAGEGROUP_ENUMPROCA

type LANGUAGEGROUP_ENUMPROCW = TLANGUAGEGROUP_ENUMPROCW

const LANG_AFRIKAANS = 54

const LANG_ALBANIAN = 28

const LANG_ALSATIAN = 132

const LANG_AMHARIC = 94

const LANG_ARABIC = 1

const LANG_ARMENIAN = 43

const LANG_ASSAMESE = 77

const LANG_AZERBAIJANI = 44

const LANG_AZERI = 44

const LANG_BANGLA = 69

const LANG_BASHKIR = 109

const LANG_BASQUE = 45

const LANG_BELARUSIAN = 35

const LANG_BENGALI = 69

const LANG_BOSNIAN = 26

const LANG_BOSNIAN_NEUTRAL = 30746

const LANG_BRETON = 126

const LANG_BULGARIAN = 2

const LANG_CATALAN = 3

const LANG_CENTRAL_KURDISH = 146

const LANG_CHEROKEE = 92

const LANG_CHINESE = 4

const LANG_CHINESE_SIMPLIFIED = 4

const LANG_CHINESE_TRADITIONAL = 31748

const LANG_CORSICAN = 131

const LANG_CROATIAN = 26

const LANG_CZECH = 5

const LANG_DANISH = 6

const LANG_DARI = 140

const LANG_DIVEHI = 101

const LANG_DUTCH = 19

const LANG_ENGLISH = 9

const LANG_ESTONIAN = 37

const LANG_FAEROESE = 56

const LANG_FARSI = 41

const LANG_FILIPINO = 100

const LANG_FINNISH = 11

const LANG_FRENCH = 12

const LANG_FRISIAN = 98

const LANG_FULAH = 103

const LANG_GALICIAN = 86

const LANG_GEORGIAN = 55

const LANG_GERMAN = 7

const LANG_GREEK = 8

const LANG_GREENLANDIC = 111

const LANG_GUJARATI = 71

const LANG_HAUSA = 104

const LANG_HEBREW = 13

const LANG_HINDI = 57

const LANG_HUNGARIAN = 14

const LANG_ICELANDIC = 15

const LANG_IGBO = 112

const LANG_INDONESIAN = 33

const LANG_INUKTITUT = 93

const LANG_INVARIANT = 127

const LANG_IRISH = 60

const LANG_ITALIAN = 16

const LANG_JAPANESE = 17

const LANG_KANNADA = 75

const LANG_KASHMIRI = 96

const LANG_KAZAK = 63

const LANG_KHMER = 83

const LANG_KICHE = 134

const LANG_KINYARWANDA = 135

const LANG_KONKANI = 87

const LANG_KOREAN = 18

const LANG_KYRGYZ = 64

const LANG_LAO = 84

const LANG_LATVIAN = 38

const LANG_LITHUANIAN = 39

const LANG_LOWER_SORBIAN = 46

const LANG_LUXEMBOURGISH = 110

const LANG_MACEDONIAN = 47

const LANG_MALAY = 62

const LANG_MALAYALAM = 76

const LANG_MALTESE = 58

const LANG_MANIPURI = 88

const LANG_MAORI = 129

const LANG_MAPUDUNGUN = 122

const LANG_MARATHI = 78

const LANG_MOHAWK = 124

const LANG_MONGOLIAN = 80

const LANG_NEPALI = 97

const LANG_NEUTRAL = 0

const LANG_NORWEGIAN = 20

const LANG_OCCITAN = 130

const LANG_ODIA = 72

const LANG_ORIYA = 72

const LANG_PASHTO = 99

const LANG_PERSIAN = 41

const LANG_POLISH = 21

const LANG_PORTUGUESE = 22

const LANG_PULAR = 103

const LANG_PUNJABI = 70

const LANG_QUECHUA = 107

const LANG_ROMANIAN = 24

const LANG_ROMANSH = 23

const LANG_RUSSIAN = 25

const LANG_SAKHA = 133

const LANG_SAMI = 59

const LANG_SANSKRIT = 79

const LANG_SCOTTISH_GAELIC = 145

const LANG_SERBIAN = 26

const LANG_SERBIAN_NEUTRAL = 31770

const LANG_SINDHI = 89

const LANG_SINHALESE = 91

const LANG_SLOVAK = 27

const LANG_SLOVENIAN = 36

const LANG_SOTHO = 108

const LANG_SPANISH = 10

const LANG_SWAHILI = 65

const LANG_SWEDISH = 29

const LANG_SYRIAC = 90

const LANG_TAJIK = 40

const LANG_TAMAZIGHT = 95

const LANG_TAMIL = 73

const LANG_TATAR = 68

const LANG_TELUGU = 74

const LANG_THAI = 30

const LANG_TIBETAN = 81

const LANG_TIGRIGNA = 115

const LANG_TIGRINYA = 115

const LANG_TSWANA = 50

const LANG_TURKISH = 31

const LANG_TURKMEN = 66

const LANG_UIGHUR = 128

const LANG_UKRAINIAN = 34

const LANG_UPPER_SORBIAN = 46

const LANG_URDU = 32

const LANG_UZBEK = 67

const LANG_VALENCIAN = 3

const LANG_VIETNAMESE = 42

const LANG_WELSH = 82

const LANG_WOLOF = 136

const LANG_XHOSA = 52

const LANG_YAKUT = 133

const LANG_YI = 120

const LANG_YORUBA = 106

const LANG_ZULU = 53

type LARGE_INTEGER = TLARGE_INTEGER

type LASTINPUTINFO = TLASTINPUTINFO

type LATENCY_TIME = TLATENCY_TIME

type LAYERPLANEDESCRIPTOR = TLAYERPLANEDESCRIPTOR

const LAYOUT_BITMAPORIENTATIONPRESERVED = 8

const LAYOUT_BTT = 2

const LAYOUT_ORIENTATIONMASK = 7

const LAYOUT_RTL = 1

const LAYOUT_VBH = 4

const LBN_DBLCLK = 2

const LBN_ERRSPACE = -2

const LBN_KILLFOCUS = 5

const LBN_SELCANCEL = 3

const LBN_SELCHANGE = 1

const LBN_SETFOCUS = 4

const LBSELCHSTRINGA = "commdlg_LBSelChangedNotify"

const LBSELCHSTRINGW = "commdlg_LBSelChangedNotify"

const LBS_COMBOBOX = 32768

const LBS_DISABLENOSCROLL = 4096

const LBS_EXTENDEDSEL = 2048

const LBS_HASSTRINGS = 64

const LBS_MULTICOLUMN = 512

const LBS_MULTIPLESEL = 8

const LBS_NODATA = 8192

const LBS_NOINTEGRALHEIGHT = 256

const LBS_NOREDRAW = 4

const LBS_NOSEL = 16384

const LBS_NOTIFY = 1

const LBS_OWNERDRAWFIXED = 16

const LBS_OWNERDRAWVARIABLE = 32

const LBS_SORT = 2

const LBS_STANDARD = 10485763

const LBS_USETABSTOPS = 128

const LBS_WANTKEYBOARDINPUT = 1024

const LB_ADDFILE = 406

const LB_ADDSTRING = 384

const LB_CTLCODE = 0

const LB_DELETESTRING = 386

const LB_DIR = 397

const LB_ERR = -1

const LB_ERRSPACE = -2

const LB_FINDSTRING = 399

const LB_FINDSTRINGEXACT = 418

const LB_GETANCHORINDEX = 413

const LB_GETCARETINDEX = 415

const LB_GETCOUNT = 395

const LB_GETCURSEL = 392

const LB_GETHORIZONTALEXTENT = 403

const LB_GETITEMDATA = 409

const LB_GETITEMHEIGHT = 417

const LB_GETITEMRECT = 408

const LB_GETLISTBOXINFO = 434

const LB_GETLOCALE = 422

const LB_GETSEL = 391

const LB_GETSELCOUNT = 400

const LB_GETSELITEMS = 401

const LB_GETTEXT = 393

const LB_GETTEXTLEN = 394

const LB_GETTOPINDEX = 398

const LB_INITSTORAGE = 424

const LB_INSERTSTRING = 385

const LB_ITEMFROMPOINT = 425

const LB_MSGMAX = 435

const LB_OKAY = 0

const LB_RESETCONTENT = 388

const LB_SELECTSTRING = 396

const LB_SELITEMRANGE = 411

const LB_SELITEMRANGEEX = 387

const LB_SETANCHORINDEX = 412

const LB_SETCARETINDEX = 414

const LB_SETCOLUMNWIDTH = 405

const LB_SETCOUNT = 423

const LB_SETCURSEL = 390

const LB_SETHORIZONTALEXTENT = 404

const LB_SETITEMDATA = 410

const LB_SETITEMHEIGHT = 416

const LB_SETLOCALE = 421

const LB_SETSEL = 389

const LB_SETTABSTOPS = 402

const LB_SETTOPINDEX = 407

type LCID = TLCID

const LCID_ALTERNATE_SORTS = 4

const LCID_INSTALLED = 1

const LCID_SUPPORTED = 2

const LCMAP_BYTEREV = 2048

const LCMAP_FULLWIDTH = 8388608

const LCMAP_HALFWIDTH = 4194304

const LCMAP_HASH = 262144

const LCMAP_HIRAGANA = 1048576

const LCMAP_KATAKANA = 2097152

const LCMAP_LINGUISTIC_CASING = 16777216

const LCMAP_LOWERCASE = 256

const LCMAP_SIMPLIFIED_CHINESE = 33554432

const LCMAP_SORTHANDLE = 536870912

const LCMAP_SORTKEY = 1024

const LCMAP_TITLECASE = 768

const LCMAP_TRADITIONAL_CHINESE = 67108864

const LCMAP_UPPERCASE = 512

const LCMapString = 0

type LCSCSTYPE = TLCSCSTYPE

type LCSGAMUTMATCH = TLCSGAMUTMATCH

const LCS_CALIBRATED_RGB = 0

const LCS_GM_ABS_COLORIMETRIC = 8

const LCS_GM_BUSINESS = 1

const LCS_GM_GRAPHICS = 2

const LCS_GM_IMAGES = 4

const LCS_SIGNATURE = 80

const LCS_WINDOWS_COLOR_SPACE = 87

const LCS_sRGB = 115

type LCTYPE = TLCTYPE

type LC_ID = TLC_ID

const LC_INTERIORS = 128

const LC_MARKER = 4

const LC_NONE = 0

const LC_POLYLINE = 2

const LC_POLYMARKER = 8

const LC_STYLED = 32

const LC_WIDE = 16

const LC_WIDESTYLED = 64

type LDT_ENTRY = TLDT_ENTRY

const LEFT_ALT_PRESSED = 2

const LEFT_CTRL_PRESSED = 8

const LEGACY_DH_PRIVATE_BLOB = "CAPIDHPRIVATEBLOB"

const LEGACY_DH_PUBLIC_BLOB = "CAPIDHPUBLICBLOB"

const LEGACY_DSA_PRIVATE_BLOB = "CAPIDSAPRIVATEBLOB"

const LEGACY_DSA_PUBLIC_BLOB = "CAPIDSAPUBLICBLOB"

const LEGACY_DSA_V2_PRIVATE_BLOB = "V2CAPIDSAPRIVATEBLOB"

const LEGACY_DSA_V2_PUBLIC_BLOB = "V2CAPIDSAPUBLICBLOB"

const LEGACY_RSAPRIVATE_BLOB = "CAPIPRIVATEBLOB"

const LEGACY_RSAPUBLIC_BLOB = "CAPIPUBLICBLOB"

const LF_FACESIZE = 32

const LF_FULLFACESIZE = 64

type LGRPID = TLGRPID

const LGRPID_ARABIC = 13

const LGRPID_ARMENIAN = 17

const LGRPID_BALTIC = 3

const LGRPID_CENTRAL_EUROPE = 2

const LGRPID_CYRILLIC = 5

const LGRPID_GEORGIAN = 16

const LGRPID_GREEK = 4

const LGRPID_HEBREW = 12

const LGRPID_INDIC = 15

const LGRPID_INSTALLED = 1

const LGRPID_JAPANESE = 7

const LGRPID_KOREAN = 8

const LGRPID_SIMPLIFIED_CHINESE = 10

const LGRPID_SUPPORTED = 2

const LGRPID_THAI = 11

const LGRPID_TRADITIONAL_CHINESE = 9

const LGRPID_TURKIC = 6

const LGRPID_TURKISH = 6

const LGRPID_VIETNAMESE = 14

const LGRPID_WESTERN_EUROPE = 1

const LHND = 66

type LIBFLAGS = TLIBFLAGS

const LINECAPS = 30

type LINEDDAPROC = TLINEDDAPROC

type LINGER = TLINGER

const LINGUISTIC_IGNORECASE = 16

const LINGUISTIC_IGNOREDIACRITIC = 32

type LINKSRCDESCRIPTOR = TLINKSRCDESCRIPTOR

const LISTEN_OUTSTANDING = 1

type LIST_ENTRY = TLIST_ENTRY

type LIST_ENTRY32 = TLIST_ENTRY32

type LIST_ENTRY64 = TLIST_ENTRY64

const LLKHF_ALTDOWN = 32

const LLKHF_EXTENDED = 1

const LLKHF_INJECTED = 16

const LLKHF_LOWER_IL_INJECTED = 2

const LLKHF_UP = 128

const LLMHF_INJECTED = 1

const LLMHF_LOWER_IL_INJECTED = 2

const LMEM_DISCARDABLE = 3840

const LMEM_DISCARDED = 16384

const LMEM_FIXED = 0

const LMEM_INVALID_HANDLE = 32768

const LMEM_LOCKCOUNT = 255

const LMEM_MODIFY = 128

const LMEM_MOVEABLE = 2

const LMEM_NOCOMPACT = 16

const LMEM_NODISCARD = 32

const LMEM_VALID_FLAGS = 3954

const LMEM_ZEROINIT = 64

const LOAD_DLL_DEBUG_EVENT = 6

type LOAD_DLL_DEBUG_INFO = TLOAD_DLL_DEBUG_INFO

const LOAD_IGNORE_CODE_AUTHZ_LEVEL = 16

const LOAD_LIBRARY_AS_DATAFILE = 2

const LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 64

const LOAD_LIBRARY_AS_IMAGE_RESOURCE = 32

const LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 128

const LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 512

const LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 4096

const LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 256

const LOAD_LIBRARY_SEARCH_SYSTEM32 = 2048

const LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 2048

const LOAD_LIBRARY_SEARCH_USER_DIRS = 1024

const LOAD_TLB_AS_32BIT = 32

const LOAD_TLB_AS_64BIT = 64

const LOAD_WITH_ALTERED_SEARCH_PATH = 8

type LOCALESIGNATURE = TLOCALESIGNATURE

const LOCALE_ALL = 0

const LOCALE_ALLOW_NEUTRAL_NAMES = 134217728

const LOCALE_ALTERNATE_SORTS = 4

const LOCALE_ENUMPROC = 0

type LOCALE_ENUMPROCA = TLOCALE_ENUMPROCA

type LOCALE_ENUMPROCEX = TLOCALE_ENUMPROCEX

type LOCALE_ENUMPROCW = TLOCALE_ENUMPROCW

const LOCALE_FONTSIGNATURE = 88

const LOCALE_ICALENDARTYPE = 4105

const LOCALE_ICENTURY = 36

const LOCALE_ICOUNTRY = 5

const LOCALE_ICURRDIGITS = 25

const LOCALE_ICURRENCY = 27

const LOCALE_IDATE = 33

const LOCALE_IDAYLZERO = 38

const LOCALE_IDEFAULTANSICODEPAGE = 4100

const LOCALE_IDEFAULTCODEPAGE = 11

const LOCALE_IDEFAULTCOUNTRY = 10

const LOCALE_IDEFAULTEBCDICCODEPAGE = 4114

const LOCALE_IDEFAULTLANGUAGE = 9

const LOCALE_IDEFAULTMACCODEPAGE = 4113

const LOCALE_IDIALINGCODE = 5

const LOCALE_IDIGITS = 17

const LOCALE_IDIGITSUBSTITUTION = 4116

const LOCALE_IFIRSTDAYOFWEEK = 4108

const LOCALE_IFIRSTWEEKOFYEAR = 4109

const LOCALE_IGEOID = 91

const LOCALE_IINTLCURRDIGITS = 26

const LOCALE_ILANGUAGE = 1

const LOCALE_ILDATE = 34

const LOCALE_ILZERO = 18

const LOCALE_IMEASURE = 13

const LOCALE_IMONLZERO = 39

const LOCALE_INEGATIVEPERCENT = 116

const LOCALE_INEGCURR = 28

const LOCALE_INEGNUMBER = 4112

const LOCALE_INEGSEPBYSPACE = 87

const LOCALE_INEGSIGNPOSN = 83

const LOCALE_INEGSYMPRECEDES = 86

const LOCALE_INEUTRAL = 113

const LOCALE_IOPTIONALCALENDAR = 4107

const LOCALE_IPAPERSIZE = 4106

const LOCALE_IPOSITIVEPERCENT = 117

const LOCALE_IPOSSEPBYSPACE = 85

const LOCALE_IPOSSIGNPOSN = 82

const LOCALE_IPOSSYMPRECEDES = 84

const LOCALE_IREADINGLAYOUT = 112

const LOCALE_ITIME = 35

const LOCALE_ITIMEMARKPOSN = 4101

const LOCALE_ITLZERO = 37

const LOCALE_NAME_INVARIANT = ""

const LOCALE_NAME_MAX_LENGTH = 85

const LOCALE_NAME_SYSTEM_DEFAULT = "!x-sys-default-locale"

const LOCALE_NAME_USER_DEFAULT = "NULL"

const LOCALE_NEUTRALDATA = 16

const LOCALE_NOUSEROVERRIDE = 2147483648

const LOCALE_REPLACEMENT = 8

const LOCALE_RETURN_GENITIVE_NAMES = 268435456

const LOCALE_RETURN_NUMBER = 536870912

const LOCALE_S1159 = 40

const LOCALE_S2359 = 41

const LOCALE_SABBREVCTRYNAME = 7

const LOCALE_SABBREVDAYNAME1 = 49

const LOCALE_SABBREVDAYNAME2 = 50

const LOCALE_SABBREVDAYNAME3 = 51

const LOCALE_SABBREVDAYNAME4 = 52

const LOCALE_SABBREVDAYNAME5 = 53

const LOCALE_SABBREVDAYNAME6 = 54

const LOCALE_SABBREVDAYNAME7 = 55

const LOCALE_SABBREVLANGNAME = 3

const LOCALE_SABBREVMONTHNAME1 = 68

const LOCALE_SABBREVMONTHNAME10 = 77

const LOCALE_SABBREVMONTHNAME11 = 78

const LOCALE_SABBREVMONTHNAME12 = 79

const LOCALE_SABBREVMONTHNAME13 = 4111

const LOCALE_SABBREVMONTHNAME2 = 69

const LOCALE_SABBREVMONTHNAME3 = 70

const LOCALE_SABBREVMONTHNAME4 = 71

const LOCALE_SABBREVMONTHNAME5 = 72

const LOCALE_SABBREVMONTHNAME6 = 73

const LOCALE_SABBREVMONTHNAME7 = 74

const LOCALE_SABBREVMONTHNAME8 = 75

const LOCALE_SABBREVMONTHNAME9 = 76

const LOCALE_SAM = 40

const LOCALE_SCONSOLEFALLBACKNAME = 110

const LOCALE_SCOUNTRY = 6

const LOCALE_SCURRENCY = 20

const LOCALE_SDATE = 29

const LOCALE_SDAYNAME1 = 42

const LOCALE_SDAYNAME2 = 43

const LOCALE_SDAYNAME3 = 44

const LOCALE_SDAYNAME4 = 45

const LOCALE_SDAYNAME5 = 46

const LOCALE_SDAYNAME6 = 47

const LOCALE_SDAYNAME7 = 48

const LOCALE_SDECIMAL = 14

const LOCALE_SDURATION = 93

const LOCALE_SENGCOUNTRY = 4098

const LOCALE_SENGCURRNAME = 4103

const LOCALE_SENGLANGUAGE = 4097

const LOCALE_SENGLISHCOUNTRYNAME = 4098

const LOCALE_SENGLISHDISPLAYNAME = 114

const LOCALE_SENGLISHLANGUAGENAME = 4097

const LOCALE_SGROUPING = 16

const LOCALE_SINTLSYMBOL = 21

const LOCALE_SISO3166CTRYNAME = 90

const LOCALE_SISO3166CTRYNAME2 = 104

const LOCALE_SISO639LANGNAME = 89

const LOCALE_SISO639LANGNAME2 = 103

const LOCALE_SKEYBOARDSTOINSTALL = 94

const LOCALE_SLANGDISPLAYNAME = 111

const LOCALE_SLANGUAGE = 2

const LOCALE_SLIST = 12

const LOCALE_SLOCALIZEDCOUNTRYNAME = 6

const LOCALE_SLOCALIZEDDISPLAYNAME = 2

const LOCALE_SLOCALIZEDLANGUAGENAME = 111

const LOCALE_SLONGDATE = 32

const LOCALE_SMONDECIMALSEP = 22

const LOCALE_SMONGROUPING = 24

const LOCALE_SMONTHDAY = 120

const LOCALE_SMONTHNAME1 = 56

const LOCALE_SMONTHNAME10 = 65

const LOCALE_SMONTHNAME11 = 66

const LOCALE_SMONTHNAME12 = 67

const LOCALE_SMONTHNAME13 = 4110

const LOCALE_SMONTHNAME2 = 57

const LOCALE_SMONTHNAME3 = 58

const LOCALE_SMONTHNAME4 = 59

const LOCALE_SMONTHNAME5 = 60

const LOCALE_SMONTHNAME6 = 61

const LOCALE_SMONTHNAME7 = 62

const LOCALE_SMONTHNAME8 = 63

const LOCALE_SMONTHNAME9 = 64

const LOCALE_SMONTHOUSANDSEP = 23

const LOCALE_SNAME = 92

const LOCALE_SNAN = 105

const LOCALE_SNATIVECOUNTRYNAME = 8

const LOCALE_SNATIVECTRYNAME = 8

const LOCALE_SNATIVECURRNAME = 4104

const LOCALE_SNATIVEDIGITS = 19

const LOCALE_SNATIVEDISPLAYNAME = 115

const LOCALE_SNATIVELANGNAME = 4

const LOCALE_SNATIVELANGUAGENAME = 4

const LOCALE_SNEGATIVESIGN = 81

const LOCALE_SNEGINFINITY = 107

const LOCALE_SOPENTYPELANGUAGETAG = 122

const LOCALE_SPARENT = 109

const LOCALE_SPECIFICDATA = 32

const LOCALE_SPERCENT = 118

const LOCALE_SPERMILLE = 119

const LOCALE_SPM = 41

const LOCALE_SPOSINFINITY = 106

const LOCALE_SPOSITIVESIGN = 80

const LOCALE_SRELATIVELONGDATE = 124

const LOCALE_SSCRIPTS = 108

const LOCALE_SSHORTDATE = 31

const LOCALE_SSHORTESTAM = 126

const LOCALE_SSHORTESTDAYNAME1 = 96

const LOCALE_SSHORTESTDAYNAME2 = 97

const LOCALE_SSHORTESTDAYNAME3 = 98

const LOCALE_SSHORTESTDAYNAME4 = 99

const LOCALE_SSHORTESTDAYNAME5 = 100

const LOCALE_SSHORTESTDAYNAME6 = 101

const LOCALE_SSHORTESTDAYNAME7 = 102

const LOCALE_SSHORTESTPM = 127

const LOCALE_SSHORTTIME = 121

const LOCALE_SSORTLOCALE = 123

const LOCALE_SSORTNAME = 4115

const LOCALE_STHOUSAND = 15

const LOCALE_STIME = 30

const LOCALE_STIMEFORMAT = 4099

const LOCALE_SUPPLEMENTAL = 2

const LOCALE_SYEARMONTH = 4102

const LOCALE_USE_CP_ACP = 1073741824

const LOCALE_USE_NLS = 268435456

const LOCALE_WINDOWS = 1

type LOCALHANDLE = TLOCALHANDLE

const LOCKFILE_EXCLUSIVE_LOCK = 2

const LOCKFILE_FAIL_IMMEDIATELY = 1

type LOCKTYPE = TLOCKTYPE

const LOCK_ELEMENT = 0

const LOCK_UNLOCK_DOOR = 2

const LOCK_UNLOCK_IEPORT = 1

const LOCK_UNLOCK_KEYPAD = 4

type LOGBRUSH = TLOGBRUSH

type LOGBRUSH32 = TLOGBRUSH32

type LOGCOLORSPACE = TLOGCOLORSPACE

type LOGCOLORSPACEA = TLOGCOLORSPACEA

type LOGCOLORSPACEW = TLOGCOLORSPACEW

type LOGFONT = TLOGFONT

type LOGFONTA = TLOGFONTA

type LOGFONTW = TLOGFONTW

type LOGICAL_PROCESSOR_RELATIONSHIP = TLOGICAL_PROCESSOR_RELATIONSHIP

const LOGON32_LOGON_BATCH = 4

const LOGON32_LOGON_INTERACTIVE = 2

const LOGON32_LOGON_NETWORK = 3

const LOGON32_LOGON_NETWORK_CLEARTEXT = 8

const LOGON32_LOGON_NEW_CREDENTIALS = 9

const LOGON32_LOGON_SERVICE = 5

const LOGON32_LOGON_UNLOCK = 7

const LOGON32_PROVIDER_DEFAULT = 0

const LOGON32_PROVIDER_VIRTUAL = 4

const LOGON32_PROVIDER_WINNT35 = 1

const LOGON32_PROVIDER_WINNT40 = 2

const LOGON32_PROVIDER_WINNT50 = 3

const LOGON_NETCREDENTIALS_ONLY = 2

const LOGON_WITH_PROFILE = 1

const LOGON_ZERO_PASSWORD_BUFFER = 2147483648

type LOGPALETTE = TLOGPALETTE

type LOGPEN = TLOGPEN

const LOGPIXELSX = 88

const LOGPIXELSY = 90

type LONG = TLONG

type LONG32 = TLONG32

type LONG64 = TLONG64

type LONGLONG = TLONGLONG

type LONG_PTR = TLONG_PTR

type LOOKUP_STREAM_FROM_CLUSTER_ENTRY = TLOOKUP_STREAM_FROM_CLUSTER_ENTRY

const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA = 16777216

const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX = 33554432

const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK = 4278190080

const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM = 50331648

const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET = 2

const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE = 4

const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE = 1

const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE = 8

type LOOKUP_STREAM_FROM_CLUSTER_INPUT = TLOOKUP_STREAM_FROM_CLUSTER_INPUT

type LOOKUP_STREAM_FROM_CLUSTER_OUTPUT = TLOOKUP_STREAM_FROM_CLUSTER_OUTPUT

const LOW_SURROGATE_END = 57343

const LOW_SURROGATE_START = 56320

type LPABC = TLPABC

type LPABCFLOAT = TLPABCFLOAT

type LPACCEL = TLPACCEL

type LPACCESSTIMEOUT = TLPACCESSTIMEOUT

type LPADDJOB_INFO_1 = TLPADDJOB_INFO_1

type LPADDJOB_INFO_1A = TLPADDJOB_INFO_1A

type LPADDJOB_INFO_1W = TLPADDJOB_INFO_1W

type LPADDREXCLUSIONCONTROL = TLPADDREXCLUSIONCONTROL

type LPADDRTRACKINGCONTROL = TLPADDRTRACKINGCONTROL

type LPADVISESINK = TLPADVISESINK

type LPADVISESINK2 = TLPADVISESINK2

type LPALTTABINFO = TLPALTTABINFO

type LPANIMATIONINFO = TLPANIMATIONINFO

type LPARAM = TLPARAM

type LPAUDIODESCRIPTION = TLPAUDIODESCRIPTION

type LPAUTHENTICATION = TLPAUTHENTICATION

type LPAUTHENTICATIONEX = TLPAUTHENTICATIONEX

type LPAUXCAPS = TLPAUXCAPS

type LPAUXCAPS2 = TLPAUXCAPS2

type LPAUXCAPS2A = TLPAUXCAPS2A

type LPAUXCAPS2W = TLPAUXCAPS2W

type LPAUXCAPSA = TLPAUXCAPSA

type LPAUXCAPSW = TLPAUXCAPSW

type LPAXESLIST = TLPAXESLIST

type LPAXESLISTA = TLPAXESLISTA

type LPAXESLISTW = TLPAXESLISTW

type LPAXISINFO = TLPAXISINFO

type LPAXISINFOA = TLPAXISINFOA

type LPAXISINFOW = TLPAXISINFOW

type LPBC = TLPBC

type LPBIDI_DATA = TLPBIDI_DATA

type LPBIDI_REQUEST_CONTAINER = TLPBIDI_REQUEST_CONTAINER

type LPBIDI_REQUEST_DATA = TLPBIDI_REQUEST_DATA

type LPBIDI_RESPONSE_CONTAINER = TLPBIDI_RESPONSE_CONTAINER

type LPBIDI_RESPONSE_DATA = TLPBIDI_RESPONSE_DATA

type LPBINDCALLBACKREDIRECT = TLPBINDCALLBACKREDIRECT

type LPBINDCTX = TLPBINDCTX

type LPBINDHOST = TLPBINDHOST

type LPBINDING = TLPBINDING

type LPBINDPROTOCOL = TLPBINDPROTOCOL

type LPBINDPTR = TLPBINDPTR

type LPBINDSTATUSCALLBACK = TLPBINDSTATUSCALLBACK

type LPBINDSTATUSCALLBACKEX = TLPBINDSTATUSCALLBACKEX

type LPBIND_OPTS = TLPBIND_OPTS

type LPBIND_OPTS2 = TLPBIND_OPTS2

type LPBIND_OPTS3 = TLPBIND_OPTS3

type LPBITMAP = TLPBITMAP

type LPBITMAPCOREHEADER = TLPBITMAPCOREHEADER

type LPBITMAPCOREINFO = TLPBITMAPCOREINFO

type LPBITMAPFILEHEADER = TLPBITMAPFILEHEADER

type LPBITMAPINFO = TLPBITMAPINFO

type LPBITMAPINFOHEADER = TLPBITMAPINFOHEADER

type LPBITMAPV4HEADER = TLPBITMAPV4HEADER

type LPBITMAPV5HEADER = TLPBITMAPV5HEADER

type LPBLOB = TLPBLOB

type LPBOOL = TLPBOOL

type LPBORDERWIDTHS = TLPBORDERWIDTHS

type LPBSTR = TLPBSTR

type LPBSTRBLOB = TLPBSTRBLOB

type LPBYTE = TLPBYTE

type LPBY_HANDLE_FILE_INFORMATION = TLPBY_HANDLE_FILE_INFORMATION

type LPCANCELMETHODCALLS = TLPCANCELMETHODCALLS

type LPCANDIDATEFORM = TLPCANDIDATEFORM

type LPCANDIDATELIST = TLPCANDIDATELIST

type LPCATALOGFILEINFO = TLPCATALOGFILEINFO

type LPCBORDERWIDTHS = TLPCBORDERWIDTHS

type LPCBTACTIVATESTRUCT = TLPCBTACTIVATESTRUCT

type LPCBT_CREATEWND = TLPCBT_CREATEWND

type LPCBT_CREATEWNDA = TLPCBT_CREATEWNDA

type LPCBT_CREATEWNDW = TLPCBT_CREATEWNDW

type LPCBYTE = TLPCBYTE

type LPCCH = TLPCCH

type LPCCHOOKPROC = TLPCCHOOKPROC

type LPCDLGTEMPLATE = TLPCDLGTEMPLATE

type LPCDLGTEMPLATEA = TLPCDLGTEMPLATEA

type LPCDLGTEMPLATEW = TLPCDLGTEMPLATEW

type LPCFHOOKPROC = TLPCFHOOKPROC

type LPCGUID = TLPCGUID

type LPCH = TLPCH

type LPCHARSETINFO = TLPCHARSETINFO

type LPCHOOSECOLOR = TLPCHOOSECOLOR

type LPCHOOSECOLORA = TLPCHOOSECOLORA

type LPCHOOSECOLORW = TLPCHOOSECOLORW

type LPCHOOSEFONT = TLPCHOOSEFONT

type LPCHOOSEFONTA = TLPCHOOSEFONTA

type LPCHOOSEFONTW = TLPCHOOSEFONTW

type LPCIEXYZ = TLPCIEXYZ

type LPCIEXYZTRIPLE = TLPCIEXYZTRIPLE

type LPCLASSFACTORY = TLPCLASSFACTORY

type LPCLIENTCREATESTRUCT = TLPCLIENTCREATESTRUCT

type LPCLIPFORMAT = TLPCLIPFORMAT

type LPCLSID = TLPCLSID

type LPCMENUINFO = TLPCMENUINFO

type LPCMENUITEMINFO = TLPCMENUITEMINFO

type LPCMENUITEMINFOA = TLPCMENUITEMINFOA

type LPCMENUITEMINFOW = TLPCMENUITEMINFOW

type LPCMMCKINFO = TLPCMMCKINFO

type LPCMMIOINFO = TLPCMMIOINFO

type LPCODEBASEHOLD = TLPCODEBASEHOLD

type LPCODEINSTALL = TLPCODEINSTALL

type LPCOLESTR = TLPCOLESTR

type LPCOLORADJUSTMENT = TLPCOLORADJUSTMENT

type LPCOLORREF = TLPCOLORREF

type LPCOMBOBOXINFO = TLPCOMBOBOXINFO

type LPCOMMCONFIG = TLPCOMMCONFIG

type LPCOMMPROP = TLPCOMMPROP

type LPCOMMTIMEOUTS = TLPCOMMTIMEOUTS

type LPCOMPAREITEMSTRUCT = TLPCOMPAREITEMSTRUCT

type LPCOMPOSITIONFORM = TLPCOMPOSITIONFORM

type LPCOMSTAT = TLPCOMSTAT

type LPCONNECTDLGSTRUCT = TLPCONNECTDLGSTRUCT

type LPCONNECTDLGSTRUCTA = TLPCONNECTDLGSTRUCTA

type LPCONNECTDLGSTRUCTW = TLPCONNECTDLGSTRUCTW

type LPCONTEXT = TLPCONTEXT

type LPCPINFO = TLPCPINFO

type LPCPINFOEX = TLPCPINFOEX

type LPCPINFOEXA = TLPCPINFOEXA

type LPCPINFOEXW = TLPCPINFOEXW

const LPCPROPSHEETHEADER = 0

type LPCPROPSHEETHEADERA = TLPCPROPSHEETHEADERA

type LPCPROPSHEETHEADERW = TLPCPROPSHEETHEADERW

const LPCPROPSHEETPAGE = 0

type LPCPROPSHEETPAGEA = TLPCPROPSHEETPAGEA

type LPCPROPSHEETPAGEA_LATEST = TLPCPROPSHEETPAGEA_LATEST

type LPCPROPSHEETPAGEA_V1 = TLPCPROPSHEETPAGEA_V1

type LPCPROPSHEETPAGEA_V2 = TLPCPROPSHEETPAGEA_V2

type LPCPROPSHEETPAGEA_V3 = TLPCPROPSHEETPAGEA_V3

type LPCPROPSHEETPAGEW = TLPCPROPSHEETPAGEW

type LPCPROPSHEETPAGEW_LATEST = TLPCPROPSHEETPAGEW_LATEST

type LPCPROPSHEETPAGEW_V1 = TLPCPROPSHEETPAGEW_V1

type LPCPROPSHEETPAGEW_V2 = TLPCPROPSHEETPAGEW_V2

type LPCPROPSHEETPAGEW_V3 = TLPCPROPSHEETPAGEW_V3

const LPCPROPSHEETPAGE_LATEST = 0

const LPCPROPSHEETPAGE_V1 = 0

const LPCPROPSHEETPAGE_V2 = 0

const LPCPROPSHEETPAGE_V3 = 0

type LPCREATEERRORINFO = TLPCREATEERRORINFO

type LPCREATEFILE2_EXTENDED_PARAMETERS = TLPCREATEFILE2_EXTENDED_PARAMETERS

type LPCREATESTRUCT = TLPCREATESTRUCT

type LPCREATESTRUCTA = TLPCREATESTRUCTA

type LPCREATESTRUCTW = TLPCREATESTRUCTW

type LPCREATETYPEINFO = TLPCREATETYPEINFO

type LPCREATETYPEINFO2 = TLPCREATETYPEINFO2

type LPCREATETYPELIB = TLPCREATETYPELIB

type LPCREATETYPELIB2 = TLPCREATETYPELIB2

type LPCREATE_PROCESS_DEBUG_INFO = TLPCREATE_PROCESS_DEBUG_INFO

type LPCREATE_THREAD_DEBUG_INFO = TLPCREATE_THREAD_DEBUG_INFO

type LPCRECT = TLPCRECT

type LPCRECTL = TLPCRECTL

type LPCRITICAL_SECTION = TLPCRITICAL_SECTION

type LPCRITICAL_SECTION_DEBUG = TLPCRITICAL_SECTION_DEBUG

type LPCSCARD_IO_REQUEST = TLPCSCARD_IO_REQUEST

type LPCSCROLLINFO = TLPCSCROLLINFO

type LPCSTR = TLPCSTR

type LPCTCH = TLPCTCH

type LPCTSTR = TLPCTSTR

type LPCURRENCYFMT = TLPCURRENCYFMT

type LPCURRENCYFMTA = TLPCURRENCYFMTA

type LPCURRENCYFMTW = TLPCURRENCYFMTW

type LPCURSORINFO = TLPCURSORINFO

type LPCURSORSHAPE = TLPCURSORSHAPE

type LPCUSTDATA = TLPCUSTDATA

type LPCUSTDATAITEM = TLPCUSTDATAITEM

type LPCUTSTR = TLPCUTSTR

type LPCUWCHAR = TLPCUWCHAR

type LPCUWSTR = TLPCUWSTR

type LPCVOID = TLPCVOID

type LPCWAVEFORMATEX = TLPCWAVEFORMATEX

type LPCWCH = TLPCWCH

type LPCWCHAR = TLPCWCHAR

type LPCWPRETSTRUCT = TLPCWPRETSTRUCT

type LPCWPSTRUCT = TLPCWPSTRUCT

type LPCWSTR = TLPCWSTR

type LPCY = TLPCY

type LPDATAADVISEHOLDER = TLPDATAADVISEHOLDER

type LPDATAFILTER = TLPDATAFILTER

type LPDATAOBJECT = TLPDATAOBJECT

type LPDATATYPES_INFO_1 = TLPDATATYPES_INFO_1

type LPDATATYPES_INFO_1A = TLPDATATYPES_INFO_1A

type LPDATATYPES_INFO_1W = TLPDATATYPES_INFO_1W

type LPDCB = TLPDCB

type LPDEBUGHOOKINFO = TLPDEBUGHOOKINFO

type LPDEBUG_EVENT = TLPDEBUG_EVENT

type LPDECIMAL = TLPDECIMAL

type LPDELETEITEMSTRUCT = TLPDELETEITEMSTRUCT

type LPDESIGNVECTOR = TLPDESIGNVECTOR

type LPDEVMODE = TLPDEVMODE

type LPDEVMODEA = TLPDEVMODEA

type LPDEVMODEW = TLPDEVMODEW

type LPDEVNAMES = TLPDEVNAMES

type LPDIBSECTION = TLPDIBSECTION

type LPDISCDLGSTRUCT = TLPDISCDLGSTRUCT

type LPDISCDLGSTRUCTA = TLPDISCDLGSTRUCTA

type LPDISCDLGSTRUCTW = TLPDISCDLGSTRUCTW

type LPDISPATCH = TLPDISPATCH

type LPDISPLAY_DEVICE = TLPDISPLAY_DEVICE

type LPDISPLAY_DEVICEA = TLPDISPLAY_DEVICEA

type LPDISPLAY_DEVICEW = TLPDISPLAY_DEVICEW

type LPDLGITEMTEMPLATE = TLPDLGITEMTEMPLATE

type LPDLGITEMTEMPLATEA = TLPDLGITEMTEMPLATEA

type LPDLGITEMTEMPLATEW = TLPDLGITEMTEMPLATEW

type LPDLGTEMPLATE = TLPDLGTEMPLATE

type LPDLGTEMPLATEA = TLPDLGTEMPLATEA

type LPDLGTEMPLATEW = TLPDLGTEMPLATEW

type LPDOCINFO = TLPDOCINFO

type LPDOCINFOA = TLPDOCINFOA

type LPDOCINFOW = TLPDOCINFOW

type LPDOC_INFO_1 = TLPDOC_INFO_1

type LPDOC_INFO_1A = TLPDOC_INFO_1A

type LPDOC_INFO_1W = TLPDOC_INFO_1W

type LPDOC_INFO_2 = TLPDOC_INFO_2

type LPDOC_INFO_2A = TLPDOC_INFO_2A

type LPDOC_INFO_2W = TLPDOC_INFO_2W

type LPDOC_INFO_3 = TLPDOC_INFO_3

type LPDOC_INFO_3A = TLPDOC_INFO_3A

type LPDOC_INFO_3W = TLPDOC_INFO_3W

type LPDRAGINFO = TLPDRAGINFO

type LPDRAGINFOA = TLPDRAGINFOA

type LPDRAGINFOW = TLPDRAGINFOW

type LPDRAWITEMSTRUCT = TLPDRAWITEMSTRUCT

type LPDRAWTEXTPARAMS = TLPDRAWTEXTPARAMS

type LPDRIVERSTATUS = TLPDRIVERSTATUS

type LPDRIVER_INFO_1 = TLPDRIVER_INFO_1

type LPDRIVER_INFO_1A = TLPDRIVER_INFO_1A

type LPDRIVER_INFO_1W = TLPDRIVER_INFO_1W

type LPDRIVER_INFO_2 = TLPDRIVER_INFO_2

type LPDRIVER_INFO_2A = TLPDRIVER_INFO_2A

type LPDRIVER_INFO_2W = TLPDRIVER_INFO_2W

type LPDRIVER_INFO_3 = TLPDRIVER_INFO_3

type LPDRIVER_INFO_3A = TLPDRIVER_INFO_3A

type LPDRIVER_INFO_3W = TLPDRIVER_INFO_3W

type LPDRIVER_INFO_4 = TLPDRIVER_INFO_4

type LPDRIVER_INFO_4A = TLPDRIVER_INFO_4A

type LPDRIVER_INFO_4W = TLPDRIVER_INFO_4W

type LPDRIVER_INFO_5 = TLPDRIVER_INFO_5

type LPDRIVER_INFO_5A = TLPDRIVER_INFO_5A

type LPDRIVER_INFO_5W = TLPDRIVER_INFO_5W

type LPDRIVER_INFO_6 = TLPDRIVER_INFO_6

type LPDRIVER_INFO_6A = TLPDRIVER_INFO_6A

type LPDRIVER_INFO_6W = TLPDRIVER_INFO_6W

type LPDRIVER_INFO_8 = TLPDRIVER_INFO_8

type LPDRIVER_INFO_8A = TLPDRIVER_INFO_8A

type LPDRIVER_INFO_8W = TLPDRIVER_INFO_8W

type LPDROPSOURCE = TLPDROPSOURCE

type LPDROPSTRUCT = TLPDROPSTRUCT

type LPDROPTARGET = TLPDROPTARGET

type LPDRVCALLBACK = TLPDRVCALLBACK

type LPDRVCONFIGINFO = TLPDRVCONFIGINFO

type LPDRVCONFIGINFOEX = TLPDRVCONFIGINFOEX

type LPDWORD = TLPDWORD

const LPD_DOUBLEBUFFER = 1

const LPD_SHARE_ACCUM = 256

const LPD_SHARE_DEPTH = 64

const LPD_SHARE_STENCIL = 128

const LPD_STEREO = 2

const LPD_SUPPORT_GDI = 16

const LPD_SUPPORT_OPENGL = 32

const LPD_SWAP_COPY = 1024

const LPD_SWAP_EXCHANGE = 512

const LPD_TRANSPARENT = 4096

const LPD_TYPE_COLORINDEX = 1

const LPD_TYPE_RGBA = 0

type LPELEMDESC = TLPELEMDESC

type LPENCLAVE_ROUTINE = TLPENCLAVE_ROUTINE

type LPENCODINGFILTERFACTORY = TLPENCODINGFILTERFACTORY

type LPENHMETAHEADER = TLPENHMETAHEADER

type LPENHMETARECORD = TLPENHMETARECORD

type LPENUMFORMATETC = TLPENUMFORMATETC

type LPENUMLOGFONT = TLPENUMLOGFONT

type LPENUMLOGFONTA = TLPENUMLOGFONTA

type LPENUMLOGFONTEX = TLPENUMLOGFONTEX

type LPENUMLOGFONTEXA = TLPENUMLOGFONTEXA

type LPENUMLOGFONTEXDV = TLPENUMLOGFONTEXDV

type LPENUMLOGFONTEXDVA = TLPENUMLOGFONTEXDVA

type LPENUMLOGFONTEXDVW = TLPENUMLOGFONTEXDVW

type LPENUMLOGFONTEXW = TLPENUMLOGFONTEXW

type LPENUMLOGFONTW = TLPENUMLOGFONTW

type LPENUMMONIKER = TLPENUMMONIKER

type LPENUMOLEVERB = TLPENUMOLEVERB

type LPENUMSTATDATA = TLPENUMSTATDATA

type LPENUMSTATPROPSETSTG = TLPENUMSTATPROPSETSTG

type LPENUMSTATPROPSTG = TLPENUMSTATPROPSTG

type LPENUMSTATSTG = TLPENUMSTATSTG

type LPENUMSTRING = TLPENUMSTRING

type LPENUMTEXTMETRIC = TLPENUMTEXTMETRIC

type LPENUMTEXTMETRICA = TLPENUMTEXTMETRICA

type LPENUMTEXTMETRICW = TLPENUMTEXTMETRICW

type LPENUMUNKNOWN = TLPENUMUNKNOWN

type LPENUMVARIANT = TLPENUMVARIANT

type LPENUM_SERVICE_STATUS = TLPENUM_SERVICE_STATUS

type LPENUM_SERVICE_STATUSA = TLPENUM_SERVICE_STATUSA

type LPENUM_SERVICE_STATUSW = TLPENUM_SERVICE_STATUSW

type LPENUM_SERVICE_STATUS_PROCESS = TLPENUM_SERVICE_STATUS_PROCESS

type LPENUM_SERVICE_STATUS_PROCESSA = TLPENUM_SERVICE_STATUS_PROCESSA

type LPENUM_SERVICE_STATUS_PROCESSW = TLPENUM_SERVICE_STATUS_PROCESSW

type LPERRORINFO = TLPERRORINFO

type LPERRORLOG = TLPERRORLOG

type LPEVENTLOG_FULL_INFORMATION = TLPEVENTLOG_FULL_INFORMATION

type LPEVENTMSG = TLPEVENTMSG

type LPEVENTMSGMSG = TLPEVENTMSGMSG

type LPEXCEPINFO = TLPEXCEPINFO

type LPEXCEPTION_DEBUG_INFO = TLPEXCEPTION_DEBUG_INFO

type LPEXCEPTION_POINTERS = TLPEXCEPTION_POINTERS

type LPEXCEPTION_RECORD = TLPEXCEPTION_RECORD

type LPEXIT_PROCESS_DEBUG_INFO = TLPEXIT_PROCESS_DEBUG_INFO

type LPEXIT_THREAD_DEBUG_INFO = TLPEXIT_THREAD_DEBUG_INFO

type LPEXTERNALCONNECTION = TLPEXTERNALCONNECTION

type LPEXTLOGFONT = TLPEXTLOGFONT

type LPEXTLOGFONTA = TLPEXTLOGFONTA

type LPEXTLOGFONTW = TLPEXTLOGFONTW

type LPEXTLOGPEN = TLPEXTLOGPEN

type LPEXTLOGPEN32 = TLPEXTLOGPEN32

type LPFD_SET = TLPFD_SET

type LPFIBER_START_ROUTINE = TLPFIBER_START_ROUTINE

type LPFILETIME = TLPFILETIME

type LPFILE_ID_DESCRIPTOR = TLPFILE_ID_DESCRIPTOR

type LPFILTERKEYS = TLPFILTERKEYS

type LPFINDREPLACE = TLPFINDREPLACE

type LPFINDREPLACEA = TLPFINDREPLACEA

type LPFINDREPLACEW = TLPFINDREPLACEW

type LPFMTID = TLPFMTID

type LPFNADDPROPSHEETPAGE = TLPFNADDPROPSHEETPAGE

type LPFNADDPROPSHEETPAGES = TLPFNADDPROPSHEETPAGES

type LPFNCANUNLOADNOW = TLPFNCANUNLOADNOW

type LPFNDEVCAPS = TLPFNDEVCAPS

type LPFNDEVMODE = TLPFNDEVMODE

type LPFNGETCLASSOBJECT = TLPFNGETCLASSOBJECT

const LPFNPSPCALLBACK = 0

type LPFNPSPCALLBACKA = TLPFNPSPCALLBACKA

type LPFNPSPCALLBACKW = TLPFNPSPCALLBACKW

type LPFONTSIGNATURE = TLPFONTSIGNATURE

type LPFORMATETC = TLPFORMATETC

type LPFORM_INFO_1 = TLPFORM_INFO_1

type LPFORM_INFO_1A = TLPFORM_INFO_1A

type LPFORM_INFO_1W = TLPFORM_INFO_1W

type LPFRHOOKPROC = TLPFRHOOKPROC

type LPFUNCDESC = TLPFUNCDESC

type LPFXPT16DOT16 = TLPFXPT16DOT16

type LPFXPT2DOT30 = TLPFXPT2DOT30

type LPGCP_RESULTS = TLPGCP_RESULTS

type LPGCP_RESULTSA = TLPGCP_RESULTSA

type LPGCP_RESULTSW = TLPGCP_RESULTSW

type LPGETBINDHANDLE = TLPGETBINDHANDLE

type LPGETVERSIONINPARAMS = TLPGETVERSIONINPARAMS

type LPGLOBALINTERFACETABLE = TLPGLOBALINTERFACETABLE

type LPGLYPHMETRICS = TLPGLYPHMETRICS

type LPGLYPHMETRICSFLOAT = TLPGLYPHMETRICSFLOAT

type LPGLYPHSET = TLPGLYPHSET

type LPGRADIENT_RECT = TLPGRADIENT_RECT

type LPGRADIENT_TRIANGLE = TLPGRADIENT_TRIANGLE

type LPGUID = TLPGUID

type LPGUITHREADINFO = TLPGUITHREADINFO

type LPHANDLE = TLPHANDLE

type LPHANDLER_FUNCTION = TLPHANDLER_FUNCTION

type LPHANDLER_FUNCTION_EX = TLPHANDLER_FUNCTION_EX

type LPHANDLETABLE = TLPHANDLETABLE

type LPHARDWAREHOOKSTRUCT = TLPHARDWAREHOOKSTRUCT

type LPHARDWAREINPUT = TLPHARDWAREINPUT

type LPHEAP_SUMMARY = TLPHEAP_SUMMARY

type LPHELPINFO = TLPHELPINFO

type LPHELPWININFO = TLPHELPWININFO

type LPHELPWININFOA = TLPHELPWININFOA

type LPHELPWININFOW = TLPHELPWININFOW

type LPHIGHCONTRAST = TLPHIGHCONTRAST

type LPHIGHCONTRASTA = TLPHIGHCONTRASTA

type LPHIGHCONTRASTW = TLPHIGHCONTRASTW

type LPHIT_LOGGING_INFO = TLPHIT_LOGGING_INFO

type LPHKL = TLPHKL

type LPHMIDI = TLPHMIDI

type LPHMIDIIN = TLPHMIDIIN

type LPHMIDIOUT = TLPHMIDIOUT

type LPHMIDISTRM = TLPHMIDISTRM

type LPHMIXER = TLPHMIXER

type LPHMIXEROBJ = TLPHMIXEROBJ

type LPHOSTENT = TLPHOSTENT

type LPHTTPNEGOTIATE = TLPHTTPNEGOTIATE

type LPHTTPNEGOTIATE2 = TLPHTTPNEGOTIATE2

type LPHTTPNEGOTIATE3 = TLPHTTPNEGOTIATE3

type LPHTTPSECURITY = TLPHTTPSECURITY

type LPHWAVEIN = TLPHWAVEIN

type LPHWAVEOUT = TLPHWAVEOUT

type LPHW_PROFILE_INFO = TLPHW_PROFILE_INFO

type LPHW_PROFILE_INFOA = TLPHW_PROFILE_INFOA

type LPHW_PROFILE_INFOW = TLPHW_PROFILE_INFOW

type LPICONMETRICS = TLPICONMETRICS

type LPICONMETRICSA = TLPICONMETRICSA

type LPICONMETRICSW = TLPICONMETRICSW

type LPIDEREGS = TLPIDEREGS

type LPIDLDESC = TLPIDLDESC

type LPIID = TLPIID

type LPIINTERNET = TLPIINTERNET

type LPIINTERNETBINDINFO = TLPIINTERNETBINDINFO

type LPIINTERNETBINDINFOEX = TLPIINTERNETBINDINFOEX

type LPIINTERNETPRIORITY = TLPIINTERNETPRIORITY

type LPIINTERNETPROTOCOL = TLPIINTERNETPROTOCOL

type LPIINTERNETPROTOCOLINFO = TLPIINTERNETPROTOCOLINFO

type LPIINTERNETPROTOCOLROOT = TLPIINTERNETPROTOCOLROOT

type LPIINTERNETPROTOCOLSINK = TLPIINTERNETPROTOCOLSINK

type LPIINTERNETPROTOCOLSINKStackable = TLPIINTERNETPROTOCOLSINKStackable

type LPIINTERNETSESSION = TLPIINTERNETSESSION

type LPIINTERNETTHREADSWITCH = TLPIINTERNETTHREADSWITCH

type LPIMECHARPOSITION = TLPIMECHARPOSITION

type LPIMEMENUITEMINFO = TLPIMEMENUITEMINFO

type LPIMEMENUITEMINFOA = TLPIMEMENUITEMINFOA

type LPIMEMENUITEMINFOW = TLPIMEMENUITEMINFOW

type LPINITIALIZESPY = TLPINITIALIZESPY

type LPINIT_ONCE = TLPINIT_ONCE

type LPINPUT = TLPINPUT

type LPINT = TLPINT

type LPINTERFACEDATA = TLPINTERFACEDATA

type LPINTERFACEINFO = TLPINTERFACEINFO

type LPIN_ADDR = TLPIN_ADDR

type LPIWRAPPEDPROTOCOL = TLPIWRAPPEDPROTOCOL

type LPJIT_DEBUG_INFO = TLPJIT_DEBUG_INFO

type LPJIT_DEBUG_INFO32 = TLPJIT_DEBUG_INFO32

type LPJIT_DEBUG_INFO64 = TLPJIT_DEBUG_INFO64

type LPJOB_INFO_1 = TLPJOB_INFO_1

type LPJOB_INFO_1A = TLPJOB_INFO_1A

type LPJOB_INFO_1W = TLPJOB_INFO_1W

type LPJOB_INFO_2 = TLPJOB_INFO_2

type LPJOB_INFO_2A = TLPJOB_INFO_2A

type LPJOB_INFO_2W = TLPJOB_INFO_2W

type LPJOB_INFO_3 = TLPJOB_INFO_3

type LPJOYCAPS = TLPJOYCAPS

type LPJOYCAPS2 = TLPJOYCAPS2

type LPJOYCAPS2A = TLPJOYCAPS2A

type LPJOYCAPS2W = TLPJOYCAPS2W

type LPJOYCAPSA = TLPJOYCAPSA

type LPJOYCAPSW = TLPJOYCAPSW

type LPJOYINFO = TLPJOYINFO

type LPJOYINFOEX = TLPJOYINFOEX

type LPKBDLLHOOKSTRUCT = TLPKBDLLHOOKSTRUCT

type LPKERNINGPAIR = TLPKERNINGPAIR

type LPKEYARRAY = TLPKEYARRAY

type LPKEYBDINPUT = TLPKEYBDINPUT

type LPLAYERPLANEDESCRIPTOR = TLPLAYERPLANEDESCRIPTOR

type LPLC_ID = TLPLC_ID

type LPLDT_ENTRY = TLPLDT_ENTRY

type LPLINGER = TLPLINGER

type LPLINKSRCDESCRIPTOR = TLPLINKSRCDESCRIPTOR

type LPLOAD_DLL_DEBUG_INFO = TLPLOAD_DLL_DEBUG_INFO

type LPLOCALESIGNATURE = TLPLOCALESIGNATURE

type LPLOCKBYTES = TLPLOCKBYTES

type LPLOGBRUSH = TLPLOGBRUSH

type LPLOGBRUSH32 = TLPLOGBRUSH32

type LPLOGCOLORSPACE = TLPLOGCOLORSPACE

type LPLOGCOLORSPACEA = TLPLOGCOLORSPACEA

type LPLOGCOLORSPACEW = TLPLOGCOLORSPACEW

type LPLOGFONT = TLPLOGFONT

type LPLOGFONTA = TLPLOGFONTA

type LPLOGFONTW = TLPLOGFONTW

type LPLOGPALETTE = TLPLOGPALETTE

type LPLOGPEN = TLPLOGPEN

type LPLONG = TLPLONG

type LPMALLOC = TLPMALLOC

type LPMALLOCSPY = TLPMALLOCSPY

type LPMARSHAL = TLPMARSHAL

type LPMARSHAL2 = TLPMARSHAL2

type LPMAT2 = TLPMAT2

type LPMCI_ANIM_OPEN_PARMS = TLPMCI_ANIM_OPEN_PARMS

type LPMCI_ANIM_OPEN_PARMSA = TLPMCI_ANIM_OPEN_PARMSA

type LPMCI_ANIM_OPEN_PARMSW = TLPMCI_ANIM_OPEN_PARMSW

type LPMCI_ANIM_PLAY_PARMS = TLPMCI_ANIM_PLAY_PARMS

type LPMCI_ANIM_RECT_PARMS = TLPMCI_ANIM_RECT_PARMS

type LPMCI_ANIM_STEP_PARMS = TLPMCI_ANIM_STEP_PARMS

type LPMCI_ANIM_UPDATE_PARMS = TLPMCI_ANIM_UPDATE_PARMS

type LPMCI_ANIM_WINDOW_PARMS = TLPMCI_ANIM_WINDOW_PARMS

type LPMCI_ANIM_WINDOW_PARMSA = TLPMCI_ANIM_WINDOW_PARMSA

type LPMCI_ANIM_WINDOW_PARMSW = TLPMCI_ANIM_WINDOW_PARMSW

type LPMCI_BREAK_PARMS = TLPMCI_BREAK_PARMS

type LPMCI_GENERIC_PARMS = TLPMCI_GENERIC_PARMS

type LPMCI_GETDEVCAPS_PARMS = TLPMCI_GETDEVCAPS_PARMS

type LPMCI_INFO_PARMS = TLPMCI_INFO_PARMS

type LPMCI_INFO_PARMSA = TLPMCI_INFO_PARMSA

type LPMCI_INFO_PARMSW = TLPMCI_INFO_PARMSW

type LPMCI_LOAD_PARMS = TLPMCI_LOAD_PARMS

type LPMCI_LOAD_PARMSA = TLPMCI_LOAD_PARMSA

type LPMCI_LOAD_PARMSW = TLPMCI_LOAD_PARMSW

type LPMCI_OPEN_PARMS = TLPMCI_OPEN_PARMS

type LPMCI_OPEN_PARMSA = TLPMCI_OPEN_PARMSA

type LPMCI_OPEN_PARMSW = TLPMCI_OPEN_PARMSW

type LPMCI_OVLY_LOAD_PARMS = TLPMCI_OVLY_LOAD_PARMS

type LPMCI_OVLY_LOAD_PARMSA = TLPMCI_OVLY_LOAD_PARMSA

type LPMCI_OVLY_LOAD_PARMSW = TLPMCI_OVLY_LOAD_PARMSW

type LPMCI_OVLY_OPEN_PARMS = TLPMCI_OVLY_OPEN_PARMS

type LPMCI_OVLY_OPEN_PARMSA = TLPMCI_OVLY_OPEN_PARMSA

type LPMCI_OVLY_OPEN_PARMSW = TLPMCI_OVLY_OPEN_PARMSW

type LPMCI_OVLY_RECT_PARMS = TLPMCI_OVLY_RECT_PARMS

type LPMCI_OVLY_SAVE_PARMS = TLPMCI_OVLY_SAVE_PARMS

type LPMCI_OVLY_SAVE_PARMSA = TLPMCI_OVLY_SAVE_PARMSA

type LPMCI_OVLY_SAVE_PARMSW = TLPMCI_OVLY_SAVE_PARMSW

type LPMCI_OVLY_WINDOW_PARMS = TLPMCI_OVLY_WINDOW_PARMS

type LPMCI_OVLY_WINDOW_PARMSA = TLPMCI_OVLY_WINDOW_PARMSA

type LPMCI_OVLY_WINDOW_PARMSW = TLPMCI_OVLY_WINDOW_PARMSW

type LPMCI_PLAY_PARMS = TLPMCI_PLAY_PARMS

type LPMCI_RECORD_PARMS = TLPMCI_RECORD_PARMS

type LPMCI_SAVE_PARMS = TLPMCI_SAVE_PARMS

type LPMCI_SAVE_PARMSA = TLPMCI_SAVE_PARMSA

type LPMCI_SAVE_PARMSW = TLPMCI_SAVE_PARMSW

type LPMCI_SEEK_PARMS = TLPMCI_SEEK_PARMS

type LPMCI_SEQ_SET_PARMS = TLPMCI_SEQ_SET_PARMS

type LPMCI_SET_PARMS = TLPMCI_SET_PARMS

type LPMCI_STATUS_PARMS = TLPMCI_STATUS_PARMS

type LPMCI_SYSINFO_PARMS = TLPMCI_SYSINFO_PARMS

type LPMCI_SYSINFO_PARMSA = TLPMCI_SYSINFO_PARMSA

type LPMCI_SYSINFO_PARMSW = TLPMCI_SYSINFO_PARMSW

type LPMCI_VD_ESCAPE_PARMS = TLPMCI_VD_ESCAPE_PARMS

type LPMCI_VD_ESCAPE_PARMSA = TLPMCI_VD_ESCAPE_PARMSA

type LPMCI_VD_ESCAPE_PARMSW = TLPMCI_VD_ESCAPE_PARMSW

type LPMCI_VD_PLAY_PARMS = TLPMCI_VD_PLAY_PARMS

type LPMCI_VD_STEP_PARMS = TLPMCI_VD_STEP_PARMS

type LPMCI_WAVE_DELETE_PARMS = TLPMCI_WAVE_DELETE_PARMS

type LPMCI_WAVE_OPEN_PARMS = TLPMCI_WAVE_OPEN_PARMS

type LPMCI_WAVE_OPEN_PARMSA = TLPMCI_WAVE_OPEN_PARMSA

type LPMCI_WAVE_OPEN_PARMSW = TLPMCI_WAVE_OPEN_PARMSW

type LPMCI_WAVE_SET_PARMS = TLPMCI_WAVE_SET_PARMS

type LPMDICREATESTRUCT = TLPMDICREATESTRUCT

type LPMDICREATESTRUCTA = TLPMDICREATESTRUCTA

type LPMDICREATESTRUCTW = TLPMDICREATESTRUCTW

type LPMDINEXTMENU = TLPMDINEXTMENU

type LPMEASUREITEMSTRUCT = TLPMEASUREITEMSTRUCT

type LPMEMORYSTATUS = TLPMEMORYSTATUS

type LPMEMORYSTATUSEX = TLPMEMORYSTATUSEX

type LPMENUBARINFO = TLPMENUBARINFO

type LPMENUINFO = TLPMENUINFO

type LPMENUITEMINFO = TLPMENUITEMINFO

type LPMENUITEMINFOA = TLPMENUITEMINFOA

type LPMENUITEMINFOW = TLPMENUITEMINFOW

type LPMENUTEMPLATE = TLPMENUTEMPLATE

type LPMENUTEMPLATEA = TLPMENUTEMPLATEA

type LPMENUTEMPLATEW = TLPMENUTEMPLATEW

type LPMESSAGEFILTER = TLPMESSAGEFILTER

type LPMETAFILEPICT = TLPMETAFILEPICT

type LPMETAHEADER = TLPMETAHEADER

type LPMETARECORD = TLPMETARECORD

type LPMETHODDATA = TLPMETHODDATA

type LPMIDICALLBACK = TLPMIDICALLBACK

type LPMIDIHDR = TLPMIDIHDR

type LPMIDIINCAPS = TLPMIDIINCAPS

type LPMIDIINCAPS2 = TLPMIDIINCAPS2

type LPMIDIINCAPS2A = TLPMIDIINCAPS2A

type LPMIDIINCAPS2W = TLPMIDIINCAPS2W

type LPMIDIINCAPSA = TLPMIDIINCAPSA

type LPMIDIINCAPSW = TLPMIDIINCAPSW

type LPMIDIOUTCAPS = TLPMIDIOUTCAPS

type LPMIDIOUTCAPS2 = TLPMIDIOUTCAPS2

type LPMIDIOUTCAPS2A = TLPMIDIOUTCAPS2A

type LPMIDIOUTCAPS2W = TLPMIDIOUTCAPS2W

type LPMIDIOUTCAPSA = TLPMIDIOUTCAPSA

type LPMIDIOUTCAPSW = TLPMIDIOUTCAPSW

type LPMIDIPROPTEMPO = TLPMIDIPROPTEMPO

type LPMIDIPROPTIMEDIV = TLPMIDIPROPTIMEDIV

type LPMINIMIZEDMETRICS = TLPMINIMIZEDMETRICS

type LPMINMAXINFO = TLPMINMAXINFO

type LPMIXERCAPS = TLPMIXERCAPS

type LPMIXERCAPS2 = TLPMIXERCAPS2

type LPMIXERCAPS2A = TLPMIXERCAPS2A

type LPMIXERCAPS2W = TLPMIXERCAPS2W

type LPMIXERCAPSA = TLPMIXERCAPSA

type LPMIXERCAPSW = TLPMIXERCAPSW

type LPMIXERCONTROL = TLPMIXERCONTROL

type LPMIXERCONTROLA = TLPMIXERCONTROLA

type LPMIXERCONTROLDETAILS = TLPMIXERCONTROLDETAILS

type LPMIXERCONTROLDETAILS_BOOLEAN = TLPMIXERCONTROLDETAILS_BOOLEAN

type LPMIXERCONTROLDETAILS_LISTTEXT = TLPMIXERCONTROLDETAILS_LISTTEXT

type LPMIXERCONTROLDETAILS_LISTTEXTA = TLPMIXERCONTROLDETAILS_LISTTEXTA

type LPMIXERCONTROLDETAILS_LISTTEXTW = TLPMIXERCONTROLDETAILS_LISTTEXTW

type LPMIXERCONTROLDETAILS_SIGNED = TLPMIXERCONTROLDETAILS_SIGNED

type LPMIXERCONTROLDETAILS_UNSIGNED = TLPMIXERCONTROLDETAILS_UNSIGNED

type LPMIXERCONTROLW = TLPMIXERCONTROLW

type LPMIXERLINE = TLPMIXERLINE

type LPMIXERLINEA = TLPMIXERLINEA

type LPMIXERLINECONTROLS = TLPMIXERLINECONTROLS

type LPMIXERLINECONTROLSA = TLPMIXERLINECONTROLSA

type LPMIXERLINECONTROLSW = TLPMIXERLINECONTROLSW

type LPMIXERLINEW = TLPMIXERLINEW

type LPMMCKINFO = TLPMMCKINFO

type LPMMIOINFO = TLPMMIOINFO

type LPMMIOPROC = TLPMMIOPROC

type LPMMTIME = TLPMMTIME

type LPMODEMDEVCAPS = TLPMODEMDEVCAPS

type LPMODEMSETTINGS = TLPMODEMSETTINGS

type LPMONIKER = TLPMONIKER

type LPMONIKERPROP = TLPMONIKERPROP

type LPMONITORINFO = TLPMONITORINFO

type LPMONITORINFOEX = TLPMONITORINFOEX

type LPMONITORINFOEXA = TLPMONITORINFOEXA

type LPMONITORINFOEXW = TLPMONITORINFOEXW

type LPMONITOR_INFO_1 = TLPMONITOR_INFO_1

type LPMONITOR_INFO_1A = TLPMONITOR_INFO_1A

type LPMONITOR_INFO_1W = TLPMONITOR_INFO_1W

type LPMONITOR_INFO_2 = TLPMONITOR_INFO_2

type LPMONITOR_INFO_2A = TLPMONITOR_INFO_2A

type LPMONITOR_INFO_2W = TLPMONITOR_INFO_2W

type LPMOUSEHOOKSTRUCT = TLPMOUSEHOOKSTRUCT

type LPMOUSEHOOKSTRUCTEX = TLPMOUSEHOOKSTRUCTEX

type LPMOUSEINPUT = TLPMOUSEINPUT

type LPMOUSEKEYS = TLPMOUSEKEYS

type LPMOUSEMOVEPOINT = TLPMOUSEMOVEPOINT

type LPMSG = TLPMSG

type LPMSGBOXPARAMS = TLPMSGBOXPARAMS

type LPMSGBOXPARAMSA = TLPMSGBOXPARAMSA

type LPMSGBOXPARAMSW = TLPMSGBOXPARAMSW

type LPMSLLHOOKSTRUCT = TLPMSLLHOOKSTRUCT

type LPMULTIKEYHELP = TLPMULTIKEYHELP

type LPMULTIKEYHELPA = TLPMULTIKEYHELPA

type LPMULTIKEYHELPW = TLPMULTIKEYHELPW

type LPMULTIQI = TLPMULTIQI

type LPNCCALCSIZE_PARAMS = TLPNCCALCSIZE_PARAMS

type LPNETCONNECTINFOSTRUCT = TLPNETCONNECTINFOSTRUCT

type LPNETINFOSTRUCT = TLPNETINFOSTRUCT

type LPNETRESOURCE = TLPNETRESOURCE

type LPNETRESOURCEA = TLPNETRESOURCEA

type LPNETRESOURCEW = TLPNETRESOURCEW

type LPNEWTEXTMETRIC = TLPNEWTEXTMETRIC

type LPNEWTEXTMETRICA = TLPNEWTEXTMETRICA

type LPNEWTEXTMETRICW = TLPNEWTEXTMETRICW

type LPNLSVERSIONINFO = TLPNLSVERSIONINFO

type LPNLSVERSIONINFOEX = TLPNLSVERSIONINFOEX

type LPNMHDR = TLPNMHDR

type LPNONCLIENTMETRICS = TLPNONCLIENTMETRICS

type LPNONCLIENTMETRICSA = TLPNONCLIENTMETRICSA

type LPNONCLIENTMETRICSW = TLPNONCLIENTMETRICSW

type LPNUMBERFMT = TLPNUMBERFMT

type LPNUMBERFMTA = TLPNUMBERFMTA

type LPNUMBERFMTW = TLPNUMBERFMTW

type LPOBJECTDESCRIPTOR = TLPOBJECTDESCRIPTOR

type LPOCNCHKPROC = TLPOCNCHKPROC

const LPOCNCONNPROC = 0

type LPOCNCONNPROCA = TLPOCNCONNPROCA

type LPOCNCONNPROCW = TLPOCNCONNPROCW

type LPOCNDSCPROC = TLPOCNDSCPROC

type LPOFNHOOKPROC = TLPOFNHOOKPROC

type LPOFNOTIFY = TLPOFNOTIFY

type LPOFNOTIFYA = TLPOFNOTIFYA

type LPOFNOTIFYEX = TLPOFNOTIFYEX

type LPOFNOTIFYEXA = TLPOFNOTIFYEXA

type LPOFNOTIFYEXW = TLPOFNOTIFYEXW

type LPOFNOTIFYW = TLPOFNOTIFYW

type LPOFSTRUCT = TLPOFSTRUCT

const LPOINET = 0

const LPOINETBINDINFO = 0

const LPOINETPRIORITY = 0

const LPOINETPROTOCOL = 0

const LPOINETPROTOCOLEX = 0

const LPOINETPROTOCOLINFO = 0

const LPOINETPROTOCOLROOT = 0

const LPOINETPROTOCOLSINK = 0

const LPOINETPROTOCOLSINKSTACKABLE = 0

const LPOINETSESSION = 0

const LPOINETTHREADSWITCH = 0

type LPOLEADVISEHOLDER = TLPOLEADVISEHOLDER

type LPOLECACHE = TLPOLECACHE

type LPOLECACHE2 = TLPOLECACHE2

type LPOLECACHECONTROL = TLPOLECACHECONTROL

type LPOLECLIENTSITE = TLPOLECLIENTSITE

type LPOLECONTAINER = TLPOLECONTAINER

type LPOLEINPLACEACTIVEOBJECT = TLPOLEINPLACEACTIVEOBJECT

type LPOLEINPLACEFRAME = TLPOLEINPLACEFRAME

type LPOLEINPLACEFRAMEINFO = TLPOLEINPLACEFRAMEINFO

type LPOLEINPLACEOBJECT = TLPOLEINPLACEOBJECT

type LPOLEINPLACESITE = TLPOLEINPLACESITE

type LPOLEINPLACEUIWINDOW = TLPOLEINPLACEUIWINDOW

type LPOLEITEMCONTAINER = TLPOLEITEMCONTAINER

type LPOLELINK = TLPOLELINK

type LPOLEMENUGROUPWIDTHS = TLPOLEMENUGROUPWIDTHS

type LPOLEOBJECT = TLPOLEOBJECT

type LPOLERENDER = TLPOLERENDER

type LPOLESTR = TLPOLESTR

type LPOLESTREAM = TLPOLESTREAM

type LPOLESTREAMVTBL = TLPOLESTREAMVTBL

type LPOLEUPDATE = TLPOLEUPDATE

type LPOLEVERB = TLPOLEVERB

type LPOLEWINDOW = TLPOLEWINDOW

type LPOPENCARDNAME = TLPOPENCARDNAME

type LPOPENCARDNAMEA = TLPOPENCARDNAMEA

const LPOPENCARDNAMEA_EX = 0

type LPOPENCARDNAMEW = TLPOPENCARDNAMEW

const LPOPENCARDNAMEW_EX = 0

const LPOPENCARDNAME_A = 0

type LPOPENCARDNAME_EX = TLPOPENCARDNAME_EX

type LPOPENCARDNAME_EXA = TLPOPENCARDNAME_EXA

type LPOPENCARDNAME_EXW = TLPOPENCARDNAME_EXW

const LPOPENCARDNAME_W = 0

type LPOPENCARD_SEARCH_CRITERIA = TLPOPENCARD_SEARCH_CRITERIA

type LPOPENCARD_SEARCH_CRITERIAA = TLPOPENCARD_SEARCH_CRITERIAA

type LPOPENCARD_SEARCH_CRITERIAW = TLPOPENCARD_SEARCH_CRITERIAW

type LPOPENFILENAME = TLPOPENFILENAME

type LPOPENFILENAMEA = TLPOPENFILENAMEA

type LPOPENFILENAMEW = TLPOPENFILENAMEW

type LPOPENFILENAME_NT4 = TLPOPENFILENAME_NT4

type LPOPENFILENAME_NT4A = TLPOPENFILENAME_NT4A

type LPOPENFILENAME_NT4W = TLPOPENFILENAME_NT4W

type LPOSVERSIONINFO = TLPOSVERSIONINFO

type LPOSVERSIONINFOA = TLPOSVERSIONINFOA

type LPOSVERSIONINFOEX = TLPOSVERSIONINFOEX

type LPOSVERSIONINFOEXA = TLPOSVERSIONINFOEXA

type LPOSVERSIONINFOEXW = TLPOSVERSIONINFOEXW

type LPOSVERSIONINFOW = TLPOSVERSIONINFOW

type LPOUTLINETEXTMETRIC = TLPOUTLINETEXTMETRIC

type LPOUTLINETEXTMETRICA = TLPOUTLINETEXTMETRICA

type LPOUTLINETEXTMETRICW = TLPOUTLINETEXTMETRICW

type LPOUTPUT_DEBUG_STRING_INFO = TLPOUTPUT_DEBUG_STRING_INFO

type LPOVERLAPPED = TLPOVERLAPPED

type LPOVERLAPPED_COMPLETION_ROUTINE = TLPOVERLAPPED_COMPLETION_ROUTINE

type LPOVERLAPPED_ENTRY = TLPOVERLAPPED_ENTRY

type LPPAGEPAINTHOOK = TLPPAGEPAINTHOOK

type LPPAGESETUPDLG = TLPPAGESETUPDLG

type LPPAGESETUPDLGA = TLPPAGESETUPDLGA

type LPPAGESETUPDLGW = TLPPAGESETUPDLGW

type LPPAGESETUPHOOK = TLPPAGESETUPHOOK

type LPPAINTSTRUCT = TLPPAINTSTRUCT

type LPPALETTEENTRY = TLPPALETTEENTRY

type LPPANOSE = TLPPANOSE

type LPPARAMDATA = TLPPARAMDATA

type LPPARAMDESC = TLPPARAMDESC

type LPPARAMDESCEX = TLPPARAMDESCEX

type LPPARSEDISPLAYNAME = TLPPARSEDISPLAYNAME

type LPPATCHARRAY = TLPPATCHARRAY

type LPPATTERN = TLPPATTERN

type LPPCMWAVEFORMAT = TLPPCMWAVEFORMAT

type LPPELARRAY = TLPPELARRAY

type LPPERSIST = TLPPERSIST

type LPPERSISTFILE = TLPPERSISTFILE

type LPPERSISTMONIKER = TLPPERSISTMONIKER

type LPPERSISTSTORAGE = TLPPERSISTSTORAGE

type LPPERSISTSTREAM = TLPPERSISTSTREAM

type LPPIXELFORMATDESCRIPTOR = TLPPIXELFORMATDESCRIPTOR

type LPPOINT = TLPPOINT

type LPPOINTFX = TLPPOINTFX

type LPPOINTS = TLPPOINTS

type LPPOLYTEXT = TLPPOLYTEXT

type LPPOLYTEXTA = TLPPOLYTEXTA

type LPPOLYTEXTW = TLPPOLYTEXTW

type LPPORT_INFO_1 = TLPPORT_INFO_1

type LPPORT_INFO_1A = TLPPORT_INFO_1A

type LPPORT_INFO_1W = TLPPORT_INFO_1W

type LPPORT_INFO_2 = TLPPORT_INFO_2

type LPPORT_INFO_2A = TLPPORT_INFO_2A

type LPPORT_INFO_2W = TLPPORT_INFO_2W

type LPPORT_INFO_3 = TLPPORT_INFO_3

type LPPORT_INFO_3A = TLPPORT_INFO_3A

type LPPORT_INFO_3W = TLPPORT_INFO_3W

type LPPOWER_REQUEST_CONTEXT = TLPPOWER_REQUEST_CONTEXT

type LPPRINTDLG = TLPPRINTDLG

type LPPRINTDLGA = TLPPRINTDLGA

type LPPRINTDLGEX = TLPPRINTDLGEX

type LPPRINTDLGEXA = TLPPRINTDLGEXA

type LPPRINTDLGEXW = TLPPRINTDLGEXW

type LPPRINTDLGW = TLPPRINTDLGW

type LPPRINTER_DEFAULTS = TLPPRINTER_DEFAULTS

type LPPRINTER_DEFAULTSA = TLPPRINTER_DEFAULTSA

type LPPRINTER_DEFAULTSW = TLPPRINTER_DEFAULTSW

type LPPRINTER_ENUM_VALUES = TLPPRINTER_ENUM_VALUES

type LPPRINTER_ENUM_VALUESA = TLPPRINTER_ENUM_VALUESA

type LPPRINTER_ENUM_VALUESW = TLPPRINTER_ENUM_VALUESW

type LPPRINTER_INFO_1 = TLPPRINTER_INFO_1

type LPPRINTER_INFO_1A = TLPPRINTER_INFO_1A

type LPPRINTER_INFO_1W = TLPPRINTER_INFO_1W

type LPPRINTER_INFO_2 = TLPPRINTER_INFO_2

type LPPRINTER_INFO_2A = TLPPRINTER_INFO_2A

type LPPRINTER_INFO_2W = TLPPRINTER_INFO_2W

type LPPRINTER_INFO_3 = TLPPRINTER_INFO_3

type LPPRINTER_INFO_4 = TLPPRINTER_INFO_4

type LPPRINTER_INFO_4A = TLPPRINTER_INFO_4A

type LPPRINTER_INFO_4W = TLPPRINTER_INFO_4W

type LPPRINTER_INFO_5 = TLPPRINTER_INFO_5

type LPPRINTER_INFO_5A = TLPPRINTER_INFO_5A

type LPPRINTER_INFO_5W = TLPPRINTER_INFO_5W

type LPPRINTER_INFO_6 = TLPPRINTER_INFO_6

type LPPRINTER_INFO_7 = TLPPRINTER_INFO_7

type LPPRINTER_INFO_7A = TLPPRINTER_INFO_7A

type LPPRINTER_INFO_7W = TLPPRINTER_INFO_7W

type LPPRINTER_INFO_8 = TLPPRINTER_INFO_8

type LPPRINTER_INFO_8A = TLPPRINTER_INFO_8A

type LPPRINTER_INFO_8W = TLPPRINTER_INFO_8W

type LPPRINTER_INFO_9 = TLPPRINTER_INFO_9

type LPPRINTER_INFO_9A = TLPPRINTER_INFO_9A

type LPPRINTER_INFO_9W = TLPPRINTER_INFO_9W

type LPPRINTER_NOTIFY_INFO = TLPPRINTER_NOTIFY_INFO

type LPPRINTER_NOTIFY_INFO_DATA = TLPPRINTER_NOTIFY_INFO_DATA

type LPPRINTER_NOTIFY_OPTIONS = TLPPRINTER_NOTIFY_OPTIONS

type LPPRINTER_NOTIFY_OPTIONS_TYPE = TLPPRINTER_NOTIFY_OPTIONS_TYPE

type LPPRINTHOOKPROC = TLPPRINTHOOKPROC

type LPPRINTPAGERANGE = TLPPRINTPAGERANGE

type LPPRINTPROCESSOR_INFO_1 = TLPPRINTPROCESSOR_INFO_1

type LPPRINTPROCESSOR_INFO_1A = TLPPRINTPROCESSOR_INFO_1A

type LPPRINTPROCESSOR_INFO_1W = TLPPRINTPROCESSOR_INFO_1W

type LPPROCESS_HEAP_ENTRY = TLPPROCESS_HEAP_ENTRY

type LPPROCESS_INFORMATION = TLPPROCESS_INFORMATION

type LPPROC_THREAD_ATTRIBUTE_LIST = TLPPROC_THREAD_ATTRIBUTE_LIST

type LPPROGRESS_ROUTINE = TLPPROGRESS_ROUTINE

type LPPROPERTYBAG = TLPPROPERTYBAG

type LPPROPERTYSETSTORAGE = TLPPROPERTYSETSTORAGE

type LPPROPERTYSTORAGE = TLPPROPERTYSTORAGE

const LPPROPSHEETHEADER = 0

type LPPROPSHEETHEADERA = TLPPROPSHEETHEADERA

type LPPROPSHEETHEADERW = TLPPROPSHEETHEADERW

const LPPROPSHEETPAGE = 0

type LPPROPSHEETPAGEA = TLPPROPSHEETPAGEA

type LPPROPSHEETPAGEA_LATEST = TLPPROPSHEETPAGEA_LATEST

type LPPROPSHEETPAGEA_V1 = TLPPROPSHEETPAGEA_V1

type LPPROPSHEETPAGEA_V2 = TLPPROPSHEETPAGEA_V2

type LPPROPSHEETPAGEA_V3 = TLPPROPSHEETPAGEA_V3

type LPPROPSHEETPAGEW = TLPPROPSHEETPAGEW

type LPPROPSHEETPAGEW_LATEST = TLPPROPSHEETPAGEW_LATEST

type LPPROPSHEETPAGEW_V1 = TLPPROPSHEETPAGEW_V1

type LPPROPSHEETPAGEW_V2 = TLPPROPSHEETPAGEW_V2

type LPPROPSHEETPAGEW_V3 = TLPPROPSHEETPAGEW_V3

const LPPROPSHEETPAGE_LATEST = 0

const LPPROPSHEETPAGE_V1 = 0

const LPPROPSHEETPAGE_V2 = 0

const LPPROPSHEETPAGE_V3 = 0

type LPPROPVARIANT = TLPPROPVARIANT

type LPPROTOCOL_ARGUMENT = TLPPROTOCOL_ARGUMENT

type LPPROTOENT = TLPPROTOENT

type LPPROVIDOR_INFO_1 = TLPPROVIDOR_INFO_1

type LPPROVIDOR_INFO_1A = TLPPROVIDOR_INFO_1A

type LPPROVIDOR_INFO_1W = TLPPROVIDOR_INFO_1W

type LPPROVIDOR_INFO_2 = TLPPROVIDOR_INFO_2

type LPPROVIDOR_INFO_2A = TLPPROVIDOR_INFO_2A

type LPPROVIDOR_INFO_2W = TLPPROVIDOR_INFO_2W

type LPPSHNOTIFY = TLPPSHNOTIFY

type LPQUERY_SERVICE_CONFIG = TLPQUERY_SERVICE_CONFIG

type LPQUERY_SERVICE_CONFIGA = TLPQUERY_SERVICE_CONFIGA

type LPQUERY_SERVICE_CONFIGW = TLPQUERY_SERVICE_CONFIGW

type LPQUERY_SERVICE_LOCK_STATUS = TLPQUERY_SERVICE_LOCK_STATUS

type LPQUERY_SERVICE_LOCK_STATUSA = TLPQUERY_SERVICE_LOCK_STATUSA

type LPQUERY_SERVICE_LOCK_STATUSW = TLPQUERY_SERVICE_LOCK_STATUSW

type LPRASTERIZER_STATUS = TLPRASTERIZER_STATUS

type LPRAWHID = TLPRAWHID

type LPRAWINPUT = TLPRAWINPUT

type LPRAWINPUTDEVICE = TLPRAWINPUTDEVICE

type LPRAWINPUTHEADER = TLPRAWINPUTHEADER

type LPRAWKEYBOARD = TLPRAWKEYBOARD

type LPRAWMOUSE = TLPRAWMOUSE

type LPRECONVERTSTRING = TLPRECONVERTSTRING

type LPRECORDINFO = TLPRECORDINFO

type LPRECT = TLPRECT

type LPRECTL = TLPRECTL

type LPREGISTERWORD = TLPREGISTERWORD

type LPREGISTERWORDA = TLPREGISTERWORDA

type LPREGISTERWORDW = TLPREGISTERWORDW

type LPREMFORMATETC = TLPREMFORMATETC

type LPREMOTE_NAME_INFO = TLPREMOTE_NAME_INFO

type LPREMOTE_NAME_INFOA = TLPREMOTE_NAME_INFOA

type LPREMOTE_NAME_INFOW = TLPREMOTE_NAME_INFOW

type LPREMSECURITY_ATTRIBUTES = TLPREMSECURITY_ATTRIBUTES

type LPRGBQUAD = TLPRGBQUAD

type LPRGBTRIPLE = TLPRGBTRIPLE

type LPRGNDATA = TLPRGNDATA

type LPRID_DEVICE_INFO = TLPRID_DEVICE_INFO

type LPRIP_INFO = TLPRIP_INFO

type LPROOTSTORAGE = TLPROOTSTORAGE

type LPRUNNABLEOBJECT = TLPRUNNABLEOBJECT

type LPRUNNINGOBJECTTABLE = TLPRUNNINGOBJECTTABLE

type LPSAFEARRAY = TLPSAFEARRAY

type LPSAFEARRAYBOUND = TLPSAFEARRAYBOUND

type LPSCARDCONTEXT = TLPSCARDCONTEXT

type LPSCARDHANDLE = TLPSCARDHANDLE

type LPSCARD_ATRMASK = TLPSCARD_ATRMASK

type LPSCARD_IO_REQUEST = TLPSCARD_IO_REQUEST

type LPSCARD_READERSTATE = TLPSCARD_READERSTATE

type LPSCARD_READERSTATEA = TLPSCARD_READERSTATEA

type LPSCARD_READERSTATEW = TLPSCARD_READERSTATEW

const LPSCARD_READERSTATE_A = 0

const LPSCARD_READERSTATE_W = 0

type LPSCARD_T0_COMMAND = TLPSCARD_T0_COMMAND

type LPSCARD_T0_REQUEST = TLPSCARD_T0_REQUEST

type LPSCARD_T1_REQUEST = TLPSCARD_T1_REQUEST

type LPSCROLLBARINFO = TLPSCROLLBARINFO

type LPSCROLLINFO = TLPSCROLLINFO

type LPSC_ACTION = TLPSC_ACTION

type LPSC_HANDLE = TLPSC_HANDLE

type LPSECURITY_ATTRIBUTES = TLPSECURITY_ATTRIBUTES

type LPSECURITY_CAPABILITIES = TLPSECURITY_CAPABILITIES

type LPSENDCMDINPARAMS = TLPSENDCMDINPARAMS

type LPSENDCMDOUTPARAMS = TLPSENDCMDOUTPARAMS

type LPSERIALKEYS = TLPSERIALKEYS

type LPSERIALKEYSA = TLPSERIALKEYSA

type LPSERIALKEYSW = TLPSERIALKEYSW

type LPSERVENT = TLPSERVENT

type LPSERVICEPROVIDER = TLPSERVICEPROVIDER

type LPSERVICE_DELAYED_AUTO_START_INFO = TLPSERVICE_DELAYED_AUTO_START_INFO

type LPSERVICE_DESCRIPTION = TLPSERVICE_DESCRIPTION

type LPSERVICE_DESCRIPTIONA = TLPSERVICE_DESCRIPTIONA

type LPSERVICE_DESCRIPTIONW = TLPSERVICE_DESCRIPTIONW

type LPSERVICE_FAILURE_ACTIONS = TLPSERVICE_FAILURE_ACTIONS

type LPSERVICE_FAILURE_ACTIONSA = TLPSERVICE_FAILURE_ACTIONSA

type LPSERVICE_FAILURE_ACTIONSW = TLPSERVICE_FAILURE_ACTIONSW

type LPSERVICE_FAILURE_ACTIONS_FLAG = TLPSERVICE_FAILURE_ACTIONS_FLAG

const LPSERVICE_MAIN_FUNCTION = 0

type LPSERVICE_MAIN_FUNCTIONA = TLPSERVICE_MAIN_FUNCTIONA

type LPSERVICE_MAIN_FUNCTIONW = TLPSERVICE_MAIN_FUNCTIONW

type LPSERVICE_PRESHUTDOWN_INFO = TLPSERVICE_PRESHUTDOWN_INFO

type LPSERVICE_REQUIRED_PRIVILEGES_INFOA = TLPSERVICE_REQUIRED_PRIVILEGES_INFOA

type LPSERVICE_REQUIRED_PRIVILEGES_INFOW = TLPSERVICE_REQUIRED_PRIVILEGES_INFOW

type LPSERVICE_SID_INFO = TLPSERVICE_SID_INFO

type LPSERVICE_STATUS = TLPSERVICE_STATUS

type LPSERVICE_STATUS_PROCESS = TLPSERVICE_STATUS_PROCESS

type LPSERVICE_TABLE_ENTRY = TLPSERVICE_TABLE_ENTRY

type LPSERVICE_TABLE_ENTRYA = TLPSERVICE_TABLE_ENTRYA

type LPSERVICE_TABLE_ENTRYW = TLPSERVICE_TABLE_ENTRYW

type LPSETUPHOOKPROC = TLPSETUPHOOKPROC

type LPSHELLEXECUTEINFO = TLPSHELLEXECUTEINFO

type LPSHELLEXECUTEINFOA = TLPSHELLEXECUTEINFOA

type LPSHELLEXECUTEINFOW = TLPSHELLEXECUTEINFOW

type LPSHELLHOOKINFO = TLPSHELLHOOKINFO

type LPSHFILEOPSTRUCT = TLPSHFILEOPSTRUCT

type LPSHFILEOPSTRUCTA = TLPSHFILEOPSTRUCTA

type LPSHFILEOPSTRUCTW = TLPSHFILEOPSTRUCTW

type LPSHNAMEMAPPING = TLPSHNAMEMAPPING

type LPSHNAMEMAPPINGA = TLPSHNAMEMAPPINGA

type LPSHNAMEMAPPINGW = TLPSHNAMEMAPPINGW

type LPSHQUERYRBINFO = TLPSHQUERYRBINFO

type LPSIZE = TLPSIZE

type LPSIZEL = TLPSIZEL

type LPSOCKADDR = TLPSOCKADDR

type LPSOCKADDR_IN = TLPSOCKADDR_IN

type LPSOFTDISTINFO = TLPSOFTDISTINFO

type LPSOUNDSENTRY = TLPSOUNDSENTRY

type LPSOUNDSENTRYA = TLPSOUNDSENTRYA

type LPSOUNDSENTRYW = TLPSOUNDSENTRYW

type LPSTARTUPINFO = TLPSTARTUPINFO

type LPSTARTUPINFOA = TLPSTARTUPINFOA

type LPSTARTUPINFOEX = TLPSTARTUPINFOEX

type LPSTARTUPINFOEXA = TLPSTARTUPINFOEXA

type LPSTARTUPINFOEXW = TLPSTARTUPINFOEXW

type LPSTARTUPINFOW = TLPSTARTUPINFOW

type LPSTATDATA = TLPSTATDATA

type LPSTDMARSHALINFO = TLPSTDMARSHALINFO

type LPSTGMEDIUM = TLPSTGMEDIUM

type LPSTICKYKEYS = TLPSTICKYKEYS

type LPSTORAGE = TLPSTORAGE

type LPSTR = TLPSTR

type LPSTREAM = TLPSTREAM

type LPSTYLEBUF = TLPSTYLEBUF

type LPSTYLEBUFA = TLPSTYLEBUFA

type LPSTYLEBUFW = TLPSTYLEBUFW

type LPSTYLESTRUCT = TLPSTYLESTRUCT

type LPSUPPORTERRORINFO = TLPSUPPORTERRORINFO

type LPSURROGATE = TLPSURROGATE

type LPSYNCHRONIZATION_BARRIER = TLPSYNCHRONIZATION_BARRIER

type LPSYSTEMTIME = TLPSYSTEMTIME

type LPSYSTEM_INFO = TLPSYSTEM_INFO

type LPSYSTEM_POWER_STATUS = TLPSYSTEM_POWER_STATUS

type LPTCH = TLPTCH

type LPTEXTMETRIC = TLPTEXTMETRIC

type LPTEXTMETRICA = TLPTEXTMETRICA

type LPTEXTMETRICW = TLPTEXTMETRICW

type LPTHREAD_START_ROUTINE = TLPTHREAD_START_ROUTINE

type LPTIMECALLBACK = TLPTIMECALLBACK

type LPTIMECAPS = TLPTIMECAPS

type LPTIMEVAL = TLPTIMEVAL

type LPTIME_ZONE_INFORMATION = TLPTIME_ZONE_INFORMATION

type LPTITLEBARINFO = TLPTITLEBARINFO

type LPTITLEBARINFOEX = TLPTITLEBARINFOEX

type LPTLIBATTR = TLPTLIBATTR

type LPTOGGLEKEYS = TLPTOGGLEKEYS

type LPTOP_LEVEL_EXCEPTION_FILTER = TLPTOP_LEVEL_EXCEPTION_FILTER

type LPTPMPARAMS = TLPTPMPARAMS

const LPTR = 64

type LPTRACKMOUSEEVENT = TLPTRACKMOUSEEVENT

type LPTRANSMIT_FILE_BUFFERS = TLPTRANSMIT_FILE_BUFFERS

type LPTRIVERTEX = TLPTRIVERTEX

type LPTSTR = TLPTSTR

type LPTTPOLYCURVE = TLPTTPOLYCURVE

type LPTTPOLYGONHEADER = TLPTTPOLYGONHEADER

type LPTYPEATTR = TLPTYPEATTR

type LPTYPECHANGEEVENTS = TLPTYPECHANGEEVENTS

type LPTYPECOMP = TLPTYPECOMP

type LPTYPEINFO = TLPTYPEINFO

type LPTYPEINFO2 = TLPTYPEINFO2

type LPTYPELIB = TLPTYPELIB

type LPTYPELIB2 = TLPTYPELIB2

const LPTx = 128

type LPUINT = TLPUINT

type LPUNIVERSAL_NAME_INFO = TLPUNIVERSAL_NAME_INFO

type LPUNIVERSAL_NAME_INFOA = TLPUNIVERSAL_NAME_INFOA

type LPUNIVERSAL_NAME_INFOW = TLPUNIVERSAL_NAME_INFOW

type LPUNKNOWN = TLPUNKNOWN

type LPUNLOAD_DLL_DEBUG_INFO = TLPUNLOAD_DLL_DEBUG_INFO

type LPURLZONEMANAGER = TLPURLZONEMANAGER

type LPUTSTR = TLPUTSTR

type LPUWSTR = TLPUWSTR

type LPVARDESC = TLPVARDESC

type LPVARIANT = TLPVARIANT

type LPVARIANTARG = TLPVARIANTARG

type LPVERSIONEDSTREAM = TLPVERSIONEDSTREAM

type LPVIDEOPARAMETERS = TLPVIDEOPARAMETERS

type LPVIEWOBJECT = TLPVIEWOBJECT

type LPVIEWOBJECT2 = TLPVIEWOBJECT2

type LPVOID = TLPVOID

type LPWAVECALLBACK = TLPWAVECALLBACK

type LPWAVEFORMAT = TLPWAVEFORMAT

type LPWAVEFORMATEX = TLPWAVEFORMATEX

type LPWAVEHDR = TLPWAVEHDR

type LPWAVEINCAPS = TLPWAVEINCAPS

type LPWAVEINCAPS2 = TLPWAVEINCAPS2

type LPWAVEINCAPS2A = TLPWAVEINCAPS2A

type LPWAVEINCAPS2W = TLPWAVEINCAPS2W

type LPWAVEINCAPSA = TLPWAVEINCAPSA

type LPWAVEINCAPSW = TLPWAVEINCAPSW

type LPWAVEOUTCAPS = TLPWAVEOUTCAPS

type LPWAVEOUTCAPS2 = TLPWAVEOUTCAPS2

type LPWAVEOUTCAPS2A = TLPWAVEOUTCAPS2A

type LPWAVEOUTCAPS2W = TLPWAVEOUTCAPS2W

type LPWAVEOUTCAPSA = TLPWAVEOUTCAPSA

type LPWAVEOUTCAPSW = TLPWAVEOUTCAPSW

type LPWCH = TLPWCH

type LPWCRANGE = TLPWCRANGE

type LPWGLSWAP = TLPWGLSWAP

type LPWIN32_FILE_ATTRIBUTE_DATA = TLPWIN32_FILE_ATTRIBUTE_DATA

type LPWIN32_FIND_DATA = TLPWIN32_FIND_DATA

type LPWIN32_FIND_DATAA = TLPWIN32_FIND_DATAA

type LPWIN32_FIND_DATAW = TLPWIN32_FIND_DATAW

type LPWIN32_STREAM_ID = TLPWIN32_STREAM_ID

type LPWINDOWFORBINDINGUI = TLPWINDOWFORBINDINGUI

type LPWINDOWINFO = TLPWINDOWINFO

type LPWINDOWPLACEMENT = TLPWINDOWPLACEMENT

type LPWINDOWPOS = TLPWINDOWPOS

type LPWININETCACHEHINTS = TLPWININETCACHEHINTS

type LPWININETCACHEHINTS2 = TLPWININETCACHEHINTS2

type LPWININETFILESTREAM = TLPWININETFILESTREAM

type LPWININETHTTPINFO = TLPWININETHTTPINFO

type LPWININETINFO = TLPWININETINFO

type LPWNDCLASS = TLPWNDCLASS

type LPWNDCLASSA = TLPWNDCLASSA

type LPWNDCLASSEX = TLPWNDCLASSEX

type LPWNDCLASSEXA = TLPWNDCLASSEXA

type LPWNDCLASSEXW = TLPWNDCLASSEXW

type LPWNDCLASSW = TLPWNDCLASSW

type LPWORD = TLPWORD

type LPWSADATA = TLPWSADATA

type LPWSTR = TLPWSTR

type LPXFORM = TLPXFORM

type LPZONEATTRIBUTES = TLPZONEATTRIBUTES

type LRESULT = TLRESULT

const LR_COLOR = 2

const LR_COPYDELETEORG = 8

const LR_COPYFROMRESOURCE = 16384

const LR_COPYRETURNORG = 4

const LR_CREATEDIBSECTION = 8192

const LR_DEFAULTCOLOR = 0

const LR_DEFAULTSIZE = 64

const LR_LOADFROMFILE = 16

const LR_LOADMAP3DCOLORS = 4096

const LR_LOADTRANSPARENT = 32

const LR_MONOCHROME = 1

const LR_SHARED = 32768

const LR_VGACOLOR = 128

const LSFW_LOCK = 1

const LSFW_UNLOCK = 2

type LSTATUS = TLSTATUS

const LTGRAY_BRUSH = 1

const LTP_PC_SMT = 1

const LUA_TOKEN = 4

type LUID = TLUID

type LUID_AND_ATTRIBUTES = TLUID_AND_ATTRIBUTES

type LUID_AND_ATTRIBUTES_ARRAY = TLUID_AND_ATTRIBUTES_ARRAY

const LWA_ALPHA = 2

const LWA_COLORKEY = 1

const LZERROR_BADINHANDLE = -1

const LZERROR_BADOUTHANDLE = -2

const LZERROR_BADVALUE = -7

const LZERROR_GLOBALLOC = -5

const LZERROR_GLOBLOCK = -6

const LZERROR_READ = -3

const LZERROR_UNKNOWNALG = -8

const LZERROR_WRITE = -4

const LZOpenFile = 0

const L_tmpnam = 12

const L_tmpnam_s = 12

const LoadAccelerators = 0

const LoadBitmap = 0

const LoadCursor = 0

const LoadCursorFromFile = 0

const LoadIcon = 0

const LoadImage = 0

const LoadKeyboardLayout = 0

const LoadLibrary = 0

const LoadLibraryEx = 0

const LoadMenu = 0

const LoadMenuIndirect = 0

const LoadString = 0

const LogonUser = 0

const LogonUserEx = 0

const LookupAccountName = 0

const LookupAccountNameLocal = 0

const LookupAccountSid = 0

const LookupAccountSidLocal = 0

const LookupPrivilegeDisplayName = 0

const LookupPrivilegeName = 0

const LookupPrivilegeValue = 0

type M128A = TM128A

type MACHINE_ATTRIBUTES = TMACHINE_ATTRIBUTES

const MAC_CHARSET = 77

const MAILSLOT_NO_MESSAGE = -1

const MAILSLOT_WAIT_FOREVER = -1

const MAKEINTRESOURCE = 0

type MALLOC_FREE_STRUCT = TMALLOC_FREE_STRUCT

type MANDATORY_LEVEL = TMANDATORY_LEVEL

const MAPVK_VK_TO_CHAR = 2

const MAPVK_VK_TO_VSC = 0

const MAPVK_VK_TO_VSC_EX = 4

const MAPVK_VSC_TO_VK = 1

const MAPVK_VSC_TO_VK_EX = 3

const MAP_COMPOSITE = 64

const MAP_EXPAND_LIGATURES = 8192

const MAP_FOLDCZONE = 16

const MAP_FOLDDIGITS = 128

const MAP_PRECOMPOSED = 32

const MARKPARITY = 3

type MARK_HANDLE_INFO = TMARK_HANDLE_INFO

const MARK_HANDLE_NOT_REALTIME = 64

const MARK_HANDLE_NOT_TXF_SYSTEM_LOG = 8

const MARK_HANDLE_PROTECT_CLUSTERS = 1

const MARK_HANDLE_REALTIME = 32

const MARK_HANDLE_TXF_SYSTEM_LOG = 4

const MARSHALINTERFACE_MIN = 500

const MARSHAL_E_FIRST = 2147746080

const MARSHAL_E_LAST = 2147746095

const MARSHAL_S_FIRST = 262432

const MARSHAL_S_LAST = 262447

const MASK_TO_RESET_TLB_BITS = -97

type MAT2 = TMAT2

const MAXBYTE = 255

const MAXCHAR = 127

const MAXDWORD = 4294967295

const MAXERRORLENGTH = 256

const MAXGETHOSTSTRUCT = 1024

const MAXIMUM_ALLOWED = 33554432

const MAXIMUM_ATTR_STRING_LENGTH = 32

const MAXIMUM_ENCRYPTION_VALUE = 4

const MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384

const MAXIMUM_SMARTCARD_READERS = 10

const MAXIMUM_SUSPEND_COUNT = 127

const MAXIMUM_WAIT_OBJECTS = 64

const MAXIMUM_XSTATE_FEATURES = 64

const MAXINTATOM = 49152

const MAXLOGICALLOGNAMESIZE = 256

const MAXLONG = 2147483647

const MAXLONGLONG = 9223372036854775807

const MAXPNAMELEN = 32

const MAXPROPPAGES = 100

const MAXSHORT = 32767

const MAXSTRETCHBLTMODE = 4

const MAXUIDLEN = 64

const MAXWORD = 65535

const MAX_ACL_REVISION = 4

const MAX_COMPUTERNAME_LENGTH = 15

const MAX_DEFAULTCHAR = 2

const MAX_HW_COUNTERS = 16

const MAX_JOYSTICKOEMVXDNAME = 260

const MAX_LANA = 254

const MAX_LEADBYTES = 12

const MAX_LOGICALDPIOVERRIDE = 2

const MAX_MONITORS = 4

const MAX_NATURAL_ALIGNMENT = 0

const MAX_NUM_REASONS = 256

const MAX_PATH = 260

const MAX_PERF_OBJECTS_IN_QUERY_FUNCTION = 64

const MAX_PRIORITY = 99

const MAX_PROFILE_LEN = 80

const MAX_REASON_BUGID_LEN = 32

const MAX_REASON_COMMENT_LEN = 512

const MAX_REASON_DESC_LEN = 256

const MAX_REASON_NAME_LEN = 64

const MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH = 64

const MAX_SHUTDOWN_TIMEOUT = 315360000

const MAX_SID_SIZE = 256

const MAX_SIZE_SECURITY_ID = 512

const MAX_STR_BLOCKREASON = 256

const MAX_SUPPORTED_OS_NUM = 4

const MAX_TOUCH_COUNT = 256

const MAX_TOUCH_PREDICTION_FILTER_TAPS = 3

const MAX_TRANSACTION_DESCRIPTION_LENGTH = 64

const MAX_UCSCHAR = 1114111

const MAX_VOLUME_ID_SIZE = 36

const MAX_VOLUME_TEMPLATE_SIZE = 40

const MA_ACTIVATE = 1

const MA_ACTIVATEANDEAT = 2

const MA_NOACTIVATE = 3

const MA_NOACTIVATEANDEAT = 4

const MB_ABORTRETRYIGNORE = 2

const MB_APPLMODAL = 0

const MB_CANCELTRYCONTINUE = 6

const MB_COMPOSITE = 2

const MB_DEFAULT_DESKTOP_ONLY = 131072

const MB_DEFBUTTON1 = 0

const MB_DEFBUTTON2 = 256

const MB_DEFBUTTON3 = 512

const MB_DEFBUTTON4 = 768

const MB_DEFMASK = 3840

const MB_ERR_INVALID_CHARS = 8

const MB_HELP = 16384

const MB_ICONASTERISK = 64

const MB_ICONERROR = 16

const MB_ICONEXCLAMATION = 48

const MB_ICONHAND = 16

const MB_ICONINFORMATION = 64

const MB_ICONMASK = 240

const MB_ICONQUESTION = 32

const MB_ICONSTOP = 16

const MB_ICONWARNING = 48

const MB_LEN_MAX = 5

const MB_MISCMASK = 49152

const MB_MODEMASK = 12288

const MB_NOFOCUS = 32768

const MB_OK = 0

const MB_OKCANCEL = 1

const MB_PRECOMPOSED = 1

const MB_RETRYCANCEL = 5

const MB_RIGHT = 524288

const MB_RTLREADING = 1048576

const MB_SERVICE_NOTIFICATION = 2097152

const MB_SERVICE_NOTIFICATION_NT3X = 262144

const MB_SETFOREGROUND = 65536

const MB_SYSTEMMODAL = 4096

const MB_TASKMODAL = 8192

const MB_TOPMOST = 262144

const MB_TYPEMASK = 15

const MB_USEGLYPHCHARS = 4

const MB_USERICON = 128

const MB_YESNO = 4

const MB_YESNOCANCEL = 3

type MCIDEVICEID = TMCIDEVICEID

type MCIERROR = TMCIERROR

const MCIERR_BAD_CONSTANT = 290

const MCIERR_BAD_INTEGER = 270

const MCIERR_BAD_TIME_FORMAT = 293

const MCIERR_BASE = 256

const MCIERR_CANNOT_LOAD_DRIVER = 266

const MCIERR_CANNOT_USE_ALL = 279

const MCIERR_CREATEWINDOW = 347

const MCIERR_CUSTOM_DRIVER_BASE = 512

const MCIERR_DEVICE_LENGTH = 310

const MCIERR_DEVICE_LOCKED = 288

const MCIERR_DEVICE_NOT_INSTALLED = 306

const MCIERR_DEVICE_NOT_READY = 276

const MCIERR_DEVICE_OPEN = 265

const MCIERR_DEVICE_ORD_LENGTH = 311

const MCIERR_DEVICE_TYPE_REQUIRED = 287

const MCIERR_DRIVER = 278

const MCIERR_DRIVER_INTERNAL = 272

const MCIERR_DUPLICATE_ALIAS = 289

const MCIERR_DUPLICATE_FLAGS = 295

const MCIERR_EXTENSION_NOT_FOUND = 281

const MCIERR_EXTRA_CHARACTERS = 305

const MCIERR_FILENAME_REQUIRED = 304

const MCIERR_FILE_NOT_FOUND = 275

const MCIERR_FILE_NOT_SAVED = 286

const MCIERR_FILE_READ = 348

const MCIERR_FILE_WRITE = 349

const MCIERR_FLAGS_NOT_COMPATIBLE = 284

const MCIERR_GET_CD = 307

const MCIERR_HARDWARE = 262

const MCIERR_ILLEGAL_FOR_AUTO_OPEN = 303

const MCIERR_INTERNAL = 277

const MCIERR_INVALID_DEVICE_ID = 257

const MCIERR_INVALID_DEVICE_NAME = 263

const MCIERR_INVALID_FILE = 296

const MCIERR_MISSING_COMMAND_STRING = 267

const MCIERR_MISSING_DEVICE_NAME = 292

const MCIERR_MISSING_PARAMETER = 273

const MCIERR_MISSING_STRING_ARGUMENT = 269

const MCIERR_MULTIPLE = 280

const MCIERR_MUST_USE_SHAREABLE = 291

const MCIERR_NEW_REQUIRES_ALIAS = 299

const MCIERR_NONAPPLICABLE_FUNCTION = 302

const MCIERR_NOTIFY_ON_AUTO_OPEN = 300

const MCIERR_NO_CLOSING_QUOTE = 294

const MCIERR_NO_ELEMENT_ALLOWED = 301

const MCIERR_NO_IDENTITY = 350

const MCIERR_NO_INTEGER = 312

const MCIERR_NO_WINDOW = 346

const MCIERR_NULL_PARAMETER_BLOCK = 297

const MCIERR_OUTOFRANGE = 282

const MCIERR_OUT_OF_MEMORY = 264

const MCIERR_PARAM_OVERFLOW = 268

const MCIERR_PARSER_INTERNAL = 271

const MCIERR_SEQ_DIV_INCOMPATIBLE = 336

const MCIERR_SEQ_NOMIDIPRESENT = 343

const MCIERR_SEQ_PORTUNSPECIFIED = 342

const MCIERR_SEQ_PORT_INUSE = 337

const MCIERR_SEQ_PORT_MAPNODEVICE = 339

const MCIERR_SEQ_PORT_MISCERROR = 340

const MCIERR_SEQ_PORT_NONEXISTENT = 338

const MCIERR_SEQ_TIMER = 341

const MCIERR_SET_CD = 308

const MCIERR_SET_DRIVE = 309

const MCIERR_UNNAMED_RESOURCE = 298

const MCIERR_UNRECOGNIZED_COMMAND = 261

const MCIERR_UNRECOGNIZED_KEYWORD = 259

const MCIERR_UNSUPPORTED_FUNCTION = 274

const MCIERR_WAVE_INPUTSINUSE = 322

const MCIERR_WAVE_INPUTSUNSUITABLE = 328

const MCIERR_WAVE_INPUTUNSPECIFIED = 325

const MCIERR_WAVE_OUTPUTSINUSE = 320

const MCIERR_WAVE_OUTPUTSUNSUITABLE = 326

const MCIERR_WAVE_OUTPUTUNSPECIFIED = 324

const MCIERR_WAVE_SETINPUTINUSE = 323

const MCIERR_WAVE_SETINPUTUNSUITABLE = 329

const MCIERR_WAVE_SETOUTPUTINUSE = 321

const MCIERR_WAVE_SETOUTPUTUNSUITABLE = 327

const MCI_ALL_DEVICE_ID = -1

const MCI_ANIM_GETDEVCAPS_CAN_REVERSE = 16385

const MCI_ANIM_GETDEVCAPS_CAN_STRETCH = 16391

const MCI_ANIM_GETDEVCAPS_FAST_RATE = 16386

const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = 16392

const MCI_ANIM_GETDEVCAPS_NORMAL_RATE = 16388

const MCI_ANIM_GETDEVCAPS_PALETTES = 16390

const MCI_ANIM_GETDEVCAPS_SLOW_RATE = 16387

const MCI_ANIM_INFO_TEXT = 65536

const MCI_ANIM_OPEN_NOSTATIC = 262144

const MCI_ANIM_OPEN_PARENT = 131072

type MCI_ANIM_OPEN_PARMS = TMCI_ANIM_OPEN_PARMS

type MCI_ANIM_OPEN_PARMSA = TMCI_ANIM_OPEN_PARMSA

type MCI_ANIM_OPEN_PARMSW = TMCI_ANIM_OPEN_PARMSW

const MCI_ANIM_OPEN_WS = 65536

const MCI_ANIM_PLAY_FAST = 262144

type MCI_ANIM_PLAY_PARMS = TMCI_ANIM_PLAY_PARMS

const MCI_ANIM_PLAY_REVERSE = 131072

const MCI_ANIM_PLAY_SCAN = 1048576

const MCI_ANIM_PLAY_SLOW = 524288

const MCI_ANIM_PLAY_SPEED = 65536

const MCI_ANIM_PUT_DESTINATION = 262144

const MCI_ANIM_PUT_SOURCE = 131072

const MCI_ANIM_REALIZE_BKGD = 131072

const MCI_ANIM_REALIZE_NORM = 65536

const MCI_ANIM_RECT = 65536

type MCI_ANIM_RECT_PARMS = TMCI_ANIM_RECT_PARMS

const MCI_ANIM_STATUS_FORWARD = 16386

const MCI_ANIM_STATUS_HPAL = 16388

const MCI_ANIM_STATUS_HWND = 16387

const MCI_ANIM_STATUS_SPEED = 16385

const MCI_ANIM_STATUS_STRETCH = 16389

const MCI_ANIM_STEP_FRAMES = 131072

type MCI_ANIM_STEP_PARMS = TMCI_ANIM_STEP_PARMS

const MCI_ANIM_STEP_REVERSE = 65536

const MCI_ANIM_UPDATE_HDC = 131072

type MCI_ANIM_UPDATE_PARMS = TMCI_ANIM_UPDATE_PARMS

const MCI_ANIM_WHERE_DESTINATION = 262144

const MCI_ANIM_WHERE_SOURCE = 131072

const MCI_ANIM_WINDOW_DEFAULT = 0

const MCI_ANIM_WINDOW_DISABLE_STRETCH = 2097152

const MCI_ANIM_WINDOW_ENABLE_STRETCH = 1048576

const MCI_ANIM_WINDOW_HWND = 65536

type MCI_ANIM_WINDOW_PARMS = TMCI_ANIM_WINDOW_PARMS

type MCI_ANIM_WINDOW_PARMSA = TMCI_ANIM_WINDOW_PARMSA

type MCI_ANIM_WINDOW_PARMSW = TMCI_ANIM_WINDOW_PARMSW

const MCI_ANIM_WINDOW_STATE = 262144

const MCI_ANIM_WINDOW_TEXT = 524288

const MCI_BREAK = 2065

const MCI_BREAK_HWND = 512

const MCI_BREAK_KEY = 256

const MCI_BREAK_OFF = 1024

type MCI_BREAK_PARMS = TMCI_BREAK_PARMS

const MCI_CDA_STATUS_TYPE_TRACK = 16385

const MCI_CDA_TRACK_AUDIO = 1088

const MCI_CDA_TRACK_OTHER = 1089

const MCI_CD_OFFSET = 1088

const MCI_CLOSE = 2052

const MCI_COPY = 2130

const MCI_CUE = 2096

const MCI_CUT = 2129

const MCI_DELETE = 2134

const MCI_DEVTYPE_ANIMATION = 519

const MCI_DEVTYPE_CD_AUDIO = 516

const MCI_DEVTYPE_DAT = 517

const MCI_DEVTYPE_DIGITAL_VIDEO = 520

const MCI_DEVTYPE_FIRST = 513

const MCI_DEVTYPE_FIRST_USER = 4096

const MCI_DEVTYPE_LAST = 523

const MCI_DEVTYPE_OTHER = 521

const MCI_DEVTYPE_OVERLAY = 515

const MCI_DEVTYPE_SCANNER = 518

const MCI_DEVTYPE_SEQUENCER = 523

const MCI_DEVTYPE_VCR = 513

const MCI_DEVTYPE_VIDEODISC = 514

const MCI_DEVTYPE_WAVEFORM_AUDIO = 522

const MCI_ESCAPE = 2053

const MCI_FIRST = 2048

const MCI_FORMAT_BYTES = 8

const MCI_FORMAT_FRAMES = 3

const MCI_FORMAT_HMS = 1

const MCI_FORMAT_MILLISECONDS = 0

const MCI_FORMAT_MSF = 2

const MCI_FORMAT_SAMPLES = 9

const MCI_FORMAT_SMPTE_24 = 4

const MCI_FORMAT_SMPTE_25 = 5

const MCI_FORMAT_SMPTE_30 = 6

const MCI_FORMAT_SMPTE_30DROP = 7

const MCI_FORMAT_TMSF = 10

const MCI_FREEZE = 2116

const MCI_FROM = 4

type MCI_GENERIC_PARMS = TMCI_GENERIC_PARMS

const MCI_GETDEVCAPS = 2059

const MCI_GETDEVCAPS_CAN_EJECT = 7

const MCI_GETDEVCAPS_CAN_PLAY = 8

const MCI_GETDEVCAPS_CAN_RECORD = 1

const MCI_GETDEVCAPS_CAN_SAVE = 9

const MCI_GETDEVCAPS_COMPOUND_DEVICE = 6

const MCI_GETDEVCAPS_DEVICE_TYPE = 4

const MCI_GETDEVCAPS_HAS_AUDIO = 2

const MCI_GETDEVCAPS_HAS_VIDEO = 3

const MCI_GETDEVCAPS_ITEM = 256

type MCI_GETDEVCAPS_PARMS = TMCI_GETDEVCAPS_PARMS

const MCI_GETDEVCAPS_USES_FILES = 5

const MCI_INFO = 2058

const MCI_INFO_COPYRIGHT = 8192

const MCI_INFO_FILE = 512

const MCI_INFO_MEDIA_IDENTITY = 2048

const MCI_INFO_MEDIA_UPC = 1024

const MCI_INFO_NAME = 4096

type MCI_INFO_PARMS = TMCI_INFO_PARMS

type MCI_INFO_PARMSA = TMCI_INFO_PARMSA

type MCI_INFO_PARMSW = TMCI_INFO_PARMSW

const MCI_INFO_PRODUCT = 256

const MCI_LAST = 4095

const MCI_LOAD = 2128

const MCI_LOAD_FILE = 256

type MCI_LOAD_PARMS = TMCI_LOAD_PARMS

type MCI_LOAD_PARMSA = TMCI_LOAD_PARMSA

type MCI_LOAD_PARMSW = TMCI_LOAD_PARMSW

const MCI_MODE_NOT_READY = 524

const MCI_MODE_OPEN = 530

const MCI_MODE_PAUSE = 529

const MCI_MODE_PLAY = 526

const MCI_MODE_RECORD = 527

const MCI_MODE_SEEK = 528

const MCI_MODE_STOP = 525

const MCI_NOTIFY = 1

const MCI_NOTIFY_ABORTED = 4

const MCI_NOTIFY_FAILURE = 8

const MCI_NOTIFY_SUCCESSFUL = 1

const MCI_NOTIFY_SUPERSEDED = 2

const MCI_OPEN = 2051

const MCI_OPEN_ALIAS = 1024

const MCI_OPEN_ELEMENT = 512

const MCI_OPEN_ELEMENT_ID = 2048

type MCI_OPEN_PARMS = TMCI_OPEN_PARMS

type MCI_OPEN_PARMSA = TMCI_OPEN_PARMSA

type MCI_OPEN_PARMSW = TMCI_OPEN_PARMSW

const MCI_OPEN_SHAREABLE = 256

const MCI_OPEN_TYPE = 8192

const MCI_OPEN_TYPE_ID = 4096

const MCI_OVLY_GETDEVCAPS_CAN_FREEZE = 16386

const MCI_OVLY_GETDEVCAPS_CAN_STRETCH = 16385

const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = 16387

const MCI_OVLY_INFO_TEXT = 65536

type MCI_OVLY_LOAD_PARMS = TMCI_OVLY_LOAD_PARMS

type MCI_OVLY_LOAD_PARMSA = TMCI_OVLY_LOAD_PARMSA

type MCI_OVLY_LOAD_PARMSW = TMCI_OVLY_LOAD_PARMSW

const MCI_OVLY_OPEN_PARENT = 131072

type MCI_OVLY_OPEN_PARMS = TMCI_OVLY_OPEN_PARMS

type MCI_OVLY_OPEN_PARMSA = TMCI_OVLY_OPEN_PARMSA

type MCI_OVLY_OPEN_PARMSW = TMCI_OVLY_OPEN_PARMSW

const MCI_OVLY_OPEN_WS = 65536

const MCI_OVLY_PUT_DESTINATION = 262144

const MCI_OVLY_PUT_FRAME = 524288

const MCI_OVLY_PUT_SOURCE = 131072

const MCI_OVLY_PUT_VIDEO = 1048576

const MCI_OVLY_RECT = 65536

type MCI_OVLY_RECT_PARMS = TMCI_OVLY_RECT_PARMS

type MCI_OVLY_SAVE_PARMS = TMCI_OVLY_SAVE_PARMS

type MCI_OVLY_SAVE_PARMSA = TMCI_OVLY_SAVE_PARMSA

type MCI_OVLY_SAVE_PARMSW = TMCI_OVLY_SAVE_PARMSW

const MCI_OVLY_STATUS_HWND = 16385

const MCI_OVLY_STATUS_STRETCH = 16386

const MCI_OVLY_WHERE_DESTINATION = 262144

const MCI_OVLY_WHERE_FRAME = 524288

const MCI_OVLY_WHERE_SOURCE = 131072

const MCI_OVLY_WHERE_VIDEO = 1048576

const MCI_OVLY_WINDOW_DEFAULT = 0

const MCI_OVLY_WINDOW_DISABLE_STRETCH = 2097152

const MCI_OVLY_WINDOW_ENABLE_STRETCH = 1048576

const MCI_OVLY_WINDOW_HWND = 65536

type MCI_OVLY_WINDOW_PARMS = TMCI_OVLY_WINDOW_PARMS

type MCI_OVLY_WINDOW_PARMSA = TMCI_OVLY_WINDOW_PARMSA

type MCI_OVLY_WINDOW_PARMSW = TMCI_OVLY_WINDOW_PARMSW

const MCI_OVLY_WINDOW_STATE = 262144

const MCI_OVLY_WINDOW_TEXT = 524288

const MCI_PASTE = 2131

const MCI_PAUSE = 2057

const MCI_PLAY = 2054

type MCI_PLAY_PARMS = TMCI_PLAY_PARMS

const MCI_PUT = 2114

const MCI_REALIZE = 2112

const MCI_RECORD = 2063

const MCI_RECORD_INSERT = 256

const MCI_RECORD_OVERWRITE = 512

type MCI_RECORD_PARMS = TMCI_RECORD_PARMS

const MCI_RESUME = 2133

const MCI_SAVE = 2067

const MCI_SAVE_FILE = 256

type MCI_SAVE_PARMS = TMCI_SAVE_PARMS

type MCI_SAVE_PARMSA = TMCI_SAVE_PARMSA

type MCI_SAVE_PARMSW = TMCI_SAVE_PARMSW

const MCI_SEEK = 2055

type MCI_SEEK_PARMS = TMCI_SEEK_PARMS

const MCI_SEEK_TO_END = 512

const MCI_SEEK_TO_START = 256

const MCI_SEQ_DIV_PPQN = 1216

const MCI_SEQ_DIV_SMPTE_24 = 1217

const MCI_SEQ_DIV_SMPTE_25 = 1218

const MCI_SEQ_DIV_SMPTE_30 = 1220

const MCI_SEQ_DIV_SMPTE_30DROP = 1219

const MCI_SEQ_FILE = 16386

const MCI_SEQ_FORMAT_SONGPTR = 16385

const MCI_SEQ_MAPPER = 65535

const MCI_SEQ_MIDI = 16387

const MCI_SEQ_NONE = 65533

const MCI_SEQ_OFFSET = 1216

const MCI_SEQ_SET_MASTER = 524288

const MCI_SEQ_SET_OFFSET = 16777216

type MCI_SEQ_SET_PARMS = TMCI_SEQ_SET_PARMS

const MCI_SEQ_SET_PORT = 131072

const MCI_SEQ_SET_SLAVE = 262144

const MCI_SEQ_SET_TEMPO = 65536

const MCI_SEQ_SMPTE = 16388

const MCI_SEQ_STATUS_COPYRIGHT = 16396

const MCI_SEQ_STATUS_DIVTYPE = 16394

const MCI_SEQ_STATUS_MASTER = 16392

const MCI_SEQ_STATUS_NAME = 16395

const MCI_SEQ_STATUS_OFFSET = 16393

const MCI_SEQ_STATUS_PORT = 16387

const MCI_SEQ_STATUS_SLAVE = 16391

const MCI_SEQ_STATUS_TEMPO = 16386

const MCI_SET = 2061

const MCI_SET_AUDIO = 2048

const MCI_SET_AUDIO_ALL = 0

const MCI_SET_AUDIO_LEFT = 1

const MCI_SET_AUDIO_RIGHT = 2

const MCI_SET_DOOR_CLOSED = 512

const MCI_SET_DOOR_OPEN = 256

const MCI_SET_OFF = 16384

const MCI_SET_ON = 8192

type MCI_SET_PARMS = TMCI_SET_PARMS

const MCI_SET_TIME_FORMAT = 1024

const MCI_SET_VIDEO = 4096

const MCI_SPIN = 2060

const MCI_STATUS = 2068

const MCI_STATUS_CURRENT_TRACK = 8

const MCI_STATUS_ITEM = 256

const MCI_STATUS_LENGTH = 1

const MCI_STATUS_MEDIA_PRESENT = 5

const MCI_STATUS_MODE = 4

const MCI_STATUS_NUMBER_OF_TRACKS = 3

type MCI_STATUS_PARMS = TMCI_STATUS_PARMS

const MCI_STATUS_POSITION = 2

const MCI_STATUS_READY = 7

const MCI_STATUS_START = 512

const MCI_STATUS_TIME_FORMAT = 6

const MCI_STEP = 2062

const MCI_STOP = 2056

const MCI_STRING_OFFSET = 512

const MCI_SYSINFO = 2064

const MCI_SYSINFO_INSTALLNAME = 2048

const MCI_SYSINFO_NAME = 1024

const MCI_SYSINFO_OPEN = 512

type MCI_SYSINFO_PARMS = TMCI_SYSINFO_PARMS

type MCI_SYSINFO_PARMSA = TMCI_SYSINFO_PARMSA

type MCI_SYSINFO_PARMSW = TMCI_SYSINFO_PARMSW

const MCI_SYSINFO_QUANTITY = 256

const MCI_TO = 8

const MCI_TRACK = 16

const MCI_UNFREEZE = 2117

const MCI_UPDATE = 2132

const MCI_USER_MESSAGES = 3072

type MCI_VD_ESCAPE_PARMS = TMCI_VD_ESCAPE_PARMS

type MCI_VD_ESCAPE_PARMSA = TMCI_VD_ESCAPE_PARMSA

type MCI_VD_ESCAPE_PARMSW = TMCI_VD_ESCAPE_PARMSW

const MCI_VD_ESCAPE_STRING = 256

const MCI_VD_FORMAT_TRACK = 16385

const MCI_VD_GETDEVCAPS_CAN_REVERSE = 16386

const MCI_VD_GETDEVCAPS_CAV = 131072

const MCI_VD_GETDEVCAPS_CLV = 65536

const MCI_VD_GETDEVCAPS_FAST_RATE = 16387

const MCI_VD_GETDEVCAPS_NORMAL_RATE = 16389

const MCI_VD_GETDEVCAPS_SLOW_RATE = 16388

const MCI_VD_MEDIA_CAV = 1027

const MCI_VD_MEDIA_CLV = 1026

const MCI_VD_MEDIA_OTHER = 1028

const MCI_VD_MODE_PARK = 1025

const MCI_VD_OFFSET = 1024

const MCI_VD_PLAY_FAST = 131072

type MCI_VD_PLAY_PARMS = TMCI_VD_PLAY_PARMS

const MCI_VD_PLAY_REVERSE = 65536

const MCI_VD_PLAY_SCAN = 524288

const MCI_VD_PLAY_SLOW = 1048576

const MCI_VD_PLAY_SPEED = 262144

const MCI_VD_SEEK_REVERSE = 65536

const MCI_VD_SPIN_DOWN = 131072

const MCI_VD_SPIN_UP = 65536

const MCI_VD_STATUS_DISC_SIZE = 16390

const MCI_VD_STATUS_FORWARD = 16387

const MCI_VD_STATUS_MEDIA_TYPE = 16388

const MCI_VD_STATUS_SIDE = 16389

const MCI_VD_STATUS_SPEED = 16386

const MCI_VD_STEP_FRAMES = 65536

type MCI_VD_STEP_PARMS = TMCI_VD_STEP_PARMS

const MCI_VD_STEP_REVERSE = 131072

const MCI_WAIT = 2

type MCI_WAVE_DELETE_PARMS = TMCI_WAVE_DELETE_PARMS

const MCI_WAVE_GETDEVCAPS_INPUTS = 16385

const MCI_WAVE_GETDEVCAPS_OUTPUTS = 16386

const MCI_WAVE_INPUT = 4194304

const MCI_WAVE_MAPPER = 1153

const MCI_WAVE_OFFSET = 1152

const MCI_WAVE_OPEN_BUFFER = 65536

type MCI_WAVE_OPEN_PARMS = TMCI_WAVE_OPEN_PARMS

type MCI_WAVE_OPEN_PARMSA = TMCI_WAVE_OPEN_PARMSA

type MCI_WAVE_OPEN_PARMSW = TMCI_WAVE_OPEN_PARMSW

const MCI_WAVE_OUTPUT = 8388608

const MCI_WAVE_PCM = 1152

const MCI_WAVE_SET_ANYINPUT = 67108864

const MCI_WAVE_SET_ANYOUTPUT = 134217728

const MCI_WAVE_SET_AVGBYTESPERSEC = 524288

const MCI_WAVE_SET_BITSPERSAMPLE = 2097152

const MCI_WAVE_SET_BLOCKALIGN = 1048576

const MCI_WAVE_SET_CHANNELS = 131072

const MCI_WAVE_SET_FORMATTAG = 65536

type MCI_WAVE_SET_PARMS = TMCI_WAVE_SET_PARMS

const MCI_WAVE_SET_SAMPLESPERSEC = 262144

const MCI_WAVE_STATUS_AVGBYTESPERSEC = 16388

const MCI_WAVE_STATUS_BITSPERSAMPLE = 16390

const MCI_WAVE_STATUS_BLOCKALIGN = 16389

const MCI_WAVE_STATUS_CHANNELS = 16386

const MCI_WAVE_STATUS_FORMATTAG = 16385

const MCI_WAVE_STATUS_LEVEL = 16391

const MCI_WAVE_STATUS_SAMPLESPERSEC = 16387

const MCI_WHERE = 2115

const MCI_WINDOW = 2113

type MDICREATESTRUCT = TMDICREATESTRUCT

type MDICREATESTRUCTA = TMDICREATESTRUCTA

type MDICREATESTRUCTW = TMDICREATESTRUCTW

type MDINEXTMENU = TMDINEXTMENU

const MDIS_ALLCHILDSTYLES = 1

const MDITILE_HORIZONTAL = 1

const MDITILE_SKIPDISABLED = 2

const MDITILE_VERTICAL = 0

const MDITILE_ZORDER = 4

const MDMSPKRFLAG_CALLSETUP = 8

const MDMSPKRFLAG_DIAL = 2

const MDMSPKRFLAG_OFF = 1

const MDMSPKRFLAG_ON = 4

const MDMSPKR_CALLSETUP = 3

const MDMSPKR_DIAL = 1

const MDMSPKR_OFF = 0

const MDMSPKR_ON = 2

const MDMVOLFLAG_HIGH = 4

const MDMVOLFLAG_LOW = 1

const MDMVOLFLAG_MEDIUM = 2

const MDMVOL_HIGH = 2

const MDMVOL_LOW = 0

const MDMVOL_MEDIUM = 1

const MDM_ANALOG_RLP_OFF = 1

const MDM_ANALOG_RLP_ON = 0

const MDM_ANALOG_V34 = 2

const MDM_AUTO_ML_2 = 2

const MDM_AUTO_ML_DEFAULT = 0

const MDM_AUTO_ML_NONE = 1

const MDM_AUTO_SPEED_DEFAULT = 0

const MDM_BEARERMODE_ANALOG = 0

const MDM_BEARERMODE_GSM = 2

const MDM_BEARERMODE_ISDN = 1

const MDM_BLIND_DIAL = 512

const MDM_CCITT_OVERRIDE = 64

const MDM_CELLULAR = 8

const MDM_COMPRESSION = 1

const MDM_DIAGNOSTICS = 2048

const MDM_ERROR_CONTROL = 2

const MDM_FLOWCONTROL_HARD = 16

const MDM_FLOWCONTROL_SOFT = 32

const MDM_FORCED_EC = 4

const MDM_HDLCPPP_AUTH_CHAP = 3

const MDM_HDLCPPP_AUTH_DEFAULT = 0

const MDM_HDLCPPP_AUTH_MSCHAP = 4

const MDM_HDLCPPP_AUTH_NONE = 1

const MDM_HDLCPPP_AUTH_PAP = 2

const MDM_HDLCPPP_ML_2 = 2

const MDM_HDLCPPP_ML_DEFAULT = 0

const MDM_HDLCPPP_ML_NONE = 1

const MDM_HDLCPPP_SPEED_56K = 2

const MDM_HDLCPPP_SPEED_64K = 1

const MDM_HDLCPPP_SPEED_DEFAULT = 0

const MDM_MASK_AUTO_ML = 192

const MDM_MASK_AUTO_SPEED = 7

const MDM_MASK_BEARERMODE = 61440

const MDM_MASK_EXTENDEDINFO = 268431360

const MDM_MASK_HDLCPPP_AUTH = 56

const MDM_MASK_HDLCPPP_ML = 192

const MDM_MASK_HDLCPPP_SPEED = 7

const MDM_MASK_PROTOCOLDATA = 267386880

const MDM_MASK_PROTOCOLID = 983040

const MDM_MASK_PROTOCOLINFO = 268369920

const MDM_MASK_V110_SPEED = 15

const MDM_MASK_V120_ML = 192

const MDM_MASK_V120_SPEED = 7

const MDM_MASK_X75_DATA = 7

const MDM_PIAFS_INCOMING = 0

const MDM_PIAFS_OUTGOING = 1

const MDM_PROTOCOLID_ANALOG = 7

const MDM_PROTOCOLID_AUTO = 6

const MDM_PROTOCOLID_DEFAULT = 0

const MDM_PROTOCOLID_GPRS = 8

const MDM_PROTOCOLID_HDLCPPP = 1

const MDM_PROTOCOLID_PIAFS = 9

const MDM_PROTOCOLID_V110 = 4

const MDM_PROTOCOLID_V120 = 5

const MDM_PROTOCOLID_V128 = 2

const MDM_PROTOCOLID_X75 = 3

const MDM_PROTOCOL_ANALOG_NRLP = 1507328

const MDM_PROTOCOL_ANALOG_RLP = 458752

const MDM_PROTOCOL_ANALOG_V34 = 2555904

const MDM_PROTOCOL_AUTO_1CH = 67502080

const MDM_PROTOCOL_AUTO_2CH = 134610944

const MDM_PROTOCOL_GPRS = 524288

const MDM_PROTOCOL_HDLCPPP_112K = 136380416

const MDM_PROTOCOL_HDLCPPP_112K_CHAP = 161546240

const MDM_PROTOCOL_HDLCPPP_112K_MSCHAP = 169934848

const MDM_PROTOCOL_HDLCPPP_112K_PAP = 153157632

const MDM_PROTOCOL_HDLCPPP_128K = 135331840

const MDM_PROTOCOL_HDLCPPP_128K_CHAP = 160497664

const MDM_PROTOCOL_HDLCPPP_128K_MSCHAP = 168886272

const MDM_PROTOCOL_HDLCPPP_128K_PAP = 152109056

const MDM_PROTOCOL_HDLCPPP_56K = 2162688

const MDM_PROTOCOL_HDLCPPP_64K = 1114112

const MDM_PROTOCOL_PIAFS_INCOMING = 589824

const MDM_PROTOCOL_PIAFS_OUTGOING = 1638400

const MDM_PROTOCOL_V110_12DOT0K = 5505024

const MDM_PROTOCOL_V110_14DOT4K = 6553600

const MDM_PROTOCOL_V110_19DOT2K = 7602176

const MDM_PROTOCOL_V110_1DOT2K = 1310720

const MDM_PROTOCOL_V110_28DOT8K = 8650752

const MDM_PROTOCOL_V110_2DOT4K = 2359296

const MDM_PROTOCOL_V110_38DOT4K = 9699328

const MDM_PROTOCOL_V110_4DOT8K = 3407872

const MDM_PROTOCOL_V110_57DOT6K = 10747904

const MDM_PROTOCOL_V110_9DOT6K = 4456448

const MDM_PROTOCOL_V120_112K = 136642560

const MDM_PROTOCOL_V120_128K = 135593984

const MDM_PROTOCOL_V120_56K = 69533696

const MDM_PROTOCOL_V120_64K = 68485120

const MDM_PROTOCOL_X75_128K = 2293760

const MDM_PROTOCOL_X75_64K = 1245184

const MDM_PROTOCOL_X75_BTX = 4390912

const MDM_PROTOCOL_X75_T_70 = 3342336

const MDM_SHIFT_AUTO_ML = 6

const MDM_SHIFT_AUTO_SPEED = 0

const MDM_SHIFT_BEARERMODE = 12

const MDM_SHIFT_EXTENDEDINFO = 12

const MDM_SHIFT_HDLCPPP_AUTH = 3

const MDM_SHIFT_HDLCPPP_ML = 6

const MDM_SHIFT_HDLCPPP_SPEED = 0

const MDM_SHIFT_PROTOCOLDATA = 20

const MDM_SHIFT_PROTOCOLID = 16

const MDM_SHIFT_PROTOCOLINFO = 16

const MDM_SHIFT_V110_SPEED = 0

const MDM_SHIFT_V120_ML = 6

const MDM_SHIFT_V120_SPEED = 0

const MDM_SHIFT_X75_DATA = 0

const MDM_SPEED_ADJUST = 128

const MDM_TONE_DIAL = 256

const MDM_V110_SPEED_12DOT0K = 5

const MDM_V110_SPEED_14DOT4K = 6

const MDM_V110_SPEED_19DOT2K = 7

const MDM_V110_SPEED_1DOT2K = 1

const MDM_V110_SPEED_28DOT8K = 8

const MDM_V110_SPEED_2DOT4K = 2

const MDM_V110_SPEED_38DOT4K = 9

const MDM_V110_SPEED_4DOT8K = 3

const MDM_V110_SPEED_57DOT6K = 10

const MDM_V110_SPEED_9DOT6K = 4

const MDM_V110_SPEED_DEFAULT = 0

const MDM_V120_ML_2 = 2

const MDM_V120_ML_DEFAULT = 0

const MDM_V120_ML_NONE = 1

const MDM_V120_SPEED_56K = 2

const MDM_V120_SPEED_64K = 1

const MDM_V120_SPEED_DEFAULT = 0

const MDM_V23_OVERRIDE = 1024

const MDM_X75_DATA_128K = 2

const MDM_X75_DATA_64K = 1

const MDM_X75_DATA_BTX = 4

const MDM_X75_DATA_DEFAULT = 0

const MDM_X75_DATA_T_70 = 3

type MEASUREITEMSTRUCT = TMEASUREITEMSTRUCT

const MEDIA_CURRENTLY_MOUNTED = 2147483648

const MEDIA_ERASEABLE = 1

const MEDIA_READ_ONLY = 4

const MEDIA_READ_WRITE = 8

type MEDIA_TYPE = TMEDIA_TYPE

const MEDIA_WRITE_ONCE = 2

const MEDIA_WRITE_PROTECTED = 256

const MEHC_PATROL_SCRUBBER_PRESENT = 1

type MEMBERID = TMEMBERID

const MEMBERID_NIL = -1

type MEMCTX = TMEMCTX

type MEMORYSTATUS = TMEMORYSTATUS

type MEMORYSTATUSEX = TMEMORYSTATUSEX

type MEMORY_BASIC_INFORMATION = TMEMORY_BASIC_INFORMATION

type MEMORY_BASIC_INFORMATION32 = TMEMORY_BASIC_INFORMATION32

type MEMORY_BASIC_INFORMATION64 = TMEMORY_BASIC_INFORMATION64

const MEMORY_PRIORITY_BELOW_NORMAL = 4

type MEMORY_PRIORITY_INFORMATION = TMEMORY_PRIORITY_INFORMATION

const MEMORY_PRIORITY_LOW = 2

const MEMORY_PRIORITY_MEDIUM = 3

const MEMORY_PRIORITY_NORMAL = 5

const MEMORY_PRIORITY_VERY_LOW = 1

type MEMORY_RESOURCE_NOTIFICATION_TYPE = TMEMORY_RESOURCE_NOTIFICATION_TYPE

const MEM_4MB_PAGES = 2147483648

const MEM_64K_PAGES = 541065216

type MEM_ADDRESS_REQUIREMENTS = TMEM_ADDRESS_REQUIREMENTS

const MEM_COMMIT = 4096

const MEM_DECOMMIT = 16384

const MEM_DIFFERENT_IMAGE_BASE_OK = 8388608

type MEM_EXTENDED_PARAMETER = TMEM_EXTENDED_PARAMETER

const MEM_EXTENDED_PARAMETER_GRAPHICS = 1

const MEM_EXTENDED_PARAMETER_NONPAGED = 2

const MEM_EXTENDED_PARAMETER_NONPAGED_HUGE = 16

const MEM_EXTENDED_PARAMETER_NONPAGED_LARGE = 8

type MEM_EXTENDED_PARAMETER_TYPE = TMEM_EXTENDED_PARAMETER_TYPE

const MEM_EXTENDED_PARAMETER_TYPE_BITS = 8

const MEM_EXTENDED_PARAMETER_ZERO_PAGES_OPTIONAL = 4

const MEM_FREE = 65536

const MEM_IMAGE = 16777216

const MEM_LARGE_PAGES = 536870912

const MEM_MAPPED = 262144

const MEM_PHYSICAL = 4194304

const MEM_PRIVATE = 131072

const MEM_RELEASE = 32768

const MEM_RESERVE = 8192

const MEM_RESET = 524288

const MEM_RESET_UNDO = 16777216

const MEM_ROTATE = 8388608

type MEM_SECTION_EXTENDED_PARAMETER_TYPE = TMEM_SECTION_EXTENDED_PARAMETER_TYPE

const MEM_TOP_DOWN = 1048576

const MEM_UNMAP_WITH_TRANSIENT_BOOST = 1

const MEM_WRITE_WATCH = 2097152

type MENUBARINFO = TMENUBARINFO

type MENUGETOBJECTINFO = TMENUGETOBJECTINFO

type MENUINFO = TMENUINFO

type MENUITEMINFO = TMENUITEMINFO

type MENUITEMINFOA = TMENUITEMINFOA

type MENUITEMINFOW = TMENUITEMINFOW

type MENUITEMTEMPLATE = TMENUITEMTEMPLATE

type MENUITEMTEMPLATEHEADER = TMENUITEMTEMPLATEHEADER

type MENUTEMPLATE = TMENUTEMPLATE

type MENUTEMPLATEA = TMENUTEMPLATEA

type MENUTEMPLATEW = TMENUTEMPLATEW

const MENU_EVENT = 8

type MENU_EVENT_RECORD = TMENU_EVENT_RECORD

type MERGE_VIRTUAL_DISK_FLAG = TMERGE_VIRTUAL_DISK_FLAG

type MERGE_VIRTUAL_DISK_PARAMETERS = TMERGE_VIRTUAL_DISK_PARAMETERS

type MERGE_VIRTUAL_DISK_VERSION = TMERGE_VIRTUAL_DISK_VERSION

type MESSAGE_RESOURCE_BLOCK = TMESSAGE_RESOURCE_BLOCK

type MESSAGE_RESOURCE_DATA = TMESSAGE_RESOURCE_DATA

type MESSAGE_RESOURCE_ENTRY = TMESSAGE_RESOURCE_ENTRY

const MESSAGE_RESOURCE_UNICODE = 1

type METAFILEPICT = TMETAFILEPICT

const METAFILE_DRIVER = 2049

type METAHEADER = TMETAHEADER

type METARECORD = TMETARECORD

const META_ANIMATEPALETTE = 1078

const META_ARC = 2071

const META_BITBLT = 2338

const META_CHORD = 2096

const META_CREATEBRUSHINDIRECT = 764

const META_CREATEFONTINDIRECT = 763

const META_CREATEPALETTE = 247

const META_CREATEPATTERNBRUSH = 505

const META_CREATEPENINDIRECT = 762

const META_CREATEREGION = 1791

const META_DELETEOBJECT = 496

const META_DIBBITBLT = 2368

const META_DIBCREATEPATTERNBRUSH = 322

const META_DIBSTRETCHBLT = 2881

const META_ELLIPSE = 1048

const META_ESCAPE = 1574

const META_EXCLUDECLIPRECT = 1045

const META_EXTFLOODFILL = 1352

const META_EXTTEXTOUT = 2610

const META_FILLREGION = 552

const META_FLOODFILL = 1049

const META_FRAMEREGION = 1065

const META_INTERSECTCLIPRECT = 1046

const META_INVERTREGION = 298

const META_LINETO = 531

const META_MOVETO = 532

const META_OFFSETCLIPRGN = 544

const META_OFFSETVIEWPORTORG = 529

const META_OFFSETWINDOWORG = 527

const META_PAINTREGION = 299

const META_PATBLT = 1565

const META_PIE = 2074

const META_POLYGON = 804

const META_POLYLINE = 805

const META_POLYPOLYGON = 1336

const META_REALIZEPALETTE = 53

const META_RECTANGLE = 1051

const META_RESIZEPALETTE = 313

const META_RESTOREDC = 295

const META_ROUNDRECT = 1564

const META_SAVEDC = 30

const META_SCALEVIEWPORTEXT = 1042

const META_SCALEWINDOWEXT = 1040

const META_SELECTCLIPREGION = 300

const META_SELECTOBJECT = 301

const META_SELECTPALETTE = 564

const META_SETBKCOLOR = 513

const META_SETBKMODE = 258

const META_SETDIBTODEV = 3379

const META_SETLAYOUT = 329

const META_SETMAPMODE = 259

const META_SETMAPPERFLAGS = 561

const META_SETPALENTRIES = 55

const META_SETPIXEL = 1055

const META_SETPOLYFILLMODE = 262

const META_SETRELABS = 261

const META_SETROP2 = 260

const META_SETSTRETCHBLTMODE = 263

const META_SETTEXTALIGN = 302

const META_SETTEXTCHAREXTRA = 264

const META_SETTEXTCOLOR = 521

const META_SETTEXTJUSTIFICATION = 522

const META_SETVIEWPORTEXT = 526

const META_SETVIEWPORTORG = 525

const META_SETWINDOWEXT = 524

const META_SETWINDOWORG = 523

const META_STRETCHBLT = 2851

const META_STRETCHDIB = 3907

const META_TEXTOUT = 1313

type METHODDATA = TMETHODDATA

const METHOD_BUFFERED = 0

const METHOD_DIRECT_FROM_HARDWARE = 2

const METHOD_DIRECT_TO_HARDWARE = 1

const METHOD_IN_DIRECT = 1

const METHOD_NEITHER = 3

const METHOD_OUT_DIRECT = 2

const METRICS_USEDEFAULT = -1

const MEVT_F_CALLBACK = 1073741824

const MEVT_F_LONG = 2147483648

const MEVT_F_SHORT = 0

const MFCOMMENT = 15

type MFENUMPROC = TMFENUMPROC

const MFS_CHECKED = 8

const MFS_DEFAULT = 4096

const MFS_DISABLED = 3

const MFS_ENABLED = 0

const MFS_GRAYED = 3

const MFS_HILITE = 128

const MFS_UNCHECKED = 0

const MFS_UNHILITE = 0

const MFT_BITMAP = 4

type MFT_ENUM_DATA = TMFT_ENUM_DATA

const MFT_MENUBARBREAK = 32

const MFT_MENUBREAK = 64

const MFT_OWNERDRAW = 256

const MFT_RADIOCHECK = 512

const MFT_RIGHTJUSTIFY = 16384

const MFT_RIGHTORDER = 8192

const MFT_SEPARATOR = 2048

const MFT_STRING = 0

const MF_APPEND = 256

const MF_BITMAP = 4

const MF_BYCOMMAND = 0

const MF_BYPOSITION = 1024

const MF_CALLBACKS = 134217728

const MF_CHANGE = 128

const MF_CHECKED = 8

const MF_CONV = 1073741824

const MF_DEFAULT = 4096

const MF_DELETE = 512

const MF_DISABLED = 2

const MF_ENABLED = 0

const MF_END = 128

const MF_ERRORS = 268435456

const MF_GRAYED = 1

const MF_HELP = 16384

const MF_HILITE = 128

const MF_HSZ_INFO = 16777216

const MF_INSERT = 0

const MF_LINKS = 536870912

const MF_MASK = 4278190080

const MF_MENUBARBREAK = 32

const MF_MENUBREAK = 64

const MF_MOUSESELECT = 32768

const MF_OWNERDRAW = 256

const MF_POPUP = 16

const MF_POSTMSGS = 67108864

const MF_REMOVE = 4096

const MF_RIGHTJUSTIFY = 16384

const MF_SENDMSGS = 33554432

const MF_SEPARATOR = 2048

const MF_STRING = 0

const MF_SYSMENU = 8192

const MF_UNCHECKED = 0

const MF_UNHILITE = 0

const MF_USECHECKBITMAPS = 512

const MHDR_DONE = 1

const MHDR_INQUEUE = 4

const MHDR_ISSTRM = 8

const MHDR_PREPARED = 2

const MH_CLEANUP = 4

const MH_CREATE = 1

const MH_DELETE = 3

const MH_KEEP = 2

const MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG = 131072

const MICROSOFT_ROOT_CERT_CHAIN_POLICY_DISABLE_FLIGHT_ROOT_FLAG = 262144

const MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG = 65536

const MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS = 1

const MIDICAPS_CACHE = 4

const MIDICAPS_LRVOLUME = 2

const MIDICAPS_STREAM = 8

const MIDICAPS_VOLUME = 1

const MIDIERR_BADOPENMODE = 70

const MIDIERR_BASE = 64

const MIDIERR_DONT_CONTINUE = 71

const MIDIERR_INVALIDSETUP = 69

const MIDIERR_LASTERROR = 71

const MIDIERR_NODEVICE = 68

const MIDIERR_NOMAP = 66

const MIDIERR_NOTREADY = 67

const MIDIERR_STILLPLAYING = 65

const MIDIERR_UNPREPARED = 64

type MIDIEVENT = TMIDIEVENT

type MIDIHDR = TMIDIHDR

type MIDIINCAPS = TMIDIINCAPS

type MIDIINCAPS2 = TMIDIINCAPS2

type MIDIINCAPS2A = TMIDIINCAPS2A

type MIDIINCAPS2W = TMIDIINCAPS2W

type MIDIINCAPSA = TMIDIINCAPSA

type MIDIINCAPSW = TMIDIINCAPSW

const MIDIMAPPER = -1

type MIDIOUTCAPS = TMIDIOUTCAPS

type MIDIOUTCAPS2 = TMIDIOUTCAPS2

type MIDIOUTCAPS2A = TMIDIOUTCAPS2A

type MIDIOUTCAPS2W = TMIDIOUTCAPS2W

type MIDIOUTCAPSA = TMIDIOUTCAPSA

type MIDIOUTCAPSW = TMIDIOUTCAPSW

const MIDIPATCHSIZE = 128

type MIDIPROPTEMPO = TMIDIPROPTEMPO

type MIDIPROPTIMEDIV = TMIDIPROPTIMEDIV

const MIDIPROP_GET = 1073741824

const MIDIPROP_SET = 2147483648

const MIDIPROP_TEMPO = 2

const MIDIPROP_TIMEDIV = 1

type MIDISTRMBUFFVER = TMIDISTRMBUFFVER

const MIDISTRM_ERROR = -2

const MIDI_CACHE_ALL = 1

const MIDI_CACHE_BESTFIT = 2

const MIDI_CACHE_QUERY = 3

const MIDI_IO_STATUS = 32

const MIDI_MAPPER = -1

const MIDI_UNCACHE = 4

type MIDL_FORMAT_STRING = TMIDL_FORMAT_STRING

type MIDL_SERVER_INFO = TMIDL_SERVER_INFO

type MIDL_STUBLESS_PROXY_INFO = TMIDL_STUBLESS_PROXY_INFO

type MIDL_STUB_DESC = TMIDL_STUB_DESC

type MIDL_STUB_MESSAGE = TMIDL_STUB_MESSAGE

type MIDL_SYNTAX_INFO = TMIDL_SYNTAX_INFO

const MIIM_BITMAP = 128

const MIIM_CHECKMARKS = 8

const MIIM_DATA = 32

const MIIM_FTYPE = 256

const MIIM_ID = 2

const MIIM_STATE = 1

const MIIM_STRING = 64

const MIIM_SUBMENU = 4

const MIIM_TYPE = 16

const MILCORE_TS_QUERYVER_RESULT_FALSE = 0

const MILCORE_TS_QUERYVER_RESULT_TRUE = 2147483647

const MIM_APPLYTOSUBMENUS = 2147483648

const MIM_BACKGROUND = 2

const MIM_CLOSE = 962

const MIM_DATA = 963

const MIM_ERROR = 965

const MIM_HELPID = 4

const MIM_LONGDATA = 964

const MIM_LONGERROR = 966

const MIM_MAXHEIGHT = 1

const MIM_MENUDATA = 8

const MIM_MOREDATA = 972

const MIM_OPEN = 961

const MIM_STYLE = 16

const MINCHAR = 128

const MINGW_HAS_DDK_H = 1

const MINGW_HAS_SECURE_API = 1

type MINIMIZEDMETRICS = TMINIMIZEDMETRICS

const MINLONG = 2147483648

type MINMAXINFO = TMINMAXINFO

const MINSHORT = 32768

const MIN_ACL_REVISION = 2

const MIN_LOGICALDPIOVERRIDE = -2

const MIN_PRIORITY = 1

const MIN_UCSCHAR = 0

type MIRROR_VIRTUAL_DISK_FLAG = TMIRROR_VIRTUAL_DISK_FLAG

type MIRROR_VIRTUAL_DISK_PARAMETERS = TMIRROR_VIRTUAL_DISK_PARAMETERS

type MIRROR_VIRTUAL_DISK_VERSION = TMIRROR_VIRTUAL_DISK_VERSION

type MIXERCAPS = TMIXERCAPS

type MIXERCAPS2 = TMIXERCAPS2

type MIXERCAPS2A = TMIXERCAPS2A

type MIXERCAPS2W = TMIXERCAPS2W

type MIXERCAPSA = TMIXERCAPSA

type MIXERCAPSW = TMIXERCAPSW

type MIXERCONTROL = TMIXERCONTROL

type MIXERCONTROLA = TMIXERCONTROLA

type MIXERCONTROLDETAILS = TMIXERCONTROLDETAILS

type MIXERCONTROLDETAILS_BOOLEAN = TMIXERCONTROLDETAILS_BOOLEAN

type MIXERCONTROLDETAILS_LISTTEXT = TMIXERCONTROLDETAILS_LISTTEXT

type MIXERCONTROLDETAILS_LISTTEXTA = TMIXERCONTROLDETAILS_LISTTEXTA

type MIXERCONTROLDETAILS_LISTTEXTW = TMIXERCONTROLDETAILS_LISTTEXTW

type MIXERCONTROLDETAILS_SIGNED = TMIXERCONTROLDETAILS_SIGNED

type MIXERCONTROLDETAILS_UNSIGNED = TMIXERCONTROLDETAILS_UNSIGNED

type MIXERCONTROLW = TMIXERCONTROLW

const MIXERCONTROL_CONTROLF_DISABLED = 2147483648

const MIXERCONTROL_CONTROLF_MULTIPLE = 2

const MIXERCONTROL_CONTROLF_UNIFORM = 1

const MIXERCONTROL_CONTROLTYPE_BASS = 1342373890

const MIXERCONTROL_CONTROLTYPE_BASS_BOOST = 536945271

const MIXERCONTROL_CONTROLTYPE_BOOLEAN = 536936448

const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = 268500992

const MIXERCONTROL_CONTROLTYPE_BUTTON = 553713664

const MIXERCONTROL_CONTROLTYPE_CUSTOM = 0

const MIXERCONTROL_CONTROLTYPE_DECIBELS = 805568512

const MIXERCONTROL_CONTROLTYPE_EQUALIZER = 1342373892

const MIXERCONTROL_CONTROLTYPE_FADER = 1342373888

const MIXERCONTROL_CONTROLTYPE_LOUDNESS = 536936452

const MIXERCONTROL_CONTROLTYPE_MICROTIME = 1610809344

const MIXERCONTROL_CONTROLTYPE_MILLITIME = 1627586560

const MIXERCONTROL_CONTROLTYPE_MIXER = 1895890945

const MIXERCONTROL_CONTROLTYPE_MONO = 536936451

const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = 1895890944

const MIXERCONTROL_CONTROLTYPE_MUTE = 536936450

const MIXERCONTROL_CONTROLTYPE_MUX = 1879113729

const MIXERCONTROL_CONTROLTYPE_ONOFF = 536936449

const MIXERCONTROL_CONTROLTYPE_PAN = 1073872897

const MIXERCONTROL_CONTROLTYPE_PEAKMETER = 268566529

const MIXERCONTROL_CONTROLTYPE_PERCENT = 805634048

const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = 1073872898

const MIXERCONTROL_CONTROLTYPE_SIGNED = 805437440

const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = 268566528

const MIXERCONTROL_CONTROLTYPE_SINGLESELECT = 1879113728

const MIXERCONTROL_CONTROLTYPE_SLIDER = 1073872896

const MIXERCONTROL_CONTROLTYPE_STEREOENH = 536936453

const MIXERCONTROL_CONTROLTYPE_TREBLE = 1342373891

const MIXERCONTROL_CONTROLTYPE_UNSIGNED = 805502976

const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = 268632064

const MIXERCONTROL_CONTROLTYPE_VOLUME = 1342373889

const MIXERCONTROL_CT_CLASS_CUSTOM = 0

const MIXERCONTROL_CT_CLASS_FADER = 1342177280

const MIXERCONTROL_CT_CLASS_LIST = 1879048192

const MIXERCONTROL_CT_CLASS_MASK = 4026531840

const MIXERCONTROL_CT_CLASS_METER = 268435456

const MIXERCONTROL_CT_CLASS_NUMBER = 805306368

const MIXERCONTROL_CT_CLASS_SLIDER = 1073741824

const MIXERCONTROL_CT_CLASS_SWITCH = 536870912

const MIXERCONTROL_CT_CLASS_TIME = 1610612736

const MIXERCONTROL_CT_SC_LIST_MULTIPLE = 16777216

const MIXERCONTROL_CT_SC_LIST_SINGLE = 0

const MIXERCONTROL_CT_SC_METER_POLLED = 0

const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = 0

const MIXERCONTROL_CT_SC_SWITCH_BUTTON = 16777216

const MIXERCONTROL_CT_SC_TIME_MICROSECS = 0

const MIXERCONTROL_CT_SC_TIME_MILLISECS = 16777216

const MIXERCONTROL_CT_SUBCLASS_MASK = 251658240

const MIXERCONTROL_CT_UNITS_BOOLEAN = 65536

const MIXERCONTROL_CT_UNITS_CUSTOM = 0

const MIXERCONTROL_CT_UNITS_DECIBELS = 262144

const MIXERCONTROL_CT_UNITS_MASK = 16711680

const MIXERCONTROL_CT_UNITS_PERCENT = 327680

const MIXERCONTROL_CT_UNITS_SIGNED = 131072

const MIXERCONTROL_CT_UNITS_UNSIGNED = 196608

type MIXERLINE = TMIXERLINE

type MIXERLINEA = TMIXERLINEA

type MIXERLINECONTROLS = TMIXERLINECONTROLS

type MIXERLINECONTROLSA = TMIXERLINECONTROLSA

type MIXERLINECONTROLSW = TMIXERLINECONTROLSW

type MIXERLINEW = TMIXERLINEW

const MIXERLINE_COMPONENTTYPE_DST_DIGITAL = 1

const MIXERLINE_COMPONENTTYPE_DST_FIRST = 0

const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = 5

const MIXERLINE_COMPONENTTYPE_DST_LAST = 8

const MIXERLINE_COMPONENTTYPE_DST_LINE = 2

const MIXERLINE_COMPONENTTYPE_DST_MONITOR = 3

const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = 4

const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = 6

const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = 0

const MIXERLINE_COMPONENTTYPE_DST_VOICEIN = 8

const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = 7

const MIXERLINE_COMPONENTTYPE_SRC_ANALOG = 4106

const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = 4105

const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = 4101

const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = 4097

const MIXERLINE_COMPONENTTYPE_SRC_FIRST = 4096

const MIXERLINE_COMPONENTTYPE_SRC_LAST = 4106

const MIXERLINE_COMPONENTTYPE_SRC_LINE = 4098

const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = 4099

const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = 4103

const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = 4100

const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = 4102

const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = 4096

const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = 4104

const MIXERLINE_LINEF_ACTIVE = 1

const MIXERLINE_LINEF_DISCONNECTED = 32768

const MIXERLINE_LINEF_SOURCE = 2147483648

const MIXERLINE_TARGETTYPE_AUX = 5

const MIXERLINE_TARGETTYPE_MIDIIN = 4

const MIXERLINE_TARGETTYPE_MIDIOUT = 3

const MIXERLINE_TARGETTYPE_UNDEFINED = 0

const MIXERLINE_TARGETTYPE_WAVEIN = 2

const MIXERLINE_TARGETTYPE_WAVEOUT = 1

const MIXERR_BASE = 1024

const MIXERR_INVALCONTROL = 1025

const MIXERR_INVALLINE = 1024

const MIXERR_INVALVALUE = 1026

const MIXERR_LASTERROR = 1026

const MIXER_GETCONTROLDETAILSF_LISTTEXT = 1

const MIXER_GETCONTROLDETAILSF_QUERYMASK = 15

const MIXER_GETCONTROLDETAILSF_VALUE = 0

const MIXER_GETLINECONTROLSF_ALL = 0

const MIXER_GETLINECONTROLSF_ONEBYID = 1

const MIXER_GETLINECONTROLSF_ONEBYTYPE = 2

const MIXER_GETLINECONTROLSF_QUERYMASK = 15

const MIXER_GETLINEINFOF_COMPONENTTYPE = 3

const MIXER_GETLINEINFOF_DESTINATION = 0

const MIXER_GETLINEINFOF_LINEID = 2

const MIXER_GETLINEINFOF_QUERYMASK = 15

const MIXER_GETLINEINFOF_SOURCE = 1

const MIXER_GETLINEINFOF_TARGETTYPE = 4

const MIXER_LONG_NAME_CHARS = 64

const MIXER_OBJECTF_AUX = 1342177280

const MIXER_OBJECTF_HANDLE = 2147483648

const MIXER_OBJECTF_HMIDIIN = 3221225472

const MIXER_OBJECTF_HMIDIOUT = 2952790016

const MIXER_OBJECTF_HMIXER = 2147483648

const MIXER_OBJECTF_HWAVEIN = 2684354560

const MIXER_OBJECTF_HWAVEOUT = 2415919104

const MIXER_OBJECTF_MIDIIN = 1073741824

const MIXER_OBJECTF_MIDIOUT = 805306368

const MIXER_OBJECTF_MIXER = 0

const MIXER_OBJECTF_WAVEIN = 536870912

const MIXER_OBJECTF_WAVEOUT = 268435456

const MIXER_SETCONTROLDETAILSF_CUSTOM = 1

const MIXER_SETCONTROLDETAILSF_QUERYMASK = 15

const MIXER_SETCONTROLDETAILSF_VALUE = 0

const MIXER_SHORT_NAME_CHARS = 16

const MKF_AVAILABLE = 2

const MKF_CONFIRMHOTKEY = 8

const MKF_HOTKEYACTIVE = 4

const MKF_HOTKEYSOUND = 16

const MKF_INDICATOR = 32

const MKF_LEFTBUTTONDOWN = 16777216

const MKF_LEFTBUTTONSEL = 268435456

const MKF_MODIFIERS = 64

const MKF_MOUSEKEYSON = 1

const MKF_MOUSEMODE = 2147483648

const MKF_REPLACENUMBERS = 128

const MKF_RIGHTBUTTONDOWN = 33554432

const MKF_RIGHTBUTTONSEL = 536870912

type MKRREDUCE = TMKRREDUCE

type MKSYS = TMKSYS

const MKSYS_URLMONIKER = 6

const MK_ALT = 32

const MK_CONTROL = 8

const MK_E_FIRST = 2147746272

const MK_E_LAST = 2147746287

const MK_LBUTTON = 1

const MK_MBUTTON = 16

const MK_RBUTTON = 2

const MK_SHIFT = 4

const MK_S_FIRST = 262624

const MK_S_LAST = 262639

const MK_XBUTTON1 = 32

const MK_XBUTTON2 = 64

type MMCKINFO = TMMCKINFO

const MMIOERR_ACCESSDENIED = 268

const MMIOERR_BASE = 256

const MMIOERR_CANNOTCLOSE = 260

const MMIOERR_CANNOTEXPAND = 264

const MMIOERR_CANNOTOPEN = 259

const MMIOERR_CANNOTREAD = 261

const MMIOERR_CANNOTSEEK = 263

const MMIOERR_CANNOTWRITE = 262

const MMIOERR_CHUNKNOTFOUND = 265

const MMIOERR_FILENOTFOUND = 257

const MMIOERR_INVALIDFILE = 272

const MMIOERR_NETWORKERROR = 270

const MMIOERR_OUTOFMEMORY = 258

const MMIOERR_PATHNOTFOUND = 267

const MMIOERR_SHARINGVIOLATION = 269

const MMIOERR_TOOMANYOPENFILES = 271

const MMIOERR_UNBUFFERED = 266

type MMIOINFO = TMMIOINFO

const MMIOM_CLOSE = 4

const MMIOM_OPEN = 3

const MMIOM_READ = 0

const MMIOM_RENAME = 6

const MMIOM_SEEK = 2

const MMIOM_USER = 32768

const MMIOM_WRITE = 1

const MMIOM_WRITEFLUSH = 5

const MMIO_ALLOCBUF = 65536

const MMIO_COMPAT = 0

const MMIO_CREATE = 4096

const MMIO_CREATELIST = 64

const MMIO_CREATERIFF = 32

const MMIO_DEFAULTBUFFER = 8192

const MMIO_DELETE = 512

const MMIO_DENYNONE = 64

const MMIO_DENYREAD = 48

const MMIO_DENYWRITE = 32

const MMIO_DIRTY = 268435456

const MMIO_EMPTYBUF = 16

const MMIO_EXCLUSIVE = 16

const MMIO_EXIST = 16384

const MMIO_FHOPEN = 16

const MMIO_FINDCHUNK = 16

const MMIO_FINDLIST = 64

const MMIO_FINDPROC = 262144

const MMIO_FINDRIFF = 32

const MMIO_GETTEMP = 131072

const MMIO_GLOBALPROC = 268435456

const MMIO_INSTALLPROC = 65536

const MMIO_PARSE = 256

const MMIO_READ = 0

const MMIO_READWRITE = 2

const MMIO_REMOVEPROC = 131072

const MMIO_RWMODE = 3

const MMIO_SHAREMODE = 112

const MMIO_TOUPPER = 16

const MMIO_UNICODEPROC = 16777216

const MMIO_WRITE = 1

type MMRESULT = TMMRESULT

const MMSYSERR_ALLOCATED = 4

const MMSYSERR_BADDB = 14

const MMSYSERR_BADDEVICEID = 2

const MMSYSERR_BADERRNUM = 9

const MMSYSERR_BASE = 0

const MMSYSERR_DELETEERROR = 18

const MMSYSERR_ERROR = 1

const MMSYSERR_HANDLEBUSY = 12

const MMSYSERR_INVALFLAG = 10

const MMSYSERR_INVALHANDLE = 5

const MMSYSERR_INVALIDALIAS = 13

const MMSYSERR_INVALPARAM = 11

const MMSYSERR_KEYNOTFOUND = 15

const MMSYSERR_LASTERROR = 21

const MMSYSERR_MOREDATA = 21

const MMSYSERR_NODRIVER = 6

const MMSYSERR_NODRIVERCB = 20

const MMSYSERR_NOERROR = 0

const MMSYSERR_NOMEM = 7

const MMSYSERR_NOTENABLED = 3

const MMSYSERR_NOTSUPPORTED = 8

const MMSYSERR_READERROR = 16

const MMSYSERR_VALNOTFOUND = 19

const MMSYSERR_WRITEERROR = 17

type MMTIME = TMMTIME

type MMVERSION = TMMVERSION

const MM_ANISOTROPIC = 8

const MM_DRVM_CLOSE = 977

const MM_DRVM_DATA = 978

const MM_DRVM_ERROR = 979

const MM_DRVM_OPEN = 976

const MM_HIENGLISH = 5

const MM_HIMETRIC = 3

const MM_ISOTROPIC = 7

const MM_JOY1BUTTONDOWN = 949

const MM_JOY1BUTTONUP = 951

const MM_JOY1MOVE = 928

const MM_JOY1ZMOVE = 930

const MM_JOY2BUTTONDOWN = 950

const MM_JOY2BUTTONUP = 952

const MM_JOY2MOVE = 929

const MM_JOY2ZMOVE = 931

const MM_LOENGLISH = 4

const MM_LOMETRIC = 2

const MM_MAX = 8

const MM_MAX_AXES_NAMELEN = 16

const MM_MAX_FIXEDSCALE = 6

const MM_MAX_NUMAXES = 16

const MM_MCINOTIFY = 953

const MM_MCISIGNAL = 971

const MM_MIM_CLOSE = 962

const MM_MIM_DATA = 963

const MM_MIM_ERROR = 965

const MM_MIM_LONGDATA = 964

const MM_MIM_LONGERROR = 966

const MM_MIM_MOREDATA = 972

const MM_MIM_OPEN = 961

const MM_MIN = 1

const MM_MIXM_CONTROL_CHANGE = 977

const MM_MIXM_LINE_CHANGE = 976

const MM_MOM_CLOSE = 968

const MM_MOM_DONE = 969

const MM_MOM_OPEN = 967

const MM_MOM_POSITIONCB = 970

const MM_STREAM_CLOSE = 981

const MM_STREAM_DONE = 982

const MM_STREAM_ERROR = 983

const MM_STREAM_OPEN = 980

const MM_TEXT = 1

const MM_TWIPS = 6

const MM_WIM_CLOSE = 959

const MM_WIM_DATA = 960

const MM_WIM_OPEN = 958

const MM_WOM_CLOSE = 956

const MM_WOM_DONE = 957

const MM_WOM_OPEN = 955

const MNC_CLOSE = 1

const MNC_EXECUTE = 2

const MNC_IGNORE = 0

const MNC_SELECT = 3

const MND_CONTINUE = 0

const MND_ENDMENU = 1

const MNGOF_BOTTOMGAP = 2

const MNGOF_TOPGAP = 1

const MNGO_NOERROR = 1

const MNGO_NOINTERFACE = 0

const MNS_AUTODISMISS = 268435456

const MNS_CHECKORBMP = 67108864

const MNS_DRAGDROP = 536870912

const MNS_MODELESS = 1073741824

const MNS_NOCHECK = 2147483648

const MNS_NOTIFYBYPOS = 134217728

const MN_GETHMENU = 481

type MODEMDEVCAPS = TMODEMDEVCAPS

type MODEMSETTINGS = TMODEMSETTINGS

type MODIFY_VHDSET_FLAG = TMODIFY_VHDSET_FLAG

type MODIFY_VHDSET_PARAMETERS = TMODIFY_VHDSET_PARAMETERS

type MODIFY_VHDSET_VERSION = TMODIFY_VHDSET_VERSION

const MOD_ALT = 1

const MOD_CONTROL = 2

const MOD_FMSYNTH = 4

const MOD_IGNORE_ALL_MODIFIER = 1024

const MOD_LEFT = 32768

const MOD_MAPPER = 5

const MOD_MIDIPORT = 1

const MOD_NOREPEAT = 16384

const MOD_ON_KEYUP = 2048

const MOD_RIGHT = 16384

const MOD_SHIFT = 4

const MOD_SQSYNTH = 3

const MOD_SWSYNTH = 7

const MOD_SYNTH = 2

const MOD_WAVETABLE = 6

const MOD_WIN = 8

const MOM_CLOSE = 968

const MOM_DONE = 969

const MOM_OPEN = 967

const MOM_POSITIONCB = 970

type MONCBSTRUCT = TMONCBSTRUCT

type MONCONVSTRUCT = TMONCONVSTRUCT

type MONERRSTRUCT = TMONERRSTRUCT

type MONHSZSTRUCT = TMONHSZSTRUCT

type MONHSZSTRUCTA = TMONHSZSTRUCTA

type MONHSZSTRUCTW = TMONHSZSTRUCTW

type MONIKERPROPERTY = TMONIKERPROPERTY

type MONITORENUMPROC = TMONITORENUMPROC

type MONITORINFO = TMONITORINFO

type MONITORINFOEX = TMONITORINFOEX

type MONITORINFOEXA = TMONITORINFOEXA

type MONITORINFOEXW = TMONITORINFOEXW

const MONITORINFOF_PRIMARY = 1

const MONITOR_DEFAULTTONEAREST = 2

const MONITOR_DEFAULTTONULL = 0

const MONITOR_DEFAULTTOPRIMARY = 1

type MONITOR_DISPLAY_STATE = TMONITOR_DISPLAY_STATE

type MONITOR_INFO_1 = TMONITOR_INFO_1

type MONITOR_INFO_1A = TMONITOR_INFO_1A

type MONITOR_INFO_1W = TMONITOR_INFO_1W

type MONITOR_INFO_2 = TMONITOR_INFO_2

type MONITOR_INFO_2A = TMONITOR_INFO_2A

type MONITOR_INFO_2W = TMONITOR_INFO_2W

type MONLINKSTRUCT = TMONLINKSTRUCT

type MONMSGSTRUCT = TMONMSGSTRUCT

const MONO_FONT = 8

const MOUSEEVENTF_ABSOLUTE = 32768

const MOUSEEVENTF_HWHEEL = 4096

const MOUSEEVENTF_LEFTDOWN = 2

const MOUSEEVENTF_LEFTUP = 4

const MOUSEEVENTF_MIDDLEDOWN = 32

const MOUSEEVENTF_MIDDLEUP = 64

const MOUSEEVENTF_MOVE = 1

const MOUSEEVENTF_MOVE_NOCOALESCE = 8192

const MOUSEEVENTF_RIGHTDOWN = 8

const MOUSEEVENTF_RIGHTUP = 16

const MOUSEEVENTF_VIRTUALDESK = 16384

const MOUSEEVENTF_WHEEL = 2048

const MOUSEEVENTF_XDOWN = 128

const MOUSEEVENTF_XUP = 256

type MOUSEHOOKSTRUCT = TMOUSEHOOKSTRUCT

type MOUSEHOOKSTRUCTEX = TMOUSEHOOKSTRUCTEX

type MOUSEINPUT = TMOUSEINPUT

type MOUSEKEYS = TMOUSEKEYS

type MOUSEMOVEPOINT = TMOUSEMOVEPOINT

const MOUSETRAILS = 39

const MOUSEWHEEL_ROUTING_FOCUS = 0

const MOUSEWHEEL_ROUTING_HYBRID = 1

const MOUSEWHEEL_ROUTING_MOUSE_POS = 2

const MOUSE_ATTRIBUTES_CHANGED = 4

const MOUSE_EVENT = 2

type MOUSE_EVENT_RECORD = TMOUSE_EVENT_RECORD

const MOUSE_HWHEELED = 8

const MOUSE_MOVED = 1

const MOUSE_MOVE_ABSOLUTE = 1

const MOUSE_MOVE_NOCOALESCE = 8

const MOUSE_MOVE_RELATIVE = 0

const MOUSE_VIRTUAL_DESKTOP = 2

const MOUSE_WHEELED = 4

const MOVEFILE_COPY_ALLOWED = 2

const MOVEFILE_CREATE_HARDLINK = 16

const MOVEFILE_DELAY_UNTIL_REBOOT = 4

const MOVEFILE_FAIL_IF_NOT_TRACKABLE = 32

const MOVEFILE_REPLACE_EXISTING = 1

const MOVEFILE_WRITE_THROUGH = 8

type MOVE_FILE_DATA = TMOVE_FILE_DATA

type MOVE_FILE_RECORD_DATA = TMOVE_FILE_RECORD_DATA

type MSG = TMSG

type MSGBOXCALLBACK = TMSGBOXCALLBACK

type MSGBOXPARAMS = TMSGBOXPARAMS

type MSGBOXPARAMSA = TMSGBOXPARAMSA

type MSGBOXPARAMSW = TMSGBOXPARAMSW

const MSGFLTINFO_ALLOWED_HIGHER = 3

const MSGFLTINFO_ALREADYALLOWED_FORWND = 1

const MSGFLTINFO_ALREADYDISALLOWED_FORWND = 2

const MSGFLTINFO_NONE = 0

const MSGFLT_ADD = 1

const MSGFLT_ALLOW = 1

const MSGFLT_DISALLOW = 2

const MSGFLT_REMOVE = 2

const MSGFLT_RESET = 0

const MSGF_DDEMGR = 32769

const MSGF_DIALOGBOX = 0

const MSGF_MAX = 8

const MSGF_MENU = 2

const MSGF_MESSAGEBOX = 1

const MSGF_NEXTWINDOW = 6

const MSGF_SCROLLBAR = 5

const MSGF_USER = 4096

const MSG_MAXIOVLEN = 16

const MSG_PARTIAL = 32768

type MSHCTX = TMSHCTX

type MSHLFLAGS = TMSHLFLAGS

type MSLLHOOKSTRUCT = TMSLLHOOKSTRUCT

const MS_DEF_DH_SCHANNEL_PROV_A = "Microsoft DH SChannel Cryptographic Provider"

const MS_DEF_DH_SCHANNEL_PROV_W = "Microsoft DH SChannel Cryptographic Provider"

const MS_DEF_DSS_DH_PROV_A = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"

const MS_DEF_DSS_DH_PROV_W = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"

const MS_DEF_DSS_PROV_A = "Microsoft Base DSS Cryptographic Provider"

const MS_DEF_DSS_PROV_W = "Microsoft Base DSS Cryptographic Provider"

const MS_DEF_PROV_A = "Microsoft Base Cryptographic Provider v1.0"

const MS_DEF_PROV_W = "Microsoft Base Cryptographic Provider v1.0"

const MS_DEF_RSA_SCHANNEL_PROV_A = "Microsoft RSA SChannel Cryptographic Provider"

const MS_DEF_RSA_SCHANNEL_PROV_W = "Microsoft RSA SChannel Cryptographic Provider"

const MS_DEF_RSA_SIG_PROV_A = "Microsoft RSA Signature Cryptographic Provider"

const MS_DEF_RSA_SIG_PROV_W = "Microsoft RSA Signature Cryptographic Provider"

const MS_ENHANCED_PROV_A = "Microsoft Enhanced Cryptographic Provider v1.0"

const MS_ENHANCED_PROV_W = "Microsoft Enhanced Cryptographic Provider v1.0"

const MS_ENH_DSS_DH_PROV_A = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"

const MS_ENH_DSS_DH_PROV_W = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"

const MS_ENH_RSA_AES_PROV_A = "Microsoft Enhanced RSA and AES Cryptographic Provider"

const MS_ENH_RSA_AES_PROV_W = "Microsoft Enhanced RSA and AES Cryptographic Provider"

const MS_ENH_RSA_AES_PROV_XP_A = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"

const MS_ENH_RSA_AES_PROV_XP_W = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"

const MS_KEY_STORAGE_PROVIDER = "Microsoft Software Key Storage Provider"

const MS_NBF = "MNBF"

const MS_PLATFORM_CRYPTO_PROVIDER = "Microsoft Platform Crypto Provider"

const MS_PLATFORM_KEY_STORAGE_PROVIDER = "Microsoft Platform Crypto Provider"

const MS_PPM_SOFTWARE_ALL = 1

const MS_PRIMITIVE_PROVIDER = "Microsoft Primitive Provider"

const MS_SCARD_PROV_A = "Microsoft Base Smart Card Crypto Provider"

const MS_SCARD_PROV_W = "Microsoft Base Smart Card Crypto Provider"

const MS_SMART_CARD_KEY_STORAGE_PROVIDER = "Microsoft Smart Card Key Storage Provider"

const MS_STRONG_PROV_A = "Microsoft Strong Cryptographic Provider"

const MS_STRONG_PROV_W = "Microsoft Strong Cryptographic Provider"

const MUI_CALLBACK_ALL_FLAGS = 0

const MUI_COMPLEX_SCRIPT_FILTER = 512

const MUI_CONSOLE_FILTER = 256

const MUI_FILEINFO_VERSION = 1

const MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 2

const MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 4

const MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 1

const MUI_FORMAT_INF_COMPAT = 2

const MUI_FORMAT_REG_COMPAT = 1

const MUI_FULL_LANGUAGE = 1

const MUI_IMMUTABLE_LOOKUP = 16

const MUI_LANGUAGE_ID = 4

const MUI_LANGUAGE_INSTALLED = 32

const MUI_LANGUAGE_LICENSED = 64

const MUI_LANGUAGE_NAME = 8

const MUI_LANG_NEUTRAL_PE_FILE = 256

const MUI_LIP_LANGUAGE = 4

const MUI_MACHINE_LANGUAGE_SETTINGS = 1024

const MUI_MERGE_SYSTEM_FALLBACK = 16

const MUI_MERGE_USER_FALLBACK = 32

const MUI_NON_LANG_NEUTRAL_FILE = 512

const MUI_PARTIAL_LANGUAGE = 2

const MUI_QUERY_CHECKSUM = 2

const MUI_QUERY_LANGUAGE_NAME = 4

const MUI_QUERY_RESOURCE_TYPES = 8

const MUI_QUERY_TYPE = 1

const MUI_RESET_FILTERS = 1

const MUI_SKIP_STRING_CACHE = 8

const MUI_THREAD_LANGUAGES = 64

const MUI_UI_FALLBACK = 48

const MUI_USER_PREFERRED_UI_LANGUAGES = 16

const MUI_USE_INSTALLED_LANGUAGES = 32

const MUI_USE_SEARCH_ALL_LANGUAGES = 64

const MUI_VERIFY_FILE_EXISTS = 4

const MULTIFILEOPENORD = 1537

type MULTIKEYHELP = TMULTIKEYHELP

type MULTIKEYHELPA = TMULTIKEYHELPA

type MULTIKEYHELPW = TMULTIKEYHELPW

type MULTI_QI = TMULTI_QI

const MUTANT_ALL_ACCESS = 2031617

const MUTANT_QUERY_STATE = 1

const MUTEX_ALL_ACCESS = 2031617

const MUTEX_MODIFY_STATE = 1

const MUTZ_ACCEPT_WILDCARD_SCHEME = 128

const MUTZ_DONT_UNESCAPE = 2048

const MUTZ_DONT_USE_CACHE = 4096

const MUTZ_ENFORCERESTRICTED = 256

const MUTZ_FORCE_INTRANET_FLAGS = 8192

const MUTZ_IGNORE_ZONE_MAPPINGS = 16384

const MUTZ_ISFILE = 2

const MUTZ_NOSAVEDFILECHECK = 1

const MUTZ_REQUIRESAVEDFILECHECK = 1024

const MUTZ_RESERVED = 512

const MWMO_ALERTABLE = 2

const MWMO_INPUTAVAILABLE = 4

const MWMO_WAITALL = 1

const MWT_IDENTITY = 1

const MWT_LEFTMULTIPLY = 2

const MWT_MAX = 3

const MWT_MIN = 1

const MWT_RIGHTMULTIPLY = 3

const MX_CLOSE_ATTEMPT = 3

const MapVirtualKey = 0

const MapVirtualKeyEx = 0

const MaxNumberOfEEInfoParams = 4

const MediumChangerClassGuid = 0

const MessageBox = 0

const MessageBoxEx = 0

const MessageBoxIndirect = 0

const ModifyMenu = 0

const MoveFile = 0

const MoveFileEx = 0

const MoveFileTransacted = 0

const MoveFileWithProgress = 0

const MoveMemory = 0

const MultinetGetConnectionPerformance = 0

type NAMEENUMPROCA = TNAMEENUMPROCA

type NAMEENUMPROCW = TNAMEENUMPROCW

type NAME_BUFFER = TNAME_BUFFER

const NAME_FLAGS_MASK = 135

type NCB = TNCB

const NCBACTION = 119

const NCBADDGRNAME = 54

const NCBADDNAME = 48

const NCBASTAT = 51

const NCBCALL = 16

const NCBCANCEL = 53

const NCBCHAINSEND = 23

const NCBCHAINSENDNA = 114

const NCBDELNAME = 49

const NCBDGRECV = 33

const NCBDGRECVBC = 35

const NCBDGSEND = 32

const NCBDGSENDBC = 34

const NCBENUM = 55

const NCBFINDNAME = 120

const NCBHANGUP = 18

const NCBLANSTALERT = 115

const NCBLISTEN = 17

const NCBNAMSZ = 16

const NCBRECV = 21

const NCBRECVANY = 22

const NCBRESET = 50

const NCBSEND = 20

const NCBSENDNA = 113

const NCBSSTAT = 52

const NCBTRACE = 121

const NCBUNLINK = 112

type NCCALCSIZE_PARAMS = TNCCALCSIZE_PARAMS

const NCM_DISPLAYERRORTIP = 1028

const NCM_GETADDRESS = 1025

const NCM_GETALLOWTYPE = 1027

const NCM_SETALLOWTYPE = 1026

const NCRYPTBUFFER_CERT_BLOB = 47

const NCRYPTBUFFER_DATA = 1

const NCRYPTBUFFER_EMPTY = 0

const NCRYPTBUFFER_PKCS_ALG_ID = 43

const NCRYPTBUFFER_PKCS_ALG_OID = 41

const NCRYPTBUFFER_PKCS_ALG_PARAM = 42

const NCRYPTBUFFER_PKCS_ATTRS = 44

const NCRYPTBUFFER_PKCS_KEY_NAME = 45

const NCRYPTBUFFER_PKCS_OID = 40

const NCRYPTBUFFER_PKCS_SECRET = 46

const NCRYPTBUFFER_PROTECTION_DESCRIPTOR_STRING = 3

const NCRYPTBUFFER_PROTECTION_FLAGS = 4

const NCRYPTBUFFER_SSL_CLEAR_KEY = 23

const NCRYPTBUFFER_SSL_CLIENT_RANDOM = 20

const NCRYPTBUFFER_SSL_HIGHEST_VERSION = 22

const NCRYPTBUFFER_SSL_KEY_ARG_DATA = 24

const NCRYPTBUFFER_SSL_SERVER_RANDOM = 21

const NCRYPTBUFFER_VERSION = 0

const NCRYPT_3DES_112_ALGORITHM = "BCRYPT_3DES_112_ALGORITHM"

const NCRYPT_3DES_ALGORITHM = "BCRYPT_3DES_ALGORITHM"

const NCRYPT_AES_ALGORITHM = "BCRYPT_AES_ALGORITHM"

const NCRYPT_AES_ALGORITHM_GROUP = "NCRYPT_AES_ALGORITHM"

const NCRYPT_ALGORITHM_GROUP_PROPERTY = "Algorithm Group"

const NCRYPT_ALGORITHM_PROPERTY = "Algorithm Name"

type NCRYPT_ALLOC_PARA = TNCRYPT_ALLOC_PARA

const NCRYPT_ALLOW_ALL_USAGES = 16777215

const NCRYPT_ALLOW_ARCHIVING_FLAG = 4

const NCRYPT_ALLOW_DECRYPT_FLAG = 1

const NCRYPT_ALLOW_EXPORT_FLAG = 1

const NCRYPT_ALLOW_KEY_AGREEMENT_FLAG = 4

const NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG = 8

const NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG = 2

const NCRYPT_ALLOW_SIGNING_FLAG = 2

const NCRYPT_ASSOCIATED_ECDH_KEY = "SmartCardAssociatedECDHKey"

const NCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE = 3

const NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 4

const NCRYPT_AUTH_TAG_LENGTH = "AuthTagLength"

const NCRYPT_BLOCK_LENGTH_PROPERTY = "Block Length"

const NCRYPT_CAPI_KDF_ALGORITHM = "BCRYPT_CAPI_KDF_ALGORITHM"

const NCRYPT_CERTIFICATE_PROPERTY = "SmartCardKeyCertificate"

const NCRYPT_CHAINING_MODE_PROPERTY = "Chaining Mode"

const NCRYPT_CIPHER_BLOCK_PADDING_FLAG = 1

const NCRYPT_CIPHER_INTERFACE = 1

const NCRYPT_CIPHER_KEY_BLOB = "CipherKeyBlob"

const NCRYPT_CIPHER_KEY_BLOB_MAGIC = 1380470851

const NCRYPT_CIPHER_NO_PADDING_FLAG = 0

const NCRYPT_CIPHER_OPERATION = 1

const NCRYPT_CIPHER_OTHER_PADDING_FLAG = 2

type NCRYPT_CIPHER_PADDING_INFO = TNCRYPT_CIPHER_PADDING_INFO

const NCRYPT_DESX_ALGORITHM = "BCRYPT_DESX_ALGORITHM"

const NCRYPT_DES_ALGORITHM = "BCRYPT_DES_ALGORITHM"

const NCRYPT_DES_ALGORITHM_GROUP = "DES"

const NCRYPT_DH_ALGORITHM = "BCRYPT_DH_ALGORITHM"

const NCRYPT_DH_ALGORITHM_GROUP = "NCRYPT_DH_ALGORITHM"

const NCRYPT_DH_PARAMETERS_PROPERTY = "BCRYPT_DH_PARAMETERS"

const NCRYPT_DO_NOT_FINALIZE_FLAG = 1024

const NCRYPT_DSA_ALGORITHM = "BCRYPT_DSA_ALGORITHM"

const NCRYPT_DSA_ALGORITHM_GROUP = "NCRYPT_DSA_ALGORITHM"

const NCRYPT_ECDH_ALGORITHM_GROUP = "ECDH"

const NCRYPT_ECDH_P256_ALGORITHM = "BCRYPT_ECDH_P256_ALGORITHM"

const NCRYPT_ECDH_P384_ALGORITHM = "BCRYPT_ECDH_P384_ALGORITHM"

const NCRYPT_ECDH_P521_ALGORITHM = "BCRYPT_ECDH_P521_ALGORITHM"

const NCRYPT_ECDSA_ALGORITHM_GROUP = "ECDSA"

const NCRYPT_ECDSA_P256_ALGORITHM = "BCRYPT_ECDSA_P256_ALGORITHM"

const NCRYPT_ECDSA_P384_ALGORITHM = "BCRYPT_ECDSA_P384_ALGORITHM"

const NCRYPT_ECDSA_P521_ALGORITHM = "BCRYPT_ECDSA_P521_ALGORITHM"

const NCRYPT_EXPORT_LEGACY_FLAG = 2048

const NCRYPT_EXPORT_POLICY_PROPERTY = "Export Policy"

type NCRYPT_HANDLE = TNCRYPT_HANDLE

type NCRYPT_HASH_HANDLE = TNCRYPT_HASH_HANDLE

const NCRYPT_HASH_INTERFACE = 2

const NCRYPT_HASH_OPERATION = 2

const NCRYPT_IMPL_HARDWARE_FLAG = 1

const NCRYPT_IMPL_HARDWARE_RNG_FLAG = 16

const NCRYPT_IMPL_REMOVABLE_FLAG = 8

const NCRYPT_IMPL_SOFTWARE_FLAG = 2

const NCRYPT_IMPL_TYPE_PROPERTY = "Impl Type"

const NCRYPT_INITIALIZATION_VECTOR = "BCRYPT_INITIALIZATION_VECTOR"

const NCRYPT_KDF_SECRET_VALUE = "KDFKeySecret"

type NCRYPT_KEY_BLOB_HEADER = TNCRYPT_KEY_BLOB_HEADER

const NCRYPT_KEY_DERIVATION_GROUP = "KEY_DERIVATION"

const NCRYPT_KEY_DERIVATION_INTERFACE = 7

const NCRYPT_KEY_DERIVATION_OPERATION = 64

type NCRYPT_KEY_HANDLE = TNCRYPT_KEY_HANDLE

const NCRYPT_KEY_PROTECTION_INTERFACE = 65540

const NCRYPT_KEY_STORAGE_ALGORITHM = "KEY_STORAGE"

const NCRYPT_KEY_STORAGE_INTERFACE = 65537

const NCRYPT_KEY_TYPE_PROPERTY = "Key Type"

const NCRYPT_KEY_USAGE_PROPERTY = "Key Usage"

const NCRYPT_LAST_MODIFIED_PROPERTY = "Modified"

const NCRYPT_LENGTHS_PROPERTY = "Lengths"

const NCRYPT_LENGTH_PROPERTY = "Length"

const NCRYPT_MACHINE_KEY_FLAG = 32

const NCRYPT_MAX_ALG_ID_LENGTH = 512

const NCRYPT_MAX_KEY_NAME_LENGTH = 512

const NCRYPT_MAX_NAME_LENGTH_PROPERTY = "Max Name Length"

const NCRYPT_MAX_PROPERTY_DATA = 1048576

const NCRYPT_MAX_PROPERTY_NAME = 64

const NCRYPT_MD2_ALGORITHM = "BCRYPT_MD2_ALGORITHM"

const NCRYPT_MD4_ALGORITHM = "BCRYPT_MD4_ALGORITHM"

const NCRYPT_MD5_ALGORITHM = "BCRYPT_MD5_ALGORITHM"

const NCRYPT_NAME_PROPERTY = "Name"

const NCRYPT_NO_KEY_VALIDATION = 8

const NCRYPT_NO_PADDING_FLAG = 1

const NCRYPT_OPAQUETRANSPORT_BLOB = "OpaqueTransport"

const NCRYPT_OVERWRITE_KEY_FLAG = 128

const NCRYPT_PAD_CIPHER_FLAG = 16

const NCRYPT_PAD_OAEP_FLAG = 4

const NCRYPT_PAD_PKCS1_FLAG = 2

const NCRYPT_PAD_PSS_FLAG = 8

const NCRYPT_PBKDF2_ALGORITHM = "BCRYPT_PBKDF2_ALGORITHM"

const NCRYPT_PCP_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY = "PCP_ALTERNATE_KEY_STORAGE_LOCATION"

const NCRYPT_PCP_CHANGEPASSWORD_PROPERTY = "PCP_CHANGEPASSWORD"

const NCRYPT_PCP_EKCERT_PROPERTY = "PCP_EKCERT"

const NCRYPT_PCP_EKNVCERT_PROPERTY = "PCP_EKNVCERT"

const NCRYPT_PCP_EKPUB_PROPERTY = "PCP_EKPUB"

const NCRYPT_PCP_ENCRYPTION_KEY = 2

const NCRYPT_PCP_EXPORT_ALLOWED_PROPERTY = "PCP_EXPORT_ALLOWED"

const NCRYPT_PCP_GENERIC_KEY = 3

const NCRYPT_PCP_IDENTITY_KEY = 8

const NCRYPT_PCP_KEYATTESTATION_PROPERTY = "PCP_TPM12_KEYATTESTATION"

const NCRYPT_PCP_KEY_USAGE_POLICY_PROPERTY = "PCP_KEY_USAGE_POLICY"

const NCRYPT_PCP_MIGRATIONPASSWORD_PROPERTY = "PCP_MIGRATIONPASSWORD"

const NCRYPT_PCP_PASSWORD_REQUIRED_PROPERTY = "PCP_PASSWORD_REQUIRED"

const NCRYPT_PCP_PCRTABLE_PROPERTY = "PCP_PCRTABLE"

const NCRYPT_PCP_PLATFORMHANDLE_PROPERTY = "PCP_PLATFORMHANDLE"

const NCRYPT_PCP_PLATFORM_BINDING_PCRDIGESTLIST_PROPERTY = "PCP_PLATFORM_BINDING_PCRDIGESTLIST"

const NCRYPT_PCP_PLATFORM_BINDING_PCRDIGEST_PROPERTY = "PCP_PLATFORM_BINDING_PCRDIGEST"

const NCRYPT_PCP_PLATFORM_BINDING_PCRMASK_PROPERTY = "PCP_PLATFORM_BINDING_PCRMASK"

const NCRYPT_PCP_PLATFORM_TYPE_PROPERTY = "PCP_PLATFORM_TYPE"

const NCRYPT_PCP_PROVIDERHANDLE_PROPERTY = "PCP_PROVIDERMHANDLE"

const NCRYPT_PCP_PROVIDER_VERSION_PROPERTY = "PCP_PROVIDER_VERSION"

const NCRYPT_PCP_SIGNATURE_KEY = 1

const NCRYPT_PCP_SRKPUB_PROPERTY = "PCP_SRKPUB"

const NCRYPT_PCP_STORAGEPARENT_PROPERTY = "PCP_STORAGEPARENT"

const NCRYPT_PCP_STORAGE_KEY = 4

const NCRYPT_PCP_TPM12_IDACTIVATION_PROPERTY = "PCP_TPM12_IDACTIVATION"

const NCRYPT_PCP_TPM12_IDBINDING_PROPERTY = "PCP_TPM12_IDBINDING"

const NCRYPT_PCP_USAGEAUTH_PROPERTY = "PCP_USAGEAUTH"

const NCRYPT_PERSIST_FLAG = 2147483648

const NCRYPT_PERSIST_ONLY_FLAG = 1073741824

const NCRYPT_PIN_PROMPT_PROPERTY = "SmartCardPinPrompt"

const NCRYPT_PIN_PROPERTY = "SmartCardPin"

const NCRYPT_PKCS7_ENVELOPE_BLOB = "PKCS7_ENVELOPE"

const NCRYPT_PKCS8_PRIVATE_KEY_BLOB = "PKCS8_PRIVATEKEY"

const NCRYPT_PROTECTED_KEY_BLOB = "ProtectedKeyBlob"

const NCRYPT_PROTECTED_KEY_BLOB_MAGIC = 1263817296

const NCRYPT_PROVIDER_HANDLE_PROPERTY = "Provider Handle"

type NCRYPT_PROV_HANDLE = TNCRYPT_PROV_HANDLE

const NCRYPT_RC2_ALGORITHM = "BCRYPT_RC2_ALGORITHM"

const NCRYPT_RC2_ALGORITHM_GROUP = "NCRYPT_RC2_ALGORITHM"

const NCRYPT_READER_ICON_PROPERTY = "SmartCardReaderIcon"

const NCRYPT_READER_PROPERTY = "SmartCardReader"

const NCRYPT_REGISTER_NOTIFY_FLAG = 1

const NCRYPT_RNG_OPERATION = 32

const NCRYPT_ROOT_CERTSTORE_PROPERTY = "SmartcardRootCertStore"

const NCRYPT_RSA_ALGORITHM = "BCRYPT_RSA_ALGORITHM"

const NCRYPT_RSA_ALGORITHM_GROUP = "NCRYPT_RSA_ALGORITHM"

const NCRYPT_RSA_SIGN_ALGORITHM = "BCRYPT_RSA_SIGN_ALGORITHM"

const NCRYPT_SCARD_PIN_ID = "SmartCardPinId"

const NCRYPT_SCARD_PIN_INFO = "SmartCardPinInfo"

const NCRYPT_SCHANNEL_INTERFACE = 65538

const NCRYPT_SCHANNEL_SIGNATURE_INTERFACE = 65539

const NCRYPT_SECRET_AGREEMENT_INTERFACE = 4

const NCRYPT_SECRET_AGREEMENT_OPERATION = 8

type NCRYPT_SECRET_HANDLE = TNCRYPT_SECRET_HANDLE

const NCRYPT_SECURE_PIN_PROPERTY = "SmartCardSecurePin"

const NCRYPT_SECURITY_DESCR_PROPERTY = "Security Descr"

const NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY = "Security Descr Support"

const NCRYPT_SHA1_ALGORITHM = "BCRYPT_SHA1_ALGORITHM"

const NCRYPT_SHA256_ALGORITHM = "BCRYPT_SHA256_ALGORITHM"

const NCRYPT_SHA384_ALGORITHM = "BCRYPT_SHA384_ALGORITHM"

const NCRYPT_SHA512_ALGORITHM = "BCRYPT_SHA512_ALGORITHM"

const NCRYPT_SIGNATURE_INTERFACE = 5

const NCRYPT_SIGNATURE_OPERATION = 16

const NCRYPT_SILENT_FLAG = 64

const NCRYPT_SMARTCARD_GUID_PROPERTY = "SmartCardGuid"

const NCRYPT_SP800108_CTR_HMAC_ALGORITHM = "BCRYPT_SP800108_CTR_HMAC_ALGORITHM"

const NCRYPT_SP80056A_CONCAT_ALGORITHM = "BCRYPT_SP80056A_CONCAT_ALGORITHM"

type NCRYPT_SUPPORTED_LENGTHS = TNCRYPT_SUPPORTED_LENGTHS

const NCRYPT_TPM12_PROVIDER = 65536

const NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG = 2

type NCRYPT_UI_POLICY = TNCRYPT_UI_POLICY

const NCRYPT_UI_POLICY_PROPERTY = "UI Policy"

const NCRYPT_UI_PROTECT_KEY_FLAG = 1

const NCRYPT_UNIQUE_NAME_PROPERTY = "Unique Name"

const NCRYPT_UNREGISTER_NOTIFY_FLAG = 2

const NCRYPT_USER_CERTSTORE_PROPERTY = "SmartCardUserCertStore"

const NCRYPT_USE_CONTEXT_PROPERTY = "Use Context"

const NCRYPT_USE_COUNT_ENABLED_PROPERTY = "Enabled Use Count"

const NCRYPT_USE_COUNT_PROPERTY = "Use Count"

const NCRYPT_VERSION_PROPERTY = "Version"

const NCRYPT_WINDOW_HANDLE_PROPERTY = "HWND Handle"

const NCRYPT_WRITE_KEY_TO_LEGACY_STORE_FLAG = 512

type NC_ADDRESS = TNC_ADDRESS

type NCryptAlgorithmName = TNCryptAlgorithmName

type NCryptBuffer = TNCryptBuffer

type NCryptBufferDesc = TNCryptBufferDesc

type NCryptKeyName = TNCryptKeyName

type NCryptProviderName = TNCryptProviderName

const NDR_ASCII_CHAR = 0

const NDR_BIG_ENDIAN = 0

type NDR_CCONTEXT = TNDR_CCONTEXT

const NDR_CHAR_REP_MASK = 15

type NDR_CS_ROUTINES = TNDR_CS_ROUTINES

type NDR_CS_SIZE_CONVERT_ROUTINES = TNDR_CS_SIZE_CONVERT_ROUTINES

const NDR_EBCDIC_CHAR = 1

const NDR_FLOAT_REP_MASK = 65280

const NDR_IBM_FLOAT = 768

const NDR_IEEE_FLOAT = 0

const NDR_INT_REP_MASK = 240

const NDR_LITTLE_ENDIAN = 16

const NDR_LOCAL_DATA_REPRESENTATION = 16

const NDR_LOCAL_ENDIAN = 16

type NDR_NOTIFY2_ROUTINE = TNDR_NOTIFY2_ROUTINE

type NDR_NOTIFY_ROUTINE = TNDR_NOTIFY_ROUTINE

type NDR_RUNDOWN = TNDR_RUNDOWN

type NDR_SCONTEXT = TNDR_SCONTEXT

const NDR_SHAREABLE = 0

type NDR_USER_MARSHAL_INFO = TNDR_USER_MARSHAL_INFO

type NDR_USER_MARSHAL_INFO_LEVEL1 = TNDR_USER_MARSHAL_INFO_LEVEL1

const NDR_VAX_FLOAT = 256

type NEARPROC = TNEARPROC

type NETCONNECTINFOSTRUCT = TNETCONNECTINFOSTRUCT

type NETINFOSTRUCT = TNETINFOSTRUCT

const NETINFO_DISKRED = 4

const NETINFO_DLL16 = 1

const NETINFO_PRINTERRED = 8

const NETPROPERTY_PERSISTENT = 1

type NETRESOURCE = TNETRESOURCE

type NETRESOURCEA = TNETRESOURCEA

type NETRESOURCEW = TNETRESOURCEW

const NETSCAPE_SIGN_CA_CERT_TYPE = 1

const NETSCAPE_SIGN_CERT_TYPE = 16

const NETSCAPE_SMIME_CA_CERT_TYPE = 2

const NETSCAPE_SMIME_CERT_TYPE = 32

const NETSCAPE_SSL_CA_CERT_TYPE = 4

const NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE = 128

const NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE = 64

const NEWFILEOPENORD = 1547

const NEWFILEOPENV2ORD = 1552

const NEWFRAME = 1

type NEWTEXTMETRIC = TNEWTEXTMETRIC

type NEWTEXTMETRICA = TNEWTEXTMETRICA

type NEWTEXTMETRICEX = TNEWTEXTMETRICEX

type NEWTEXTMETRICEXA = TNEWTEXTMETRICEXA

type NEWTEXTMETRICEXW = TNEWTEXTMETRICEXW

type NEWTEXTMETRICW = TNEWTEXTMETRICW

const NEWTRANSPARENT = 3

const NEXTBAND = 3

const NFR_ANSI = 1

const NFR_UNICODE = 2

const NF_QUERY = 3

const NF_REQUERY = 4

const NID_EXTERNAL_PEN = 8

const NID_EXTERNAL_TOUCH = 2

const NID_INTEGRATED_PEN = 4

const NID_INTEGRATED_TOUCH = 1

const NID_MULTI_INPUT = 64

const NID_READY = 128

const NIF_GUID = 32

const NIF_ICON = 2

const NIF_INFO = 16

const NIF_MESSAGE = 1

const NIF_REALTIME = 64

const NIF_SHOWTIP = 128

const NIF_STATE = 8

const NIF_TIP = 4

const NIIF_ERROR = 3

const NIIF_ICON_MASK = 15

const NIIF_INFO = 1

const NIIF_LARGE_ICON = 32

const NIIF_NONE = 0

const NIIF_NOSOUND = 16

const NIIF_RESPECT_QUIET_TIME = 128

const NIIF_USER = 4

const NIIF_WARNING = 2

const NIM_ADD = 0

const NIM_DELETE = 2

const NIM_MODIFY = 1

const NIM_SETFOCUS = 3

const NIM_SETVERSION = 4

const NINF_KEY = 1

const NIN_BALLOONHIDE = 1027

const NIN_BALLOONSHOW = 1026

const NIN_BALLOONTIMEOUT = 1028

const NIN_BALLOONUSERCLICK = 1029

const NIN_KEYSELECT = 1025

const NIN_POPUPCLOSE = 1031

const NIN_POPUPOPEN = 1030

const NIN_SELECT = 1024

const NIS_HIDDEN = 1

const NIS_SHAREDICON = 2

const NI_CHANGECANDIDATELIST = 19

const NI_CLOSECANDIDATE = 17

const NI_COMPOSITIONSTR = 21

const NI_FINALIZECONVERSIONRESULT = 20

const NI_IMEMENUSELECTED = 24

const NI_OPENCANDIDATE = 16

const NI_SELECTCANDIDATESTR = 18

const NI_SETCANDIDATE_PAGESIZE = 23

const NI_SETCANDIDATE_PAGESTART = 22

type NLSVERSIONINFO = TNLSVERSIONINFO

type NLSVERSIONINFOEX = TNLSVERSIONINFOEX

const NLS_ALPHANUMERIC = 0

const NLS_DBCSCHAR = 65536

type NLS_FUNCTION = TNLS_FUNCTION

const NLS_HIRAGANA = 262144

const NLS_IME_CONVERSION = 8388608

const NLS_IME_DISABLE = 536870912

const NLS_KATAKANA = 131072

const NLS_ROMAN = 4194304

const NLS_VALID_LOCALE_MASK = 1048575

type NMHDR = TNMHDR

const NMPWAIT_NOWAIT = 1

const NMPWAIT_USE_DEFAULT_WAIT = 0

const NMPWAIT_WAIT_FOREVER = 4294967295

const NOERROR = 0

const NONANTIALIASED_QUALITY = 3

type NONCLIENTMETRICS = TNONCLIENTMETRICS

type NONCLIENTMETRICSA = TNONCLIENTMETRICSA

type NONCLIENTMETRICSW = TNONCLIENTMETRICSW

const NONZEROLHND = 2

const NONZEROLPTR = 0

type NON_PAGED_DEBUG_INFO = TNON_PAGED_DEBUG_INFO

const NON_PAGED_DEBUG_SIGNATURE = 18766

const NOPARITY = 0

const NORETRY = 16384

const NORMAL_PRINT = 0

const NORMAL_PRIORITY_CLASS = 32

type NORM_FORM = TNORM_FORM

const NORM_IGNORECASE = 1

const NORM_IGNOREKANATYPE = 65536

const NORM_IGNORENONSPACE = 2

const NORM_IGNORESYMBOLS = 4

const NORM_IGNOREWIDTH = 131072

const NORM_LINGUISTIC_CASING = 134217728

type NOTIFICATION_MASK = TNOTIFICATION_MASK

type NOTIFYICONDATA = TNOTIFYICONDATA

type NOTIFYICONDATAA = TNOTIFYICONDATAA

type NOTIFYICONDATAW = TNOTIFYICONDATAW

type NOTIFYICONIDENTIFIER = TNOTIFYICONIDENTIFIER

const NOTIFYICON_VERSION = 3

const NOTIFYICON_VERSION_4 = 4

type NOTIFY_USER_POWER_SETTING = TNOTIFY_USER_POWER_SETTING

const NO_ADDRESS = 11004

const NO_DATA = 11004

const NO_ERROR = 0

const NO_PRIORITY = 0

const NO_PROPAGATE_INHERIT_ACE = 4

const NO_RECOVERY = 11003

const NO_SRBTYPE_ADAPTER_DESCRIPTOR_SIZE = 0

type NPABC = TNPABC

type NPABCFLOAT = TNPABCFLOAT

type NPAUXCAPS = TNPAUXCAPS

type NPAUXCAPS2 = TNPAUXCAPS2

type NPAUXCAPS2A = TNPAUXCAPS2A

type NPAUXCAPS2W = TNPAUXCAPS2W

type NPAUXCAPSA = TNPAUXCAPSA

type NPAUXCAPSW = TNPAUXCAPSW

type NPBITMAP = TNPBITMAP

type NPCANDIDATEFORM = TNPCANDIDATEFORM

type NPCANDIDATELIST = TNPCANDIDATELIST

type NPCHARSETINFO = TNPCHARSETINFO

type NPCOMPOSITIONFORM = TNPCOMPOSITIONFORM

type NPCWPRETSTRUCT = TNPCWPRETSTRUCT

type NPCWPSTRUCT = TNPCWPSTRUCT

type NPDEBUGHOOKINFO = TNPDEBUGHOOKINFO

type NPDEVMODE = TNPDEVMODE

type NPDEVMODEA = TNPDEVMODEA

type NPDEVMODEW = TNPDEVMODEW

type NPDRVCONFIGINFO = TNPDRVCONFIGINFO

type NPDRVCONFIGINFOEX = TNPDRVCONFIGINFOEX

type NPEVENTMSG = TNPEVENTMSG

type NPEVENTMSGMSG = TNPEVENTMSGMSG

type NPEXTLOGFONT = TNPEXTLOGFONT

type NPEXTLOGFONTA = TNPEXTLOGFONTA

type NPEXTLOGFONTW = TNPEXTLOGFONTW

type NPEXTLOGPEN = TNPEXTLOGPEN

type NPEXTLOGPEN32 = TNPEXTLOGPEN32

type NPIMECHARPOSITION = TNPIMECHARPOSITION

type NPIMEMENUITEMINFO = TNPIMEMENUITEMINFO

type NPIMEMENUITEMINFOA = TNPIMEMENUITEMINFOA

type NPIMEMENUITEMINFOW = TNPIMEMENUITEMINFOW

type NPJOYCAPS = TNPJOYCAPS

type NPJOYCAPS2 = TNPJOYCAPS2

type NPJOYCAPS2A = TNPJOYCAPS2A

type NPJOYCAPS2W = TNPJOYCAPS2W

type NPJOYCAPSA = TNPJOYCAPSA

type NPJOYCAPSW = TNPJOYCAPSW

type NPJOYINFO = TNPJOYINFO

type NPJOYINFOEX = TNPJOYINFOEX

type NPLOGBRUSH = TNPLOGBRUSH

type NPLOGBRUSH32 = TNPLOGBRUSH32

type NPLOGFONT = TNPLOGFONT

type NPLOGFONTA = TNPLOGFONTA

type NPLOGFONTW = TNPLOGFONTW

type NPLOGPALETTE = TNPLOGPALETTE

type NPLOGPEN = TNPLOGPEN

type NPMIDIHDR = TNPMIDIHDR

type NPMIDIINCAPS = TNPMIDIINCAPS

type NPMIDIINCAPS2 = TNPMIDIINCAPS2

type NPMIDIINCAPS2A = TNPMIDIINCAPS2A

type NPMIDIINCAPS2W = TNPMIDIINCAPS2W

type NPMIDIINCAPSA = TNPMIDIINCAPSA

type NPMIDIINCAPSW = TNPMIDIINCAPSW

type NPMIDIOUTCAPS = TNPMIDIOUTCAPS

type NPMIDIOUTCAPS2 = TNPMIDIOUTCAPS2

type NPMIDIOUTCAPS2A = TNPMIDIOUTCAPS2A

type NPMIDIOUTCAPS2W = TNPMIDIOUTCAPS2W

type NPMIDIOUTCAPSA = TNPMIDIOUTCAPSA

type NPMIDIOUTCAPSW = TNPMIDIOUTCAPSW

type NPMMCKINFO = TNPMMCKINFO

type NPMMIOINFO = TNPMMIOINFO

type NPMMTIME = TNPMMTIME

type NPMSG = TNPMSG

type NPNEWTEXTMETRIC = TNPNEWTEXTMETRIC

type NPNEWTEXTMETRICA = TNPNEWTEXTMETRICA

type NPNEWTEXTMETRICW = TNPNEWTEXTMETRICW

type NPOUTLINETEXTMETRIC = TNPOUTLINETEXTMETRIC

type NPOUTLINETEXTMETRICA = TNPOUTLINETEXTMETRICA

type NPOUTLINETEXTMETRICW = TNPOUTLINETEXTMETRICW

type NPPAINTSTRUCT = TNPPAINTSTRUCT

type NPPATTERN = TNPPATTERN

type NPPCMWAVEFORMAT = TNPPCMWAVEFORMAT

type NPPELARRAY = TNPPELARRAY

type NPPOINT = TNPPOINT

type NPPOLYTEXT = TNPPOLYTEXT

type NPPOLYTEXTA = TNPPOLYTEXTA

type NPPOLYTEXTW = TNPPOLYTEXTW

type NPRECONVERTSTRING = TNPRECONVERTSTRING

type NPRECT = TNPRECT

type NPREGISTERWORD = TNPREGISTERWORD

type NPREGISTERWORDA = TNPREGISTERWORDA

type NPREGISTERWORDW = TNPREGISTERWORDW

type NPRGBTRIPLE = TNPRGBTRIPLE

type NPRGNDATA = TNPRGNDATA

type NPSTR = TNPSTR

type NPSTYLEBUF = TNPSTYLEBUF

type NPSTYLEBUFA = TNPSTYLEBUFA

type NPSTYLEBUFW = TNPSTYLEBUFW

type NPTEXTMETRIC = TNPTEXTMETRIC

type NPTEXTMETRICA = TNPTEXTMETRICA

type NPTEXTMETRICW = TNPTEXTMETRICW

type NPTIMECAPS = TNPTIMECAPS

type NPWAVEFORMAT = TNPWAVEFORMAT

type NPWAVEFORMATEX = TNPWAVEFORMATEX

type NPWAVEHDR = TNPWAVEHDR

type NPWAVEINCAPS = TNPWAVEINCAPS

type NPWAVEINCAPS2 = TNPWAVEINCAPS2

type NPWAVEINCAPS2A = TNPWAVEINCAPS2A

type NPWAVEINCAPS2W = TNPWAVEINCAPS2W

type NPWAVEINCAPSA = TNPWAVEINCAPSA

type NPWAVEINCAPSW = TNPWAVEINCAPSW

type NPWAVEOUTCAPS = TNPWAVEOUTCAPS

type NPWAVEOUTCAPS2 = TNPWAVEOUTCAPS2

type NPWAVEOUTCAPS2A = TNPWAVEOUTCAPS2A

type NPWAVEOUTCAPS2W = TNPWAVEOUTCAPS2W

type NPWAVEOUTCAPSA = TNPWAVEOUTCAPSA

type NPWAVEOUTCAPSW = TNPWAVEOUTCAPSW

type NPWNDCLASS = TNPWNDCLASS

type NPWNDCLASSA = TNPWNDCLASSA

type NPWNDCLASSEX = TNPWNDCLASSEX

type NPWNDCLASSEXA = TNPWNDCLASSEXA

type NPWNDCLASSEXW = TNPWNDCLASSEXW

type NPWNDCLASSW = TNPWNDCLASSW

const NRC_ACTSES = 15

const NRC_BADDR = 7

const NRC_BRIDGE = 35

const NRC_BUFLEN = 1

const NRC_CANCEL = 38

const NRC_CANOCCR = 36

const NRC_CMDCAN = 11

const NRC_CMDTMO = 5

const NRC_DUPENV = 48

const NRC_DUPNAME = 13

const NRC_ENVNOTDEF = 52

const NRC_GOODRET = 0

const NRC_IFBUSY = 33

const NRC_ILLCMD = 3

const NRC_ILLNN = 19

const NRC_INCOMP = 6

const NRC_INUSE = 22

const NRC_INVADDRESS = 57

const NRC_INVDDID = 59

const NRC_LOCKFAIL = 60

const NRC_LOCTFUL = 17

const NRC_MAXAPPS = 54

const NRC_NAMCONF = 25

const NRC_NAMERR = 23

const NRC_NAMTFUL = 14

const NRC_NOCALL = 20

const NRC_NORES = 9

const NRC_NORESOURCES = 56

const NRC_NOSAPS = 55

const NRC_NOWILD = 21

const NRC_OPENERR = 63

const NRC_OSRESNOTAV = 53

const NRC_PENDING = 255

const NRC_REMTFUL = 18

const NRC_SABORT = 24

const NRC_SCLOSED = 10

const NRC_SNUMOUT = 8

const NRC_SYSTEM = 64

const NRC_TOOMANY = 34

const NT351_INTERFACE_SIZE = 64

const NTDDI_LONGHORN = 100663296

const NTDDI_VERSION = 167772160

const NTDDI_VISTA = 100663296

const NTDDI_VISTASP1 = 100663552

const NTDDI_VISTASP2 = 100663808

const NTDDI_VISTASP3 = 100664064

const NTDDI_VISTASP4 = 100664320

const NTDDI_WIN10 = 167772160

const NTDDI_WIN10_19H1 = 167772167

const NTDDI_WIN10_CO = 167772171

const NTDDI_WIN10_FE = 167772170

const NTDDI_WIN10_MN = 167772169

const NTDDI_WIN10_RS1 = 167772162

const NTDDI_WIN10_RS2 = 167772163

const NTDDI_WIN10_RS3 = 167772164

const NTDDI_WIN10_RS4 = 167772165

const NTDDI_WIN10_RS5 = 167772166

const NTDDI_WIN10_TH2 = 167772161

const NTDDI_WIN10_VB = 167772168

const NTDDI_WIN2K = 83886080

const NTDDI_WIN2KSP1 = 83886336

const NTDDI_WIN2KSP2 = 83886592

const NTDDI_WIN2KSP3 = 83886848

const NTDDI_WIN2KSP4 = 83887104

const NTDDI_WIN6 = 100663296

const NTDDI_WIN6SP1 = 100663552

const NTDDI_WIN6SP2 = 100663808

const NTDDI_WIN6SP3 = 100664064

const NTDDI_WIN6SP4 = 100664320

const NTDDI_WIN7 = 100728832

const NTDDI_WIN8 = 100794368

const NTDDI_WINBLUE = 100859904

const NTDDI_WINTHRESHOLD = 167772160

const NTDDI_WINXP = 83951616

const NTDDI_WINXPSP1 = 83951872

const NTDDI_WINXPSP2 = 83952128

const NTDDI_WINXPSP3 = 83952384

const NTDDI_WINXPSP4 = 83952640

const NTDDI_WS03 = 84017152

const NTDDI_WS03SP1 = 84017408

const NTDDI_WS03SP2 = 84017664

const NTDDI_WS03SP3 = 84017920

const NTDDI_WS03SP4 = 84018176

const NTDDI_WS08 = 100663552

const NTDDI_WS08SP2 = 100663808

const NTDDI_WS08SP3 = 100664064

const NTDDI_WS08SP4 = 100664320

const NTE_OP_OK = 0

type NTFS_EXTENDED_VOLUME_DATA = TNTFS_EXTENDED_VOLUME_DATA

type NTFS_FILE_RECORD_INPUT_BUFFER = TNTFS_FILE_RECORD_INPUT_BUFFER

type NTFS_FILE_RECORD_OUTPUT_BUFFER = TNTFS_FILE_RECORD_OUTPUT_BUFFER

type NTFS_STATISTICS = TNTFS_STATISTICS

type NTFS_VOLUME_DATA_BUFFER = TNTFS_VOLUME_DATA_BUFFER

const NTM_BOLD = 32

const NTM_DSIG = 2097152

const NTM_ITALIC = 1

const NTM_MULTIPLEMASTER = 524288

const NTM_NONNEGATIVE_AC = 65536

const NTM_PS_OPENTYPE = 131072

const NTM_REGULAR = 64

const NTM_TT_OPENTYPE = 262144

const NTM_TYPE1 = 1048576

type NTSTATUS = TNTSTATUS

const NTSYSAPI = "DECLSPEC_IMPORT"

const NTSYSCALLAPI = "DECLSPEC_IMPORT"

type NT_TIB = TNT_TIB

type NT_TIB32 = TNT_TIB32

type NT_TIB64 = TNT_TIB64

const NULLREGION = 1

const NULL_BRUSH = 5

const NULL_PEN = 8

type NUMA_NODE_RELATIONSHIP = TNUMA_NODE_RELATIONSHIP

const NUMA_NO_PREFERRED_NODE = -1

type NUMBERFMT = TNUMBERFMT

type NUMBERFMTA = TNUMBERFMTA

type NUMBERFMTW = TNUMBERFMTW

const NUMBRUSHES = 16

const NUMCOLORS = 24

const NUMFONTS = 22

const NUMLOCK_ON = 32

const NUMMARKERS = 20

type NUMPARSE = TNUMPARSE

const NUMPENS = 18

const NUMPRS_CURRENCY = 1024

const NUMPRS_DECIMAL = 256

const NUMPRS_EXPONENT = 2048

const NUMPRS_HEX_OCT = 64

const NUMPRS_INEXACT = 131072

const NUMPRS_LEADING_MINUS = 16

const NUMPRS_LEADING_PLUS = 4

const NUMPRS_LEADING_WHITE = 1

const NUMPRS_NEG = 65536

const NUMPRS_PARENS = 128

const NUMPRS_STD = 8191

const NUMPRS_THOUSANDS = 512

const NUMPRS_TRAILING_MINUS = 32

const NUMPRS_TRAILING_PLUS = 8

const NUMPRS_TRAILING_WHITE = 2

const NUMPRS_USE_ALL = 4096

const NUMRESERVED = 106

const NUM_DISCHARGE_POLICIES = 4

type NWPSTR = TNWPSTR

const N_BTMASK = 15

const N_BTSHFT = 4

const N_TMASK = 48

const N_TMASK1 = 192

const N_TMASK2 = 240

const N_TSHIFT = 2

const NeedCurrentDirectoryForExePath = 0

const NotifyServiceStatusChange = 0

type OBJECTDESCRIPTOR = TOBJECTDESCRIPTOR

type OBJECTID = TOBJECTID

const OBJECT_INHERIT_ACE = 1

type OBJECT_TYPE_LIST = TOBJECT_TYPE_LIST

const OBJ_BITMAP = 7

const OBJ_BRUSH = 2

const OBJ_COLORSPACE = 14

const OBJ_DC = 3

const OBJ_ENHMETADC = 12

const OBJ_ENHMETAFILE = 13

const OBJ_EXTPEN = 11

const OBJ_FONT = 6

const OBJ_MEMDC = 10

const OBJ_METADC = 4

const OBJ_METAFILE = 9

const OBJ_PAL = 5

const OBJ_PEN = 1

const OBJ_REGION = 8

const OBSOLETE_DISK_GET_WRITE_CACHE_STATE = 475356

const OBSOLETE_IOCTL_STORAGE_RESET_BUS = 3002368

const OBSOLETE_IOCTL_STORAGE_RESET_DEVICE = 3002372

const OCSP_BASIC_BY_KEY_RESPONDER_ID = 2

const OCSP_BASIC_BY_NAME_RESPONDER_ID = 1

const OCSP_BASIC_GOOD_CERT_STATUS = 0

type OCSP_BASIC_RESPONSE_ENTRY = TOCSP_BASIC_RESPONSE_ENTRY

type OCSP_BASIC_RESPONSE_INFO = TOCSP_BASIC_RESPONSE_INFO

const OCSP_BASIC_RESPONSE_V1 = 0

const OCSP_BASIC_REVOKED_CERT_STATUS = 1

type OCSP_BASIC_REVOKED_INFO = TOCSP_BASIC_REVOKED_INFO

type OCSP_BASIC_SIGNED_RESPONSE_INFO = TOCSP_BASIC_SIGNED_RESPONSE_INFO

const OCSP_BASIC_UNKNOWN_CERT_STATUS = 2

type OCSP_CERT_ID = TOCSP_CERT_ID

const OCSP_INTERNAL_ERROR_RESPONSE = 2

const OCSP_MALFORMED_REQUEST_RESPONSE = 1

type OCSP_REQUEST_ENTRY = TOCSP_REQUEST_ENTRY

type OCSP_REQUEST_INFO = TOCSP_REQUEST_INFO

const OCSP_REQUEST_V1 = 0

type OCSP_RESPONSE_INFO = TOCSP_RESPONSE_INFO

type OCSP_SIGNATURE_INFO = TOCSP_SIGNATURE_INFO

type OCSP_SIGNED_REQUEST_INFO = TOCSP_SIGNED_REQUEST_INFO

const OCSP_SIG_REQUIRED_RESPONSE = 5

const OCSP_SUCCESSFUL_RESPONSE = 0

const OCSP_TRY_LATER_RESPONSE = 3

const OCSP_UNAUTHORIZED_RESPONSE = 6

const ODA_DRAWENTIRE = 1

const ODA_FOCUS = 4

const ODA_SELECT = 2

const ODDPARITY = 1

const ODS_CHECKED = 8

const ODS_COMBOBOXEDIT = 4096

const ODS_DEFAULT = 32

const ODS_DISABLED = 4

const ODS_FOCUS = 16

const ODS_GRAYED = 2

const ODS_HOTLIGHT = 64

const ODS_INACTIVE = 128

const ODS_NOACCEL = 256

const ODS_NOFOCUSRECT = 512

const ODS_SELECTED = 1

const ODT_BUTTON = 4

const ODT_COMBOBOX = 3

const ODT_LISTBOX = 2

const ODT_MENU = 1

const ODT_STATIC = 5

const OEM_CHARSET = 255

const OEM_FIXED_FONT = 10

type OFFER_PRIORITY = TOFFER_PRIORITY

const OFFLINE_STATUS_INCOMPLETE = 4

const OFFLINE_STATUS_LOCAL = 1

const OFFLINE_STATUS_REMOTE = 2

type OFNOTIFY = TOFNOTIFY

type OFNOTIFYA = TOFNOTIFYA

type OFNOTIFYEX = TOFNOTIFYEX

type OFNOTIFYEXA = TOFNOTIFYEXA

type OFNOTIFYEXW = TOFNOTIFYEXW

type OFNOTIFYW = TOFNOTIFYW

const OFN_ALLOWMULTISELECT = 512

const OFN_CREATEPROMPT = 8192

const OFN_DONTADDTORECENT = 33554432

const OFN_ENABLEHOOK = 32

const OFN_ENABLEINCLUDENOTIFY = 4194304

const OFN_ENABLESIZING = 8388608

const OFN_ENABLETEMPLATE = 64

const OFN_ENABLETEMPLATEHANDLE = 128

const OFN_EXPLORER = 524288

const OFN_EXTENSIONDIFFERENT = 1024

const OFN_EX_NOPLACESBAR = 1

const OFN_FILEMUSTEXIST = 4096

const OFN_FORCESHOWHIDDEN = 268435456

const OFN_HIDEREADONLY = 4

const OFN_LONGNAMES = 2097152

const OFN_NOCHANGEDIR = 8

const OFN_NODEREFERENCELINKS = 1048576

const OFN_NOLONGNAMES = 262144

const OFN_NONETWORKBUTTON = 131072

const OFN_NOREADONLYRETURN = 32768

const OFN_NOTESTFILECREATE = 65536

const OFN_NOVALIDATE = 256

const OFN_OVERWRITEPROMPT = 2

const OFN_PATHMUSTEXIST = 2048

const OFN_READONLY = 1

const OFN_SHAREAWARE = 16384

const OFN_SHAREFALLTHROUGH = 2

const OFN_SHARENOWARN = 1

const OFN_SHAREWARN = 0

const OFN_SHOWHELP = 16

type OFSTRUCT = TOFSTRUCT

const OFS_MAXPATHNAME = 128

const OF_CANCEL = 2048

const OF_CREATE = 4096

const OF_DELETE = 512

const OF_EXIST = 16384

const OF_PARSE = 256

const OF_PROMPT = 8192

const OF_READ = 0

const OF_READWRITE = 2

const OF_REOPEN = 32768

const OF_SHARE_COMPAT = 0

const OF_SHARE_DENY_NONE = 64

const OF_SHARE_DENY_READ = 48

const OF_SHARE_DENY_WRITE = 32

const OF_SHARE_EXCLUSIVE = 16

const OF_VERIFY = 1024

const OF_WRITE = 1

type OIBDG_FLAGS = TOIBDG_FLAGS

const OInetCombineIUri = 0

const OInetCombineUrl = 0

const OInetCombineUrlEx = 0

const OInetCompareUrl = 0

const OInetGetSession = 0

const OInetParseUrl = 0

const OInetQueryInfo = 0

const OLDFONTENUMPROC = 0

type OLDFONTENUMPROCA = TOLDFONTENUMPROCA

type OLDFONTENUMPROCW = TOLDFONTENUMPROCW

const OLD_P_OVERLAY = 2

type OLECHAR = TOLECHAR

type OLECLOSE = TOLECLOSE

type OLECONTF = TOLECONTF

const OLECREATE_LEAVERUNNING = 1

type OLEGETMONIKER = TOLEGETMONIKER

type OLEINPLACEFRAMEINFO = TOLEINPLACEFRAMEINFO

const OLEIVERB_DISCARDUNDOSTATE = -6

const OLEIVERB_HIDE = -3

const OLEIVERB_INPLACEACTIVATE = -5

const OLEIVERB_OPEN = -2

const OLEIVERB_PRIMARY = 0

const OLEIVERB_SHOW = -1

const OLEIVERB_UIACTIVATE = -4

type OLELINKBIND = TOLELINKBIND

type OLEMENUGROUPWIDTHS = TOLEMENUGROUPWIDTHS

type OLEMISC = TOLEMISC

const OLEOBJ_E_FIRST = 2147746176

const OLEOBJ_E_LAST = 2147746191

const OLEOBJ_S_FIRST = 262528

const OLEOBJ_S_LAST = 262543

type OLERENDER = TOLERENDER

type OLESTREAM = TOLESTREAM

type OLESTREAMVTBL = TOLESTREAMVTBL

type OLEUPDATE = TOLEUPDATE

type OLEVERB = TOLEVERB

type OLEVERBATTRIB = TOLEVERBATTRIB

type OLEWHICHMK = TOLEWHICHMK

const ONE5STOPBITS = 1

const ONESTOPBIT = 0

const OPAQUE = 2

const OPAQUEKEYBLOB = 9

type OPENCARDNAME = TOPENCARDNAME

type OPENCARDNAMEA = TOPENCARDNAMEA

const OPENCARDNAMEA_EX = 0

type OPENCARDNAMEW = TOPENCARDNAMEW

const OPENCARDNAMEW_EX = 0

const OPENCARDNAME_A = 0

type OPENCARDNAME_EX = TOPENCARDNAME_EX

type OPENCARDNAME_EXA = TOPENCARDNAME_EXA

type OPENCARDNAME_EXW = TOPENCARDNAME_EXW

const OPENCARDNAME_W = 0

type OPENCARD_SEARCH_CRITERIA = TOPENCARD_SEARCH_CRITERIA

type OPENCARD_SEARCH_CRITERIAA = TOPENCARD_SEARCH_CRITERIAA

type OPENCARD_SEARCH_CRITERIAW = TOPENCARD_SEARCH_CRITERIAW

const OPENCHANNEL = 4110

type OPENFILENAME = TOPENFILENAME

type OPENFILENAMEA = TOPENFILENAMEA

type OPENFILENAMEW = TOPENFILENAMEW

type OPENFILENAME_NT4 = TOPENFILENAME_NT4

type OPENFILENAME_NT4A = TOPENFILENAME_NT4A

type OPENFILENAME_NT4W = TOPENFILENAME_NT4W

const OPEN_ALWAYS = 4

const OPEN_EXISTING = 3

type OPEN_PRINTER_PROPS_INFO = TOPEN_PRINTER_PROPS_INFO

type OPEN_PRINTER_PROPS_INFOA = TOPEN_PRINTER_PROPS_INFOA

type OPEN_PRINTER_PROPS_INFOW = TOPEN_PRINTER_PROPS_INFOW

type OPEN_VIRTUAL_DISK_FLAG = TOPEN_VIRTUAL_DISK_FLAG

type OPEN_VIRTUAL_DISK_PARAMETERS = TOPEN_VIRTUAL_DISK_PARAMETERS

type OPEN_VIRTUAL_DISK_VERSION = TOPEN_VIRTUAL_DISK_VERSION

const OPERATION_API_VERSION = 1

const OPERATION_END_DISCARD = 1

type OPERATION_END_PARAMETERS = TOPERATION_END_PARAMETERS

type OPERATION_ID = TOPERATION_ID

type OPERATION_START_PARAMETERS = TOPERATION_START_PARAMETERS

const OPERATION_START_TRACE_CURRENT_THREAD = 1

const OPLOCK_LEVEL_CACHE_HANDLE = 2

const OPLOCK_LEVEL_CACHE_READ = 1

const OPLOCK_LEVEL_CACHE_WRITE = 4

const ORD_LANGDRIVER = 1

type ORIENTATION_PREFERENCE = TORIENTATION_PREFERENCE

const OR_INVALID_OID = 1911

const OR_INVALID_OXID = 1910

const OR_INVALID_SET = 1912

type OSVERSIONINFO = TOSVERSIONINFO

type OSVERSIONINFOA = TOSVERSIONINFOA

type OSVERSIONINFOEX = TOSVERSIONINFOEX

type OSVERSIONINFOEXA = TOSVERSIONINFOEXA

type OSVERSIONINFOEXW = TOSVERSIONINFOEXW

type OSVERSIONINFOW = TOSVERSIONINFOW

const OSVERSION_MASK = 4294901760

type OUTLINETEXTMETRIC = TOUTLINETEXTMETRIC

type OUTLINETEXTMETRICA = TOUTLINETEXTMETRICA

type OUTLINETEXTMETRICW = TOUTLINETEXTMETRICW

const OUTPUT_DEBUG_STRING_EVENT = 8

type OUTPUT_DEBUG_STRING_INFO = TOUTPUT_DEBUG_STRING_INFO

const OUT_CHARACTER_PRECIS = 2

const OUT_DEFAULT_PRECIS = 0

const OUT_DEVICE_PRECIS = 5

const OUT_OUTLINE_PRECIS = 8

const OUT_PS_ONLY_PRECIS = 10

const OUT_RASTER_PRECIS = 6

const OUT_SCREEN_OUTLINE_PRECIS = 9

const OUT_STRING_PRECIS = 1

const OUT_STROKE_PRECIS = 3

const OUT_TT_ONLY_PRECIS = 7

const OUT_TT_PRECIS = 4

type OVERLAPPED = TOVERLAPPED

type OVERLAPPED_ENTRY = TOVERLAPPED_ENTRY

const OVERWRITE_HIDDEN = 4

const OWNER_SECURITY_INFORMATION = 1

const ObjectCloseAuditAlarm = 0

const ObjectDeleteAuditAlarm = 0

const ObjectOpenAuditAlarm = 0

const ObjectPrivilegeAuditAlarm = 0

const OemToAnsi = 0

const OemToAnsiBuff = 0

const OemToChar = 0

const OemToCharBuff = 0

const OpenBackupEventLog = 0

const OpenDesktop = 0

const OpenEncryptedFileRaw = 0

const OpenEvent = 0

const OpenEventLog = 0

const OpenFileMapping = 0

const OpenJobObject = 0

const OpenMutex = 0

const OpenPrinter = 0

const OpenPrinter2 = 0

const OpenPrivateNamespace = 0

const OpenSCManager = 0

const OpenSemaphore = 0

const OpenService = 0

const OpenWaitableTimer = 0

const OpenWindowStation = 0

const OutputDebugStr = 0

const OutputDebugString = 0

type PABC = TPABC

type PABCFLOAT = TPABCFLOAT

type PACCESS_ALLOWED_ACE = TPACCESS_ALLOWED_ACE

type PACCESS_ALLOWED_CALLBACK_ACE = TPACCESS_ALLOWED_CALLBACK_ACE

type PACCESS_ALLOWED_CALLBACK_OBJECT_ACE = TPACCESS_ALLOWED_CALLBACK_OBJECT_ACE

type PACCESS_ALLOWED_OBJECT_ACE = TPACCESS_ALLOWED_OBJECT_ACE

type PACCESS_DENIED_ACE = TPACCESS_DENIED_ACE

type PACCESS_DENIED_CALLBACK_ACE = TPACCESS_DENIED_CALLBACK_ACE

type PACCESS_DENIED_CALLBACK_OBJECT_ACE = TPACCESS_DENIED_CALLBACK_OBJECT_ACE

type PACCESS_DENIED_OBJECT_ACE = TPACCESS_DENIED_OBJECT_ACE

type PACCESS_MASK = TPACCESS_MASK

type PACCESS_REASONS = TPACCESS_REASONS

type PACCESS_TOKEN = TPACCESS_TOKEN

type PACE_HEADER = TPACE_HEADER

type PACKEDEVENTINFO = TPACKEDEVENTINFO

type PACL = TPACL

type PACL_REVISION_INFORMATION = TPACL_REVISION_INFORMATION

type PACL_SIZE_INFORMATION = TPACL_SIZE_INFORMATION

type PACTCTX = TPACTCTX

type PACTCTXA = TPACTCTXA

type PACTCTXW = TPACTCTXW

type PACTCTX_SECTION_KEYED_DATA = TPACTCTX_SECTION_KEYED_DATA

type PACTCTX_SECTION_KEYED_DATA_2600 = TPACTCTX_SECTION_KEYED_DATA_2600

type PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = TPACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA

type PACTION_HEADER = TPACTION_HEADER

type PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = TPACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION

type PACTIVATION_CONTEXT_BASIC_INFORMATION = TPACTIVATION_CONTEXT_BASIC_INFORMATION

type PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = TPACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION

type PACTIVATION_CONTEXT_DETAILED_INFORMATION = TPACTIVATION_CONTEXT_DETAILED_INFORMATION

type PACTIVATION_CONTEXT_QUERY_INDEX = TPACTIVATION_CONTEXT_QUERY_INDEX

type PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = TPACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION

type PADAPTER_STATUS = TPADAPTER_STATUS

type PADDJOB_INFO_1 = TPADDJOB_INFO_1

type PADDJOB_INFO_1A = TPADDJOB_INFO_1A

type PADDJOB_INFO_1W = TPADDJOB_INFO_1W

type PADMINISTRATOR_POWER_POLICY = TPADMINISTRATOR_POWER_POLICY

type PAGESETUPDLG = TPAGESETUPDLG

type PAGESETUPDLGA = TPAGESETUPDLGA

const PAGESETUPDLGORD = 1546

const PAGESETUPDLGORDMOTIF = 1550

type PAGESETUPDLGW = TPAGESETUPDLGW

const PAGE_ENCLAVE_DECOMMIT = 268435456

const PAGE_ENCLAVE_THREAD_CONTROL = 2147483648

const PAGE_ENCLAVE_UNVALIDATED = 536870912

const PAGE_EXECUTE = 16

const PAGE_EXECUTE_READ = 32

const PAGE_EXECUTE_READWRITE = 64

const PAGE_EXECUTE_WRITECOPY = 128

const PAGE_GRAPHICS_COHERENT = 131072

const PAGE_GRAPHICS_EXECUTE = 16384

const PAGE_GRAPHICS_EXECUTE_READ = 32768

const PAGE_GRAPHICS_EXECUTE_READWRITE = 65536

const PAGE_GRAPHICS_NOACCESS = 2048

const PAGE_GRAPHICS_READONLY = 4096

const PAGE_GRAPHICS_READWRITE = 8192

const PAGE_GUARD = 256

const PAGE_NOACCESS = 1

const PAGE_NOCACHE = 512

const PAGE_READONLY = 2

const PAGE_READWRITE = 4

const PAGE_REVERT_TO_FILE_MAP = 2147483648

const PAGE_TARGETS_INVALID = 1073741824

const PAGE_TARGETS_NO_UPDATE = 1073741824

const PAGE_WRITECOMBINE = 1024

const PAGE_WRITECOPY = 8

type PAINTSTRUCT = TPAINTSTRUCT

type PALETTEENTRY = TPALETTEENTRY

type PALTTABINFO = TPALTTABINFO

type PANOSE = TPANOSE

const PANOSE_COUNT = 10

const PAN_ANY = 0

const PAN_ARMSTYLE_INDEX = 6

const PAN_BENT_ARMS_DOUBLE_SERIF = 11

const PAN_BENT_ARMS_HORZ = 7

const PAN_BENT_ARMS_SINGLE_SERIF = 10

const PAN_BENT_ARMS_VERT = 9

const PAN_BENT_ARMS_WEDGE = 8

const PAN_CONTRAST_HIGH = 8

const PAN_CONTRAST_INDEX = 4

const PAN_CONTRAST_LOW = 4

const PAN_CONTRAST_MEDIUM = 6

const PAN_CONTRAST_MEDIUM_HIGH = 7

const PAN_CONTRAST_MEDIUM_LOW = 5

const PAN_CONTRAST_NONE = 2

const PAN_CONTRAST_VERY_HIGH = 9

const PAN_CONTRAST_VERY_LOW = 3

const PAN_CULTURE_LATIN = 0

const PAN_FAMILYTYPE_INDEX = 0

const PAN_FAMILY_DECORATIVE = 4

const PAN_FAMILY_PICTORIAL = 5

const PAN_FAMILY_SCRIPT = 3

const PAN_FAMILY_TEXT_DISPLAY = 2

const PAN_LETTERFORM_INDEX = 7

const PAN_LETT_NORMAL_BOXED = 4

const PAN_LETT_NORMAL_CONTACT = 2

const PAN_LETT_NORMAL_FLATTENED = 5

const PAN_LETT_NORMAL_OFF_CENTER = 7

const PAN_LETT_NORMAL_ROUNDED = 6

const PAN_LETT_NORMAL_SQUARE = 8

const PAN_LETT_NORMAL_WEIGHTED = 3

const PAN_LETT_OBLIQUE_BOXED = 11

const PAN_LETT_OBLIQUE_CONTACT = 9

const PAN_LETT_OBLIQUE_FLATTENED = 12

const PAN_LETT_OBLIQUE_OFF_CENTER = 14

const PAN_LETT_OBLIQUE_ROUNDED = 13

const PAN_LETT_OBLIQUE_SQUARE = 15

const PAN_LETT_OBLIQUE_WEIGHTED = 10

const PAN_MIDLINE_CONSTANT_POINTED = 9

const PAN_MIDLINE_CONSTANT_SERIFED = 10

const PAN_MIDLINE_CONSTANT_TRIMMED = 8

const PAN_MIDLINE_HIGH_POINTED = 6

const PAN_MIDLINE_HIGH_SERIFED = 7

const PAN_MIDLINE_HIGH_TRIMMED = 5

const PAN_MIDLINE_INDEX = 8

const PAN_MIDLINE_LOW_POINTED = 12

const PAN_MIDLINE_LOW_SERIFED = 13

const PAN_MIDLINE_LOW_TRIMMED = 11

const PAN_MIDLINE_STANDARD_POINTED = 3

const PAN_MIDLINE_STANDARD_SERIFED = 4

const PAN_MIDLINE_STANDARD_TRIMMED = 2

const PAN_NO_FIT = 1

const PAN_PROPORTION_INDEX = 3

const PAN_PROP_CONDENSED = 6

const PAN_PROP_EVEN_WIDTH = 4

const PAN_PROP_EXPANDED = 5

const PAN_PROP_MODERN = 3

const PAN_PROP_MONOSPACED = 9

const PAN_PROP_OLD_STYLE = 2

const PAN_PROP_VERY_CONDENSED = 8

const PAN_PROP_VERY_EXPANDED = 7

const PAN_SERIFSTYLE_INDEX = 1

const PAN_SERIF_BONE = 8

const PAN_SERIF_COVE = 2

const PAN_SERIF_EXAGGERATED = 9

const PAN_SERIF_FLARED = 14

const PAN_SERIF_NORMAL_SANS = 11

const PAN_SERIF_OBTUSE_COVE = 3

const PAN_SERIF_OBTUSE_SANS = 12

const PAN_SERIF_OBTUSE_SQUARE_COVE = 5

const PAN_SERIF_PERP_SANS = 13

const PAN_SERIF_ROUNDED = 15

const PAN_SERIF_SQUARE = 6

const PAN_SERIF_SQUARE_COVE = 4

const PAN_SERIF_THIN = 7

const PAN_SERIF_TRIANGLE = 10

const PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6

const PAN_STRAIGHT_ARMS_HORZ = 2

const PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5

const PAN_STRAIGHT_ARMS_VERT = 4

const PAN_STRAIGHT_ARMS_WEDGE = 3

const PAN_STROKEVARIATION_INDEX = 5

const PAN_STROKE_GRADUAL_DIAG = 2

const PAN_STROKE_GRADUAL_HORZ = 5

const PAN_STROKE_GRADUAL_TRAN = 3

const PAN_STROKE_GRADUAL_VERT = 4

const PAN_STROKE_INSTANT_VERT = 8

const PAN_STROKE_RAPID_HORZ = 7

const PAN_STROKE_RAPID_VERT = 6

const PAN_WEIGHT_BLACK = 10

const PAN_WEIGHT_BOLD = 8

const PAN_WEIGHT_BOOK = 5

const PAN_WEIGHT_DEMI = 7

const PAN_WEIGHT_HEAVY = 9

const PAN_WEIGHT_INDEX = 2

const PAN_WEIGHT_LIGHT = 3

const PAN_WEIGHT_MEDIUM = 6

const PAN_WEIGHT_NORD = 11

const PAN_WEIGHT_THIN = 4

const PAN_WEIGHT_VERY_LIGHT = 2

const PAN_XHEIGHT_CONSTANT_LARGE = 4

const PAN_XHEIGHT_CONSTANT_SMALL = 2

const PAN_XHEIGHT_CONSTANT_STD = 3

const PAN_XHEIGHT_DUCKING_LARGE = 7

const PAN_XHEIGHT_DUCKING_SMALL = 5

const PAN_XHEIGHT_DUCKING_STD = 6

const PAN_XHEIGHT_INDEX = 9

type PAPCFUNC = TPAPCFUNC

type PAPPBARDATA = TPAPPBARDATA

type PAPPLICATIONLAUNCH_SETTING_VALUE = TPAPPLICATIONLAUNCH_SETTING_VALUE

type PAPPLY_SNAPSHOT_VHDSET_FLAG = TPAPPLY_SNAPSHOT_VHDSET_FLAG

type PAPPLY_SNAPSHOT_VHDSET_PARAMETERS = TPAPPLY_SNAPSHOT_VHDSET_PARAMETERS

type PAPP_MEMORY_INFORMATION = TPAPP_MEMORY_INFORMATION

type PARAMDATA = TPARAMDATA

type PARAMDESC = TPARAMDESC

type PARAMDESCEX = TPARAMDESCEX

const PARAMFLAG_FHASCUSTDATA = 64

const PARAMFLAG_FHASDEFAULT = 32

const PARAMFLAG_FIN = 1

const PARAMFLAG_FLCID = 4

const PARAMFLAG_FOPT = 16

const PARAMFLAG_FOUT = 2

const PARAMFLAG_FRETVAL = 8

const PARAMFLAG_NONE = 0

type PARAM_OFFSETTABLE = TPARAM_OFFSETTABLE

type PARRAY_INFO = TPARRAY_INFO

type PARSEACTION = TPARSEACTION

const PARSE_DECODE = 0

const PARSE_ENCODE = 0

const PARTITION_ENTRY_UNUSED = 0

const PARTITION_EXTENDED = 5

const PARTITION_FAT32 = 11

const PARTITION_FAT32_XINT13 = 12

const PARTITION_FAT_12 = 1

const PARTITION_FAT_16 = 4

const PARTITION_HUGE = 6

const PARTITION_IFS = 7

type PARTITION_INFORMATION = TPARTITION_INFORMATION

type PARTITION_INFORMATION_EX = TPARTITION_INFORMATION_EX

type PARTITION_INFORMATION_GPT = TPARTITION_INFORMATION_GPT

type PARTITION_INFORMATION_MBR = TPARTITION_INFORMATION_MBR

const PARTITION_LDM = 66

const PARTITION_NTFT = 128

const PARTITION_OS2BOOTMGR = 10

const PARTITION_PREP = 65

type PARTITION_STYLE = TPARTITION_STYLE

const PARTITION_UNIX = 99

const PARTITION_XENIX_1 = 2

const PARTITION_XENIX_2 = 3

const PARTITION_XINT13 = 14

const PARTITION_XINT13_EXTENDED = 15

type PAR_STATE = TPAR_STATE

const PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION = 0

type PASSEMBLY_FILE_DETAILED_INFORMATION = TPASSEMBLY_FILE_DETAILED_INFORMATION

const PASSTHROUGH = 19

type PATCHARRAY = TPATCHARRAY

type PATHNAME_BUFFER = TPATHNAME_BUFFER

const PATH_MAX = 260

type PATTACH_VIRTUAL_DISK_PARAMETERS = TPATTACH_VIRTUAL_DISK_PARAMETERS

type PATTERN = TPATTERN

type PAUDIT_EVENT_TYPE = TPAUDIT_EVENT_TYPE

type PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA = TPAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA

type PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS = TPAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS

type PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA = TPAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA

type PAUXCAPS = TPAUXCAPS

type PAUXCAPS2 = TPAUXCAPS2

type PAUXCAPS2A = TPAUXCAPS2A

type PAUXCAPS2W = TPAUXCAPS2W

type PAUXCAPSA = TPAUXCAPSA

type PAUXCAPSW = TPAUXCAPSW

type PAXESLIST = TPAXESLIST

type PAXESLISTA = TPAXESLISTA

type PAXESLISTW = TPAXESLISTW

type PAXISINFO = TPAXISINFO

type PAXISINFOA = TPAXISINFOA

type PAXISINFOW = TPAXISINFOW

const PA_ACTIVATE = 1

const PA_NOACTIVATE = 3

type PBAD_MEMORY_CALLBACK_ROUTINE = TPBAD_MEMORY_CALLBACK_ROUTINE

type PBAD_TRACK_NUMBER = TPBAD_TRACK_NUMBER

type PBATTERY_REPORTING_SCALE = TPBATTERY_REPORTING_SCALE

type PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = TPBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO

type PBCRYPT_DH_KEY_BLOB = TPBCRYPT_DH_KEY_BLOB

type PBCRYPT_DSA_KEY_BLOB = TPBCRYPT_DSA_KEY_BLOB

type PBCRYPT_DSA_KEY_BLOB_V2 = TPBCRYPT_DSA_KEY_BLOB_V2

type PBCRYPT_ECCKEY_BLOB = TPBCRYPT_ECCKEY_BLOB

type PBCRYPT_INTERFACE_VERSION = TPBCRYPT_INTERFACE_VERSION

type PBCRYPT_KEY_DATA_BLOB_HEADER = TPBCRYPT_KEY_DATA_BLOB_HEADER

type PBCryptBuffer = TPBCryptBuffer

type PBCryptBufferDesc = TPBCryptBufferDesc

type PBIDI_DATA = TPBIDI_DATA

type PBIDI_REQUEST_CONTAINER = TPBIDI_REQUEST_CONTAINER

type PBIDI_REQUEST_DATA = TPBIDI_REQUEST_DATA

type PBIDI_RESPONSE_CONTAINER = TPBIDI_RESPONSE_CONTAINER

type PBIDI_RESPONSE_DATA = TPBIDI_RESPONSE_DATA

type PBINARY_CONTAINER = TPBINARY_CONTAINER

type PBIN_COUNT = TPBIN_COUNT

type PBIN_RANGE = TPBIN_RANGE

type PBIN_RESULTS = TPBIN_RESULTS

type PBITMAP = TPBITMAP

type PBITMAPCOREHEADER = TPBITMAPCOREHEADER

type PBITMAPCOREINFO = TPBITMAPCOREINFO

type PBITMAPFILEHEADER = TPBITMAPFILEHEADER

type PBITMAPINFO = TPBITMAPINFO

type PBITMAPINFOHEADER = TPBITMAPINFOHEADER

type PBITMAPV4HEADER = TPBITMAPV4HEADER

type PBITMAPV5HEADER = TPBITMAPV5HEADER

type PBLENDFUNCTION = TPBLENDFUNCTION

type PBOOL = TPBOOL

type PBOOLEAN = TPBOOLEAN

type PBOOT_AREA_INFO = TPBOOT_AREA_INFO

type PBSMINFO = TPBSMINFO

const PBTF_APMRESUMEFROMFAILURE = 1

const PBT_APMBATTERYLOW = 9

const PBT_APMOEMEVENT = 11

const PBT_APMPOWERSTATUSCHANGE = 10

const PBT_APMQUERYSTANDBY = 1

const PBT_APMQUERYSTANDBYFAILED = 3

const PBT_APMQUERYSUSPEND = 0

const PBT_APMQUERYSUSPENDFAILED = 2

const PBT_APMRESUMEAUTOMATIC = 18

const PBT_APMRESUMECRITICAL = 6

const PBT_APMRESUMESTANDBY = 8

const PBT_APMRESUMESUSPEND = 7

const PBT_APMSTANDBY = 5

const PBT_APMSUSPEND = 4

const PBT_POWERSETTINGCHANGE = 32787

type PBULK_SECURITY_TEST_DATA = TPBULK_SECURITY_TEST_DATA

type PBYTE = TPBYTE

type PBY_HANDLE_FILE_INFORMATION = TPBY_HANDLE_FILE_INFORMATION

type PCACHE_DESCRIPTOR = TPCACHE_DESCRIPTOR

type PCACHE_RELATIONSHIP = TPCACHE_RELATIONSHIP

type PCACTCTX = TPCACTCTX

type PCACTCTXA = TPCACTCTXA

type PCACTCTXW = TPCACTCTXW

type PCACTCTX_SECTION_KEYED_DATA = TPCACTCTX_SECTION_KEYED_DATA

type PCACTCTX_SECTION_KEYED_DATA_2600 = TPCACTCTX_SECTION_KEYED_DATA_2600

type PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = TPCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA

type PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = TPCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION

type PCACTIVATION_CONTEXT_BASIC_INFORMATION = TPCACTIVATION_CONTEXT_BASIC_INFORMATION

type PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = TPCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION

type PCACTIVATION_CONTEXT_DETAILED_INFORMATION = TPCACTIVATION_CONTEXT_DETAILED_INFORMATION

type PCACTIVATION_CONTEXT_QUERY_INDEX = TPCACTIVATION_CONTEXT_QUERY_INDEX

type PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = TPCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION

type PCANDIDATEFORM = TPCANDIDATEFORM

type PCANDIDATELIST = TPCANDIDATELIST

const PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION = 0

type PCASSEMBLY_FILE_DETAILED_INFORMATION = TPCASSEMBLY_FILE_DETAILED_INFORMATION

type PCCERT_CHAIN_CONTEXT = TPCCERT_CHAIN_CONTEXT

type PCCERT_CHAIN_ELEMENT = TPCCERT_CHAIN_ELEMENT

type PCCERT_CONTEXT = TPCCERT_CONTEXT

type PCCERT_CRL_CONTEXT_PAIR = TPCCERT_CRL_CONTEXT_PAIR

type PCCERT_ENHKEY_USAGE = TPCCERT_ENHKEY_USAGE

type PCCERT_EXTENSION = TPCCERT_EXTENSION

type PCCERT_SELECT_CHAIN_PARA = TPCCERT_SELECT_CHAIN_PARA

type PCCERT_SELECT_CRITERIA = TPCCERT_SELECT_CRITERIA

type PCCERT_SERVER_OCSP_RESPONSE_CONTEXT = TPCCERT_SERVER_OCSP_RESPONSE_CONTEXT

type PCCERT_SIMPLE_CHAIN = TPCCERT_SIMPLE_CHAIN

type PCCERT_STORE_PROV_FIND_INFO = TPCCERT_STORE_PROV_FIND_INFO

type PCCERT_STRONG_SIGN_PARA = TPCCERT_STRONG_SIGN_PARA

type PCCH = TPCCH

type PCCOMPATIBILITY_CONTEXT_ELEMENT = TPCCOMPATIBILITY_CONTEXT_ELEMENT

type PCCRL_CONTEXT = TPCCRL_CONTEXT

type PCCRYPT_OID_INFO = TPCCRYPT_OID_INFO

type PCCTL_CONTEXT = TPCCTL_CONTEXT

type PCCTL_USAGE = TPCCTL_USAGE

type PCERT_ACCESS_DESCRIPTION = TPCERT_ACCESS_DESCRIPTION

type PCERT_ALT_NAME_ENTRY = TPCERT_ALT_NAME_ENTRY

type PCERT_ALT_NAME_INFO = TPCERT_ALT_NAME_INFO

type PCERT_AUTHORITY_INFO_ACCESS = TPCERT_AUTHORITY_INFO_ACCESS

type PCERT_AUTHORITY_KEY_ID2_INFO = TPCERT_AUTHORITY_KEY_ID2_INFO

type PCERT_AUTHORITY_KEY_ID_INFO = TPCERT_AUTHORITY_KEY_ID_INFO

type PCERT_BASIC_CONSTRAINTS2_INFO = TPCERT_BASIC_CONSTRAINTS2_INFO

type PCERT_BASIC_CONSTRAINTS_INFO = TPCERT_BASIC_CONSTRAINTS_INFO

type PCERT_BIOMETRIC_DATA = TPCERT_BIOMETRIC_DATA

type PCERT_BIOMETRIC_EXT_INFO = TPCERT_BIOMETRIC_EXT_INFO

type PCERT_BLOB = TPCERT_BLOB

type PCERT_CHAIN = TPCERT_CHAIN

type PCERT_CHAIN_CONTEXT = TPCERT_CHAIN_CONTEXT

type PCERT_CHAIN_ELEMENT = TPCERT_CHAIN_ELEMENT

type PCERT_CHAIN_ENGINE_CONFIG = TPCERT_CHAIN_ENGINE_CONFIG

type PCERT_CHAIN_FIND_BY_ISSUER_PARA = TPCERT_CHAIN_FIND_BY_ISSUER_PARA

type PCERT_CHAIN_FIND_ISSUER_PARA = TPCERT_CHAIN_FIND_ISSUER_PARA

type PCERT_CHAIN_PARA = TPCERT_CHAIN_PARA

type PCERT_CHAIN_POLICY_PARA = TPCERT_CHAIN_POLICY_PARA

type PCERT_CHAIN_POLICY_STATUS = TPCERT_CHAIN_POLICY_STATUS

type PCERT_CONTEXT = TPCERT_CONTEXT

type PCERT_CREATE_CONTEXT_PARA = TPCERT_CREATE_CONTEXT_PARA

type PCERT_CRL_CONTEXT_PAIR = TPCERT_CRL_CONTEXT_PAIR

type PCERT_DH_PARAMETERS = TPCERT_DH_PARAMETERS

type PCERT_DSS_PARAMETERS = TPCERT_DSS_PARAMETERS

type PCERT_ECC_SIGNATURE = TPCERT_ECC_SIGNATURE

type PCERT_ENHKEY_USAGE = TPCERT_ENHKEY_USAGE

type PCERT_EXTENSION = TPCERT_EXTENSION

type PCERT_EXTENSIONS = TPCERT_EXTENSIONS

type PCERT_GENERAL_SUBTREE = TPCERT_GENERAL_SUBTREE

type PCERT_HASHED_URL = TPCERT_HASHED_URL

type PCERT_ID = TPCERT_ID

type PCERT_INFO = TPCERT_INFO

type PCERT_ISSUER_SERIAL_NUMBER = TPCERT_ISSUER_SERIAL_NUMBER

type PCERT_KEYGEN_REQUEST_INFO = TPCERT_KEYGEN_REQUEST_INFO

type PCERT_KEY_ATTRIBUTES_INFO = TPCERT_KEY_ATTRIBUTES_INFO

type PCERT_KEY_CONTEXT = TPCERT_KEY_CONTEXT

type PCERT_KEY_USAGE_RESTRICTION_INFO = TPCERT_KEY_USAGE_RESTRICTION_INFO

type PCERT_LDAP_STORE_OPENED_PARA = TPCERT_LDAP_STORE_OPENED_PARA

type PCERT_LOGOTYPE_AUDIO = TPCERT_LOGOTYPE_AUDIO

type PCERT_LOGOTYPE_AUDIO_INFO = TPCERT_LOGOTYPE_AUDIO_INFO

type PCERT_LOGOTYPE_DATA = TPCERT_LOGOTYPE_DATA

type PCERT_LOGOTYPE_DETAILS = TPCERT_LOGOTYPE_DETAILS

type PCERT_LOGOTYPE_EXT_INFO = TPCERT_LOGOTYPE_EXT_INFO

type PCERT_LOGOTYPE_IMAGE = TPCERT_LOGOTYPE_IMAGE

type PCERT_LOGOTYPE_IMAGE_INFO = TPCERT_LOGOTYPE_IMAGE_INFO

type PCERT_LOGOTYPE_INFO = TPCERT_LOGOTYPE_INFO

type PCERT_LOGOTYPE_REFERENCE = TPCERT_LOGOTYPE_REFERENCE

type PCERT_NAME_BLOB = TPCERT_NAME_BLOB

type PCERT_NAME_CONSTRAINTS_INFO = TPCERT_NAME_CONSTRAINTS_INFO

type PCERT_NAME_INFO = TPCERT_NAME_INFO

type PCERT_NAME_VALUE = TPCERT_NAME_VALUE

type PCERT_OR_CRL_BLOB = TPCERT_OR_CRL_BLOB

type PCERT_OR_CRL_BUNDLE = TPCERT_OR_CRL_BUNDLE

type PCERT_OTHER_LOGOTYPE_INFO = TPCERT_OTHER_LOGOTYPE_INFO

type PCERT_OTHER_NAME = TPCERT_OTHER_NAME

type PCERT_PAIR = TPCERT_PAIR

type PCERT_PHYSICAL_STORE_INFO = TPCERT_PHYSICAL_STORE_INFO

type PCERT_POLICIES_INFO = TPCERT_POLICIES_INFO

type PCERT_POLICY95_QUALIFIER1 = TPCERT_POLICY95_QUALIFIER1

type PCERT_POLICY_CONSTRAINTS_INFO = TPCERT_POLICY_CONSTRAINTS_INFO

type PCERT_POLICY_ID = TPCERT_POLICY_ID

type PCERT_POLICY_INFO = TPCERT_POLICY_INFO

type PCERT_POLICY_MAPPING = TPCERT_POLICY_MAPPING

type PCERT_POLICY_MAPPINGS_INFO = TPCERT_POLICY_MAPPINGS_INFO

type PCERT_POLICY_QUALIFIER_INFO = TPCERT_POLICY_QUALIFIER_INFO

type PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE = TPCERT_POLICY_QUALIFIER_NOTICE_REFERENCE

type PCERT_POLICY_QUALIFIER_USER_NOTICE = TPCERT_POLICY_QUALIFIER_USER_NOTICE

type PCERT_PRIVATE_KEY_VALIDITY = TPCERT_PRIVATE_KEY_VALIDITY

type PCERT_PUBLIC_KEY_INFO = TPCERT_PUBLIC_KEY_INFO

type PCERT_QC_STATEMENT = TPCERT_QC_STATEMENT

type PCERT_QC_STATEMENTS_EXT_INFO = TPCERT_QC_STATEMENTS_EXT_INFO

type PCERT_RDN = TPCERT_RDN

type PCERT_RDN_ATTR = TPCERT_RDN_ATTR

type PCERT_RDN_VALUE_BLOB = TPCERT_RDN_VALUE_BLOB

type PCERT_REGISTRY_STORE_CLIENT_GPT_PARA = TPCERT_REGISTRY_STORE_CLIENT_GPT_PARA

type PCERT_REGISTRY_STORE_ROAMING_PARA = TPCERT_REGISTRY_STORE_ROAMING_PARA

type PCERT_REQUEST_INFO = TPCERT_REQUEST_INFO

type PCERT_REVOCATION_CHAIN_PARA = TPCERT_REVOCATION_CHAIN_PARA

type PCERT_REVOCATION_CRL_INFO = TPCERT_REVOCATION_CRL_INFO

type PCERT_REVOCATION_INFO = TPCERT_REVOCATION_INFO

type PCERT_REVOCATION_PARA = TPCERT_REVOCATION_PARA

type PCERT_REVOCATION_STATUS = TPCERT_REVOCATION_STATUS

type PCERT_SELECT_CHAIN_PARA = TPCERT_SELECT_CHAIN_PARA

type PCERT_SELECT_CRITERIA = TPCERT_SELECT_CRITERIA

type PCERT_SERVER_OCSP_RESPONSE_CONTEXT = TPCERT_SERVER_OCSP_RESPONSE_CONTEXT

type PCERT_SERVER_OCSP_RESPONSE_OPEN_PARA = TPCERT_SERVER_OCSP_RESPONSE_OPEN_PARA

type PCERT_SIGNED_CONTENT_INFO = TPCERT_SIGNED_CONTENT_INFO

type PCERT_SIMPLE_CHAIN = TPCERT_SIMPLE_CHAIN

type PCERT_STORE_PROV_FIND_INFO = TPCERT_STORE_PROV_FIND_INFO

type PCERT_STORE_PROV_INFO = TPCERT_STORE_PROV_INFO

type PCERT_STRONG_SIGN_PARA = TPCERT_STRONG_SIGN_PARA

type PCERT_STRONG_SIGN_SERIALIZED_INFO = TPCERT_STRONG_SIGN_SERIALIZED_INFO

type PCERT_SUBJECT_INFO_ACCESS = TPCERT_SUBJECT_INFO_ACCESS

type PCERT_SUPPORTED_ALGORITHM_INFO = TPCERT_SUPPORTED_ALGORITHM_INFO

type PCERT_SYSTEM_STORE_INFO = TPCERT_SYSTEM_STORE_INFO

type PCERT_SYSTEM_STORE_RELOCATE_PARA = TPCERT_SYSTEM_STORE_RELOCATE_PARA

type PCERT_TEMPLATE_EXT = TPCERT_TEMPLATE_EXT

type PCERT_TPM_SPECIFICATION_INFO = TPCERT_TPM_SPECIFICATION_INFO

type PCERT_TRUST_LIST_INFO = TPCERT_TRUST_LIST_INFO

type PCERT_TRUST_STATUS = TPCERT_TRUST_STATUS

type PCERT_USAGE_MATCH = TPCERT_USAGE_MATCH

type PCERT_X942_DH_PARAMETERS = TPCERT_X942_DH_PARAMETERS

type PCERT_X942_DH_VALIDATION_PARAMS = TPCERT_X942_DH_VALIDATION_PARAMS

type PCFG_CALL_TARGET_INFO = TPCFG_CALL_TARGET_INFO

type PCGESTUREINFO = TPCGESTUREINFO

type PCH = TPCH

type PCHANGEFILTERSTRUCT = TPCHANGEFILTERSTRUCT

type PCHANGER_DEVICE_PROBLEM_TYPE = TPCHANGER_DEVICE_PROBLEM_TYPE

type PCHANGER_ELEMENT = TPCHANGER_ELEMENT

type PCHANGER_ELEMENT_LIST = TPCHANGER_ELEMENT_LIST

type PCHANGER_ELEMENT_STATUS = TPCHANGER_ELEMENT_STATUS

type PCHANGER_ELEMENT_STATUS_EX = TPCHANGER_ELEMENT_STATUS_EX

type PCHANGER_EXCHANGE_MEDIUM = TPCHANGER_EXCHANGE_MEDIUM

type PCHANGER_INITIALIZE_ELEMENT_STATUS = TPCHANGER_INITIALIZE_ELEMENT_STATUS

type PCHANGER_MOVE_MEDIUM = TPCHANGER_MOVE_MEDIUM

type PCHANGER_PRODUCT_DATA = TPCHANGER_PRODUCT_DATA

type PCHANGER_READ_ELEMENT_STATUS = TPCHANGER_READ_ELEMENT_STATUS

type PCHANGER_SEND_VOLUME_TAG_INFORMATION = TPCHANGER_SEND_VOLUME_TAG_INFORMATION

type PCHANGER_SET_ACCESS = TPCHANGER_SET_ACCESS

type PCHANGER_SET_POSITION = TPCHANGER_SET_POSITION

type PCHAR = TPCHAR

type PCHARSETINFO = TPCHARSETINFO

type PCHAR_INFO = TPCHAR_INFO

type PCIMAGE_DELAYLOAD_DESCRIPTOR = TPCIMAGE_DELAYLOAD_DESCRIPTOR

type PCLAIMS_BLOB = TPCLAIMS_BLOB

type PCLAIM_SECURITY_ATTRIBUTES_INFORMATION = TPCLAIM_SECURITY_ATTRIBUTES_INFORMATION

type PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = TPCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE

type PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = TPCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE

type PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = TPCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1

type PCLAIM_SECURITY_ATTRIBUTE_V1 = TPCLAIM_SECURITY_ATTRIBUTE_V1

type PCLASS_MEDIA_CHANGE_CONTEXT = TPCLASS_MEDIA_CHANGE_CONTEXT

const PCLEANUI = 2214592512

type PCMC_ADD_ATTRIBUTES_INFO = TPCMC_ADD_ATTRIBUTES_INFO

type PCMC_ADD_EXTENSIONS_INFO = TPCMC_ADD_EXTENSIONS_INFO

type PCMC_DATA_INFO = TPCMC_DATA_INFO

type PCMC_PEND_INFO = TPCMC_PEND_INFO

type PCMC_RESPONSE_INFO = TPCMC_RESPONSE_INFO

type PCMC_STATUS_INFO = TPCMC_STATUS_INFO

type PCMC_TAGGED_ATTRIBUTE = TPCMC_TAGGED_ATTRIBUTE

type PCMC_TAGGED_CERT_REQUEST = TPCMC_TAGGED_CERT_REQUEST

type PCMC_TAGGED_CONTENT_INFO = TPCMC_TAGGED_CONTENT_INFO

type PCMC_TAGGED_OTHER_MSG = TPCMC_TAGGED_OTHER_MSG

type PCMC_TAGGED_REQUEST = TPCMC_TAGGED_REQUEST

type PCMSG_ATTR = TPCMSG_ATTR

type PCMSG_CMS_RECIPIENT_INFO = TPCMSG_CMS_RECIPIENT_INFO

type PCMSG_CMS_SIGNER_INFO = TPCMSG_CMS_SIGNER_INFO

type PCMSG_CNG_CONTENT_DECRYPT_INFO = TPCMSG_CNG_CONTENT_DECRYPT_INFO

type PCMSG_CONTENT_ENCRYPT_INFO = TPCMSG_CONTENT_ENCRYPT_INFO

type PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = TPCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA

type PCMSG_CTRL_DECRYPT_PARA = TPCMSG_CTRL_DECRYPT_PARA

type PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = TPCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA

type PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA = TPCMSG_CTRL_KEY_AGREE_DECRYPT_PARA

type PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA = TPCMSG_CTRL_KEY_TRANS_DECRYPT_PARA

type PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA = TPCMSG_CTRL_MAIL_LIST_DECRYPT_PARA

type PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = TPCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA

type PCMSG_ENCRYPTED_ENCODE_INFO = TPCMSG_ENCRYPTED_ENCODE_INFO

type PCMSG_ENVELOPED_ENCODE_INFO = TPCMSG_ENVELOPED_ENCODE_INFO

type PCMSG_HASHED_ENCODE_INFO = TPCMSG_HASHED_ENCODE_INFO

type PCMSG_KEY_AGREE_ENCRYPT_INFO = TPCMSG_KEY_AGREE_ENCRYPT_INFO

type PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO = TPCMSG_KEY_AGREE_KEY_ENCRYPT_INFO

type PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = TPCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO

type PCMSG_KEY_AGREE_RECIPIENT_INFO = TPCMSG_KEY_AGREE_RECIPIENT_INFO

type PCMSG_KEY_TRANS_ENCRYPT_INFO = TPCMSG_KEY_TRANS_ENCRYPT_INFO

type PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = TPCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO

type PCMSG_KEY_TRANS_RECIPIENT_INFO = TPCMSG_KEY_TRANS_RECIPIENT_INFO

type PCMSG_MAIL_LIST_ENCRYPT_INFO = TPCMSG_MAIL_LIST_ENCRYPT_INFO

type PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = TPCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO

type PCMSG_MAIL_LIST_RECIPIENT_INFO = TPCMSG_MAIL_LIST_RECIPIENT_INFO

type PCMSG_RC2_AUX_INFO = TPCMSG_RC2_AUX_INFO

type PCMSG_RC4_AUX_INFO = TPCMSG_RC4_AUX_INFO

type PCMSG_RECIPIENT_ENCODE_INFO = TPCMSG_RECIPIENT_ENCODE_INFO

type PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = TPCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

type PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO = TPCMSG_RECIPIENT_ENCRYPTED_KEY_INFO

type PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = TPCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO

type PCMSG_SIGNED_ENCODE_INFO = TPCMSG_SIGNED_ENCODE_INFO

type PCMSG_SIGNER_ENCODE_INFO = TPCMSG_SIGNER_ENCODE_INFO

type PCMSG_SIGNER_INFO = TPCMSG_SIGNER_INFO

type PCMSG_SP3_COMPATIBLE_AUX_INFO = TPCMSG_SP3_COMPATIBLE_AUX_INFO

type PCMSG_STREAM_INFO = TPCMSG_STREAM_INFO

type PCMS_DH_KEY_INFO = TPCMS_DH_KEY_INFO

type PCMS_KEY_INFO = TPCMS_KEY_INFO

type PCMWAVEFORMAT = TPCMWAVEFORMAT

type PCM_POWER_DATA = TPCM_POWER_DATA

type PCNZCH = TPCNZCH

type PCNZTCH = TPCNZTCH

type PCNZWCH = TPCNZWCH

type PCOLORADJUSTMENT = TPCOLORADJUSTMENT

type PCOMBOBOXINFO = TPCOMBOBOXINFO

type PCOMPACT_VIRTUAL_DISK_PARAMETERS = TPCOMPACT_VIRTUAL_DISK_PARAMETERS

type PCOMPAREITEMSTRUCT = TPCOMPAREITEMSTRUCT

type PCOMPARTMENT_ID = TPCOMPARTMENT_ID

type PCOMPATIBILITY_CONTEXT_ELEMENT = TPCOMPATIBILITY_CONTEXT_ELEMENT

type PCOMPONENT_FILTER = TPCOMPONENT_FILTER

type PCOMPOSITIONFORM = TPCOMPOSITIONFORM

type PCONDITION_VARIABLE = TPCONDITION_VARIABLE

type PCONSOLE_CURSOR_INFO = TPCONSOLE_CURSOR_INFO

type PCONSOLE_FONT_INFO = TPCONSOLE_FONT_INFO

type PCONSOLE_FONT_INFOEX = TPCONSOLE_FONT_INFOEX

type PCONSOLE_HISTORY_INFO = TPCONSOLE_HISTORY_INFO

type PCONSOLE_READCONSOLE_CONTROL = TPCONSOLE_READCONSOLE_CONTROL

type PCONSOLE_SCREEN_BUFFER_INFO = TPCONSOLE_SCREEN_BUFFER_INFO

type PCONSOLE_SCREEN_BUFFER_INFOEX = TPCONSOLE_SCREEN_BUFFER_INFOEX

type PCONSOLE_SELECTION_INFO = TPCONSOLE_SELECTION_INFO

type PCONTEXT = TPCONTEXT

type PCONVCONTEXT = TPCONVCONTEXT

type PCONVINFO = TPCONVINFO

type PCOORD = TPCOORD

type PCOPYDATASTRUCT = TPCOPYDATASTRUCT

type PCOPYFILE2_PROGRESS_ROUTINE = TPCOPYFILE2_PROGRESS_ROUTINE

type PCORE_PRINTER_DRIVER = TPCORE_PRINTER_DRIVER

type PCORE_PRINTER_DRIVERA = TPCORE_PRINTER_DRIVERA

type PCORE_PRINTER_DRIVERW = TPCORE_PRINTER_DRIVERW

type PCPS_URLS = TPCPS_URLS

type PCRAWINPUTDEVICE = TPCRAWINPUTDEVICE

type PCREATEFILE2_EXTENDED_PARAMETERS = TPCREATEFILE2_EXTENDED_PARAMETERS

type PCREATE_DISK = TPCREATE_DISK

type PCREATE_DISK_GPT = TPCREATE_DISK_GPT

type PCREATE_DISK_MBR = TPCREATE_DISK_MBR

type PCREATE_USN_JOURNAL_DATA = TPCREATE_USN_JOURNAL_DATA

type PCREATE_VIRTUAL_DISK_PARAMETERS = TPCREATE_VIRTUAL_DISK_PARAMETERS

type PCREDIRECTION_DESCRIPTOR = TPCREDIRECTION_DESCRIPTOR

type PCREDIRECTION_FUNCTION_DESCRIPTOR = TPCREDIRECTION_FUNCTION_DESCRIPTOR

type PCRITICAL_SECTION = TPCRITICAL_SECTION

type PCRITICAL_SECTION_DEBUG = TPCRITICAL_SECTION_DEBUG

type PCRL_BLOB = TPCRL_BLOB

type PCRL_CONTEXT = TPCRL_CONTEXT

type PCRL_DIST_POINT = TPCRL_DIST_POINT

type PCRL_DIST_POINTS_INFO = TPCRL_DIST_POINTS_INFO

type PCRL_DIST_POINT_NAME = TPCRL_DIST_POINT_NAME

type PCRL_ENTRY = TPCRL_ENTRY

type PCRL_FIND_ISSUED_FOR_PARA = TPCRL_FIND_ISSUED_FOR_PARA

type PCRL_INFO = TPCRL_INFO

type PCRL_ISSUING_DIST_POINT = TPCRL_ISSUING_DIST_POINT

type PCRL_REVOCATION_INFO = TPCRL_REVOCATION_INFO

type PCRM_PROTOCOL_ID = TPCRM_PROTOCOL_ID

type PCROSS_CERT_DIST_POINTS_INFO = TPCROSS_CERT_DIST_POINTS_INFO

type PCRYPTNET_URL_CACHE_FLUSH_INFO = TPCRYPTNET_URL_CACHE_FLUSH_INFO

type PCRYPTNET_URL_CACHE_PRE_FETCH_INFO = TPCRYPTNET_URL_CACHE_PRE_FETCH_INFO

type PCRYPTNET_URL_CACHE_RESPONSE_INFO = TPCRYPTNET_URL_CACHE_RESPONSE_INFO

type PCRYPTPROTECT_PROMPTSTRUCT = TPCRYPTPROTECT_PROMPTSTRUCT

type PCRYPT_3DES_KEY_STATE = TPCRYPT_3DES_KEY_STATE

type PCRYPT_AES_128_KEY_STATE = TPCRYPT_AES_128_KEY_STATE

type PCRYPT_AES_256_KEY_STATE = TPCRYPT_AES_256_KEY_STATE

type PCRYPT_ALGORITHM_IDENTIFIER = TPCRYPT_ALGORITHM_IDENTIFIER

type PCRYPT_ASYNC_RETRIEVAL_COMPLETION = TPCRYPT_ASYNC_RETRIEVAL_COMPLETION

type PCRYPT_ATTRIBUTE = TPCRYPT_ATTRIBUTE

type PCRYPT_ATTRIBUTES = TPCRYPT_ATTRIBUTES

type PCRYPT_ATTRIBUTE_TYPE_VALUE = TPCRYPT_ATTRIBUTE_TYPE_VALUE

type PCRYPT_ATTR_BLOB = TPCRYPT_ATTR_BLOB

type PCRYPT_BIT_BLOB = TPCRYPT_BIT_BLOB

type PCRYPT_BLOB_ARRAY = TPCRYPT_BLOB_ARRAY

type PCRYPT_CONTENT_INFO = TPCRYPT_CONTENT_INFO

type PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = TPCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY

type PCRYPT_CONTEXTS = TPCRYPT_CONTEXTS

type PCRYPT_CONTEXT_CONFIG = TPCRYPT_CONTEXT_CONFIG

type PCRYPT_CONTEXT_FUNCTIONS = TPCRYPT_CONTEXT_FUNCTIONS

type PCRYPT_CONTEXT_FUNCTION_CONFIG = TPCRYPT_CONTEXT_FUNCTION_CONFIG

type PCRYPT_CONTEXT_FUNCTION_PROVIDERS = TPCRYPT_CONTEXT_FUNCTION_PROVIDERS

type PCRYPT_CREDENTIALS = TPCRYPT_CREDENTIALS

type PCRYPT_CSP_PROVIDER = TPCRYPT_CSP_PROVIDER

type PCRYPT_DATA_BLOB = TPCRYPT_DATA_BLOB

type PCRYPT_DECODE_PARA = TPCRYPT_DECODE_PARA

type PCRYPT_DECRYPT_MESSAGE_PARA = TPCRYPT_DECRYPT_MESSAGE_PARA

type PCRYPT_DECRYPT_PRIVATE_KEY_FUNC = TPCRYPT_DECRYPT_PRIVATE_KEY_FUNC

type PCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA = TPCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA

type PCRYPT_DER_BLOB = TPCRYPT_DER_BLOB

type PCRYPT_DES_KEY_STATE = TPCRYPT_DES_KEY_STATE

type PCRYPT_DIGEST_BLOB = TPCRYPT_DIGEST_BLOB

type PCRYPT_ECC_CMS_SHARED_INFO = TPCRYPT_ECC_CMS_SHARED_INFO

type PCRYPT_ECC_PRIVATE_KEY_INFO = TPCRYPT_ECC_PRIVATE_KEY_INFO

type PCRYPT_ENCODE_PARA = TPCRYPT_ENCODE_PARA

type PCRYPT_ENCRYPTED_PRIVATE_KEY_INFO = TPCRYPT_ENCRYPTED_PRIVATE_KEY_INFO

type PCRYPT_ENCRYPT_MESSAGE_PARA = TPCRYPT_ENCRYPT_MESSAGE_PARA

type PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC = TPCRYPT_ENCRYPT_PRIVATE_KEY_FUNC

type PCRYPT_ENROLLMENT_NAME_VALUE_PAIR = TPCRYPT_ENROLLMENT_NAME_VALUE_PAIR

type PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO = TPCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO

type PCRYPT_HASH_BLOB = TPCRYPT_HASH_BLOB

type PCRYPT_HASH_INFO = TPCRYPT_HASH_INFO

type PCRYPT_HASH_MESSAGE_PARA = TPCRYPT_HASH_MESSAGE_PARA

type PCRYPT_IMAGE_REF = TPCRYPT_IMAGE_REF

type PCRYPT_IMAGE_REG = TPCRYPT_IMAGE_REG

type PCRYPT_INTEGER_BLOB = TPCRYPT_INTEGER_BLOB

type PCRYPT_INTERFACE_REG = TPCRYPT_INTERFACE_REG

type PCRYPT_KEY_PROV_INFO = TPCRYPT_KEY_PROV_INFO

type PCRYPT_KEY_PROV_PARAM = TPCRYPT_KEY_PROV_PARAM

type PCRYPT_KEY_SIGN_MESSAGE_PARA = TPCRYPT_KEY_SIGN_MESSAGE_PARA

type PCRYPT_KEY_VERIFY_MESSAGE_PARA = TPCRYPT_KEY_VERIFY_MESSAGE_PARA

type PCRYPT_MASK_GEN_ALGORITHM = TPCRYPT_MASK_GEN_ALGORITHM

type PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE = TPCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE

type PCRYPT_OBJID_BLOB = TPCRYPT_OBJID_BLOB

type PCRYPT_OBJID_TABLE = TPCRYPT_OBJID_TABLE

type PCRYPT_OID_FUNC_ENTRY = TPCRYPT_OID_FUNC_ENTRY

type PCRYPT_OID_INFO = TPCRYPT_OID_INFO

type PCRYPT_PASSWORD_CREDENTIALS = TPCRYPT_PASSWORD_CREDENTIALS

type PCRYPT_PASSWORD_CREDENTIALSA = TPCRYPT_PASSWORD_CREDENTIALSA

type PCRYPT_PASSWORD_CREDENTIALSW = TPCRYPT_PASSWORD_CREDENTIALSW

type PCRYPT_PKCS8_EXPORT_PARAMS = TPCRYPT_PKCS8_EXPORT_PARAMS

type PCRYPT_PKCS8_IMPORT_PARAMS = TPCRYPT_PKCS8_IMPORT_PARAMS

type PCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS = TPCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS

type PCRYPT_PRIVATE_KEY_INFO = TPCRYPT_PRIVATE_KEY_INFO

type PCRYPT_PROPERTY_REF = TPCRYPT_PROPERTY_REF

type PCRYPT_PROVIDERS = TPCRYPT_PROVIDERS

type PCRYPT_PROVIDER_REF = TPCRYPT_PROVIDER_REF

type PCRYPT_PROVIDER_REFS = TPCRYPT_PROVIDER_REFS

type PCRYPT_PROVIDER_REG = TPCRYPT_PROVIDER_REG

type PCRYPT_PSOURCE_ALGORITHM = TPCRYPT_PSOURCE_ALGORITHM

type PCRYPT_RC2_CBC_PARAMETERS = TPCRYPT_RC2_CBC_PARAMETERS

type PCRYPT_RC4_KEY_STATE = TPCRYPT_RC4_KEY_STATE

type PCRYPT_RESOLVE_HCRYPTPROV_FUNC = TPCRYPT_RESOLVE_HCRYPTPROV_FUNC

type PCRYPT_RETRIEVE_AUX_INFO = TPCRYPT_RETRIEVE_AUX_INFO

type PCRYPT_RSAES_OAEP_PARAMETERS = TPCRYPT_RSAES_OAEP_PARAMETERS

type PCRYPT_RSA_SSA_PSS_PARAMETERS = TPCRYPT_RSA_SSA_PSS_PARAMETERS

type PCRYPT_SEQUENCE_OF_ANY = TPCRYPT_SEQUENCE_OF_ANY

type PCRYPT_SIGN_MESSAGE_PARA = TPCRYPT_SIGN_MESSAGE_PARA

type PCRYPT_SMART_CARD_ROOT_INFO = TPCRYPT_SMART_CARD_ROOT_INFO

type PCRYPT_SMIME_CAPABILITIES = TPCRYPT_SMIME_CAPABILITIES

type PCRYPT_SMIME_CAPABILITY = TPCRYPT_SMIME_CAPABILITY

type PCRYPT_TIMESTAMP_ACCURACY = TPCRYPT_TIMESTAMP_ACCURACY

type PCRYPT_TIMESTAMP_CONTEXT = TPCRYPT_TIMESTAMP_CONTEXT

type PCRYPT_TIMESTAMP_INFO = TPCRYPT_TIMESTAMP_INFO

type PCRYPT_TIMESTAMP_PARA = TPCRYPT_TIMESTAMP_PARA

type PCRYPT_TIMESTAMP_REQUEST = TPCRYPT_TIMESTAMP_REQUEST

type PCRYPT_TIMESTAMP_RESPONSE = TPCRYPT_TIMESTAMP_RESPONSE

type PCRYPT_TIME_STAMP_REQUEST_INFO = TPCRYPT_TIME_STAMP_REQUEST_INFO

type PCRYPT_UINT_BLOB = TPCRYPT_UINT_BLOB

type PCRYPT_URL_ARRAY = TPCRYPT_URL_ARRAY

type PCRYPT_URL_INFO = TPCRYPT_URL_INFO

type PCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO = TPCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO

type PCRYPT_VERIFY_MESSAGE_PARA = TPCRYPT_VERIFY_MESSAGE_PARA

type PCRYPT_X942_OTHER_INFO = TPCRYPT_X942_OTHER_INFO

type PCSTR = TPCSTR

type PCSV_NAMESPACE_INFO = TPCSV_NAMESPACE_INFO

type PCTCH = TPCTCH

type PCTL_ANY_SUBJECT_INFO = TPCTL_ANY_SUBJECT_INFO

type PCTL_CONTEXT = TPCTL_CONTEXT

type PCTL_ENTRY = TPCTL_ENTRY

type PCTL_FIND_SUBJECT_PARA = TPCTL_FIND_SUBJECT_PARA

type PCTL_FIND_USAGE_PARA = TPCTL_FIND_USAGE_PARA

type PCTL_INFO = TPCTL_INFO

type PCTL_USAGE = TPCTL_USAGE

type PCTL_USAGE_MATCH = TPCTL_USAGE_MATCH

type PCTL_VERIFY_USAGE_PARA = TPCTL_VERIFY_USAGE_PARA

type PCTL_VERIFY_USAGE_STATUS = TPCTL_VERIFY_USAGE_STATUS

type PCTOUCHINPUT = TPCTOUCHINPUT

type PCTSTR = TPCTSTR

type PCUCSCHAR = TPCUCSCHAR

type PCUCSSTR = TPCUCSSTR

type PCUNZTCH = TPCUNZTCH

type PCUNZWCH = TPCUNZWCH

type PCURSORINFO = TPCURSORINFO

type PCUTSTR = TPCUTSTR

type PCUUCSCHAR = TPCUUCSCHAR

type PCUUCSSTR = TPCUUCSSTR

type PCUWCHAR = TPCUWCHAR

type PCUWSTR = TPCUWSTR

type PCUZZTSTR = TPCUZZTSTR

type PCUZZWSTR = TPCUZZWSTR

type PCWCH = TPCWCH

type PCWCHAR = TPCWCHAR

type PCWPRETSTRUCT = TPCWPRETSTRUCT

type PCWPSTRUCT = TPCWPSTRUCT

type PCWSTR = TPCWSTR

type PCZPSTR = TPCZPSTR

type PCZPWSTR = TPCZPWSTR

type PCZZSTR = TPCZZSTR

type PCZZTSTR = TPCZZTSTR

type PCZZWSTR = TPCZZWSTR

const PC_EXPLICIT = 2

const PC_INTERIORS = 128

const PC_NOCOLLAPSE = 4

const PC_NONE = 0

const PC_PATHS = 512

const PC_POLYGON = 1

const PC_POLYPOLYGON = 256

const PC_RECTANGLE = 2

const PC_RESERVED = 1

const PC_SCANLINE = 8

const PC_STYLED = 32

const PC_TRAPEZOID = 4

const PC_WIDE = 16

const PC_WIDESTYLED = 64

const PC_WINDPOLYGON = 4

type PDATATYPES_INFO_1 = TPDATATYPES_INFO_1

type PDATATYPES_INFO_1A = TPDATATYPES_INFO_1A

type PDATATYPES_INFO_1W = TPDATATYPES_INFO_1W

type PDATA_BLOB = TPDATA_BLOB

const PDCAP_D0_SUPPORTED = 1

const PDCAP_D1_SUPPORTED = 2

const PDCAP_D2_SUPPORTED = 4

const PDCAP_D3_SUPPORTED = 8

const PDCAP_WAKE_FROM_D0_SUPPORTED = 16

const PDCAP_WAKE_FROM_D1_SUPPORTED = 32

const PDCAP_WAKE_FROM_D2_SUPPORTED = 64

const PDCAP_WAKE_FROM_D3_SUPPORTED = 128

const PDCAP_WARM_EJECT_SUPPORTED = 256

const PDC_ARRIVAL = 1

const PDC_MAPPING_CHANGE = 256

const PDC_MODE_ASPECTRATIOPRESERVED = 2048

const PDC_MODE_CENTERED = 128

const PDC_MODE_DEFAULT = 64

const PDC_ORIENTATION_0 = 4

const PDC_ORIENTATION_180 = 16

const PDC_ORIENTATION_270 = 32

const PDC_ORIENTATION_90 = 8

const PDC_ORIGIN = 1024

const PDC_REMOVAL = 2

const PDC_RESOLUTION = 512

type PDDEML_MSG_HOOK_DATA = TPDDEML_MSG_HOOK_DATA

type PDEBUGHOOKINFO = TPDEBUGHOOKINFO

type PDECRYPTION_STATUS_BUFFER = TPDECRYPTION_STATUS_BUFFER

type PDELETEITEMSTRUCT = TPDELETEITEMSTRUCT

type PDELETE_SNAPSHOT_VHDSET_FLAG = TPDELETE_SNAPSHOT_VHDSET_FLAG

type PDELETE_SNAPSHOT_VHDSET_PARAMETERS = TPDELETE_SNAPSHOT_VHDSET_PARAMETERS

type PDELETE_SNAPSHOT_VHDSET_VERSION = TPDELETE_SNAPSHOT_VHDSET_VERSION

type PDELETE_USN_JOURNAL_DATA = TPDELETE_USN_JOURNAL_DATA

const PDERR_CREATEICFAILURE = 4106

const PDERR_DEFAULTDIFFERENT = 4108

const PDERR_DNDMMISMATCH = 4105

const PDERR_GETDEVMODEFAIL = 4101

const PDERR_INITFAILURE = 4102

const PDERR_LOADDRVFAILURE = 4100

const PDERR_NODEFAULTPRN = 4104

const PDERR_NODEVICES = 4103

const PDERR_PARSEFAILURE = 4098

const PDERR_PRINTERCODES = 4096

const PDERR_PRINTERNOTFOUND = 4107

const PDERR_RETDEFFAILURE = 4099

const PDERR_SETUPFAILURE = 4097

type PDESIGNVECTOR = TPDESIGNVECTOR

const PDEVICESIZE = 26

type PDEVICE_COPY_OFFLOAD_DESCRIPTOR = TPDEVICE_COPY_OFFLOAD_DESCRIPTOR

type PDEVICE_DATA_SET_RANGE = TPDEVICE_DATA_SET_RANGE

type PDEVICE_DSM_NOTIFICATION_PARAMETERS = TPDEVICE_DSM_NOTIFICATION_PARAMETERS

type PDEVICE_LB_PROVISIONING_DESCRIPTOR = TPDEVICE_LB_PROVISIONING_DESCRIPTOR

type PDEVICE_MANAGE_DATA_SET_ATTRIBUTES = TPDEVICE_MANAGE_DATA_SET_ATTRIBUTES

type PDEVICE_MEDIA_INFO = TPDEVICE_MEDIA_INFO

type PDEVICE_POWER_DESCRIPTOR = TPDEVICE_POWER_DESCRIPTOR

type PDEVICE_POWER_STATE = TPDEVICE_POWER_STATE

type PDEVICE_SEEK_PENALTY_DESCRIPTOR = TPDEVICE_SEEK_PENALTY_DESCRIPTOR

type PDEVICE_TRIM_DESCRIPTOR = TPDEVICE_TRIM_DESCRIPTOR

type PDEVICE_WRITE_AGGREGATION_DESCRIPTOR = TPDEVICE_WRITE_AGGREGATION_DESCRIPTOR

type PDEVMODE = TPDEVMODE

type PDEVMODEA = TPDEVMODEA

type PDEVMODEW = TPDEVMODEW

type PDIBSECTION = TPDIBSECTION

const PDIRTYUI = 2281701376

type PDISK_CACHE_INFORMATION = TPDISK_CACHE_INFORMATION

type PDISK_CONTROLLER_NUMBER = TPDISK_CONTROLLER_NUMBER

type PDISK_DETECTION_INFO = TPDISK_DETECTION_INFO

type PDISK_EXTENT = TPDISK_EXTENT

type PDISK_EX_INT13_INFO = TPDISK_EX_INT13_INFO

type PDISK_GEOMETRY = TPDISK_GEOMETRY

type PDISK_GEOMETRY_EX = TPDISK_GEOMETRY_EX

type PDISK_GROW_PARTITION = TPDISK_GROW_PARTITION

type PDISK_HISTOGRAM = TPDISK_HISTOGRAM

type PDISK_INT13_INFO = TPDISK_INT13_INFO

type PDISK_LOGGING = TPDISK_LOGGING

type PDISK_PARTITION_INFO = TPDISK_PARTITION_INFO

type PDISK_PERFORMANCE = TPDISK_PERFORMANCE

type PDISK_RECORD = TPDISK_RECORD

type PDISPLAY_DEVICE = TPDISPLAY_DEVICE

type PDISPLAY_DEVICEA = TPDISPLAY_DEVICEA

type PDISPLAY_DEVICEW = TPDISPLAY_DEVICEW

type PDLGITEMTEMPLATE = TPDLGITEMTEMPLATE

type PDLGITEMTEMPLATEA = TPDLGITEMTEMPLATEA

type PDLGITEMTEMPLATEW = TPDLGITEMTEMPLATEW

type PDLL_DIRECTORY_COOKIE = TPDLL_DIRECTORY_COOKIE

type PDOC_INFO_1 = TPDOC_INFO_1

type PDOC_INFO_1A = TPDOC_INFO_1A

type PDOC_INFO_1W = TPDOC_INFO_1W

type PDOC_INFO_2 = TPDOC_INFO_2

type PDOC_INFO_2A = TPDOC_INFO_2A

type PDOC_INFO_2W = TPDOC_INFO_2W

type PDOC_INFO_3 = TPDOC_INFO_3

type PDOC_INFO_3A = TPDOC_INFO_3A

type PDOC_INFO_3W = TPDOC_INFO_3W

type PDRAWITEMSTRUCT = TPDRAWITEMSTRUCT

type PDRAWPATRECT = TPDRAWPATRECT

type PDRIVERSTATUS = TPDRIVERSTATUS

type PDRIVER_INFO_1 = TPDRIVER_INFO_1

type PDRIVER_INFO_1A = TPDRIVER_INFO_1A

type PDRIVER_INFO_1W = TPDRIVER_INFO_1W

type PDRIVER_INFO_2 = TPDRIVER_INFO_2

type PDRIVER_INFO_2A = TPDRIVER_INFO_2A

type PDRIVER_INFO_2W = TPDRIVER_INFO_2W

type PDRIVER_INFO_3 = TPDRIVER_INFO_3

type PDRIVER_INFO_3A = TPDRIVER_INFO_3A

type PDRIVER_INFO_3W = TPDRIVER_INFO_3W

type PDRIVER_INFO_4 = TPDRIVER_INFO_4

type PDRIVER_INFO_4A = TPDRIVER_INFO_4A

type PDRIVER_INFO_4W = TPDRIVER_INFO_4W

type PDRIVER_INFO_5 = TPDRIVER_INFO_5

type PDRIVER_INFO_5A = TPDRIVER_INFO_5A

type PDRIVER_INFO_5W = TPDRIVER_INFO_5W

type PDRIVER_INFO_6 = TPDRIVER_INFO_6

type PDRIVER_INFO_6A = TPDRIVER_INFO_6A

type PDRIVER_INFO_6W = TPDRIVER_INFO_6W

type PDRIVER_INFO_8 = TPDRIVER_INFO_8

type PDRIVER_INFO_8A = TPDRIVER_INFO_8A

type PDRIVER_INFO_8W = TPDRIVER_INFO_8W

type PDRIVE_LAYOUT_INFORMATION = TPDRIVE_LAYOUT_INFORMATION

type PDRIVE_LAYOUT_INFORMATION_EX = TPDRIVE_LAYOUT_INFORMATION_EX

type PDRIVE_LAYOUT_INFORMATION_GPT = TPDRIVE_LAYOUT_INFORMATION_GPT

type PDRIVE_LAYOUT_INFORMATION_MBR = TPDRIVE_LAYOUT_INFORMATION_MBR

type PDROPSTRUCT = TPDROPSTRUCT

type PDRVCALLBACK = TPDRVCALLBACK

type PDRVCONFIGINFO = TPDRVCONFIGINFO

type PDRVCONFIGINFOEX = TPDRVCONFIGINFOEX

type PDWORD = TPDWORD

type PDWORD32 = TPDWORD32

type PDWORD64 = TPDWORD64

type PDWORDLONG = TPDWORDLONG

type PDWORD_PTR = TPDWORD_PTR

type PDYNAMIC_TIME_ZONE_INFORMATION = TPDYNAMIC_TIME_ZONE_INFORMATION

const PD_ALLPAGES = 0

const PD_COLLATE = 16

const PD_CURRENTPAGE = 4194304

const PD_DISABLEPRINTTOFILE = 524288

const PD_ENABLEPRINTHOOK = 4096

const PD_ENABLEPRINTTEMPLATE = 16384

const PD_ENABLEPRINTTEMPLATEHANDLE = 65536

const PD_ENABLESETUPHOOK = 8192

const PD_ENABLESETUPTEMPLATE = 32768

const PD_ENABLESETUPTEMPLATEHANDLE = 131072

const PD_EXCLUSIONFLAGS = 16777216

const PD_EXCL_COPIESANDCOLLATE = 33024

const PD_HIDEPRINTTOFILE = 1048576

const PD_NOCURRENTPAGE = 8388608

const PD_NONETWORKBUTTON = 2097152

const PD_NOPAGENUMS = 8

const PD_NOSELECTION = 4

const PD_NOWARNING = 128

const PD_PAGENUMS = 2

const PD_PRINTSETUP = 64

const PD_PRINTTOFILE = 32

const PD_RESULT_APPLY = 2

const PD_RESULT_CANCEL = 0

const PD_RESULT_PRINT = 1

const PD_RETURNDC = 256

const PD_RETURNDEFAULT = 1024

const PD_RETURNIC = 512

const PD_SELECTION = 1

const PD_SHOWHELP = 2048

const PD_USEDEVMODECOPIES = 262144

const PD_USEDEVMODECOPIESANDCOLLATE = 262144

const PD_USELARGETEMPLATE = 268435456

type PEFS_CERTIFICATE_BLOB = TPEFS_CERTIFICATE_BLOB

type PEFS_HASH_BLOB = TPEFS_HASH_BLOB

type PEFS_KEY_INFO = TPEFS_KEY_INFO

type PEFS_RPC_BLOB = TPEFS_RPC_BLOB

type PELARRAY = TPELARRAY

type PELEMENT_TYPE = TPELEMENT_TYPE

type PEMR = TPEMR

type PEMRABORTPATH = TPEMRABORTPATH

type PEMRALPHABLEND = TPEMRALPHABLEND

type PEMRANGLEARC = TPEMRANGLEARC

type PEMRARC = TPEMRARC

type PEMRARCTO = TPEMRARCTO

type PEMRBEGINPATH = TPEMRBEGINPATH

type PEMRBITBLT = TPEMRBITBLT

type PEMRCHORD = TPEMRCHORD

type PEMRCLOSEFIGURE = TPEMRCLOSEFIGURE

type PEMRCOLORCORRECTPALETTE = TPEMRCOLORCORRECTPALETTE

type PEMRCOLORMATCHTOTARGET = TPEMRCOLORMATCHTOTARGET

type PEMRCREATEBRUSHINDIRECT = TPEMRCREATEBRUSHINDIRECT

type PEMRCREATECOLORSPACE = TPEMRCREATECOLORSPACE

type PEMRCREATECOLORSPACEW = TPEMRCREATECOLORSPACEW

type PEMRCREATEDIBPATTERNBRUSHPT = TPEMRCREATEDIBPATTERNBRUSHPT

type PEMRCREATEMONOBRUSH = TPEMRCREATEMONOBRUSH

type PEMRCREATEPALETTE = TPEMRCREATEPALETTE

type PEMRCREATEPEN = TPEMRCREATEPEN

type PEMRDELETECOLORSPACE = TPEMRDELETECOLORSPACE

type PEMRDELETEOBJECT = TPEMRDELETEOBJECT

type PEMRDRAWESCAPE = TPEMRDRAWESCAPE

type PEMRELLIPSE = TPEMRELLIPSE

type PEMRENDPATH = TPEMRENDPATH

type PEMREOF = TPEMREOF

type PEMREXCLUDECLIPRECT = TPEMREXCLUDECLIPRECT

type PEMREXTCREATEFONTINDIRECTW = TPEMREXTCREATEFONTINDIRECTW

type PEMREXTCREATEPEN = TPEMREXTCREATEPEN

type PEMREXTESCAPE = TPEMREXTESCAPE

type PEMREXTFLOODFILL = TPEMREXTFLOODFILL

type PEMREXTSELECTCLIPRGN = TPEMREXTSELECTCLIPRGN

type PEMREXTTEXTOUTA = TPEMREXTTEXTOUTA

type PEMREXTTEXTOUTW = TPEMREXTTEXTOUTW

type PEMRFILLPATH = TPEMRFILLPATH

type PEMRFILLRGN = TPEMRFILLRGN

type PEMRFLATTENPATH = TPEMRFLATTENPATH

type PEMRFORMAT = TPEMRFORMAT

type PEMRFRAMERGN = TPEMRFRAMERGN

type PEMRGDICOMMENT = TPEMRGDICOMMENT

type PEMRGLSBOUNDEDRECORD = TPEMRGLSBOUNDEDRECORD

type PEMRGLSRECORD = TPEMRGLSRECORD

type PEMRGRADIENTFILL = TPEMRGRADIENTFILL

type PEMRINTERSECTCLIPRECT = TPEMRINTERSECTCLIPRECT

type PEMRINVERTRGN = TPEMRINVERTRGN

type PEMRLINETO = TPEMRLINETO

type PEMRMASKBLT = TPEMRMASKBLT

type PEMRMODIFYWORLDTRANSFORM = TPEMRMODIFYWORLDTRANSFORM

type PEMRMOVETOEX = TPEMRMOVETOEX

type PEMRNAMEDESCAPE = TPEMRNAMEDESCAPE

type PEMROFFSETCLIPRGN = TPEMROFFSETCLIPRGN

type PEMRPAINTRGN = TPEMRPAINTRGN

type PEMRPIE = TPEMRPIE

type PEMRPIXELFORMAT = TPEMRPIXELFORMAT

type PEMRPLGBLT = TPEMRPLGBLT

type PEMRPOLYBEZIER = TPEMRPOLYBEZIER

type PEMRPOLYBEZIER16 = TPEMRPOLYBEZIER16

type PEMRPOLYBEZIERTO = TPEMRPOLYBEZIERTO

type PEMRPOLYBEZIERTO16 = TPEMRPOLYBEZIERTO16

type PEMRPOLYDRAW = TPEMRPOLYDRAW

type PEMRPOLYDRAW16 = TPEMRPOLYDRAW16

type PEMRPOLYGON = TPEMRPOLYGON

type PEMRPOLYGON16 = TPEMRPOLYGON16

type PEMRPOLYLINE = TPEMRPOLYLINE

type PEMRPOLYLINE16 = TPEMRPOLYLINE16

type PEMRPOLYLINETO = TPEMRPOLYLINETO

type PEMRPOLYLINETO16 = TPEMRPOLYLINETO16

type PEMRPOLYPOLYGON = TPEMRPOLYPOLYGON

type PEMRPOLYPOLYGON16 = TPEMRPOLYPOLYGON16

type PEMRPOLYPOLYLINE = TPEMRPOLYPOLYLINE

type PEMRPOLYPOLYLINE16 = TPEMRPOLYPOLYLINE16

type PEMRPOLYTEXTOUTA = TPEMRPOLYTEXTOUTA

type PEMRPOLYTEXTOUTW = TPEMRPOLYTEXTOUTW

type PEMRREALIZEPALETTE = TPEMRREALIZEPALETTE

type PEMRRECTANGLE = TPEMRRECTANGLE

type PEMRRESIZEPALETTE = TPEMRRESIZEPALETTE

type PEMRRESTOREDC = TPEMRRESTOREDC

type PEMRROUNDRECT = TPEMRROUNDRECT

type PEMRSAVEDC = TPEMRSAVEDC

type PEMRSCALEVIEWPORTEXTEX = TPEMRSCALEVIEWPORTEXTEX

type PEMRSCALEWINDOWEXTEX = TPEMRSCALEWINDOWEXTEX

type PEMRSELECTCLIPPATH = TPEMRSELECTCLIPPATH

type PEMRSELECTCOLORSPACE = TPEMRSELECTCOLORSPACE

type PEMRSELECTOBJECT = TPEMRSELECTOBJECT

type PEMRSELECTPALETTE = TPEMRSELECTPALETTE

type PEMRSETARCDIRECTION = TPEMRSETARCDIRECTION

type PEMRSETBKCOLOR = TPEMRSETBKCOLOR

type PEMRSETBKMODE = TPEMRSETBKMODE

type PEMRSETBRUSHORGEX = TPEMRSETBRUSHORGEX

type PEMRSETCOLORADJUSTMENT = TPEMRSETCOLORADJUSTMENT

type PEMRSETCOLORSPACE = TPEMRSETCOLORSPACE

type PEMRSETDIBITSTODEVICE = TPEMRSETDIBITSTODEVICE

type PEMRSETICMMODE = TPEMRSETICMMODE

type PEMRSETICMPROFILE = TPEMRSETICMPROFILE

type PEMRSETICMPROFILEA = TPEMRSETICMPROFILEA

type PEMRSETICMPROFILEW = TPEMRSETICMPROFILEW

type PEMRSETLAYOUT = TPEMRSETLAYOUT

type PEMRSETMAPMODE = TPEMRSETMAPMODE

type PEMRSETMAPPERFLAGS = TPEMRSETMAPPERFLAGS

type PEMRSETMETARGN = TPEMRSETMETARGN

type PEMRSETMITERLIMIT = TPEMRSETMITERLIMIT

type PEMRSETPALETTEENTRIES = TPEMRSETPALETTEENTRIES

type PEMRSETPIXELV = TPEMRSETPIXELV

type PEMRSETPOLYFILLMODE = TPEMRSETPOLYFILLMODE

type PEMRSETROP2 = TPEMRSETROP2

type PEMRSETSTRETCHBLTMODE = TPEMRSETSTRETCHBLTMODE

type PEMRSETTEXTALIGN = TPEMRSETTEXTALIGN

type PEMRSETTEXTCOLOR = TPEMRSETTEXTCOLOR

type PEMRSETVIEWPORTEXTEX = TPEMRSETVIEWPORTEXTEX

type PEMRSETVIEWPORTORGEX = TPEMRSETVIEWPORTORGEX

type PEMRSETWINDOWEXTEX = TPEMRSETWINDOWEXTEX

type PEMRSETWINDOWORGEX = TPEMRSETWINDOWORGEX

type PEMRSETWORLDTRANSFORM = TPEMRSETWORLDTRANSFORM

type PEMRSTRETCHBLT = TPEMRSTRETCHBLT

type PEMRSTRETCHDIBITS = TPEMRSTRETCHDIBITS

type PEMRSTROKEANDFILLPATH = TPEMRSTROKEANDFILLPATH

type PEMRSTROKEPATH = TPEMRSTROKEPATH

type PEMRTEXT = TPEMRTEXT

type PEMRTRANSPARENTBLT = TPEMRTRANSPARENTBLT

type PEMRWIDENPATH = TPEMRWIDENPATH

const PENARBITRATIONTYPE_FIS = 2

const PENARBITRATIONTYPE_MAX = 4

const PENARBITRATIONTYPE_NONE = 0

const PENARBITRATIONTYPE_SPT = 3

const PENARBITRATIONTYPE_WIN8 = 1

type PENCLAVE_ROUTINE = TPENCLAVE_ROUTINE

type PENCRYPTED_DATA_INFO = TPENCRYPTED_DATA_INFO

type PENCRYPTION_BUFFER = TPENCRYPTION_BUFFER

type PENCRYPTION_CERTIFICATE = TPENCRYPTION_CERTIFICATE

type PENCRYPTION_CERTIFICATE_HASH = TPENCRYPTION_CERTIFICATE_HASH

type PENCRYPTION_CERTIFICATE_HASH_LIST = TPENCRYPTION_CERTIFICATE_HASH_LIST

type PENCRYPTION_CERTIFICATE_LIST = TPENCRYPTION_CERTIFICATE_LIST

type PENDINGMSG = TPENDINGMSG

type PENDINGTYPE = TPENDINGTYPE

type PENHMETAHEADER = TPENHMETAHEADER

type PENHMETARECORD = TPENHMETARECORD

type PENLISTMENT_BASIC_INFORMATION = TPENLISTMENT_BASIC_INFORMATION

type PENLISTMENT_CRM_INFORMATION = TPENLISTMENT_CRM_INFORMATION

type PENUMLOGFONTEXDV = TPENUMLOGFONTEXDV

type PENUMLOGFONTEXDVA = TPENUMLOGFONTEXDVA

type PENUMLOGFONTEXDVW = TPENUMLOGFONTEXDVW

type PENUMTEXTMETRIC = TPENUMTEXTMETRIC

type PENUMTEXTMETRICA = TPENUMTEXTMETRICA

type PENUMTEXTMETRICW = TPENUMTEXTMETRICW

type PENUMUILANG = TPENUMUILANG

const PENVISUALIZATION_CURSOR = 32

const PENVISUALIZATION_DOUBLETAP = 2

const PENVISUALIZATION_OFF = 0

const PENVISUALIZATION_ON = 35

const PENVISUALIZATION_TAP = 1

type PEN_FLAGS = TPEN_FLAGS

const PEN_FLAG_BARREL = 1

const PEN_FLAG_ERASER = 4

const PEN_FLAG_INVERTED = 2

const PEN_FLAG_NONE = 0

type PEN_MASK = TPEN_MASK

const PEN_MASK_NONE = 0

const PEN_MASK_PRESSURE = 1

const PEN_MASK_ROTATION = 2

const PEN_MASK_TILT_X = 4

const PEN_MASK_TILT_Y = 8

type PERFORMANCE_DATA = TPERFORMANCE_DATA

const PERFORMANCE_DATA_VERSION = 1

const PERFSTATE_POLICY_CHANGE_IDEAL = 0

const PERFSTATE_POLICY_CHANGE_MAX = 2

const PERFSTATE_POLICY_CHANGE_ROCKET = 2

const PERFSTATE_POLICY_CHANGE_SINGLE = 1

const PERF_100NSEC_MULTI_TIMER = 575735040

const PERF_100NSEC_MULTI_TIMER_INV = 592512256

const PERF_100NSEC_TIMER = 542180608

const PERF_100NSEC_TIMER_INV = 558957824

const PERF_AVERAGE_BASE = 1073939458

const PERF_AVERAGE_BULK = 1073874176

const PERF_AVERAGE_TIMER = 805438464

type PERF_BIN = TPERF_BIN

const PERF_COUNTER_100NS_QUEUELEN_TYPE = 5571840

const PERF_COUNTER_BASE = 196608

type PERF_COUNTER_BLOCK = TPERF_COUNTER_BLOCK

const PERF_COUNTER_BULK_COUNT = 272696576

const PERF_COUNTER_COUNTER = 272696320

type PERF_COUNTER_DEFINITION = TPERF_COUNTER_DEFINITION

const PERF_COUNTER_DELTA = 4195328

const PERF_COUNTER_ELAPSED = 262144

const PERF_COUNTER_FRACTION = 131072

const PERF_COUNTER_HISTOGRAM = 393216

const PERF_COUNTER_HISTOGRAM_TYPE = 2147483648

const PERF_COUNTER_LARGE_DELTA = 4195584

const PERF_COUNTER_LARGE_QUEUELEN_TYPE = 4523264

const PERF_COUNTER_LARGE_RAWCOUNT = 65792

const PERF_COUNTER_LARGE_RAWCOUNT_HEX = 256

const PERF_COUNTER_MULTI_BASE = 1107494144

const PERF_COUNTER_MULTI_TIMER = 574686464

const PERF_COUNTER_MULTI_TIMER_INV = 591463680

const PERF_COUNTER_NODATA = 1073742336

const PERF_COUNTER_OBJ_TIME_QUEUELEN_TYPE = 6620416

const PERF_COUNTER_PRECISION = 458752

const PERF_COUNTER_QUEUELEN = 327680

const PERF_COUNTER_QUEUELEN_TYPE = 4523008

const PERF_COUNTER_RATE = 65536

const PERF_COUNTER_RAWCOUNT = 65536

const PERF_COUNTER_RAWCOUNT_HEX = 0

const PERF_COUNTER_TEXT = 2816

const PERF_COUNTER_TIMER = 541132032

const PERF_COUNTER_TIMER_INV = 557909248

const PERF_COUNTER_VALUE = 0

type PERF_DATA_BLOCK = TPERF_DATA_BLOCK

const PERF_DATA_REVISION = 1

const PERF_DATA_VERSION = 1

const PERF_DELTA_BASE = 8388608

const PERF_DELTA_COUNTER = 4194304

const PERF_DETAIL_ADVANCED = 200

const PERF_DETAIL_EXPERT = 300

const PERF_DETAIL_NOVICE = 100

const PERF_DETAIL_WIZARD = 400

const PERF_DISPLAY_NOSHOW = 1073741824

const PERF_DISPLAY_NO_SUFFIX = 0

const PERF_DISPLAY_PERCENT = 536870912

const PERF_DISPLAY_PER_SEC = 268435456

const PERF_DISPLAY_SECONDS = 805306368

const PERF_ELAPSED_TIME = 807666944

type PERF_INSTANCE_DEFINITION = TPERF_INSTANCE_DEFINITION

const PERF_INVERSE_COUNTER = 16777216

const PERF_LARGE_RAW_BASE = 1073939712

const PERF_LARGE_RAW_FRACTION = 537003264

const PERF_MULTI_COUNTER = 33554432

const PERF_NO_INSTANCES = -1

const PERF_NO_UNIQUE_ID = -1

const PERF_NUMBER_DECIMAL = 65536

const PERF_NUMBER_DEC_1000 = 131072

const PERF_NUMBER_HEX = 0

const PERF_OBJECT_TIMER = 2097152

type PERF_OBJECT_TYPE = TPERF_OBJECT_TYPE

const PERF_OBJ_TIME_TIMER = 543229184

const PERF_PRECISION_100NS_TIMER = 542573824

const PERF_PRECISION_OBJECT_TIMER = 543622400

const PERF_PRECISION_SYSTEM_TIMER = 541525248

const PERF_PRECISION_TIMESTAMP = 1073939712

const PERF_RAW_BASE = 1073939459

const PERF_RAW_FRACTION = 537003008

const PERF_SAMPLE_BASE = 1073939457

const PERF_SAMPLE_COUNTER = 4260864

const PERF_SAMPLE_FRACTION = 549585920

const PERF_SIZE_DWORD = 0

const PERF_SIZE_LARGE = 256

const PERF_SIZE_VARIABLE_LEN = 768

const PERF_SIZE_ZERO = 512

const PERF_TEXT_ASCII = 65536

const PERF_TEXT_UNICODE = 0

const PERF_TIMER_100NS = 1048576

const PERF_TIMER_TICK = 0

const PERF_TYPE_COUNTER = 1024

const PERF_TYPE_NUMBER = 0

const PERF_TYPE_TEXT = 2048

const PERF_TYPE_ZERO = 3072

type PERSISTENT_RESERVE_COMMAND = TPERSISTENT_RESERVE_COMMAND

const PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED = 1

type PEVENTLOGRECORD = TPEVENTLOGRECORD

type PEVENTMSG = TPEVENTMSG

type PEVENTMSGMSG = TPEVENTMSGMSG

type PEVENTSFORLOGFILE = TPEVENTSFORLOGFILE

type PEV_EXTRA_CERT_CHAIN_POLICY_PARA = TPEV_EXTRA_CERT_CHAIN_POLICY_PARA

type PEV_EXTRA_CERT_CHAIN_POLICY_STATUS = TPEV_EXTRA_CERT_CHAIN_POLICY_STATUS

type PEXCEPTION_HANDLER = TPEXCEPTION_HANDLER

type PEXCEPTION_POINTERS = TPEXCEPTION_POINTERS

type PEXCEPTION_RECORD = TPEXCEPTION_RECORD

type PEXCEPTION_RECORD32 = TPEXCEPTION_RECORD32

type PEXCEPTION_RECORD64 = TPEXCEPTION_RECORD64

type PEXCEPTION_REGISTRATION = TPEXCEPTION_REGISTRATION

type PEXCEPTION_REGISTRATION_RECORD = TPEXCEPTION_REGISTRATION_RECORD

type PEXCEPTION_ROUTINE = TPEXCEPTION_ROUTINE

type PEXECUTION_STATE = TPEXECUTION_STATE

type PEXFAT_STATISTICS = TPEXFAT_STATISTICS

type PEXPAND_VIRTUAL_DISK_PARAMETERS = TPEXPAND_VIRTUAL_DISK_PARAMETERS

type PEXTENDED_ENCRYPTED_DATA_INFO = TPEXTENDED_ENCRYPTED_DATA_INFO

type PEXTLOGFONT = TPEXTLOGFONT

type PEXTLOGFONTA = TPEXTLOGFONTA

type PEXTLOGFONTW = TPEXTLOGFONTW

type PEXTLOGPEN = TPEXTLOGPEN

type PEXTLOGPEN32 = TPEXTLOGPEN32

type PFAT_STATISTICS = TPFAT_STATISTICS

const PFD_DEPTH_DONTCARE = 536870912

const PFD_DIRECT3D_ACCELERATED = 16384

const PFD_DOUBLEBUFFER = 1

const PFD_DOUBLEBUFFER_DONTCARE = 1073741824

const PFD_DRAW_TO_BITMAP = 8

const PFD_DRAW_TO_WINDOW = 4

const PFD_GENERIC_ACCELERATED = 4096

const PFD_GENERIC_FORMAT = 64

const PFD_MAIN_PLANE = 0

const PFD_NEED_PALETTE = 128

const PFD_NEED_SYSTEM_PALETTE = 256

const PFD_OVERLAY_PLANE = 1

type PFD_SET = TPFD_SET

const PFD_STEREO = 2

const PFD_STEREO_DONTCARE = 2147483648

const PFD_SUPPORT_COMPOSITION = 32768

const PFD_SUPPORT_DIRECTDRAW = 8192

const PFD_SUPPORT_GDI = 16

const PFD_SUPPORT_OPENGL = 32

const PFD_SWAP_COPY = 1024

const PFD_SWAP_EXCHANGE = 512

const PFD_SWAP_LAYER_BUFFERS = 2048

const PFD_TYPE_COLORINDEX = 1

const PFD_TYPE_RGBA = 0

const PFD_UNDERLAY_PLANE = -1

type PFE_EXPORT_FUNC = TPFE_EXPORT_FUNC

type PFE_IMPORT_FUNC = TPFE_IMPORT_FUNC

type PFIBER_CALLOUT_ROUTINE = TPFIBER_CALLOUT_ROUTINE

type PFIBER_START_ROUTINE = TPFIBER_START_ROUTINE

type PFILEMUIINFO = TPFILEMUIINFO

type PFILESYSTEM_STATISTICS = TPFILESYSTEM_STATISTICS

type PFILETIME = TPFILETIME

type PFILE_ALIGNMENT_INFO = TPFILE_ALIGNMENT_INFO

type PFILE_ALLOCATED_RANGE_BUFFER = TPFILE_ALLOCATED_RANGE_BUFFER

type PFILE_ALLOCATION_INFO = TPFILE_ALLOCATION_INFO

type PFILE_ATTRIBUTE_TAG_INFO = TPFILE_ATTRIBUTE_TAG_INFO

type PFILE_BASIC_INFO = TPFILE_BASIC_INFO

type PFILE_CASE_SENSITIVE_INFO = TPFILE_CASE_SENSITIVE_INFO

type PFILE_COMPRESSION_INFO = TPFILE_COMPRESSION_INFO

type PFILE_DISPOSITION_INFO = TPFILE_DISPOSITION_INFO

type PFILE_DISPOSITION_INFO_EX = TPFILE_DISPOSITION_INFO_EX

type PFILE_END_OF_FILE_INFO = TPFILE_END_OF_FILE_INFO

type PFILE_FS_PERSISTENT_VOLUME_INFORMATION = TPFILE_FS_PERSISTENT_VOLUME_INFORMATION

type PFILE_FULL_DIR_INFO = TPFILE_FULL_DIR_INFO

type PFILE_ID_128 = TPFILE_ID_128

type PFILE_ID_BOTH_DIR_INFO = TPFILE_ID_BOTH_DIR_INFO

type PFILE_ID_EXTD_DIR_INFO = TPFILE_ID_EXTD_DIR_INFO

type PFILE_ID_INFO = TPFILE_ID_INFO

type PFILE_ID_TYPE = TPFILE_ID_TYPE

type PFILE_INFO_BY_HANDLE_CLASS = TPFILE_INFO_BY_HANDLE_CLASS

type PFILE_IO_PRIORITY_HINT_INFO = TPFILE_IO_PRIORITY_HINT_INFO

type PFILE_MAKE_COMPATIBLE_BUFFER = TPFILE_MAKE_COMPATIBLE_BUFFER

type PFILE_NAME_INFO = TPFILE_NAME_INFO

type PFILE_NOTIFY_INFORMATION = TPFILE_NOTIFY_INFORMATION

type PFILE_OBJECTID_BUFFER = TPFILE_OBJECTID_BUFFER

type PFILE_PREFETCH = TPFILE_PREFETCH

type PFILE_PREFETCH_EX = TPFILE_PREFETCH_EX

type PFILE_PROVIDER_EXTERNAL_INFO_V0 = TPFILE_PROVIDER_EXTERNAL_INFO_V0

type PFILE_PROVIDER_EXTERNAL_INFO_V1 = TPFILE_PROVIDER_EXTERNAL_INFO_V1

type PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER = TPFILE_QUERY_ON_DISK_VOL_INFO_BUFFER

type PFILE_QUERY_SPARING_BUFFER = TPFILE_QUERY_SPARING_BUFFER

type PFILE_REMOTE_PROTOCOL_INFO = TPFILE_REMOTE_PROTOCOL_INFO

type PFILE_RENAME_INFO = TPFILE_RENAME_INFO

type PFILE_SEGMENT_ELEMENT = TPFILE_SEGMENT_ELEMENT

type PFILE_SET_DEFECT_MGMT_BUFFER = TPFILE_SET_DEFECT_MGMT_BUFFER

type PFILE_SET_SPARSE_BUFFER = TPFILE_SET_SPARSE_BUFFER

type PFILE_STANDARD_INFO = TPFILE_STANDARD_INFO

type PFILE_STORAGE_INFO = TPFILE_STORAGE_INFO

type PFILE_STREAM_INFO = TPFILE_STREAM_INFO

type PFILE_SYSTEM_RECOGNITION_INFORMATION = TPFILE_SYSTEM_RECOGNITION_INFORMATION

type PFILE_TYPE_NOTIFICATION_INPUT = TPFILE_TYPE_NOTIFICATION_INPUT

type PFILE_ZERO_DATA_INFORMATION = TPFILE_ZERO_DATA_INFORMATION

type PFIND_BY_SID_DATA = TPFIND_BY_SID_DATA

type PFIND_BY_SID_OUTPUT = TPFIND_BY_SID_OUTPUT

type PFIND_NAME_BUFFER = TPFIND_NAME_BUFFER

type PFIND_NAME_HEADER = TPFIND_NAME_HEADER

type PFIRMWARE_TYPE = TPFIRMWARE_TYPE

type PFLASHWINFO = TPFLASHWINFO

type PFLOAT = TPFLOAT

type PFLOAT128 = TPFLOAT128

type PFLS_CALLBACK_FUNCTION = TPFLS_CALLBACK_FUNCTION

type PFNCALLBACK = TPFNCALLBACK

type PFNCANSHAREFOLDERW = TPFNCANSHAREFOLDERW

const PFNGETPROFILEPATH = 0

type PFNGETPROFILEPATHA = TPFNGETPROFILEPATHA

type PFNGETPROFILEPATHW = TPFNGETPROFILEPATHW

const PFNPROCESSPOLICIES = 0

type PFNPROCESSPOLICIESA = TPFNPROCESSPOLICIESA

type PFNPROCESSPOLICIESW = TPFNPROCESSPOLICIESW

type PFNPROPSHEETCALLBACK = TPFNPROPSHEETCALLBACK

const PFNRECONCILEPROFILE = 0

type PFNRECONCILEPROFILEA = TPFNRECONCILEPROFILEA

type PFNRECONCILEPROFILEW = TPFNRECONCILEPROFILEW

type PFNSHOWSHAREFOLDERUIW = TPFNSHOWSHAREFOLDERUIW

type PFN_CANCEL_ASYNC_RETRIEVAL_FUNC = TPFN_CANCEL_ASYNC_RETRIEVAL_FUNC

type PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK = TPFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK

type PFN_CERT_CREATE_CONTEXT_SORT_FUNC = TPFN_CERT_CREATE_CONTEXT_SORT_FUNC

type PFN_CERT_DLL_OPEN_STORE_PROV_FUNC = TPFN_CERT_DLL_OPEN_STORE_PROV_FUNC

type PFN_CERT_ENUM_PHYSICAL_STORE = TPFN_CERT_ENUM_PHYSICAL_STORE

type PFN_CERT_ENUM_SYSTEM_STORE = TPFN_CERT_ENUM_SYSTEM_STORE

type PFN_CERT_ENUM_SYSTEM_STORE_LOCATION = TPFN_CERT_ENUM_SYSTEM_STORE_LOCATION

type PFN_CERT_IS_WEAK_HASH = TPFN_CERT_IS_WEAK_HASH

type PFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK = TPFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK

type PFN_CERT_STORE_PROV_CLOSE = TPFN_CERT_STORE_PROV_CLOSE

type PFN_CERT_STORE_PROV_CONTROL = TPFN_CERT_STORE_PROV_CONTROL

type PFN_CERT_STORE_PROV_DELETE_CERT = TPFN_CERT_STORE_PROV_DELETE_CERT

type PFN_CERT_STORE_PROV_DELETE_CRL = TPFN_CERT_STORE_PROV_DELETE_CRL

type PFN_CERT_STORE_PROV_DELETE_CTL = TPFN_CERT_STORE_PROV_DELETE_CTL

type PFN_CERT_STORE_PROV_FIND_CERT = TPFN_CERT_STORE_PROV_FIND_CERT

type PFN_CERT_STORE_PROV_FIND_CRL = TPFN_CERT_STORE_PROV_FIND_CRL

type PFN_CERT_STORE_PROV_FIND_CTL = TPFN_CERT_STORE_PROV_FIND_CTL

type PFN_CERT_STORE_PROV_FREE_FIND_CERT = TPFN_CERT_STORE_PROV_FREE_FIND_CERT

type PFN_CERT_STORE_PROV_FREE_FIND_CRL = TPFN_CERT_STORE_PROV_FREE_FIND_CRL

type PFN_CERT_STORE_PROV_FREE_FIND_CTL = TPFN_CERT_STORE_PROV_FREE_FIND_CTL

type PFN_CERT_STORE_PROV_GET_CERT_PROPERTY = TPFN_CERT_STORE_PROV_GET_CERT_PROPERTY

type PFN_CERT_STORE_PROV_GET_CRL_PROPERTY = TPFN_CERT_STORE_PROV_GET_CRL_PROPERTY

type PFN_CERT_STORE_PROV_GET_CTL_PROPERTY = TPFN_CERT_STORE_PROV_GET_CTL_PROPERTY

type PFN_CERT_STORE_PROV_READ_CERT = TPFN_CERT_STORE_PROV_READ_CERT

type PFN_CERT_STORE_PROV_READ_CRL = TPFN_CERT_STORE_PROV_READ_CRL

type PFN_CERT_STORE_PROV_READ_CTL = TPFN_CERT_STORE_PROV_READ_CTL

type PFN_CERT_STORE_PROV_SET_CERT_PROPERTY = TPFN_CERT_STORE_PROV_SET_CERT_PROPERTY

type PFN_CERT_STORE_PROV_SET_CRL_PROPERTY = TPFN_CERT_STORE_PROV_SET_CRL_PROPERTY

type PFN_CERT_STORE_PROV_SET_CTL_PROPERTY = TPFN_CERT_STORE_PROV_SET_CTL_PROPERTY

type PFN_CERT_STORE_PROV_WRITE_CERT = TPFN_CERT_STORE_PROV_WRITE_CERT

type PFN_CERT_STORE_PROV_WRITE_CRL = TPFN_CERT_STORE_PROV_WRITE_CRL

type PFN_CERT_STORE_PROV_WRITE_CTL = TPFN_CERT_STORE_PROV_WRITE_CTL

type PFN_CMSG_ALLOC = TPFN_CMSG_ALLOC

type PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY = TPFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY

type PFN_CMSG_CNG_IMPORT_KEY_AGREE = TPFN_CMSG_CNG_IMPORT_KEY_AGREE

type PFN_CMSG_CNG_IMPORT_KEY_TRANS = TPFN_CMSG_CNG_IMPORT_KEY_TRANS

type PFN_CMSG_EXPORT_ENCRYPT_KEY = TPFN_CMSG_EXPORT_ENCRYPT_KEY

type PFN_CMSG_EXPORT_KEY_AGREE = TPFN_CMSG_EXPORT_KEY_AGREE

type PFN_CMSG_EXPORT_KEY_TRANS = TPFN_CMSG_EXPORT_KEY_TRANS

type PFN_CMSG_EXPORT_MAIL_LIST = TPFN_CMSG_EXPORT_MAIL_LIST

type PFN_CMSG_FREE = TPFN_CMSG_FREE

type PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY = TPFN_CMSG_GEN_CONTENT_ENCRYPT_KEY

type PFN_CMSG_GEN_ENCRYPT_KEY = TPFN_CMSG_GEN_ENCRYPT_KEY

type PFN_CMSG_IMPORT_ENCRYPT_KEY = TPFN_CMSG_IMPORT_ENCRYPT_KEY

type PFN_CMSG_IMPORT_KEY_AGREE = TPFN_CMSG_IMPORT_KEY_AGREE

type PFN_CMSG_IMPORT_KEY_TRANS = TPFN_CMSG_IMPORT_KEY_TRANS

type PFN_CMSG_IMPORT_MAIL_LIST = TPFN_CMSG_IMPORT_MAIL_LIST

type PFN_CMSG_STREAM_OUTPUT = TPFN_CMSG_STREAM_OUTPUT

type PFN_CRYPT_ALLOC = TPFN_CRYPT_ALLOC

type PFN_CRYPT_ASYNC_PARAM_FREE_FUNC = TPFN_CRYPT_ASYNC_PARAM_FREE_FUNC

type PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC = TPFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC

type PFN_CRYPT_CANCEL_RETRIEVAL = TPFN_CRYPT_CANCEL_RETRIEVAL

type PFN_CRYPT_ENUM_KEYID_PROP = TPFN_CRYPT_ENUM_KEYID_PROP

type PFN_CRYPT_ENUM_OID_FUNC = TPFN_CRYPT_ENUM_OID_FUNC

type PFN_CRYPT_ENUM_OID_INFO = TPFN_CRYPT_ENUM_OID_INFO

type PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC = TPFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC

type PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC = TPFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC

type PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC = TPFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC

type PFN_CRYPT_FREE = TPFN_CRYPT_FREE

type PFN_CRYPT_GET_SIGNER_CERTIFICATE = TPFN_CRYPT_GET_SIGNER_CERTIFICATE

type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH = TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH

type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE = TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE

type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER = TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER

type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD = TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD

type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET = TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET

type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE = TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE

type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE = TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE

type PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC = TPFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC

type PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC = TPFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC

type PFN_EXPORT_PRIV_KEY_FUNC = TPFN_EXPORT_PRIV_KEY_FUNC

type PFN_FREE_ENCODED_OBJECT_FUNC = TPFN_FREE_ENCODED_OBJECT_FUNC

type PFN_IMPORT_PRIV_KEY_FUNC = TPFN_IMPORT_PRIV_KEY_FUNC

type PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC = TPFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC

type PFN_NCRYPT_ALLOC = TPFN_NCRYPT_ALLOC

type PFN_NCRYPT_FREE = TPFN_NCRYPT_FREE

type PFN_RPCNOTIFICATION_ROUTINE = TPFN_RPCNOTIFICATION_ROUTINE

type PFN_SC_NOTIFY_CALLBACK = TPFN_SC_NOTIFY_CALLBACK

type PFOCUS_EVENT_RECORD = TPFOCUS_EVENT_RECORD

type PFONTSIGNATURE = TPFONTSIGNATURE

type PFORMAT_EX_PARAMETERS = TPFORMAT_EX_PARAMETERS

type PFORMAT_PARAMETERS = TPFORMAT_PARAMETERS

type PFORMAT_STRING = TPFORMAT_STRING

type PFORM_INFO_1 = TPFORM_INFO_1

type PFORM_INFO_1A = TPFORM_INFO_1A

type PFORM_INFO_1W = TPFORM_INFO_1W

type PFORM_INFO_2 = TPFORM_INFO_2

type PFORM_INFO_2A = TPFORM_INFO_2A

type PFORM_INFO_2W = TPFORM_INFO_2W

type PFPO_DATA = TPFPO_DATA

type PFSCTL_QUERY_FAT_BPB_BUFFER = TPFSCTL_QUERY_FAT_BPB_BUFFER

type PFULL_PTR_TO_REFID_ELEMENT = TPFULL_PTR_TO_REFID_ELEMENT

type PFULL_PTR_XLAT_TABLES = TPFULL_PTR_XLAT_TABLES

const PF_3DNOW_INSTRUCTIONS_AVAILABLE = 7

const PF_ALPHA_BYTE_INSTRUCTIONS = 5

const PF_ARM_64BIT_LOADSTORE_ATOMIC = 25

const PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE = 24

const PF_ARM_EXTERNAL_CACHE_AVAILABLE = 26

const PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE = 27

const PF_ARM_NEON_INSTRUCTIONS_AVAILABLE = 19

const PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE = 34

const PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE = 43

const PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE = 44

const PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE = 31

const PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE = 30

const PF_ARM_V8_INSTRUCTIONS_AVAILABLE = 29

const PF_ARM_VFP_32_REGISTERS_AVAILABLE = 18

const PF_AVX2_INSTRUCTIONS_AVAILABLE = 40

const PF_AVX512F_INSTRUCTIONS_AVAILABLE = 41

const PF_AVX_INSTRUCTIONS_AVAILABLE = 39

const PF_BAN = 21

const PF_CHANNELS_ENABLED = 16

const PF_COMPARE64_EXCHANGE128 = 15

const PF_COMPARE_EXCHANGE128 = 14

const PF_COMPARE_EXCHANGE_DOUBLE = 2

const PF_ERMS_AVAILABLE = 42

const PF_FASTFAIL_AVAILABLE = 23

const PF_FIREFOX = 19

const PF_FLOATING_POINT_EMULATED = 1

const PF_FLOATING_POINT_PRECISION_ERRATA = 0

const PF_IPX = 6

const PF_MAX = 22

const PF_MMX_INSTRUCTIONS_AVAILABLE = 3

const PF_MONITORX_INSTRUCTION_AVAILABLE = 35

const PF_NX_ENABLED = 12

const PF_PAE_ENABLED = 9

const PF_PPC_MOVEMEM_64BIT_OK = 4

const PF_RDPID_INSTRUCTION_AVAILABLE = 33

const PF_RDRAND_INSTRUCTION_AVAILABLE = 28

const PF_RDTSCP_INSTRUCTION_AVAILABLE = 32

const PF_RDTSC_INSTRUCTION_AVAILABLE = 8

const PF_RDWRFSGSBASE_AVAILABLE = 22

const PF_SECOND_LEVEL_ADDRESS_TRANSLATION = 20

const PF_SSE3_INSTRUCTIONS_AVAILABLE = 13

const PF_SSE4_1_INSTRUCTIONS_AVAILABLE = 37

const PF_SSE4_2_INSTRUCTIONS_AVAILABLE = 38

const PF_SSE_DAZ_MODE_AVAILABLE = 11

const PF_SSSE3_INSTRUCTIONS_AVAILABLE = 36

const PF_UNKNOWN1 = 20

const PF_VIRT_FIRMWARE_ENABLED = 21

const PF_VOICEVIEW = 18

const PF_XMMI64_INSTRUCTIONS_AVAILABLE = 10

const PF_XMMI_INSTRUCTIONS_AVAILABLE = 6

const PF_XSAVE_ENABLED = 17

type PGENERIC_BINDING_INFO = TPGENERIC_BINDING_INFO

type PGENERIC_BINDING_ROUTINE_PAIR = TPGENERIC_BINDING_ROUTINE_PAIR

type PGENERIC_MAPPING = TPGENERIC_MAPPING

type PGESTURECONFIG = TPGESTURECONFIG

type PGESTUREINFO = TPGESTUREINFO

type PGESTURENOTIFYSTRUCT = TPGESTURENOTIFYSTRUCT

type PGETVERSIONINPARAMS = TPGETVERSIONINPARAMS

type PGET_CHANGER_PARAMETERS = TPGET_CHANGER_PARAMETERS

type PGET_LENGTH_INFORMATION = TPGET_LENGTH_INFORMATION

type PGET_MEDIA_TYPES = TPGET_MEDIA_TYPES

const PGET_MODULE_HANDLE_EX = 0

type PGET_MODULE_HANDLE_EXA = TPGET_MODULE_HANDLE_EXA

type PGET_MODULE_HANDLE_EXW = TPGET_MODULE_HANDLE_EXW

type PGET_SYSTEM_WOW64_DIRECTORY_A = TPGET_SYSTEM_WOW64_DIRECTORY_A

type PGET_SYSTEM_WOW64_DIRECTORY_W = TPGET_SYSTEM_WOW64_DIRECTORY_W

type PGET_VIRTUAL_DISK_INFO = TPGET_VIRTUAL_DISK_INFO

type PGLYPHMETRICSFLOAT = TPGLYPHMETRICSFLOAT

type PGLYPHSET = TPGLYPHSET

type PGRADIENT_RECT = TPGRADIENT_RECT

type PGRADIENT_TRIANGLE = TPGRADIENT_TRIANGLE

type PGROUP_AFFINITY = TPGROUP_AFFINITY

type PGROUP_RELATIONSHIP = TPGROUP_RELATIONSHIP

type PGUITHREADINFO = TPGUITHREADINFO

type PHALF_PTR = TPHALF_PTR

type PHANDLE = TPHANDLE

type PHANDLER_ROUTINE = TPHANDLER_ROUTINE

type PHANDLETABLE = TPHANDLETABLE

type PHARDWAREHOOKSTRUCT = TPHARDWAREHOOKSTRUCT

type PHARDWAREINPUT = TPHARDWAREINPUT

type PHARDWARE_COUNTER_DATA = TPHARDWARE_COUNTER_DATA

type PHARDWARE_COUNTER_TYPE = TPHARDWARE_COUNTER_TYPE

type PHCRYPTASYNC = TPHCRYPTASYNC

type PHDEVNOTIFY = TPHDEVNOTIFY

type PHEAP_SUMMARY = TPHEAP_SUMMARY

type PHELPWININFO = TPHELPWININFO

type PHELPWININFOA = TPHELPWININFOA

type PHELPWININFOW = TPHELPWININFOW

type PHISTOGRAM_BUCKET = TPHISTOGRAM_BUCKET

type PHKEY = TPHKEY

type PHMAC_INFO = TPHMAC_INFO

type PHOSTENT = TPHOSTENT

type PHPOWERNOTIFY = TPHPOWERNOTIFY

type PHSZPAIR = TPHSZPAIR

type PHTTPSPolicyCallbackData = TPHTTPSPolicyCallbackData

const PHYSICALHEIGHT = 111

const PHYSICALOFFSETX = 112

const PHYSICALOFFSETY = 113

const PHYSICALWIDTH = 110

type PICONINFO = TPICONINFO

type PICONINFOEX = TPICONINFOEX

type PICONINFOEXA = TPICONINFOEXA

type PICONINFOEXW = TPICONINFOEXW

type PICONMETRICS = TPICONMETRICS

type PICONMETRICSA = TPICONMETRICSA

type PICONMETRICSW = TPICONMETRICSW

const PIDDI_THUMBNAIL = 2

const PIDDSI_BYTECOUNT = 4

const PIDDSI_CATEGORY = 2

const PIDDSI_COMPANY = 15

const PIDDSI_DOCPARTS = 13

const PIDDSI_HEADINGPAIR = 12

const PIDDSI_HIDDENCOUNT = 9

const PIDDSI_LINECOUNT = 5

const PIDDSI_LINKSDIRTY = 16

const PIDDSI_MANAGER = 14

const PIDDSI_MMCLIPCOUNT = 10

const PIDDSI_NOTECOUNT = 8

const PIDDSI_PARCOUNT = 6

const PIDDSI_PRESFORMAT = 3

const PIDDSI_SCALE = 11

const PIDDSI_SLIDECOUNT = 7

type PIDEREGS = TPIDEREGS

const PIDMSI_COPYRIGHT = 11

const PIDMSI_EDITOR = 2

const PIDMSI_OWNER = 8

const PIDMSI_PRODUCTION = 10

const PIDMSI_PROJECT = 6

const PIDMSI_RATING = 9

const PIDMSI_SEQUENCE_NO = 5

const PIDMSI_SOURCE = 4

const PIDMSI_STATUS = 7

const PIDMSI_SUPPLIER = 3

const PIDSI_APPNAME = 18

const PIDSI_AUTHOR = 4

const PIDSI_CHARCOUNT = 16

const PIDSI_COMMENTS = 6

const PIDSI_CREATE_DTM = 12

const PIDSI_DOC_SECURITY = 19

const PIDSI_EDITTIME = 10

const PIDSI_KEYWORDS = 5

const PIDSI_LASTAUTHOR = 8

const PIDSI_LASTPRINTED = 11

const PIDSI_LASTSAVE_DTM = 13

const PIDSI_PAGECOUNT = 14

const PIDSI_REVNUMBER = 9

const PIDSI_SUBJECT = 3

const PIDSI_TEMPLATE = 7

const PIDSI_THUMBNAIL = 17

const PIDSI_TITLE = 2

const PIDSI_WORDCOUNT = 15

const PID_BEHAVIOR = 2147483651

const PID_CODEPAGE = 1

const PID_DICTIONARY = 0

const PID_FIRST_NAME_DEFAULT = 4095

const PID_FIRST_USABLE = 2

const PID_ILLEGAL = 4294967295

const PID_LOCALE = 2147483648

const PID_MAX_READONLY = 3221225471

const PID_MIN_READONLY = 2147483648

const PID_MODIFY_TIME = 2147483649

const PID_SECURITY = 2147483650

type PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = TPIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY

type PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = TPIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY

type PIMAGE_ARCHITECTURE_ENTRY = TPIMAGE_ARCHITECTURE_ENTRY

type PIMAGE_ARCHITECTURE_HEADER = TPIMAGE_ARCHITECTURE_HEADER

type PIMAGE_ARCHIVE_MEMBER_HEADER = TPIMAGE_ARCHIVE_MEMBER_HEADER

type PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = TPIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY

type PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY = TPIMAGE_ARM_RUNTIME_FUNCTION_ENTRY

type PIMAGE_AUX_SYMBOL = TPIMAGE_AUX_SYMBOL

type PIMAGE_AUX_SYMBOL_EX = TPIMAGE_AUX_SYMBOL_EX

type PIMAGE_AUX_SYMBOL_TOKEN_DEF = TPIMAGE_AUX_SYMBOL_TOKEN_DEF

type PIMAGE_BASE_RELOCATION = TPIMAGE_BASE_RELOCATION

type PIMAGE_BOUND_FORWARDER_REF = TPIMAGE_BOUND_FORWARDER_REF

type PIMAGE_BOUND_IMPORT_DESCRIPTOR = TPIMAGE_BOUND_IMPORT_DESCRIPTOR

type PIMAGE_CE_RUNTIME_FUNCTION_ENTRY = TPIMAGE_CE_RUNTIME_FUNCTION_ENTRY

type PIMAGE_COFF_SYMBOLS_HEADER = TPIMAGE_COFF_SYMBOLS_HEADER

type PIMAGE_COR20_HEADER = TPIMAGE_COR20_HEADER

type PIMAGE_DATA_DIRECTORY = TPIMAGE_DATA_DIRECTORY

type PIMAGE_DEBUG_DIRECTORY = TPIMAGE_DEBUG_DIRECTORY

type PIMAGE_DEBUG_MISC = TPIMAGE_DEBUG_MISC

type PIMAGE_DELAYLOAD_DESCRIPTOR = TPIMAGE_DELAYLOAD_DESCRIPTOR

type PIMAGE_DOS_HEADER = TPIMAGE_DOS_HEADER

type PIMAGE_EXPORT_DIRECTORY = TPIMAGE_EXPORT_DIRECTORY

type PIMAGE_FILE_HEADER = TPIMAGE_FILE_HEADER

type PIMAGE_FUNCTION_ENTRY = TPIMAGE_FUNCTION_ENTRY

type PIMAGE_FUNCTION_ENTRY64 = TPIMAGE_FUNCTION_ENTRY64

type PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = TPIMAGE_IA64_RUNTIME_FUNCTION_ENTRY

type PIMAGE_IMPORT_BY_NAME = TPIMAGE_IMPORT_BY_NAME

type PIMAGE_IMPORT_DESCRIPTOR = TPIMAGE_IMPORT_DESCRIPTOR

type PIMAGE_LINENUMBER = TPIMAGE_LINENUMBER

type PIMAGE_LOAD_CONFIG_DIRECTORY = TPIMAGE_LOAD_CONFIG_DIRECTORY

type PIMAGE_LOAD_CONFIG_DIRECTORY32 = TPIMAGE_LOAD_CONFIG_DIRECTORY32

type PIMAGE_LOAD_CONFIG_DIRECTORY64 = TPIMAGE_LOAD_CONFIG_DIRECTORY64

type PIMAGE_NT_HEADERS = TPIMAGE_NT_HEADERS

type PIMAGE_NT_HEADERS32 = TPIMAGE_NT_HEADERS32

type PIMAGE_NT_HEADERS64 = TPIMAGE_NT_HEADERS64

type PIMAGE_OPTIONAL_HEADER = TPIMAGE_OPTIONAL_HEADER

type PIMAGE_OPTIONAL_HEADER32 = TPIMAGE_OPTIONAL_HEADER32

type PIMAGE_OPTIONAL_HEADER64 = TPIMAGE_OPTIONAL_HEADER64

type PIMAGE_OS2_HEADER = TPIMAGE_OS2_HEADER

type PIMAGE_RELOCATION = TPIMAGE_RELOCATION

type PIMAGE_RESOURCE_DATA_ENTRY = TPIMAGE_RESOURCE_DATA_ENTRY

type PIMAGE_RESOURCE_DIRECTORY = TPIMAGE_RESOURCE_DIRECTORY

type PIMAGE_RESOURCE_DIRECTORY_ENTRY = TPIMAGE_RESOURCE_DIRECTORY_ENTRY

type PIMAGE_RESOURCE_DIRECTORY_STRING = TPIMAGE_RESOURCE_DIRECTORY_STRING

type PIMAGE_RESOURCE_DIR_STRING_U = TPIMAGE_RESOURCE_DIR_STRING_U

type PIMAGE_ROM_HEADERS = TPIMAGE_ROM_HEADERS

type PIMAGE_ROM_OPTIONAL_HEADER = TPIMAGE_ROM_OPTIONAL_HEADER

type PIMAGE_RUNTIME_FUNCTION_ENTRY = TPIMAGE_RUNTIME_FUNCTION_ENTRY

type PIMAGE_SECTION_HEADER = TPIMAGE_SECTION_HEADER

type PIMAGE_SEPARATE_DEBUG_HEADER = TPIMAGE_SEPARATE_DEBUG_HEADER

type PIMAGE_SYMBOL = TPIMAGE_SYMBOL

type PIMAGE_SYMBOL_EX = TPIMAGE_SYMBOL_EX

type PIMAGE_THUNK_DATA = TPIMAGE_THUNK_DATA

type PIMAGE_THUNK_DATA32 = TPIMAGE_THUNK_DATA32

type PIMAGE_THUNK_DATA64 = TPIMAGE_THUNK_DATA64

type PIMAGE_TLS_CALLBACK = TPIMAGE_TLS_CALLBACK

type PIMAGE_TLS_DIRECTORY = TPIMAGE_TLS_DIRECTORY

type PIMAGE_TLS_DIRECTORY32 = TPIMAGE_TLS_DIRECTORY32

type PIMAGE_TLS_DIRECTORY64 = TPIMAGE_TLS_DIRECTORY64

type PIMAGE_VXD_HEADER = TPIMAGE_VXD_HEADER

type PIMECHARPOSITION = TPIMECHARPOSITION

type PIMEMENUITEMINFO = TPIMEMENUITEMINFO

type PIMEMENUITEMINFOA = TPIMEMENUITEMINFOA

type PIMEMENUITEMINFOW = TPIMEMENUITEMINFOW

type PINIT_ONCE = TPINIT_ONCE

type PINIT_ONCE_FN = TPINIT_ONCE_FN

type PINPUT = TPINPUT

type PINPUT_INJECTION_VALUE = TPINPUT_INJECTION_VALUE

type PINPUT_RECORD = TPINPUT_RECORD

type PINT = TPINT

type PINT16 = TPINT16

type PINT32 = TPINT32

type PINT64 = TPINT64

type PINT8 = TPINT8

type PINT_PTR = TPINT_PTR

type PIN_ADDR = TPIN_ADDR

type PIO_COUNTERS = TPIO_COUNTERS

const PIPE_ACCEPT_REMOTE_CLIENTS = 0

const PIPE_ACCESS_DUPLEX = 3

const PIPE_ACCESS_INBOUND = 1

const PIPE_ACCESS_OUTBOUND = 2

const PIPE_CLIENT_END = 0

const PIPE_NOWAIT = 1

const PIPE_READMODE_BYTE = 0

const PIPE_READMODE_MESSAGE = 2

const PIPE_REJECT_REMOTE_CLIENTS = 8

const PIPE_SERVER_END = 1

const PIPE_TYPE_BYTE = 0

const PIPE_TYPE_MESSAGE = 4

const PIPE_UNLIMITED_INSTANCES = 255

const PIPE_WAIT = 0

type PIP_MREQ = TPIP_MREQ

type PISECURITY_DESCRIPTOR = TPISECURITY_DESCRIPTOR

type PISECURITY_DESCRIPTOR_RELATIVE = TPISECURITY_DESCRIPTOR_RELATIVE

type PISID = TPISID

type PIXELFORMATDESCRIPTOR = TPIXELFORMATDESCRIPTOR

const PI_DOCFILECLSIDLOOKUP = 0

type PI_FLAGS = TPI_FLAGS

type PJOBOBJECT_ASSOCIATE_COMPLETION_PORT = TPJOBOBJECT_ASSOCIATE_COMPLETION_PORT

type PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION = TPJOBOBJECT_BASIC_ACCOUNTING_INFORMATION

type PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = TPJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION

type PJOBOBJECT_BASIC_LIMIT_INFORMATION = TPJOBOBJECT_BASIC_LIMIT_INFORMATION

type PJOBOBJECT_BASIC_PROCESS_ID_LIST = TPJOBOBJECT_BASIC_PROCESS_ID_LIST

type PJOBOBJECT_BASIC_UI_RESTRICTIONS = TPJOBOBJECT_BASIC_UI_RESTRICTIONS

type PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION = TPJOBOBJECT_CPU_RATE_CONTROL_INFORMATION

type PJOBOBJECT_END_OF_JOB_TIME_INFORMATION = TPJOBOBJECT_END_OF_JOB_TIME_INFORMATION

type PJOBOBJECT_EXTENDED_LIMIT_INFORMATION = TPJOBOBJECT_EXTENDED_LIMIT_INFORMATION

type PJOBOBJECT_JOBSET_INFORMATION = TPJOBOBJECT_JOBSET_INFORMATION

type PJOBOBJECT_LIMIT_VIOLATION_INFORMATION = TPJOBOBJECT_LIMIT_VIOLATION_INFORMATION

type PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = TPJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

type PJOBOBJECT_SECURITY_LIMIT_INFORMATION = TPJOBOBJECT_SECURITY_LIMIT_INFORMATION

type PJOB_INFO_1 = TPJOB_INFO_1

type PJOB_INFO_1A = TPJOB_INFO_1A

type PJOB_INFO_1W = TPJOB_INFO_1W

type PJOB_INFO_2 = TPJOB_INFO_2

type PJOB_INFO_2A = TPJOB_INFO_2A

type PJOB_INFO_2W = TPJOB_INFO_2W

type PJOB_INFO_3 = TPJOB_INFO_3

type PJOB_SET_ARRAY = TPJOB_SET_ARRAY

type PJOYCAPS = TPJOYCAPS

type PJOYCAPS2 = TPJOYCAPS2

type PJOYCAPS2A = TPJOYCAPS2A

type PJOYCAPS2W = TPJOYCAPS2W

type PJOYCAPSA = TPJOYCAPSA

type PJOYCAPSW = TPJOYCAPSW

type PJOYINFO = TPJOYINFO

type PJOYINFOEX = TPJOYINFOEX

type PKAFFINITY = TPKAFFINITY

type PKBDLLHOOKSTRUCT = TPKBDLLHOOKSTRUCT

type PKCRM_MARSHAL_HEADER = TPKCRM_MARSHAL_HEADER

type PKCRM_PROTOCOL_BLOB = TPKCRM_PROTOCOL_BLOB

type PKCRM_TRANSACTION_BLOB = TPKCRM_TRANSACTION_BLOB

const PKCS12_ALLOW_OVERWRITE_KEY = 16384

const PKCS12_ALWAYS_CNG_KSP = 512

const PKCS12_CONFIG_REGPATH = "Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\PFX"

const PKCS12_DISABLE_ENCRYPT_CERTIFICATES = 256

const PKCS12_ENCRYPT_CERTIFICATES = 512

const PKCS12_ENCRYPT_CERTIFICATES_VALUE_NAME = "EncryptCertificates"

const PKCS12_EXPORT_ECC_CURVE_OID = 8192

const PKCS12_EXPORT_ECC_CURVE_PARAMETERS = 4096

const PKCS12_EXPORT_PBES2_PARAMS = 128

const PKCS12_EXPORT_RESERVED_MASK = 4294901760

const PKCS12_EXPORT_SILENT = 64

const PKCS12_IMPORT_RESERVED_MASK = 4294901760

const PKCS12_IMPORT_SILENT = 64

const PKCS12_INCLUDE_EXTENDED_PROPERTIES = 16

const PKCS12_NO_PERSIST_KEY = 32768

const PKCS12_OBJECT_LOCATOR_ALL_IMPORT_FLAGS = 33360

const PKCS12_ONLY_CERTIFICATES = 1024

const PKCS12_ONLY_CERTIFICATES_CONTAINER_NAME = "PfxContainer"

const PKCS12_ONLY_CERTIFICATES_PROVIDER_NAME = "PfxProvider"

const PKCS12_ONLY_CERTIFICATES_PROVIDER_TYPE = 0

const PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES = 2048

const PKCS12_PBES2_ALG_AES256_SHA256 = "AES256-SHA256"

type PKCS12_PBES2_EXPORT_PARAMS = TPKCS12_PBES2_EXPORT_PARAMS

const PKCS12_PBKDF2_ID_HMAC_SHA1 = "1.2.840.113549.2.7"

const PKCS12_PBKDF2_ID_HMAC_SHA256 = "1.2.840.113549.2.9"

const PKCS12_PBKDF2_ID_HMAC_SHA384 = "1.2.840.113549.2.10"

const PKCS12_PBKDF2_ID_HMAC_SHA512 = "1.2.840.113549.2.11"

const PKCS12_PREFER_CNG_KSP = 256

const PKCS12_PROTECT_TO_DOMAIN_SIDS = 32

const PKCS12_VIRTUAL_ISOLATION_KEY = 65536

const PKCS5_PADDING = 1

const PKCS_7_ASN_ENCODING = 65536

const PKCS_7_NDR_ENCODING = 131072

const PKCS_RSA_SSA_PSS_TRAILER_FIELD_BC = 1

type PKEYBDINPUT = TPKEYBDINPUT

type PKEY_EVENT_RECORD = TPKEY_EVENT_RECORD

type PKEY_TYPE_SUBTYPE = TPKEY_TYPE_SUBTYPE

type PKSPIN_LOCK = TPKSPIN_LOCK

type PKTMOBJECT_CURSOR = TPKTMOBJECT_CURSOR

type PKTMOBJECT_TYPE = TPKTMOBJECT_TYPE

const PLAINTEXTKEYBLOB = 8

type PLANA_ENUM = TPLANA_ENUM

const PLANES = 14

type PLARGE_INTEGER = TPLARGE_INTEGER

type PLASTINPUTINFO = TPLASTINPUTINFO

type PLAYERPLANEDESCRIPTOR = TPLAYERPLANEDESCRIPTOR

type PLCID = TPLCID

type PLDT_ENTRY = TPLDT_ENTRY

type PLEX_READ_DATA_REQUEST = TPLEX_READ_DATA_REQUEST

type PLINGER = TPLINGER

type PLINKSRCDESCRIPTOR = TPLINKSRCDESCRIPTOR

type PLIST_ENTRY = TPLIST_ENTRY

type PLIST_ENTRY32 = TPLIST_ENTRY32

type PLIST_ENTRY64 = TPLIST_ENTRY64

type PLOCALESIGNATURE = TPLOCALESIGNATURE

type PLOGBRUSH = TPLOGBRUSH

type PLOGBRUSH32 = TPLOGBRUSH32

type PLOGFONT = TPLOGFONT

type PLOGFONTA = TPLOGFONTA

type PLOGFONTW = TPLOGFONTW

type PLOGPALETTE = TPLOGPALETTE

type PLOGPEN = TPLOGPEN

type PLONG = TPLONG

type PLONG32 = TPLONG32

type PLONG64 = TPLONG64

type PLONGLONG = TPLONGLONG

type PLONG_PTR = TPLONG_PTR

type PLOOKUP_STREAM_FROM_CLUSTER_ENTRY = TPLOOKUP_STREAM_FROM_CLUSTER_ENTRY

type PLOOKUP_STREAM_FROM_CLUSTER_INPUT = TPLOOKUP_STREAM_FROM_CLUSTER_INPUT

type PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT = TPLOOKUP_STREAM_FROM_CLUSTER_OUTPUT

type PLUID = TPLUID

type PLUID_AND_ATTRIBUTES = TPLUID_AND_ATTRIBUTES

type PLUID_AND_ATTRIBUTES_ARRAY = TPLUID_AND_ATTRIBUTES_ARRAY

type PM128A = TPM128A

type PMANDATORY_LEVEL = TPMANDATORY_LEVEL

type PMARK_HANDLE_INFO = TPMARK_HANDLE_INFO

const PMB_ACTIVE = 1

type PMCI_ANIM_OPEN_PARMS = TPMCI_ANIM_OPEN_PARMS

type PMCI_ANIM_OPEN_PARMSA = TPMCI_ANIM_OPEN_PARMSA

type PMCI_ANIM_OPEN_PARMSW = TPMCI_ANIM_OPEN_PARMSW

type PMCI_ANIM_PLAY_PARMS = TPMCI_ANIM_PLAY_PARMS

type PMCI_ANIM_RECT_PARMS = TPMCI_ANIM_RECT_PARMS

type PMCI_ANIM_STEP_PARMS = TPMCI_ANIM_STEP_PARMS

type PMCI_ANIM_UPDATE_PARMS = TPMCI_ANIM_UPDATE_PARMS

type PMCI_ANIM_WINDOW_PARMS = TPMCI_ANIM_WINDOW_PARMS

type PMCI_ANIM_WINDOW_PARMSA = TPMCI_ANIM_WINDOW_PARMSA

type PMCI_ANIM_WINDOW_PARMSW = TPMCI_ANIM_WINDOW_PARMSW

type PMCI_BREAK_PARMS = TPMCI_BREAK_PARMS

type PMCI_GENERIC_PARMS = TPMCI_GENERIC_PARMS

type PMCI_GETDEVCAPS_PARMS = TPMCI_GETDEVCAPS_PARMS

type PMCI_LOAD_PARMS = TPMCI_LOAD_PARMS

type PMCI_LOAD_PARMSA = TPMCI_LOAD_PARMSA

type PMCI_LOAD_PARMSW = TPMCI_LOAD_PARMSW

type PMCI_OPEN_PARMS = TPMCI_OPEN_PARMS

type PMCI_OPEN_PARMSA = TPMCI_OPEN_PARMSA

type PMCI_OPEN_PARMSW = TPMCI_OPEN_PARMSW

type PMCI_OVLY_LOAD_PARMS = TPMCI_OVLY_LOAD_PARMS

type PMCI_OVLY_LOAD_PARMSA = TPMCI_OVLY_LOAD_PARMSA

type PMCI_OVLY_LOAD_PARMSW = TPMCI_OVLY_LOAD_PARMSW

type PMCI_OVLY_OPEN_PARMS = TPMCI_OVLY_OPEN_PARMS

type PMCI_OVLY_OPEN_PARMSA = TPMCI_OVLY_OPEN_PARMSA

type PMCI_OVLY_OPEN_PARMSW = TPMCI_OVLY_OPEN_PARMSW

type PMCI_OVLY_RECT_PARMS = TPMCI_OVLY_RECT_PARMS

type PMCI_OVLY_SAVE_PARMS = TPMCI_OVLY_SAVE_PARMS

type PMCI_OVLY_SAVE_PARMSA = TPMCI_OVLY_SAVE_PARMSA

type PMCI_OVLY_SAVE_PARMSW = TPMCI_OVLY_SAVE_PARMSW

type PMCI_OVLY_WINDOW_PARMS = TPMCI_OVLY_WINDOW_PARMS

type PMCI_OVLY_WINDOW_PARMSA = TPMCI_OVLY_WINDOW_PARMSA

type PMCI_OVLY_WINDOW_PARMSW = TPMCI_OVLY_WINDOW_PARMSW

type PMCI_PLAY_PARMS = TPMCI_PLAY_PARMS

type PMCI_SAVE_PARMS = TPMCI_SAVE_PARMS

type PMCI_SAVE_PARMSA = TPMCI_SAVE_PARMSA

type PMCI_SAVE_PARMSW = TPMCI_SAVE_PARMSW

type PMCI_SEEK_PARMS = TPMCI_SEEK_PARMS

type PMCI_SEQ_SET_PARMS = TPMCI_SEQ_SET_PARMS

type PMCI_SET_PARMS = TPMCI_SET_PARMS

type PMCI_STATUS_PARMS = TPMCI_STATUS_PARMS

type PMCI_SYSINFO_PARMS = TPMCI_SYSINFO_PARMS

type PMCI_SYSINFO_PARMSA = TPMCI_SYSINFO_PARMSA

type PMCI_SYSINFO_PARMSW = TPMCI_SYSINFO_PARMSW

type PMCI_VD_ESCAPE_PARMS = TPMCI_VD_ESCAPE_PARMS

type PMCI_VD_ESCAPE_PARMSA = TPMCI_VD_ESCAPE_PARMSA

type PMCI_VD_ESCAPE_PARMSW = TPMCI_VD_ESCAPE_PARMSW

type PMCI_VD_PLAY_PARMS = TPMCI_VD_PLAY_PARMS

type PMCI_VD_STEP_PARMS = TPMCI_VD_STEP_PARMS

type PMCI_WAVE_DELETE_PARMS = TPMCI_WAVE_DELETE_PARMS

type PMCI_WAVE_OPEN_PARMS = TPMCI_WAVE_OPEN_PARMS

type PMCI_WAVE_OPEN_PARMSA = TPMCI_WAVE_OPEN_PARMSA

type PMCI_WAVE_OPEN_PARMSW = TPMCI_WAVE_OPEN_PARMSW

type PMCI_WAVE_SET_PARMS = TPMCI_WAVE_SET_PARMS

type PMDINEXTMENU = TPMDINEXTMENU

type PMEASUREITEMSTRUCT = TPMEASUREITEMSTRUCT

type PMEDIA_TYPE = TPMEDIA_TYPE

type PMEMORY_BASIC_INFORMATION = TPMEMORY_BASIC_INFORMATION

type PMEMORY_BASIC_INFORMATION32 = TPMEMORY_BASIC_INFORMATION32

type PMEMORY_BASIC_INFORMATION64 = TPMEMORY_BASIC_INFORMATION64

type PMEMORY_PRIORITY_INFORMATION = TPMEMORY_PRIORITY_INFORMATION

type PMEM_ADDRESS_REQUIREMENTS = TPMEM_ADDRESS_REQUIREMENTS

type PMEM_EXTENDED_PARAMETER = TPMEM_EXTENDED_PARAMETER

type PMEM_EXTENDED_PARAMETER_TYPE = TPMEM_EXTENDED_PARAMETER_TYPE

type PMEM_SECTION_EXTENDED_PARAMETER_TYPE = TPMEM_SECTION_EXTENDED_PARAMETER_TYPE

type PMENUBARINFO = TPMENUBARINFO

type PMENUGETOBJECTINFO = TPMENUGETOBJECTINFO

type PMENUITEMTEMPLATE = TPMENUITEMTEMPLATE

type PMENUITEMTEMPLATEHEADER = TPMENUITEMTEMPLATEHEADER

type PMENU_EVENT_RECORD = TPMENU_EVENT_RECORD

type PMERGE_VIRTUAL_DISK_PARAMETERS = TPMERGE_VIRTUAL_DISK_PARAMETERS

type PMESSAGE_RESOURCE_BLOCK = TPMESSAGE_RESOURCE_BLOCK

type PMESSAGE_RESOURCE_DATA = TPMESSAGE_RESOURCE_DATA

type PMESSAGE_RESOURCE_ENTRY = TPMESSAGE_RESOURCE_ENTRY

type PMETAHEADER = TPMETAHEADER

type PMETARECORD = TPMETARECORD

const PME_CURRENT_VERSION = 1

const PME_FAILFAST_ON_COMMIT_FAIL_DISABLE = 0

const PME_FAILFAST_ON_COMMIT_FAIL_ENABLE = 1

type PMFT_ENUM_DATA = TPMFT_ENUM_DATA

type PMIDIHDR = TPMIDIHDR

type PMIDIINCAPS = TPMIDIINCAPS

type PMIDIINCAPS2 = TPMIDIINCAPS2

type PMIDIINCAPS2A = TPMIDIINCAPS2A

type PMIDIINCAPS2W = TPMIDIINCAPS2W

type PMIDIINCAPSA = TPMIDIINCAPSA

type PMIDIINCAPSW = TPMIDIINCAPSW

type PMIDIOUTCAPS = TPMIDIOUTCAPS

type PMIDIOUTCAPS2 = TPMIDIOUTCAPS2

type PMIDIOUTCAPS2A = TPMIDIOUTCAPS2A

type PMIDIOUTCAPS2W = TPMIDIOUTCAPS2W

type PMIDIOUTCAPSA = TPMIDIOUTCAPSA

type PMIDIOUTCAPSW = TPMIDIOUTCAPSW

type PMIDL_SERVER_INFO = TPMIDL_SERVER_INFO

type PMIDL_STUBLESS_PROXY_INFO = TPMIDL_STUBLESS_PROXY_INFO

type PMIDL_STUB_DESC = TPMIDL_STUB_DESC

type PMIDL_STUB_MESSAGE = TPMIDL_STUB_MESSAGE

type PMIDL_SYNTAX_INFO = TPMIDL_SYNTAX_INFO

type PMIDL_XMIT_TYPE = TPMIDL_XMIT_TYPE

type PMINIMIZEDMETRICS = TPMINIMIZEDMETRICS

type PMINMAXINFO = TPMINMAXINFO

type PMIRROR_VIRTUAL_DISK_PARAMETERS = TPMIRROR_VIRTUAL_DISK_PARAMETERS

type PMIXERCAPS = TPMIXERCAPS

type PMIXERCAPS2 = TPMIXERCAPS2

type PMIXERCAPS2A = TPMIXERCAPS2A

type PMIXERCAPS2W = TPMIXERCAPS2W

type PMIXERCAPSA = TPMIXERCAPSA

type PMIXERCAPSW = TPMIXERCAPSW

type PMIXERCONTROL = TPMIXERCONTROL

type PMIXERCONTROLA = TPMIXERCONTROLA

type PMIXERCONTROLDETAILS = TPMIXERCONTROLDETAILS

type PMIXERCONTROLDETAILS_BOOLEAN = TPMIXERCONTROLDETAILS_BOOLEAN

type PMIXERCONTROLDETAILS_LISTTEXT = TPMIXERCONTROLDETAILS_LISTTEXT

type PMIXERCONTROLDETAILS_LISTTEXTA = TPMIXERCONTROLDETAILS_LISTTEXTA

type PMIXERCONTROLDETAILS_LISTTEXTW = TPMIXERCONTROLDETAILS_LISTTEXTW

type PMIXERCONTROLDETAILS_SIGNED = TPMIXERCONTROLDETAILS_SIGNED

type PMIXERCONTROLDETAILS_UNSIGNED = TPMIXERCONTROLDETAILS_UNSIGNED

type PMIXERCONTROLW = TPMIXERCONTROLW

type PMIXERLINE = TPMIXERLINE

type PMIXERLINEA = TPMIXERLINEA

type PMIXERLINECONTROLS = TPMIXERLINECONTROLS

type PMIXERLINECONTROLSA = TPMIXERLINECONTROLSA

type PMIXERLINECONTROLSW = TPMIXERLINECONTROLSW

type PMIXERLINEW = TPMIXERLINEW

type PMMCKINFO = TPMMCKINFO

type PMMIOINFO = TPMMIOINFO

type PMMTIME = TPMMTIME

type PMODEMDEVCAPS = TPMODEMDEVCAPS

type PMODEMSETTINGS = TPMODEMSETTINGS

type PMODIFY_VHDSET_FLAG = TPMODIFY_VHDSET_FLAG

type PMODIFY_VHDSET_PARAMETERS = TPMODIFY_VHDSET_PARAMETERS

type PMODIFY_VHDSET_VERSION = TPMODIFY_VHDSET_VERSION

type PMONCBSTRUCT = TPMONCBSTRUCT

type PMONCONVSTRUCT = TPMONCONVSTRUCT

type PMONERRSTRUCT = TPMONERRSTRUCT

type PMONHSZSTRUCT = TPMONHSZSTRUCT

type PMONHSZSTRUCTA = TPMONHSZSTRUCTA

type PMONHSZSTRUCTW = TPMONHSZSTRUCTW

type PMONITOR_DISPLAY_STATE = TPMONITOR_DISPLAY_STATE

type PMONITOR_INFO_1 = TPMONITOR_INFO_1

type PMONITOR_INFO_1A = TPMONITOR_INFO_1A

type PMONITOR_INFO_1W = TPMONITOR_INFO_1W

type PMONITOR_INFO_2 = TPMONITOR_INFO_2

type PMONITOR_INFO_2A = TPMONITOR_INFO_2A

type PMONITOR_INFO_2W = TPMONITOR_INFO_2W

type PMONLINKSTRUCT = TPMONLINKSTRUCT

type PMONMSGSTRUCT = TPMONMSGSTRUCT

type PMOUSEHOOKSTRUCT = TPMOUSEHOOKSTRUCT

type PMOUSEHOOKSTRUCTEX = TPMOUSEHOOKSTRUCTEX

type PMOUSEINPUT = TPMOUSEINPUT

type PMOUSEMOVEPOINT = TPMOUSEMOVEPOINT

type PMOUSE_EVENT_RECORD = TPMOUSE_EVENT_RECORD

type PMOVE_FILE_DATA = TPMOVE_FILE_DATA

type PMOVE_FILE_RECORD_DATA = TPMOVE_FILE_RECORD_DATA

type PMSG = TPMSG

type PMSGBOXPARAMS = TPMSGBOXPARAMS

type PMSGBOXPARAMSA = TPMSGBOXPARAMSA

type PMSGBOXPARAMSW = TPMSGBOXPARAMSW

type PMSLLHOOKSTRUCT = TPMSLLHOOKSTRUCT

type PMULTIKEYHELP = TPMULTIKEYHELP

type PMULTIKEYHELPA = TPMULTIKEYHELPA

type PMULTIKEYHELPW = TPMULTIKEYHELPW

const PM_NOREMOVE = 0

const PM_NOYIELD = 2

const PM_QS_INPUT = 470220800

const PM_QS_PAINT = 2097152

const PM_QS_POSTMESSAGE = 9961472

const PM_QS_SENDMESSAGE = 4194304

const PM_REMOVE = 1

type PNAME_BUFFER = TPNAME_BUFFER

type PNCB = TPNCB

type PNCRYPT_CIPHER_PADDING_INFO = TPNCRYPT_CIPHER_PADDING_INFO

type PNCRYPT_KEY_BLOB_HEADER = TPNCRYPT_KEY_BLOB_HEADER

type PNC_ADDRESS = TPNC_ADDRESS

type PNCryptBuffer = TPNCryptBuffer

type PNCryptBufferDesc = TPNCryptBufferDesc

type PNDR_ASYNC_MESSAGE = TPNDR_ASYNC_MESSAGE

type PNDR_CORRELATION_INFO = TPNDR_CORRELATION_INFO

type PNEWTEXTMETRIC = TPNEWTEXTMETRIC

type PNEWTEXTMETRICA = TPNEWTEXTMETRICA

type PNEWTEXTMETRICW = TPNEWTEXTMETRICW

type PNONCLIENTMETRICS = TPNONCLIENTMETRICS

type PNONCLIENTMETRICSA = TPNONCLIENTMETRICSA

type PNONCLIENTMETRICSW = TPNONCLIENTMETRICSW

type PNON_PAGED_DEBUG_INFO = TPNON_PAGED_DEBUG_INFO

type PNOTIFYICONDATA = TPNOTIFYICONDATA

type PNOTIFYICONDATAA = TPNOTIFYICONDATAA

type PNOTIFYICONDATAW = TPNOTIFYICONDATAW

type PNOTIFYICONIDENTIFIER = TPNOTIFYICONIDENTIFIER

type PNOTIFY_USER_POWER_SETTING = TPNOTIFY_USER_POWER_SETTING

type PNTFS_EXTENDED_VOLUME_DATA = TPNTFS_EXTENDED_VOLUME_DATA

type PNTFS_FILE_RECORD_INPUT_BUFFER = TPNTFS_FILE_RECORD_INPUT_BUFFER

type PNTFS_FILE_RECORD_OUTPUT_BUFFER = TPNTFS_FILE_RECORD_OUTPUT_BUFFER

type PNTFS_STATISTICS = TPNTFS_STATISTICS

type PNTFS_VOLUME_DATA_BUFFER = TPNTFS_VOLUME_DATA_BUFFER

type PNTSTATUS = TPNTSTATUS

type PNT_TIB = TPNT_TIB

type PNT_TIB32 = TPNT_TIB32

type PNT_TIB64 = TPNT_TIB64

type PNUMA_NODE_RELATIONSHIP = TPNUMA_NODE_RELATIONSHIP

type PNZCH = TPNZCH

type PNZTCH = TPNZTCH

type PNZWCH = TPNZWCH

type POBJECTDESCRIPTOR = TPOBJECTDESCRIPTOR

type POBJECT_TYPE_LIST = TPOBJECT_TYPE_LIST

type POCSP_BASIC_RESPONSE_ENTRY = TPOCSP_BASIC_RESPONSE_ENTRY

type POCSP_BASIC_RESPONSE_INFO = TPOCSP_BASIC_RESPONSE_INFO

type POCSP_BASIC_REVOKED_INFO = TPOCSP_BASIC_REVOKED_INFO

type POCSP_BASIC_SIGNED_RESPONSE_INFO = TPOCSP_BASIC_SIGNED_RESPONSE_INFO

type POCSP_CERT_ID = TPOCSP_CERT_ID

type POCSP_REQUEST_ENTRY = TPOCSP_REQUEST_ENTRY

type POCSP_REQUEST_INFO = TPOCSP_REQUEST_INFO

type POCSP_RESPONSE_INFO = TPOCSP_RESPONSE_INFO

type POCSP_SIGNATURE_INFO = TPOCSP_SIGNATURE_INFO

type POCSP_SIGNED_REQUEST_INFO = TPOCSP_SIGNED_REQUEST_INFO

type POFSTRUCT = TPOFSTRUCT

type POINT = TPOINT

type POINTER_64_INT = TPOINTER_64_INT

type POINTER_BUTTON_CHANGE_TYPE = TPOINTER_BUTTON_CHANGE_TYPE

type POINTER_DEVICE_CURSOR_INFO = TPOINTER_DEVICE_CURSOR_INFO

type POINTER_DEVICE_CURSOR_TYPE = TPOINTER_DEVICE_CURSOR_TYPE

type POINTER_DEVICE_INFO = TPOINTER_DEVICE_INFO

const POINTER_DEVICE_PRODUCT_STRING_MAX = 520

type POINTER_DEVICE_PROPERTY = TPOINTER_DEVICE_PROPERTY

type POINTER_DEVICE_TYPE = TPOINTER_DEVICE_TYPE

type POINTER_FEEDBACK_MODE = TPOINTER_FEEDBACK_MODE

type POINTER_FLAGS = TPOINTER_FLAGS

const POINTER_FLAG_CANCELED = 32768

const POINTER_FLAG_CAPTURECHANGED = 2097152

const POINTER_FLAG_CONFIDENCE = 16384

const POINTER_FLAG_DOWN = 65536

const POINTER_FLAG_FIFTHBUTTON = 256

const POINTER_FLAG_FIRSTBUTTON = 16

const POINTER_FLAG_FOURTHBUTTON = 128

const POINTER_FLAG_HASTRANSFORM = 4194304

const POINTER_FLAG_HWHEEL = 1048576

const POINTER_FLAG_INCONTACT = 4

const POINTER_FLAG_INRANGE = 2

const POINTER_FLAG_NEW = 1

const POINTER_FLAG_NONE = 0

const POINTER_FLAG_PRIMARY = 8192

const POINTER_FLAG_SECONDBUTTON = 32

const POINTER_FLAG_THIRDBUTTON = 64

const POINTER_FLAG_UP = 262144

const POINTER_FLAG_UPDATE = 131072

const POINTER_FLAG_WHEEL = 524288

type POINTER_INFO = TPOINTER_INFO

type POINTER_INPUT_TYPE = TPOINTER_INPUT_TYPE

const POINTER_MESSAGE_FLAG_CANCELED = 32768

const POINTER_MESSAGE_FLAG_CONFIDENCE = 16384

const POINTER_MESSAGE_FLAG_FIFTHBUTTON = 256

const POINTER_MESSAGE_FLAG_FIRSTBUTTON = 16

const POINTER_MESSAGE_FLAG_FOURTHBUTTON = 128

const POINTER_MESSAGE_FLAG_INCONTACT = 4

const POINTER_MESSAGE_FLAG_INRANGE = 2

const POINTER_MESSAGE_FLAG_NEW = 1

const POINTER_MESSAGE_FLAG_PRIMARY = 8192

const POINTER_MESSAGE_FLAG_SECONDBUTTON = 32

const POINTER_MESSAGE_FLAG_THIRDBUTTON = 64

const POINTER_MOD_CTRL = 8

const POINTER_MOD_SHIFT = 4

type POINTER_PEN_INFO = TPOINTER_PEN_INFO

type POINTER_TOUCH_INFO = TPOINTER_TOUCH_INFO

type POINTER_TYPE_INFO = TPOINTER_TYPE_INFO

type POINTFLOAT = TPOINTFLOAT

type POINTFX = TPOINTFX

type POINTL = TPOINTL

type POINTS = TPOINTS

type POLEUPDATE = TPOLEUPDATE

const POLICY_AUDIT_SUBCATEGORY_COUNT = 56

const POLICY_SHOWREASONUI_ALWAYS = 1

const POLICY_SHOWREASONUI_NEVER = 0

const POLICY_SHOWREASONUI_SERVERONLY = 3

const POLICY_SHOWREASONUI_WORKSTATIONONLY = 2

const POLYFILL_LAST = 2

const POLYGONALCAPS = 32

type POLYTEXT = TPOLYTEXT

type POLYTEXTA = TPOLYTEXTA

type POLYTEXTW = TPOLYTEXTW

type POPENCARDNAME = TPOPENCARDNAME

type POPENCARDNAMEA = TPOPENCARDNAMEA

const POPENCARDNAMEA_EX = 0

type POPENCARDNAMEW = TPOPENCARDNAMEW

const POPENCARDNAMEW_EX = 0

const POPENCARDNAME_A = 0

type POPENCARDNAME_EX = TPOPENCARDNAME_EX

type POPENCARDNAME_EXA = TPOPENCARDNAME_EXA

type POPENCARDNAME_EXW = TPOPENCARDNAME_EXW

const POPENCARDNAME_W = 0

type POPENCARD_SEARCH_CRITERIA = TPOPENCARD_SEARCH_CRITERIA

type POPENCARD_SEARCH_CRITERIAA = TPOPENCARD_SEARCH_CRITERIAA

type POPENCARD_SEARCH_CRITERIAW = TPOPENCARD_SEARCH_CRITERIAW

type POPEN_PRINTER_PROPS_INFO = TPOPEN_PRINTER_PROPS_INFO

type POPEN_PRINTER_PROPS_INFOA = TPOPEN_PRINTER_PROPS_INFOA

type POPEN_PRINTER_PROPS_INFOW = TPOPEN_PRINTER_PROPS_INFOW

type POPEN_VIRTUAL_DISK_PARAMETERS = TPOPEN_VIRTUAL_DISK_PARAMETERS

type POPERATION_END_PARAMETERS = TPOPERATION_END_PARAMETERS

type POPERATION_START_PARAMETERS = TPOPERATION_START_PARAMETERS

type PORT_INFO_1 = TPORT_INFO_1

type PORT_INFO_1A = TPORT_INFO_1A

type PORT_INFO_1W = TPORT_INFO_1W

type PORT_INFO_2 = TPORT_INFO_2

type PORT_INFO_2A = TPORT_INFO_2A

type PORT_INFO_2W = TPORT_INFO_2W

type PORT_INFO_3 = TPORT_INFO_3

type PORT_INFO_3A = TPORT_INFO_3A

type PORT_INFO_3W = TPORT_INFO_3W

const PORT_STATUS_DOOR_OPEN = 7

const PORT_STATUS_NO_TONER = 6

const PORT_STATUS_OFFLINE = 1

const PORT_STATUS_OUTPUT_BIN_FULL = 4

const PORT_STATUS_OUT_OF_MEMORY = 9

const PORT_STATUS_PAPER_JAM = 2

const PORT_STATUS_PAPER_OUT = 3

const PORT_STATUS_PAPER_PROBLEM = 5

const PORT_STATUS_POWER_SAVE = 12

const PORT_STATUS_TONER_LOW = 10

const PORT_STATUS_TYPE_ERROR = 1

const PORT_STATUS_TYPE_INFO = 3

const PORT_STATUS_TYPE_WARNING = 2

const PORT_STATUS_USER_INTERVENTION = 8

const PORT_STATUS_WARMING_UP = 11

const PORT_TYPE_NET_ATTACHED = 8

const PORT_TYPE_READ = 2

const PORT_TYPE_REDIRECTED = 4

const PORT_TYPE_WRITE = 1

const POSTSCRIPT_DATA = 37

const POSTSCRIPT_IDENTIFY = 4117

const POSTSCRIPT_IGNORE = 38

const POSTSCRIPT_INJECTION = 4118

const POSTSCRIPT_PASSTHROUGH = 4115

type POSVERSIONINFO = TPOSVERSIONINFO

type POSVERSIONINFOA = TPOSVERSIONINFOA

type POSVERSIONINFOEX = TPOSVERSIONINFOEX

type POSVERSIONINFOEXA = TPOSVERSIONINFOEXA

type POSVERSIONINFOEXW = TPOSVERSIONINFOEXW

type POSVERSIONINFOW = TPOSVERSIONINFOW

type POUTLINETEXTMETRIC = TPOUTLINETEXTMETRIC

type POUTLINETEXTMETRICA = TPOUTLINETEXTMETRICA

type POUTLINETEXTMETRICW = TPOUTLINETEXTMETRICW

type POWERBROADCAST_SETTING = TPOWERBROADCAST_SETTING

const POWERBUTTON_ACTION_INDEX_HIBERNATE = 2

const POWERBUTTON_ACTION_INDEX_NOTHING = 0

const POWERBUTTON_ACTION_INDEX_SHUTDOWN = 3

const POWERBUTTON_ACTION_INDEX_SLEEP = 1

const POWERBUTTON_ACTION_VALUE_HIBERNATE = 3

const POWERBUTTON_ACTION_VALUE_NOTHING = 0

const POWERBUTTON_ACTION_VALUE_SHUTDOWN = 6

const POWERBUTTON_ACTION_VALUE_SLEEP = 2

type POWER_ACTION = TPOWER_ACTION

const POWER_ACTION_CRITICAL = 2147483648

const POWER_ACTION_DISABLE_WAKES = 1073741824

const POWER_ACTION_HIBERBOOT = 8

const POWER_ACTION_LIGHTEST_FIRST = 268435456

const POWER_ACTION_LOCK_CONSOLE = 536870912

const POWER_ACTION_OVERRIDE_APPS = 4

type POWER_ACTION_POLICY = TPOWER_ACTION_POLICY

const POWER_ACTION_PSEUDO_TRANSITION = 134217728

const POWER_ACTION_QUERY_ALLOWED = 1

const POWER_ACTION_UI_ALLOWED = 2

const POWER_DEVICE_IDLE_POLICY_CONSERVATIVE = 1

const POWER_DEVICE_IDLE_POLICY_PERFORMANCE = 0

const POWER_FORCE_TRIGGER_RESET = 2147483648

type POWER_IDLE_RESILIENCY = TPOWER_IDLE_RESILIENCY

type POWER_INFORMATION_LEVEL = TPOWER_INFORMATION_LEVEL

const POWER_LEVEL_USER_NOTIFY_EXEC = 4

const POWER_LEVEL_USER_NOTIFY_SOUND = 2

const POWER_LEVEL_USER_NOTIFY_TEXT = 1

type POWER_MONITOR_INVOCATION = TPOWER_MONITOR_INVOCATION

type POWER_MONITOR_REQUEST_REASON = TPOWER_MONITOR_REQUEST_REASON

type POWER_PLATFORM_INFORMATION = TPOWER_PLATFORM_INFORMATION

type POWER_PLATFORM_ROLE = TPOWER_PLATFORM_ROLE

const POWER_PLATFORM_ROLE_V1 = 1

const POWER_PLATFORM_ROLE_V1_MAX = 1

const POWER_PLATFORM_ROLE_V2 = 2

const POWER_PLATFORM_ROLE_V2_MAX = 1

const POWER_PLATFORM_ROLE_VERSION = 2

const POWER_PLATFORM_ROLE_VERSION_MAX = 1

type POWER_REQUEST_CONTEXT = TPOWER_REQUEST_CONTEXT

const POWER_REQUEST_CONTEXT_DETAILED_STRING = 2

const POWER_REQUEST_CONTEXT_SIMPLE_STRING = 1

const POWER_REQUEST_CONTEXT_VERSION = 0

type POWER_REQUEST_TYPE = TPOWER_REQUEST_TYPE

type POWER_SESSION_CONNECT = TPOWER_SESSION_CONNECT

type POWER_SESSION_RIT_STATE = TPOWER_SESSION_RIT_STATE

type POWER_SESSION_TIMEOUTS = TPOWER_SESSION_TIMEOUTS

type POWER_SESSION_WINLOGON = TPOWER_SESSION_WINLOGON

const POWER_SETTING_VALUE_VERSION = 1

const POWER_SYSTEM_MAXIMUM = 7

const POWER_USER_NOTIFY_BUTTON = 8

const POWER_USER_NOTIFY_FORCED_SHUTDOWN = 32

const POWER_USER_NOTIFY_SHUTDOWN = 16

type POWER_USER_PRESENCE = TPOWER_USER_PRESENCE

type POWER_USER_PRESENCE_TYPE = TPOWER_USER_PRESENCE_TYPE

const PO_DELETE = 19

const PO_PORTCHANGE = 32

const PO_RENAME = 20

const PO_REN_PORT = 52

const PO_THROTTLE_ADAPTIVE = 3

const PO_THROTTLE_CONSTANT = 1

const PO_THROTTLE_DEGRADE = 2

const PO_THROTTLE_MAXIMUM = 4

const PO_THROTTLE_NONE = 0

type PPACKEDEVENTINFO = TPPACKEDEVENTINFO

type PPAINTSTRUCT = TPPAINTSTRUCT

type PPALETTEENTRY = TPPALETTEENTRY

type PPARAM_OFFSETTABLE = TPPARAM_OFFSETTABLE

type PPARTITION_INFORMATION = TPPARTITION_INFORMATION

type PPARTITION_INFORMATION_EX = TPPARTITION_INFORMATION_EX

type PPARTITION_INFORMATION_GPT = TPPARTITION_INFORMATION_GPT

type PPARTITION_INFORMATION_MBR = TPPARTITION_INFORMATION_MBR

type PPATHNAME_BUFFER = TPPATHNAME_BUFFER

type PPATTERN = TPPATTERN

type PPCMWAVEFORMAT = TPPCMWAVEFORMAT

type PPELARRAY = TPPELARRAY

type PPERFORMANCE_DATA = TPPERFORMANCE_DATA

type PPERF_BIN = TPPERF_BIN

type PPERF_COUNTER_BLOCK = TPPERF_COUNTER_BLOCK

type PPERF_COUNTER_DEFINITION = TPPERF_COUNTER_DEFINITION

type PPERF_DATA_BLOCK = TPPERF_DATA_BLOCK

type PPERF_INSTANCE_DEFINITION = TPPERF_INSTANCE_DEFINITION

type PPERF_OBJECT_TYPE = TPPERF_OBJECT_TYPE

type PPERSISTENT_RESERVE_COMMAND = TPPERSISTENT_RESERVE_COMMAND

type PPIXELFORMATDESCRIPTOR = TPPIXELFORMATDESCRIPTOR

type PPKCS12_PBES2_EXPORT_PARAMS = TPPKCS12_PBES2_EXPORT_PARAMS

type PPLEX_READ_DATA_REQUEST = TPPLEX_READ_DATA_REQUEST

const PPM_FIRMWARE_ACPI1C2 = 1

const PPM_FIRMWARE_ACPI1C3 = 2

const PPM_FIRMWARE_ACPI1TSTATES = 4

const PPM_FIRMWARE_CPC = 262144

const PPM_FIRMWARE_CSD = 16

const PPM_FIRMWARE_CST = 8

const PPM_FIRMWARE_OSC = 65536

const PPM_FIRMWARE_PCCH = 16384

const PPM_FIRMWARE_PCCP = 32768

const PPM_FIRMWARE_PCT = 32

const PPM_FIRMWARE_PDC = 131072

const PPM_FIRMWARE_PPC = 256

const PPM_FIRMWARE_PSD = 512

const PPM_FIRMWARE_PSS = 64

const PPM_FIRMWARE_PTC = 1024

const PPM_FIRMWARE_TPC = 4096

const PPM_FIRMWARE_TSD = 8192

const PPM_FIRMWARE_TSS = 2048

const PPM_FIRMWARE_XPSS = 128

type PPM_IDLESTATE_EVENT = TPPM_IDLESTATE_EVENT

type PPM_IDLE_ACCOUNTING = TPPM_IDLE_ACCOUNTING

type PPM_IDLE_ACCOUNTING_EX = TPPM_IDLE_ACCOUNTING_EX

const PPM_IDLE_IMPLEMENTATION_CSTATES = 1

const PPM_IDLE_IMPLEMENTATION_NONE = 0

const PPM_IDLE_IMPLEMENTATION_PEP = 2

type PPM_IDLE_STATE_ACCOUNTING = TPPM_IDLE_STATE_ACCOUNTING

type PPM_IDLE_STATE_ACCOUNTING_EX = TPPM_IDLE_STATE_ACCOUNTING_EX

type PPM_IDLE_STATE_BUCKET_EX = TPPM_IDLE_STATE_BUCKET_EX

const PPM_PERFORMANCE_IMPLEMENTATION_CPPC = 3

const PPM_PERFORMANCE_IMPLEMENTATION_NONE = 0

const PPM_PERFORMANCE_IMPLEMENTATION_PCCV1 = 2

const PPM_PERFORMANCE_IMPLEMENTATION_PEP = 4

const PPM_PERFORMANCE_IMPLEMENTATION_PSTATES = 1

type PPM_PERFSTATE_DOMAIN_EVENT = TPPM_PERFSTATE_DOMAIN_EVENT

type PPM_PERFSTATE_EVENT = TPPM_PERFSTATE_EVENT

type PPM_THERMALCHANGE_EVENT = TPPM_THERMALCHANGE_EVENT

type PPM_THERMAL_POLICY_EVENT = TPPM_THERMAL_POLICY_EVENT

type PPM_WMI_IDLE_STATE = TPPM_WMI_IDLE_STATE

type PPM_WMI_IDLE_STATES = TPPM_WMI_IDLE_STATES

type PPM_WMI_IDLE_STATES_EX = TPPM_WMI_IDLE_STATES_EX

type PPM_WMI_LEGACY_PERFSTATE = TPPM_WMI_LEGACY_PERFSTATE

type PPM_WMI_PERF_STATE = TPPM_WMI_PERF_STATE

type PPM_WMI_PERF_STATES = TPPM_WMI_PERF_STATES

type PPM_WMI_PERF_STATES_EX = TPPM_WMI_PERF_STATES_EX

type PPOINT = TPPOINT

type PPOINTER_TYPE_INFO = TPPOINTER_TYPE_INFO

type PPOINTFLOAT = TPPOINTFLOAT

type PPOINTL = TPPOINTL

type PPOINTS = TPPOINTS

type PPOLYTEXT = TPPOLYTEXT

type PPOLYTEXTA = TPPOLYTEXTA

type PPOLYTEXTW = TPPOLYTEXTW

type PPORT_INFO_1 = TPPORT_INFO_1

type PPORT_INFO_1A = TPPORT_INFO_1A

type PPORT_INFO_1W = TPPORT_INFO_1W

type PPORT_INFO_2 = TPPORT_INFO_2

type PPORT_INFO_2A = TPPORT_INFO_2A

type PPORT_INFO_2W = TPPORT_INFO_2W

type PPORT_INFO_3 = TPPORT_INFO_3

type PPORT_INFO_3A = TPPORT_INFO_3A

type PPORT_INFO_3W = TPPORT_INFO_3W

type PPOWERBROADCAST_SETTING = TPPOWERBROADCAST_SETTING

type PPOWER_ACTION = TPPOWER_ACTION

type PPOWER_ACTION_POLICY = TPPOWER_ACTION_POLICY

type PPOWER_IDLE_RESILIENCY = TPPOWER_IDLE_RESILIENCY

type PPOWER_MONITOR_INVOCATION = TPPOWER_MONITOR_INVOCATION

type PPOWER_PLATFORM_INFORMATION = TPPOWER_PLATFORM_INFORMATION

type PPOWER_PLATFORM_ROLE = TPPOWER_PLATFORM_ROLE

type PPOWER_REQUEST_CONTEXT = TPPOWER_REQUEST_CONTEXT

type PPOWER_REQUEST_TYPE = TPPOWER_REQUEST_TYPE

type PPOWER_SESSION_CONNECT = TPPOWER_SESSION_CONNECT

type PPOWER_SESSION_RIT_STATE = TPPOWER_SESSION_RIT_STATE

type PPOWER_SESSION_TIMEOUTS = TPPOWER_SESSION_TIMEOUTS

type PPOWER_SESSION_WINLOGON = TPPOWER_SESSION_WINLOGON

type PPOWER_USER_PRESENCE = TPPOWER_USER_PRESENCE

type PPOWER_USER_PRESENCE_TYPE = TPPOWER_USER_PRESENCE_TYPE

type PPPM_IDLESTATE_EVENT = TPPPM_IDLESTATE_EVENT

type PPPM_IDLE_ACCOUNTING = TPPPM_IDLE_ACCOUNTING

type PPPM_IDLE_ACCOUNTING_EX = TPPPM_IDLE_ACCOUNTING_EX

type PPPM_IDLE_STATE_ACCOUNTING = TPPPM_IDLE_STATE_ACCOUNTING

type PPPM_IDLE_STATE_ACCOUNTING_EX = TPPPM_IDLE_STATE_ACCOUNTING_EX

type PPPM_IDLE_STATE_BUCKET_EX = TPPPM_IDLE_STATE_BUCKET_EX

type PPPM_PERFSTATE_DOMAIN_EVENT = TPPPM_PERFSTATE_DOMAIN_EVENT

type PPPM_PERFSTATE_EVENT = TPPPM_PERFSTATE_EVENT

type PPPM_THERMALCHANGE_EVENT = TPPPM_THERMALCHANGE_EVENT

type PPPM_THERMAL_POLICY_EVENT = TPPPM_THERMAL_POLICY_EVENT

type PPPM_WMI_IDLE_STATE = TPPPM_WMI_IDLE_STATE

type PPPM_WMI_IDLE_STATES = TPPPM_WMI_IDLE_STATES

type PPPM_WMI_IDLE_STATES_EX = TPPPM_WMI_IDLE_STATES_EX

type PPPM_WMI_LEGACY_PERFSTATE = TPPPM_WMI_LEGACY_PERFSTATE

type PPPM_WMI_PERF_STATE = TPPPM_WMI_PERF_STATE

type PPPM_WMI_PERF_STATES = TPPPM_WMI_PERF_STATES

type PPPM_WMI_PERF_STATES_EX = TPPPM_WMI_PERF_STATES_EX

type PPREVENT_MEDIA_REMOVAL = TPPREVENT_MEDIA_REMOVAL

type PPRINTER_CONNECTION_INFO_1 = TPPRINTER_CONNECTION_INFO_1

type PPRINTER_DEFAULTS = TPPRINTER_DEFAULTS

type PPRINTER_DEFAULTSA = TPPRINTER_DEFAULTSA

type PPRINTER_DEFAULTSW = TPPRINTER_DEFAULTSW

type PPRINTER_ENUM_VALUES = TPPRINTER_ENUM_VALUES

type PPRINTER_ENUM_VALUESA = TPPRINTER_ENUM_VALUESA

type PPRINTER_ENUM_VALUESW = TPPRINTER_ENUM_VALUESW

type PPRINTER_INFO_1 = TPPRINTER_INFO_1

type PPRINTER_INFO_1A = TPPRINTER_INFO_1A

type PPRINTER_INFO_1W = TPPRINTER_INFO_1W

type PPRINTER_INFO_2 = TPPRINTER_INFO_2

type PPRINTER_INFO_2A = TPPRINTER_INFO_2A

type PPRINTER_INFO_2W = TPPRINTER_INFO_2W

type PPRINTER_INFO_3 = TPPRINTER_INFO_3

type PPRINTER_INFO_4 = TPPRINTER_INFO_4

type PPRINTER_INFO_4A = TPPRINTER_INFO_4A

type PPRINTER_INFO_4W = TPPRINTER_INFO_4W

type PPRINTER_INFO_5 = TPPRINTER_INFO_5

type PPRINTER_INFO_5A = TPPRINTER_INFO_5A

type PPRINTER_INFO_5W = TPPRINTER_INFO_5W

type PPRINTER_INFO_6 = TPPRINTER_INFO_6

type PPRINTER_INFO_7 = TPPRINTER_INFO_7

type PPRINTER_INFO_7A = TPPRINTER_INFO_7A

type PPRINTER_INFO_7W = TPPRINTER_INFO_7W

type PPRINTER_INFO_8 = TPPRINTER_INFO_8

type PPRINTER_INFO_8A = TPPRINTER_INFO_8A

type PPRINTER_INFO_8W = TPPRINTER_INFO_8W

type PPRINTER_INFO_9 = TPPRINTER_INFO_9

type PPRINTER_INFO_9A = TPPRINTER_INFO_9A

type PPRINTER_INFO_9W = TPPRINTER_INFO_9W

type PPRINTER_NOTIFY_INFO = TPPRINTER_NOTIFY_INFO

type PPRINTER_NOTIFY_INFO_DATA = TPPRINTER_NOTIFY_INFO_DATA

type PPRINTER_NOTIFY_OPTIONS = TPPRINTER_NOTIFY_OPTIONS

type PPRINTER_NOTIFY_OPTIONS_TYPE = TPPRINTER_NOTIFY_OPTIONS_TYPE

type PPRINTER_OPTIONS = TPPRINTER_OPTIONS

type PPRINTPROCESSOR_CAPS_1 = TPPRINTPROCESSOR_CAPS_1

type PPRINTPROCESSOR_CAPS_2 = TPPRINTPROCESSOR_CAPS_2

type PPRINTPROCESSOR_INFO_1 = TPPRINTPROCESSOR_INFO_1

type PPRINTPROCESSOR_INFO_1A = TPPRINTPROCESSOR_INFO_1A

type PPRINTPROCESSOR_INFO_1W = TPPRINTPROCESSOR_INFO_1W

type PPRIVILEGE_SET = TPPRIVILEGE_SET

type PPROCESSOR_GROUP_INFO = TPPROCESSOR_GROUP_INFO

type PPROCESSOR_IDLESTATE_INFO = TPPROCESSOR_IDLESTATE_INFO

type PPROCESSOR_IDLESTATE_POLICY = TPPROCESSOR_IDLESTATE_POLICY

type PPROCESSOR_NUMBER = TPPROCESSOR_NUMBER

type PPROCESSOR_PERFSTATE_POLICY = TPPROCESSOR_PERFSTATE_POLICY

type PPROCESSOR_POWER_POLICY = TPPROCESSOR_POWER_POLICY

type PPROCESSOR_POWER_POLICY_INFO = TPPROCESSOR_POWER_POLICY_INFO

type PPROCESSOR_RELATIONSHIP = TPPROCESSOR_RELATIONSHIP

type PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET = TPPROCESS_DYNAMIC_EH_CONTINUATION_TARGET

type PPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION = TPPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION

type PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE = TPPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE

type PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION = TPPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION

type PPROCESS_HEAP_ENTRY = TPPROCESS_HEAP_ENTRY

type PPROCESS_INFORMATION = TPPROCESS_INFORMATION

type PPROCESS_LEAP_SECOND_INFO = TPPROCESS_LEAP_SECOND_INFO

type PPROCESS_MEMORY_EXHAUSTION_INFO = TPPROCESS_MEMORY_EXHAUSTION_INFO

type PPROCESS_MEMORY_EXHAUSTION_TYPE = TPPROCESS_MEMORY_EXHAUSTION_TYPE

type PPROCESS_MITIGATION_ASLR_POLICY = TPPROCESS_MITIGATION_ASLR_POLICY

type PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = TPPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY

type PPROCESS_MITIGATION_CHILD_PROCESS_POLICY = TPPROCESS_MITIGATION_CHILD_PROCESS_POLICY

type PPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = TPPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY

type PPROCESS_MITIGATION_DEP_POLICY = TPPROCESS_MITIGATION_DEP_POLICY

type PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY = TPPROCESS_MITIGATION_DYNAMIC_CODE_POLICY

type PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = TPPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY

type PPROCESS_MITIGATION_FONT_DISABLE_POLICY = TPPROCESS_MITIGATION_FONT_DISABLE_POLICY

type PPROCESS_MITIGATION_IMAGE_LOAD_POLICY = TPPROCESS_MITIGATION_IMAGE_LOAD_POLICY

type PPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY = TPPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY

type PPROCESS_MITIGATION_POLICY = TPPROCESS_MITIGATION_POLICY

type PPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY = TPPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY

type PPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY = TPPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY

type PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = TPPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY

type PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = TPPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY

type PPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY = TPPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY

type PPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY = TPPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY

type PPROCESS_POWER_THROTTLING_STATE = TPPROCESS_POWER_THROTTLING_STATE

type PPROC_THREAD_ATTRIBUTE_LIST = TPPROC_THREAD_ATTRIBUTE_LIST

type PPROTOENT = TPPROTOENT

type PPROVIDER = TPPROVIDER

type PPROVIDOR_INFO_1 = TPPROVIDOR_INFO_1

type PPROVIDOR_INFO_1A = TPPROVIDOR_INFO_1A

type PPROVIDOR_INFO_1W = TPPROVIDOR_INFO_1W

type PPROVIDOR_INFO_2 = TPPROVIDOR_INFO_2

type PPROVIDOR_INFO_2A = TPPROVIDOR_INFO_2A

type PPROVIDOR_INFO_2W = TPPROVIDOR_INFO_2W

type PPSFEATURE_CUSTPAPER = TPPSFEATURE_CUSTPAPER

type PPSFEATURE_OUTPUT = TPPSFEATURE_OUTPUT

type PPSINJECTDATA = TPPSINJECTDATA

type PPVALUE = TPPVALUE

type PPVALUEA = TPPVALUEA

type PPVALUEW = TPPVALUEW

const PP_ADMIN_PIN = 31

const PP_APPLI_CERT = 18

const PP_CERTCHAIN = 9

const PP_CHANGE_PASSWORD = 7

const PP_CLIENT_HWND = 1

const PP_CONTAINER = 6

const PP_CONTEXT_INFO = 11

const PP_CRYPT_COUNT_KEY_USE = 41

const PP_DELETEKEY = 24

const PP_DISPLAYERRORS = 1

const PP_ENUMALGS = 1

const PP_ENUMALGS_EX = 22

const PP_ENUMCONTAINERS = 2

const PP_ENUMELECTROOTS = 26

const PP_ENUMEX_SIGNING_PROT = 40

const PP_ENUMMANDROOTS = 25

const PP_IMPTYPE = 3

const PP_KEYEXCHANGE_ALG = 14

const PP_KEYEXCHANGE_KEYSIZE = 12

const PP_KEYEXCHANGE_PIN = 32

const PP_KEYSET_SEC_DESCR = 8

const PP_KEYSET_TYPE = 27

const PP_KEYSPEC = 39

const PP_KEYSTORAGE = 17

const PP_KEYX_KEYSIZE_INC = 35

const PP_KEY_TYPE_SUBTYPE = 10

const PP_NAME = 4

const PP_PIN_PROMPT_STRING = 44

const PP_PROVTYPE = 16

const PP_ROOT_CERTSTORE = 46

const PP_SECURE_KEYEXCHANGE_PIN = 47

const PP_SECURE_SIGNATURE_PIN = 48

const PP_SESSION_KEYSIZE = 20

const PP_SGC_INFO = 37

const PP_SIGNATURE_ALG = 15

const PP_SIGNATURE_KEYSIZE = 13

const PP_SIGNATURE_PIN = 33

const PP_SIG_KEYSIZE_INC = 34

const PP_SMARTCARD_GUID = 45

const PP_SMARTCARD_READER = 43

const PP_SMARTCARD_READER_ICON = 47

const PP_SYM_KEYSIZE = 19

const PP_UI_PROMPT = 21

const PP_UNIQUE_CONTAINER = 36

const PP_USER_CERTSTORE = 42

const PP_USE_HARDWARE_RNG = 38

const PP_VERSION = 5

type PQUERYACTCTXW_FUNC = TPQUERYACTCTXW_FUNC

type PQUERYHANDLER = TPQUERYHANDLER

type PQUERY_CHANGES_VIRTUAL_DISK_RANGE = TPQUERY_CHANGES_VIRTUAL_DISK_RANGE

type PQUOTA_LIMITS = TPQUOTA_LIMITS

type PQUOTA_LIMITS_EX = TPQUOTA_LIMITS_EX

const PRAGMA_DEPRECATED_DDK = 0

type PRATE_QUOTA_LIMIT = TPRATE_QUOTA_LIMIT

type PRAWHID = TPRAWHID

type PRAWINPUT = TPRAWINPUT

type PRAWINPUTDEVICE = TPRAWINPUTDEVICE

type PRAWINPUTDEVICELIST = TPRAWINPUTDEVICELIST

type PRAWINPUTHEADER = TPRAWINPUTHEADER

type PRAWKEYBOARD = TPRAWKEYBOARD

type PRAWMOUSE = TPRAWMOUSE

type PREAD_ELEMENT_ADDRESS_INFO = TPREAD_ELEMENT_ADDRESS_INFO

type PREAD_USN_JOURNAL_DATA = TPREAD_USN_JOURNAL_DATA

type PREASON_CONTEXT = TPREASON_CONTEXT

type PREASSIGN_BLOCKS = TPREASSIGN_BLOCKS

type PREASSIGN_BLOCKS_EX = TPREASSIGN_BLOCKS_EX

type PRECONVERTSTRING = TPRECONVERTSTRING

type PRECT = TPRECT

type PRECTL = TPRECTL

type PREDIRECTION_DESCRIPTOR = TPREDIRECTION_DESCRIPTOR

type PREDIRECTION_FUNCTION_DESCRIPTOR = TPREDIRECTION_FUNCTION_DESCRIPTOR

type PREGISTERCLASSNAMEW = TPREGISTERCLASSNAMEW

type PREGISTERWORD = TPREGISTERWORD

type PREGISTERWORDA = TPREGISTERWORDA

type PREGISTERWORDW = TPREGISTERWORDW

type PREMSECURITY_ATTRIBUTES = TPREMSECURITY_ATTRIBUTES

type PREPARSE_GUID_DATA_BUFFER = TPREPARSE_GUID_DATA_BUFFER

type PREQUEST_OPLOCK_INPUT_BUFFER = TPREQUEST_OPLOCK_INPUT_BUFFER

type PREQUEST_OPLOCK_OUTPUT_BUFFER = TPREQUEST_OPLOCK_OUTPUT_BUFFER

type PREQUEST_RAW_ENCRYPTED_DATA = TPREQUEST_RAW_ENCRYPTED_DATA

type PRESIZE_VIRTUAL_DISK_PARAMETERS = TPRESIZE_VIRTUAL_DISK_PARAMETERS

type PRESOURCEMANAGER_BASIC_INFORMATION = TPRESOURCEMANAGER_BASIC_INFORMATION

type PRESOURCEMANAGER_COMPLETION_INFORMATION = TPRESOURCEMANAGER_COMPLETION_INFORMATION

type PRESUME_PERFORMANCE = TPRESUME_PERFORMANCE

type PRETRIEVAL_POINTERS_BUFFER = TPRETRIEVAL_POINTERS_BUFFER

type PRETRIEVAL_POINTER_BASE = TPRETRIEVAL_POINTER_BASE

type PREVENT_MEDIA_REMOVAL = TPREVENT_MEDIA_REMOVAL

const PRF_CHECKVISIBLE = 1

const PRF_CHILDREN = 16

const PRF_CLIENT = 4

const PRF_ERASEBKGND = 8

const PRF_NONCLIENT = 2

const PRF_OWNED = 32

type PRGBTRIPLE = TPRGBTRIPLE

type PRGNDATA = TPRGNDATA

type PRGNDATAHEADER = TPRGNDATAHEADER

type PRID_DEVICE_INFO = TPRID_DEVICE_INFO

type PRID_DEVICE_INFO_HID = TPRID_DEVICE_INFO_HID

type PRID_DEVICE_INFO_KEYBOARD = TPRID_DEVICE_INFO_KEYBOARD

type PRID_DEVICE_INFO_MOUSE = TPRID_DEVICE_INFO_MOUSE

const PRINTACTION_DOCUMENTDEFAULTS = 6

const PRINTACTION_NETINSTALL = 2

const PRINTACTION_NETINSTALLLINK = 3

const PRINTACTION_OPEN = 0

const PRINTACTION_OPENNETPRN = 5

const PRINTACTION_PROPERTIES = 1

const PRINTACTION_SERVERPROPERTIES = 7

const PRINTACTION_TESTPAGE = 4

type PRINTDLG = TPRINTDLG

type PRINTDLGA = TPRINTDLGA

type PRINTDLGEX = TPRINTDLGEX

type PRINTDLGEXA = TPRINTDLGEXA

const PRINTDLGEXORD = 1549

type PRINTDLGEXW = TPRINTDLGEXW

const PRINTDLGORD = 1538

type PRINTDLGW = TPRINTDLGW

type PRINTEROP_FLAGS = TPRINTEROP_FLAGS

const PRINTER_ACCESS_ADMINISTER = 4

const PRINTER_ACCESS_USE = 8

const PRINTER_ALL_ACCESS = 983052

const PRINTER_ATTRIBUTE_DEFAULT = 4

const PRINTER_ATTRIBUTE_DIRECT = 2

const PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 512

const PRINTER_ATTRIBUTE_ENABLE_BIDI = 2048

const PRINTER_ATTRIBUTE_ENABLE_DEVQ = 128

const PRINTER_ATTRIBUTE_FAX = 16384

const PRINTER_ATTRIBUTE_HIDDEN = 32

const PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 256

const PRINTER_ATTRIBUTE_LOCAL = 64

const PRINTER_ATTRIBUTE_NETWORK = 16

const PRINTER_ATTRIBUTE_PUBLISHED = 8192

const PRINTER_ATTRIBUTE_QUEUED = 1

const PRINTER_ATTRIBUTE_RAW_ONLY = 4096

const PRINTER_ATTRIBUTE_SHARED = 8

const PRINTER_ATTRIBUTE_TS = 32768

const PRINTER_ATTRIBUTE_WORK_OFFLINE = 1024

const PRINTER_CHANGE_ADD_FORM = 65536

const PRINTER_CHANGE_ADD_JOB = 256

const PRINTER_CHANGE_ADD_PORT = 1048576

const PRINTER_CHANGE_ADD_PRINTER = 1

const PRINTER_CHANGE_ADD_PRINTER_DRIVER = 268435456

const PRINTER_CHANGE_ADD_PRINT_PROCESSOR = 16777216

const PRINTER_CHANGE_ALL = 2004353023

const PRINTER_CHANGE_CONFIGURE_PORT = 2097152

const PRINTER_CHANGE_DELETE_FORM = 262144

const PRINTER_CHANGE_DELETE_JOB = 1024

const PRINTER_CHANGE_DELETE_PORT = 4194304

const PRINTER_CHANGE_DELETE_PRINTER = 4

const PRINTER_CHANGE_DELETE_PRINTER_DRIVER = 1073741824

const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = 67108864

const PRINTER_CHANGE_FAILED_CONNECTION_PRINTER = 8

const PRINTER_CHANGE_FORM = 458752

const PRINTER_CHANGE_JOB = 65280

const PRINTER_CHANGE_PORT = 7340032

const PRINTER_CHANGE_PRINTER = 255

const PRINTER_CHANGE_PRINTER_DRIVER = 1879048192

const PRINTER_CHANGE_PRINT_PROCESSOR = 117440512

const PRINTER_CHANGE_SET_FORM = 131072

const PRINTER_CHANGE_SET_JOB = 512

const PRINTER_CHANGE_SET_PRINTER = 2

const PRINTER_CHANGE_SET_PRINTER_DRIVER = 536870912

const PRINTER_CHANGE_TIMEOUT = 2147483648

const PRINTER_CHANGE_WRITE_JOB = 2048

type PRINTER_CONNECTION_INFO_1 = TPRINTER_CONNECTION_INFO_1

const PRINTER_CONNECTION_MISMATCH = 32

const PRINTER_CONNECTION_NO_UI = 64

const PRINTER_CONTROL_PAUSE = 1

const PRINTER_CONTROL_PURGE = 3

const PRINTER_CONTROL_RESUME = 2

const PRINTER_CONTROL_SET_STATUS = 4

type PRINTER_DEFAULTS = TPRINTER_DEFAULTS

type PRINTER_DEFAULTSA = TPRINTER_DEFAULTSA

type PRINTER_DEFAULTSW = TPRINTER_DEFAULTSW

const PRINTER_ENUM_CONNECTIONS = 4

const PRINTER_ENUM_CONTAINER = 32768

const PRINTER_ENUM_DEFAULT = 1

const PRINTER_ENUM_EXPAND = 16384

const PRINTER_ENUM_FAVORITE = 4

const PRINTER_ENUM_HIDE = 16777216

const PRINTER_ENUM_ICON1 = 65536

const PRINTER_ENUM_ICON2 = 131072

const PRINTER_ENUM_ICON3 = 262144

const PRINTER_ENUM_ICON4 = 524288

const PRINTER_ENUM_ICON5 = 1048576

const PRINTER_ENUM_ICON6 = 2097152

const PRINTER_ENUM_ICON7 = 4194304

const PRINTER_ENUM_ICON8 = 8388608

const PRINTER_ENUM_ICONMASK = 16711680

const PRINTER_ENUM_LOCAL = 2

const PRINTER_ENUM_NAME = 8

const PRINTER_ENUM_NETWORK = 64

const PRINTER_ENUM_REMOTE = 16

const PRINTER_ENUM_SHARED = 32

type PRINTER_ENUM_VALUES = TPRINTER_ENUM_VALUES

type PRINTER_ENUM_VALUESA = TPRINTER_ENUM_VALUESA

type PRINTER_ENUM_VALUESW = TPRINTER_ENUM_VALUESW

const PRINTER_ERROR_INFORMATION = 2147483648

const PRINTER_ERROR_JAM = 2

const PRINTER_ERROR_OUTOFPAPER = 1

const PRINTER_ERROR_OUTOFTONER = 4

const PRINTER_ERROR_SEVERE = 536870912

const PRINTER_ERROR_WARNING = 1073741824

const PRINTER_EXECUTE = 131080

const PRINTER_FONTTYPE = 16384

type PRINTER_INFO_1 = TPRINTER_INFO_1

type PRINTER_INFO_1A = TPRINTER_INFO_1A

type PRINTER_INFO_1W = TPRINTER_INFO_1W

type PRINTER_INFO_2 = TPRINTER_INFO_2

type PRINTER_INFO_2A = TPRINTER_INFO_2A

type PRINTER_INFO_2W = TPRINTER_INFO_2W

type PRINTER_INFO_3 = TPRINTER_INFO_3

type PRINTER_INFO_4 = TPRINTER_INFO_4

type PRINTER_INFO_4A = TPRINTER_INFO_4A

type PRINTER_INFO_4W = TPRINTER_INFO_4W

type PRINTER_INFO_5 = TPRINTER_INFO_5

type PRINTER_INFO_5A = TPRINTER_INFO_5A

type PRINTER_INFO_5W = TPRINTER_INFO_5W

type PRINTER_INFO_6 = TPRINTER_INFO_6

type PRINTER_INFO_7 = TPRINTER_INFO_7

type PRINTER_INFO_7A = TPRINTER_INFO_7A

type PRINTER_INFO_7W = TPRINTER_INFO_7W

type PRINTER_INFO_8 = TPRINTER_INFO_8

type PRINTER_INFO_8A = TPRINTER_INFO_8A

type PRINTER_INFO_8W = TPRINTER_INFO_8W

type PRINTER_INFO_9 = TPRINTER_INFO_9

type PRINTER_INFO_9A = TPRINTER_INFO_9A

type PRINTER_INFO_9W = TPRINTER_INFO_9W

const PRINTER_NOTIFY_FIELD_ATTRIBUTES = 13

const PRINTER_NOTIFY_FIELD_AVERAGE_PPM = 21

const PRINTER_NOTIFY_FIELD_BYTES_PRINTED = 25

const PRINTER_NOTIFY_FIELD_CJOBS = 20

const PRINTER_NOTIFY_FIELD_COMMENT = 5

const PRINTER_NOTIFY_FIELD_DATATYPE = 11

const PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY = 15

const PRINTER_NOTIFY_FIELD_DEVMODE = 7

const PRINTER_NOTIFY_FIELD_DRIVER_NAME = 4

const PRINTER_NOTIFY_FIELD_LOCATION = 6

const PRINTER_NOTIFY_FIELD_OBJECT_GUID = 26

const PRINTER_NOTIFY_FIELD_PAGES_PRINTED = 23

const PRINTER_NOTIFY_FIELD_PARAMETERS = 10

const PRINTER_NOTIFY_FIELD_PORT_NAME = 3

const PRINTER_NOTIFY_FIELD_PRINTER_NAME = 1

const PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR = 9

const PRINTER_NOTIFY_FIELD_PRIORITY = 14

const PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR = 12

const PRINTER_NOTIFY_FIELD_SEPFILE = 8

const PRINTER_NOTIFY_FIELD_SERVER_NAME = 0

const PRINTER_NOTIFY_FIELD_SHARE_NAME = 2

const PRINTER_NOTIFY_FIELD_START_TIME = 16

const PRINTER_NOTIFY_FIELD_STATUS = 18

const PRINTER_NOTIFY_FIELD_STATUS_STRING = 19

const PRINTER_NOTIFY_FIELD_TOTAL_BYTES = 24

const PRINTER_NOTIFY_FIELD_TOTAL_PAGES = 22

const PRINTER_NOTIFY_FIELD_UNTIL_TIME = 17

type PRINTER_NOTIFY_INFO = TPRINTER_NOTIFY_INFO

type PRINTER_NOTIFY_INFO_DATA = TPRINTER_NOTIFY_INFO_DATA

const PRINTER_NOTIFY_INFO_DISCARDED = 1

type PRINTER_NOTIFY_OPTIONS = TPRINTER_NOTIFY_OPTIONS

const PRINTER_NOTIFY_OPTIONS_REFRESH = 1

type PRINTER_NOTIFY_OPTIONS_TYPE = TPRINTER_NOTIFY_OPTIONS_TYPE

const PRINTER_NOTIFY_TYPE = 0

type PRINTER_OPTIONS = TPRINTER_OPTIONS

type PRINTER_OPTION_FLAGS = TPRINTER_OPTION_FLAGS

const PRINTER_READ = 131080

const PRINTER_STATUS_BUSY = 512

const PRINTER_STATUS_DOOR_OPEN = 4194304

const PRINTER_STATUS_ERROR = 2

const PRINTER_STATUS_INITIALIZING = 32768

const PRINTER_STATUS_IO_ACTIVE = 256

const PRINTER_STATUS_MANUAL_FEED = 32

const PRINTER_STATUS_NOT_AVAILABLE = 4096

const PRINTER_STATUS_NO_TONER = 262144

const PRINTER_STATUS_OFFLINE = 128

const PRINTER_STATUS_OUTPUT_BIN_FULL = 2048

const PRINTER_STATUS_OUT_OF_MEMORY = 2097152

const PRINTER_STATUS_PAGE_PUNT = 524288

const PRINTER_STATUS_PAPER_JAM = 8

const PRINTER_STATUS_PAPER_OUT = 16

const PRINTER_STATUS_PAPER_PROBLEM = 64

const PRINTER_STATUS_PAUSED = 1

const PRINTER_STATUS_PENDING_DELETION = 4

const PRINTER_STATUS_POWER_SAVE = 16777216

const PRINTER_STATUS_PRINTING = 1024

const PRINTER_STATUS_PROCESSING = 16384

const PRINTER_STATUS_SERVER_UNKNOWN = 8388608

const PRINTER_STATUS_TONER_LOW = 131072

const PRINTER_STATUS_USER_INTERVENTION = 1048576

const PRINTER_STATUS_WAITING = 8192

const PRINTER_STATUS_WARMING_UP = 65536

const PRINTER_WRITE = 131080

type PRINTPAGERANGE = TPRINTPAGERANGE

type PRINTPROCESSOR_CAPS_1 = TPRINTPROCESSOR_CAPS_1

type PRINTPROCESSOR_CAPS_2 = TPRINTPROCESSOR_CAPS_2

type PRINTPROCESSOR_INFO_1 = TPRINTPROCESSOR_INFO_1

type PRINTPROCESSOR_INFO_1A = TPRINTPROCESSOR_INFO_1A

type PRINTPROCESSOR_INFO_1W = TPRINTPROCESSOR_INFO_1W

const PRINTRATEUNIT_CPS = 2

const PRINTRATEUNIT_IPM = 4

const PRINTRATEUNIT_LPM = 3

const PRINTRATEUNIT_PPM = 1

const PRINT_PROP_FORCE_NAME = 1

type PRIORITY_HINT = TPRIORITY_HINT

const PRIVATEKEYBLOB = 7

const PRIVATE_NAMESPACE_FLAG_DESTROY = 1

type PRIVILEGE_SET = TPRIVILEGE_SET

const PRIVILEGE_SET_ALL_NECESSARY = 1

type PRKCRM_MARSHAL_HEADER = TPRKCRM_MARSHAL_HEADER

type PRKCRM_PROTOCOL_BLOB = TPRKCRM_PROTOCOL_BLOB

type PRKCRM_TRANSACTION_BLOB = TPRKCRM_TRANSACTION_BLOB

type PRLIST_ENTRY = TPRLIST_ENTRY

const PRNSETUPDLGORD = 1539

type PROC = TPROC

const PROCESSOR_ALPHA_21064 = 21064

const PROCESSOR_AMD_X8664 = 8664

const PROCESSOR_ARCHITECTURE_ALPHA = 2

const PROCESSOR_ARCHITECTURE_ALPHA64 = 7

const PROCESSOR_ARCHITECTURE_AMD64 = 9

const PROCESSOR_ARCHITECTURE_ARM = 5

const PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64 = 13

const PROCESSOR_ARCHITECTURE_ARM64 = 12

const PROCESSOR_ARCHITECTURE_IA32_ON_ARM64 = 14

const PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 = 10

const PROCESSOR_ARCHITECTURE_IA64 = 6

const PROCESSOR_ARCHITECTURE_INTEL = 0

const PROCESSOR_ARCHITECTURE_MIPS = 1

const PROCESSOR_ARCHITECTURE_MSIL = 8

const PROCESSOR_ARCHITECTURE_NEUTRAL = 11

const PROCESSOR_ARCHITECTURE_PPC = 3

const PROCESSOR_ARCHITECTURE_SHX = 4

const PROCESSOR_ARCHITECTURE_UNKNOWN = 65535

const PROCESSOR_ARM720 = 1824

const PROCESSOR_ARM820 = 2080

const PROCESSOR_ARM920 = 2336

const PROCESSOR_ARM_7TDMI = 70001

type PROCESSOR_CACHE_TYPE = TPROCESSOR_CACHE_TYPE

type PROCESSOR_GROUP_INFO = TPROCESSOR_GROUP_INFO

const PROCESSOR_HITACHI_SH3 = 10003

const PROCESSOR_HITACHI_SH3E = 10004

const PROCESSOR_HITACHI_SH4 = 10005

type PROCESSOR_IDLESTATE_INFO = TPROCESSOR_IDLESTATE_INFO

type PROCESSOR_IDLESTATE_POLICY = TPROCESSOR_IDLESTATE_POLICY

const PROCESSOR_IDLESTATE_POLICY_COUNT = 3

const PROCESSOR_INTEL_386 = 386

const PROCESSOR_INTEL_486 = 486

const PROCESSOR_INTEL_IA64 = 2200

const PROCESSOR_INTEL_PENTIUM = 586

const PROCESSOR_MIPS_R4000 = 4000

const PROCESSOR_MOTOROLA_821 = 821

type PROCESSOR_NUMBER = TPROCESSOR_NUMBER

const PROCESSOR_OPTIL = 18767

type PROCESSOR_PERFSTATE_POLICY = TPROCESSOR_PERFSTATE_POLICY

const PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE = 2

const PROCESSOR_PERF_BOOST_MODE_DISABLED = 0

const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE = 4

const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_ENABLED = 3

const PROCESSOR_PERF_BOOST_MODE_ENABLED = 1

const PROCESSOR_PERF_BOOST_MODE_MAX = 4

const PROCESSOR_PERF_BOOST_POLICY_DISABLED = 0

const PROCESSOR_PERF_BOOST_POLICY_MAX = 100

type PROCESSOR_POWER_POLICY = TPROCESSOR_POWER_POLICY

type PROCESSOR_POWER_POLICY_INFO = TPROCESSOR_POWER_POLICY_INFO

const PROCESSOR_PPC_601 = 601

const PROCESSOR_PPC_603 = 603

const PROCESSOR_PPC_604 = 604

const PROCESSOR_PPC_620 = 620

type PROCESSOR_RELATIONSHIP = TPROCESSOR_RELATIONSHIP

const PROCESSOR_SHx_SH3 = 103

const PROCESSOR_SHx_SH4 = 104

const PROCESSOR_STRONGARM = 2577

const PROCESS_AFFINITY_ENABLE_AUTO_UPDATE = 1

const PROCESS_ALL_ACCESS = 2097151

const PROCESS_CREATE_PROCESS = 128

const PROCESS_CREATE_THREAD = 2

const PROCESS_CREATION_ALL_APPLICATION_PACKAGES_OPT_OUT = 1

const PROCESS_CREATION_CHILD_PROCESS_OVERRIDE = 2

const PROCESS_CREATION_CHILD_PROCESS_RESTRICTED = 1

const PROCESS_CREATION_CHILD_PROCESS_RESTRICTED_UNLESS_SECURE = 4

const PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_ALWAYS_OFF = 2097152

const PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_ALWAYS_ON = 1048576

const PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_MASK = 3145728

const PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_RESERVED = 3145728

const PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_OFF = 137438953472

const PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_ON = 68719476736

const PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_MASK = 206158430208

const PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_NON_EHCONT = 206158430208

const PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_ALWAYS_OFF = 562949953421312

const PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_ALWAYS_ON = 281474976710656

const PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_MASK = 844424930131968

const PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_RESERVED = 844424930131968

const PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_OFF = 536870912

const PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_ON = 268435456

const PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_MASK = 805306368

const PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_STRICT_MODE = 805306368

const PROCESS_CREATION_MITIGATION_POLICY2_LOADER_INTEGRITY_CONTINUITY_ALWAYS_OFF = 32

const PROCESS_CREATION_MITIGATION_POLICY2_LOADER_INTEGRITY_CONTINUITY_ALWAYS_ON = 16

const PROCESS_CREATION_MITIGATION_POLICY2_LOADER_INTEGRITY_CONTINUITY_AUDIT = 48

const PROCESS_CREATION_MITIGATION_POLICY2_LOADER_INTEGRITY_CONTINUITY_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_LOADER_INTEGRITY_CONTINUITY_MASK = 48

const PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_ALWAYS_OFF = 8192

const PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_ALWAYS_ON = 4096

const PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_MASK = 12288

const PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_NOINHERIT = 12288

const PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_ALWAYS_OFF = 131072

const PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_ALWAYS_ON = 65536

const PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_MASK = 196608

const PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_RESERVED = 196608

const PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_ALWAYS_OFF = 33554432

const PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_ALWAYS_ON = 16777216

const PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_MASK = 50331648

const PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_RESERVED = 50331648

const PROCESS_CREATION_MITIGATION_POLICY2_STRICT_CONTROL_FLOW_GUARD_ALWAYS_OFF = 512

const PROCESS_CREATION_MITIGATION_POLICY2_STRICT_CONTROL_FLOW_GUARD_ALWAYS_ON = 256

const PROCESS_CREATION_MITIGATION_POLICY2_STRICT_CONTROL_FLOW_GUARD_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_STRICT_CONTROL_FLOW_GUARD_MASK = 768

const PROCESS_CREATION_MITIGATION_POLICY2_STRICT_CONTROL_FLOW_GUARD_RESERVED = 768

const PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_OFF = 8589934592

const PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_ON = 4294967296

const PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_MASK = 12884901888

const PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE = 12884901888

const PROCESS_CREATION_MITIGATION_POLICY_AUDIT_NONSYSTEM_FONTS = 844424930131968

const PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALLOW_STORE = 52776558133248

const PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_OFF = 35184372088832

const PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON = 17592186044416

const PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_MASK = 52776558133248

const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_OFF = 131072

const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_ON = 65536

const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_MASK = 196608

const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_RESERVED = 196608

const PROCESS_CREATION_MITIGATION_POLICY_CONTROL_FLOW_GUARD_ALWAYS_OFF = 2199023255552

const PROCESS_CREATION_MITIGATION_POLICY_CONTROL_FLOW_GUARD_ALWAYS_ON = 1099511627776

const PROCESS_CREATION_MITIGATION_POLICY_CONTROL_FLOW_GUARD_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_CONTROL_FLOW_GUARD_EXPORT_SUPPRESSION = 3298534883328

const PROCESS_CREATION_MITIGATION_POLICY_CONTROL_FLOW_GUARD_MASK = 3298534883328

const PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE = 2

const PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE = 1

const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_OFF = 8589934592

const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_ON = 4294967296

const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_MASK = 12884901888

const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_RESERVED = 12884901888

const PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_ALWAYS_OFF = 562949953421312

const PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_ALWAYS_ON = 281474976710656

const PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_MASK = 844424930131968

const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_OFF = 512

const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON = 256

const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON_REQ_RELOCS = 768

const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_MASK = 768

const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_OFF = 8192

const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_ON = 4096

const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_MASK = 12288

const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_RESERVED = 12288

const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_OFF = 2097152

const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_ON = 1048576

const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_MASK = 3145728

const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_RESERVED = 3145728

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_LOW_LABEL_ALWAYS_OFF = 144115188075855872

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_LOW_LABEL_ALWAYS_ON = 72057594037927936

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_LOW_LABEL_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_LOW_LABEL_MASK = 216172782113783808

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_LOW_LABEL_RESERVED = 216172782113783808

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_REMOTE_ALWAYS_OFF = 9007199254740992

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_REMOTE_ALWAYS_ON = 4503599627370496

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_REMOTE_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_REMOTE_MASK = 13510798882111488

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_REMOTE_RESERVED = 13510798882111488

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_PREFER_SYSTEM32_ALWAYS_OFF = 2305843009213693952

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_PREFER_SYSTEM32_ALWAYS_ON = 1152921504606846976

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_PREFER_SYSTEM32_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_PREFER_SYSTEM32_MASK = 3458764513820540928

const PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_PREFER_SYSTEM32_RESERVED = 3458764513820540928

const PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_ALWAYS_OFF = 137438953472

const PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_ALWAYS_ON = 68719476736

const PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_ALWAYS_ON_ALLOW_OPT_OUT = 206158430208

const PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_MASK = 206158430208

const PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE = 4

const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_OFF = 33554432

const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_ON = 16777216

const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_MASK = 50331648

const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_RESERVED = 50331648

const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_OFF = 536870912

const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_ON = 268435456

const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_DEFER = 0

const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_MASK = 805306368

const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_RESERVED = 805306368

const PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION = 2

const PROCESS_DEP_ENABLE = 1

const PROCESS_DUP_HANDLE = 64

type PROCESS_DYNAMIC_EH_CONTINUATION_TARGET = TPROCESS_DYNAMIC_EH_CONTINUATION_TARGET

type PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION = TPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION

type PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE = TPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE

type PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION = TPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION

type PROCESS_HEAP_ENTRY = TPROCESS_HEAP_ENTRY

const PROCESS_HEAP_ENTRY_BUSY = 4

const PROCESS_HEAP_ENTRY_DDESHARE = 32

const PROCESS_HEAP_ENTRY_MOVEABLE = 16

const PROCESS_HEAP_REGION = 1

const PROCESS_HEAP_SEG_ALLOC = 8

const PROCESS_HEAP_UNCOMMITTED_RANGE = 2

type PROCESS_INFORMATION = TPROCESS_INFORMATION

type PROCESS_INFORMATION_CLASS = TPROCESS_INFORMATION_CLASS

type PROCESS_LEAP_SECOND_INFO = TPROCESS_LEAP_SECOND_INFO

const PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND = 1

const PROCESS_LEAP_SECOND_INFO_VALID_FLAGS = 1

type PROCESS_MACHINE_INFORMATION = TPROCESS_MACHINE_INFORMATION

type PROCESS_MEMORY_EXHAUSTION_INFO = TPROCESS_MEMORY_EXHAUSTION_INFO

type PROCESS_MEMORY_EXHAUSTION_TYPE = TPROCESS_MEMORY_EXHAUSTION_TYPE

type PROCESS_MITIGATION_ASLR_POLICY = TPROCESS_MITIGATION_ASLR_POLICY

type PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = TPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY

type PROCESS_MITIGATION_CHILD_PROCESS_POLICY = TPROCESS_MITIGATION_CHILD_PROCESS_POLICY

type PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = TPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY

type PROCESS_MITIGATION_DEP_POLICY = TPROCESS_MITIGATION_DEP_POLICY

type PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = TPROCESS_MITIGATION_DYNAMIC_CODE_POLICY

type PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = TPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY

type PROCESS_MITIGATION_FONT_DISABLE_POLICY = TPROCESS_MITIGATION_FONT_DISABLE_POLICY

type PROCESS_MITIGATION_IMAGE_LOAD_POLICY = TPROCESS_MITIGATION_IMAGE_LOAD_POLICY

type PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY = TPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY

type PROCESS_MITIGATION_POLICY = TPROCESS_MITIGATION_POLICY

type PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY = TPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY

type PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY = TPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY

type PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = TPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY

type PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = TPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY

type PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY = TPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY

type PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY = TPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY

const PROCESS_MODE_BACKGROUND_BEGIN = 1048576

const PROCESS_MODE_BACKGROUND_END = 2097152

const PROCESS_NAME_NATIVE = 1

const PROCESS_POWER_THROTTLING_CURRENT_VERSION = 1

const PROCESS_POWER_THROTTLING_EXECUTION_SPEED = 1

const PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION = 4

type PROCESS_POWER_THROTTLING_STATE = TPROCESS_POWER_THROTTLING_STATE

const PROCESS_POWER_THROTTLING_VALID_FLAGS = 5

type PROCESS_PROTECTION_LEVEL_INFORMATION = TPROCESS_PROTECTION_LEVEL_INFORMATION

const PROCESS_QUERY_INFORMATION = 1024

const PROCESS_QUERY_LIMITED_INFORMATION = 4096

const PROCESS_SET_INFORMATION = 512

const PROCESS_SET_QUOTA = 256

const PROCESS_SET_SESSIONID = 4

const PROCESS_SUSPEND_RESUME = 2048

const PROCESS_TERMINATE = 1

const PROCESS_VM_OPERATION = 8

const PROCESS_VM_READ = 16

const PROCESS_VM_WRITE = 32

const PROC_IDLE_BUCKET_COUNT = 6

const PROC_IDLE_BUCKET_COUNT_EX = 16

const PROC_THREAD_ATTRIBUTE_ADDITIVE = 262144

const PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY = 131072

const PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY = 131072

const PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = 196608

const PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 131072

const PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = 196608

const PROC_THREAD_ATTRIBUTE_INPUT = 131072

const PROC_THREAD_ATTRIBUTE_JOB_LIST = 131072

const PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 131072

type PROC_THREAD_ATTRIBUTE_NUM = TPROC_THREAD_ATTRIBUTE_NUM

const PROC_THREAD_ATTRIBUTE_NUMBER = 65535

const PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 131072

const PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = 131072

const PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 131072

const PROC_THREAD_ATTRIBUTE_REPLACE_VALUE = 1

const PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES = 131072

const PROC_THREAD_ATTRIBUTE_THREAD = 65536

const PROC_THREAD_ATTRIBUTE_UMS_THREAD = 196608

const PROC_THREAD_ATTRIBUTE_WIN32K_FILTER = 131072

const PRODUCT_ARM64_SERVER = 120

const PRODUCT_BUSINESS = 6

const PRODUCT_BUSINESS_N = 16

const PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER = 124

const PRODUCT_CLOUD_STORAGE_SERVER = 110

const PRODUCT_CLUSTER_SERVER = 18

const PRODUCT_CLUSTER_SERVER_V = 64

const PRODUCT_CONNECTED_CAR = 117

const PRODUCT_CORE = 101

const PRODUCT_CORE_ARM = 97

const PRODUCT_CORE_CONNECTED = 111

const PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC = 116

const PRODUCT_CORE_CONNECTED_N = 113

const PRODUCT_CORE_CONNECTED_SINGLELANGUAGE = 115

const PRODUCT_CORE_COUNTRYSPECIFIC = 99

const PRODUCT_CORE_LANGUAGESPECIFIC = 100

const PRODUCT_CORE_N = 98

const PRODUCT_CORE_SINGLELANGUAGE = 100

const PRODUCT_DATACENTER_EVALUATION_SERVER = 80

const PRODUCT_DATACENTER_SERVER = 8

const PRODUCT_DATACENTER_SERVER_CORE = 12

const PRODUCT_DATACENTER_SERVER_CORE_V = 39

const PRODUCT_DATACENTER_SERVER_V = 37

const PRODUCT_EDUCATION = 121

const PRODUCT_EDUCATION_N = 122

const PRODUCT_EMBEDDED = 65

const PRODUCT_EMBEDDED_A = 88

const PRODUCT_EMBEDDED_AUTOMOTIVE = 85

const PRODUCT_EMBEDDED_E = 90

const PRODUCT_EMBEDDED_EVAL = 107

const PRODUCT_EMBEDDED_E_EVAL = 108

const PRODUCT_EMBEDDED_INDUSTRY = 89

const PRODUCT_EMBEDDED_INDUSTRY_A = 86

const PRODUCT_EMBEDDED_INDUSTRY_A_E = 92

const PRODUCT_EMBEDDED_INDUSTRY_E = 91

const PRODUCT_EMBEDDED_INDUSTRY_EVAL = 105

const PRODUCT_EMBEDDED_INDUSTRY_E_EVAL = 106

const PRODUCT_ENTERPRISE = 4

const PRODUCT_ENTERPRISE_E = 70

const PRODUCT_ENTERPRISE_EVALUATION = 72

const PRODUCT_ENTERPRISE_N = 27

const PRODUCT_ENTERPRISE_N_EVALUATION = 84

const PRODUCT_ENTERPRISE_S = 125

const PRODUCT_ENTERPRISE_SERVER = 10

const PRODUCT_ENTERPRISE_SERVER_CORE = 14

const PRODUCT_ENTERPRISE_SERVER_CORE_V = 41

const PRODUCT_ENTERPRISE_SERVER_IA64 = 15

const PRODUCT_ENTERPRISE_SERVER_V = 38

const PRODUCT_ENTERPRISE_S_EVALUATION = 129

const PRODUCT_ENTERPRISE_S_N = 126

const PRODUCT_ENTERPRISE_S_N_EVALUATION = 130

const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL = 60

const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC = 62

const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT = 59

const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC = 61

const PRODUCT_HOME_BASIC = 2

const PRODUCT_HOME_BASIC_E = 67

const PRODUCT_HOME_BASIC_N = 5

const PRODUCT_HOME_PREMIUM = 3

const PRODUCT_HOME_PREMIUM_E = 68

const PRODUCT_HOME_PREMIUM_N = 26

const PRODUCT_HOME_PREMIUM_SERVER = 34

const PRODUCT_HOME_SERVER = 19

const PRODUCT_HYPERV = 42

const PRODUCT_ID_LENGTH = 16

const PRODUCT_INDUSTRY_HANDHELD = 118

const PRODUCT_IOTUAP = 123

const PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT = 30

const PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING = 32

const PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY = 31

const PRODUCT_MOBILE_CORE = 104

const PRODUCT_MOBILE_ENTERPRISE = 133

const PRODUCT_MULTIPOINT_PREMIUM_SERVER = 77

const PRODUCT_MULTIPOINT_STANDARD_SERVER = 76

const PRODUCT_NANO_SERVER = 109

const PRODUCT_PPI_PRO = 119

const PRODUCT_PROFESSIONAL = 48

const PRODUCT_PROFESSIONAL_E = 69

const PRODUCT_PROFESSIONAL_EMBEDDED = 58

const PRODUCT_PROFESSIONAL_N = 49

const PRODUCT_PROFESSIONAL_S = 127

const PRODUCT_PROFESSIONAL_STUDENT = 112

const PRODUCT_PROFESSIONAL_STUDENT_N = 114

const PRODUCT_PROFESSIONAL_S_N = 128

const PRODUCT_PROFESSIONAL_WMC = 103

const PRODUCT_SB_SOLUTION_SERVER = 50

const PRODUCT_SB_SOLUTION_SERVER_EM = 54

const PRODUCT_SERVER_FOR_SB_SOLUTIONS = 51

const PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM = 55

const PRODUCT_SERVER_FOR_SMALLBUSINESS = 24

const PRODUCT_SERVER_FOR_SMALLBUSINESS_V = 35

const PRODUCT_SERVER_FOUNDATION = 33

const PRODUCT_SERVER_V = 37

const PRODUCT_SMALLBUSINESS_SERVER = 9

const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM = 25

const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE = 63

const PRODUCT_SOLUTION_EMBEDDEDSERVER = 56

const PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE = 57

const PRODUCT_STANDARD_EVALUATION_SERVER = 79

const PRODUCT_STANDARD_SERVER = 7

const PRODUCT_STANDARD_SERVER_CORE = 13

const PRODUCT_STANDARD_SERVER_CORE_V = 40

const PRODUCT_STANDARD_SERVER_SOLUTIONS = 52

const PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE = 53

const PRODUCT_STANDARD_SERVER_V = 36

const PRODUCT_STARTER = 11

const PRODUCT_STARTER_E = 66

const PRODUCT_STARTER_N = 47

const PRODUCT_STORAGE_ENTERPRISE_SERVER = 23

const PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE = 46

const PRODUCT_STORAGE_EXPRESS_SERVER = 20

const PRODUCT_STORAGE_EXPRESS_SERVER_CORE = 43

const PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER = 96

const PRODUCT_STORAGE_STANDARD_SERVER = 21

const PRODUCT_STORAGE_STANDARD_SERVER_CORE = 44

const PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER = 95

const PRODUCT_STORAGE_WORKGROUP_SERVER = 22

const PRODUCT_STORAGE_WORKGROUP_SERVER_CORE = 45

const PRODUCT_THINPC = 87

const PRODUCT_ULTIMATE = 1

const PRODUCT_ULTIMATE_E = 71

const PRODUCT_ULTIMATE_N = 28

const PRODUCT_UNDEFINED = 0

const PRODUCT_UNLICENSED = 2882382797

const PRODUCT_WEB_SERVER = 17

const PRODUCT_WEB_SERVER_CORE = 29

const PROFILE_EMBEDDED = 77

const PROFILE_KERNEL = 536870912

const PROFILE_LINKED = 76

const PROFILE_SERVER = 1073741824

const PROFILE_USER = 268435456

const PROGRESS_CANCEL = 1

const PROGRESS_CONTINUE = 0

const PROGRESS_QUIET = 3

const PROGRESS_STOP = 2

const PROOF_QUALITY = 2

type PROOT_INFO_LUID = TPROOT_INFO_LUID

type PROPENUMPROC = TPROPENUMPROC

type PROPENUMPROCA = TPROPENUMPROCA

type PROPENUMPROCEX = TPROPENUMPROCEX

type PROPENUMPROCEXA = TPROPENUMPROCEXA

type PROPENUMPROCEXW = TPROPENUMPROCEXW

type PROPENUMPROCW = TPROPENUMPROCW

type PROPERTYKEY = TPROPERTYKEY

type PROPID = TPROPID

const PROPSETFLAG_ANSI = 2

const PROPSETFLAG_CASE_SENSITIVE = 8

const PROPSETFLAG_DEFAULT = 0

const PROPSETFLAG_NONSIMPLE = 1

const PROPSETFLAG_UNBUFFERED = 4

const PROPSETHDR_OSVERSION_UNKNOWN = 4294967295

const PROPSET_BEHAVIOR_CASE_SENSITIVE = 1

const PROPSHEETHEADER = 0

type PROPSHEETHEADERA = TPROPSHEETHEADERA

type PROPSHEETHEADERW = TPROPSHEETHEADERW

const PROPSHEETPAGE = 0

type PROPSHEETPAGEA = TPROPSHEETPAGEA

type PROPSHEETPAGEA_LATEST = TPROPSHEETPAGEA_LATEST

type PROPSHEETPAGEA_V1 = TPROPSHEETPAGEA_V1

type PROPSHEETPAGEA_V2 = TPROPSHEETPAGEA_V2

type PROPSHEETPAGEA_V3 = TPROPSHEETPAGEA_V3

type PROPSHEETPAGEW = TPROPSHEETPAGEW

type PROPSHEETPAGEW_LATEST = TPROPSHEETPAGEW_LATEST

type PROPSHEETPAGEW_V1 = TPROPSHEETPAGEW_V1

type PROPSHEETPAGEW_V2 = TPROPSHEETPAGEW_V2

type PROPSHEETPAGEW_V3 = TPROPSHEETPAGEW_V3

const PROPSHEETPAGE_LATEST = 0

type PROPSHEETPAGE_RESOURCE = TPROPSHEETPAGE_RESOURCE

const PROPSHEETPAGE_V1 = 0

const PROPSHEETPAGE_V2 = 0

const PROPSHEETPAGE_V3 = 0

type PROPSPEC = TPROPSPEC

type PROPVARIANT = TPROPVARIANT

type PROPVAR_PAD1 = TPROPVAR_PAD1

type PROPVAR_PAD2 = TPROPVAR_PAD2

type PROPVAR_PAD3 = TPROPVAR_PAD3

const PROP_LG_CXDLG = 252

const PROP_LG_CYDLG = 218

const PROP_MED_CXDLG = 227

const PROP_MED_CYDLG = 215

const PROP_SM_CXDLG = 212

const PROP_SM_CYDLG = 188

const PROTECTED_DACL_SECURITY_INFORMATION = 2147483648

const PROTECTED_SACL_SECURITY_INFORMATION = 1073741824

const PROTECTION_LEVEL_ANTIMALWARE_LIGHT = 3

const PROTECTION_LEVEL_AUTHENTICODE = 7

const PROTECTION_LEVEL_CODEGEN_LIGHT = 6

const PROTECTION_LEVEL_LSA_LIGHT = 4

const PROTECTION_LEVEL_NONE = 4294967294

const PROTECTION_LEVEL_PPL_APP = 8

const PROTECTION_LEVEL_SAME = 4294967295

const PROTECTION_LEVEL_WINDOWS = 1

const PROTECTION_LEVEL_WINDOWS_LIGHT = 2

const PROTECTION_LEVEL_WINTCB = 5

const PROTECTION_LEVEL_WINTCB_LIGHT = 0

type PROTOCOLDATA = TPROTOCOLDATA

type PROTOCOLFILTERDATA = TPROTOCOLFILTERDATA

const PROTOCOLFLAG_NO_PICS_CHECK = 1

type PROTOCOL_ARGUMENT = TPROTOCOL_ARGUMENT

type PROTOENT = TPROTOENT

const PROVIDER_KEEPS_VALUE_LENGTH = 1

type PROVIDOR_INFO_1 = TPROVIDOR_INFO_1

type PROVIDOR_INFO_1A = TPROVIDOR_INFO_1A

type PROVIDOR_INFO_1W = TPROVIDOR_INFO_1W

type PROVIDOR_INFO_2 = TPROVIDOR_INFO_2

type PROVIDOR_INFO_2A = TPROVIDOR_INFO_2A

type PROVIDOR_INFO_2W = TPROVIDOR_INFO_2W

const PROV_DH_SCHANNEL = 18

const PROV_DSS = 3

const PROV_DSS_DH = 13

const PROV_EC_ECDSA_FULL = 16

const PROV_EC_ECDSA_SIG = 14

const PROV_EC_ECNRA_FULL = 17

const PROV_EC_ECNRA_SIG = 15

type PROV_ENUMALGS = TPROV_ENUMALGS

type PROV_ENUMALGS_EX = TPROV_ENUMALGS_EX

const PROV_FORTEZZA = 4

const PROV_INTEL_SEC = 22

const PROV_MS_EXCHANGE = 5

const PROV_REPLACE_OWF = 23

const PROV_RNG = 21

const PROV_RSA_AES = 24

const PROV_RSA_FULL = 1

const PROV_RSA_SCHANNEL = 12

const PROV_RSA_SIG = 2

const PROV_SPYRUS_LYNKS = 20

const PROV_SSL = 6

const PROV_STT_ACQ = 8

const PROV_STT_BRND = 9

const PROV_STT_ISS = 11

const PROV_STT_MER = 7

const PROV_STT_ROOT = 10

type PROXY_PHASE = TPROXY_PHASE

type PRPCOLEMESSAGE = TPRPCOLEMESSAGE

type PRPC_ASYNC_NOTIFICATION_INFO = TPRPC_ASYNC_NOTIFICATION_INFO

type PRPC_ASYNC_STATE = TPRPC_ASYNC_STATE

type PRPC_CLIENT_INFORMATION1 = TPRPC_CLIENT_INFORMATION1

type PRPC_CLIENT_INTERFACE = TPRPC_CLIENT_INTERFACE

type PRPC_DISPATCH_TABLE = TPRPC_DISPATCH_TABLE

const PRPC_HTTP_TRANSPORT_CREDENTIALS = 0

type PRPC_HTTP_TRANSPORT_CREDENTIALS_A = TPRPC_HTTP_TRANSPORT_CREDENTIALS_A

type PRPC_HTTP_TRANSPORT_CREDENTIALS_W = TPRPC_HTTP_TRANSPORT_CREDENTIALS_W

type PRPC_IMPORT_CONTEXT_P = TPRPC_IMPORT_CONTEXT_P

type PRPC_MESSAGE = TPRPC_MESSAGE

type PRPC_POLICY = TPRPC_POLICY

type PRPC_PROTSEQ_ENDPOINT = TPRPC_PROTSEQ_ENDPOINT

type PRPC_RUNDOWN = TPRPC_RUNDOWN

type PRPC_SECURITY_QOS = TPRPC_SECURITY_QOS

const PRPC_SECURITY_QOS_V2 = 0

type PRPC_SECURITY_QOS_V2_A = TPRPC_SECURITY_QOS_V2_A

type PRPC_SECURITY_QOS_V2_W = TPRPC_SECURITY_QOS_V2_W

const PRPC_SECURITY_QOS_V3 = 0

type PRPC_SECURITY_QOS_V3_A = TPRPC_SECURITY_QOS_V3_A

type PRPC_SECURITY_QOS_V3_W = TPRPC_SECURITY_QOS_V3_W

type PRPC_SERVER_INTERFACE = TPRPC_SERVER_INTERFACE

type PRPC_SYNTAX_IDENTIFIER = TPRPC_SYNTAX_IDENTIFIER

const PRSPEC_INVALID = 4294967295

const PRSPEC_LPWSTR = 0

const PRSPEC_PROPID = 1

type PRTL_BARRIER = TPRTL_BARRIER

type PRTL_CONDITION_VARIABLE = TPRTL_CONDITION_VARIABLE

type PRTL_CRITICAL_SECTION = TPRTL_CRITICAL_SECTION

type PRTL_CRITICAL_SECTION_DEBUG = TPRTL_CRITICAL_SECTION_DEBUG

type PRTL_OSVERSIONINFOEXW = TPRTL_OSVERSIONINFOEXW

type PRTL_OSVERSIONINFOW = TPRTL_OSVERSIONINFOW

type PRTL_RESOURCE_DEBUG = TPRTL_RESOURCE_DEBUG

type PRTL_RUN_ONCE = TPRTL_RUN_ONCE

type PRTL_RUN_ONCE_INIT_FN = TPRTL_RUN_ONCE_INIT_FN

type PRTL_SRWLOCK = TPRTL_SRWLOCK

type PRTL_UMS_SCHEDULER_ENTRY_POINT = TPRTL_UMS_SCHEDULER_ENTRY_POINT

type PRTL_UMS_SCHEDULER_REASON = TPRTL_UMS_SCHEDULER_REASON

type PRTL_UMS_THREAD_INFO_CLASS = TPRTL_UMS_THREAD_INFO_CLASS

type PRTL_VERIFIER_DLL_DESCRIPTOR = TPRTL_VERIFIER_DLL_DESCRIPTOR

type PRTL_VERIFIER_PROVIDER_DESCRIPTOR = TPRTL_VERIFIER_PROVIDER_DESCRIPTOR

type PRTL_VERIFIER_THUNK_DESCRIPTOR = TPRTL_VERIFIER_THUNK_DESCRIPTOR

const PR_JOBSTATUS = 0

type PSAVEPOINT_ID = TPSAVEPOINT_ID

const PSBTN_APPLYNOW = 4

const PSBTN_BACK = 0

const PSBTN_CANCEL = 5

const PSBTN_FINISH = 2

const PSBTN_HELP = 6

const PSBTN_MAX = 6

const PSBTN_NEXT = 1

const PSBTN_OK = 3

type PSCARDCONTEXT = TPSCARDCONTEXT

type PSCARDHANDLE = TPSCARDHANDLE

type PSCARD_ATRMASK = TPSCARD_ATRMASK

type PSCARD_IO_REQUEST = TPSCARD_IO_REQUEST

type PSCARD_READERSTATE = TPSCARD_READERSTATE

type PSCARD_READERSTATEA = TPSCARD_READERSTATEA

type PSCARD_READERSTATEW = TPSCARD_READERSTATEW

const PSCARD_READERSTATE_A = 0

const PSCARD_READERSTATE_W = 0

type PSCARD_T0_REQUEST = TPSCARD_T0_REQUEST

type PSCARD_T1_REQUEST = TPSCARD_T1_REQUEST

const PSCB_BUTTONPRESSED = 3

const PSCB_INITIALIZED = 1

const PSCB_PRECREATE = 2

type PSCHANNEL_ALG = TPSCHANNEL_ALG

type PSCODE = TPSCODE

type PSCONTEXT_QUEUE = TPSCONTEXT_QUEUE

type PSCOPE_TABLE_AMD64 = TPSCOPE_TABLE_AMD64

type PSCROLLBARINFO = TPSCROLLBARINFO

type PSCRUB_DATA_INPUT = TPSCRUB_DATA_INPUT

type PSCRUB_DATA_OUTPUT = TPSCRUB_DATA_OUTPUT

type PSD_CHANGE_MACHINE_SID_INPUT = TPSD_CHANGE_MACHINE_SID_INPUT

type PSD_CHANGE_MACHINE_SID_OUTPUT = TPSD_CHANGE_MACHINE_SID_OUTPUT

const PSD_DEFAULTMINMARGINS = 0

const PSD_DISABLEMARGINS = 16

const PSD_DISABLEORIENTATION = 256

const PSD_DISABLEPAGEPAINTING = 524288

const PSD_DISABLEPAPER = 512

const PSD_DISABLEPRINTER = 32

const PSD_ENABLEPAGEPAINTHOOK = 262144

const PSD_ENABLEPAGESETUPHOOK = 8192

const PSD_ENABLEPAGESETUPTEMPLATE = 32768

const PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 131072

const PSD_INHUNDREDTHSOFMILLIMETERS = 8

const PSD_INTHOUSANDTHSOFINCHES = 4

const PSD_INWININIINTLMEASURE = 0

const PSD_MARGINS = 2

const PSD_MINMARGINS = 1

const PSD_NONETWORKBUTTON = 2097152

const PSD_NOWARNING = 128

const PSD_RETURNDEFAULT = 1024

const PSD_SHOWHELP = 2048

type PSECURE_MEMORY_CACHE_CALLBACK = TPSECURE_MEMORY_CACHE_CALLBACK

type PSECURITY_ATTRIBUTES = TPSECURITY_ATTRIBUTES

type PSECURITY_CAPABILITIES = TPSECURITY_CAPABILITIES

type PSECURITY_CONTEXT_TRACKING_MODE = TPSECURITY_CONTEXT_TRACKING_MODE

type PSECURITY_DESCRIPTOR = TPSECURITY_DESCRIPTOR

type PSECURITY_DESCRIPTOR_CONTROL = TPSECURITY_DESCRIPTOR_CONTROL

type PSECURITY_IMPERSONATION_LEVEL = TPSECURITY_IMPERSONATION_LEVEL

type PSECURITY_INFORMATION = TPSECURITY_INFORMATION

type PSECURITY_QUALITY_OF_SERVICE = TPSECURITY_QUALITY_OF_SERVICE

const PSEC_WINNT_AUTH_IDENTITY = 0

type PSEC_WINNT_AUTH_IDENTITY_A = TPSEC_WINNT_AUTH_IDENTITY_A

type PSEC_WINNT_AUTH_IDENTITY_W = TPSEC_WINNT_AUTH_IDENTITY_W

type PSENDCMDINPARAMS = TPSENDCMDINPARAMS

type PSENDCMDOUTPARAMS = TPSENDCMDOUTPARAMS

type PSERVENT = TPSERVENT

type PSERVICE_CONTROL_STATUS_REASON_PARAMS = TPSERVICE_CONTROL_STATUS_REASON_PARAMS

type PSERVICE_CONTROL_STATUS_REASON_PARAMSA = TPSERVICE_CONTROL_STATUS_REASON_PARAMSA

type PSERVICE_CONTROL_STATUS_REASON_PARAMSW = TPSERVICE_CONTROL_STATUS_REASON_PARAMSW

type PSERVICE_NOTIFY = TPSERVICE_NOTIFY

type PSERVICE_NOTIFYA = TPSERVICE_NOTIFYA

type PSERVICE_NOTIFYW = TPSERVICE_NOTIFYW

type PSESSION_BUFFER = TPSESSION_BUFFER

type PSESSION_HEADER = TPSESSION_HEADER

type PSET_PARTITION_INFORMATION = TPSET_PARTITION_INFORMATION

type PSET_PARTITION_INFORMATION_EX = TPSET_PARTITION_INFORMATION_EX

type PSET_POWER_SETTING_VALUE = TPSET_POWER_SETTING_VALUE

type PSET_VIRTUAL_DISK_INFO = TPSET_VIRTUAL_DISK_INFO

type PSE_ACCESS_REPLY = TPSE_ACCESS_REPLY

type PSE_ACCESS_REQUEST = TPSE_ACCESS_REQUEST

type PSE_IMPERSONATION_STATE = TPSE_IMPERSONATION_STATE

type PSE_SECURITY_DESCRIPTOR = TPSE_SECURITY_DESCRIPTOR

type PSFEATURE_CUSTPAPER = TPSFEATURE_CUSTPAPER

type PSFEATURE_OUTPUT = TPSFEATURE_OUTPUT

type PSHCREATEPROCESSINFOW = TPSHCREATEPROCESSINFOW

type PSHNOTIFY = TPSHNOTIFY

type PSHORT = TPSHORT

type PSHRINK_VOLUME_INFORMATION = TPSHRINK_VOLUME_INFORMATION

const PSH_DEFAULT = 0

const PSH_HASHELP = 512

const PSH_HEADER = 524288

const PSH_MODELESS = 1024

const PSH_NOAPPLYNOW = 128

const PSH_NOCONTEXTHELP = 33554432

const PSH_PROPSHEETPAGE = 8

const PSH_PROPTITLE = 1

const PSH_RTLREADING = 2048

const PSH_STRETCHWATERMARK = 262144

const PSH_USECALLBACK = 256

const PSH_USEHBMHEADER = 1048576

const PSH_USEHBMWATERMARK = 65536

const PSH_USEHICON = 2

const PSH_USEHPLWATERMARK = 131072

const PSH_USEICONID = 4

const PSH_USEPAGELANG = 2097152

const PSH_USEPSTARTPAGE = 64

const PSH_WATERMARK = 32768

const PSH_WIZARD = 32

const PSH_WIZARD97 = 16777216

const PSH_WIZARDCONTEXTHELP = 4096

const PSH_WIZARDHASFINISH = 16

const PSH_WIZARD_LITE = 4194304

type PSID = TPSID

const PSIDENT_GDICENTRIC = 0

const PSIDENT_PSCENTRIC = 1

type PSID_AND_ATTRIBUTES = TPSID_AND_ATTRIBUTES

type PSID_AND_ATTRIBUTES_ARRAY = TPSID_AND_ATTRIBUTES_ARRAY

type PSID_AND_ATTRIBUTES_HASH = TPSID_AND_ATTRIBUTES_HASH

type PSID_HASH_ENTRY = TPSID_HASH_ENTRY

type PSID_IDENTIFIER_AUTHORITY = TPSID_IDENTIFIER_AUTHORITY

type PSID_NAME_USE = TPSID_NAME_USE

type PSINGLE_LIST_ENTRY = TPSINGLE_LIST_ENTRY

type PSINJECTDATA = TPSINJECTDATA

const PSINJECT_BEGINDEFAULTS = 12

const PSINJECT_BEGINPAGESETUP = 101

const PSINJECT_BEGINPROLOG = 14

const PSINJECT_BEGINSETUP = 16

const PSINJECT_BEGINSTREAM = 1

const PSINJECT_BOUNDINGBOX = 9

const PSINJECT_COMMENTS = 11

const PSINJECT_DLFONT = 3722304989

const PSINJECT_DOCNEEDEDRES = 5

const PSINJECT_DOCSUPPLIEDRES = 6

const PSINJECT_DOCUMENTPROCESSCOLORS = 10

const PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21

const PSINJECT_ENDDEFAULTS = 13

const PSINJECT_ENDPAGECOMMENTS = 107

const PSINJECT_ENDPAGESETUP = 102

const PSINJECT_ENDPROLOG = 15

const PSINJECT_ENDSETUP = 17

const PSINJECT_ENDSTREAM = 20

const PSINJECT_EOF = 19

const PSINJECT_ORIENTATION = 8

const PSINJECT_PAGEBBOX = 106

const PSINJECT_PAGENUMBER = 100

const PSINJECT_PAGEORDER = 7

const PSINJECT_PAGES = 4

const PSINJECT_PAGESATEND = 3

const PSINJECT_PAGETRAILER = 103

const PSINJECT_PLATECOLOR = 104

const PSINJECT_PSADOBE = 2

const PSINJECT_SHOWPAGE = 105

const PSINJECT_TRAILER = 18

const PSINJECT_VMRESTORE = 201

const PSINJECT_VMSAVE = 200

type PSIZE = TPSIZE

type PSIZEL = TPSIZEL

type PSIZE_T = TPSIZE_T

type PSI_COPYFILE = TPSI_COPYFILE

type PSLIST_ENTRY = TPSLIST_ENTRY

type PSLIST_HEADER = TPSLIST_HEADER

type PSMALL_RECT = TPSMALL_RECT

const PSM_ADDPAGE = 1127

const PSM_APPLY = 1134

const PSM_CANCELTOCLOSE = 1131

const PSM_CHANGED = 1128

const PSM_GETCURRENTPAGEHWND = 1142

const PSM_GETRESULT = 1159

const PSM_GETTABCONTROL = 1140

const PSM_HWNDTOINDEX = 1153

const PSM_IDTOINDEX = 1157

const PSM_INDEXTOHWND = 1154

const PSM_INDEXTOID = 1158

const PSM_INDEXTOPAGE = 1156

const PSM_INSERTPAGE = 1143

const PSM_ISDIALOGMESSAGE = 1141

const PSM_PAGETOINDEX = 1155

const PSM_PRESSBUTTON = 1137

const PSM_QUERYSIBLINGS = 1132

const PSM_REBOOTSYSTEM = 1130

const PSM_RECALCPAGESIZES = 1160

const PSM_REMOVEPAGE = 1126

const PSM_RESTARTWINDOWS = 1129

const PSM_SETCURSEL = 1125

const PSM_SETCURSELID = 1138

const PSM_SETFINISHTEXT = 1139

const PSM_SETFINISHTEXTA = 1139

const PSM_SETFINISHTEXTW = 1145

const PSM_SETHEADERSUBTITLE = 1151

const PSM_SETHEADERSUBTITLEA = 1151

const PSM_SETHEADERSUBTITLEW = 1152

const PSM_SETHEADERTITLE = 1149

const PSM_SETHEADERTITLEA = 1149

const PSM_SETHEADERTITLEW = 1150

const PSM_SETTITLE = 1135

const PSM_SETTITLEA = 1135

const PSM_SETTITLEW = 1144

const PSM_SETWIZBUTTONS = 1136

const PSM_UNCHANGED = 1133

const PSNRET_INVALID = 1

const PSNRET_INVALID_NOCHANGEPAGE = 2

const PSNRET_MESSAGEHANDLED = 3

const PSNRET_NOERROR = 0

const PSN_APPLY = 18446744073709551414

const PSN_FIRST = 18446744073709551416

const PSN_GETOBJECT = 18446744073709551406

const PSN_HELP = 18446744073709551411

const PSN_KILLACTIVE = 18446744073709551415

const PSN_LAST = 18446744073709551317

const PSN_QUERYCANCEL = 18446744073709551407

const PSN_QUERYINITIALFOCUS = 18446744073709551403

const PSN_RESET = 18446744073709551413

const PSN_SETACTIVE = 18446744073709551416

const PSN_TRANSLATEACCELERATOR = 18446744073709551404

const PSN_WIZBACK = 18446744073709551410

const PSN_WIZFINISH = 18446744073709551408

const PSN_WIZNEXT = 18446744073709551409

type PSOCKADDR = TPSOCKADDR

type PSOCKADDR_IN = TPSOCKADDR_IN

type PSOLE_AUTHENTICATION_INFO = TPSOLE_AUTHENTICATION_INFO

type PSOLE_AUTHENTICATION_LIST = TPSOLE_AUTHENTICATION_LIST

type PSOLE_AUTHENTICATION_SERVICE = TPSOLE_AUTHENTICATION_SERVICE

const PSPCB_ADDREF = 0

const PSPCB_CREATE = 2

const PSPCB_RELEASE = 1

const PSPROTOCOL_ASCII = 0

const PSPROTOCOL_BCP = 1

const PSPROTOCOL_BINARY = 3

const PSPROTOCOL_TBCP = 2

const PSP_DEFAULT = 0

const PSP_DLGINDIRECT = 1

const PSP_HASHELP = 32

const PSP_HIDEHEADER = 2048

const PSP_PREMATURE = 1024

const PSP_RTLREADING = 16

const PSP_USECALLBACK = 128

const PSP_USEFUSIONCONTEXT = 16384

const PSP_USEHEADERSUBTITLE = 8192

const PSP_USEHEADERTITLE = 4096

const PSP_USEHICON = 2

const PSP_USEICONID = 4

const PSP_USEREFPARENT = 64

const PSP_USETITLE = 8

type PSRWLOCK = TPSRWLOCK

type PSSIZE_T = TPSSIZE_T

type PSSL_EXTRA_CERT_CHAIN_POLICY_PARA = TPSSL_EXTRA_CERT_CHAIN_POLICY_PARA

type PSSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS = TPSSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS

type PSSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA = TPSSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA

type PSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA = TPSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA

type PSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS = TPSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS

type PSTARTING_LCN_INPUT_BUFFER = TPSTARTING_LCN_INPUT_BUFFER

type PSTARTING_VCN_INPUT_BUFFER = TPSTARTING_VCN_INPUT_BUFFER

type PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = TPSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR

type PSTORAGE_ADAPTER_DESCRIPTOR = TPSTORAGE_ADAPTER_DESCRIPTOR

type PSTORAGE_ALLOCATE_BC_STREAM_INPUT = TPSTORAGE_ALLOCATE_BC_STREAM_INPUT

type PSTORAGE_ALLOCATE_BC_STREAM_OUTPUT = TPSTORAGE_ALLOCATE_BC_STREAM_OUTPUT

type PSTORAGE_ASSOCIATION_TYPE = TPSTORAGE_ASSOCIATION_TYPE

type PSTORAGE_BREAK_RESERVATION_REQUEST = TPSTORAGE_BREAK_RESERVATION_REQUEST

type PSTORAGE_BUS_RESET_REQUEST = TPSTORAGE_BUS_RESET_REQUEST

type PSTORAGE_BUS_TYPE = TPSTORAGE_BUS_TYPE

type PSTORAGE_CRYPTO_ALGORITHM_ID = TPSTORAGE_CRYPTO_ALGORITHM_ID

type PSTORAGE_CRYPTO_CAPABILITY = TPSTORAGE_CRYPTO_CAPABILITY

type PSTORAGE_CRYPTO_DESCRIPTOR = TPSTORAGE_CRYPTO_DESCRIPTOR

type PSTORAGE_CRYPTO_KEY_SIZE = TPSTORAGE_CRYPTO_KEY_SIZE

type PSTORAGE_DEPENDENCY_INFO = TPSTORAGE_DEPENDENCY_INFO

type PSTORAGE_DEPENDENCY_INFO_TYPE_1 = TPSTORAGE_DEPENDENCY_INFO_TYPE_1

type PSTORAGE_DEPENDENCY_INFO_TYPE_2 = TPSTORAGE_DEPENDENCY_INFO_TYPE_2

type PSTORAGE_DESCRIPTOR_HEADER = TPSTORAGE_DESCRIPTOR_HEADER

type PSTORAGE_DEVICE_DESCRIPTOR = TPSTORAGE_DEVICE_DESCRIPTOR

type PSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = TPSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR

type PSTORAGE_DEVICE_ID_DESCRIPTOR = TPSTORAGE_DEVICE_ID_DESCRIPTOR

type PSTORAGE_DEVICE_NUMBER = TPSTORAGE_DEVICE_NUMBER

type PSTORAGE_DEVICE_NUMBERS = TPSTORAGE_DEVICE_NUMBERS

type PSTORAGE_DEVICE_NUMBER_EX = TPSTORAGE_DEVICE_NUMBER_EX

type PSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR = TPSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR

type PSTORAGE_DEVICE_TIERING_DESCRIPTOR = TPSTORAGE_DEVICE_TIERING_DESCRIPTOR

type PSTORAGE_FAILURE_PREDICTION_CONFIG = TPSTORAGE_FAILURE_PREDICTION_CONFIG

type PSTORAGE_GET_BC_PROPERTIES_OUTPUT = TPSTORAGE_GET_BC_PROPERTIES_OUTPUT

type PSTORAGE_HOTPLUG_INFO = TPSTORAGE_HOTPLUG_INFO

type PSTORAGE_IDENTIFIER = TPSTORAGE_IDENTIFIER

type PSTORAGE_IDENTIFIER_CODE_SET = TPSTORAGE_IDENTIFIER_CODE_SET

type PSTORAGE_IDENTIFIER_TYPE = TPSTORAGE_IDENTIFIER_TYPE

type PSTORAGE_ID_NAA_FORMAT = TPSTORAGE_ID_NAA_FORMAT

type PSTORAGE_LB_PROVISIONING_MAP_RESOURCES = TPSTORAGE_LB_PROVISIONING_MAP_RESOURCES

type PSTORAGE_MEDIA_SERIAL_NUMBER_DATA = TPSTORAGE_MEDIA_SERIAL_NUMBER_DATA

type PSTORAGE_MEDIA_TYPE = TPSTORAGE_MEDIA_TYPE

type PSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = TPSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR

type PSTORAGE_MINIPORT_DESCRIPTOR = TPSTORAGE_MINIPORT_DESCRIPTOR

type PSTORAGE_PORT_CODE_SET = TPSTORAGE_PORT_CODE_SET

type PSTORAGE_PREDICT_FAILURE = TPSTORAGE_PREDICT_FAILURE

type PSTORAGE_PRIORITY_HINT_SUPPORT = TPSTORAGE_PRIORITY_HINT_SUPPORT

type PSTORAGE_PROPERTY_ID = TPSTORAGE_PROPERTY_ID

type PSTORAGE_PROPERTY_QUERY = TPSTORAGE_PROPERTY_QUERY

type PSTORAGE_PROPERTY_SET = TPSTORAGE_PROPERTY_SET

type PSTORAGE_PROTOCOL_ATA_DATA_TYPE = TPSTORAGE_PROTOCOL_ATA_DATA_TYPE

type PSTORAGE_PROTOCOL_DATA_DESCRIPTOR = TPSTORAGE_PROTOCOL_DATA_DESCRIPTOR

type PSTORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = TPSTORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT

type PSTORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = TPSTORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE

type PSTORAGE_PROTOCOL_NVME_DATA_TYPE = TPSTORAGE_PROTOCOL_NVME_DATA_TYPE

type PSTORAGE_PROTOCOL_SPECIFIC_DATA = TPSTORAGE_PROTOCOL_SPECIFIC_DATA

type PSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT = TPSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT

type PSTORAGE_PROTOCOL_TYPE = TPSTORAGE_PROTOCOL_TYPE

type PSTORAGE_PROTOCOL_UFS_DATA_TYPE = TPSTORAGE_PROTOCOL_UFS_DATA_TYPE

type PSTORAGE_QUERY_TYPE = TPSTORAGE_QUERY_TYPE

type PSTORAGE_READ_CAPACITY = TPSTORAGE_READ_CAPACITY

type PSTORAGE_RPMB_DESCRIPTOR = TPSTORAGE_RPMB_DESCRIPTOR

type PSTORAGE_RPMB_FRAME_TYPE = TPSTORAGE_RPMB_FRAME_TYPE

type PSTORAGE_SET_TYPE = TPSTORAGE_SET_TYPE

type PSTORAGE_TIER = TPSTORAGE_TIER

type PSTORAGE_TIER_CLASS = TPSTORAGE_TIER_CLASS

type PSTORAGE_TIER_MEDIA_TYPE = TPSTORAGE_TIER_MEDIA_TYPE

type PSTORAGE_WRITE_CACHE_PROPERTY = TPSTORAGE_WRITE_CACHE_PROPERTY

type PSTR = TPSTR

type PSTYLEBUF = TPSTYLEBUF

type PSTYLEBUFA = TPSTYLEBUFA

type PSTYLEBUFW = TPSTYLEBUFW

type PSUACTION = TPSUACTION

type PSUPPORTED_OS_INFO = TPSUPPORTED_OS_INFO

const PSWIZB_BACK = 1

const PSWIZB_DISABLEDFINISH = 8

const PSWIZB_FINISH = 4

const PSWIZB_NEXT = 2

type PSYNCHRONIZATION_BARRIER = TPSYNCHRONIZATION_BARRIER

type PSYSTEMTIME = TPSYSTEMTIME

type PSYSTEM_ALARM_ACE = TPSYSTEM_ALARM_ACE

type PSYSTEM_ALARM_CALLBACK_ACE = TPSYSTEM_ALARM_CALLBACK_ACE

type PSYSTEM_ALARM_CALLBACK_OBJECT_ACE = TPSYSTEM_ALARM_CALLBACK_OBJECT_ACE

type PSYSTEM_ALARM_OBJECT_ACE = TPSYSTEM_ALARM_OBJECT_ACE

type PSYSTEM_AUDIT_ACE = TPSYSTEM_AUDIT_ACE

type PSYSTEM_AUDIT_CALLBACK_ACE = TPSYSTEM_AUDIT_CALLBACK_ACE

type PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE = TPSYSTEM_AUDIT_CALLBACK_OBJECT_ACE

type PSYSTEM_AUDIT_OBJECT_ACE = TPSYSTEM_AUDIT_OBJECT_ACE

type PSYSTEM_BATTERY_STATE = TPSYSTEM_BATTERY_STATE

type PSYSTEM_LOGICAL_PROCESSOR_INFORMATION = TPSYSTEM_LOGICAL_PROCESSOR_INFORMATION

type PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = TPSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

type PSYSTEM_MANDATORY_LABEL_ACE = TPSYSTEM_MANDATORY_LABEL_ACE

type PSYSTEM_POWER_CAPABILITIES = TPSYSTEM_POWER_CAPABILITIES

type PSYSTEM_POWER_LEVEL = TPSYSTEM_POWER_LEVEL

type PSYSTEM_POWER_POLICY = TPSYSTEM_POWER_POLICY

type PSYSTEM_POWER_STATE = TPSYSTEM_POWER_STATE

type PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = TPSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION

type PSYSTEM_RESOURCE_ATTRIBUTE_ACE = TPSYSTEM_RESOURCE_ATTRIBUTE_ACE

type PSYSTEM_SCOPED_POLICY_ID_ACE = TPSYSTEM_SCOPED_POLICY_ID_ACE

type PSYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION = TPSYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION

type PSZ = TPSZ

const PS_ALTERNATE = 8

const PS_COSMETIC = 0

const PS_DASH = 1

const PS_DASHDOT = 3

const PS_DASHDOTDOT = 4

const PS_DOT = 2

const PS_ENDCAP_FLAT = 512

const PS_ENDCAP_MASK = 3840

const PS_ENDCAP_ROUND = 0

const PS_ENDCAP_SQUARE = 256

const PS_GEOMETRIC = 65536

const PS_INSIDEFRAME = 6

const PS_JOIN_BEVEL = 4096

const PS_JOIN_MASK = 61440

const PS_JOIN_MITER = 8192

const PS_JOIN_ROUND = 0

const PS_NULL = 5

const PS_OPENTYPE_FONTTYPE = 65536

const PS_SOLID = 0

const PS_STYLE_MASK = 15

const PS_TYPE_MASK = 983040

const PS_USERSTYLE = 7

type PServerInformation = TPServerInformation

type PTAKE_SNAPSHOT_VHDSET_FLAG = TPTAKE_SNAPSHOT_VHDSET_FLAG

type PTAKE_SNAPSHOT_VHDSET_PARAMETERS = TPTAKE_SNAPSHOT_VHDSET_PARAMETERS

type PTAPE_CREATE_PARTITION = TPTAPE_CREATE_PARTITION

type PTAPE_ERASE = TPTAPE_ERASE

type PTAPE_GET_DRIVE_PARAMETERS = TPTAPE_GET_DRIVE_PARAMETERS

type PTAPE_GET_MEDIA_PARAMETERS = TPTAPE_GET_MEDIA_PARAMETERS

type PTAPE_GET_POSITION = TPTAPE_GET_POSITION

type PTAPE_GET_STATISTICS = TPTAPE_GET_STATISTICS

type PTAPE_PREPARE = TPTAPE_PREPARE

type PTAPE_SET_DRIVE_PARAMETERS = TPTAPE_SET_DRIVE_PARAMETERS

type PTAPE_SET_MEDIA_PARAMETERS = TPTAPE_SET_MEDIA_PARAMETERS

type PTAPE_SET_POSITION = TPTAPE_SET_POSITION

type PTAPE_STATISTICS = TPTAPE_STATISTICS

type PTAPE_WMI_OPERATIONS = TPTAPE_WMI_OPERATIONS

type PTAPE_WRITE_MARKS = TPTAPE_WRITE_MARKS

type PTBYTE = TPTBYTE

type PTCH = TPTCH

type PTCHAR = TPTCHAR

type PTEXTMETRIC = TPTEXTMETRIC

type PTEXTMETRICA = TPTEXTMETRICA

type PTEXTMETRICW = TPTEXTMETRICW

type PTHREAD_START_ROUTINE = TPTHREAD_START_ROUTINE

type PTIMECAPS = TPTIMECAPS

type PTIMERAPCROUTINE = TPTIMERAPCROUTINE

type PTIMEVAL = TPTIMEVAL

type PTIME_ZONE_INFORMATION = TPTIME_ZONE_INFORMATION

type PTITLEBARINFO = TPTITLEBARINFO

type PTITLEBARINFOEX = TPTITLEBARINFOEX

type PTOKEN_ACCESS_INFORMATION = TPTOKEN_ACCESS_INFORMATION

type PTOKEN_APPCONTAINER_INFORMATION = TPTOKEN_APPCONTAINER_INFORMATION

type PTOKEN_AUDIT_POLICY = TPTOKEN_AUDIT_POLICY

type PTOKEN_CONTROL = TPTOKEN_CONTROL

type PTOKEN_DEFAULT_DACL = TPTOKEN_DEFAULT_DACL

type PTOKEN_DEVICE_CLAIMS = TPTOKEN_DEVICE_CLAIMS

type PTOKEN_ELEVATION = TPTOKEN_ELEVATION

type PTOKEN_ELEVATION_TYPE = TPTOKEN_ELEVATION_TYPE

type PTOKEN_GROUPS = TPTOKEN_GROUPS

type PTOKEN_GROUPS_AND_PRIVILEGES = TPTOKEN_GROUPS_AND_PRIVILEGES

type PTOKEN_INFORMATION_CLASS = TPTOKEN_INFORMATION_CLASS

type PTOKEN_LINKED_TOKEN = TPTOKEN_LINKED_TOKEN

type PTOKEN_MANDATORY_LABEL = TPTOKEN_MANDATORY_LABEL

type PTOKEN_MANDATORY_POLICY = TPTOKEN_MANDATORY_POLICY

type PTOKEN_ORIGIN = TPTOKEN_ORIGIN

type PTOKEN_OWNER = TPTOKEN_OWNER

type PTOKEN_PRIMARY_GROUP = TPTOKEN_PRIMARY_GROUP

type PTOKEN_PRIVILEGES = TPTOKEN_PRIVILEGES

type PTOKEN_SOURCE = TPTOKEN_SOURCE

type PTOKEN_STATISTICS = TPTOKEN_STATISTICS

type PTOKEN_TYPE = TPTOKEN_TYPE

type PTOKEN_USER = TPTOKEN_USER

type PTOKEN_USER_CLAIMS = TPTOKEN_USER_CLAIMS

type PTOP_LEVEL_EXCEPTION_FILTER = TPTOP_LEVEL_EXCEPTION_FILTER

type PTOUCHINPUT = TPTOUCHINPUT

type PTOUCHPREDICTIONPARAMETERS = TPTOUCHPREDICTIONPARAMETERS

type PTOUCH_HIT_TESTING_INPUT = TPTOUCH_HIT_TESTING_INPUT

type PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = TPTOUCH_HIT_TESTING_PROXIMITY_EVALUATION

type PTP_CALLBACK_ENVIRON = TPTP_CALLBACK_ENVIRON

type PTP_CALLBACK_INSTANCE = TPTP_CALLBACK_INSTANCE

type PTP_CLEANUP_GROUP = TPTP_CLEANUP_GROUP

type PTP_CLEANUP_GROUP_CANCEL_CALLBACK = TPTP_CLEANUP_GROUP_CANCEL_CALLBACK

type PTP_IO = TPTP_IO

type PTP_POOL = TPTP_POOL

type PTP_POOL_STACK_INFORMATION = TPTP_POOL_STACK_INFORMATION

type PTP_SIMPLE_CALLBACK = TPTP_SIMPLE_CALLBACK

type PTP_TIMER = TPTP_TIMER

type PTP_TIMER_CALLBACK = TPTP_TIMER_CALLBACK

type PTP_VERSION = TPTP_VERSION

type PTP_WAIT = TPTP_WAIT

type PTP_WAIT_CALLBACK = TPTP_WAIT_CALLBACK

type PTP_WIN32_IO_CALLBACK = TPTP_WIN32_IO_CALLBACK

type PTP_WORK = TPTP_WORK

type PTP_WORK_CALLBACK = TPTP_WORK_CALLBACK

type PTRANSACTIONMANAGER_BASIC_INFORMATION = TPTRANSACTIONMANAGER_BASIC_INFORMATION

type PTRANSACTIONMANAGER_LOGPATH_INFORMATION = TPTRANSACTIONMANAGER_LOGPATH_INFORMATION

type PTRANSACTIONMANAGER_LOG_INFORMATION = TPTRANSACTIONMANAGER_LOG_INFORMATION

type PTRANSACTIONMANAGER_OLDEST_INFORMATION = TPTRANSACTIONMANAGER_OLDEST_INFORMATION

type PTRANSACTIONMANAGER_RECOVERY_INFORMATION = TPTRANSACTIONMANAGER_RECOVERY_INFORMATION

type PTRANSACTION_BASIC_INFORMATION = TPTRANSACTION_BASIC_INFORMATION

type PTRANSACTION_BIND_INFORMATION = TPTRANSACTION_BIND_INFORMATION

type PTRANSACTION_ENLISTMENTS_INFORMATION = TPTRANSACTION_ENLISTMENTS_INFORMATION

type PTRANSACTION_ENLISTMENT_PAIR = TPTRANSACTION_ENLISTMENT_PAIR

type PTRANSACTION_LIST_ENTRY = TPTRANSACTION_LIST_ENTRY

type PTRANSACTION_LIST_INFORMATION = TPTRANSACTION_LIST_INFORMATION

type PTRANSACTION_NOTIFICATION = TPTRANSACTION_NOTIFICATION

type PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = TPTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT

type PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = TPTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT

type PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = TPTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT

type PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = TPTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT

type PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = TPTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT

type PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = TPTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT

type PTRANSACTION_PROPERTIES_INFORMATION = TPTRANSACTION_PROPERTIES_INFORMATION

type PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = TPTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION

type PTRANSMIT_FILE_BUFFERS = TPTRANSMIT_FILE_BUFFERS

type PTRIVERTEX = TPTRIVERTEX

type PTSTR = TPTSTR

type PTXFS_CREATE_MINIVERSION_INFO = TPTXFS_CREATE_MINIVERSION_INFO

type PTXFS_GET_METADATA_INFO_OUT = TPTXFS_GET_METADATA_INFO_OUT

type PTXFS_GET_TRANSACTED_VERSION = TPTXFS_GET_TRANSACTED_VERSION

type PTXFS_LIST_TRANSACTIONS = TPTXFS_LIST_TRANSACTIONS

type PTXFS_LIST_TRANSACTIONS_ENTRY = TPTXFS_LIST_TRANSACTIONS_ENTRY

type PTXFS_LIST_TRANSACTION_LOCKED_FILES = TPTXFS_LIST_TRANSACTION_LOCKED_FILES

type PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY = TPTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY

type PTXFS_MODIFY_RM = TPTXFS_MODIFY_RM

type PTXFS_QUERY_RM_INFORMATION = TPTXFS_QUERY_RM_INFORMATION

type PTXFS_READ_BACKUP_INFORMATION_OUT = TPTXFS_READ_BACKUP_INFORMATION_OUT

type PTXFS_ROLLFORWARD_REDO_INFORMATION = TPTXFS_ROLLFORWARD_REDO_INFORMATION

type PTXFS_SAVEPOINT_INFORMATION = TPTXFS_SAVEPOINT_INFORMATION

type PTXFS_START_RM_INFORMATION = TPTXFS_START_RM_INFORMATION

type PTXFS_TRANSACTION_ACTIVE_INFO = TPTXFS_TRANSACTION_ACTIVE_INFO

type PTXFS_WRITE_BACKUP_INFORMATION = TPTXFS_WRITE_BACKUP_INFORMATION

const PT_BEZIERTO = 4

const PT_CLOSEFIGURE = 1

const PT_LINETO = 2

const PT_MOVETO = 6

type PUAF = TPUAF

type PUAFOUT = TPUAFOUT

const PUBLICKEYBLOB = 6

const PUBLICKEYBLOBEX = 10

type PUBLICKEYSTRUC = TPUBLICKEYSTRUC

type PUCHAR = TPUCHAR

type PUCSCHAR = TPUCSCHAR

type PUCSSTR = TPUCSSTR

type PUHALF_PTR = TPUHALF_PTR

type PUINT = TPUINT

type PUINT16 = TPUINT16

type PUINT32 = TPUINT32

type PUINT64 = TPUINT64

type PUINT8 = TPUINT8

type PUINT_PTR = TPUINT_PTR

type PULARGE_INTEGER = TPULARGE_INTEGER

type PULONG = TPULONG

type PULONG32 = TPULONG32

type PULONG64 = TPULONG64

type PULONGLONG = TPULONGLONG

type PULONG_PTR = TPULONG_PTR

type PUMS_CREATE_THREAD_ATTRIBUTES = TPUMS_CREATE_THREAD_ATTRIBUTES

type PUNZTCH = TPUNZTCH

type PUNZWCH = TPUNZWCH

type PUPDATELAYEREDWINDOWINFO = TPUPDATELAYEREDWINDOWINFO

const PURGE_RXABORT = 2

const PURGE_RXCLEAR = 8

const PURGE_TXABORT = 1

const PURGE_TXCLEAR = 4

type PUSAGE_PROPERTIES = TPUSAGE_PROPERTIES

type PUSEROBJECTFLAGS = TPUSEROBJECTFLAGS

type PUSER_ACTIVITY_PRESENCE = TPUSER_ACTIVITY_PRESENCE

type PUSHORT = TPUSHORT

type PUSN_JOURNAL_DATA = TPUSN_JOURNAL_DATA

type PUSN_RECORD = TPUSN_RECORD

type PUTSTR = TPUTSTR

type PUUCSCHAR = TPUUCSCHAR

type PUUCSSTR = TPUUCSSTR

type PUWSTR = TPUWSTR

type PUZZTSTR = TPUZZTSTR

type PUZZWSTR = TPUZZWSTR

type PVALCONTEXT = TPVALCONTEXT

type PVALENT = TPVALENT

type PVALENTA = TPVALENTA

type PVALENTW = TPVALENTW

type PVALUE = TPVALUE

type PVALUEA = TPVALUEA

type PVALUEW = TPVALUEW

type PVECTORED_EXCEPTION_HANDLER = TPVECTORED_EXCEPTION_HANDLER

type PVERIFY_INFORMATION = TPVERIFY_INFORMATION

type PVIDEOPARAMETERS = TPVIDEOPARAMETERS

type PVIRTUAL_DISK_PROGRESS = TPVIRTUAL_DISK_PROGRESS

type PVIRTUAL_STORAGE_TYPE = TPVIRTUAL_STORAGE_TYPE

type PVOID = TPVOID

type PVOID64 = TPVOID64

type PVOLUME_BITMAP_BUFFER = TPVOLUME_BITMAP_BUFFER

type PVOLUME_DISK_EXTENTS = TPVOLUME_DISK_EXTENTS

type PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION = TPVOLUME_GET_GPT_ATTRIBUTES_INFORMATION

type PWAVEFORMAT = TPWAVEFORMAT

type PWAVEFORMATEX = TPWAVEFORMATEX

type PWAVEHDR = TPWAVEHDR

type PWAVEINCAPS = TPWAVEINCAPS

type PWAVEINCAPS2 = TPWAVEINCAPS2

type PWAVEINCAPS2A = TPWAVEINCAPS2A

type PWAVEINCAPS2W = TPWAVEINCAPS2W

type PWAVEINCAPSA = TPWAVEINCAPSA

type PWAVEINCAPSW = TPWAVEINCAPSW

type PWAVEOUTCAPS = TPWAVEOUTCAPS

type PWAVEOUTCAPS2 = TPWAVEOUTCAPS2

type PWAVEOUTCAPS2A = TPWAVEOUTCAPS2A

type PWAVEOUTCAPS2W = TPWAVEOUTCAPS2W

type PWAVEOUTCAPSA = TPWAVEOUTCAPSA

type PWAVEOUTCAPSW = TPWAVEOUTCAPSW

type PWCH = TPWCH

type PWCHAR = TPWCHAR

type PWCRANGE = TPWCRANGE

type PWGLSWAP = TPWGLSWAP

type PWIN32_FIND_DATA = TPWIN32_FIND_DATA

type PWIN32_FIND_DATAA = TPWIN32_FIND_DATAA

type PWIN32_FIND_DATAW = TPWIN32_FIND_DATAW

type PWIN32_FIND_STREAM_DATA = TPWIN32_FIND_STREAM_DATA

type PWIN32_MEMORY_RANGE_ENTRY = TPWIN32_MEMORY_RANGE_ENTRY

type PWINDOWINFO = TPWINDOWINFO

type PWINDOWPLACEMENT = TPWINDOWPLACEMENT

type PWINDOWPOS = TPWINDOWPOS

type PWINDOW_BUFFER_SIZE_RECORD = TPWINDOW_BUFFER_SIZE_RECORD

type PWNDCLASS = TPWNDCLASS

type PWNDCLASSA = TPWNDCLASSA

type PWNDCLASSEX = TPWNDCLASSEX

type PWNDCLASSEXA = TPWNDCLASSEXA

type PWNDCLASSEXW = TPWNDCLASSEXW

type PWNDCLASSW = TPWNDCLASSW

type PWOF_EXTERNAL_INFO = TPWOF_EXTERNAL_INFO

type PWORD = TPWORD

type PWOW64_CONTEXT = TPWOW64_CONTEXT

type PWOW64_DESCRIPTOR_TABLE_ENTRY = TPWOW64_DESCRIPTOR_TABLE_ENTRY

type PWOW64_FLOATING_SAVE_AREA = TPWOW64_FLOATING_SAVE_AREA

type PWOW64_LDT_ENTRY = TPWOW64_LDT_ENTRY

const PWR_CRITICALRESUME = 3

const PWR_FAIL = -1

const PWR_OK = 1

const PWR_SUSPENDREQUEST = 1

const PWR_SUSPENDRESUME = 2

type PWSTR = TPWSTR

type PWTSSESSION_NOTIFICATION = TPWTSSESSION_NOTIFICATION

const PW_CLIENTONLY = 1

const PW_RENDERFULLCONTENT = 2

type PXFORM = TPXFORM

type PXMIT_ROUTINE_QUINTUPLE = TPXMIT_ROUTINE_QUINTUPLE

type PXSAVE_AREA = TPXSAVE_AREA

type PXSAVE_AREA_HEADER = TPXSAVE_AREA_HEADER

type PXSAVE_FORMAT = TPXSAVE_FORMAT

type PXSTATE_CONFIGURATION = TPXSTATE_CONFIGURATION

type PXSTATE_CONTEXT = TPXSTATE_CONTEXT

type PXSTATE_FEATURE = TPXSTATE_FEATURE

type PZPCSTR = TPZPCSTR

type PZPCWSTR = TPZPCWSTR

type PZPSTR = TPZPSTR

type PZPTSTR = TPZPTSTR

type PZPWSTR = TPZPWSTR

type PZZSTR = TPZZSTR

type PZZTSTR = TPZZTSTR

type PZZWSTR = TPZZWSTR

const P_DETACH = 4

const P_NOWAIT = 1

const P_NOWAITO = 3

const P_OVERLAY = 2

const P_WAIT = 0

const P_tmpdir = "_P_tmpdir"

const PageSetupDlg = 0

const PartitionClassGuid = 0

const PeekConsoleInput = 0

const PeekMessage = 0

const PlaySound = 0

const PolyTextOut = 0

const PostAppMessage = 0

const PostMessage = 0

const PostThreadMessage = 0

const PrintDlg = 0

const PrintDlgEx = 0

const PrinterMessageBox = 0

const PrivateExtractIcons = 0

const PrivilegedServiceAuditAlarm = 0

const PropertySheet = 0

const QDC_ALL_PATHS = 1

const QDC_DATABASE_CURRENT = 4

const QDC_INCLUDE_HMD = 32

const QDC_ONLY_ACTIVE_PATHS = 2

const QDC_VIRTUAL_MODE_AWARE = 16

const QDI_DIBTOSCREEN = 4

const QDI_GETDIBITS = 2

const QDI_SETDIBITS = 1

const QDI_STRETCHDIB = 8

const QID_SYNC = 4294967295

const QS_ALLEVENTS = 7359

const QS_ALLINPUT = 7423

const QS_ALLPOSTMESSAGE = 256

const QS_HOTKEY = 128

const QS_INPUT = 7175

const QS_KEY = 1

const QS_MOUSE = 6

const QS_MOUSEBUTTON = 4

const QS_MOUSEMOVE = 2

const QS_PAINT = 32

const QS_POINTER = 4096

const QS_POSTMESSAGE = 8

const QS_RAWINPUT = 1024

const QS_SENDMESSAGE = 64

const QS_TIMER = 16

const QS_TOUCH = 2048

type QUERYCONTEXT = TQUERYCONTEXT

const QUERYDIBSUPPORT = 3073

const QUERYESCSUPPORT = 8

type QUERYOPTION = TQUERYOPTION

const QUERYROPSUPPORT = 40

const QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 16

const QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 8

const QUERY_ACTCTX_FLAG_NO_ADDREF = 2147483648

const QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 4

type QUERY_CHANGES_VIRTUAL_DISK_FLAG = TQUERY_CHANGES_VIRTUAL_DISK_FLAG

type QUERY_CHANGES_VIRTUAL_DISK_RANGE = TQUERY_CHANGES_VIRTUAL_DISK_RANGE

type QUERY_SERVICE_CONFIG = TQUERY_SERVICE_CONFIG

type QUERY_SERVICE_CONFIGA = TQUERY_SERVICE_CONFIGA

type QUERY_SERVICE_CONFIGW = TQUERY_SERVICE_CONFIGW

type QUERY_SERVICE_LOCK_STATUS = TQUERY_SERVICE_LOCK_STATUS

type QUERY_SERVICE_LOCK_STATUSA = TQUERY_SERVICE_LOCK_STATUSA

type QUERY_SERVICE_LOCK_STATUSW = TQUERY_SERVICE_LOCK_STATUSW

type QUERY_USER_NOTIFICATION_STATE = TQUERY_USER_NOTIFICATION_STATE

type QUOTA_LIMITS = TQUOTA_LIMITS

type QUOTA_LIMITS_EX = TQUOTA_LIMITS_EX

const QUOTA_LIMITS_HARDWS_MAX_DISABLE = 8

const QUOTA_LIMITS_HARDWS_MAX_ENABLE = 4

const QUOTA_LIMITS_HARDWS_MIN_DISABLE = 2

const QUOTA_LIMITS_HARDWS_MIN_ENABLE = 1

const QUOTA_LIMITS_USE_DEFAULT_LIMITS = 16

const QueryDosDevice = 0

const QueryFullProcessImageName = 0

const QueryServiceConfig = 0

const QueryServiceConfig2 = 0

const QueryServiceLockStatus = 0

const R2_BLACK = 1

const R2_COPYPEN = 13

const R2_LAST = 16

const R2_MASKNOTPEN = 3

const R2_MASKPEN = 9

const R2_MASKPENNOT = 5

const R2_MERGENOTPEN = 12

const R2_MERGEPEN = 15

const R2_MERGEPENNOT = 14

const R2_NOP = 11

const R2_NOT = 6

const R2_NOTCOPYPEN = 4

const R2_NOTMASKPEN = 8

const R2_NOTMERGEPEN = 2

const R2_NOTXORPEN = 10

const R2_WHITE = 16

const R2_XORPEN = 7

const RANDOM_PADDING = 2

const RAND_MAX = 32767

const RASTERCAPS = 38

type RASTERIZER_STATUS = TRASTERIZER_STATUS

const RASTER_FONTTYPE = 1

type RATE_QUOTA_LIMIT = TRATE_QUOTA_LIMIT

type RAWHID = TRAWHID

type RAWINPUT = TRAWINPUT

type RAWINPUTDEVICE = TRAWINPUTDEVICE

type RAWINPUTDEVICELIST = TRAWINPUTDEVICELIST

type RAWINPUTHEADER = TRAWINPUTHEADER

type RAWKEYBOARD = TRAWKEYBOARD

type RAWMOUSE = TRAWMOUSE

const RC_BANDING = 2

const RC_BIGFONT = 1024

const RC_BITBLT = 1

const RC_BITMAP64 = 8

const RC_DEVBITS = 32768

const RC_DIBTODEV = 512

const RC_DI_BITMAP = 128

const RC_FLOODFILL = 4096

const RC_GDI20_OUTPUT = 16

const RC_GDI20_STATE = 32

const RC_OP_DX_OUTPUT = 16384

const RC_PALETTE = 256

const RC_SAVEBITMAP = 64

const RC_SCALING = 4

const RC_STRETCHBLT = 2048

const RC_STRETCHDIB = 8192

const RDH_RECTANGLES = 1

type RDR_CALLOUT_STATE = TRDR_CALLOUT_STATE

const RDW_ALLCHILDREN = 128

const RDW_ERASE = 4

const RDW_ERASENOW = 512

const RDW_FRAME = 1024

const RDW_INTERNALPAINT = 2

const RDW_INVALIDATE = 1

const RDW_NOCHILDREN = 64

const RDW_NOERASE = 32

const RDW_NOFRAME = 2048

const RDW_NOINTERNALPAINT = 16

const RDW_UPDATENOW = 256

const RDW_VALIDATE = 8

const READ_ATTRIBUTES = 208

const READ_ATTRIBUTE_BUFFER_SIZE = 512

const READ_COMPRESSION_INFO_VALID = 32

const READ_CONTROL = 131072

type READ_ELEMENT_ADDRESS_INFO = TREAD_ELEMENT_ADDRESS_INFO

const READ_THREAD_PROFILING_FLAG_DISPATCHING = 1

const READ_THREAD_PROFILING_FLAG_HARDWARE_COUNTERS = 2

const READ_THRESHOLDS = 209

const READ_THRESHOLD_BUFFER_SIZE = 512

type READ_USN_JOURNAL_DATA = TREAD_USN_JOURNAL_DATA

const REALTIME_PRIORITY_CLASS = 256

type REASON_CONTEXT = TREASON_CONTEXT

const REASON_HWINSTALL = 65538

const REASON_LEGACY_API = 2147942400

const REASON_OTHER = 0

const REASON_PLANNED_FLAG = 2147483648

const REASON_SERVICEHANG = 196613

const REASON_SWHWRECONF = 196612

const REASON_SWINSTALL = 196610

const REASON_UNKNOWN = 255

const REASON_UNSTABLE = 327686

type REASSIGN_BLOCKS = TREASSIGN_BLOCKS

type REASSIGN_BLOCKS_EX = TREASSIGN_BLOCKS_EX

type RECONVERTSTRING = TRECONVERTSTRING

const RECOVERED_READS_VALID = 4

const RECOVERED_WRITES_VALID = 1

const RECOVERY_DEFAULT_PING_INTERVAL = 5000

const RECOVERY_MAX_PING_INTERVAL = 300000

type RECT = TRECT

type RECTL = TRECTL

type REDIRECTION_DESCRIPTOR = TREDIRECTION_DESCRIPTOR

type REDIRECTION_FUNCTION_DESCRIPTOR = TREDIRECTION_FUNCTION_DESCRIPTOR

type REGCLS = TREGCLS

const REGDB_E_FIRST = 2147746128

const REGDB_E_LAST = 2147746143

const REGDB_S_FIRST = 262480

const REGDB_S_LAST = 262495

const REGISTERED = 4

const REGISTERING = 0

type REGISTERWORD = TREGISTERWORD

type REGISTERWORDA = TREGISTERWORDA

const REGISTERWORDENUMPROC = 0

type REGISTERWORDENUMPROCA = TREGISTERWORDENUMPROCA

type REGISTERWORDENUMPROCW = TREGISTERWORDENUMPROCW

/* Restore old value of interface for Obj-C.  See above.  */

/*
** Determine if we are dealing with Windows NT.
**
** We ought to be able to determine if we are compiling for Windows 9x or
** Windows NT using the _WIN32_WINNT macro as follows:
**
** #if defined(_WIN32_WINNT)
** # define SQLITE_OS_WINNT 1
** #else
** # define SQLITE_OS_WINNT 0
** #endif
**
** However, Visual Studio 2005 does not set _WIN32_WINNT by default, as
** it ought to, so the above test does not work.  We'll just assume that
** everything is Windows NT unless the programmer explicitly says otherwise
** by setting SQLITE_OS_WINNT to 0.
 */

/*
** Determine if we are dealing with Windows CE - which has a much reduced
** API.
 */

/*
** For WinCE, some API function parameters do not appear to be declared as
** volatile.
 */

/*
** For some Windows sub-platforms, the _beginthreadex() / _endthreadex()
** functions are not available (e.g. those not using MSVC, Cygwin, etc).
 */

/************** End of os_win.h **********************************************/
/************** Continuing where we left off in mutex_w32.c ******************/

/*
** The code in this file is only used if we are compiling multithreaded
** on a Win32 system.
 */

/************** End of mutex_w32.c *******************************************/
/************** Begin file malloc.c ******************************************/
/*
** 2001 September 15
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
**
** Memory allocation functions used throughout sqlite.
 */
/* #include "sqliteInt.h" */
/* #include <stdarg.h> */

type REGISTERWORDW = TREGISTERWORDW

type REGKIND = TREGKIND

type REGSAM = TREGSAM

const REGULAR_FONTTYPE = 1024

const REG_APP_HIVE = 16

const REG_BINARY = 3

const REG_BOOT_HIVE = 1024

const REG_CREATED_NEW_KEY = 1

const REG_DWORD = 4

const REG_DWORD_BIG_ENDIAN = 5

const REG_DWORD_LITTLE_ENDIAN = 4

const REG_EXPAND_SZ = 2

const REG_FORCE_RESTORE = 8

const REG_FORCE_UNLOAD = 1

const REG_FULL_RESOURCE_DESCRIPTOR = 9

const REG_HIVE_EXACT_FILE_GROWTH = 128

const REG_HIVE_NO_RM = 256

const REG_HIVE_SINGLE_LOG = 512

const REG_LATEST_FORMAT = 2

const REG_LEGAL_CHANGE_FILTER = 268435471

const REG_LEGAL_OPTION = 15

const REG_LINK = 6

const REG_MUI_STRING_TRUNCATE = 1

const REG_MULTI_SZ = 7

const REG_NONE = 0

const REG_NOTIFY_CHANGE_ATTRIBUTES = 2

const REG_NOTIFY_CHANGE_LAST_SET = 4

const REG_NOTIFY_CHANGE_NAME = 1

const REG_NOTIFY_CHANGE_SECURITY = 8

const REG_NOTIFY_THREAD_AGNOSTIC = 268435456

const REG_NO_COMPRESSION = 4

const REG_NO_LAZY_FLUSH = 4

const REG_OPENED_EXISTING_KEY = 2

const REG_OPTION_BACKUP_RESTORE = 4

const REG_OPTION_CREATE_LINK = 2

const REG_OPTION_NON_VOLATILE = 0

const REG_OPTION_OPEN_LINK = 8

const REG_OPTION_RESERVED = 0

const REG_OPTION_VOLATILE = 1

const REG_PROCESS_APPKEY = 1

const REG_PROCESS_PRIVATE = 32

type REG_PROVIDER = TREG_PROVIDER

const REG_QWORD = 11

const REG_QWORD_LITTLE_ENDIAN = 11

const REG_REFRESH_HIVE = 2

const REG_RESOURCE_LIST = 8

const REG_RESOURCE_REQUIREMENTS_LIST = 10

const REG_SECURE_CONNECTION = 1

const REG_STANDARD_FORMAT = 1

const REG_START_JOURNAL = 64

const REG_SZ = 1

const REG_WHOLE_HIVE_VOLATILE = 1

const RELATIVE = 2

type REMOTE_NAME_INFO = TREMOTE_NAME_INFO

type REMOTE_NAME_INFOA = TREMOTE_NAME_INFOA

type REMOTE_NAME_INFOW = TREMOTE_NAME_INFOW

const REMOTE_NAME_INFO_LEVEL = 2

const REMOTE_PROTOCOL_INFO_FLAG_LOOPBACK = 1

const REMOTE_PROTOCOL_INFO_FLAG_OFFLINE = 2

const REMOTE_PROTOCOL_INFO_FLAG_PERSISTENT_HANDLE = 4

type REMSECURITY_ATTRIBUTES = TREMSECURITY_ATTRIBUTES

type REPARSE_GUID_DATA_BUFFER = TREPARSE_GUID_DATA_BUFFER

const REPLACEDLGORD = 1541

const REPLACEFILE_IGNORE_ACL_ERRORS = 4

const REPLACEFILE_IGNORE_MERGE_ERRORS = 2

const REPLACEFILE_WRITE_THROUGH = 1

const REPLACE_ALTERNATE = 11

const REPLACE_PRIMARY = 10

const REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY = 2

const REPORT_NO_PRIVATE_KEY = 1

const REQUEST_OPLOCK_CURRENT_VERSION = 1

type REQUEST_OPLOCK_INPUT_BUFFER = TREQUEST_OPLOCK_INPUT_BUFFER

const REQUEST_OPLOCK_INPUT_FLAG_ACK = 2

const REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE = 4

const REQUEST_OPLOCK_INPUT_FLAG_REQUEST = 1

type REQUEST_OPLOCK_OUTPUT_BUFFER = TREQUEST_OPLOCK_OUTPUT_BUFFER

const REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED = 1

const REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED = 2

type REQUEST_RAW_ENCRYPTED_DATA = TREQUEST_RAW_ENCRYPTED_DATA

const RESETDEV = 7

type RESIZE_VIRTUAL_DISK_FLAG = TRESIZE_VIRTUAL_DISK_FLAG

type RESIZE_VIRTUAL_DISK_PARAMETERS = TRESIZE_VIRTUAL_DISK_PARAMETERS

type RESIZE_VIRTUAL_DISK_VERSION = TRESIZE_VIRTUAL_DISK_VERSION

const RESOURCEDISPLAYTYPE_DIRECTORY = 9

const RESOURCEDISPLAYTYPE_DOMAIN = 1

const RESOURCEDISPLAYTYPE_FILE = 4

const RESOURCEDISPLAYTYPE_GENERIC = 0

const RESOURCEDISPLAYTYPE_GROUP = 5

const RESOURCEDISPLAYTYPE_NDSCONTAINER = 11

const RESOURCEDISPLAYTYPE_NETWORK = 6

const RESOURCEDISPLAYTYPE_ROOT = 7

const RESOURCEDISPLAYTYPE_SERVER = 2

const RESOURCEDISPLAYTYPE_SHARE = 3

const RESOURCEDISPLAYTYPE_SHAREADMIN = 8

const RESOURCEDISPLAYTYPE_TREE = 10

const RESOURCEMANAGER_ALL_ACCESS = 2031743

type RESOURCEMANAGER_BASIC_INFORMATION = TRESOURCEMANAGER_BASIC_INFORMATION

const RESOURCEMANAGER_COMPLETE_PROPAGATION = 64

type RESOURCEMANAGER_COMPLETION_INFORMATION = TRESOURCEMANAGER_COMPLETION_INFORMATION

const RESOURCEMANAGER_ENLIST = 8

const RESOURCEMANAGER_GENERIC_EXECUTE = 1179740

const RESOURCEMANAGER_GENERIC_READ = 1179649

const RESOURCEMANAGER_GENERIC_WRITE = 1179774

const RESOURCEMANAGER_GET_NOTIFICATION = 16

type RESOURCEMANAGER_INFORMATION_CLASS = TRESOURCEMANAGER_INFORMATION_CLASS

const RESOURCEMANAGER_QUERY_INFORMATION = 1

const RESOURCEMANAGER_RECOVER = 4

const RESOURCEMANAGER_REGISTER_PROTOCOL = 32

const RESOURCEMANAGER_SET_INFORMATION = 2

const RESOURCETYPE_ANY = 0

const RESOURCETYPE_DISK = 1

const RESOURCETYPE_PRINT = 2

const RESOURCETYPE_RESERVED = 8

const RESOURCETYPE_UNKNOWN = 4294967295

const RESOURCEUSAGE_ALL = 19

const RESOURCEUSAGE_ATTACHED = 16

const RESOURCEUSAGE_CONNECTABLE = 1

const RESOURCEUSAGE_CONTAINER = 2

const RESOURCEUSAGE_NOLOCALDEVICE = 4

const RESOURCEUSAGE_RESERVED = 2147483648

const RESOURCEUSAGE_SIBLING = 8

const RESOURCE_CONNECTED = 1

const RESOURCE_CONTEXT = 5

const RESOURCE_ENUM_LN = 1

const RESOURCE_ENUM_MODULE_EXACT = 16

const RESOURCE_ENUM_MUI = 2

const RESOURCE_ENUM_MUI_SYSTEM = 4

const RESOURCE_ENUM_VALIDATE = 8

const RESOURCE_GLOBALNET = 2

const RESOURCE_MANAGER_COMMUNICATION = 2

const RESOURCE_MANAGER_MAXIMUM_OPTION = 3

const RESOURCE_MANAGER_OBJECT_NAME_LENGTH_IN_BYTES = 0

const RESOURCE_MANAGER_OBJECT_PATH = "\\\\ResourceManager\\\\"

const RESOURCE_MANAGER_VOLATILE = 1

const RESOURCE_RECENT = 4

const RESOURCE_REMEMBERED = 3

const RESTART_MAX_CMD_LINE = 1024

const RESTART_NO_CRASH = 1

const RESTART_NO_HANG = 2

const RESTART_NO_PATCH = 4

const RESTART_NO_REBOOT = 8

const RESTORE_CTM = 4100

type RESUME_PERFORMANCE = TRESUME_PERFORMANCE

const RES_CURSOR = 2

const RES_ICON = 1

const RETRACT_IEPORT = 3

type RETRIEVAL_POINTERS_BUFFER = TRETRIEVAL_POINTERS_BUFFER

type RETRIEVAL_POINTER_BASE = TRETRIEVAL_POINTER_BASE

const RETURN_SMART_STATUS = 218

const REVERSE_PRINT = 1

const REVISION_LENGTH = 4

type RGBQUAD = TRGBQUAD

type RGBTRIPLE = TRGBTRIPLE

type RGNDATA = TRGNDATA

type RGNDATAHEADER = TRGNDATAHEADER

const RGN_AND = 1

const RGN_COPY = 5

const RGN_DIFF = 4

const RGN_ERROR = 0

const RGN_MAX = 5

const RGN_MIN = 1

const RGN_OR = 2

const RGN_XOR = 3

const RIDEV_APPKEYS = 1024

const RIDEV_CAPTUREMOUSE = 512

const RIDEV_DEVNOTIFY = 8192

const RIDEV_EXCLUDE = 16

const RIDEV_EXINPUTSINK = 4096

const RIDEV_EXMODEMASK = 240

const RIDEV_INPUTSINK = 256

const RIDEV_NOHOTKEYS = 512

const RIDEV_NOLEGACY = 48

const RIDEV_PAGEONLY = 32

const RIDEV_REMOVE = 1

const RIDI_DEVICEINFO = 536870923

const RIDI_DEVICENAME = 536870919

const RIDI_PREPARSEDDATA = 536870917

type RID_DEVICE_INFO = TRID_DEVICE_INFO

type RID_DEVICE_INFO_HID = TRID_DEVICE_INFO_HID

type RID_DEVICE_INFO_KEYBOARD = TRID_DEVICE_INFO_KEYBOARD

type RID_DEVICE_INFO_MOUSE = TRID_DEVICE_INFO_MOUSE

const RID_HEADER = 268435461

const RID_INPUT = 268435459

const RIGHTMOST_BUTTON_PRESSED = 2

const RIGHT_ALT_PRESSED = 1

const RIGHT_CTRL_PRESSED = 4

const RIM_INPUT = 0

const RIM_INPUTSINK = 1

const RIM_TYPEHID = 2

const RIM_TYPEKEYBOARD = 1

const RIM_TYPEMAX = 2

const RIM_TYPEMOUSE = 0

const RIP_EVENT = 9

type RIP_INFO = TRIP_INFO

const RI_KEY_BREAK = 1

const RI_KEY_E0 = 2

const RI_KEY_E1 = 4

const RI_KEY_MAKE = 0

const RI_KEY_TERMSRV_SET_LED = 8

const RI_KEY_TERMSRV_SHADOW = 16

const RI_MOUSE_BUTTON_1_DOWN = 1

const RI_MOUSE_BUTTON_1_UP = 2

const RI_MOUSE_BUTTON_2_DOWN = 4

const RI_MOUSE_BUTTON_2_UP = 8

const RI_MOUSE_BUTTON_3_DOWN = 16

const RI_MOUSE_BUTTON_3_UP = 32

const RI_MOUSE_BUTTON_4_DOWN = 64

const RI_MOUSE_BUTTON_4_UP = 128

const RI_MOUSE_BUTTON_5_DOWN = 256

const RI_MOUSE_BUTTON_5_UP = 512

const RI_MOUSE_HWHEEL = 2048

const RI_MOUSE_LEFT_BUTTON_DOWN = 1

const RI_MOUSE_LEFT_BUTTON_UP = 2

const RI_MOUSE_MIDDLE_BUTTON_DOWN = 16

const RI_MOUSE_MIDDLE_BUTTON_UP = 32

const RI_MOUSE_RIGHT_BUTTON_DOWN = 4

const RI_MOUSE_RIGHT_BUTTON_UP = 8

const RI_MOUSE_WHEEL = 1024

type ROOT_INFO_LUID = TROOT_INFO_LUID

const ROTFLAGS_ALLOWANYCLIENT = 2

const ROTFLAGS_REGISTRATIONKEEPSALIVE = 1

const ROTREGFLAGS_ALLOWANYCLIENT = 1

const ROT_COMPARE_MAX = 2048

const RPCFLG_ASYNCHRONOUS = 1073741824

const RPCFLG_AUTO_COMPLETE = 134217728

const RPCFLG_HAS_CALLBACK = 67108864

const RPCFLG_HAS_MULTI_SYNTAXES = 33554432

const RPCFLG_INPUT_SYNCHRONOUS = 536870912

const RPCFLG_LOCAL_CALL = 268435456

const RPCFLG_MESSAGE = 16777216

const RPCFLG_NON_NDR = 2147483648

type RPCLT_PDU_FILTER_FUNC = TRPCLT_PDU_FILTER_FUNC

const RPCNSAPI = "DECLSPEC_IMPORT"

type RPCOLEDATAREP = TRPCOLEDATAREP

type RPCOLEMESSAGE = TRPCOLEMESSAGE

type RPCOPT_PROPERTIES = TRPCOPT_PROPERTIES

type RPCOPT_SERVER_LOCALITY_VALUES = TRPCOPT_SERVER_LOCALITY_VALUES

const RPCRTAPI = "DECLSPEC_IMPORT"

type RPC_ASYNC_EVENT = TRPC_ASYNC_EVENT

type RPC_ASYNC_NOTIFICATION_INFO = TRPC_ASYNC_NOTIFICATION_INFO

type RPC_ASYNC_STATE = TRPC_ASYNC_STATE

const RPC_ASYNC_VERSION_1_0 = 0

type RPC_AUTHZ_HANDLE = TRPC_AUTHZ_HANDLE

type RPC_AUTH_IDENTITY_HANDLE = TRPC_AUTH_IDENTITY_HANDLE

type RPC_AUTH_KEY_RETRIEVAL_FN = TRPC_AUTH_KEY_RETRIEVAL_FN

type RPC_BINDING_HANDLE = TRPC_BINDING_HANDLE

type RPC_BINDING_HANDLE_OPTIONS = TRPC_BINDING_HANDLE_OPTIONS

type RPC_BINDING_HANDLE_OPTIONS_V1 = TRPC_BINDING_HANDLE_OPTIONS_V1

type RPC_BINDING_HANDLE_SECURITY = TRPC_BINDING_HANDLE_SECURITY

type RPC_BINDING_HANDLE_SECURITY_V1 = TRPC_BINDING_HANDLE_SECURITY_V1

type RPC_BINDING_HANDLE_TEMPLATE = TRPC_BINDING_HANDLE_TEMPLATE

type RPC_BINDING_HANDLE_TEMPLATE_V1 = TRPC_BINDING_HANDLE_TEMPLATE_V1

type RPC_BINDING_VECTOR = TRPC_BINDING_VECTOR

const RPC_BUFFER_ASYNC = 32768

const RPC_BUFFER_COMPLETE = 4096

const RPC_BUFFER_EXTRA = 16384

const RPC_BUFFER_NONOTIFY = 65536

const RPC_BUFFER_PARTIAL = 8192

type RPC_BUFPTR = TRPC_BUFPTR

type RPC_CALL_ATTRIBUTES = TRPC_CALL_ATTRIBUTES

type RPC_CALL_ATTRIBUTES_A = TRPC_CALL_ATTRIBUTES_A

const RPC_CALL_ATTRIBUTES_V1 = 0

type RPC_CALL_ATTRIBUTES_V1_A = TRPC_CALL_ATTRIBUTES_V1_A

type RPC_CALL_ATTRIBUTES_V1_W = TRPC_CALL_ATTRIBUTES_V1_W

const RPC_CALL_ATTRIBUTES_V2 = 0

type RPC_CALL_ATTRIBUTES_V2_A = TRPC_CALL_ATTRIBUTES_V2_A

type RPC_CALL_ATTRIBUTES_V2_W = TRPC_CALL_ATTRIBUTES_V2_W

const RPC_CALL_ATTRIBUTES_VERSION = 1

type RPC_CALL_ATTRIBUTES_W = TRPC_CALL_ATTRIBUTES_W

const RPC_CALL_LOCAL_ADDRESS = 0

type RPC_CALL_LOCAL_ADDRESS_A = TRPC_CALL_LOCAL_ADDRESS_A

const RPC_CALL_LOCAL_ADDRESS_V1 = 0

type RPC_CALL_LOCAL_ADDRESS_V1_A = TRPC_CALL_LOCAL_ADDRESS_V1_A

type RPC_CALL_LOCAL_ADDRESS_V1_W = TRPC_CALL_LOCAL_ADDRESS_V1_W

type RPC_CALL_LOCAL_ADDRESS_W = TRPC_CALL_LOCAL_ADDRESS_W

const RPC_CALL_STATUS_CANCELLED = 2

const RPC_CALL_STATUS_DISCONNECTED = 3

const RPC_CALL_STATUS_IN_PROGRESS = 1

type RPC_CLIENT_INFORMATION1 = TRPC_CLIENT_INFORMATION1

type RPC_CLIENT_INTERFACE = TRPC_CLIENT_INTERFACE

const RPC_CONTEXT_HANDLE_DEFAULT_FLAGS = 0

const RPC_CONTEXT_HANDLE_DEFAULT_GUARD = -4083

const RPC_CONTEXT_HANDLE_DONT_SERIALIZE = 536870912

const RPC_CONTEXT_HANDLE_FLAGS = 805306368

const RPC_CONTEXT_HANDLE_SERIALIZE = 268435456

type RPC_CSTR = TRPC_CSTR

const RPC_C_AUTHN_DCE_PRIVATE = 1

const RPC_C_AUTHN_DCE_PUBLIC = 2

const RPC_C_AUTHN_DEC_PUBLIC = 4

const RPC_C_AUTHN_DEFAULT = 4294967295

const RPC_C_AUTHN_DIGEST = 21

const RPC_C_AUTHN_DPA = 17

const RPC_C_AUTHN_GSS_KERBEROS = 16

const RPC_C_AUTHN_GSS_NEGOTIATE = 9

const RPC_C_AUTHN_GSS_SCHANNEL = 14

const RPC_C_AUTHN_INFO_TYPE_HTTP = 1

const RPC_C_AUTHN_LEVEL_CALL = 3

const RPC_C_AUTHN_LEVEL_CONNECT = 2

const RPC_C_AUTHN_LEVEL_DEFAULT = 0

const RPC_C_AUTHN_LEVEL_NONE = 1

const RPC_C_AUTHN_LEVEL_PKT = 4

const RPC_C_AUTHN_LEVEL_PKT_INTEGRITY = 5

const RPC_C_AUTHN_LEVEL_PKT_PRIVACY = 6

const RPC_C_AUTHN_MQ = 100

const RPC_C_AUTHN_MSN = 18

const RPC_C_AUTHN_NONE = 0

const RPC_C_AUTHN_WINNT = 10

const RPC_C_AUTHZ_DCE = 2

const RPC_C_AUTHZ_DEFAULT = 4294967295

const RPC_C_AUTHZ_NAME = 1

const RPC_C_AUTHZ_NONE = 0

const RPC_C_BINDING_DEFAULT_TIMEOUT = 5

const RPC_C_BINDING_INFINITE_TIMEOUT = 10

const RPC_C_BINDING_MAX_TIMEOUT = 9

const RPC_C_BINDING_MIN_TIMEOUT = 0

const RPC_C_BIND_TO_ALL_NICS = 1

const RPC_C_CANCEL_INFINITE_TIMEOUT = -1

const RPC_C_DONT_FAIL = 4

const RPC_C_EP_ALL_ELTS = 0

const RPC_C_EP_MATCH_BY_BOTH = 3

const RPC_C_EP_MATCH_BY_IF = 1

const RPC_C_EP_MATCH_BY_OBJ = 2

const RPC_C_FULL_CERT_CHAIN = 1

const RPC_C_HTTP_AUTHN_SCHEME_BASIC = 1

const RPC_C_HTTP_AUTHN_SCHEME_CERT = 65536

const RPC_C_HTTP_AUTHN_SCHEME_DIGEST = 8

const RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE = 16

const RPC_C_HTTP_AUTHN_SCHEME_NTLM = 2

const RPC_C_HTTP_AUTHN_SCHEME_PASSPORT = 4

const RPC_C_HTTP_AUTHN_TARGET_PROXY = 2

const RPC_C_HTTP_AUTHN_TARGET_SERVER = 1

const RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID = 8

const RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME = 2

const RPC_C_HTTP_FLAG_USE_SSL = 1

const RPC_C_IMP_LEVEL_ANONYMOUS = 1

const RPC_C_IMP_LEVEL_DEFAULT = 0

const RPC_C_IMP_LEVEL_DELEGATE = 4

const RPC_C_IMP_LEVEL_IDENTIFY = 2

const RPC_C_IMP_LEVEL_IMPERSONATE = 3

const RPC_C_INFINITE_TIMEOUT = 4294967295

const RPC_C_LISTEN_MAX_CALLS_DEFAULT = 1234

const RPC_C_MGMT_INQ_IF_IDS = 0

const RPC_C_MGMT_INQ_PRINC_NAME = 1

const RPC_C_MGMT_INQ_STATS = 2

const RPC_C_MGMT_IS_SERVER_LISTEN = 3

const RPC_C_MGMT_STOP_SERVER_LISTEN = 4

const RPC_C_MQ_AUTHN_LEVEL_NONE = 0

const RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY = 8

const RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY = 16

const RPC_C_MQ_CLEAR_ON_OPEN = 2

const RPC_C_MQ_EXPRESS = 0

const RPC_C_MQ_JOURNAL_ALWAYS = 2

const RPC_C_MQ_JOURNAL_DEADLETTER = 1

const RPC_C_MQ_JOURNAL_NONE = 0

const RPC_C_MQ_PERMANENT = 1

const RPC_C_MQ_RECOVERABLE = 1

const RPC_C_MQ_TEMPORARY = 0

const RPC_C_MQ_USE_EXISTING_SECURITY = 4

const RPC_C_NOTIFY_ON_SEND_COMPLETE = 1

const RPC_C_NS_DEFAULT_EXP_AGE = -1

const RPC_C_NS_SYNTAX_DCE = 3

const RPC_C_NS_SYNTAX_DEFAULT = 0

const RPC_C_OPT_BINDING_NONCAUSAL = 9

const RPC_C_OPT_CALL_TIMEOUT = 12

const RPC_C_OPT_DONT_LINGER = 13

const RPC_C_OPT_MAX_OPTIONS = 14

type RPC_C_OPT_METADATA_DESCRIPTOR = TRPC_C_OPT_METADATA_DESCRIPTOR

const RPC_C_OPT_MQ_ACKNOWLEDGE = 4

const RPC_C_OPT_MQ_AUTHN_LEVEL = 6

const RPC_C_OPT_MQ_AUTHN_SERVICE = 5

const RPC_C_OPT_MQ_DELIVERY = 1

const RPC_C_OPT_MQ_JOURNAL = 3

const RPC_C_OPT_MQ_PRIORITY = 2

const RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED = 8

const RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE = 7

const RPC_C_OPT_SECURITY_CALLBACK = 10

const RPC_C_OPT_UNIQUE_BINDING = 11

const RPC_C_PARM_BUFFER_LENGTH = 2

const RPC_C_PARM_MAX_PACKET_LENGTH = 1

const RPC_C_PROFILE_ALL_ELT = 1

const RPC_C_PROFILE_ALL_ELTS = 1

const RPC_C_PROFILE_DEFAULT_ELT = 0

const RPC_C_PROFILE_MATCH_BY_BOTH = 4

const RPC_C_PROFILE_MATCH_BY_IF = 2

const RPC_C_PROFILE_MATCH_BY_MBR = 3

const RPC_C_PROTECT_LEVEL_CALL = 3

const RPC_C_PROTECT_LEVEL_CONNECT = 2

const RPC_C_PROTECT_LEVEL_DEFAULT = 0

const RPC_C_PROTECT_LEVEL_NONE = 1

const RPC_C_PROTECT_LEVEL_PKT = 4

const RPC_C_PROTECT_LEVEL_PKT_INTEGRITY = 5

const RPC_C_PROTECT_LEVEL_PKT_PRIVACY = 6

const RPC_C_PROTSEQ_MAX_REQS_DEFAULT = 10

const RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY = 4

const RPC_C_QOS_CAPABILITIES_DEFAULT = 0

const RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE = 8

const RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT = 16

const RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC = 2

const RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH = 1

const RPC_C_QOS_IDENTITY_DYNAMIC = 1

const RPC_C_QOS_IDENTITY_STATIC = 0

const RPC_C_SECURITY_QOS_VERSION = 1

const RPC_C_SECURITY_QOS_VERSION_1 = 1

const RPC_C_SECURITY_QOS_VERSION_2 = 2

const RPC_C_SECURITY_QOS_VERSION_3 = 3

const RPC_C_STATS_CALLS_IN = 0

const RPC_C_STATS_CALLS_OUT = 1

const RPC_C_STATS_PKTS_IN = 2

const RPC_C_STATS_PKTS_OUT = 3

const RPC_C_USE_INTERNET_PORT = 1

const RPC_C_USE_INTRANET_PORT = 2

const RPC_C_VERS_ALL = 1

const RPC_C_VERS_COMPATIBLE = 2

const RPC_C_VERS_EXACT = 3

const RPC_C_VERS_MAJOR_ONLY = 4

const RPC_C_VERS_UPTO = 5

type RPC_DISPATCH_FUNCTION = TRPC_DISPATCH_FUNCTION

type RPC_DISPATCH_TABLE = TRPC_DISPATCH_TABLE

const RPC_EEINFO_VERSION = 1

type RPC_EE_INFO_PARAM = TRPC_EE_INFO_PARAM

type RPC_EP_INQ_HANDLE = TRPC_EP_INQ_HANDLE

type RPC_ERROR_ENUM_HANDLE = TRPC_ERROR_ENUM_HANDLE

type RPC_EXTENDED_ERROR_INFO = TRPC_EXTENDED_ERROR_INFO

const RPC_FLAGS_VALID_BIT = 32768

type RPC_HTTP_PROXY_FREE_STRING = TRPC_HTTP_PROXY_FREE_STRING

type RPC_HTTP_REDIRECTOR_STAGE = TRPC_HTTP_REDIRECTOR_STAGE

const RPC_HTTP_TRANSPORT_CREDENTIALS = 0

type RPC_HTTP_TRANSPORT_CREDENTIALS_A = TRPC_HTTP_TRANSPORT_CREDENTIALS_A

type RPC_HTTP_TRANSPORT_CREDENTIALS_W = TRPC_HTTP_TRANSPORT_CREDENTIALS_W

const RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH = 16

const RPC_IF_ALLOW_LOCAL_ONLY = 32

const RPC_IF_ALLOW_SECURE_ONLY = 8

const RPC_IF_ALLOW_UNKNOWN_AUTHORITY = 4

const RPC_IF_AUTOLISTEN = 1

type RPC_IF_HANDLE = TRPC_IF_HANDLE

type RPC_IF_ID = TRPC_IF_ID

type RPC_IF_ID_VECTOR = TRPC_IF_ID_VECTOR

const RPC_IF_OLE = 2

const RPC_IF_SEC_NO_CACHE = 64

type RPC_IMPORT_CONTEXT_P = TRPC_IMPORT_CONTEXT_P

const RPC_INTERFACE_HAS_PIPES = 1

type RPC_LENGTH = TRPC_LENGTH

type RPC_MESSAGE = TRPC_MESSAGE

type RPC_MGMT_AUTHORIZATION_FN = TRPC_MGMT_AUTHORIZATION_FN

const RPC_MGR_EPV = 0

const RPC_NCA_FLAGS_BROADCAST = 2

const RPC_NCA_FLAGS_DEFAULT = 0

const RPC_NCA_FLAGS_IDEMPOTENT = 1

const RPC_NCA_FLAGS_MAYBE = 4

type RPC_NEW_HTTP_PROXY_CHANNEL = TRPC_NEW_HTTP_PROXY_CHANNEL

type RPC_NOTIFICATIONS = TRPC_NOTIFICATIONS

type RPC_NOTIFICATION_TYPES = TRPC_NOTIFICATION_TYPES

type RPC_NS_HANDLE = TRPC_NS_HANDLE

type RPC_POLICY = TRPC_POLICY

type RPC_PROTSEQ_ENDPOINT = TRPC_PROTSEQ_ENDPOINT

const RPC_PROTSEQ_VECTOR = 0

type RPC_PROTSEQ_VECTORA = TRPC_PROTSEQ_VECTORA

type RPC_PROTSEQ_VECTORW = TRPC_PROTSEQ_VECTORW

const RPC_PROXY_CONNECTION_TYPE_IN_PROXY = 0

const RPC_PROXY_CONNECTION_TYPE_OUT_PROXY = 1

const RPC_P_ADDR_FORMAT_TCP_IPV4 = 1

const RPC_P_ADDR_FORMAT_TCP_IPV6 = 2

const RPC_QUERY_CLIENT_PRINCIPAL_NAME = 4

const RPC_QUERY_SERVER_PRINCIPAL_NAME = 2

type RPC_SECURITY_QOS = TRPC_SECURITY_QOS

const RPC_SECURITY_QOS_V2 = 0

type RPC_SECURITY_QOS_V2_A = TRPC_SECURITY_QOS_V2_A

type RPC_SECURITY_QOS_V2_W = TRPC_SECURITY_QOS_V2_W

const RPC_SECURITY_QOS_V3 = 0

type RPC_SECURITY_QOS_V3_A = TRPC_SECURITY_QOS_V3_A

type RPC_SECURITY_QOS_V3_W = TRPC_SECURITY_QOS_V3_W

type RPC_SERVER_INTERFACE = TRPC_SERVER_INTERFACE

type RPC_SETFILTER_FUNC = TRPC_SETFILTER_FUNC

type RPC_SS_THREAD_HANDLE = TRPC_SS_THREAD_HANDLE

type RPC_STATS_VECTOR = TRPC_STATS_VECTOR

type RPC_STATUS = TRPC_STATUS

type RPC_SYNTAX_IDENTIFIER = TRPC_SYNTAX_IDENTIFIER

const RPC_S_ACCESS_DENIED = 5

const RPC_S_ADDRESS_ERROR = 1768

const RPC_S_ALREADY_LISTENING = 1713

const RPC_S_ALREADY_REGISTERED = 1711

const RPC_S_ASYNC_CALL_PENDING = 997

const RPC_S_BINDING_HAS_NO_AUTH = 1746

const RPC_S_BINDING_INCOMPLETE = 1819

const RPC_S_BUFFER_TOO_SMALL = 122

const RPC_S_CALL_CANCELLED = 1818

const RPC_S_CALL_FAILED = 1726

const RPC_S_CALL_FAILED_DNE = 1727

const RPC_S_CALL_IN_PROGRESS = 1791

const RPC_S_CANNOT_SUPPORT = 1764

const RPC_S_CANT_CREATE_ENDPOINT = 1720

const RPC_S_COMM_FAILURE = 1820

const RPC_S_COOKIE_AUTH_FAILED = 1833

const RPC_S_DO_NOT_DISTURB = 1834

const RPC_S_DUPLICATE_ENDPOINT = 1740

const RPC_S_ENTRY_ALREADY_EXISTS = 1760

const RPC_S_ENTRY_NOT_FOUND = 1761

const RPC_S_ENTRY_TYPE_MISMATCH = 1922

const RPC_S_FP_DIV_ZERO = 1769

const RPC_S_FP_OVERFLOW = 1771

const RPC_S_FP_UNDERFLOW = 1770

const RPC_S_GROUP_MEMBER_NOT_FOUND = 1898

const RPC_S_GRP_ELT_NOT_ADDED = 1928

const RPC_S_GRP_ELT_NOT_REMOVED = 1929

const RPC_S_INCOMPLETE_NAME = 1755

const RPC_S_INTERFACE_NOT_EXPORTED = 1924

const RPC_S_INTERFACE_NOT_FOUND = 1759

const RPC_S_INTERNAL_ERROR = 1766

const RPC_S_INVALID_ARG = 87

const RPC_S_INVALID_ASYNC_CALL = 1915

const RPC_S_INVALID_ASYNC_HANDLE = 1914

const RPC_S_INVALID_AUTH_IDENTITY = 1749

const RPC_S_INVALID_BINDING = 1702

const RPC_S_INVALID_BOUND = 1734

const RPC_S_INVALID_ENDPOINT_FORMAT = 1706

const RPC_S_INVALID_LEVEL = 87

const RPC_S_INVALID_NAF_ID = 1763

const RPC_S_INVALID_NAME_SYNTAX = 1736

const RPC_S_INVALID_NETWORK_OPTIONS = 1724

const RPC_S_INVALID_NET_ADDR = 1707

const RPC_S_INVALID_OBJECT = 1900

const RPC_S_INVALID_RPC_PROTSEQ = 1704

const RPC_S_INVALID_SECURITY_DESC = 1338

const RPC_S_INVALID_STRING_BINDING = 1700

const RPC_S_INVALID_STRING_UUID = 1705

const RPC_S_INVALID_TAG = 1733

const RPC_S_INVALID_TIMEOUT = 1709

const RPC_S_INVALID_VERS_OPTION = 1756

const RPC_S_MAX_CALLS_TOO_SMALL = 1742

const RPC_S_NAME_SERVICE_UNAVAILABLE = 1762

const RPC_S_NOTHING_TO_EXPORT = 1754

const RPC_S_NOT_ALL_OBJS_EXPORTED = 1923

const RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758

const RPC_S_NOT_CANCELLED = 1826

const RPC_S_NOT_LISTENING = 1715

const RPC_S_NOT_RPC_ERROR = 1823

const RPC_S_NO_BINDINGS = 1718

const RPC_S_NO_CALL_ACTIVE = 1725

const RPC_S_NO_CONTEXT_AVAILABLE = 1765

const RPC_S_NO_ENDPOINT_FOUND = 1708

const RPC_S_NO_ENTRY_NAME = 1735

const RPC_S_NO_INTERFACES = 1817

const RPC_S_NO_MORE_BINDINGS = 1806

const RPC_S_NO_MORE_MEMBERS = 1757

const RPC_S_NO_PRINC_NAME = 1822

const RPC_S_NO_PROTSEQS = 1719

const RPC_S_NO_PROTSEQS_REGISTERED = 1714

const RPC_S_OBJECT_NOT_FOUND = 1710

const RPC_S_OK = 0

const RPC_S_OUT_OF_MEMORY = 14

const RPC_S_OUT_OF_RESOURCES = 1721

const RPC_S_OUT_OF_THREADS = 164

const RPC_S_PRF_ELT_NOT_ADDED = 1926

const RPC_S_PRF_ELT_NOT_REMOVED = 1927

const RPC_S_PROCNUM_OUT_OF_RANGE = 1745

const RPC_S_PROFILE_NOT_ADDED = 1925

const RPC_S_PROTOCOL_ERROR = 1728

const RPC_S_PROTSEQ_NOT_FOUND = 1744

const RPC_S_PROTSEQ_NOT_SUPPORTED = 1703

const RPC_S_PROXY_ACCESS_DENIED = 1729

const RPC_S_SEC_PKG_ERROR = 1825

const RPC_S_SEND_INCOMPLETE = 1913

const RPC_S_SERVER_OUT_OF_MEMORY = 1130

const RPC_S_SERVER_TOO_BUSY = 1723

const RPC_S_SERVER_UNAVAILABLE = 1722

const RPC_S_STRING_TOO_LONG = 1743

const RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED = 1835

const RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH = 1836

const RPC_S_TIMEOUT = 1460

const RPC_S_TYPE_ALREADY_REGISTERED = 1712

const RPC_S_UNKNOWN_AUTHN_LEVEL = 1748

const RPC_S_UNKNOWN_AUTHN_SERVICE = 1747

const RPC_S_UNKNOWN_AUTHN_TYPE = 1741

const RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750

const RPC_S_UNKNOWN_IF = 1717

const RPC_S_UNKNOWN_MGR_TYPE = 1716

const RPC_S_UNKNOWN_PRINCIPAL = 1332

const RPC_S_UNSUPPORTED_AUTHN_LEVEL = 1821

const RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737

const RPC_S_UNSUPPORTED_TRANS_SYN = 1730

const RPC_S_UNSUPPORTED_TYPE = 1732

const RPC_S_UUID_LOCAL_ONLY = 1824

const RPC_S_UUID_NO_ADDRESS = 1739

const RPC_S_WRONG_KIND_OF_BINDING = 1701

const RPC_S_ZERO_DIVIDE = 1767

type RPC_TRANSFER_SYNTAX = TRPC_TRANSFER_SYNTAX

const RPC_VAR_ENTRY = "__cdecl"

type RPC_VERSION = TRPC_VERSION

type RPC_WSTR = TRPC_WSTR

const RPC_X_BAD_STUB_DATA = 1783

const RPC_X_BYTE_COUNT_TOO_SMALL = 1782

const RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781

const RPC_X_ENUM_VALUE_TOO_LARGE = 1781

const RPC_X_INVALID_BOUND = 1734

const RPC_X_INVALID_BUFFER = 1784

const RPC_X_INVALID_ES_ACTION = 1827

const RPC_X_INVALID_PIPE_OBJECT = 1830

const RPC_X_INVALID_PIPE_OPERATION = 1831

const RPC_X_INVALID_TAG = 1733

const RPC_X_NO_MEMORY = 14

const RPC_X_NO_MORE_ENTRIES = 1772

const RPC_X_NULL_REF_POINTER = 1780

const RPC_X_PIPE_APP_MEMORY = 14

const RPC_X_PIPE_CLOSED = 1916

const RPC_X_PIPE_DISCIPLINE_ERROR = 1917

const RPC_X_PIPE_EMPTY = 1918

const RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779

const RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773

const RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774

const RPC_X_SS_CONTEXT_DAMAGED = 1777

const RPC_X_SS_CONTEXT_MISMATCH = 6

const RPC_X_SS_HANDLES_MISMATCH = 1778

const RPC_X_SS_IN_NULL_CONTEXT = 1775

const RPC_X_WRONG_ES_VERSION = 1828

const RPC_X_WRONG_PIPE_ORDER = 1831

const RPC_X_WRONG_PIPE_VERSION = 1832

const RPC_X_WRONG_STUB_VERSION = 1829

const RPI_FLAG_SMB2_SHARECAP_CLUSTER = 64

const RPI_FLAG_SMB2_SHARECAP_CONTINUOUS_AVAILABILITY = 16

const RPI_FLAG_SMB2_SHARECAP_DFS = 8

const RPI_FLAG_SMB2_SHARECAP_SCALEOUT = 32

const RPI_FLAG_SMB2_SHARECAP_TIMEWARP = 2

const RPI_SMB2_FLAG_SERVERCAP_DFS = 1

const RPI_SMB2_FLAG_SERVERCAP_DIRECTORY_LEASING = 32

const RPI_SMB2_FLAG_SERVERCAP_LARGEMTU = 4

const RPI_SMB2_FLAG_SERVERCAP_LEASING = 2

const RPI_SMB2_FLAG_SERVERCAP_MULTICHANNEL = 8

const RPI_SMB2_FLAG_SERVERCAP_PERSISTENT_HANDLES = 16

const RP_INIFILE = 2

const RP_LOGON = 1

const RRF_NOEXPAND = 268435456

const RRF_RT_ANY = 65535

const RRF_RT_DWORD = 24

const RRF_RT_QWORD = 72

const RRF_RT_REG_BINARY = 8

const RRF_RT_REG_DWORD = 16

const RRF_RT_REG_EXPAND_SZ = 4

const RRF_RT_REG_MULTI_SZ = 32

const RRF_RT_REG_NONE = 1

const RRF_RT_REG_QWORD = 64

const RRF_RT_REG_SZ = 2

const RRF_SUBKEY_WOW6432KEY = 131072

const RRF_SUBKEY_WOW6464KEY = 65536

const RRF_WOW64_MASK = 196608

const RRF_ZEROONFAILURE = 536870912

const RSA1024BIT_KEY = 67108864

type RSAPUBKEY = TRSAPUBKEY

type RTL_BARRIER = TRTL_BARRIER

type RTL_CONDITION_VARIABLE = TRTL_CONDITION_VARIABLE

const RTL_CONDITION_VARIABLE_LOCKMODE_SHARED = 1

type RTL_CRITICAL_SECTION = TRTL_CRITICAL_SECTION

const RTL_CRITICAL_SECTION_ALL_FLAG_BITS = 4278190080

type RTL_CRITICAL_SECTION_DEBUG = TRTL_CRITICAL_SECTION_DEBUG

const RTL_CRITICAL_SECTION_DEBUG_FLAG_STATIC_INIT = 1

const RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN = 33554432

const RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO = 268435456

const RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO = 16777216

const RTL_CRITICAL_SECTION_FLAG_RESERVED = 3758096384

const RTL_CRITICAL_SECTION_FLAG_RESOURCE_TYPE = 134217728

const RTL_CRITICAL_SECTION_FLAG_STATIC_INIT = 67108864

const RTL_CRITSECT_TYPE = 0

type RTL_OSVERSIONINFOEXW = TRTL_OSVERSIONINFOEXW

type RTL_OSVERSIONINFOW = TRTL_OSVERSIONINFOW

type RTL_RESOURCE_DEBUG = TRTL_RESOURCE_DEBUG

const RTL_RESOURCE_TYPE = 1

type RTL_RUN_ONCE = TRTL_RUN_ONCE

const RTL_RUN_ONCE_ASYNC = 2

const RTL_RUN_ONCE_CHECK_ONLY = 1

const RTL_RUN_ONCE_CTX_RESERVED_BITS = 2

const RTL_RUN_ONCE_INIT_FAILED = 4

type RTL_SRWLOCK = TRTL_SRWLOCK

type RTL_UMS_SCHEDULER_REASON = TRTL_UMS_SCHEDULER_REASON

type RTL_UMS_THREAD_INFO_CLASS = TRTL_UMS_THREAD_INFO_CLASS

const RTL_UMS_VERSION = 256

type RTL_VERIFIER_DLL_DESCRIPTOR = TRTL_VERIFIER_DLL_DESCRIPTOR

type RTL_VERIFIER_DLL_LOAD_CALLBACK = TRTL_VERIFIER_DLL_LOAD_CALLBACK

type RTL_VERIFIER_DLL_UNLOAD_CALLBACK = TRTL_VERIFIER_DLL_UNLOAD_CALLBACK

type RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK = TRTL_VERIFIER_NTDLLHEAPFREE_CALLBACK

type RTL_VERIFIER_PROVIDER_DESCRIPTOR = TRTL_VERIFIER_PROVIDER_DESCRIPTOR

type RTL_VERIFIER_THUNK_DESCRIPTOR = TRTL_VERIFIER_THUNK_DESCRIPTOR

const RTL_VRF_FLG_APPCOMPAT_CHECKS = 16

const RTL_VRF_FLG_COM_CHECKS = 256

const RTL_VRF_FLG_DANGEROUS_APIS = 512

const RTL_VRF_FLG_DEADLOCK_CHECKS = 2048

const RTL_VRF_FLG_DIRTY_STACKS = 64

const RTL_VRF_FLG_ENABLED_SYSTEM_WIDE = 131072

const RTL_VRF_FLG_ENABLE_LOGGING = 16384

const RTL_VRF_FLG_FAST_FILL_HEAP = 32768

const RTL_VRF_FLG_FIRST_CHANCE_EXCEPTION_CHECKS = 4096

const RTL_VRF_FLG_FULL_PAGE_HEAP = 1

const RTL_VRF_FLG_HANDLE_CHECKS = 4

const RTL_VRF_FLG_LOCK_CHECKS = 262144

const RTL_VRF_FLG_MISCELLANEOUS_CHECKS = 131072

const RTL_VRF_FLG_RACE_CHECKS = 1024

const RTL_VRF_FLG_RESERVED_DONOTUSE = 2

const RTL_VRF_FLG_RPC_CHECKS = 128

const RTL_VRF_FLG_STACK_CHECKS = 8

const RTL_VRF_FLG_TLS_CHECKS = 32

const RTL_VRF_FLG_VIRTUAL_MEM_CHECKS = 8192

const RTL_VRF_FLG_VIRTUAL_SPACE_TRACKING = 65536

const RTS_CONTROL_DISABLE = 0

const RTS_CONTROL_ENABLE = 1

const RTS_CONTROL_HANDSHAKE = 2

const RTS_CONTROL_TOGGLE = 3

const RUNDLGORD = 1545

const RUSSIAN_CHARSET = 204

const ReadConsole = 0

const ReadConsoleInput = 0

const ReadConsoleOutput = 0

const ReadConsoleOutputCharacter = 0

const ReadEventLog = 0

const RealGetWindowClass = 0

const RegConnectRegistry = 0

const RegConnectRegistryEx = 0

const RegCopyTree = 0

const RegCreateKey = 0

const RegCreateKeyEx = 0

const RegCreateKeyTransacted = 0

const RegDeleteKey = 0

const RegDeleteKeyEx = 0

const RegDeleteKeyTransacted = 0

const RegDeleteKeyValue = 0

const RegDeleteTree = 0

const RegDeleteValue = 0

const RegEnumKey = 0

const RegEnumKeyEx = 0

const RegEnumValue = 0

const RegGetValue = 0

const RegLoadAppKey = 0

const RegLoadKey = 0

const RegLoadMUIString = 0

const RegOpenKey = 0

const RegOpenKeyEx = 0

const RegOpenKeyTransacted = 0

const RegQueryInfoKey = 0

const RegQueryMultipleValues = 0

const RegQueryValue = 0

const RegQueryValueEx = 0

const RegReplaceKey = 0

const RegRestoreKey = 0

const RegSaveKey = 0

const RegSaveKeyEx = 0

const RegSetKeyValue = 0

const RegSetValue = 0

const RegSetValueEx = 0

const RegUnLoadKey = 0

const RegisterClass = 0

const RegisterClassEx = 0

const RegisterClipboardFormat = 0

const RegisterDeviceNotification = 0

const RegisterEventSource = 0

const RegisterServiceCtrlHandler = 0

const RegisterServiceCtrlHandlerEx = 0

const RegisterWindowMessage = 0

type RemBINDINFO = TRemBINDINFO

type RemFORMATETC = TRemFORMATETC

type RemHBITMAP = TRemHBITMAP

type RemHBRUSH = TRemHBRUSH

type RemHENHMETAFILE = TRemHENHMETAFILE

type RemHGLOBAL = TRemHGLOBAL

type RemHMETAFILEPICT = TRemHMETAFILEPICT

type RemHPALETTE = TRemHPALETTE

type RemSNB = TRemSNB

type RemSTGMEDIUM = TRemSTGMEDIUM

type RemotableHandle = TRemotableHandle

const RemoveDirectory = 0

const RemoveDirectoryTransacted = 0

const RemoveFontResource = 0

const RemoveFontResourceEx = 0

const RemoveProp = 0

const ReplaceFile = 0

const ReplaceText = 0

type ReplacesCorHdrNumericDefines = TReplacesCorHdrNumericDefines

const ReportEvent = 0

const ResetDC = 0

const ResetPrinter = 0

const RotateLeft32 = 0

const RotateLeft64 = 0

const RotateRight32 = 0

const RotateRight64 = 0

const RpcBindingCreate = 0

const RpcBindingFromStringBinding = 0

const RpcBindingInqAuthClient = 0

const RpcBindingInqAuthClientEx = 0

const RpcBindingInqAuthInfo = 0

const RpcBindingInqAuthInfoEx = 0

const RpcBindingSetAuthInfo = 0

const RpcBindingSetAuthInfoEx = 0

const RpcBindingToStringBinding = 0

type RpcCallClientLocality = TRpcCallClientLocality

type RpcCallType = TRpcCallType

const RpcEndExcept = "}"

const RpcEndFinally = "}"

const RpcEpRegister = 0

const RpcEpRegisterNoReplace = 0

type RpcLocalAddressFormat = TRpcLocalAddressFormat

const RpcMgmtEpEltInqNext = 0

const RpcMgmtInqServerPrincName = 0

const RpcNetworkInqProtseqs = 0

const RpcNetworkIsProtseqValid = 0

const RpcNsBindingExport = 0

const RpcNsBindingExportPnP = 0

const RpcNsBindingImportBegin = 0

const RpcNsBindingInqEntryName = 0

const RpcNsBindingLookupBegin = 0

const RpcNsBindingUnexport = 0

const RpcNsBindingUnexportPnP = 0

const RpcNsEntryExpandName = 0

const RpcNsEntryObjectInqBegin = 0

const RpcNsGroupDelete = 0

const RpcNsGroupMbrAdd = 0

const RpcNsGroupMbrInqBegin = 0

const RpcNsGroupMbrInqNext = 0

const RpcNsGroupMbrRemove = 0

const RpcNsMgmtBindingUnexport = 0

const RpcNsMgmtEntryCreate = 0

const RpcNsMgmtEntryDelete = 0

const RpcNsMgmtEntryInqIfIds = 0

const RpcNsProfileDelete = 0

const RpcNsProfileEltAdd = 0

const RpcNsProfileEltInqBegin = 0

const RpcNsProfileEltInqNext = 0

const RpcNsProfileEltRemove = 0

const RpcProtseqVectorFree = 0

const RpcServerInqCallAttributes = 0

const RpcServerInqDefaultPrincName = 0

const RpcServerRegisterAuthInfo = 0

const RpcServerUseProtseq = 0

const RpcServerUseProtseqEp = 0

const RpcServerUseProtseqEpEx = 0

const RpcServerUseProtseqEx = 0

const RpcServerUseProtseqIf = 0

const RpcServerUseProtseqIfEx = 0

const RpcStringBindingCompose = 0

const RpcStringBindingParse = 0

const RpcStringFree = 0

const SACL_SECURITY_INFORMATION = 8

type SAFEARRAY = TSAFEARRAY

type SAFEARRAYBOUND = TSAFEARRAYBOUND

type SAFEARRAYUNION = TSAFEARRAYUNION

type SAFEARR_BRECORD = TSAFEARR_BRECORD

type SAFEARR_BSTR = TSAFEARR_BSTR

type SAFEARR_DISPATCH = TSAFEARR_DISPATCH

type SAFEARR_HAVEIID = TSAFEARR_HAVEIID

type SAFEARR_UNKNOWN = TSAFEARR_UNKNOWN

type SAFEARR_VARIANT = TSAFEARR_VARIANT

const SANDBOX_INERT = 2

type SAVEPOINT_ID = TSAVEPOINT_ID

const SAVE_ATTRIBUTE_VALUES = 211

const SAVE_CTM = 4101

const SBM_ENABLE_ARROWS = 228

const SBM_GETPOS = 225

const SBM_GETRANGE = 227

const SBM_GETSCROLLBARINFO = 235

const SBM_GETSCROLLINFO = 234

const SBM_SETPOS = 224

const SBM_SETRANGE = 226

const SBM_SETRANGEREDRAW = 230

const SBM_SETSCROLLINFO = 233

const SBS_BOTTOMALIGN = 4

const SBS_HORZ = 0

const SBS_LEFTALIGN = 2

const SBS_RIGHTALIGN = 4

const SBS_SIZEBOX = 8

const SBS_SIZEBOXBOTTOMRIGHTALIGN = 4

const SBS_SIZEBOXTOPLEFTALIGN = 2

const SBS_SIZEGRIP = 16

const SBS_TOPALIGN = 2

const SBS_VERT = 1

const SB_BOTH = 3

const SB_BOTTOM = 7

const SB_CONST_ALPHA = 1

const SB_CTL = 2

const SB_ENDSCROLL = 8

const SB_GRAD_RECT = 16

const SB_GRAD_TRI = 32

const SB_HORZ = 0

const SB_LEFT = 6

const SB_LINEDOWN = 1

const SB_LINELEFT = 0

const SB_LINERIGHT = 1

const SB_LINEUP = 0

const SB_NONE = 0

const SB_PAGEDOWN = 3

const SB_PAGELEFT = 2

const SB_PAGERIGHT = 3

const SB_PAGEUP = 2

const SB_PIXEL_ALPHA = 2

const SB_PREMULT_ALPHA = 4

const SB_RIGHT = 7

const SB_THUMBPOSITION = 4

const SB_THUMBTRACK = 5

const SB_TOP = 6

const SB_VERT = 1

const SCALINGFACTORX = 114

const SCALINGFACTORY = 115

type SCARDCONTEXT = TSCARDCONTEXT

type SCARDHANDLE = TSCARDHANDLE

const SCARD_ABSENT = 1

type SCARD_ATRMASK = TSCARD_ATRMASK

const SCARD_ATR_LENGTH = 33

const SCARD_CLASS_COMMUNICATIONS = 2

const SCARD_CLASS_ICC_STATE = 9

const SCARD_CLASS_IFD_PROTOCOL = 8

const SCARD_CLASS_MECHANICAL = 6

const SCARD_CLASS_PERF = 32766

const SCARD_CLASS_POWER_MGMT = 4

const SCARD_CLASS_PROTOCOL = 3

const SCARD_CLASS_SECURITY = 5

const SCARD_CLASS_SYSTEM = 32767

const SCARD_CLASS_VENDOR_DEFINED = 7

const SCARD_CLASS_VENDOR_INFO = 1

const SCARD_COLD_RESET = 1

const SCARD_EJECT_CARD = 3

type SCARD_IO_REQUEST = TSCARD_IO_REQUEST

const SCARD_LEAVE_CARD = 0

const SCARD_NEGOTIABLE = 5

const SCARD_PCI_RAW = 0

const SCARD_PCI_T0 = 0

const SCARD_PCI_T1 = 0

const SCARD_POWERED = 4

const SCARD_POWER_DOWN = 0

const SCARD_PRESENT = 2

const SCARD_PROTOCOL_DEFAULT = 2147483648

const SCARD_PROTOCOL_OPTIMAL = 0

const SCARD_PROTOCOL_RAW = 65536

const SCARD_PROTOCOL_T0 = 1

const SCARD_PROTOCOL_T1 = 2

const SCARD_PROTOCOL_Tx = 3

const SCARD_PROTOCOL_UNDEFINED = 0

const SCARD_PROVIDER_CSP = 2

const SCARD_PROVIDER_PRIMARY = 1

type SCARD_READERSTATE = TSCARD_READERSTATE

type SCARD_READERSTATEA = TSCARD_READERSTATEA

type SCARD_READERSTATEW = TSCARD_READERSTATEW

const SCARD_READERSTATE_A = 0

const SCARD_READERSTATE_W = 0

const SCARD_READER_CONFISCATES = 4

const SCARD_READER_EJECTS = 2

const SCARD_READER_SWALLOWS = 1

const SCARD_READER_TYPE_IDE = 16

const SCARD_READER_TYPE_KEYBOARD = 4

const SCARD_READER_TYPE_PARALELL = 2

const SCARD_READER_TYPE_PCMCIA = 64

const SCARD_READER_TYPE_SCSI = 8

const SCARD_READER_TYPE_SERIAL = 1

const SCARD_READER_TYPE_USB = 32

const SCARD_READER_TYPE_VENDOR = 240

const SCARD_RESET_CARD = 1

const SCARD_SCOPE_SYSTEM = 2

const SCARD_SCOPE_TERMINAL = 1

const SCARD_SCOPE_USER = 0

const SCARD_SHARE_DIRECT = 3

const SCARD_SHARE_EXCLUSIVE = 1

const SCARD_SHARE_SHARED = 2

const SCARD_SPECIFIC = 6

const SCARD_STATE_ATRMATCH = 64

const SCARD_STATE_CHANGED = 2

const SCARD_STATE_EMPTY = 16

const SCARD_STATE_EXCLUSIVE = 128

const SCARD_STATE_IGNORE = 1

const SCARD_STATE_INUSE = 256

const SCARD_STATE_MUTE = 512

const SCARD_STATE_PRESENT = 32

const SCARD_STATE_UNAVAILABLE = 8

const SCARD_STATE_UNAWARE = 0

const SCARD_STATE_UNKNOWN = 4

const SCARD_STATE_UNPOWERED = 1024

const SCARD_SWALLOWED = 3

const SCARD_S_SUCCESS = 0

const SCARD_T0_CMD_LENGTH = 5

type SCARD_T0_COMMAND = TSCARD_T0_COMMAND

const SCARD_T0_HEADER_LENGTH = 7

type SCARD_T0_REQUEST = TSCARD_T0_REQUEST

const SCARD_T1_EPILOGUE_LENGTH = 2

const SCARD_T1_MAX_IFS = 254

const SCARD_T1_PROLOGUE_LENGTH = 3

type SCARD_T1_REQUEST = TSCARD_T1_REQUEST

const SCARD_UNKNOWN = 0

const SCARD_UNPOWER_CARD = 2

const SCARD_WARM_RESET = 2

const SCERR_NOCARDNAME = 16384

const SCERR_NOGUIDS = 32768

const SCF_ISSECURE = 1

type SCHANNEL_ALG = TSCHANNEL_ALG

const SCHANNEL_ENC_KEY = 1

const SCHANNEL_MAC_KEY = 0

const SCHED_E_SERVICE_NOT_LOCALSYSTEM = 6200

const SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC = "SchemeDllRetrieveEncodedObjectW"

const SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC = "SchemeDllRetrieveEncodedObject"

type SCODE = TSCODE

type SCONTEXT_QUEUE = TSCONTEXT_QUEUE

const SCOPE_SECURITY_INFORMATION = 64

type SCOPE_TABLE_AMD64 = TSCOPE_TABLE_AMD64

const SCREEN_FONTTYPE = 8192

type SCROLLBARINFO = TSCROLLBARINFO

type SCROLLINFO = TSCROLLINFO

const SCROLLLOCK_ON = 64

type SCRUB_DATA_INPUT = TSCRUB_DATA_INPUT

const SCRUB_DATA_INPUT_FLAG_RESUME = 1

const SCRUB_DATA_INPUT_FLAG_SKIP_IN_SYNC = 2

const SCRUB_DATA_INPUT_FLAG_SKIP_NON_INTEGRITY_DATA = 4

type SCRUB_DATA_OUTPUT = TSCRUB_DATA_OUTPUT

const SCRUB_DATA_OUTPUT_FLAG_INCOMPLETE = 1

const SCRUB_DATA_OUTPUT_FLAG_NON_USER_DATA_RANGE = 65536

const SCS_32BIT_BINARY = 0

const SCS_64BIT_BINARY = 6

const SCS_CAP_COMPSTR = 1

const SCS_CAP_MAKEREAD = 2

const SCS_CAP_SETRECONVERTSTRING = 4

const SCS_CHANGEATTR = 18

const SCS_CHANGECLAUSE = 36

const SCS_DOS_BINARY = 1

const SCS_OS216_BINARY = 5

const SCS_PIF_BINARY = 3

const SCS_POSIX_BINARY = 4

const SCS_QUERYRECONVERTSTRING = 131072

const SCS_SETRECONVERTSTRING = 65536

const SCS_SETSTR = 9

const SCS_WOW_BINARY = 2

type SC_ACTION = TSC_ACTION

type SC_ACTION_TYPE = TSC_ACTION_TYPE

const SC_ARRANGE = 61712

const SC_CLOSE = 61536

const SC_CONTEXTHELP = 61824

const SC_DEFAULT = 61792

const SC_DLG_FORCE_UI = 4

const SC_DLG_MINIMAL_UI = 1

const SC_DLG_NO_UI = 2

type SC_ENUM_TYPE = TSC_ENUM_TYPE

const SC_GROUP_IDENTIFIER = 43

const SC_GROUP_IDENTIFIERA = 43

const SC_GROUP_IDENTIFIERW = 43

type SC_HANDLE = TSC_HANDLE

type SC_HANDLE__ = TSC_HANDLE__

const SC_HOTKEY = 61776

const SC_HSCROLL = 61568

const SC_ICON = 61472

const SC_KEYMENU = 61696

type SC_LOCK = TSC_LOCK

const SC_MANAGER_ALL_ACCESS = 983103

const SC_MANAGER_CONNECT = 1

const SC_MANAGER_CREATE_SERVICE = 2

const SC_MANAGER_ENUMERATE_SERVICE = 4

const SC_MANAGER_LOCK = 8

const SC_MANAGER_MODIFY_BOOT_CONFIG = 32

const SC_MANAGER_QUERY_LOCK_STATUS = 16

const SC_MAXIMIZE = 61488

const SC_MINIMIZE = 61472

const SC_MONITORPOWER = 61808

const SC_MOUSEMENU = 61584

const SC_MOVE = 61456

const SC_NEXTWINDOW = 61504

const SC_PREVWINDOW = 61520

const SC_RESTORE = 61728

const SC_SCREENSAVE = 61760

const SC_SEPARATOR = 61455

const SC_SIZE = 61440

type SC_STATUS_TYPE = TSC_STATUS_TYPE

const SC_TASKLIST = 61744

const SC_VSCROLL = 61552

const SC_ZOOM = 61488

const SCardAddReaderToGroup = 0

const SCardConnect = 0

const SCardForgetCardType = 0

const SCardForgetReader = 0

const SCardForgetReaderGroup = 0

const SCardGetCardTypeProviderName = 0

const SCardGetProviderId = 0

const SCardGetReaderCapabilities = 0

const SCardGetStatusChange = 0

const SCardIntroduceCardType = 0

const SCardIntroduceReader = 0

const SCardIntroduceReaderGroup = 0

const SCardListCardTypes = 0

const SCardListCards = 0

const SCardListInterfaces = 0

const SCardListReaderGroups = 0

const SCardListReaders = 0

const SCardLocateCards = 0

const SCardLocateCardsByATR = 0

const SCardReadCache = 0

const SCardRemoveReaderFromGroup = 0

const SCardSetCardTypeProviderName = 0

const SCardSetReaderCapabilities = 0

const SCardStatus = 0

const SCardUIDlgSelectCard = 0

const SCardWriteCache = 0

type SChannelHookCallInfo = TSChannelHookCallInfo

const SDC_ALLOW_CHANGES = 1024

const SDC_ALLOW_PATH_ORDER_CHANGES = 8192

const SDC_APPLY = 128

const SDC_FORCE_MODE_ENUMERATION = 4096

const SDC_NO_OPTIMIZATION = 256

const SDC_PATH_PERSIST_IF_REQUIRED = 2048

const SDC_SAVE_TO_DATABASE = 512

const SDC_TOPOLOGY_CLONE = 2

const SDC_TOPOLOGY_EXTEND = 4

const SDC_TOPOLOGY_EXTERNAL = 8

const SDC_TOPOLOGY_INTERNAL = 1

const SDC_TOPOLOGY_SUPPLIED = 16

const SDC_USE_DATABASE_CURRENT = 15

const SDC_USE_SUPPLIED_DISPLAY_CONFIG = 32

const SDC_VALIDATE = 64

const SDC_VIRTUAL_MODE_AWARE = 32768

type SD_CHANGE_MACHINE_SID_INPUT = TSD_CHANGE_MACHINE_SID_INPUT

type SD_CHANGE_MACHINE_SID_OUTPUT = TSD_CHANGE_MACHINE_SID_OUTPUT

const SD_GLOBAL_CHANGE_TYPE_MACHINE_SID = 1

const SEARCH_ALL = 0

const SEARCH_ALL_NO_SEQ = 4

const SEARCH_ALTERNATE = 2

const SEARCH_ALT_NO_SEQ = 6

const SEARCH_PRIMARY = 1

const SEARCH_PRI_NO_SEQ = 5

const SECTION_ALL_ACCESS = 983071

const SECTION_EXTEND_SIZE = 16

const SECTION_MAP_EXECUTE = 8

const SECTION_MAP_EXECUTE_EXPLICIT = 32

const SECTION_MAP_READ = 4

const SECTION_MAP_WRITE = 2

const SECTION_QUERY = 1

const SECURITY_ANONYMOUS = 0

const SECURITY_ANONYMOUS_LOGON_RID = 7

const SECURITY_APPPOOL_ID_BASE_RID = 82

const SECURITY_APPPOOL_ID_RID_COUNT = 6

const SECURITY_APP_PACKAGE_BASE_RID = 2

const SECURITY_APP_PACKAGE_RID_COUNT = 8

type SECURITY_ATTRIBUTES = TSECURITY_ATTRIBUTES

const SECURITY_AUTHENTICATED_USER_RID = 11

const SECURITY_AUTHENTICATION_AUTHORITY_ASSERTED_RID = 1

const SECURITY_AUTHENTICATION_AUTHORITY_RID_COUNT = 1

const SECURITY_AUTHENTICATION_SERVICE_ASSERTED_RID = 2

const SECURITY_BATCH_RID = 3

const SECURITY_BUILTIN_APP_PACKAGE_RID_COUNT = 2

const SECURITY_BUILTIN_CAPABILITY_RID_COUNT = 2

const SECURITY_BUILTIN_DOMAIN_RID = 32

const SECURITY_BUILTIN_PACKAGE_ANY_PACKAGE = 1

const SECURITY_BUILTIN_PACKAGE_ANY_RESTRICTED_PACKAGE = 2

type SECURITY_CAPABILITIES = TSECURITY_CAPABILITIES

const SECURITY_CAPABILITY_APPOINTMENTS = 11

const SECURITY_CAPABILITY_BASE_RID = 3

const SECURITY_CAPABILITY_CONTACTS = 12

const SECURITY_CAPABILITY_DOCUMENTS_LIBRARY = 7

const SECURITY_CAPABILITY_ENTERPRISE_AUTHENTICATION = 8

const SECURITY_CAPABILITY_INTERNET_CLIENT = 1

const SECURITY_CAPABILITY_INTERNET_CLIENT_SERVER = 2

const SECURITY_CAPABILITY_INTERNET_EXPLORER = 4096

const SECURITY_CAPABILITY_MUSIC_LIBRARY = 6

const SECURITY_CAPABILITY_PICTURES_LIBRARY = 4

const SECURITY_CAPABILITY_PRIVATE_NETWORK_CLIENT_SERVER = 3

const SECURITY_CAPABILITY_REMOVABLE_STORAGE = 10

const SECURITY_CAPABILITY_RID_COUNT = 5

const SECURITY_CAPABILITY_SHARED_USER_CERTIFICATES = 9

const SECURITY_CAPABILITY_VIDEOS_LIBRARY = 5

const SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_BASE_RID = 85

const SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_RID_COUNT = 6

const SECURITY_COM_ID_BASE_RID = 89

const SECURITY_CONTEXT_TRACKING = 262144

type SECURITY_CONTEXT_TRACKING_MODE = TSECURITY_CONTEXT_TRACKING_MODE

const SECURITY_CREATOR_GROUP_RID = 1

const SECURITY_CREATOR_GROUP_SERVER_RID = 3

const SECURITY_CREATOR_OWNER_RID = 0

const SECURITY_CREATOR_OWNER_RIGHTS_RID = 4

const SECURITY_CREATOR_OWNER_SERVER_RID = 2

const SECURITY_CRED_TYPE_BASE_RID = 65

const SECURITY_CRED_TYPE_RID_COUNT = 2

const SECURITY_CRED_TYPE_THIS_ORG_CERT_RID = 1

const SECURITY_DASHOST_ID_BASE_RID = 92

const SECURITY_DASHOST_ID_RID_COUNT = 6

const SECURITY_DELEGATION = 0

type SECURITY_DESCRIPTOR = TSECURITY_DESCRIPTOR

type SECURITY_DESCRIPTOR_CONTROL = TSECURITY_DESCRIPTOR_CONTROL

const SECURITY_DESCRIPTOR_MIN_LENGTH = 0

type SECURITY_DESCRIPTOR_RELATIVE = TSECURITY_DESCRIPTOR_RELATIVE

const SECURITY_DESCRIPTOR_REVISION = 1

const SECURITY_DESCRIPTOR_REVISION1 = 1

const SECURITY_DIALUP_RID = 1

const SECURITY_DYNAMIC_TRACKING = 1

const SECURITY_EFFECTIVE_ONLY = 524288

const SECURITY_ENTERPRISE_CONTROLLERS_RID = 9

const SECURITY_ENTERPRISE_READONLY_CONTROLLERS_RID = 22

const SECURITY_IDENTIFICATION = 0

const SECURITY_IE_STATE_GREEN = 0

const SECURITY_IE_STATE_RED = 1

const SECURITY_IMPERSONATION = 0

type SECURITY_IMPERSONATION_LEVEL = TSECURITY_IMPERSONATION_LEVEL

type SECURITY_INFORMATION = TSECURITY_INFORMATION

const SECURITY_INTERACTIVE_RID = 4

const SECURITY_IUSER_RID = 17

const SECURITY_LOCAL_LOGON_RID = 1

const SECURITY_LOCAL_RID = 0

const SECURITY_LOCAL_SERVICE_RID = 19

const SECURITY_LOCAL_SYSTEM_RID = 18

const SECURITY_LOGON_IDS_RID = 5

const SECURITY_LOGON_IDS_RID_COUNT = 3

const SECURITY_MANDATORY_HIGH_RID = 12288

const SECURITY_MANDATORY_LOW_RID = 4096

const SECURITY_MANDATORY_MAXIMUM_USER_RID = 16384

const SECURITY_MANDATORY_MEDIUM_RID = 8192

const SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 20480

const SECURITY_MANDATORY_SYSTEM_RID = 16384

const SECURITY_MANDATORY_UNTRUSTED_RID = 0

const SECURITY_MAX_ALWAYS_FILTERED = 999

const SECURITY_MAX_BASE_RID = 111

const SECURITY_MAX_IMPERSONATION_LEVEL = 0

const SECURITY_MAX_SID_SIZE = 0

const SECURITY_MIN_BASE_RID = 80

const SECURITY_MIN_IMPERSONATION_LEVEL = 0

const SECURITY_MIN_NEVER_FILTERED = 1000

const SECURITY_NETWORK_RID = 2

const SECURITY_NETWORK_SERVICE_RID = 20

const SECURITY_NFS_ID_BASE_RID = 88

const SECURITY_NT_NON_UNIQUE = 21

const SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT = 3

const SECURITY_NULL_RID = 0

const SECURITY_OTHER_ORGANIZATION_RID = 1000

const SECURITY_PACKAGE_BASE_RID = 64

const SECURITY_PACKAGE_DIGEST_RID = 21

const SECURITY_PACKAGE_NTLM_RID = 10

const SECURITY_PACKAGE_RID_COUNT = 2

const SECURITY_PACKAGE_SCHANNEL_RID = 14

const SECURITY_PRINCIPAL_SELF_RID = 10

const SECURITY_PROXY_RID = 8

type SECURITY_QUALITY_OF_SERVICE = TSECURITY_QUALITY_OF_SERVICE

const SECURITY_RDV_GFX_BASE_RID = 91

const SECURITY_REMOTE_LOGON_RID = 14

const SECURITY_RESERVED_ID_BASE_RID = 81

const SECURITY_RESTRICTED_CODE_RID = 12

const SECURITY_SERVER_LOGON_RID = 9

const SECURITY_SERVICE_ID_BASE_RID = 80

const SECURITY_SERVICE_ID_RID_COUNT = 6

const SECURITY_SERVICE_RID = 6

const SECURITY_SQOS_PRESENT = 1048576

const SECURITY_STATIC_TRACKING = 0

type SECURITY_STATUS = TSECURITY_STATUS

const SECURITY_TASK_ID_BASE_RID = 87

const SECURITY_TERMINAL_SERVER_RID = 13

const SECURITY_THIS_ORGANIZATION_RID = 15

const SECURITY_TRUSTED_INSTALLER_RID1 = 956008885

const SECURITY_TRUSTED_INSTALLER_RID2 = 3418522649

const SECURITY_TRUSTED_INSTALLER_RID3 = 1831038044

const SECURITY_TRUSTED_INSTALLER_RID4 = 1853292631

const SECURITY_TRUSTED_INSTALLER_RID5 = 2271478464

const SECURITY_USERMODEDRIVERHOST_ID_BASE_RID = 84

const SECURITY_USERMODEDRIVERHOST_ID_RID_COUNT = 6

const SECURITY_VALID_SQOS_FLAGS = 2031616

const SECURITY_VIRTUALACCOUNT_ID_RID_COUNT = 6

const SECURITY_VIRTUALSERVER_ID_BASE_RID = 83

const SECURITY_VIRTUALSERVER_ID_RID_COUNT = 6

const SECURITY_WINDOWSMOBILE_ID_BASE_RID = 112

const SECURITY_WINDOW_MANAGER_BASE_RID = 90

const SECURITY_WMIHOST_ID_BASE_RID = 86

const SECURITY_WMIHOST_ID_RID_COUNT = 6

const SECURITY_WORLD_RID = 0

const SECURITY_WRITE_RESTRICTED_CODE_RID = 33

const SEC_64K_PAGES = 524288

const SEC_COMMIT = 134217728

const SEC_E_NOT_SUPPORTED = "SEC_E_UNSUPPORTED_FUNCTION"

const SEC_E_NO_SPM = "SEC_E_INTERNAL_ERROR"

const SEC_FILE = 8388608

const SEC_IMAGE = 16777216

const SEC_IMAGE_NO_EXECUTE = 285212672

const SEC_LARGE_PAGES = 2147483648

const SEC_NOCACHE = 268435456

const SEC_PARTITION_OWNER_HANDLE = 262144

const SEC_PROTECTED_IMAGE = 33554432

const SEC_RESERVE = 67108864

const SEC_WINNT_AUTH_IDENTITY = 0

type SEC_WINNT_AUTH_IDENTITY_A = TSEC_WINNT_AUTH_IDENTITY_A

const SEC_WINNT_AUTH_IDENTITY_ANSI = 1

const SEC_WINNT_AUTH_IDENTITY_UNICODE = 2

type SEC_WINNT_AUTH_IDENTITY_W = TSEC_WINNT_AUTH_IDENTITY_W

const SEC_WRITECOMBINE = 1073741824

const SEE_MASK_ASYNCOK = 1048576

const SEE_MASK_CLASSKEY = 3

const SEE_MASK_CLASSNAME = 1

const SEE_MASK_CONNECTNETDRV = 128

const SEE_MASK_DEFAULT = 0

const SEE_MASK_DOENVSUBST = 512

const SEE_MASK_FLAG_DDEWAIT = 256

const SEE_MASK_FLAG_HINST_IS_SITE = 134217728

const SEE_MASK_FLAG_LOG_USAGE = 67108864

const SEE_MASK_FLAG_NO_UI = 1024

const SEE_MASK_HMONITOR = 2097152

const SEE_MASK_HOTKEY = 32

const SEE_MASK_IDLIST = 4

const SEE_MASK_INVOKEIDLIST = 12

const SEE_MASK_NOASYNC = 256

const SEE_MASK_NOCLOSEPROCESS = 64

const SEE_MASK_NOQUERYCLASSSTORE = 16777216

const SEE_MASK_NOZONECHECKS = 8388608

const SEE_MASK_NO_CONSOLE = 32768

const SEE_MASK_UNICODE = 16384

const SEE_MASK_WAITFORINPUTIDLE = 33554432

const SEF_AVOID_OWNER_CHECK = 16

const SEF_AVOID_OWNER_RESTRICTION = 4096

const SEF_AVOID_PRIVILEGE_CHECK = 8

const SEF_DACL_AUTO_INHERIT = 1

const SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT = 4

const SEF_DEFAULT_GROUP_FROM_PARENT = 64

const SEF_DEFAULT_OWNER_FROM_PARENT = 32

const SEF_MACL_NO_EXECUTE_UP = 1024

const SEF_MACL_NO_READ_UP = 512

const SEF_MACL_NO_WRITE_UP = 256

const SEF_MACL_VALID_FLAGS = 1792

const SEF_SACL_AUTO_INHERIT = 2

const SELECTDIB = 41

const SELECTPAPERSOURCE = 18

const SELECT_CAP_CONVERSION = 1

const SELECT_CAP_SENTENCE = 2

const SEMAPHORE_ALL_ACCESS = 2031619

const SEMAPHORE_MODIFY_STATE = 2

const SEM_FAILCRITICALERRORS = 1

const SEM_NOALIGNMENTFAULTEXCEPT = 4

const SEM_NOGPFAULTERRORBOX = 2

const SEM_NOOPENFILEERRORBOX = 32768

type SENDASYNCPROC = TSENDASYNCPROC

type SENDCMDINPARAMS = TSENDCMDINPARAMS

type SENDCMDOUTPARAMS = TSENDCMDOUTPARAMS

type SERIALIZEDPROPERTYVALUE = TSERIALIZEDPROPERTYVALUE

type SERIALKEYS = TSERIALKEYS

type SERIALKEYSA = TSERIALKEYSA

type SERIALKEYSW = TSERIALKEYSW

const SERIAL_NUMBER_LENGTH = 32

const SERKF_AVAILABLE = 2

const SERKF_INDICATOR = 4

const SERKF_SERIALKEYSON = 1

type SERVENT = TSERVENT

type SERVERCALL = TSERVERCALL

const SERVER_ACCESS_ADMINISTER = 1

const SERVER_ACCESS_ENUMERATE = 2

const SERVER_ALL_ACCESS = 983043

const SERVER_EXECUTE = 131074

const SERVER_READ = 131074

type SERVER_ROUTINE = TSERVER_ROUTINE

const SERVER_WRITE = 131075

const SERVICES_ACTIVE_DATABASEA = "ServicesActive"

const SERVICES_ACTIVE_DATABASEW = "ServicesActive"

const SERVICES_FAILED_DATABASEA = "ServicesFailed"

const SERVICES_FAILED_DATABASEW = "ServicesFailed"

const SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32

const SERVICE_ACCEPT_LOWRESOURCES = 8192

const SERVICE_ACCEPT_NETBINDCHANGE = 16

const SERVICE_ACCEPT_PARAMCHANGE = 8

const SERVICE_ACCEPT_PAUSE_CONTINUE = 2

const SERVICE_ACCEPT_POWEREVENT = 64

const SERVICE_ACCEPT_PRESHUTDOWN = 256

const SERVICE_ACCEPT_SESSIONCHANGE = 128

const SERVICE_ACCEPT_SHUTDOWN = 4

const SERVICE_ACCEPT_STOP = 1

const SERVICE_ACCEPT_SYSTEMLOWRESOURCES = 16384

const SERVICE_ACCEPT_TIMECHANGE = 512

const SERVICE_ACCEPT_TRIGGEREVENT = 1024

const SERVICE_ACCEPT_USER_LOGOFF = 2048

const SERVICE_ACTIVE = 1

const SERVICE_ADAPTER = 4

const SERVICE_ALL_ACCESS = 983551

const SERVICE_AUTO_START = 2

const SERVICE_BOOT_START = 0

const SERVICE_CHANGE_CONFIG = 2

const SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3

const SERVICE_CONFIG_DESCRIPTION = 1

const SERVICE_CONFIG_FAILURE_ACTIONS = 2

const SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4

const SERVICE_CONFIG_LAUNCH_PROTECTED = 12

const SERVICE_CONFIG_PREFERRED_NODE = 9

const SERVICE_CONFIG_PRESHUTDOWN_INFO = 7

const SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6

const SERVICE_CONFIG_SERVICE_SID_INFO = 5

const SERVICE_CONFIG_TRIGGER_INFO = 8

const SERVICE_CONTINUE_PENDING = 5

const SERVICE_CONTROL_CONTINUE = 3

const SERVICE_CONTROL_DEVICEEVENT = 11

const SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12

const SERVICE_CONTROL_INTERROGATE = 4

const SERVICE_CONTROL_LOWRESOURCES = 96

const SERVICE_CONTROL_NETBINDADD = 7

const SERVICE_CONTROL_NETBINDDISABLE = 10

const SERVICE_CONTROL_NETBINDENABLE = 9

const SERVICE_CONTROL_NETBINDREMOVE = 8

const SERVICE_CONTROL_PARAMCHANGE = 6

const SERVICE_CONTROL_PAUSE = 2

const SERVICE_CONTROL_POWEREVENT = 13

const SERVICE_CONTROL_PRESHUTDOWN = 15

const SERVICE_CONTROL_SESSIONCHANGE = 14

const SERVICE_CONTROL_SHUTDOWN = 5

const SERVICE_CONTROL_STATUS_REASON_INFO = 1

type SERVICE_CONTROL_STATUS_REASON_PARAMS = TSERVICE_CONTROL_STATUS_REASON_PARAMS

type SERVICE_CONTROL_STATUS_REASON_PARAMSA = TSERVICE_CONTROL_STATUS_REASON_PARAMSA

type SERVICE_CONTROL_STATUS_REASON_PARAMSW = TSERVICE_CONTROL_STATUS_REASON_PARAMSW

const SERVICE_CONTROL_STOP = 1

const SERVICE_CONTROL_SYSTEMLOWRESOURCES = 97

const SERVICE_CONTROL_TIMECHANGE = 16

const SERVICE_CONTROL_TRIGGEREVENT = 32

const SERVICE_CONTROL_USER_LOGOFF = 17

type SERVICE_DELAYED_AUTO_START_INFO = TSERVICE_DELAYED_AUTO_START_INFO

const SERVICE_DEMAND_START = 3

type SERVICE_DESCRIPTION = TSERVICE_DESCRIPTION

type SERVICE_DESCRIPTIONA = TSERVICE_DESCRIPTIONA

type SERVICE_DESCRIPTIONW = TSERVICE_DESCRIPTIONW

const SERVICE_DISABLED = 4

const SERVICE_DRIVER = 11

const SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1

const SERVICE_ENUMERATE_DEPENDENTS = 8

const SERVICE_ERROR_CRITICAL = 3

const SERVICE_ERROR_IGNORE = 0

const SERVICE_ERROR_NORMAL = 1

const SERVICE_ERROR_SEVERE = 2

type SERVICE_ERROR_TYPE = TSERVICE_ERROR_TYPE

type SERVICE_FAILURE_ACTIONS = TSERVICE_FAILURE_ACTIONS

type SERVICE_FAILURE_ACTIONSA = TSERVICE_FAILURE_ACTIONSA

type SERVICE_FAILURE_ACTIONSW = TSERVICE_FAILURE_ACTIONSW

type SERVICE_FAILURE_ACTIONS_FLAG = TSERVICE_FAILURE_ACTIONS_FLAG

const SERVICE_FILE_SYSTEM_DRIVER = 2

const SERVICE_INACTIVE = 2

const SERVICE_INTERACTIVE_PROCESS = 256

const SERVICE_INTERROGATE = 128

const SERVICE_KERNEL_DRIVER = 1

const SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT = 3

const SERVICE_LAUNCH_PROTECTED_NONE = 0

const SERVICE_LAUNCH_PROTECTED_WINDOWS = 1

const SERVICE_LAUNCH_PROTECTED_WINDOWS_LIGHT = 2

type SERVICE_LOAD_TYPE = TSERVICE_LOAD_TYPE

type SERVICE_NODE_TYPE = TSERVICE_NODE_TYPE

type SERVICE_NOTIFY = TSERVICE_NOTIFY

type SERVICE_NOTIFYA = TSERVICE_NOTIFYA

type SERVICE_NOTIFYW = TSERVICE_NOTIFYW

const SERVICE_NOTIFY_CONTINUE_PENDING = 16

const SERVICE_NOTIFY_CREATED = 128

const SERVICE_NOTIFY_DELETED = 256

const SERVICE_NOTIFY_DELETE_PENDING = 512

const SERVICE_NOTIFY_PAUSED = 64

const SERVICE_NOTIFY_PAUSE_PENDING = 32

const SERVICE_NOTIFY_RUNNING = 8

const SERVICE_NOTIFY_START_PENDING = 2

const SERVICE_NOTIFY_STATUS_CHANGE = 2

const SERVICE_NOTIFY_STATUS_CHANGE_1 = 1

const SERVICE_NOTIFY_STATUS_CHANGE_2 = 2

const SERVICE_NOTIFY_STOPPED = 1

const SERVICE_NOTIFY_STOP_PENDING = 4

const SERVICE_NO_CHANGE = 4294967295

const SERVICE_PAUSED = 7

const SERVICE_PAUSE_CONTINUE = 64

const SERVICE_PAUSE_PENDING = 6

type SERVICE_PRESHUTDOWN_INFO = TSERVICE_PRESHUTDOWN_INFO

const SERVICE_QUERY_CONFIG = 1

const SERVICE_QUERY_STATUS = 4

const SERVICE_RECOGNIZER_DRIVER = 8

type SERVICE_REQUIRED_PRIVILEGES_INFO = TSERVICE_REQUIRED_PRIVILEGES_INFO

type SERVICE_REQUIRED_PRIVILEGES_INFOA = TSERVICE_REQUIRED_PRIVILEGES_INFOA

type SERVICE_REQUIRED_PRIVILEGES_INFOW = TSERVICE_REQUIRED_PRIVILEGES_INFOW

const SERVICE_RUNNING = 4

const SERVICE_RUNS_IN_SYSTEM_PROCESS = 1

type SERVICE_SID_INFO = TSERVICE_SID_INFO

const SERVICE_SID_TYPE_NONE = 0

const SERVICE_SID_TYPE_RESTRICTED = 3

const SERVICE_SID_TYPE_UNRESTRICTED = 1

const SERVICE_START = 16

const SERVICE_START_PENDING = 2

const SERVICE_START_REASON_AUTO = 2

const SERVICE_START_REASON_DELAYEDAUTO = 16

const SERVICE_START_REASON_DEMAND = 1

const SERVICE_START_REASON_RESTART_ON_FAILURE = 8

const SERVICE_START_REASON_TRIGGER = 4

const SERVICE_STATE_ALL = 3

type SERVICE_STATUS = TSERVICE_STATUS

type SERVICE_STATUS_HANDLE = TSERVICE_STATUS_HANDLE

type SERVICE_STATUS_HANDLE__ = TSERVICE_STATUS_HANDLE__

type SERVICE_STATUS_PROCESS = TSERVICE_STATUS_PROCESS

const SERVICE_STOP = 32

const SERVICE_STOPPED = 1

const SERVICE_STOP_PENDING = 3

const SERVICE_STOP_REASON_FLAG_CUSTOM = 536870912

const SERVICE_STOP_REASON_FLAG_MAX = 2147483648

const SERVICE_STOP_REASON_FLAG_MIN = 0

const SERVICE_STOP_REASON_FLAG_PLANNED = 1073741824

const SERVICE_STOP_REASON_FLAG_UNPLANNED = 268435456

const SERVICE_STOP_REASON_MAJOR_APPLICATION = 327680

const SERVICE_STOP_REASON_MAJOR_HARDWARE = 131072

const SERVICE_STOP_REASON_MAJOR_MAX = 458752

const SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM = 16711680

const SERVICE_STOP_REASON_MAJOR_MIN = 0

const SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM = 4194304

const SERVICE_STOP_REASON_MAJOR_NONE = 393216

const SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM = 196608

const SERVICE_STOP_REASON_MAJOR_OTHER = 65536

const SERVICE_STOP_REASON_MAJOR_SOFTWARE = 262144

const SERVICE_STOP_REASON_MINOR_DISK = 8

const SERVICE_STOP_REASON_MINOR_ENVIRONMENT = 10

const SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER = 11

const SERVICE_STOP_REASON_MINOR_HUNG = 6

const SERVICE_STOP_REASON_MINOR_INSTALLATION = 3

const SERVICE_STOP_REASON_MINOR_MAINTENANCE = 2

const SERVICE_STOP_REASON_MINOR_MAX = 25

const SERVICE_STOP_REASON_MINOR_MAX_CUSTOM = 65535

const SERVICE_STOP_REASON_MINOR_MEMOTYLIMIT = 24

const SERVICE_STOP_REASON_MINOR_MIN = 0

const SERVICE_STOP_REASON_MINOR_MIN_CUSTOM = 256

const SERVICE_STOP_REASON_MINOR_MMC = 22

const SERVICE_STOP_REASON_MINOR_NETWORKCARD = 9

const SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY = 17

const SERVICE_STOP_REASON_MINOR_NONE = 23

const SERVICE_STOP_REASON_MINOR_OTHER = 1

const SERVICE_STOP_REASON_MINOR_OTHERDRIVER = 12

const SERVICE_STOP_REASON_MINOR_RECONFIG = 5

const SERVICE_STOP_REASON_MINOR_SECURITY = 16

const SERVICE_STOP_REASON_MINOR_SECURITYFIX = 15

const SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL = 21

const SERVICE_STOP_REASON_MINOR_SERVICEPACK = 13

const SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL = 19

const SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE = 14

const SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL = 20

const SERVICE_STOP_REASON_MINOR_UNSTABLE = 7

const SERVICE_STOP_REASON_MINOR_UPGRADE = 4

const SERVICE_STOP_REASON_MINOR_WMI = 18

const SERVICE_SYSTEM_START = 1

type SERVICE_TABLE_ENTRY = TSERVICE_TABLE_ENTRY

type SERVICE_TABLE_ENTRYA = TSERVICE_TABLE_ENTRYA

type SERVICE_TABLE_ENTRYW = TSERVICE_TABLE_ENTRYW

const SERVICE_TRIGGER_DATA_TYPE_BINARY = 1

const SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL = 5

const SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY = 4

const SERVICE_TRIGGER_DATA_TYPE_LEVEL = 3

const SERVICE_TRIGGER_DATA_TYPE_STRING = 2

const SERVICE_TRIGGER_TYPE_AGGREGATE = 30

const SERVICE_TRIGGER_TYPE_CUSTOM = 20

const SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE = 7

const SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL = 1

const SERVICE_TRIGGER_TYPE_DOMAIN_JOIN = 3

const SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT = 4

const SERVICE_TRIGGER_TYPE_GROUP_POLICY = 5

const SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY = 2

const SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT = 6

const SERVICE_TYPE_ALL = 319

const SERVICE_USER_DEFINED_CONTROL = 256

const SERVICE_WIN32 = 48

const SERVICE_WIN32_OWN_PROCESS = 16

const SERVICE_WIN32_SHARE_PROCESS = 32

const SESSION_ABORTED = 6

const SESSION_ALL_ACCESS = 983043

type SESSION_BUFFER = TSESSION_BUFFER

const SESSION_ESTABLISHED = 3

type SESSION_HEADER = TSESSION_HEADER

const SESSION_MODIFY_ACCESS = 2

const SESSION_QUERY_ACCESS = 1

const SETABORTPROC = 9

const SETALLJUSTVALUES = 771

const SETBREAK = 8

const SETCHARSET = 772

const SETCOLORTABLE = 4

const SETCOPYCOUNT = 17

const SETDIBSCALING = 32

const SETDTR = 5

const SETICMPROFILE_EMBEDED = 1

const SETKERNTRACK = 770

const SETLINECAP = 21

const SETLINEJOIN = 22

const SETMITERLIMIT = 23

const SETRGBSTRINGA = "commdlg_SetRGBColor"

const SETRGBSTRINGW = "commdlg_SetRGBColor"

const SETRTS = 3

const SETWALLPAPER_DEFAULT = -1

const SETXOFF = 1

const SETXON = 2

const SET_ARC_DIRECTION = 4102

const SET_BACKGROUND_COLOR = 4103

const SET_BOUNDS = 4109

const SET_CLIP_BOX = 4108

const SET_FEATURE_IN_REGISTRY = 4

const SET_FEATURE_ON_PROCESS = 2

const SET_FEATURE_ON_THREAD = 1

const SET_FEATURE_ON_THREAD_INTERNET = 64

const SET_FEATURE_ON_THREAD_INTRANET = 16

const SET_FEATURE_ON_THREAD_LOCALMACHINE = 8

const SET_FEATURE_ON_THREAD_RESTRICTED = 128

const SET_FEATURE_ON_THREAD_TRUSTED = 32

const SET_MIRROR_MODE = 4110

type SET_PARTITION_INFORMATION = TSET_PARTITION_INFORMATION

type SET_PARTITION_INFORMATION_EX = TSET_PARTITION_INFORMATION_EX

type SET_PARTITION_INFORMATION_GPT = TSET_PARTITION_INFORMATION_GPT

type SET_PARTITION_INFORMATION_MBR = TSET_PARTITION_INFORMATION_MBR

const SET_POLY_MODE = 4104

type SET_POWER_SETTING_VALUE = TSET_POWER_SETTING_VALUE

const SET_REPAIR_DELETE_CROSSLINK = 4

const SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT = 16

const SET_REPAIR_ENABLED = 1

const SET_REPAIR_VALID_MASK = 31

const SET_REPAIR_VOLUME_BITMAP_SCAN = 2

const SET_REPAIR_WARN_ABOUT_DATA_LOSS = 8

const SET_SCREEN_ANGLE = 4105

const SET_SPREAD = 4106

const SET_TAPE_DRIVE_INFORMATION = 1

const SET_TAPE_MEDIA_INFORMATION = 0

type SET_VIRTUAL_DISK_INFO = TSET_VIRTUAL_DISK_INFO

type SET_VIRTUAL_DISK_INFO_VERSION = TSET_VIRTUAL_DISK_INFO_VERSION

const SEVERITY_ERROR = 1

const SEVERITY_SUCCESS = 0

type SE_ACCESS_REPLY = TSE_ACCESS_REPLY

type SE_ACCESS_REQUEST = TSE_ACCESS_REQUEST

const SE_DACL_AUTO_INHERITED = 1024

const SE_DACL_AUTO_INHERIT_REQ = 256

const SE_DACL_DEFAULTED = 8

const SE_DACL_PRESENT = 4

const SE_DACL_PROTECTED = 4096

const SE_ERR_ACCESSDENIED = 5

const SE_ERR_ASSOCINCOMPLETE = 27

const SE_ERR_DDEBUSY = 30

const SE_ERR_DDEFAIL = 29

const SE_ERR_DDETIMEOUT = 28

const SE_ERR_DLLNOTFOUND = 32

const SE_ERR_FNF = 2

const SE_ERR_NOASSOC = 31

const SE_ERR_OOM = 8

const SE_ERR_PNF = 3

const SE_ERR_SHARE = 26

const SE_GROUP_DEFAULTED = 2

const SE_GROUP_ENABLED = 4

const SE_GROUP_ENABLED_BY_DEFAULT = 2

const SE_GROUP_INTEGRITY = 32

const SE_GROUP_INTEGRITY_ENABLED = 64

const SE_GROUP_LOGON_ID = 3221225472

const SE_GROUP_MANDATORY = 1

const SE_GROUP_OWNER = 8

const SE_GROUP_RESOURCE = 536870912

const SE_GROUP_USE_FOR_DENY_ONLY = 16

const SE_GROUP_VALID_ATTRIBUTES = 3758096511

type SE_IMPERSONATION_STATE = TSE_IMPERSONATION_STATE

type SE_LEARNING_MODE_DATA_TYPE = TSE_LEARNING_MODE_DATA_TYPE

const SE_LEARNING_MODE_FLAG_PERMISSIVE = 1

const SE_OWNER_DEFAULTED = 1

const SE_PRIVILEGE_ENABLED = 2

const SE_PRIVILEGE_ENABLED_BY_DEFAULT = 1

const SE_PRIVILEGE_REMOVED = 4

const SE_PRIVILEGE_USED_FOR_ACCESS = 2147483648

const SE_PRIVILEGE_VALID_ATTRIBUTES = 2147483655

const SE_RM_CONTROL_VALID = 16384

const SE_SACL_AUTO_INHERITED = 2048

const SE_SACL_AUTO_INHERIT_REQ = 512

const SE_SACL_DEFAULTED = 32

const SE_SACL_PRESENT = 16

const SE_SACL_PROTECTED = 8192

type SE_SECURITY_DESCRIPTOR = TSE_SECURITY_DESCRIPTOR

const SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE = 2

const SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE = 1

const SE_SECURITY_DESCRIPTOR_VALID_FLAGS = 3

const SE_SELF_RELATIVE = 32768

type SF_TYPE = TSF_TYPE

const SHADEBLENDCAPS = 120

type SHANDLE_PTR = TSHANDLE_PTR

const SHAREVISTRINGA = "commdlg_ShareViolation"

const SHAREVISTRINGW = "commdlg_ShareViolation"

type SHCREATEPROCESSINFOW = TSHCREATEPROCESSINFOW

type SHELLEXECUTEINFO = TSHELLEXECUTEINFO

type SHELLEXECUTEINFOA = TSHELLEXECUTEINFOA

type SHELLEXECUTEINFOW = TSHELLEXECUTEINFOW

type SHELLHOOKINFO = TSHELLHOOKINFO

const SHERB_NOCONFIRMATION = 1

const SHERB_NOPROGRESSUI = 2

const SHERB_NOSOUND = 4

const SHEmptyRecycleBin = 0

const SHEnumerateUnreadMailAccounts = 0

type SHFILEINFO = TSHFILEINFO

type SHFILEINFOA = TSHFILEINFOA

type SHFILEINFOW = TSHFILEINFOW

type SHFILEOPSTRUCT = TSHFILEOPSTRUCT

type SHFILEOPSTRUCTA = TSHFILEOPSTRUCTA

type SHFILEOPSTRUCTW = TSHFILEOPSTRUCTW

const SHFileOperation = 0

const SHGFI_ADDOVERLAYS = 32

const SHGFI_ATTRIBUTES = 2048

const SHGFI_ATTR_SPECIFIED = 131072

const SHGFI_DISPLAYNAME = 512

const SHGFI_EXETYPE = 8192

const SHGFI_ICON = 256

const SHGFI_ICONLOCATION = 4096

const SHGFI_LARGEICON = 0

const SHGFI_LINKOVERLAY = 32768

const SHGFI_OPENICON = 2

const SHGFI_OVERLAYINDEX = 64

const SHGFI_PIDL = 8

const SHGFI_SELECTED = 65536

const SHGFI_SHELLICONSIZE = 4

const SHGFI_SMALLICON = 1

const SHGFI_SYSICONINDEX = 16384

const SHGFI_TYPENAME = 1024

const SHGFI_USEFILEATTRIBUTES = 16

const SHGNLI_NOLNK = 8

const SHGNLI_NOLOCNAME = 16

const SHGNLI_NOUNIQUE = 4

const SHGNLI_PIDL = 1

const SHGNLI_PREFIXNAME = 2

const SHGNLI_USEURLEXT = 32

const SHGSI_ICON = 256

const SHGSI_ICONLOCATION = 0

const SHGSI_LARGEICON = 0

const SHGSI_LINKOVERLAY = 32768

const SHGSI_SELECTED = 65536

const SHGSI_SHELLICONSIZE = 4

const SHGSI_SMALLICON = 1

const SHGSI_SYSICONINDEX = 16384

const SHGetDiskFreeSpace = 0

const SHGetDiskFreeSpaceEx = 0

const SHGetFileInfo = 0

const SHGetNewLinkInfo = 0

const SHGetUnreadMailCount = 0

const SHIFTJIS_CHARSET = 128

const SHIFT_PRESSED = 16

const SHIL_EXTRALARGE = 2

const SHIL_JUMBO = 4

const SHIL_LARGE = 0

const SHIL_LAST = 4

const SHIL_SMALL = 1

const SHIL_SYSSMALL = 3

const SHInvokePrinterCommand = 0

type SHNAMEMAPPING = TSHNAMEMAPPING

type SHNAMEMAPPINGA = TSHNAMEMAPPINGA

type SHNAMEMAPPINGW = TSHNAMEMAPPINGW

type SHORT = TSHORT

const SHOW_FULLSCREEN = 3

const SHOW_ICONWINDOW = 2

const SHOW_OPENNOACTIVATE = 4

const SHOW_OPENWINDOW = 1

type SHQUERYRBINFO = TSHQUERYRBINFO

const SHQueryRecycleBin = 0

type SHRINK_VOLUME_INFORMATION = TSHRINK_VOLUME_INFORMATION

type SHRINK_VOLUME_REQUEST_TYPES = TSHRINK_VOLUME_REQUEST_TYPES

type SHSTOCKICONID = TSHSTOCKICONID

type SHSTOCKICONINFO = TSHSTOCKICONINFO

const SHSetUnreadMailCount = 0

const SHTDN_REASON_FLAG_CLEAN_UI = 67108864

const SHTDN_REASON_FLAG_COMMENT_REQUIRED = 16777216

const SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 33554432

const SHTDN_REASON_FLAG_DIRTY_UI = 134217728

const SHTDN_REASON_FLAG_PLANNED = 2147483648

const SHTDN_REASON_FLAG_USER_DEFINED = 1073741824

const SHTDN_REASON_LEGACY_API = 2147942400

const SHTDN_REASON_MAJOR_APPLICATION = 262144

const SHTDN_REASON_MAJOR_HARDWARE = 65536

const SHTDN_REASON_MAJOR_LEGACY_API = 458752

const SHTDN_REASON_MAJOR_NONE = 0

const SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 131072

const SHTDN_REASON_MAJOR_OTHER = 0

const SHTDN_REASON_MAJOR_POWER = 393216

const SHTDN_REASON_MAJOR_SOFTWARE = 196608

const SHTDN_REASON_MAJOR_SYSTEM = 327680

const SHTDN_REASON_MINOR_BLUESCREEN = 15

const SHTDN_REASON_MINOR_CORDUNPLUGGED = 11

const SHTDN_REASON_MINOR_DC_DEMOTION = 34

const SHTDN_REASON_MINOR_DC_PROMOTION = 33

const SHTDN_REASON_MINOR_DISK = 7

const SHTDN_REASON_MINOR_ENVIRONMENT = 12

const SHTDN_REASON_MINOR_HARDWARE_DRIVER = 13

const SHTDN_REASON_MINOR_HOTFIX = 17

const SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 23

const SHTDN_REASON_MINOR_HUNG = 5

const SHTDN_REASON_MINOR_INSTALLATION = 2

const SHTDN_REASON_MINOR_MAINTENANCE = 1

const SHTDN_REASON_MINOR_MMC = 25

const SHTDN_REASON_MINOR_NETWORKCARD = 9

const SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 20

const SHTDN_REASON_MINOR_NONE = 255

const SHTDN_REASON_MINOR_OTHER = 0

const SHTDN_REASON_MINOR_OTHERDRIVER = 14

const SHTDN_REASON_MINOR_POWER_SUPPLY = 10

const SHTDN_REASON_MINOR_PROCESSOR = 8

const SHTDN_REASON_MINOR_RECONFIG = 4

const SHTDN_REASON_MINOR_SECURITY = 19

const SHTDN_REASON_MINOR_SECURITYFIX = 18

const SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 24

const SHTDN_REASON_MINOR_SERVICEPACK = 16

const SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 22

const SHTDN_REASON_MINOR_SYSTEMRESTORE = 26

const SHTDN_REASON_MINOR_TERMSRV = 32

const SHTDN_REASON_MINOR_UNSTABLE = 6

const SHTDN_REASON_MINOR_UPGRADE = 3

const SHTDN_REASON_MINOR_WMI = 21

const SHTDN_REASON_UNKNOWN = 255

const SHTDN_REASON_VALID_BIT_MASK = 3238002687

const SHUTDOWN_ARSO = 8192

const SHUTDOWN_FORCE_OTHERS = 1

const SHUTDOWN_FORCE_SELF = 2

const SHUTDOWN_GRACE_OVERRIDE = 32

const SHUTDOWN_HYBRID = 512

const SHUTDOWN_INSTALL_UPDATES = 64

const SHUTDOWN_MOBILE_UI = 4096

const SHUTDOWN_NOREBOOT = 16

const SHUTDOWN_NORETRY = 1

const SHUTDOWN_POWEROFF = 8

const SHUTDOWN_RESTART = 4

const SHUTDOWN_RESTARTAPPS = 128

const SHUTDOWN_RESTART_BOOTOPTIONS = 1024

const SHUTDOWN_SKIP_SVC_PRESHUTDOWN = 256

const SHUTDOWN_SOFT_REBOOT = 2048

const SHUTDOWN_TYPE_LEN = 32

type SID = TSID

type SID_AND_ATTRIBUTES = TSID_AND_ATTRIBUTES

type SID_AND_ATTRIBUTES_ARRAY = TSID_AND_ATTRIBUTES_ARRAY

type SID_AND_ATTRIBUTES_HASH = TSID_AND_ATTRIBUTES_HASH

type SID_HASH_ENTRY = TSID_HASH_ENTRY

const SID_HASH_SIZE = 32

const SID_IBindHost = 0

type SID_IDENTIFIER_AUTHORITY = TSID_IDENTIFIER_AUTHORITY

const SID_MAX_SUB_AUTHORITIES = 15

type SID_NAME_USE = TSID_NAME_USE

const SID_RECOMMENDED_SUB_AUTHORITIES = 1

const SID_REVISION = 1

const SID_SBindHost = 0

const SID_SInternetHostSecurityManager = 0

const SID_SInternetSecurityManager = 0

const SID_SInternetSecurityManagerEx = 0

const SID_SInternetSecurityManagerEx2 = 0

const SIF_ALL = 23

const SIF_DISABLENOSCROLL = 8

const SIF_PAGE = 2

const SIF_POS = 4

const SIF_RANGE = 1

const SIF_TRACKPOS = 16

const SIID_INVALID = -1

const SIMPLEBLOB = 1

const SIMPLEREGION = 2

const SIMULATED_FONTTYPE = 32768

type SINGLE_LIST_ENTRY = TSINGLE_LIST_ENTRY

const SITE_PIN_RULES_ALL_SUBDOMAINS_FLAG = 1

type SIZE = TSIZE

const SIZEFULLSCREEN = 2

const SIZEICONIC = 1

type SIZEL = TSIZEL

const SIZENORMAL = 0

const SIZEOF_RFPO_DATA = 16

const SIZEPALETTE = 104

const SIZEZOOMHIDE = 4

const SIZEZOOMSHOW = 3

const SIZE_MAXHIDE = 4

const SIZE_MAXIMIZED = 2

const SIZE_MAXSHOW = 3

const SIZE_MINIMIZED = 1

const SIZE_RESTORED = 0

type SIZE_T = TSIZE_T

type SI_COPYFILE = TSI_COPYFILE

const SKF_AUDIBLEFEEDBACK = 64

const SKF_AVAILABLE = 2

const SKF_CONFIRMHOTKEY = 8

const SKF_HOTKEYACTIVE = 4

const SKF_HOTKEYSOUND = 16

const SKF_INDICATOR = 32

const SKF_LALTLATCHED = 268435456

const SKF_LALTLOCKED = 1048576

const SKF_LCTLLATCHED = 67108864

const SKF_LCTLLOCKED = 262144

const SKF_LSHIFTLATCHED = 16777216

const SKF_LSHIFTLOCKED = 65536

const SKF_LWINLATCHED = 1073741824

const SKF_LWINLOCKED = 4194304

const SKF_RALTLATCHED = 536870912

const SKF_RALTLOCKED = 2097152

const SKF_RCTLLATCHED = 134217728

const SKF_RCTLLOCKED = 524288

const SKF_RSHIFTLATCHED = 33554432

const SKF_RSHIFTLOCKED = 131072

const SKF_RWINLATCHED = 2147483648

const SKF_RWINLOCKED = 8388608

const SKF_STICKYKEYSON = 1

const SKF_TRISTATE = 128

const SKF_TWOKEYSOFF = 256

const SLE_ERROR = 1

const SLE_MINORERROR = 2

const SLE_WARNING = 3

type SLIST_ENTRY = TSLIST_ENTRY

type SLIST_HEADER = TSLIST_HEADER

type SMALL_RECT = TSMALL_RECT

const SMART_ABORT_OFFLINE_SELFTEST = 127

const SMART_CMD = 176

const SMART_CYL_HI = 194

const SMART_CYL_LOW = 79

const SMART_ERROR_NO_MEM = 7

const SMART_EXTENDED_SELFTEST_CAPTIVE = 130

const SMART_EXTENDED_SELFTEST_OFFLINE = 2

const SMART_GET_VERSION = 475264

const SMART_IDE_ERROR = 1

const SMART_INVALID_BUFFER = 4

const SMART_INVALID_COMMAND = 3

const SMART_INVALID_DRIVE = 5

const SMART_INVALID_FLAG = 2

const SMART_INVALID_IOCTL = 6

const SMART_INVALID_REGISTER = 8

const SMART_LOG_SECTOR_SIZE = 512

const SMART_NOT_SUPPORTED = 9

const SMART_NO_ERROR = 0

const SMART_NO_IDE_DEVICE = 10

const SMART_OFFLINE_ROUTINE_OFFLINE = 0

const SMART_RCV_DRIVE_DATA = 508040

const SMART_READ_LOG = 213

const SMART_SEND_DRIVE_COMMAND = 508036

const SMART_SHORT_SELFTEST_CAPTIVE = 129

const SMART_SHORT_SELFTEST_OFFLINE = 1

const SMART_WRITE_LOG = 214

const SMTO_ABORTIFHUNG = 2

const SMTO_BLOCK = 1

const SMTO_ERRORONEXIT = 32

const SMTO_NORMAL = 0

const SMTO_NOTIMEOUTIFNOTHUNG = 8

const SM_ARRANGE = 56

const SM_CARETBLINKINGENABLED = 8194

const SM_CLEANBOOT = 67

const SM_CMETRICS = 97

const SM_CMONITORS = 80

const SM_CMOUSEBUTTONS = 43

const SM_CONVERTIBLESLATEMODE = 8195

const SM_CXBORDER = 5

const SM_CXCURSOR = 13

const SM_CXDLGFRAME = 7

const SM_CXDOUBLECLK = 36

const SM_CXDRAG = 68

const SM_CXEDGE = 45

const SM_CXFIXEDFRAME = 7

const SM_CXFOCUSBORDER = 83

const SM_CXFRAME = 32

const SM_CXFULLSCREEN = 16

const SM_CXHSCROLL = 21

const SM_CXHTHUMB = 10

const SM_CXICON = 11

const SM_CXICONSPACING = 38

const SM_CXMAXIMIZED = 61

const SM_CXMAXTRACK = 59

const SM_CXMENUCHECK = 71

const SM_CXMENUSIZE = 54

const SM_CXMIN = 28

const SM_CXMINIMIZED = 57

const SM_CXMINSPACING = 47

const SM_CXMINTRACK = 34

const SM_CXPADDEDBORDER = 92

const SM_CXSCREEN = 0

const SM_CXSIZE = 30

const SM_CXSIZEFRAME = 32

const SM_CXSMICON = 49

const SM_CXSMSIZE = 52

const SM_CXVIRTUALSCREEN = 78

const SM_CXVSCROLL = 2

const SM_CYBORDER = 6

const SM_CYCAPTION = 4

const SM_CYCURSOR = 14

const SM_CYDLGFRAME = 8

const SM_CYDOUBLECLK = 37

const SM_CYDRAG = 69

const SM_CYEDGE = 46

const SM_CYFIXEDFRAME = 8

const SM_CYFOCUSBORDER = 84

const SM_CYFRAME = 33

const SM_CYFULLSCREEN = 17

const SM_CYHSCROLL = 3

const SM_CYICON = 12

const SM_CYICONSPACING = 39

const SM_CYKANJIWINDOW = 18

const SM_CYMAXIMIZED = 62

const SM_CYMAXTRACK = 60

const SM_CYMENU = 15

const SM_CYMENUCHECK = 72

const SM_CYMENUSIZE = 55

const SM_CYMIN = 29

const SM_CYMINIMIZED = 58

const SM_CYMINSPACING = 48

const SM_CYMINTRACK = 35

const SM_CYSCREEN = 1

const SM_CYSIZE = 31

const SM_CYSIZEFRAME = 33

const SM_CYSMCAPTION = 51

const SM_CYSMICON = 50

const SM_CYSMSIZE = 53

const SM_CYVIRTUALSCREEN = 79

const SM_CYVSCROLL = 20

const SM_CYVTHUMB = 9

const SM_DBCSENABLED = 42

const SM_DEBUG = 22

const SM_DIGITIZER = 94

const SM_IMMENABLED = 82

const SM_MAXIMUMTOUCHES = 95

const SM_MEDIACENTER = 87

const SM_MENUDROPALIGNMENT = 40

const SM_MIDEASTENABLED = 74

const SM_MOUSEHORIZONTALWHEELPRESENT = 91

const SM_MOUSEPRESENT = 19

const SM_MOUSEWHEELPRESENT = 75

const SM_NETWORK = 63

const SM_PENWINDOWS = 41

const SM_REMOTECONTROL = 8193

const SM_REMOTESESSION = 4096

const SM_RESERVED1 = 24

const SM_RESERVED2 = 25

const SM_RESERVED3 = 26

const SM_RESERVED4 = 27

const SM_SAMEDISPLAYFORMAT = 81

const SM_SECURE = 44

const SM_SERVERR2 = 89

const SM_SHOWSOUNDS = 70

const SM_SHUTTINGDOWN = 8192

const SM_SLOWMACHINE = 73

const SM_STARTER = 88

const SM_SWAPBUTTON = 23

const SM_SYSTEMDOCKED = 8196

const SM_TABLETPC = 86

const SM_XVIRTUALSCREEN = 76

const SM_YVIRTUALSCREEN = 77

const SNAPSHOT_POLICY_ALWAYS = 1

const SNAPSHOT_POLICY_NEVER = 0

const SNAPSHOT_POLICY_UNPLANNED = 2

type SNB = TSNB

const SNDMSG = 0

const SND_ALIAS = 65536

const SND_ALIAS_ID = 1114112

const SND_ALIAS_START = 0

const SND_APPLICATION = 128

const SND_ASYNC = 1

const SND_FILENAME = 131072

const SND_LOOP = 8

const SND_MEMORY = 4

const SND_NODEFAULT = 2

const SND_NOSTOP = 16

const SND_NOWAIT = 8192

const SND_PURGE = 64

const SND_RESOURCE = 262148

const SND_SYNC = 0

type SOCKADDR = TSOCKADDR

type SOCKADDR_IN = TSOCKADDR_IN

type SOCKET = TSOCKET

const SOCKET_ERROR = -1

type SOFTDISTINFO = TSOFTDISTINFO

const SOFTDIST_ADSTATE_AVAILABLE = 1

const SOFTDIST_ADSTATE_DOWNLOADED = 2

const SOFTDIST_ADSTATE_INSTALLED = 3

const SOFTDIST_ADSTATE_NONE = 0

const SOFTDIST_FLAG_DELETE_SUBSCRIPTION = 8

const SOFTDIST_FLAG_USAGE_AUTOINSTALL = 4

const SOFTDIST_FLAG_USAGE_EMAIL = 1

const SOFTDIST_FLAG_USAGE_PRECACHE = 2

const SOFTKEYBOARD_TYPE_C1 = 2

const SOFTKEYBOARD_TYPE_T1 = 1

type SOLE_AUTHENTICATION_INFO = TSOLE_AUTHENTICATION_INFO

type SOLE_AUTHENTICATION_LIST = TSOLE_AUTHENTICATION_LIST

type SOLE_AUTHENTICATION_SERVICE = TSOLE_AUTHENTICATION_SERVICE

const SOMAXCONN = 5

const SORTED_CTL_EXT_COUNT_OFFSET = 4

const SORTED_CTL_EXT_FLAGS_OFFSET = 0

const SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG = 1

const SORTED_CTL_EXT_HASH_BUCKET_OFFSET = 12

const SORTED_CTL_EXT_MAX_COLLISION_OFFSET = 8

const SORT_CHINESE_BIG5 = 0

const SORT_CHINESE_BOPOMOFO = 3

const SORT_CHINESE_PRC = 2

const SORT_CHINESE_PRCP = 0

const SORT_CHINESE_RADICALSTROKE = 4

const SORT_CHINESE_UNICODE = 1

const SORT_DEFAULT = 0

const SORT_DIGITSASNUMBERS = 8

const SORT_GEORGIAN_MODERN = 1

const SORT_GEORGIAN_TRADITIONAL = 0

const SORT_GERMAN_PHONE_BOOK = 1

const SORT_HUNGARIAN_DEFAULT = 0

const SORT_HUNGARIAN_TECHNICAL = 1

const SORT_INVARIANT_MATH = 1

const SORT_JAPANESE_RADICALSTROKE = 4

const SORT_JAPANESE_UNICODE = 1

const SORT_JAPANESE_XJIS = 0

const SORT_KOREAN_KSC = 0

const SORT_KOREAN_UNICODE = 1

const SORT_STRINGSORT = 4096

type SOUNDSENTRY = TSOUNDSENTRY

type SOUNDSENTRYA = TSOUNDSENTRYA

type SOUNDSENTRYW = TSOUNDSENTRYW

const SOUND_SYSTEM_APPEND = 14

const SOUND_SYSTEM_APPSTART = 12

const SOUND_SYSTEM_BEEP = 3

const SOUND_SYSTEM_ERROR = 4

const SOUND_SYSTEM_FAULT = 13

const SOUND_SYSTEM_INFORMATION = 7

const SOUND_SYSTEM_MAXIMIZE = 8

const SOUND_SYSTEM_MENUCOMMAND = 15

const SOUND_SYSTEM_MENUPOPUP = 16

const SOUND_SYSTEM_MINIMIZE = 9

const SOUND_SYSTEM_QUESTION = 5

const SOUND_SYSTEM_RESTOREDOWN = 11

const SOUND_SYSTEM_RESTOREUP = 10

const SOUND_SYSTEM_SHUTDOWN = 2

const SOUND_SYSTEM_STARTUP = 1

const SOUND_SYSTEM_WARNING = 6

const SO_CONNDATA = 28672

const SO_CONNDATALEN = 28676

const SO_CONNECT_TIME = 28684

const SO_CONNOPT = 28673

const SO_CONNOPTLEN = 28677

const SO_DISCDATA = 28674

const SO_DISCDATALEN = 28678

const SO_DISCOPT = 28675

const SO_DISCOPTLEN = 28679

const SO_MAXDG = 28681

const SO_MAXPATHDG = 28682

const SO_OPENTYPE = 28680

const SO_SYNCHRONOUS_ALERT = 16

const SO_SYNCHRONOUS_NONALERT = 32

const SO_UPDATE_ACCEPT_CONTEXT = 28683

const SPACEPARITY = 4

const SPCLPASSTHROUGH2 = 4568

const SPECIFIC_RIGHTS_ALL = 65535

type SPHANDLE = TSPHANDLE

const SPIF_SENDCHANGE = 2

const SPIF_SENDWININICHANGE = 2

const SPIF_UPDATEINIFILE = 1

const SPI_GETACCESSTIMEOUT = 60

const SPI_GETACTIVEWINDOWTRACKING = 4096

const SPI_GETACTIVEWNDTRKTIMEOUT = 8194

const SPI_GETACTIVEWNDTRKZORDER = 4108

const SPI_GETANIMATION = 72

const SPI_GETAUDIODESCRIPTION = 116

const SPI_GETBEEP = 1

const SPI_GETBLOCKSENDINPUTRESETS = 4134

const SPI_GETBORDER = 5

const SPI_GETCARETBROWSING = 4172

const SPI_GETCARETWIDTH = 8198

const SPI_GETCLEARTYPE = 4168

const SPI_GETCLIENTAREAANIMATION = 4162

const SPI_GETCOMBOBOXANIMATION = 4100

const SPI_GETCONTACTVISUALIZATION = 8216

const SPI_GETCURSORSHADOW = 4122

const SPI_GETDEFAULTINPUTLANG = 89

const SPI_GETDESKWALLPAPER = 115

const SPI_GETDISABLEOVERLAPPEDCONTENT = 4160

const SPI_GETDOCKMOVING = 144

const SPI_GETDRAGFROMMAXIMIZE = 140

const SPI_GETDRAGFULLWINDOWS = 38

const SPI_GETDROPSHADOW = 4132

const SPI_GETFASTTASKSWITCH = 35

const SPI_GETFILTERKEYS = 50

const SPI_GETFLATMENU = 4130

const SPI_GETFOCUSBORDERHEIGHT = 8208

const SPI_GETFOCUSBORDERWIDTH = 8206

const SPI_GETFONTSMOOTHING = 74

const SPI_GETFONTSMOOTHINGCONTRAST = 8204

const SPI_GETFONTSMOOTHINGORIENTATION = 8210

const SPI_GETFONTSMOOTHINGTYPE = 8202

const SPI_GETFOREGROUNDFLASHCOUNT = 8196

const SPI_GETFOREGROUNDLOCKTIMEOUT = 8192

const SPI_GETGESTUREVISUALIZATION = 8218

const SPI_GETGRADIENTCAPTIONS = 4104

const SPI_GETGRIDGRANULARITY = 18

const SPI_GETHIGHCONTRAST = 66

const SPI_GETHOTTRACKING = 4110

const SPI_GETHUNGAPPTIMEOUT = 120

const SPI_GETICONMETRICS = 45

const SPI_GETICONTITLELOGFONT = 31

const SPI_GETICONTITLEWRAP = 25

const SPI_GETKEYBOARDCUES = 4106

const SPI_GETKEYBOARDDELAY = 22

const SPI_GETKEYBOARDPREF = 68

const SPI_GETKEYBOARDSPEED = 10

const SPI_GETLISTBOXSMOOTHSCROLLING = 4102

const SPI_GETLOGICALDPIOVERRIDE = 158

const SPI_GETLOWPOWERACTIVE = 83

const SPI_GETLOWPOWERTIMEOUT = 79

const SPI_GETMENUANIMATION = 4098

const SPI_GETMENUDROPALIGNMENT = 27

const SPI_GETMENUFADE = 4114

const SPI_GETMENURECT = 162

const SPI_GETMENUSHOWDELAY = 106

const SPI_GETMENUUNDERLINES = 4106

const SPI_GETMESSAGEDURATION = 8214

const SPI_GETMINIMIZEDMETRICS = 43

const SPI_GETMINIMUMHITRADIUS = 8212

const SPI_GETMOUSE = 3

const SPI_GETMOUSECLICKLOCK = 4126

const SPI_GETMOUSECLICKLOCKTIME = 8200

const SPI_GETMOUSECORNERCLIPLENGTH = 160

const SPI_GETMOUSEDOCKTHRESHOLD = 126

const SPI_GETMOUSEDRAGOUTTHRESHOLD = 132

const SPI_GETMOUSEHOVERHEIGHT = 100

const SPI_GETMOUSEHOVERTIME = 102

const SPI_GETMOUSEHOVERWIDTH = 98

const SPI_GETMOUSEKEYS = 54

const SPI_GETMOUSESIDEMOVETHRESHOLD = 136

const SPI_GETMOUSESONAR = 4124

const SPI_GETMOUSESPEED = 112

const SPI_GETMOUSETRAILS = 94

const SPI_GETMOUSEVANISH = 4128

const SPI_GETMOUSEWHEELROUTING = 8220

const SPI_GETNONCLIENTMETRICS = 41

const SPI_GETPENARBITRATIONTYPE = 8224

const SPI_GETPENDOCKTHRESHOLD = 128

const SPI_GETPENDRAGOUTTHRESHOLD = 134

const SPI_GETPENSIDEMOVETHRESHOLD = 138

const SPI_GETPENVISUALIZATION = 8222

const SPI_GETPOWEROFFACTIVE = 84

const SPI_GETPOWEROFFTIMEOUT = 80

const SPI_GETSCREENREADER = 70

const SPI_GETSCREENSAVEACTIVE = 16

const SPI_GETSCREENSAVERRUNNING = 114

const SPI_GETSCREENSAVESECURE = 118

const SPI_GETSCREENSAVETIMEOUT = 14

const SPI_GETSELECTIONFADE = 4116

const SPI_GETSERIALKEYS = 62

const SPI_GETSHOWIMEUI = 110

const SPI_GETSHOWSOUNDS = 56

const SPI_GETSNAPSIZING = 142

const SPI_GETSNAPTODEFBUTTON = 95

const SPI_GETSOUNDSENTRY = 64

const SPI_GETSPEECHRECOGNITION = 4170

const SPI_GETSTICKYKEYS = 58

const SPI_GETSYSTEMLANGUAGEBAR = 4176

const SPI_GETTHREADLOCALINPUTSETTINGS = 4174

const SPI_GETTOGGLEKEYS = 52

const SPI_GETTOOLTIPANIMATION = 4118

const SPI_GETTOOLTIPFADE = 4120

const SPI_GETTOUCHPREDICTIONPARAMETERS = 156

const SPI_GETUIEFFECTS = 4158

const SPI_GETWAITTOKILLSERVICETIMEOUT = 124

const SPI_GETWAITTOKILLTIMEOUT = 122

const SPI_GETWHEELSCROLLCHARS = 108

const SPI_GETWHEELSCROLLLINES = 104

const SPI_GETWINARRANGING = 130

const SPI_GETWINDOWSEXTENSION = 92

const SPI_GETWORKAREA = 48

const SPI_ICONHORIZONTALSPACING = 13

const SPI_ICONVERTICALSPACING = 24

const SPI_LANGDRIVER = 12

const SPI_SCREENSAVERRUNNING = 97

const SPI_SETACCESSTIMEOUT = 61

const SPI_SETACTIVEWINDOWTRACKING = 4097

const SPI_SETACTIVEWNDTRKTIMEOUT = 8195

const SPI_SETACTIVEWNDTRKZORDER = 4109

const SPI_SETANIMATION = 73

const SPI_SETAUDIODESCRIPTION = 117

const SPI_SETBEEP = 2

const SPI_SETBLOCKSENDINPUTRESETS = 4135

const SPI_SETBORDER = 6

const SPI_SETCARETBROWSING = 4173

const SPI_SETCARETWIDTH = 8199

const SPI_SETCLEARTYPE = 4169

const SPI_SETCLIENTAREAANIMATION = 4163

const SPI_SETCOMBOBOXANIMATION = 4101

const SPI_SETCONTACTVISUALIZATION = 8217

const SPI_SETCURSORS = 87

const SPI_SETCURSORSHADOW = 4123

const SPI_SETDEFAULTINPUTLANG = 90

const SPI_SETDESKPATTERN = 21

const SPI_SETDESKWALLPAPER = 20

const SPI_SETDISABLEOVERLAPPEDCONTENT = 4161

const SPI_SETDOCKMOVING = 145

const SPI_SETDOUBLECLICKTIME = 32

const SPI_SETDOUBLECLKHEIGHT = 30

const SPI_SETDOUBLECLKWIDTH = 29

const SPI_SETDRAGFROMMAXIMIZE = 141

const SPI_SETDRAGFULLWINDOWS = 37

const SPI_SETDRAGHEIGHT = 77

const SPI_SETDRAGWIDTH = 76

const SPI_SETDROPSHADOW = 4133

const SPI_SETFASTTASKSWITCH = 36

const SPI_SETFILTERKEYS = 51

const SPI_SETFLATMENU = 4131

const SPI_SETFOCUSBORDERHEIGHT = 8209

const SPI_SETFOCUSBORDERWIDTH = 8207

const SPI_SETFONTSMOOTHING = 75

const SPI_SETFONTSMOOTHINGCONTRAST = 8205

const SPI_SETFONTSMOOTHINGORIENTATION = 8211

const SPI_SETFONTSMOOTHINGTYPE = 8203

const SPI_SETFOREGROUNDFLASHCOUNT = 8197

const SPI_SETFOREGROUNDLOCKTIMEOUT = 8193

const SPI_SETGESTUREVISUALIZATION = 8219

const SPI_SETGRADIENTCAPTIONS = 4105

const SPI_SETGRIDGRANULARITY = 19

const SPI_SETHANDHELD = 78

const SPI_SETHIGHCONTRAST = 67

const SPI_SETHOTTRACKING = 4111

const SPI_SETHUNGAPPTIMEOUT = 121

const SPI_SETICONMETRICS = 46

const SPI_SETICONS = 88

const SPI_SETICONTITLELOGFONT = 34

const SPI_SETICONTITLEWRAP = 26

const SPI_SETKEYBOARDCUES = 4107

const SPI_SETKEYBOARDDELAY = 23

const SPI_SETKEYBOARDPREF = 69

const SPI_SETKEYBOARDSPEED = 11

const SPI_SETLANGTOGGLE = 91

const SPI_SETLISTBOXSMOOTHSCROLLING = 4103

const SPI_SETLOGICALDPIOVERRIDE = 159

const SPI_SETLOWPOWERACTIVE = 85

const SPI_SETLOWPOWERTIMEOUT = 81

const SPI_SETMENUANIMATION = 4099

const SPI_SETMENUDROPALIGNMENT = 28

const SPI_SETMENUFADE = 4115

const SPI_SETMENURECT = 163

const SPI_SETMENUSHOWDELAY = 107

const SPI_SETMENUUNDERLINES = 4107

const SPI_SETMESSAGEDURATION = 8215

const SPI_SETMINIMIZEDMETRICS = 44

const SPI_SETMINIMUMHITRADIUS = 8213

const SPI_SETMOUSE = 4

const SPI_SETMOUSEBUTTONSWAP = 33

const SPI_SETMOUSECLICKLOCK = 4127

const SPI_SETMOUSECLICKLOCKTIME = 8201

const SPI_SETMOUSECORNERCLIPLENGTH = 161

const SPI_SETMOUSEDOCKTHRESHOLD = 127

const SPI_SETMOUSEDRAGOUTTHRESHOLD = 133

const SPI_SETMOUSEHOVERHEIGHT = 101

const SPI_SETMOUSEHOVERTIME = 103

const SPI_SETMOUSEHOVERWIDTH = 99

const SPI_SETMOUSEKEYS = 55

const SPI_SETMOUSESIDEMOVETHRESHOLD = 137

const SPI_SETMOUSESONAR = 4125

const SPI_SETMOUSESPEED = 113

const SPI_SETMOUSETRAILS = 93

const SPI_SETMOUSEVANISH = 4129

const SPI_SETMOUSEWHEELROUTING = 8221

const SPI_SETNONCLIENTMETRICS = 42

const SPI_SETPENARBITRATIONTYPE = 8225

const SPI_SETPENDOCKTHRESHOLD = 129

const SPI_SETPENDRAGOUTTHRESHOLD = 135

const SPI_SETPENSIDEMOVETHRESHOLD = 139

const SPI_SETPENVISUALIZATION = 8223

const SPI_SETPENWINDOWS = 49

const SPI_SETPOWEROFFACTIVE = 86

const SPI_SETPOWEROFFTIMEOUT = 82

const SPI_SETSCREENREADER = 71

const SPI_SETSCREENSAVEACTIVE = 17

const SPI_SETSCREENSAVERRUNNING = 97

const SPI_SETSCREENSAVESECURE = 119

const SPI_SETSCREENSAVETIMEOUT = 15

const SPI_SETSELECTIONFADE = 4117

const SPI_SETSERIALKEYS = 63

const SPI_SETSHOWIMEUI = 111

const SPI_SETSHOWSOUNDS = 57

const SPI_SETSNAPSIZING = 143

const SPI_SETSNAPTODEFBUTTON = 96

const SPI_SETSOUNDSENTRY = 65

const SPI_SETSPEECHRECOGNITION = 4171

const SPI_SETSTICKYKEYS = 59

const SPI_SETSYSTEMLANGUAGEBAR = 4177

const SPI_SETTHREADLOCALINPUTSETTINGS = 4175

const SPI_SETTOGGLEKEYS = 53

const SPI_SETTOOLTIPANIMATION = 4119

const SPI_SETTOOLTIPFADE = 4121

const SPI_SETTOUCHPREDICTIONPARAMETERS = 157

const SPI_SETUIEFFECTS = 4159

const SPI_SETWAITTOKILLSERVICETIMEOUT = 125

const SPI_SETWAITTOKILLTIMEOUT = 123

const SPI_SETWHEELSCROLLCHARS = 109

const SPI_SETWHEELSCROLLLINES = 105

const SPI_SETWINARRANGING = 131

const SPI_SETWORKAREA = 47

const SPOINTER_32 = 0

const SPOOL_FILE_PERSISTENT = 1

const SPOOL_FILE_TEMPORARY = 2

const SPVERSION_MASK = 65280

const SP_APPABORT = -2

const SP_ERROR = -1

const SP_NOTREPORTED = 16384

const SP_OUTOFDISK = -4

const SP_OUTOFMEMORY = -5

const SP_USERABORT = -3

const SQLITE_LOCKFILEEX_FLAGS = 1

const SQLITE_LOCKFILE_FLAGS = 3

const SQLITE_MAX_PATHLEN = 260

const SQLITE_OMIT_SEH = 1

const SQLITE_OS_WIN = 1

const SQLITE_OS_WINCE = 0

const SQLITE_OS_WINNT = 1

const SQLITE_OS_WIN_THREADS = 1

const SQLITE_WIN32_CREATEFILEMAPPINGA = 0

const SQLITE_WIN32_GETVERSIONEX = 0

const SQLITE_WIN32_IOERR_RETRY = 10

const SQLITE_WIN32_IOERR_RETRY_DELAY = 25

const SQLITE_WIN32_MAX_ERRMSG_CHARS = 1024

const SQLITE_WIN32_MAX_PATH_BYTES = 1040

const SQLITE_WIN32_MAX_PATH_CHARS = 260

const SQLITE_WIN32_VOLATILE = 0

const SQLITE_WINNT_MAX_PATH_BYTES = 0

const SQLITE_WINNT_MAX_PATH_CHARS = 32767

const SRB_TYPE_SCSI_REQUEST_BLOCK = 0

const SRB_TYPE_STORAGE_REQUEST_BLOCK = 1

type SRWLOCK = TSRWLOCK

const SRWLOCK_INIT = "RTL_SRWLOCK_INIT"

const SSF_AVAILABLE = 2

const SSF_INDICATOR = 4

const SSF_SOUNDSENTRYON = 1

const SSGF_DISPLAY = 3

const SSGF_NONE = 0

type SSIZE_T = TSSIZE_T

const SSL_ECCPUBLIC_BLOB = "SSLECCPUBLICBLOB"

type SSL_EXTRA_CERT_CHAIN_POLICY_PARA = TSSL_EXTRA_CERT_CHAIN_POLICY_PARA

const SSL_F12_ERROR_TEXT_LENGTH = 256

type SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS = TSSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS

const SSL_HPKP_HEADER_COUNT = 2

type SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA = TSSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA

const SSL_HPKP_PKP_HEADER_INDEX = 0

const SSL_HPKP_PKP_RO_HEADER_INDEX = 1

const SSL_KEY_PIN_ERROR_TEXT_LENGTH = 512

type SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA = TSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA

type SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS = TSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS

const SSL_OBJECT_LOCATOR_CERT_VALIDATION_CONFIG_FUNC = "SslObjectLocatorInitializeCertValidationConfig"

const SSL_OBJECT_LOCATOR_ISSUER_LIST_FUNC = "SslObjectLocatorInitializeIssuerList"

const SSL_OBJECT_LOCATOR_PFX_FUNC = "SslObjectLocatorInitializePfx"

const SSTF_BORDER = 2

const SSTF_CHARS = 1

const SSTF_DISPLAY = 3

const SSTF_NONE = 0

const SSWF_CUSTOM = 4

const SSWF_DISPLAY = 3

const SSWF_NONE = 0

const SSWF_TITLE = 1

const SSWF_WINDOW = 2

const SS_BITMAP = 14

const SS_BLACKFRAME = 7

const SS_BLACKRECT = 4

const SS_CENTER = 1

const SS_CENTERIMAGE = 512

const SS_EDITCONTROL = 8192

const SS_ELLIPSISMASK = 49152

const SS_ENDELLIPSIS = 16384

const SS_ENHMETAFILE = 15

const SS_ETCHEDFRAME = 18

const SS_ETCHEDHORZ = 16

const SS_ETCHEDVERT = 17

const SS_GRAYFRAME = 8

const SS_GRAYRECT = 5

const SS_ICON = 3

const SS_LEFT = 0

const SS_LEFTNOWORDWRAP = 12

const SS_NOPREFIX = 128

const SS_NOTIFY = 256

const SS_OWNERDRAW = 13

const SS_PATHELLIPSIS = 32768

const SS_REALSIZECONTROL = 64

const SS_REALSIZEIMAGE = 2048

const SS_RIGHT = 2

const SS_RIGHTJUST = 1024

const SS_SIMPLE = 11

const SS_SUNKEN = 4096

const SS_TYPEMASK = 31

const SS_USERITEM = 10

const SS_WHITEFRAME = 9

const SS_WHITERECT = 6

const SS_WORDELLIPSIS = 49152

const STACK_SIZE_PARAM_IS_A_RESERVATION = 65536

const STAMP_AXESLIST = 134245473

const STAMP_CFF2 = 134248035

const STAMP_DESIGNVECTOR = 134248036

const STAMP_TRUETYPE_VARIATION = 134248052

const STANDARD_RIGHTS_ALL = 2031616

const STANDARD_RIGHTS_EXECUTE = 131072

const STANDARD_RIGHTS_READ = 131072

const STANDARD_RIGHTS_REQUIRED = 983040

const STANDARD_RIGHTS_WRITE = 131072

const STARTDOC = 10

const STARTF_FORCEOFFFEEDBACK = 128

const STARTF_FORCEONFEEDBACK = 64

const STARTF_PREVENTPINNING = 8192

const STARTF_RUNFULLSCREEN = 32

const STARTF_TITLEISAPPID = 4096

const STARTF_TITLEISLINKNAME = 2048

const STARTF_UNTRUSTEDSOURCE = 32768

const STARTF_USECOUNTCHARS = 8

const STARTF_USEFILLATTRIBUTE = 16

const STARTF_USEHOTKEY = 512

const STARTF_USEPOSITION = 4

const STARTF_USESHOWWINDOW = 1

const STARTF_USESIZE = 2

const STARTF_USESTDHANDLES = 256

type STARTING_LCN_INPUT_BUFFER = TSTARTING_LCN_INPUT_BUFFER

type STARTING_VCN_INPUT_BUFFER = TSTARTING_VCN_INPUT_BUFFER

type STARTUPINFO = TSTARTUPINFO

type STARTUPINFOA = TSTARTUPINFOA

type STARTUPINFOEX = TSTARTUPINFOEX

type STARTUPINFOEXA = TSTARTUPINFOEXA

type STARTUPINFOEXW = TSTARTUPINFOEXW

type STARTUPINFOW = TSTARTUPINFOW

const START_PAGE_GENERAL = 4294967295

type STATDATA = TSTATDATA

const STATE_SYSTEM_ALERT_HIGH = 268435456

const STATE_SYSTEM_ALERT_LOW = 67108864

const STATE_SYSTEM_ALERT_MEDIUM = 134217728

const STATE_SYSTEM_ANIMATED = 16384

const STATE_SYSTEM_BUSY = 2048

const STATE_SYSTEM_CHECKED = 16

const STATE_SYSTEM_COLLAPSED = 1024

const STATE_SYSTEM_DEFAULT = 256

const STATE_SYSTEM_EXPANDED = 512

const STATE_SYSTEM_EXTSELECTABLE = 33554432

const STATE_SYSTEM_FLOATING = 4096

const STATE_SYSTEM_FOCUSABLE = 1048576

const STATE_SYSTEM_FOCUSED = 4

const STATE_SYSTEM_HOTTRACKED = 128

const STATE_SYSTEM_INDETERMINATE = 32

const STATE_SYSTEM_INVISIBLE = 32768

const STATE_SYSTEM_LINKED = 4194304

const STATE_SYSTEM_MARQUEED = 8192

const STATE_SYSTEM_MIXED = 32

const STATE_SYSTEM_MOVEABLE = 262144

const STATE_SYSTEM_MULTISELECTABLE = 16777216

const STATE_SYSTEM_OFFSCREEN = 65536

const STATE_SYSTEM_PRESSED = 8

const STATE_SYSTEM_PROTECTED = 536870912

const STATE_SYSTEM_READONLY = 64

const STATE_SYSTEM_SELECTABLE = 2097152

const STATE_SYSTEM_SELECTED = 2

const STATE_SYSTEM_SELFVOICING = 524288

const STATE_SYSTEM_SIZEABLE = 131072

const STATE_SYSTEM_TRAVERSED = 8388608

const STATE_SYSTEM_UNAVAILABLE = 1

const STATE_SYSTEM_VALID = 1073741823

type STATFLAG = TSTATFLAG

type STATPROPSETSTG = TSTATPROPSETSTG

type STATPROPSTG = TSTATPROPSTG

type STATSTG = TSTATSTG

const STDAPIVCALLTYPE = "__cdecl"

const STDMETHODVCALLTYPE = "__cdecl"

type STDMSHLFLAGS = TSTDMSHLFLAGS

const STDOLE2_LCID = 0

const STDOLE2_MAJORVERNUM = 2

const STDOLE2_MINORVERNUM = 0

const STDOLE_LCID = 0

const STDOLE_MAJORVERNUM = 1

const STDOLE_MINORVERNUM = 0

const STD_ERROR_HANDLE = -12

const STD_INPUT_HANDLE = -10

const STD_OUTPUT_HANDLE = -11

type STGC = TSTGC

type STGFMT = TSTGFMT

const STGFMT_ANY = 4

const STGFMT_DOCFILE = 5

const STGFMT_DOCUMENT = 0

const STGFMT_FILE = 3

const STGFMT_NATIVE = 1

const STGFMT_STORAGE = 0

type STGMEDIUM = TSTGMEDIUM

type STGMOVE = TSTGMOVE

const STGM_CONVERT = 131072

const STGM_CREATE = 4096

const STGM_DELETEONRELEASE = 67108864

const STGM_DIRECT = 0

const STGM_DIRECT_SWMR = 4194304

const STGM_FAILIFTHERE = 0

const STGM_NOSCRATCH = 1048576

const STGM_NOSNAPSHOT = 2097152

const STGM_PRIORITY = 262144

const STGM_READ = 0

const STGM_READWRITE = 2

const STGM_SHARE_DENY_NONE = 64

const STGM_SHARE_DENY_READ = 48

const STGM_SHARE_DENY_WRITE = 32

const STGM_SHARE_EXCLUSIVE = 16

const STGM_SIMPLE = 134217728

const STGM_TRANSACTED = 65536

const STGM_WRITE = 1

type STGOPTIONS = TSTGOPTIONS

const STGOPTIONS_VERSION = 2

type STGTY = TSTGTY

const STGTY_REPEAT = 256

const STG_LAYOUT_INTERLEAVED = 1

const STG_LAYOUT_SEQUENTIAL = 0

const STG_TOEND = 4294967295

type STICKYKEYS = TSTICKYKEYS

const STILL_ACTIVE = "STATUS_PENDING"

const STM_GETICON = 369

const STM_GETIMAGE = 371

const STM_MSGMAX = 372

const STM_SETICON = 368

const STM_SETIMAGE = 370

const STN_CLICKED = 0

const STN_DBLCLK = 1

const STN_DISABLE = 3

const STN_ENABLE = 2

const STOCK_LAST = 19

type STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = TSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR

type STORAGE_ADAPTER_DESCRIPTOR = TSTORAGE_ADAPTER_DESCRIPTOR

const STORAGE_ADDRESS_TYPE_BTL8 = 0

type STORAGE_ALLOCATE_BC_STREAM_INPUT = TSTORAGE_ALLOCATE_BC_STREAM_INPUT

type STORAGE_ALLOCATE_BC_STREAM_OUTPUT = TSTORAGE_ALLOCATE_BC_STREAM_OUTPUT

type STORAGE_ASSOCIATION_TYPE = TSTORAGE_ASSOCIATION_TYPE

type STORAGE_BREAK_RESERVATION_REQUEST = TSTORAGE_BREAK_RESERVATION_REQUEST

type STORAGE_BUS_RESET_REQUEST = TSTORAGE_BUS_RESET_REQUEST

type STORAGE_BUS_TYPE = TSTORAGE_BUS_TYPE

type STORAGE_CRYPTO_ALGORITHM_ID = TSTORAGE_CRYPTO_ALGORITHM_ID

type STORAGE_CRYPTO_CAPABILITY = TSTORAGE_CRYPTO_CAPABILITY

const STORAGE_CRYPTO_CAPABILITY_VERSION_1 = 1

type STORAGE_CRYPTO_DESCRIPTOR = TSTORAGE_CRYPTO_DESCRIPTOR

const STORAGE_CRYPTO_DESCRIPTOR_VERSION_1 = 1

type STORAGE_CRYPTO_KEY_SIZE = TSTORAGE_CRYPTO_KEY_SIZE

type STORAGE_DEPENDENCY_INFO = TSTORAGE_DEPENDENCY_INFO

type STORAGE_DEPENDENCY_INFO_TYPE_1 = TSTORAGE_DEPENDENCY_INFO_TYPE_1

type STORAGE_DEPENDENCY_INFO_TYPE_2 = TSTORAGE_DEPENDENCY_INFO_TYPE_2

type STORAGE_DEPENDENCY_INFO_VERSION = TSTORAGE_DEPENDENCY_INFO_VERSION

type STORAGE_DESCRIPTOR_HEADER = TSTORAGE_DESCRIPTOR_HEADER

type STORAGE_DEVICE_DESCRIPTOR = TSTORAGE_DEVICE_DESCRIPTOR

type STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = TSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR

const STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID = 4

const STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT = 1

const STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID = 2

type STORAGE_DEVICE_ID_DESCRIPTOR = TSTORAGE_DEVICE_ID_DESCRIPTOR

type STORAGE_DEVICE_NUMBER = TSTORAGE_DEVICE_NUMBER

type STORAGE_DEVICE_NUMBERS = TSTORAGE_DEVICE_NUMBERS

type STORAGE_DEVICE_NUMBER_EX = TSTORAGE_DEVICE_NUMBER_EX

type STORAGE_DEVICE_RESILIENCY_DESCRIPTOR = TSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR

type STORAGE_DEVICE_TIERING_DESCRIPTOR = TSTORAGE_DEVICE_TIERING_DESCRIPTOR

type STORAGE_FAILURE_PREDICTION_CONFIG = TSTORAGE_FAILURE_PREDICTION_CONFIG

const STORAGE_FAILURE_PREDICTION_CONFIG_V1 = 1

type STORAGE_GET_BC_PROPERTIES_OUTPUT = TSTORAGE_GET_BC_PROPERTIES_OUTPUT

type STORAGE_HOTPLUG_INFO = TSTORAGE_HOTPLUG_INFO

type STORAGE_IDENTIFIER = TSTORAGE_IDENTIFIER

type STORAGE_IDENTIFIER_CODE_SET = TSTORAGE_IDENTIFIER_CODE_SET

type STORAGE_IDENTIFIER_TYPE = TSTORAGE_IDENTIFIER_TYPE

type STORAGE_ID_NAA_FORMAT = TSTORAGE_ID_NAA_FORMAT

const STORAGE_INFO_FLAGS_ALIGNED_DEVICE = 1

const STORAGE_INFO_FLAGS_PARTITION_ALIGNED_ON_DEVICE = 2

const STORAGE_INFO_OFFSET_UNKNOWN = 4294967295

type STORAGE_LB_PROVISIONING_MAP_RESOURCES = TSTORAGE_LB_PROVISIONING_MAP_RESOURCES

type STORAGE_MEDIA_SERIAL_NUMBER_DATA = TSTORAGE_MEDIA_SERIAL_NUMBER_DATA

type STORAGE_MEDIA_TYPE = TSTORAGE_MEDIA_TYPE

type STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = TSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR

type STORAGE_MINIPORT_DESCRIPTOR = TSTORAGE_MINIPORT_DESCRIPTOR

type STORAGE_PORT_CODE_SET = TSTORAGE_PORT_CODE_SET

type STORAGE_PREDICT_FAILURE = TSTORAGE_PREDICT_FAILURE

type STORAGE_PRIORITY_HINT_SUPPORT = TSTORAGE_PRIORITY_HINT_SUPPORT

const STORAGE_PRIORITY_HINT_SUPPORTED = 1

type STORAGE_PROPERTY_ID = TSTORAGE_PROPERTY_ID

type STORAGE_PROPERTY_QUERY = TSTORAGE_PROPERTY_QUERY

type STORAGE_PROPERTY_SET = TSTORAGE_PROPERTY_SET

type STORAGE_PROTOCOL_ATA_DATA_TYPE = TSTORAGE_PROTOCOL_ATA_DATA_TYPE

type STORAGE_PROTOCOL_DATA_DESCRIPTOR = TSTORAGE_PROTOCOL_DATA_DESCRIPTOR

type STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = TSTORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT

type STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = TSTORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE

type STORAGE_PROTOCOL_NVME_DATA_TYPE = TSTORAGE_PROTOCOL_NVME_DATA_TYPE

type STORAGE_PROTOCOL_SPECIFIC_DATA = TSTORAGE_PROTOCOL_SPECIFIC_DATA

type STORAGE_PROTOCOL_SPECIFIC_DATA_EXT = TSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT

type STORAGE_PROTOCOL_TYPE = TSTORAGE_PROTOCOL_TYPE

type STORAGE_PROTOCOL_UFS_DATA_TYPE = TSTORAGE_PROTOCOL_UFS_DATA_TYPE

type STORAGE_QUERY_TYPE = TSTORAGE_QUERY_TYPE

type STORAGE_READ_CAPACITY = TSTORAGE_READ_CAPACITY

type STORAGE_RPMB_DESCRIPTOR = TSTORAGE_RPMB_DESCRIPTOR

const STORAGE_RPMB_DESCRIPTOR_VERSION_1 = 1

type STORAGE_RPMB_FRAME_TYPE = TSTORAGE_RPMB_FRAME_TYPE

const STORAGE_RPMB_MINIMUM_RELIABLE_WRITE_SIZE = 512

type STORAGE_SET_TYPE = TSTORAGE_SET_TYPE

type STORAGE_TIER = TSTORAGE_TIER

type STORAGE_TIER_CLASS = TSTORAGE_TIER_CLASS

const STORAGE_TIER_DESCRIPTION_LENGTH = 512

const STORAGE_TIER_FLAG_NO_SEEK_PENALTY = 131072

const STORAGE_TIER_FLAG_PARITY = 8388608

const STORAGE_TIER_FLAG_READ_CACHE = 4194304

const STORAGE_TIER_FLAG_SMR = 16777216

const STORAGE_TIER_FLAG_WRITE_BACK_CACHE = 2097152

type STORAGE_TIER_MEDIA_TYPE = TSTORAGE_TIER_MEDIA_TYPE

const STORAGE_TIER_NAME_LENGTH = 256

type STORAGE_WRITE_CACHE_PROPERTY = TSTORAGE_WRITE_CACHE_PROPERTY

const STREAM_CLEAR_ENCRYPTION = 4

const STREAM_CONTAINS_GHOSTED_FILE_EXTENTS = 16

const STREAM_CONTAINS_PROPERTIES = 4

const STREAM_CONTAINS_SECURITY = 2

type STREAM_INFO_LEVELS = TSTREAM_INFO_LEVELS

const STREAM_MODIFIED_WHEN_READ = 1

const STREAM_NORMAL_ATTRIBUTE = 0

type STREAM_SEEK = TSTREAM_SEEK

const STREAM_SET_ENCRYPTION = 3

const STREAM_SPARSE_ATTRIBUTE = 8

const STRETCHBLT = 2048

const STRETCH_ANDSCANS = 1

const STRETCH_DELETESCANS = 3

const STRETCH_HALFTONE = 4

const STRETCH_ORSCANS = 2

const STRICT = 1

const STRUNCATE = 80

type STUB_PHASE = TSTUB_PHASE

type STUB_THUNK = TSTUB_THUNK

type STYLEBUF = TSTYLEBUF

type STYLEBUFA = TSTYLEBUFA

type STYLEBUFW = TSTYLEBUFW

type STYLESTRUCT = TSTYLESTRUCT

const STYLE_DESCRIPTION_SIZE = 32

const ST_ADVISE = 2

const ST_BLOCKED = 8

const ST_BLOCKNEXT = 128

const ST_CLIENT = 16

const ST_CONNECTED = 1

const ST_INLIST = 64

const ST_ISLOCAL = 4

const ST_ISSELF = 256

const ST_TERMINATED = 32

const SUBLANG_AFRIKAANS_SOUTH_AFRICA = 1

const SUBLANG_ALBANIAN_ALBANIA = 1

const SUBLANG_ALSATIAN_FRANCE = 1

const SUBLANG_AMHARIC_ETHIOPIA = 1

const SUBLANG_ARABIC_ALGERIA = 5

const SUBLANG_ARABIC_BAHRAIN = 15

const SUBLANG_ARABIC_EGYPT = 3

const SUBLANG_ARABIC_IRAQ = 2

const SUBLANG_ARABIC_JORDAN = 11

const SUBLANG_ARABIC_KUWAIT = 13

const SUBLANG_ARABIC_LEBANON = 12

const SUBLANG_ARABIC_LIBYA = 4

const SUBLANG_ARABIC_MOROCCO = 6

const SUBLANG_ARABIC_OMAN = 8

const SUBLANG_ARABIC_QATAR = 16

const SUBLANG_ARABIC_SAUDI_ARABIA = 1

const SUBLANG_ARABIC_SYRIA = 10

const SUBLANG_ARABIC_TUNISIA = 7

const SUBLANG_ARABIC_UAE = 14

const SUBLANG_ARABIC_YEMEN = 9

const SUBLANG_ARMENIAN_ARMENIA = 1

const SUBLANG_ASSAMESE_INDIA = 1

const SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC = 2

const SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN = 1

const SUBLANG_AZERI_CYRILLIC = 2

const SUBLANG_AZERI_LATIN = 1

const SUBLANG_BANGLA_BANGLADESH = 2

const SUBLANG_BANGLA_INDIA = 1

const SUBLANG_BASHKIR_RUSSIA = 1

const SUBLANG_BASQUE_BASQUE = 1

const SUBLANG_BELARUSIAN_BELARUS = 1

const SUBLANG_BENGALI_BANGLADESH = 2

const SUBLANG_BENGALI_INDIA = 1

const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 8

const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN = 5

const SUBLANG_BRETON_FRANCE = 1

const SUBLANG_BULGARIAN_BULGARIA = 1

const SUBLANG_CATALAN_CATALAN = 1

const SUBLANG_CENTRAL_KURDISH_IRAQ = 1

const SUBLANG_CHEROKEE_CHEROKEE = 1

const SUBLANG_CHINESE_HONGKONG = 3

const SUBLANG_CHINESE_MACAU = 5

const SUBLANG_CHINESE_SIMPLIFIED = 2

const SUBLANG_CHINESE_SINGAPORE = 4

const SUBLANG_CHINESE_TRADITIONAL = 1

const SUBLANG_CORSICAN_FRANCE = 1

const SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN = 4

const SUBLANG_CROATIAN_CROATIA = 1

const SUBLANG_CUSTOM_DEFAULT = 3

const SUBLANG_CUSTOM_UNSPECIFIED = 4

const SUBLANG_CZECH_CZECH_REPUBLIC = 1

const SUBLANG_DANISH_DENMARK = 1

const SUBLANG_DARI_AFGHANISTAN = 1

const SUBLANG_DEFAULT = 1

const SUBLANG_DIVEHI_MALDIVES = 1

const SUBLANG_DUTCH = 1

const SUBLANG_DUTCH_BELGIAN = 2

const SUBLANG_ENGLISH_AUS = 3

const SUBLANG_ENGLISH_BELIZE = 10

const SUBLANG_ENGLISH_CAN = 4

const SUBLANG_ENGLISH_CARIBBEAN = 9

const SUBLANG_ENGLISH_EIRE = 6

const SUBLANG_ENGLISH_INDIA = 16

const SUBLANG_ENGLISH_IRELAND = 6

const SUBLANG_ENGLISH_JAMAICA = 8

const SUBLANG_ENGLISH_MALAYSIA = 17

const SUBLANG_ENGLISH_NZ = 5

const SUBLANG_ENGLISH_PHILIPPINES = 13

const SUBLANG_ENGLISH_SINGAPORE = 18

const SUBLANG_ENGLISH_SOUTH_AFRICA = 7

const SUBLANG_ENGLISH_TRINIDAD = 11

const SUBLANG_ENGLISH_UK = 2

const SUBLANG_ENGLISH_US = 1

const SUBLANG_ENGLISH_ZIMBABWE = 12

const SUBLANG_ESTONIAN_ESTONIA = 1

const SUBLANG_FAEROESE_FAROE_ISLANDS = 1

const SUBLANG_FILIPINO_PHILIPPINES = 1

const SUBLANG_FINNISH_FINLAND = 1

const SUBLANG_FRENCH = 1

const SUBLANG_FRENCH_BELGIAN = 2

const SUBLANG_FRENCH_CANADIAN = 3

const SUBLANG_FRENCH_LUXEMBOURG = 5

const SUBLANG_FRENCH_MONACO = 6

const SUBLANG_FRENCH_SWISS = 4

const SUBLANG_FRISIAN_NETHERLANDS = 1

const SUBLANG_FULAH_SENEGAL = 2

const SUBLANG_GALICIAN_GALICIAN = 1

const SUBLANG_GEORGIAN_GEORGIA = 1

const SUBLANG_GERMAN = 1

const SUBLANG_GERMAN_AUSTRIAN = 3

const SUBLANG_GERMAN_LIECHTENSTEIN = 5

const SUBLANG_GERMAN_LUXEMBOURG = 4

const SUBLANG_GERMAN_SWISS = 2

const SUBLANG_GREEK_GREECE = 1

const SUBLANG_GREENLANDIC_GREENLAND = 1

const SUBLANG_GUJARATI_INDIA = 1

const SUBLANG_HAUSA_NIGERIA = 1

const SUBLANG_HAUSA_NIGERIA_LATIN = 1

const SUBLANG_HAWAIIAN_US = 1

const SUBLANG_HEBREW_ISRAEL = 1

const SUBLANG_HINDI_INDIA = 1

const SUBLANG_HUNGARIAN_HUNGARY = 1

const SUBLANG_ICELANDIC_ICELAND = 1

const SUBLANG_IGBO_NIGERIA = 1

const SUBLANG_INDONESIAN_INDONESIA = 1

const SUBLANG_INUKTITUT_CANADA = 1

const SUBLANG_INUKTITUT_CANADA_LATIN = 2

const SUBLANG_IRISH_IRELAND = 2

const SUBLANG_ITALIAN = 1

const SUBLANG_ITALIAN_SWISS = 2

const SUBLANG_JAPANESE_JAPAN = 1

const SUBLANG_KANNADA_INDIA = 1

const SUBLANG_KASHMIRI_INDIA = 2

const SUBLANG_KASHMIRI_SASIA = 2

const SUBLANG_KAZAK_KAZAKHSTAN = 1

const SUBLANG_KHMER_CAMBODIA = 1

const SUBLANG_KICHE_GUATEMALA = 1

const SUBLANG_KINYARWANDA_RWANDA = 1

const SUBLANG_KONKANI_INDIA = 1

const SUBLANG_KOREAN = 1

const SUBLANG_KYRGYZ_KYRGYZSTAN = 1

const SUBLANG_LAO_LAO = 1

const SUBLANG_LAO_LAO_PDR = 1

const SUBLANG_LATVIAN_LATVIA = 1

const SUBLANG_LITHUANIAN = 1

const SUBLANG_LITHUANIAN_LITHUANIA = 1

const SUBLANG_LOWER_SORBIAN_GERMANY = 2

const SUBLANG_LUXEMBOURGISH_LUXEMBOURG = 1

const SUBLANG_MACEDONIAN_MACEDONIA = 1

const SUBLANG_MALAYALAM_INDIA = 1

const SUBLANG_MALAY_BRUNEI_DARUSSALAM = 2

const SUBLANG_MALAY_MALAYSIA = 1

const SUBLANG_MALTESE_MALTA = 1

const SUBLANG_MAORI_NEW_ZEALAND = 1

const SUBLANG_MAPUDUNGUN_CHILE = 1

const SUBLANG_MARATHI_INDIA = 1

const SUBLANG_MOHAWK_MOHAWK = 1

const SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA = 1

const SUBLANG_MONGOLIAN_PRC = 2

const SUBLANG_NEPALI_INDIA = 2

const SUBLANG_NEPALI_NEPAL = 1

const SUBLANG_NEUTRAL = 0

const SUBLANG_NORWEGIAN_BOKMAL = 1

const SUBLANG_NORWEGIAN_NYNORSK = 2

const SUBLANG_OCCITAN_FRANCE = 1

const SUBLANG_ORIYA_INDIA = 1

const SUBLANG_PASHTO_AFGHANISTAN = 1

const SUBLANG_PERSIAN_IRAN = 1

const SUBLANG_POLISH_POLAND = 1

const SUBLANG_PORTUGUESE = 2

const SUBLANG_PORTUGUESE_BRAZILIAN = 1

const SUBLANG_PORTUGUESE_PORTUGAL = 2

const SUBLANG_PULAR_SENEGAL = 2

const SUBLANG_PUNJABI_INDIA = 1

const SUBLANG_PUNJABI_PAKISTAN = 2

const SUBLANG_QUECHUA_BOLIVIA = 1

const SUBLANG_QUECHUA_ECUADOR = 2

const SUBLANG_QUECHUA_PERU = 3

const SUBLANG_ROMANIAN_ROMANIA = 1

const SUBLANG_ROMANSH_SWITZERLAND = 1

const SUBLANG_RUSSIAN_RUSSIA = 1

const SUBLANG_SAKHA_RUSSIA = 1

const SUBLANG_SAMI_INARI_FINLAND = 9

const SUBLANG_SAMI_LULE_NORWAY = 4

const SUBLANG_SAMI_LULE_SWEDEN = 5

const SUBLANG_SAMI_NORTHERN_FINLAND = 3

const SUBLANG_SAMI_NORTHERN_NORWAY = 1

const SUBLANG_SAMI_NORTHERN_SWEDEN = 2

const SUBLANG_SAMI_SKOLT_FINLAND = 8

const SUBLANG_SAMI_SOUTHERN_NORWAY = 6

const SUBLANG_SAMI_SOUTHERN_SWEDEN = 7

const SUBLANG_SANSKRIT_INDIA = 1

const SUBLANG_SCOTTISH_GAELIC = 1

const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 7

const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN = 6

const SUBLANG_SERBIAN_CYRILLIC = 3

const SUBLANG_SERBIAN_LATIN = 2

const SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC = 12

const SUBLANG_SERBIAN_MONTENEGRO_LATIN = 11

const SUBLANG_SERBIAN_SERBIA_CYRILLIC = 10

const SUBLANG_SERBIAN_SERBIA_LATIN = 9

const SUBLANG_SINDHI_AFGHANISTAN = 2

const SUBLANG_SINDHI_INDIA = 1

const SUBLANG_SINDHI_PAKISTAN = 2

const SUBLANG_SINHALESE_SRI_LANKA = 1

const SUBLANG_SLOVAK_SLOVAKIA = 1

const SUBLANG_SLOVENIAN_SLOVENIA = 1

const SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA = 1

const SUBLANG_SPANISH = 1

const SUBLANG_SPANISH_ARGENTINA = 11

const SUBLANG_SPANISH_BOLIVIA = 16

const SUBLANG_SPANISH_CHILE = 13

const SUBLANG_SPANISH_COLOMBIA = 9

const SUBLANG_SPANISH_COSTA_RICA = 5

const SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 7

const SUBLANG_SPANISH_ECUADOR = 12

const SUBLANG_SPANISH_EL_SALVADOR = 17

const SUBLANG_SPANISH_GUATEMALA = 4

const SUBLANG_SPANISH_HONDURAS = 18

const SUBLANG_SPANISH_MEXICAN = 2

const SUBLANG_SPANISH_MODERN = 3

const SUBLANG_SPANISH_NICARAGUA = 19

const SUBLANG_SPANISH_PANAMA = 6

const SUBLANG_SPANISH_PARAGUAY = 15

const SUBLANG_SPANISH_PERU = 10

const SUBLANG_SPANISH_PUERTO_RICO = 20

const SUBLANG_SPANISH_URUGUAY = 14

const SUBLANG_SPANISH_US = 21

const SUBLANG_SPANISH_VENEZUELA = 8

const SUBLANG_SWAHILI_KENYA = 1

const SUBLANG_SWEDISH = 1

const SUBLANG_SWEDISH_FINLAND = 2

const SUBLANG_SWEDISH_SWEDEN = 1

const SUBLANG_SYRIAC = 1

const SUBLANG_SYRIAC_SYRIA = 1

const SUBLANG_SYS_DEFAULT = 2

const SUBLANG_TAJIK_TAJIKISTAN = 1

const SUBLANG_TAMAZIGHT_ALGERIA_LATIN = 2

const SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH = 4

const SUBLANG_TAMIL_INDIA = 1

const SUBLANG_TAMIL_SRI_LANKA = 2

const SUBLANG_TATAR_RUSSIA = 1

const SUBLANG_TELUGU_INDIA = 1

const SUBLANG_THAI_THAILAND = 1

const SUBLANG_TIBETAN_BHUTAN = 2

const SUBLANG_TIBETAN_PRC = 1

const SUBLANG_TIGRIGNA_ERITREA = 2

const SUBLANG_TIGRINYA_ERITREA = 2

const SUBLANG_TIGRINYA_ETHIOPIA = 1

const SUBLANG_TSWANA_BOTSWANA = 2

const SUBLANG_TSWANA_SOUTH_AFRICA = 1

const SUBLANG_TURKISH_TURKEY = 1

const SUBLANG_TURKMEN_TURKMENISTAN = 1

const SUBLANG_UIGHUR_PRC = 1

const SUBLANG_UI_CUSTOM_DEFAULT = 5

const SUBLANG_UKRAINIAN_UKRAINE = 1

const SUBLANG_UPPER_SORBIAN_GERMANY = 1

const SUBLANG_URDU_INDIA = 2

const SUBLANG_URDU_PAKISTAN = 1

const SUBLANG_UZBEK_CYRILLIC = 2

const SUBLANG_UZBEK_LATIN = 1

const SUBLANG_VALENCIAN_VALENCIA = 2

const SUBLANG_VIETNAMESE_VIETNAM = 1

const SUBLANG_WELSH_UNITED_KINGDOM = 1

const SUBLANG_WOLOF_SENEGAL = 1

const SUBLANG_XHOSA_SOUTH_AFRICA = 1

const SUBLANG_YAKUT_RUSSIA = 1

const SUBLANG_YI_PRC = 1

const SUBLANG_YORUBA_NIGERIA = 1

const SUBLANG_ZULU_SOUTH_AFRICA = 1

const SUBVERSION_MASK = 255

const SUCCESSFUL_ACCESS_ACE_FLAG = 64

type SUPPORTED_OS_INFO = TSUPPORTED_OS_INFO

const SUPPORT_LANG_NUMBER = 32

const SWP_ASYNCWINDOWPOS = 16384

const SWP_DEFERERASE = 8192

const SWP_DRAWFRAME = 32

const SWP_FRAMECHANGED = 32

const SWP_HIDEWINDOW = 128

const SWP_NOACTIVATE = 16

const SWP_NOCOPYBITS = 256

const SWP_NOMOVE = 2

const SWP_NOOWNERZORDER = 512

const SWP_NOREDRAW = 8

const SWP_NOREPOSITION = 512

const SWP_NOSENDCHANGING = 1024

const SWP_NOSIZE = 1

const SWP_NOZORDER = 4

const SWP_SHOWWINDOW = 64

const SW_ERASE = 4

const SW_FORCEMINIMIZE = 11

const SW_HIDE = 0

const SW_INVALIDATE = 2

const SW_MAX = 11

const SW_MAXIMIZE = 3

const SW_MINIMIZE = 6

const SW_NORMAL = 1

const SW_OTHERUNZOOM = 4

const SW_OTHERZOOM = 2

const SW_PARENTCLOSING = 1

const SW_PARENTOPENING = 3

const SW_RESTORE = 9

const SW_SCROLLCHILDREN = 1

const SW_SHOW = 5

const SW_SHOWDEFAULT = 10

const SW_SHOWMAXIMIZED = 3

const SW_SHOWMINIMIZED = 2

const SW_SHOWMINNOACTIVE = 7

const SW_SHOWNA = 8

const SW_SHOWNOACTIVATE = 4

const SW_SHOWNORMAL = 1

const SW_SMOOTHSCROLL = 16

const SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE = 2

const SYMBOLIC_LINK_FLAG_DIRECTORY = 1

const SYMBOL_CHARSET = 2

const SYMBOL_FONTTYPE = 524288

const SYMLINK_FLAG_RELATIVE = 1

const SYMMETRICWRAPKEYBLOB = 11

type SYNCHRONIZATION_BARRIER = TSYNCHRONIZATION_BARRIER

const SYNCHRONIZATION_BARRIER_FLAGS_BLOCK_ONLY = 2

const SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE = 4

const SYNCHRONIZATION_BARRIER_FLAGS_SPIN_ONLY = 1

const SYNCHRONIZE = 1048576

const SYSCALL = 0

type SYSKIND = TSYSKIND

const SYSPAL_ERROR = 0

const SYSPAL_NOSTATIC = 2

const SYSPAL_NOSTATIC256 = 3

const SYSPAL_STATIC = 1

const SYSRGN = 4

type SYSTEMTIME = TSYSTEMTIME

type SYSTEM_ALARM_ACE = TSYSTEM_ALARM_ACE

const SYSTEM_ALARM_ACE_TYPE = 3

type SYSTEM_ALARM_CALLBACK_ACE = TSYSTEM_ALARM_CALLBACK_ACE

const SYSTEM_ALARM_CALLBACK_ACE_TYPE = 14

type SYSTEM_ALARM_CALLBACK_OBJECT_ACE = TSYSTEM_ALARM_CALLBACK_OBJECT_ACE

const SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 16

type SYSTEM_ALARM_OBJECT_ACE = TSYSTEM_ALARM_OBJECT_ACE

const SYSTEM_ALARM_OBJECT_ACE_TYPE = 8

type SYSTEM_AUDIT_ACE = TSYSTEM_AUDIT_ACE

const SYSTEM_AUDIT_ACE_TYPE = 2

type SYSTEM_AUDIT_CALLBACK_ACE = TSYSTEM_AUDIT_CALLBACK_ACE

const SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 13

type SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = TSYSTEM_AUDIT_CALLBACK_OBJECT_ACE

const SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 15

type SYSTEM_AUDIT_OBJECT_ACE = TSYSTEM_AUDIT_OBJECT_ACE

const SYSTEM_AUDIT_OBJECT_ACE_TYPE = 7

type SYSTEM_BATTERY_STATE = TSYSTEM_BATTERY_STATE

const SYSTEM_CACHE_ALIGNMENT_SIZE = 64

const SYSTEM_FIXED_FONT = 16

const SYSTEM_FONT = 13

type SYSTEM_INFO = TSYSTEM_INFO

type SYSTEM_LOGICAL_PROCESSOR_INFORMATION = TSYSTEM_LOGICAL_PROCESSOR_INFORMATION

type SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = TSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

type SYSTEM_MANDATORY_LABEL_ACE = TSYSTEM_MANDATORY_LABEL_ACE

const SYSTEM_MANDATORY_LABEL_ACE_TYPE = 17

const SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP = 4

const SYSTEM_MANDATORY_LABEL_NO_READ_UP = 2

const SYSTEM_MANDATORY_LABEL_NO_WRITE_UP = 1

const SYSTEM_MANDATORY_LABEL_VALID_MASK = 7

type SYSTEM_POWER_CAPABILITIES = TSYSTEM_POWER_CAPABILITIES

type SYSTEM_POWER_CONDITION = TSYSTEM_POWER_CONDITION

type SYSTEM_POWER_LEVEL = TSYSTEM_POWER_LEVEL

type SYSTEM_POWER_POLICY = TSYSTEM_POWER_POLICY

type SYSTEM_POWER_STATE = TSYSTEM_POWER_STATE

type SYSTEM_POWER_STATUS = TSYSTEM_POWER_STATUS

type SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = TSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION

type SYSTEM_RESOURCE_ATTRIBUTE_ACE = TSYSTEM_RESOURCE_ATTRIBUTE_ACE

const SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE = 18

type SYSTEM_SCOPED_POLICY_ID_ACE = TSYSTEM_SCOPED_POLICY_ID_ACE

const SYSTEM_SCOPED_POLICY_ID_ACE_TYPE = 19

const SYSTEM_STATUS_FLAG_POWER_SAVING_ON = 1

type SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION = TSYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION

const SYS_OPEN = 20

type SZM_FLAGS = TSZM_FLAGS

const S_ALLTHRESHOLD = 2

const S_ASYNCHRONOUS = "MK_S_ASYNCHRONOUS"

const S_LEGATO = 1

const S_NORMAL = 0

const S_PERIOD1024 = 1

const S_PERIOD2048 = 2

const S_PERIOD512 = 0

const S_PERIODVOICE = 3

const S_QUEUEEMPTY = 0

const S_SERBDNT = -5

const S_SERDCC = -7

const S_SERDDR = -14

const S_SERDFQ = -13

const S_SERDLN = -6

const S_SERDMD = -10

const S_SERDPT = -12

const S_SERDSH = -11

const S_SERDSR = -15

const S_SERDST = -16

const S_SERDTP = -8

const S_SERDVL = -9

const S_SERDVNA = -1

const S_SERMACT = -3

const S_SEROFM = -2

const S_SERQFUL = -4

const S_STACCATO = 2

const S_THRESHOLD = 1

const S_WHITE1024 = 5

const S_WHITE2048 = 6

const S_WHITE512 = 4

const S_WHITEVOICE = 7

const ScrollConsoleScreenBuffer = 0

const SearchPath = 0

const SecureZeroMemory = 0

const SendDlgItemMessage = 0

const SendMessage = 0

const SendMessageCallback = 0

const SendMessageTimeout = 0

const SendNotifyMessage = 0

type ServerInformation = TServerInformation

const SetCalendarInfo = 0

const SetClassLong = 0

const SetClassLongPtr = 0

const SetComputerName = 0

const SetComputerNameEx = 0

const SetConsoleNumberOfCommands = 0

const SetConsoleTitle = 0

const SetCurrentDirectory = 0

const SetDefaultCommConfig = 0

const SetDefaultPrinter = 0

const SetDlgItemText = 0

const SetDllDirectory = 0

const SetEnvironmentStrings = 0

const SetEnvironmentVariable = 0

const SetFileAttributes = 0

const SetFileAttributesTransacted = 0

const SetFileSecurity = 0

const SetFileShortName = 0

const SetFirmwareEnvironmentVariable = 0

const SetFirmwareEnvironmentVariableEx = 0

const SetForm = 0

const SetICMProfile = 0

const SetJob = 0

const SetLocaleInfo = 0

const SetMenuItemInfo = 0

const SetPort = 0

const SetPrinter = 0

const SetPrinterData = 0

const SetPrinterDataEx = 0

const SetProp = 0

const SetUserObjectInformation = 0

const SetVolumeLabel = 0

const SetVolumeMountPoint = 0

const SetWindowLong = 0

const SetWindowLongPtr = 0

const SetWindowText = 0

const SetWindowsHook = 0

const SetWindowsHookEx = 0

const ShellAbout = 0

const ShellExecute = 0

const ShellExecuteEx = 0

const ShellMessageBox = 0

const Shell_NotifyIcon = 0

type ShmRegion = TShmRegion

type ShutdownType = TShutdownType

const StartDoc = 0

const StartDocPrinter = 0

type StartParam = TStartParam

const StartService = 0

const StartServiceCtrlDispatcher = 0

const StorageIdTypeNAA = 0

type StorageLayout = TStorageLayout

const StoragePortClassGuid = 0

const SystemParametersInfo = 0

type TABC = struct {
	FabcA int32
	FabcB TUINT
	FabcC int32
}

type TABCFLOAT = struct {
	FabcfA TFLOAT
	FabcfB TFLOAT
	FabcfC TFLOAT
}

type TABORTPROC = uintptr

type TACCEL = struct {
	FfVirt TBYTE
	Fkey   TWORD
	Fcmd   TWORD
}

type TACCESSTIMEOUT = struct {
	FcbSize       TUINT
	FdwFlags      TDWORD
	FiTimeOutMSec TDWORD
}

type TACCESS_ALLOWED_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TACCESS_ALLOWED_CALLBACK_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TACCESS_ALLOWED_CALLBACK_OBJECT_ACE = struct {
	FHeader              TACE_HEADER
	FMask                TACCESS_MASK
	FFlags               TDWORD
	FObjectType          TGUID
	FInheritedObjectType TGUID
	FSidStart            TDWORD
}

type TACCESS_ALLOWED_OBJECT_ACE = struct {
	FHeader              TACE_HEADER
	FMask                TACCESS_MASK
	FFlags               TDWORD
	FObjectType          TGUID
	FInheritedObjectType TGUID
	FSidStart            TDWORD
}

type TACCESS_DENIED_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TACCESS_DENIED_CALLBACK_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TACCESS_DENIED_CALLBACK_OBJECT_ACE = struct {
	FHeader              TACE_HEADER
	FMask                TACCESS_MASK
	FFlags               TDWORD
	FObjectType          TGUID
	FInheritedObjectType TGUID
	FSidStart            TDWORD
}

type TACCESS_DENIED_OBJECT_ACE = struct {
	FHeader              TACE_HEADER
	FMask                TACCESS_MASK
	FFlags               TDWORD
	FObjectType          TGUID
	FInheritedObjectType TGUID
	FSidStart            TDWORD
}

type TACCESS_MASK = uint32

type TACCESS_REASON = uint32

type TACCESS_REASONS = struct {
	FData [32]TACCESS_REASON
}

type TACCESS_REASON_TYPE = int32

type TACE_HEADER = struct {
	FAceType  TBYTE
	FAceFlags TBYTE
	FAceSize  TWORD
}

type TACL = struct {
	FAclRevision TBYTE
	FSbz1        TBYTE
	FAclSize     TWORD
	FAceCount    TWORD
	FSbz2        TWORD
}

type TACL_INFORMATION_CLASS = int32

type TACL_REVISION_INFORMATION = struct {
	FAclRevision TDWORD
}

type TACL_SIZE_INFORMATION = struct {
	FAceCount      TDWORD
	FAclBytesInUse TDWORD
	FAclBytesFree  TDWORD
}

type TACTCTX = struct {
	FcbSize                 TULONG
	FdwFlags                TDWORD
	FlpSource               TLPCSTR
	FwProcessorArchitecture TUSHORT
	FwLangId                TLANGID
	FlpAssemblyDirectory    TLPCSTR
	FlpResourceName         TLPCSTR
	FlpApplicationName      TLPCSTR
	FhModule                THMODULE
}

type TACTCTXA = struct {
	FcbSize                 TULONG
	FdwFlags                TDWORD
	FlpSource               TLPCSTR
	FwProcessorArchitecture TUSHORT
	FwLangId                TLANGID
	FlpAssemblyDirectory    TLPCSTR
	FlpResourceName         TLPCSTR
	FlpApplicationName      TLPCSTR
	FhModule                THMODULE
}

type TACTCTXW = struct {
	FcbSize                 TULONG
	FdwFlags                TDWORD
	FlpSource               TLPCWSTR
	FwProcessorArchitecture TUSHORT
	FwLangId                TLANGID
	FlpAssemblyDirectory    TLPCWSTR
	FlpResourceName         TLPCWSTR
	FlpApplicationName      TLPCWSTR
	FhModule                THMODULE
}

type TACTCTX_COMPATIBILITY_ELEMENT_TYPE = int32

type TACTCTX_REQUESTED_RUN_LEVEL = int32

type TACTCTX_SECTION_KEYED_DATA = struct {
	FcbSize                    TULONG
	FulDataFormatVersion       TULONG
	FlpData                    TPVOID
	FulLength                  TULONG
	FlpSectionGlobalData       TPVOID
	FulSectionGlobalDataLength TULONG
	FlpSectionBase             TPVOID
	FulSectionTotalLength      TULONG
	FhActCtx                   THANDLE
	FulAssemblyRosterIndex     TULONG
	FulFlags                   TULONG
	FAssemblyMetadata          TACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA
}

type TACTCTX_SECTION_KEYED_DATA_2600 = struct {
	FcbSize                    TULONG
	FulDataFormatVersion       TULONG
	FlpData                    TPVOID
	FulLength                  TULONG
	FlpSectionGlobalData       TPVOID
	FulSectionGlobalDataLength TULONG
	FlpSectionBase             TPVOID
	FulSectionTotalLength      TULONG
	FhActCtx                   THANDLE
	FulAssemblyRosterIndex     TULONG
}

type TACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = struct {
	FlpInformation             TPVOID
	FlpSectionBase             TPVOID
	FulSectionLength           TULONG
	FlpSectionGlobalDataBase   TPVOID
	FulSectionGlobalDataLength TULONG
}

type TACTION_HEADER = struct {
	Ftransport_id TULONG
	Faction_code  TUSHORT
	Freserved     TUSHORT
}

type TACTIVATION_CONTEXT_BASIC_INFORMATION = struct {
	FhActCtx THANDLE
	FdwFlags TDWORD
}

type TACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = struct {
	FElementCount TDWORD
}

type TACTIVATION_CONTEXT_DETAILED_INFORMATION = struct {
	FdwFlags                      TDWORD
	FulFormatVersion              TDWORD
	FulAssemblyCount              TDWORD
	FulRootManifestPathType       TDWORD
	FulRootManifestPathChars      TDWORD
	FulRootConfigurationPathType  TDWORD
	FulRootConfigurationPathChars TDWORD
	FulAppDirPathType             TDWORD
	FulAppDirPathChars            TDWORD
	FlpRootManifestPath           TPCWSTR
	FlpRootConfigurationPath      TPCWSTR
	FlpAppDirPath                 TPCWSTR
}

type TACTIVATION_CONTEXT_INFO_CLASS = int32

type TACTIVATION_CONTEXT_QUERY_INDEX = struct {
	FulAssemblyIndex       TDWORD
	FulFileIndexInAssembly TDWORD
}

type TACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = struct {
	FulFlags  TDWORD
	FRunLevel TACTCTX_REQUESTED_RUN_LEVEL
	FUiAccess TDWORD
}

type TADAPTER_STATUS = struct {
	Fadapter_address   [6]TUCHAR
	Frev_major         TUCHAR
	Freserved0         TUCHAR
	Fadapter_type      TUCHAR
	Frev_minor         TUCHAR
	Fduration          TWORD
	Ffrmr_recv         TWORD
	Ffrmr_xmit         TWORD
	Fiframe_recv_err   TWORD
	Fxmit_aborts       TWORD
	Fxmit_success      TDWORD
	Frecv_success      TDWORD
	Fiframe_xmit_err   TWORD
	Frecv_buff_unavail TWORD
	Ft1_timeouts       TWORD
	Fti_timeouts       TWORD
	Freserved1         TDWORD
	Ffree_ncbs         TWORD
	Fmax_cfg_ncbs      TWORD
	Fmax_ncbs          TWORD
	Fxmit_buf_unavail  TWORD
	Fmax_dgram_size    TWORD
	Fpending_sess      TWORD
	Fmax_cfg_sess      TWORD
	Fmax_sess          TWORD
	Fmax_sess_pkt_size TWORD
	Fname_count        TWORD
}

type TADDJOB_INFO_1 = struct {
	FPath  TLPSTR
	FJobId TDWORD
}

type TADDJOB_INFO_1A = struct {
	FPath  TLPSTR
	FJobId TDWORD
}

type TADDJOB_INFO_1W = struct {
	FPath  TLPWSTR
	FJobId TDWORD
}

type TADMINISTRATOR_POWER_POLICY = struct {
	FMinSleep           TSYSTEM_POWER_STATE
	FMaxSleep           TSYSTEM_POWER_STATE
	FMinVideoTimeout    TDWORD
	FMaxVideoTimeout    TDWORD
	FMinSpindownTimeout TDWORD
	FMaxSpindownTimeout TDWORD
}

type TADVF = int32

type TAKE_SNAPSHOT_VHDSET_FLAG = TTAKE_SNAPSHOT_VHDSET_FLAG

type TAKE_SNAPSHOT_VHDSET_PARAMETERS = TTAKE_SNAPSHOT_VHDSET_PARAMETERS

type TAKE_SNAPSHOT_VHDSET_VERSION = TTAKE_SNAPSHOT_VHDSET_VERSION

type TALG_ID = uint32

type TALTTABINFO = struct {
	FcbSize    TDWORD
	FcItems    int32
	FcColumns  int32
	FcRows     int32
	FiColFocus int32
	FiRowFocus int32
	FcxItem    int32
	FcyItem    int32
	FptStart   TPOINT
}

type TANIMATIONINFO = struct {
	FcbSize      TUINT
	FiMinAnimate int32
}

type TANON_OBJECT_HEADER = struct {
	FSig1          TWORD
	FSig2          TWORD
	FVersion       TWORD
	FMachine       TWORD
	FTimeDateStamp TDWORD
	FClassID       TCLSID
	FSizeOfData    TDWORD
}

type TANON_OBJECT_HEADER_BIGOBJ = struct {
	FSig1                 TWORD
	FSig2                 TWORD
	FVersion              TWORD
	FMachine              TWORD
	FTimeDateStamp        TDWORD
	FClassID              TCLSID
	FSizeOfData           TDWORD
	FFlags                TDWORD
	FMetaDataSize         TDWORD
	FMetaDataOffset       TDWORD
	FNumberOfSections     TDWORD
	FPointerToSymbolTable TDWORD
	FNumberOfSymbols      TDWORD
}

type TANON_OBJECT_HEADER_V2 = struct {
	FSig1           TWORD
	FSig2           TWORD
	FVersion        TWORD
	FMachine        TWORD
	FTimeDateStamp  TDWORD
	FClassID        TCLSID
	FSizeOfData     TDWORD
	FFlags          TDWORD
	FMetaDataSize   TDWORD
	FMetaDataOffset TDWORD
}

type TAPARTMENTID = uint32

type TAPC_CALLBACK_FUNCTION = uintptr

const TAPE_ABSOLUTE_BLOCK = 1

const TAPE_ABSOLUTE_POSITION = 0

const TAPE_CHECK_FOR_DRIVE_PROBLEM = 2

type TAPE_CREATE_PARTITION = TTAPE_CREATE_PARTITION

const TAPE_DRIVE_ABSOLUTE_BLK = 2147487744

const TAPE_DRIVE_ABS_BLK_IMMED = 2147491840

const TAPE_DRIVE_CLEAN_REQUESTS = 33554432

const TAPE_DRIVE_COMPRESSION = 131072

const TAPE_DRIVE_ECC = 65536

const TAPE_DRIVE_EJECT_MEDIA = 16777216

const TAPE_DRIVE_END_OF_DATA = 2147549184

const TAPE_DRIVE_EOT_WZ_SIZE = 8192

const TAPE_DRIVE_ERASE_BOP_ONLY = 64

const TAPE_DRIVE_ERASE_IMMEDIATE = 128

const TAPE_DRIVE_ERASE_LONG = 32

const TAPE_DRIVE_ERASE_SHORT = 16

const TAPE_DRIVE_FILEMARKS = 2147745792

const TAPE_DRIVE_FIXED = 1

const TAPE_DRIVE_FIXED_BLOCK = 1024

const TAPE_DRIVE_FORMAT = 2684354560

const TAPE_DRIVE_FORMAT_IMMEDIATE = 3221225472

const TAPE_DRIVE_GET_ABSOLUTE_BLK = 1048576

const TAPE_DRIVE_GET_LOGICAL_BLK = 2097152

const TAPE_DRIVE_HIGH_FEATURES = 2147483648

const TAPE_DRIVE_INITIATOR = 4

const TAPE_DRIVE_LOAD_UNLD_IMMED = 2147483680

const TAPE_DRIVE_LOAD_UNLOAD = 2147483649

const TAPE_DRIVE_LOCK_UNLK_IMMED = 2147483776

const TAPE_DRIVE_LOCK_UNLOCK = 2147483652

const TAPE_DRIVE_LOGICAL_BLK = 2147500032

const TAPE_DRIVE_LOG_BLK_IMMED = 2147516416

const TAPE_DRIVE_PADDING = 262144

type TAPE_DRIVE_PROBLEM_TYPE = TTAPE_DRIVE_PROBLEM_TYPE

const TAPE_DRIVE_RELATIVE_BLKS = 2147614720

const TAPE_DRIVE_REPORT_SMKS = 524288

const TAPE_DRIVE_RESERVED_BIT = 2147483648

const TAPE_DRIVE_REVERSE_POSITION = 2151677952

const TAPE_DRIVE_REWIND_IMMEDIATE = 2147483656

const TAPE_DRIVE_SELECT = 2

const TAPE_DRIVE_SEQUENTIAL_FMKS = 2148007936

const TAPE_DRIVE_SEQUENTIAL_SMKS = 2149580800

const TAPE_DRIVE_SETMARKS = 2148532224

const TAPE_DRIVE_SET_BLOCK_SIZE = 2147483664

const TAPE_DRIVE_SET_CMP_BOP_ONLY = 67108864

const TAPE_DRIVE_SET_COMPRESSION = 2147484160

const TAPE_DRIVE_SET_ECC = 2147483904

const TAPE_DRIVE_SET_EOT_WZ_SIZE = 4194304

const TAPE_DRIVE_SET_PADDING = 2147484672

const TAPE_DRIVE_SET_REPORT_SMKS = 2147485696

const TAPE_DRIVE_SPACE_IMMEDIATE = 2155872256

const TAPE_DRIVE_TAPE_CAPACITY = 256

const TAPE_DRIVE_TAPE_REMAINING = 512

const TAPE_DRIVE_TENSION = 2147483650

const TAPE_DRIVE_TENSION_IMMED = 2147483712

const TAPE_DRIVE_VARIABLE_BLOCK = 2048

const TAPE_DRIVE_WRITE_FILEMARKS = 2181038080

const TAPE_DRIVE_WRITE_LONG_FMKS = 2281701376

const TAPE_DRIVE_WRITE_MARK_IMMED = 2415919104

const TAPE_DRIVE_WRITE_PROTECT = 4096

const TAPE_DRIVE_WRITE_SETMARKS = 2164260864

const TAPE_DRIVE_WRITE_SHORT_FMKS = 2214592512

type TAPE_ERASE = TTAPE_ERASE

const TAPE_ERASE_LONG = 1

const TAPE_ERASE_SHORT = 0

const TAPE_FILEMARKS = 1

const TAPE_FIXED_PARTITIONS = 0

const TAPE_FORMAT = 5

type TAPE_GET_DRIVE_PARAMETERS = TTAPE_GET_DRIVE_PARAMETERS

type TAPE_GET_MEDIA_PARAMETERS = TTAPE_GET_MEDIA_PARAMETERS

type TAPE_GET_POSITION = TTAPE_GET_POSITION

type TAPE_GET_STATISTICS = TTAPE_GET_STATISTICS

const TAPE_INITIATOR_PARTITIONS = 2

const TAPE_LOAD = 0

const TAPE_LOCK = 3

const TAPE_LOGICAL_BLOCK = 2

const TAPE_LOGICAL_POSITION = 1

const TAPE_LONG_FILEMARKS = 3

type TAPE_PREPARE = TTAPE_PREPARE

const TAPE_PSEUDO_LOGICAL_BLOCK = 3

const TAPE_PSEUDO_LOGICAL_POSITION = 2

const TAPE_QUERY_DEVICE_ERROR_DATA = 4

const TAPE_QUERY_DRIVE_PARAMETERS = 0

const TAPE_QUERY_IO_ERROR_DATA = 3

const TAPE_QUERY_MEDIA_CAPACITY = 1

const TAPE_RESET_STATISTICS = 2

const TAPE_RETURN_ENV_INFO = 1

const TAPE_RETURN_STATISTICS = 0

const TAPE_REWIND = 0

const TAPE_SELECT_PARTITIONS = 1

const TAPE_SETMARKS = 0

type TAPE_SET_DRIVE_PARAMETERS = TTAPE_SET_DRIVE_PARAMETERS

type TAPE_SET_MEDIA_PARAMETERS = TTAPE_SET_MEDIA_PARAMETERS

type TAPE_SET_POSITION = TTAPE_SET_POSITION

const TAPE_SHORT_FILEMARKS = 2

const TAPE_SPACE_END_OF_DATA = 4

const TAPE_SPACE_FILEMARKS = 6

const TAPE_SPACE_RELATIVE_BLOCKS = 5

const TAPE_SPACE_SEQUENTIAL_FMKS = 7

const TAPE_SPACE_SEQUENTIAL_SMKS = 9

const TAPE_SPACE_SETMARKS = 8

type TAPE_STATISTICS = TTAPE_STATISTICS

const TAPE_TENSION = 2

const TAPE_UNLOAD = 1

const TAPE_UNLOCK = 4

type TAPE_WMI_OPERATIONS = TTAPE_WMI_OPERATIONS

type TAPE_WRITE_MARKS = TTAPE_WRITE_MARKS

type TAPPBARDATA = struct {
	FcbSize           TDWORD
	FhWnd             THWND
	FuCallbackMessage TUINT
	FuEdge            TUINT
	Frc               TRECT
	FlParam           TLPARAM
}

type TAPPLICATION_RECOVERY_CALLBACK = uintptr

type TAPPLY_SNAPSHOT_VHDSET_FLAG = int32

type TAPPLY_SNAPSHOT_VHDSET_PARAMETERS = struct {
	FVersion   TAPPLY_SNAPSHOT_VHDSET_VERSION
	F__ccgo1_4 struct {
		FVersion1 struct {
			FSnapshotId     TGUID
			FLeafSnapshotId TGUID
		}
	}
}

type TAPPLY_SNAPSHOT_VHDSET_VERSION = int32

type TAPP_LOCAL_DEVICE_ID = struct {
	Fvalue [32]TBYTE
}

type TAPTTYPE = int32

type TAPTTYPEQUALIFIER = int32

const TARGET_IS_NT351_OR_WIN95_OR_LATER = 1

const TARGET_IS_NT40_OR_LATER = 1

const TARGET_IS_NT50_OR_LATER = 1

const TARGET_IS_NT51_OR_LATER = 1

const TARGET_IS_NT60_OR_LATER = 1

const TARGET_IS_NT61_OR_LATER = 1

type TARRAYDESC = struct {
	FtdescElem TTYPEDESC
	FcDims     TUSHORT
	Frgbounds  [1]TSAFEARRAYBOUND
}

type TARRAY_INFO = struct {
	FDimension             int32
	FBufferConformanceMark uintptr
	FBufferVarianceMark    uintptr
	FMaxCountArray         uintptr
	FOffsetArray           uintptr
	FActualCountArray      uintptr
}

type TAR_STATE = int32

type TASSEMBLY_FILE_DETAILED_INFORMATION = struct {
	FulFlags          TDWORD
	FulFilenameLength TDWORD
	FulPathLength     TDWORD
	FlpFileName       TPCWSTR
	FlpFilePath       TPCWSTR
}

type TASSOCCLASS = int32

type TASSOCIATIONELEMENT = struct {
	Fac       TASSOCCLASS
	FhkClass  THKEY
	FpszClass TPCWSTR
}

type TATOM = uint16

type TATTACH_VIRTUAL_DISK_FLAG = int32

type TATTACH_VIRTUAL_DISK_PARAMETERS = struct {
	FVersion   TATTACH_VIRTUAL_DISK_VERSION
	F__ccgo1_4 struct {
		FVersion1 struct {
			FReserved TULONG
		}
	}
}

type TATTACH_VIRTUAL_DISK_VERSION = int32

type TAUDIODESCRIPTION = struct {
	FcbSize  TUINT
	FEnabled TWINBOOL
	FLocale  TLCID
}

type TAUDIT_EVENT_TYPE = int32

type TAUTHENTICATEF = int32

type TAUTHENTICATEINFO = struct {
	FdwFlags    TDWORD
	FdwReserved TDWORD
}

type TAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA = struct {
	FcbSize              TDWORD
	FdwRegPolicySettings TDWORD
	FpSignerInfo         TPCMSG_SIGNER_INFO
}

type TAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS = struct {
	FcbSize      TDWORD
	FfCommercial TWINBOOL
}

type TAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA = struct {
	FcbSize              TDWORD
	FdwRegPolicySettings TDWORD
	FfCommercial         TWINBOOL
}

type TAUXCAPS = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FwTechnology    TWORD
	FwReserved1     TWORD
	FdwSupport      TDWORD
}

type TAUXCAPS2 = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FwTechnology      TWORD
	FwReserved1       TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TAUXCAPS2A = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FwTechnology      TWORD
	FwReserved1       TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TAUXCAPS2W = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TWCHAR
	FwTechnology      TWORD
	FwReserved1       TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TAUXCAPSA = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FwTechnology    TWORD
	FwReserved1     TWORD
	FdwSupport      TDWORD
}

type TAUXCAPSW = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TWCHAR
	FwTechnology    TWORD
	FwReserved1     TWORD
	FdwSupport      TDWORD
}

type TAXESLIST = struct {
	FaxlReserved TDWORD
	FaxlNumAxes  TDWORD
	FaxlAxisInfo [16]TAXISINFOA
}

type TAXESLISTA = struct {
	FaxlReserved TDWORD
	FaxlNumAxes  TDWORD
	FaxlAxisInfo [16]TAXISINFOA
}

type TAXESLISTW = struct {
	FaxlReserved TDWORD
	FaxlNumAxes  TDWORD
	FaxlAxisInfo [16]TAXISINFOW
}

type TAXISINFO = struct {
	FaxMinValue TLONG
	FaxMaxValue TLONG
	FaxAxisName [16]TBYTE
}

type TAXISINFOA = struct {
	FaxMinValue TLONG
	FaxMaxValue TLONG
	FaxAxisName [16]TBYTE
}

type TAXISINFOW = struct {
	FaxMinValue TLONG
	FaxMaxValue TLONG
	FaxAxisName [16]TWCHAR
}

const TA_BASELINE = 24

const TA_BOTTOM = 8

const TA_CENTER = 6

const TA_LEFT = 0

const TA_MASK = 287

const TA_NOUPDATECP = 0

const TA_RIGHT = 2

const TA_RTLREADING = 256

const TA_TOP = 0

const TA_UPDATECP = 1

type TApplicationType = int32

type TAsyncIAdviseSink = struct {
	FlpVtbl uintptr
}

type TAsyncIAdviseSink2 = struct {
	FlpVtbl uintptr
}

type TAsyncIAdviseSink2Vtbl = struct {
	FQueryInterface         uintptr
	FAddRef                 uintptr
	FRelease                uintptr
	FBegin_OnDataChange     uintptr
	FFinish_OnDataChange    uintptr
	FBegin_OnViewChange     uintptr
	FFinish_OnViewChange    uintptr
	FBegin_OnRename         uintptr
	FFinish_OnRename        uintptr
	FBegin_OnSave           uintptr
	FFinish_OnSave          uintptr
	FBegin_OnClose          uintptr
	FFinish_OnClose         uintptr
	FBegin_OnLinkSrcChange  uintptr
	FFinish_OnLinkSrcChange uintptr
}

type TAsyncIAdviseSinkVtbl = struct {
	FQueryInterface      uintptr
	FAddRef              uintptr
	FRelease             uintptr
	FBegin_OnDataChange  uintptr
	FFinish_OnDataChange uintptr
	FBegin_OnViewChange  uintptr
	FFinish_OnViewChange uintptr
	FBegin_OnRename      uintptr
	FFinish_OnRename     uintptr
	FBegin_OnSave        uintptr
	FFinish_OnSave       uintptr
	FBegin_OnClose       uintptr
	FFinish_OnClose      uintptr
}

type TAsyncIMultiQI = struct {
	FlpVtbl uintptr
}

type TAsyncIMultiQIVtbl = struct {
	FQueryInterface                 uintptr
	FAddRef                         uintptr
	FRelease                        uintptr
	FBegin_QueryMultipleInterfaces  uintptr
	FFinish_QueryMultipleInterfaces uintptr
}

type TAsyncIUnknown = struct {
	FlpVtbl uintptr
}

type TAsyncIUnknownVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FBegin_QueryInterface  uintptr
	FFinish_QueryInterface uintptr
	FBegin_AddRef          uintptr
	FFinish_AddRef         uintptr
	FBegin_Release         uintptr
	FFinish_Release        uintptr
}

type TBAD_TRACK_NUMBER = uint16

type TBATTERY_REPORTING_SCALE = struct {
	FGranularity TDWORD
	FCapacity    TDWORD
}

type TBCHAR = uint8

type TBCRYPT_ALGORITHM_IDENTIFIER = struct {
	FpszName TLPWSTR
	FdwClass TULONG
	FdwFlags TULONG
}

type TBCRYPT_ALG_HANDLE = uintptr

type TBCRYPT_AUTH_TAG_LENGTHS_STRUCT = struct {
	FdwMinLength TULONG
	FdwMaxLength TULONG
	FdwIncrement TULONG
}

type TBCRYPT_DH_KEY_BLOB = struct {
	FdwMagic TULONG
	FcbKey   TULONG
}

type TBCRYPT_DH_PARAMETER_HEADER = struct {
	FcbLength    TULONG
	FdwMagic     TULONG
	FcbKeyLength TULONG
}

type TBCRYPT_DSA_KEY_BLOB = struct {
	FdwMagic TULONG
	FcbKey   TULONG
	FCount   [4]TUCHAR
	FSeed    [20]TUCHAR
	Fq       [20]TUCHAR
}

type TBCRYPT_DSA_KEY_BLOB_V2 = struct {
	FdwMagic         TULONG
	FcbKey           TULONG
	FhashAlgorithm   THASHALGORITHM_ENUM
	FstandardVersion TDSAFIPSVERSION_ENUM
	FcbSeedLength    TULONG
	FcbGroupSize     TULONG
	FCount           [4]TUCHAR
}

type TBCRYPT_DSA_PARAMETER_HEADER = struct {
	FcbLength    TULONG
	FdwMagic     TULONG
	FcbKeyLength TULONG
	FCount       [4]TUCHAR
	FSeed        [20]TUCHAR
	Fq           [20]TUCHAR
}

type TBCRYPT_DSA_PARAMETER_HEADER_V2 = struct {
	FcbLength        TULONG
	FdwMagic         TULONG
	FcbKeyLength     TULONG
	FhashAlgorithm   THASHALGORITHM_ENUM
	FstandardVersion TDSAFIPSVERSION_ENUM
	FcbSeedLength    TULONG
	FcbGroupSize     TULONG
	FCount           [4]TUCHAR
}

type TBCRYPT_ECCKEY_BLOB = struct {
	FdwMagic TULONG
	FcbKey   TULONG
}

type TBCRYPT_ECC_CURVE_NAMES = struct {
	FdwEccCurveNames TULONG
	FpEccCurveNames  uintptr
}

type TBCRYPT_HANDLE = uintptr

type TBCRYPT_HASH_HANDLE = uintptr

type TBCRYPT_HASH_OPERATION_TYPE = int32

type TBCRYPT_INTERFACE_VERSION = struct {
	FMajorVersion TUSHORT
	FMinorVersion TUSHORT
}

type TBCRYPT_KEY_BLOB = struct {
	FMagic TULONG
}

type TBCRYPT_KEY_DATA_BLOB_HEADER = struct {
	FdwMagic   TULONG
	FdwVersion TULONG
	FcbKeyData TULONG
}

type TBCRYPT_KEY_HANDLE = uintptr

type TBCRYPT_KEY_LENGTHS_STRUCT = struct {
	FdwMinLength TULONG
	FdwMaxLength TULONG
	FdwIncrement TULONG
}

type TBCRYPT_MULTI_HASH_OPERATION = struct {
	FiHash         TULONG
	FhashOperation TBCRYPT_HASH_OPERATION_TYPE
	FpbBuffer      TPUCHAR
	FcbBuffer      TULONG
}

type TBCRYPT_MULTI_OBJECT_LENGTH_STRUCT = struct {
	FcbPerObject  TULONG
	FcbPerElement TULONG
}

type TBCRYPT_MULTI_OPERATION_TYPE = int32

type TBCRYPT_OAEP_PADDING_INFO = struct {
	FpszAlgId TLPCWSTR
	FpbLabel  TPUCHAR
	FcbLabel  TULONG
}

type TBCRYPT_OID = struct {
	FcbOID TULONG
	FpbOID TPUCHAR
}

type TBCRYPT_OID_LIST = struct {
	FdwOIDCount TULONG
	FpOIDs      uintptr
}

type TBCRYPT_PKCS1_PADDING_INFO = struct {
	FpszAlgId TLPCWSTR
}

type TBCRYPT_PROVIDER_NAME = struct {
	FpszProviderName TLPWSTR
}

type TBCRYPT_PSS_PADDING_INFO = struct {
	FpszAlgId TLPCWSTR
	FcbSalt   TULONG
}

type TBCRYPT_RSAKEY_BLOB = struct {
	FMagic       TULONG
	FBitLength   TULONG
	FcbPublicExp TULONG
	FcbModulus   TULONG
	FcbPrime1    TULONG
	FcbPrime2    TULONG
}

type TBCRYPT_SECRET_HANDLE = uintptr

type TBCryptBuffer = struct {
	FcbBuffer   TULONG
	FBufferType TULONG
	FpvBuffer   TPVOID
}

type TBCryptBufferDesc = struct {
	FulVersion TULONG
	FcBuffers  TULONG
	FpBuffers  TPBCryptBuffer
}

type TBEM_FREE_INTERFACE_CALLBACK = uintptr

type TBIDI_REQUEST_CONTAINER = struct {
	FVersion TDWORD
	FFlags   TDWORD
	FCount   TDWORD
	FaData   [1]TBIDI_REQUEST_DATA
}

type TBIDI_REQUEST_DATA = struct {
	FdwReqNumber TDWORD
	FpSchema     TLPWSTR
	Fdata        TBIDI_DATA
}

type TBIDI_RESPONSE_CONTAINER = struct {
	FVersion TDWORD
	FFlags   TDWORD
	FCount   TDWORD
	FaData   [1]TBIDI_RESPONSE_DATA
}

type TBIDI_RESPONSE_DATA = struct {
	FdwResult    TDWORD
	FdwReqNumber TDWORD
	FpSchema     TLPWSTR
	Fdata        TBIDI_DATA
}

type TBIDI_TYPE = int32

type TBINARY_CONTAINER = struct {
	FcbBuf TDWORD
	FpData TLPBYTE
}

type TBINDF = uint32

type TBINDF2 = uint32

type TBINDHANDLETYPES = int32

type TBINDINFO = struct {
	FcbSize             TULONG
	FszExtraInfo        TLPWSTR
	FstgmedData         TSTGMEDIUM
	FgrfBindInfoF       TDWORD
	FdwBindVerb         TDWORD
	FszCustomVerb       TLPWSTR
	FcbstgmedData       TDWORD
	FdwOptions          TDWORD
	FdwOptionsFlags     TDWORD
	FdwCodePage         TDWORD
	FsecurityAttributes TSECURITY_ATTRIBUTES
	Fiid                TIID
	FpUnk               uintptr
	FdwReserved         TDWORD
}

type TBINDINFOF = int32

type TBINDINFO_OPTIONS = int32

type TBINDPTR = struct {
	Flpvardesc  [0]uintptr
	Flptcomp    [0]uintptr
	Flpfuncdesc uintptr
}

type TBINDSPEED = int32

type TBINDSTATUS = int32

type TBINDSTRING = int32

type TBINDVERB = int32

type TBIND_FLAGS = int32

type TBIND_OPTS = struct {
	FcbStruct            TDWORD
	FgrfFlags            TDWORD
	FgrfMode             TDWORD
	FdwTickCountDeadline TDWORD
}

type TBIND_OPTS2 = struct {
	FcbStruct            TDWORD
	FgrfFlags            TDWORD
	FgrfMode             TDWORD
	FdwTickCountDeadline TDWORD
	FdwTrackFlags        TDWORD
	FdwClassContext      TDWORD
	Flocale              TLCID
	FpServerInfo         uintptr
}

type TBIND_OPTS3 = struct {
	FcbStruct            TDWORD
	FgrfFlags            TDWORD
	FgrfMode             TDWORD
	FdwTickCountDeadline TDWORD
	FdwTrackFlags        TDWORD
	FdwClassContext      TDWORD
	Flocale              TLCID
	FpServerInfo         uintptr
	Fhwnd                THWND
}

type TBIN_TYPES = int32

type TBITMAP = struct {
	FbmType       TLONG
	FbmWidth      TLONG
	FbmHeight     TLONG
	FbmWidthBytes TLONG
	FbmPlanes     TWORD
	FbmBitsPixel  TWORD
	FbmBits       TLPVOID
}

type TBITMAPCOREHEADER = struct {
	FbcSize     TDWORD
	FbcWidth    TWORD
	FbcHeight   TWORD
	FbcPlanes   TWORD
	FbcBitCount TWORD
}

type TBITMAPCOREINFO = struct {
	FbmciHeader TBITMAPCOREHEADER
	FbmciColors [1]TRGBTRIPLE
}

type TBITMAPFILEHEADER = struct {
	FbfType      TWORD
	FbfSize      TDWORD
	FbfReserved1 TWORD
	FbfReserved2 TWORD
	FbfOffBits   TDWORD
}

type TBITMAPINFO = struct {
	FbmiHeader TBITMAPINFOHEADER
	FbmiColors [1]TRGBQUAD
}

type TBITMAPINFOHEADER = struct {
	FbiSize          TDWORD
	FbiWidth         TLONG
	FbiHeight        TLONG
	FbiPlanes        TWORD
	FbiBitCount      TWORD
	FbiCompression   TDWORD
	FbiSizeImage     TDWORD
	FbiXPelsPerMeter TLONG
	FbiYPelsPerMeter TLONG
	FbiClrUsed       TDWORD
	FbiClrImportant  TDWORD
}

type TBITMAPV4HEADER = struct {
	FbV4Size          TDWORD
	FbV4Width         TLONG
	FbV4Height        TLONG
	FbV4Planes        TWORD
	FbV4BitCount      TWORD
	FbV4V4Compression TDWORD
	FbV4SizeImage     TDWORD
	FbV4XPelsPerMeter TLONG
	FbV4YPelsPerMeter TLONG
	FbV4ClrUsed       TDWORD
	FbV4ClrImportant  TDWORD
	FbV4RedMask       TDWORD
	FbV4GreenMask     TDWORD
	FbV4BlueMask      TDWORD
	FbV4AlphaMask     TDWORD
	FbV4CSType        TDWORD
	FbV4Endpoints     TCIEXYZTRIPLE
	FbV4GammaRed      TDWORD
	FbV4GammaGreen    TDWORD
	FbV4GammaBlue     TDWORD
}

type TBITMAPV5HEADER = struct {
	FbV5Size          TDWORD
	FbV5Width         TLONG
	FbV5Height        TLONG
	FbV5Planes        TWORD
	FbV5BitCount      TWORD
	FbV5Compression   TDWORD
	FbV5SizeImage     TDWORD
	FbV5XPelsPerMeter TLONG
	FbV5YPelsPerMeter TLONG
	FbV5ClrUsed       TDWORD
	FbV5ClrImportant  TDWORD
	FbV5RedMask       TDWORD
	FbV5GreenMask     TDWORD
	FbV5BlueMask      TDWORD
	FbV5AlphaMask     TDWORD
	FbV5CSType        TDWORD
	FbV5Endpoints     TCIEXYZTRIPLE
	FbV5GammaRed      TDWORD
	FbV5GammaGreen    TDWORD
	FbV5GammaBlue     TDWORD
	FbV5Intent        TDWORD
	FbV5ProfileData   TDWORD
	FbV5ProfileSize   TDWORD
	FbV5Reserved      TDWORD
}

type TBLENDFUNCTION = struct {
	FBlendOp             TBYTE
	FBlendFlags          TBYTE
	FSourceConstantAlpha TBYTE
	FAlphaFormat         TBYTE
}

type TBLOB = struct {
	FcbSize    TULONG
	FpBlobData uintptr
}

type TBLOBHEADER = struct {
	FbType    TBYTE
	FbVersion TBYTE
	Freserved TWORD
	FaiKeyAlg TALG_ID
}

type TBOOL = int32

type TBOOLEAN = uint8

type TBORDERWIDTHS = struct {
	Fleft   TLONG
	Ftop    TLONG
	Fright  TLONG
	Fbottom TLONG
}

type TBSCF = int32

type TBSMINFO = struct {
	FcbSize TUINT
	Fhdesk  THDESK
	Fhwnd   THWND
	Fluid   TLUID
}

type TBSTR = uintptr

type TBSTRBLOB = struct {
	FcbSize TULONG
	FpData  uintptr
}

const TBS_SUCCESS = 0

type TBULK_SECURITY_TEST_DATA = struct {
	FDesiredAccess TACCESS_MASK
	FSecurityIds   [1]TDWORD
}

type TBYTE = uint8

type TBYTE_BLOB = struct {
	FclSize TULONG
	FabData [1]Tbyte
}

type TBYTE_SIZEDARR = struct {
	FclSize TULONG
	FpData  uintptr
}

type TBY_HANDLE_FILE_INFORMATION = struct {
	FdwFileAttributes     TDWORD
	FftCreationTime       TFILETIME
	FftLastAccessTime     TFILETIME
	FftLastWriteTime      TFILETIME
	FdwVolumeSerialNumber TDWORD
	FnFileSizeHigh        TDWORD
	FnFileSizeLow         TDWORD
	FnNumberOfLinks       TDWORD
	FnFileIndexHigh       TDWORD
	FnFileIndexLow        TDWORD
}

type TBinaryParam = struct {
	FBuffer uintptr
	FSize   int16
}

type TCABOOL = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCABSTR = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCABSTRBLOB = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAC = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCACHE_DESCRIPTOR = struct {
	FLevel         TBYTE
	FAssociativity TBYTE
	FLineSize      TWORD
	FSize          TDWORD
	FType          TPROCESSOR_CACHE_TYPE
}

type TCACHE_RELATIONSHIP = struct {
	FLevel         TBYTE
	FAssociativity TBYTE
	FLineSize      TWORD
	FCacheSize     TDWORD
	FType          TPROCESSOR_CACHE_TYPE
	FReserved      [20]TBYTE
	FGroupMask     TGROUP_AFFINITY
}

type TCACLIPDATA = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCACLSID = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCACY = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCADATE = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCADBL = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAFILETIME = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAFLT = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAH = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAI = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAL = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCALID = uint32

type TCALINFO_ENUMPROCA = uintptr

type TCALINFO_ENUMPROCEXA = uintptr

type TCALINFO_ENUMPROCEXEX = uintptr

type TCALINFO_ENUMPROCEXW = uintptr

type TCALINFO_ENUMPROCW = uintptr

type TCALLCONV = int32

type TCALLTYPE = int32

type TCALPSTR = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCALPWSTR = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCALTYPE = uint32

type TCANDIDATEFORM = struct {
	FdwIndex      TDWORD
	FdwStyle      TDWORD
	FptCurrentPos TPOINT
	FrcArea       TRECT
}

type TCANDIDATELIST = struct {
	FdwSize      TDWORD
	FdwStyle     TDWORD
	FdwCount     TDWORD
	FdwSelection TDWORD
	FdwPageStart TDWORD
	FdwPageSize  TDWORD
	FdwOffset    [1]TDWORD
}

type TCAPROPVARIANT = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCASCODE = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAUB = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAUH = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAUI = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCAUL = struct {
	FcElems TULONG
	FpElems uintptr
}

type TCBTACTIVATESTRUCT = struct {
	FfMouse     TWINBOOL
	FhWndActive THWND
}

type TCBT_CREATEWND = struct {
	Flpcs            uintptr
	FhwndInsertAfter THWND
}

type TCBT_CREATEWNDA = struct {
	Flpcs            uintptr
	FhwndInsertAfter THWND
}

type TCBT_CREATEWNDW = struct {
	Flpcs            uintptr
	FhwndInsertAfter THWND
}

type TCCERT_STORE_PROV_FIND_INFO = struct {
	FcbSize                   TDWORD
	FdwMsgAndCertEncodingType TDWORD
	FdwFindFlags              TDWORD
	FdwFindType               TDWORD
	FpvFindPara               uintptr
}

type TCCHAR = int8

type TCERT_ACCESS_DESCRIPTION = struct {
	FpszAccessMethod TLPSTR
	FAccessLocation  TCERT_ALT_NAME_ENTRY
}

type TCERT_ALT_NAME_INFO = struct {
	FcAltEntry  TDWORD
	FrgAltEntry TPCERT_ALT_NAME_ENTRY
}

type TCERT_AUTHORITY_INFO_ACCESS = struct {
	FcAccDescr  TDWORD
	FrgAccDescr TPCERT_ACCESS_DESCRIPTION
}

type TCERT_AUTHORITY_KEY_ID2_INFO = struct {
	FKeyId                     TCRYPT_DATA_BLOB
	FAuthorityCertIssuer       TCERT_ALT_NAME_INFO
	FAuthorityCertSerialNumber TCRYPT_INTEGER_BLOB
}

type TCERT_AUTHORITY_KEY_ID_INFO = struct {
	FKeyId            TCRYPT_DATA_BLOB
	FCertIssuer       TCERT_NAME_BLOB
	FCertSerialNumber TCRYPT_INTEGER_BLOB
}

type TCERT_BASIC_CONSTRAINTS2_INFO = struct {
	FfCA                 TWINBOOL
	FfPathLenConstraint  TWINBOOL
	FdwPathLenConstraint TDWORD
}

type TCERT_BASIC_CONSTRAINTS_INFO = struct {
	FSubjectType          TCRYPT_BIT_BLOB
	FfPathLenConstraint   TWINBOOL
	FdwPathLenConstraint  TDWORD
	FcSubtreesConstraint  TDWORD
	FrgSubtreesConstraint uintptr
}

type TCERT_BIOMETRIC_EXT_INFO = struct {
	FcBiometricData  TDWORD
	FrgBiometricData TPCERT_BIOMETRIC_DATA
}

type TCERT_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCERT_CHAIN = struct {
	FcCerts         TDWORD
	Fcerts          TPCERT_BLOB
	FkeyLocatorInfo TCRYPT_KEY_PROV_INFO
}

type TCERT_CHAIN_CONTEXT = struct {
	FcbSize                      TDWORD
	FTrustStatus                 TCERT_TRUST_STATUS
	FcChain                      TDWORD
	FrgpChain                    uintptr
	FcLowerQualityChainContext   TDWORD
	FrgpLowerQualityChainContext uintptr
	FfHasRevocationFreshnessTime TWINBOOL
	FdwRevocationFreshnessTime   TDWORD
	FdwCreateFlags               TDWORD
	FChainId                     TGUID
}

type TCERT_CHAIN_ELEMENT = struct {
	FcbSize                TDWORD
	FpCertContext          TPCCERT_CONTEXT
	FTrustStatus           TCERT_TRUST_STATUS
	FpRevocationInfo       TPCERT_REVOCATION_INFO
	FpIssuanceUsage        TPCERT_ENHKEY_USAGE
	FpApplicationUsage     TPCERT_ENHKEY_USAGE
	FpwszExtendedErrorInfo TLPCWSTR
}

type TCERT_CHAIN_ENGINE_CONFIG = struct {
	FcbSize                    TDWORD
	FhRestrictedRoot           THCERTSTORE
	FhRestrictedTrust          THCERTSTORE
	FhRestrictedOther          THCERTSTORE
	FcAdditionalStore          TDWORD
	FrghAdditionalStore        uintptr
	FdwFlags                   TDWORD
	FdwUrlRetrievalTimeout     TDWORD
	FMaximumCachedCertificates TDWORD
	FCycleDetectionModulus     TDWORD
	FhExclusiveRoot            THCERTSTORE
	FhExclusiveTrustedPeople   THCERTSTORE
	FdwExclusiveFlags          TDWORD
}

type TCERT_CHAIN_FIND_BY_ISSUER_PARA = struct {
	FcbSize                   TDWORD
	FpszUsageIdentifier       TLPCSTR
	FdwKeySpec                TDWORD
	FdwAcquirePrivateKeyFlags TDWORD
	FcIssuer                  TDWORD
	FrgIssuer                 uintptr
	FpfnFindCallback          TPFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK
	FpvFindArg                uintptr
}

type TCERT_CHAIN_FIND_ISSUER_PARA = struct {
	FcbSize                   TDWORD
	FpszUsageIdentifier       TLPCSTR
	FdwKeySpec                TDWORD
	FdwAcquirePrivateKeyFlags TDWORD
	FcIssuer                  TDWORD
	FrgIssuer                 uintptr
	FpfnFindCallback          TPFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK
	FpvFindArg                uintptr
}

type TCERT_CHAIN_PARA = struct {
	FcbSize         TDWORD
	FRequestedUsage TCERT_USAGE_MATCH
}

type TCERT_CHAIN_POLICY_PARA = struct {
	FcbSize            TDWORD
	FdwFlags           TDWORD
	FpvExtraPolicyPara uintptr
}

type TCERT_CHAIN_POLICY_STATUS = struct {
	FcbSize              TDWORD
	FdwError             TDWORD
	FlChainIndex         TLONG
	FlElementIndex       TLONG
	FpvExtraPolicyStatus uintptr
}

type TCERT_CONTEXT = struct {
	FdwCertEncodingType TDWORD
	FpbCertEncoded      uintptr
	FcbCertEncoded      TDWORD
	FpCertInfo          TPCERT_INFO
	FhCertStore         THCERTSTORE
}

type TCERT_CREATE_CONTEXT_PARA = struct {
	FcbSize  TDWORD
	FpfnFree TPFN_CRYPT_FREE
	FpvFree  uintptr
	FpfnSort TPFN_CERT_CREATE_CONTEXT_SORT_FUNC
	FpvSort  uintptr
}

type TCERT_CRL_CONTEXT_PAIR = struct {
	FpCertContext TPCCERT_CONTEXT
	FpCrlContext  TPCCRL_CONTEXT
}

type TCERT_DH_PARAMETERS = struct {
	Fp TCRYPT_UINT_BLOB
	Fg TCRYPT_UINT_BLOB
}

type TCERT_DSS_PARAMETERS = struct {
	Fp TCRYPT_UINT_BLOB
	Fq TCRYPT_UINT_BLOB
	Fg TCRYPT_UINT_BLOB
}

type TCERT_ECC_SIGNATURE = struct {
	Fr TCRYPT_UINT_BLOB
	Fs TCRYPT_UINT_BLOB
}

type TCERT_ENHKEY_USAGE = struct {
	FcUsageIdentifier     TDWORD
	FrgpszUsageIdentifier uintptr
}

type TCERT_EXTENSION = struct {
	FpszObjId  TLPSTR
	FfCritical TWINBOOL
	FValue     TCRYPT_OBJID_BLOB
}

type TCERT_EXTENSIONS = struct {
	FcExtension  TDWORD
	FrgExtension TPCERT_EXTENSION
}

type TCERT_FORTEZZA_DATA_PROP = struct {
	FSerialNumber [8]uint8
	FCertIndex    int32
	FCertLabel    [36]uint8
}

type TCERT_GENERAL_SUBTREE = struct {
	FBase      TCERT_ALT_NAME_ENTRY
	FdwMinimum TDWORD
	FfMaximum  TWINBOOL
	FdwMaximum TDWORD
}

type TCERT_HASHED_URL = struct {
	FHashAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FHash          TCRYPT_HASH_BLOB
	FpwszUrl       TLPWSTR
}

type TCERT_INFO = struct {
	FdwVersion            TDWORD
	FSerialNumber         TCRYPT_INTEGER_BLOB
	FSignatureAlgorithm   TCRYPT_ALGORITHM_IDENTIFIER
	FIssuer               TCERT_NAME_BLOB
	FNotBefore            TFILETIME
	FNotAfter             TFILETIME
	FSubject              TCERT_NAME_BLOB
	FSubjectPublicKeyInfo TCERT_PUBLIC_KEY_INFO
	FIssuerUniqueId       TCRYPT_BIT_BLOB
	FSubjectUniqueId      TCRYPT_BIT_BLOB
	FcExtension           TDWORD
	FrgExtension          TPCERT_EXTENSION
}

type TCERT_ISSUER_SERIAL_NUMBER = struct {
	FIssuer       TCERT_NAME_BLOB
	FSerialNumber TCRYPT_INTEGER_BLOB
}

type TCERT_KEYGEN_REQUEST_INFO = struct {
	FdwVersion            TDWORD
	FSubjectPublicKeyInfo TCERT_PUBLIC_KEY_INFO
	FpwszChallengeString  TLPWSTR
}

type TCERT_KEY_ATTRIBUTES_INFO = struct {
	FKeyId                  TCRYPT_DATA_BLOB
	FIntendedKeyUsage       TCRYPT_BIT_BLOB
	FpPrivateKeyUsagePeriod TPCERT_PRIVATE_KEY_VALIDITY
}

type TCERT_KEY_USAGE_RESTRICTION_INFO = struct {
	FcCertPolicyId      TDWORD
	FrgCertPolicyId     TPCERT_POLICY_ID
	FRestrictedKeyUsage TCRYPT_BIT_BLOB
}

type TCERT_LDAP_STORE_OPENED_PARA = struct {
	FpvLdapSessionHandle uintptr
	FpwszLdapUrl         TLPCWSTR
}

type TCERT_LOGOTYPE_AUDIO = struct {
	FLogotypeDetails    TCERT_LOGOTYPE_DETAILS
	FpLogotypeAudioInfo TPCERT_LOGOTYPE_AUDIO_INFO
}

type TCERT_LOGOTYPE_AUDIO_INFO = struct {
	FdwFileSize   TDWORD
	FdwPlayTime   TDWORD
	FdwChannels   TDWORD
	FdwSampleRate TDWORD
	FpwszLanguage TLPWSTR
}

type TCERT_LOGOTYPE_DATA = struct {
	FcLogotypeImage  TDWORD
	FrgLogotypeImage TPCERT_LOGOTYPE_IMAGE
	FcLogotypeAudio  TDWORD
	FrgLogotypeAudio TPCERT_LOGOTYPE_AUDIO
}

type TCERT_LOGOTYPE_DETAILS = struct {
	FpwszMimeType TLPWSTR
	FcHashedUrl   TDWORD
	FrgHashedUrl  TPCERT_HASHED_URL
}

type TCERT_LOGOTYPE_EXT_INFO = struct {
	FcCommunityLogo  TDWORD
	FrgCommunityLogo TPCERT_LOGOTYPE_INFO
	FpIssuerLogo     TPCERT_LOGOTYPE_INFO
	FpSubjectLogo    TPCERT_LOGOTYPE_INFO
	FcOtherLogo      TDWORD
	FrgOtherLogo     TPCERT_OTHER_LOGOTYPE_INFO
}

type TCERT_LOGOTYPE_IMAGE = struct {
	FLogotypeDetails    TCERT_LOGOTYPE_DETAILS
	FpLogotypeImageInfo TPCERT_LOGOTYPE_IMAGE_INFO
}

type TCERT_LOGOTYPE_IMAGE_INFO = struct {
	FdwLogotypeImageInfoChoice       TDWORD
	FdwFileSize                      TDWORD
	FdwXSize                         TDWORD
	FdwYSize                         TDWORD
	FdwLogotypeImageResolutionChoice TDWORD
	F__ccgo5_20                      struct {
		FdwTableSize [0]TDWORD
		FdwNumBits   TDWORD
	}
	FpwszLanguage TLPWSTR
}

type TCERT_LOGOTYPE_REFERENCE = struct {
	FcHashedUrl  TDWORD
	FrgHashedUrl TPCERT_HASHED_URL
}

type TCERT_NAME_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCERT_NAME_CONSTRAINTS_INFO = struct {
	FcPermittedSubtree  TDWORD
	FrgPermittedSubtree TPCERT_GENERAL_SUBTREE
	FcExcludedSubtree   TDWORD
	FrgExcludedSubtree  TPCERT_GENERAL_SUBTREE
}

type TCERT_NAME_INFO = struct {
	FcRDN  TDWORD
	FrgRDN TPCERT_RDN
}

type TCERT_NAME_VALUE = struct {
	FdwValueType TDWORD
	FValue       TCERT_RDN_VALUE_BLOB
}

type TCERT_OR_CRL_BLOB = struct {
	FdwChoice  TDWORD
	FcbEncoded TDWORD
	FpbEncoded uintptr
}

type TCERT_OR_CRL_BUNDLE = struct {
	FcItem  TDWORD
	FrgItem TPCERT_OR_CRL_BLOB
}

type TCERT_OTHER_LOGOTYPE_INFO = struct {
	FpszObjId     TLPSTR
	FLogotypeInfo TCERT_LOGOTYPE_INFO
}

type TCERT_OTHER_NAME = struct {
	FpszObjId TLPSTR
	FValue    TCRYPT_OBJID_BLOB
}

type TCERT_PAIR = struct {
	FForward TCERT_BLOB
	FReverse TCERT_BLOB
}

type TCERT_PHYSICAL_STORE_INFO = struct {
	FcbSize               TDWORD
	FpszOpenStoreProvider TLPSTR
	FdwOpenEncodingType   TDWORD
	FdwOpenFlags          TDWORD
	FOpenParameters       TCRYPT_DATA_BLOB
	FdwFlags              TDWORD
	FdwPriority           TDWORD
}

type TCERT_POLICIES_INFO = struct {
	FcPolicyInfo  TDWORD
	FrgPolicyInfo uintptr
}

type TCERT_POLICY95_QUALIFIER1 = struct {
	FpszPracticesReference  TLPWSTR
	FpszNoticeIdentifier    TLPSTR
	FpszNSINoticeIdentifier TLPSTR
	FcCPSURLs               TDWORD
	FrgCPSURLs              uintptr
}

type TCERT_POLICY_CONSTRAINTS_INFO = struct {
	FfRequireExplicitPolicy           TWINBOOL
	FdwRequireExplicitPolicySkipCerts TDWORD
	FfInhibitPolicyMapping            TWINBOOL
	FdwInhibitPolicyMappingSkipCerts  TDWORD
}

type TCERT_POLICY_ID = struct {
	FcCertPolicyElementId     TDWORD
	FrgpszCertPolicyElementId uintptr
}

type TCERT_POLICY_INFO = struct {
	FpszPolicyIdentifier TLPSTR
	FcPolicyQualifier    TDWORD
	FrgPolicyQualifier   uintptr
}

type TCERT_POLICY_MAPPING = struct {
	FpszIssuerDomainPolicy  TLPSTR
	FpszSubjectDomainPolicy TLPSTR
}

type TCERT_POLICY_MAPPINGS_INFO = struct {
	FcPolicyMapping  TDWORD
	FrgPolicyMapping TPCERT_POLICY_MAPPING
}

type TCERT_POLICY_QUALIFIER_INFO = struct {
	FpszPolicyQualifierId TLPSTR
	FQualifier            TCRYPT_OBJID_BLOB
}

type TCERT_POLICY_QUALIFIER_NOTICE_REFERENCE = struct {
	FpszOrganization TLPSTR
	FcNoticeNumbers  TDWORD
	FrgNoticeNumbers uintptr
}

type TCERT_POLICY_QUALIFIER_USER_NOTICE = struct {
	FpNoticeReference uintptr
	FpszDisplayText   TLPWSTR
}

type TCERT_PRIVATE_KEY_VALIDITY = struct {
	FNotBefore TFILETIME
	FNotAfter  TFILETIME
}

type TCERT_PUBLIC_KEY_INFO = struct {
	FAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FPublicKey TCRYPT_BIT_BLOB
}

type TCERT_QC_STATEMENT = struct {
	FpszStatementId TLPSTR
	FStatementInfo  TCRYPT_OBJID_BLOB
}

type TCERT_QC_STATEMENTS_EXT_INFO = struct {
	FcStatement  TDWORD
	FrgStatement TPCERT_QC_STATEMENT
}

type TCERT_RDN = struct {
	FcRDNAttr  TDWORD
	FrgRDNAttr TPCERT_RDN_ATTR
}

type TCERT_RDN_ATTR = struct {
	FpszObjId    TLPSTR
	FdwValueType TDWORD
	FValue       TCERT_RDN_VALUE_BLOB
}

type TCERT_RDN_VALUE_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCERT_REGISTRY_STORE_CLIENT_GPT_PARA = struct {
	FhKeyBase    THKEY
	FpwszRegPath TLPWSTR
}

type TCERT_REGISTRY_STORE_ROAMING_PARA = struct {
	FhKey               THKEY
	FpwszStoreDirectory TLPWSTR
}

type TCERT_REQUEST_INFO = struct {
	FdwVersion            TDWORD
	FSubject              TCERT_NAME_BLOB
	FSubjectPublicKeyInfo TCERT_PUBLIC_KEY_INFO
	FcAttribute           TDWORD
	FrgAttribute          TPCRYPT_ATTRIBUTE
}

type TCERT_REVOCATION_CHAIN_PARA = struct {
	FcbSize                     TDWORD
	FhChainEngine               THCERTCHAINENGINE
	FhAdditionalStore           THCERTSTORE
	FdwChainFlags               TDWORD
	FdwUrlRetrievalTimeout      TDWORD
	FpftCurrentTime             TLPFILETIME
	FpftCacheResync             TLPFILETIME
	FcbMaxUrlRetrievalByteCount TDWORD
}

type TCERT_REVOCATION_CRL_INFO = struct {
	FcbSize           TDWORD
	FpBaseCrlContext  TPCCRL_CONTEXT
	FpDeltaCrlContext TPCCRL_CONTEXT
	FpCrlEntry        TPCRL_ENTRY
	FfDeltaCrlEntry   TWINBOOL
}

type TCERT_REVOCATION_INFO = struct {
	FcbSize             TDWORD
	FdwRevocationResult TDWORD
	FpszRevocationOid   TLPCSTR
	FpvOidSpecificInfo  TLPVOID
	FfHasFreshnessTime  TWINBOOL
	FdwFreshnessTime    TDWORD
	FpCrlInfo           TPCERT_REVOCATION_CRL_INFO
}

type TCERT_REVOCATION_PARA = struct {
	FcbSize       TDWORD
	FpIssuerCert  TPCCERT_CONTEXT
	FcCertStore   TDWORD
	FrgCertStore  uintptr
	FhCrlStore    THCERTSTORE
	FpftTimeToUse TLPFILETIME
}

type TCERT_REVOCATION_STATUS = struct {
	FcbSize            TDWORD
	FdwIndex           TDWORD
	FdwError           TDWORD
	FdwReason          TDWORD
	FfHasFreshnessTime TWINBOOL
	FdwFreshnessTime   TDWORD
}

type TCERT_SELECT_CHAIN_PARA = struct {
	FhChainEngine     THCERTCHAINENGINE
	FpTime            TPFILETIME
	FhAdditionalStore THCERTSTORE
	FpChainPara       TPCERT_CHAIN_PARA
	FdwFlags          TDWORD
}

type TCERT_SELECT_CRITERIA = struct {
	FdwType TDWORD
	FcPara  TDWORD
	FppPara uintptr
}

type TCERT_SERVER_OCSP_RESPONSE_CONTEXT = struct {
	FcbSize                TDWORD
	FpbEncodedOcspResponse uintptr
	FcbEncodedOcspResponse TDWORD
}

type TCERT_SERVER_OCSP_RESPONSE_OPEN_PARA = struct {
	FcbSize              TDWORD
	FdwFlags             TDWORD
	FpcbUsedSize         uintptr
	FpwszOcspDirectory   TPWSTR
	FpfnUpdateCallback   TPFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK
	FpvUpdateCallbackArg TPVOID
}

type TCERT_SIGNED_CONTENT_INFO = struct {
	FToBeSigned         TCRYPT_DER_BLOB
	FSignatureAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FSignature          TCRYPT_BIT_BLOB
}

type TCERT_SIMPLE_CHAIN = struct {
	FcbSize                      TDWORD
	FTrustStatus                 TCERT_TRUST_STATUS
	FcElement                    TDWORD
	FrgpElement                  uintptr
	FpTrustListInfo              TPCERT_TRUST_LIST_INFO
	FfHasRevocationFreshnessTime TWINBOOL
	FdwRevocationFreshnessTime   TDWORD
}

type TCERT_STORE_PROV_FIND_INFO = struct {
	FcbSize                   TDWORD
	FdwMsgAndCertEncodingType TDWORD
	FdwFindFlags              TDWORD
	FdwFindType               TDWORD
	FpvFindPara               uintptr
}

type TCERT_STORE_PROV_INFO = struct {
	FcbSize              TDWORD
	FcStoreProvFunc      TDWORD
	FrgpvStoreProvFunc   uintptr
	FhStoreProv          THCERTSTOREPROV
	FdwStoreProvFlags    TDWORD
	FhStoreProvFuncAddr2 THCRYPTOIDFUNCADDR
}

type TCERT_STRONG_SIGN_PARA = struct {
	FcbSize       TDWORD
	FdwInfoChoice TDWORD
	F__ccgo2_8    struct {
		FpSerializedInfo [0]TPCERT_STRONG_SIGN_SERIALIZED_INFO
		FpszOID          [0]TLPSTR
		FpvInfo          uintptr
	}
}

type TCERT_STRONG_SIGN_SERIALIZED_INFO = struct {
	FdwFlags                    TDWORD
	FpwszCNGSignHashAlgids      TLPWSTR
	FpwszCNGPubKeyMinBitLengths TLPWSTR
}

type TCERT_SUBJECT_INFO_ACCESS = struct {
	FcAccDescr  TDWORD
	FrgAccDescr TPCERT_ACCESS_DESCRIPTION
}

type TCERT_SUPPORTED_ALGORITHM_INFO = struct {
	FAlgorithm            TCRYPT_ALGORITHM_IDENTIFIER
	FIntendedKeyUsage     TCRYPT_BIT_BLOB
	FIntendedCertPolicies TCERT_POLICIES_INFO
}

type TCERT_SYSTEM_STORE_INFO = struct {
	FcbSize TDWORD
}

type TCERT_TEMPLATE_EXT = struct {
	FpszObjId       TLPSTR
	FdwMajorVersion TDWORD
	FfMinorVersion  TWINBOOL
	FdwMinorVersion TDWORD
}

type TCERT_TPM_SPECIFICATION_INFO = struct {
	FpwszFamily TLPWSTR
	FdwLevel    TDWORD
	FdwRevision TDWORD
}

type TCERT_TRUST_LIST_INFO = struct {
	FcbSize      TDWORD
	FpCtlEntry   TPCTL_ENTRY
	FpCtlContext TPCCTL_CONTEXT
}

type TCERT_TRUST_STATUS = struct {
	FdwErrorStatus TDWORD
	FdwInfoStatus  TDWORD
}

type TCERT_USAGE_MATCH = struct {
	FdwType TDWORD
	FUsage  TCERT_ENHKEY_USAGE
}

type TCERT_X942_DH_PARAMETERS = struct {
	Fp                 TCRYPT_UINT_BLOB
	Fg                 TCRYPT_UINT_BLOB
	Fq                 TCRYPT_UINT_BLOB
	Fj                 TCRYPT_UINT_BLOB
	FpValidationParams TPCERT_X942_DH_VALIDATION_PARAMS
}

type TCERT_X942_DH_VALIDATION_PARAMS = struct {
	Fseed        TCRYPT_BIT_BLOB
	FpgenCounter TDWORD
}

type TCFG_CALL_TARGET_INFO = struct {
	FOffset TULONG_PTR
	FFlags  TULONG_PTR
}

type TCHANGEFILTERSTRUCT = struct {
	FcbSize    TDWORD
	FExtStatus TDWORD
}

type TCHANGEKIND = int32

type TCHANGER_DEVICE_PROBLEM_TYPE = int32

type TCHANGER_ELEMENT = struct {
	FElementType    TELEMENT_TYPE
	FElementAddress TDWORD
}

type TCHANGER_ELEMENT_LIST = struct {
	FElement          TCHANGER_ELEMENT
	FNumberOfElements TDWORD
}

type TCHANGER_ELEMENT_STATUS = struct {
	FElement           TCHANGER_ELEMENT
	FSrcElementAddress TCHANGER_ELEMENT
	FFlags             TDWORD
	FExceptionCode     TDWORD
	FTargetId          TBYTE
	FLun               TBYTE
	FReserved          TWORD
	FPrimaryVolumeID   [36]TBYTE
	FAlternateVolumeID [36]TBYTE
}

type TCHANGER_ELEMENT_STATUS_EX = struct {
	FElement               TCHANGER_ELEMENT
	FSrcElementAddress     TCHANGER_ELEMENT
	FFlags                 TDWORD
	FExceptionCode         TDWORD
	FTargetId              TBYTE
	FLun                   TBYTE
	FReserved              TWORD
	FPrimaryVolumeID       [36]TBYTE
	FAlternateVolumeID     [36]TBYTE
	FVendorIdentification  [8]TBYTE
	FProductIdentification [16]TBYTE
	FSerialNumber          [32]TBYTE
}

type TCHANGER_EXCHANGE_MEDIUM = struct {
	FTransport    TCHANGER_ELEMENT
	FSource       TCHANGER_ELEMENT
	FDestination1 TCHANGER_ELEMENT
	FDestination2 TCHANGER_ELEMENT
	FFlip1        TBOOLEAN
	FFlip2        TBOOLEAN
}

type TCHANGER_INITIALIZE_ELEMENT_STATUS = struct {
	FElementList TCHANGER_ELEMENT_LIST
	FBarCodeScan TBOOLEAN
}

type TCHANGER_MOVE_MEDIUM = struct {
	FTransport   TCHANGER_ELEMENT
	FSource      TCHANGER_ELEMENT
	FDestination TCHANGER_ELEMENT
	FFlip        TBOOLEAN
}

type TCHANGER_PRODUCT_DATA = struct {
	FVendorId     [8]TBYTE
	FProductId    [16]TBYTE
	FRevision     [4]TBYTE
	FSerialNumber [32]TBYTE
	FDeviceType   TBYTE
}

type TCHANGER_READ_ELEMENT_STATUS = struct {
	FElementList   TCHANGER_ELEMENT_LIST
	FVolumeTagInfo TBOOLEAN
}

type TCHANGER_SEND_VOLUME_TAG_INFORMATION = struct {
	FStartingElement  TCHANGER_ELEMENT
	FActionCode       TDWORD
	FVolumeIDTemplate [40]TBYTE
}

type TCHANGER_SET_ACCESS = struct {
	FElement TCHANGER_ELEMENT
	FControl TDWORD
}

type TCHANGER_SET_POSITION = struct {
	FTransport   TCHANGER_ELEMENT
	FDestination TCHANGER_ELEMENT
	FFlip        TBOOLEAN
}

type TCHAR = int8

type TCHARSETINFO = struct {
	FciCharset TUINT
	FciACP     TUINT
	Ffs        TFONTSIGNATURE
}

type TCHAR_INFO = struct {
	FChar struct {
		FAsciiChar   [0]TCHAR
		FUnicodeChar TWCHAR
	}
	FAttributes TWORD
}

type TCHOOSECOLOR = struct {
	FlStructSize    TDWORD
	FhwndOwner      THWND
	FhInstance      THWND
	FrgbResult      TCOLORREF
	FlpCustColors   uintptr
	FFlags          TDWORD
	FlCustData      TLPARAM
	FlpfnHook       TLPCCHOOKPROC
	FlpTemplateName TLPCSTR
}

type TCHOOSECOLORA = struct {
	FlStructSize    TDWORD
	FhwndOwner      THWND
	FhInstance      THWND
	FrgbResult      TCOLORREF
	FlpCustColors   uintptr
	FFlags          TDWORD
	FlCustData      TLPARAM
	FlpfnHook       TLPCCHOOKPROC
	FlpTemplateName TLPCSTR
}

type TCHOOSECOLORW = struct {
	FlStructSize    TDWORD
	FhwndOwner      THWND
	FhInstance      THWND
	FrgbResult      TCOLORREF
	FlpCustColors   uintptr
	FFlags          TDWORD
	FlCustData      TLPARAM
	FlpfnHook       TLPCCHOOKPROC
	FlpTemplateName TLPCWSTR
}

type TCHOOSEFONT = struct {
	FlStructSize            TDWORD
	FhwndOwner              THWND
	FhDC                    THDC
	FlpLogFont              TLPLOGFONTA
	FiPointSize             TINT
	FFlags                  TDWORD
	FrgbColors              TCOLORREF
	FlCustData              TLPARAM
	FlpfnHook               TLPCFHOOKPROC
	FlpTemplateName         TLPCSTR
	FhInstance              THINSTANCE
	FlpszStyle              TLPSTR
	FnFontType              TWORD
	F___MISSING_ALIGNMENT__ TWORD
	FnSizeMin               TINT
	FnSizeMax               TINT
}

type TCHOOSEFONTA = struct {
	FlStructSize            TDWORD
	FhwndOwner              THWND
	FhDC                    THDC
	FlpLogFont              TLPLOGFONTA
	FiPointSize             TINT
	FFlags                  TDWORD
	FrgbColors              TCOLORREF
	FlCustData              TLPARAM
	FlpfnHook               TLPCFHOOKPROC
	FlpTemplateName         TLPCSTR
	FhInstance              THINSTANCE
	FlpszStyle              TLPSTR
	FnFontType              TWORD
	F___MISSING_ALIGNMENT__ TWORD
	FnSizeMin               TINT
	FnSizeMax               TINT
}

type TCHOOSEFONTW = struct {
	FlStructSize            TDWORD
	FhwndOwner              THWND
	FhDC                    THDC
	FlpLogFont              TLPLOGFONTW
	FiPointSize             TINT
	FFlags                  TDWORD
	FrgbColors              TCOLORREF
	FlCustData              TLPARAM
	FlpfnHook               TLPCFHOOKPROC
	FlpTemplateName         TLPCWSTR
	FhInstance              THINSTANCE
	FlpszStyle              TLPWSTR
	FnFontType              TWORD
	F___MISSING_ALIGNMENT__ TWORD
	FnSizeMin               TINT
	FnSizeMax               TINT
}

type TCIEXYZ = struct {
	FciexyzX TFXPT2DOT30
	FciexyzY TFXPT2DOT30
	FciexyzZ TFXPT2DOT30
}

type TCIEXYZTRIPLE = struct {
	FciexyzRed   TCIEXYZ
	FciexyzGreen TCIEXYZ
	FciexyzBlue  TCIEXYZ
}

type TCIP_STATUS = int32

const TCI_SRCCHARSET = 1

const TCI_SRCCODEPAGE = 2

const TCI_SRCFONTSIG = 3

const TCI_SRCLOCALE = 4096

type TCLAIM_SECURITY_ATTRIBUTES_INFORMATION = struct {
	FVersion        TWORD
	FReserved       TWORD
	FAttributeCount TDWORD
	FAttribute      struct {
		FpAttributeV1 TPCLAIM_SECURITY_ATTRIBUTE_V1
	}
}

type TCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = struct {
	FpValue      TPVOID
	FValueLength TDWORD
}

type TCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = struct {
	FName       TDWORD
	FValueType  TWORD
	FReserved   TWORD
	FFlags      TDWORD
	FValueCount TDWORD
	FValues     struct {
		FpUint64      [0][1]TDWORD
		FppString     [0][1]TDWORD
		FpFqbn        [0][1]TDWORD
		FpOctetString [0][1]TDWORD
		FpInt64       [1]TDWORD
	}
}

type TCLAIM_SECURITY_ATTRIBUTE_V1 = struct {
	FName       TPWSTR
	FValueType  TWORD
	FReserved   TWORD
	FFlags      TDWORD
	FValueCount TDWORD
	FValues     struct {
		FpUint64      [0]TPDWORD64
		FppString     [0]uintptr
		FpFqbn        [0]TPCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE
		FpOctetString [0]TPCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE
		FpInt64       TPLONG64
	}
}

type TCLASS_MEDIA_CHANGE_CONTEXT = struct {
	FMediaChangeCount TDWORD
	FNewState         TDWORD
}

type TCLEANLOCALSTORAGE = struct {
	FpInterface uintptr
	FpStorage   TPVOID
	Fflags      TDWORD
}

type TCLIENTCREATESTRUCT = struct {
	FhWindowMenu  THANDLE
	FidFirstChild TUINT
}

type TCLIENT_CALL_RETURN = struct {
	FSimple  [0]TLONG_PTR
	FPointer uintptr
}

type TCLIPDATA = struct {
	FcbSize    TULONG
	FulClipFmt TLONG
	FpClipData uintptr
}

type TCLIPFORMAT = uint16

type TCLSCTX = int32

type TCLSID = struct {
	FData1 uint32
	FData2 uint16
	FData3 uint16
	FData4 [8]uint8
}

type TCMC_ADD_ATTRIBUTES_INFO = struct {
	FdwCmcDataReference TDWORD
	FcCertReference     TDWORD
	FrgdwCertReference  uintptr
	FcAttribute         TDWORD
	FrgAttribute        TPCRYPT_ATTRIBUTE
}

type TCMC_ADD_EXTENSIONS_INFO = struct {
	FdwCmcDataReference TDWORD
	FcCertReference     TDWORD
	FrgdwCertReference  uintptr
	FcExtension         TDWORD
	FrgExtension        TPCERT_EXTENSION
}

type TCMC_DATA_INFO = struct {
	FcTaggedAttribute    TDWORD
	FrgTaggedAttribute   TPCMC_TAGGED_ATTRIBUTE
	FcTaggedRequest      TDWORD
	FrgTaggedRequest     TPCMC_TAGGED_REQUEST
	FcTaggedContentInfo  TDWORD
	FrgTaggedContentInfo TPCMC_TAGGED_CONTENT_INFO
	FcTaggedOtherMsg     TDWORD
	FrgTaggedOtherMsg    TPCMC_TAGGED_OTHER_MSG
}

type TCMC_PEND_INFO = struct {
	FPendToken TCRYPT_DATA_BLOB
	FPendTime  TFILETIME
}

type TCMC_RESPONSE_INFO = struct {
	FcTaggedAttribute    TDWORD
	FrgTaggedAttribute   TPCMC_TAGGED_ATTRIBUTE
	FcTaggedContentInfo  TDWORD
	FrgTaggedContentInfo TPCMC_TAGGED_CONTENT_INFO
	FcTaggedOtherMsg     TDWORD
	FrgTaggedOtherMsg    TPCMC_TAGGED_OTHER_MSG
}

type TCMC_TAGGED_ATTRIBUTE = struct {
	FdwBodyPartID TDWORD
	FAttribute    TCRYPT_ATTRIBUTE
}

type TCMC_TAGGED_CERT_REQUEST = struct {
	FdwBodyPartID      TDWORD
	FSignedCertRequest TCRYPT_DER_BLOB
}

type TCMC_TAGGED_CONTENT_INFO = struct {
	FdwBodyPartID       TDWORD
	FEncodedContentInfo TCRYPT_DER_BLOB
}

type TCMC_TAGGED_OTHER_MSG = struct {
	FdwBodyPartID TDWORD
	FpszObjId     TLPSTR
	FValue        TCRYPT_OBJID_BLOB
}

type TCMSG_ATTR = struct {
	FcAttr  TDWORD
	FrgAttr TPCRYPT_ATTRIBUTE
}

type TCMSG_CMS_SIGNER_INFO = struct {
	FdwVersion               TDWORD
	FSignerId                TCERT_ID
	FHashAlgorithm           TCRYPT_ALGORITHM_IDENTIFIER
	FHashEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FEncryptedHash           TCRYPT_DATA_BLOB
	FAuthAttrs               TCRYPT_ATTRIBUTES
	FUnauthAttrs             TCRYPT_ATTRIBUTES
}

type TCMSG_CNG_CONTENT_DECRYPT_INFO = struct {
	FcbSize                       TDWORD
	FContentEncryptionAlgorithm   TCRYPT_ALGORITHM_IDENTIFIER
	FpfnAlloc                     TPFN_CMSG_ALLOC
	FpfnFree                      TPFN_CMSG_FREE
	FhNCryptKey                   TNCRYPT_KEY_HANDLE
	FpbContentEncryptKey          uintptr
	FcbContentEncryptKey          TDWORD
	FhCNGContentEncryptKey        TBCRYPT_KEY_HANDLE
	FpbCNGContentEncryptKeyObject uintptr
}

type TCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = struct {
	FcbSize        TDWORD
	FdwSignerIndex TDWORD
	Fblob          TCRYPT_DATA_BLOB
}

type TCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = struct {
	FcbSize            TDWORD
	FdwSignerIndex     TDWORD
	FdwUnauthAttrIndex TDWORD
}

type TCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = struct {
	FcbSize        TDWORD
	FhCryptProv    THCRYPTPROV_LEGACY
	FdwSignerIndex TDWORD
	FdwSignerType  TDWORD
	FpvSigner      uintptr
}

type TCMSG_ENCRYPTED_ENCODE_INFO = struct {
	FcbSize                     TDWORD
	FContentEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FpvEncryptionAuxInfo        uintptr
}

type TCMSG_ENVELOPED_ENCODE_INFO = struct {
	FcbSize                     TDWORD
	FhCryptProv                 THCRYPTPROV_LEGACY
	FContentEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FpvEncryptionAuxInfo        uintptr
	FcRecipients                TDWORD
	FrgpRecipients              uintptr
}

type TCMSG_HASHED_ENCODE_INFO = struct {
	FcbSize        TDWORD
	FhCryptProv    THCRYPTPROV_LEGACY
	FHashAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FpvHashAuxInfo uintptr
}

type TCMSG_KEY_AGREE_KEY_ENCRYPT_INFO = struct {
	FcbSize       TDWORD
	FEncryptedKey TCRYPT_DATA_BLOB
}

type TCMSG_KEY_TRANS_ENCRYPT_INFO = struct {
	FcbSize                 TDWORD
	FdwRecipientIndex       TDWORD
	FKeyEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FEncryptedKey           TCRYPT_DATA_BLOB
	FdwFlags                TDWORD
}

type TCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = struct {
	FcbSize                 TDWORD
	FKeyEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FpvKeyEncryptionAuxInfo uintptr
	FhCryptProv             THCRYPTPROV_LEGACY
	FRecipientPublicKey     TCRYPT_BIT_BLOB
	FRecipientId            TCERT_ID
}

type TCMSG_KEY_TRANS_RECIPIENT_INFO = struct {
	FdwVersion              TDWORD
	FRecipientId            TCERT_ID
	FKeyEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FEncryptedKey           TCRYPT_DATA_BLOB
}

type TCMSG_MAIL_LIST_ENCRYPT_INFO = struct {
	FcbSize                 TDWORD
	FdwRecipientIndex       TDWORD
	FKeyEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FEncryptedKey           TCRYPT_DATA_BLOB
	FdwFlags                TDWORD
}

type TCMSG_MAIL_LIST_RECIPIENT_INFO = struct {
	FdwVersion              TDWORD
	FKeyId                  TCRYPT_DATA_BLOB
	FKeyEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FEncryptedKey           TCRYPT_DATA_BLOB
	FDate                   TFILETIME
	FpOtherAttr             TPCRYPT_ATTRIBUTE_TYPE_VALUE
}

type TCMSG_RC2_AUX_INFO = struct {
	FcbSize   TDWORD
	FdwBitLen TDWORD
}

type TCMSG_RC4_AUX_INFO = struct {
	FcbSize   TDWORD
	FdwBitLen TDWORD
}

type TCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = struct {
	FcbSize             TDWORD
	FRecipientPublicKey TCRYPT_BIT_BLOB
	FRecipientId        TCERT_ID
	FDate               TFILETIME
	FpOtherAttr         TPCRYPT_ATTRIBUTE_TYPE_VALUE
}

type TCMSG_RECIPIENT_ENCRYPTED_KEY_INFO = struct {
	FRecipientId  TCERT_ID
	FEncryptedKey TCRYPT_DATA_BLOB
	FDate         TFILETIME
	FpOtherAttr   TPCRYPT_ATTRIBUTE_TYPE_VALUE
}

type TCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = struct {
	FcbSize        TDWORD
	FSignedInfo    TCMSG_SIGNED_ENCODE_INFO
	FEnvelopedInfo TCMSG_ENVELOPED_ENCODE_INFO
}

type TCMSG_SIGNED_ENCODE_INFO = struct {
	FcbSize        TDWORD
	FcSigners      TDWORD
	FrgSigners     TPCMSG_SIGNER_ENCODE_INFO
	FcCertEncoded  TDWORD
	FrgCertEncoded TPCERT_BLOB
	FcCrlEncoded   TDWORD
	FrgCrlEncoded  TPCRL_BLOB
}

type TCMSG_SIGNER_INFO = struct {
	FdwVersion               TDWORD
	FIssuer                  TCERT_NAME_BLOB
	FSerialNumber            TCRYPT_INTEGER_BLOB
	FHashAlgorithm           TCRYPT_ALGORITHM_IDENTIFIER
	FHashEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FEncryptedHash           TCRYPT_DATA_BLOB
	FAuthAttrs               TCRYPT_ATTRIBUTES
	FUnauthAttrs             TCRYPT_ATTRIBUTES
}

type TCMSG_SP3_COMPATIBLE_AUX_INFO = struct {
	FcbSize  TDWORD
	FdwFlags TDWORD
}

type TCMSG_STREAM_INFO = struct {
	FcbContent       TDWORD
	FpfnStreamOutput TPFN_CMSG_STREAM_OUTPUT
	FpvArg           uintptr
}

type TCMS_DH_KEY_INFO = struct {
	FdwVersion          TDWORD
	FAlgid              TALG_ID
	FpszContentEncObjId TLPSTR
	FPubInfo            TCRYPT_DATA_BLOB
	FpReserved          uintptr
}

type TCMS_KEY_INFO = struct {
	FdwVersion TDWORD
	FAlgid     TALG_ID
	FpbOID     uintptr
	FcbOID     TDWORD
}

type TCM_POWER_DATA = struct {
	FPD_Size                 TDWORD
	FPD_MostRecentPowerState TDEVICE_POWER_STATE
	FPD_Capabilities         TDWORD
	FPD_D1Latency            TDWORD
	FPD_D2Latency            TDWORD
	FPD_D3Latency            TDWORD
	FPD_PowerStateMapping    [7]TDEVICE_POWER_STATE
	FPD_DeepestSystemWake    TSYSTEM_POWER_STATE
}

type TCM_Power_Data_s = TCM_POWER_DATA

type TCOAUTHIDENTITY = struct {
	FUser           uintptr
	FUserLength     TULONG
	FDomain         uintptr
	FDomainLength   TULONG
	FPassword       uintptr
	FPasswordLength TULONG
	FFlags          TULONG
}

type TCOAUTHINFO = struct {
	FdwAuthnSvc           TDWORD
	FdwAuthzSvc           TDWORD
	FpwszServerPrincName  TLPWSTR
	FdwAuthnLevel         TDWORD
	FdwImpersonationLevel TDWORD
	FpAuthIdentityData    uintptr
	FdwCapabilities       TDWORD
}

type TCODEBASEHOLD = struct {
	FcbSize      TULONG
	FszDistUnit  TLPWSTR
	FszCodeBase  TLPWSTR
	FdwVersionMS TDWORD
	FdwVersionLS TDWORD
	FdwStyle     TDWORD
}

type TCODEPAGE_ENUMPROCA = uintptr

type TCODEPAGE_ENUMPROCW = uintptr

type TCOINIT = int32

type TCOINITBASE = int32

type TCOLOR16 = uint16

type TCOLORADJUSTMENT = struct {
	FcaSize            TWORD
	FcaFlags           TWORD
	FcaIlluminantIndex TWORD
	FcaRedGamma        TWORD
	FcaGreenGamma      TWORD
	FcaBlueGamma       TWORD
	FcaReferenceBlack  TWORD
	FcaReferenceWhite  TWORD
	FcaContrast        TSHORT
	FcaBrightness      TSHORT
	FcaColorfulness    TSHORT
	FcaRedGreenTint    TSHORT
}

type TCOLORREF = uint32

type TCOMBOBOXINFO = struct {
	FcbSize      TDWORD
	FrcItem      TRECT
	FrcButton    TRECT
	FstateButton TDWORD
	FhwndCombo   THWND
	FhwndItem    THWND
	FhwndList    THWND
}

type TCOMMCONFIG = struct {
	FdwSize            TDWORD
	FwVersion          TWORD
	FwReserved         TWORD
	Fdcb               TDCB
	FdwProviderSubType TDWORD
	FdwProviderOffset  TDWORD
	FdwProviderSize    TDWORD
	FwcProviderData    [1]TWCHAR
}

type TCOMMPROP = struct {
	FwPacketLength       TWORD
	FwPacketVersion      TWORD
	FdwServiceMask       TDWORD
	FdwReserved1         TDWORD
	FdwMaxTxQueue        TDWORD
	FdwMaxRxQueue        TDWORD
	FdwMaxBaud           TDWORD
	FdwProvSubType       TDWORD
	FdwProvCapabilities  TDWORD
	FdwSettableParams    TDWORD
	FdwSettableBaud      TDWORD
	FwSettableData       TWORD
	FwSettableStopParity TWORD
	FdwCurrentTxQueue    TDWORD
	FdwCurrentRxQueue    TDWORD
	FdwProvSpec1         TDWORD
	FdwProvSpec2         TDWORD
	FwcProvChar          [1]TWCHAR
}

type TCOMMTIMEOUTS = struct {
	FReadIntervalTimeout         TDWORD
	FReadTotalTimeoutMultiplier  TDWORD
	FReadTotalTimeoutConstant    TDWORD
	FWriteTotalTimeoutMultiplier TDWORD
	FWriteTotalTimeoutConstant   TDWORD
}

type TCOMM_FAULT_OFFSETS = struct {
	FCommOffset  int16
	FFaultOffset int16
}

type TCOMPACT_VIRTUAL_DISK_FLAG = int32

type TCOMPACT_VIRTUAL_DISK_PARAMETERS = struct {
	FVersion   TCOMPACT_VIRTUAL_DISK_VERSION
	F__ccgo1_4 struct {
		FVersion1 struct {
			FReserved TULONG
		}
	}
}

type TCOMPACT_VIRTUAL_DISK_VERSION = int32

type TCOMPAREITEMSTRUCT = struct {
	FCtlType    TUINT
	FCtlID      TUINT
	FhwndItem   THWND
	FitemID1    TUINT
	FitemData1  TULONG_PTR
	FitemID2    TUINT
	FitemData2  TULONG_PTR
	FdwLocaleId TDWORD
}

type TCOMPARTMENT_ID = int32

type TCOMPATIBILITY_CONTEXT_ELEMENT = struct {
	FId   TGUID
	FType TACTCTX_COMPATIBILITY_ELEMENT_TYPE
}

type TCOMPONENT_FILTER = struct {
	FComponentFlags TDWORD
}

type TCOMPOSITIONFORM = struct {
	FdwStyle      TDWORD
	FptCurrentPos TPOINT
	FrcArea       TRECT
}

type TCOMPUTER_NAME_FORMAT = int32

type TCOMSD = int32

type TCOMSTAT = struct {
	F__ccgo0  uint32
	FcbInQue  TDWORD
	FcbOutQue TDWORD
}

type TCONDITION_VARIABLE = struct {
	FPtr TPVOID
}

type TCONFIRMSAFETY = struct {
	Fclsid   TCLSID
	FpUnk    uintptr
	FdwFlags TDWORD
}

type TCONNECTDLGSTRUCT = struct {
	FcbStructure TDWORD
	FhwndOwner   THWND
	FlpConnRes   TLPNETRESOURCEA
	FdwFlags     TDWORD
	FdwDevNum    TDWORD
}

type TCONNECTDLGSTRUCTA = struct {
	FcbStructure TDWORD
	FhwndOwner   THWND
	FlpConnRes   TLPNETRESOURCEA
	FdwFlags     TDWORD
	FdwDevNum    TDWORD
}

type TCONNECTDLGSTRUCTW = struct {
	FcbStructure TDWORD
	FhwndOwner   THWND
	FlpConnRes   TLPNETRESOURCEW
	FdwFlags     TDWORD
	FdwDevNum    TDWORD
}

type TCONSOLE_CURSOR_INFO = struct {
	FdwSize   TDWORD
	FbVisible TWINBOOL
}

type TCONSOLE_FONT_INFO = struct {
	FnFont      TDWORD
	FdwFontSize TCOORD
}

type TCONSOLE_FONT_INFOEX = struct {
	FcbSize     TULONG
	FnFont      TDWORD
	FdwFontSize TCOORD
	FFontFamily TUINT
	FFontWeight TUINT
	FFaceName   [32]TWCHAR
}

type TCONSOLE_HISTORY_INFO = struct {
	FcbSize                 TUINT
	FHistoryBufferSize      TUINT
	FNumberOfHistoryBuffers TUINT
	FdwFlags                TDWORD
}

type TCONSOLE_READCONSOLE_CONTROL = struct {
	FnLength           TULONG
	FnInitialChars     TULONG
	FdwCtrlWakeupMask  TULONG
	FdwControlKeyState TULONG
}

type TCONSOLE_SCREEN_BUFFER_INFO = struct {
	FdwSize              TCOORD
	FdwCursorPosition    TCOORD
	FwAttributes         TWORD
	FsrWindow            TSMALL_RECT
	FdwMaximumWindowSize TCOORD
}

type TCONSOLE_SCREEN_BUFFER_INFOEX = struct {
	FcbSize               TULONG
	FdwSize               TCOORD
	FdwCursorPosition     TCOORD
	FwAttributes          TWORD
	FsrWindow             TSMALL_RECT
	FdwMaximumWindowSize  TCOORD
	FwPopupAttributes     TWORD
	FbFullscreenSupported TWINBOOL
	FColorTable           [16]TCOLORREF
}

type TCONSOLE_SELECTION_INFO = struct {
	FdwFlags           TDWORD
	FdwSelectionAnchor TCOORD
	FsrSelection       TSMALL_RECT
}

type TCONVCONTEXT = struct {
	Fcb         TUINT
	FwFlags     TUINT
	FwCountryID TUINT
	FiCodePage  int32
	FdwLangID   TDWORD
	FdwSecurity TDWORD
	Fqos        TSECURITY_QUALITY_OF_SERVICE
}

type TCONVINFO = struct {
	Fcb            TDWORD
	FhUser         TDWORD_PTR
	FhConvPartner  THCONV
	FhszSvcPartner THSZ
	FhszServiceReq THSZ
	FhszTopic      THSZ
	FhszItem       THSZ
	FwFmt          TUINT
	FwType         TUINT
	FwStatus       TUINT
	FwConvst       TUINT
	FwLastError    TUINT
	FhConvList     THCONVLIST
	FConvCtxt      TCONVCONTEXT
	Fhwnd          THWND
	FhwndPartner   THWND
}

type TCOORD = struct {
	FX TSHORT
	FY TSHORT
}

type TCOPYDATASTRUCT = struct {
	FdwData TULONG_PTR
	FcbData TDWORD
	FlpData TPVOID
}

type TCOPYFILE2_COPY_PHASE = int32

type TCOPYFILE2_EXTENDED_PARAMETERS = struct {
	FdwSize            TDWORD
	FdwCopyFlags       TDWORD
	FpfCancel          uintptr
	FpProgressRoutine  TPCOPYFILE2_PROGRESS_ROUTINE
	FpvCallbackContext TPVOID
}

type TCOPYFILE2_MESSAGE_ACTION = int32

type TCOPYFILE2_MESSAGE_TYPE = int32

type TCOSERVERINFO = struct {
	FdwReserved1 TDWORD
	FpwszName    TLPWSTR
	FpAuthInfo   uintptr
	FdwReserved2 TDWORD
}

type TCOWAIT_FLAGS = int32

type TCO_MARSHALING_CONTEXT_ATTRIBUTES = int32

type TCO_MTA_USAGE_COOKIE = uintptr

type TCO_MTA_USAGE_COOKIE__ = struct {
	Funused int32
}

type TCPINFO = struct {
	FMaxCharSize TUINT
	FDefaultChar [2]TBYTE
	FLeadByte    [12]TBYTE
}

type TCPINFOEX = struct {
	FMaxCharSize        TUINT
	FDefaultChar        [2]TBYTE
	FLeadByte           [12]TBYTE
	FUnicodeDefaultChar TWCHAR
	FCodePage           TUINT
	FCodePageName       [260]TCHAR
}

type TCPINFOEXA = struct {
	FMaxCharSize        TUINT
	FDefaultChar        [2]TBYTE
	FLeadByte           [12]TBYTE
	FUnicodeDefaultChar TWCHAR
	FCodePage           TUINT
	FCodePageName       [260]TCHAR
}

type TCPINFOEXW = struct {
	FMaxCharSize        TUINT
	FDefaultChar        [2]TBYTE
	FLeadByte           [12]TBYTE
	FUnicodeDefaultChar TWCHAR
	FCodePage           TUINT
	FCodePageName       [260]TWCHAR
}

type TCPS_URLS = struct {
	FpszURL     TLPWSTR
	FpAlgorithm uintptr
	FpDigest    uintptr
}

const TCP_BSDURGENT = 28672

const TCP_NODELAY = 1

type TCREATEFILE2_EXTENDED_PARAMETERS = struct {
	FdwSize               TDWORD
	FdwFileAttributes     TDWORD
	FdwFileFlags          TDWORD
	FdwSecurityQosFlags   TDWORD
	FlpSecurityAttributes TLPSECURITY_ATTRIBUTES
	FhTemplateFile        THANDLE
}

type TCREATESTRUCT = struct {
	FlpCreateParams TLPVOID
	FhInstance      THINSTANCE
	FhMenu          THMENU
	FhwndParent     THWND
	Fcy             int32
	Fcx             int32
	Fy              int32
	Fx              int32
	Fstyle          TLONG
	FlpszName       TLPCSTR
	FlpszClass      TLPCSTR
	FdwExStyle      TDWORD
}

type TCREATESTRUCTA = struct {
	FlpCreateParams TLPVOID
	FhInstance      THINSTANCE
	FhMenu          THMENU
	FhwndParent     THWND
	Fcy             int32
	Fcx             int32
	Fy              int32
	Fx              int32
	Fstyle          TLONG
	FlpszName       TLPCSTR
	FlpszClass      TLPCSTR
	FdwExStyle      TDWORD
}

type TCREATESTRUCTW = struct {
	FlpCreateParams TLPVOID
	FhInstance      THINSTANCE
	FhMenu          THMENU
	FhwndParent     THWND
	Fcy             int32
	Fcx             int32
	Fy              int32
	Fx              int32
	Fstyle          TLONG
	FlpszName       TLPCWSTR
	FlpszClass      TLPCWSTR
	FdwExStyle      TDWORD
}

type TCREATE_DISK = struct {
	FPartitionStyle TPARTITION_STYLE
	F__ccgo1_4      struct {
		FGpt         [0]TCREATE_DISK_GPT
		FMbr         TCREATE_DISK_MBR
		F__ccgo_pad2 [16]byte
	}
}

type TCREATE_DISK_GPT = struct {
	FDiskId            TGUID
	FMaxPartitionCount TDWORD
}

type TCREATE_DISK_MBR = struct {
	FSignature TDWORD
}

type TCREATE_PROCESS_DEBUG_INFO = struct {
	FhFile                 THANDLE
	FhProcess              THANDLE
	FhThread               THANDLE
	FlpBaseOfImage         TLPVOID
	FdwDebugInfoFileOffset TDWORD
	FnDebugInfoSize        TDWORD
	FlpThreadLocalBase     TLPVOID
	FlpStartAddress        TLPTHREAD_START_ROUTINE
	FlpImageName           TLPVOID
	FfUnicode              TWORD
}

type TCREATE_THREAD_DEBUG_INFO = struct {
	FhThread           THANDLE
	FlpThreadLocalBase TLPVOID
	FlpStartAddress    TLPTHREAD_START_ROUTINE
}

type TCREATE_VIRTUAL_DISK_FLAG = int32

type TCREATE_VIRTUAL_DISK_VERSION = int32

type TCRGB = struct {
	FbRed   TBYTE
	FbGreen TBYTE
	FbBlue  TBYTE
	FbExtra TBYTE
}

type TCRITICAL_SECTION = struct {
	FDebugInfo      TPRTL_CRITICAL_SECTION_DEBUG
	FLockCount      TLONG
	FRecursionCount TLONG
	FOwningThread   THANDLE
	FLockSemaphore  THANDLE
	FSpinCount      TULONG_PTR
}

type TCRITICAL_SECTION_DEBUG = struct {
	FType                      TWORD
	FCreatorBackTraceIndex     TWORD
	FCriticalSection           uintptr
	FProcessLocksList          TLIST_ENTRY
	FEntryCount                TDWORD
	FContentionCount           TDWORD
	FFlags                     TDWORD
	FCreatorBackTraceIndexHigh TWORD
	FSpareWORD                 TWORD
}

type TCRL_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRL_CONTEXT = struct {
	FdwCertEncodingType TDWORD
	FpbCrlEncoded       uintptr
	FcbCrlEncoded       TDWORD
	FpCrlInfo           TPCRL_INFO
	FhCertStore         THCERTSTORE
}

type TCRL_DIST_POINT = struct {
	FDistPointName TCRL_DIST_POINT_NAME
	FReasonFlags   TCRYPT_BIT_BLOB
	FCRLIssuer     TCERT_ALT_NAME_INFO
}

type TCRL_DIST_POINTS_INFO = struct {
	FcDistPoint  TDWORD
	FrgDistPoint TPCRL_DIST_POINT
}

type TCRL_ENTRY = struct {
	FSerialNumber   TCRYPT_INTEGER_BLOB
	FRevocationDate TFILETIME
	FcExtension     TDWORD
	FrgExtension    TPCERT_EXTENSION
}

type TCRL_FIND_ISSUED_FOR_PARA = struct {
	FpSubjectCert TPCCERT_CONTEXT
	FpIssuerCert  TPCCERT_CONTEXT
}

type TCRL_INFO = struct {
	FdwVersion          TDWORD
	FSignatureAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FIssuer             TCERT_NAME_BLOB
	FThisUpdate         TFILETIME
	FNextUpdate         TFILETIME
	FcCRLEntry          TDWORD
	FrgCRLEntry         TPCRL_ENTRY
	FcExtension         TDWORD
	FrgExtension        TPCERT_EXTENSION
}

type TCRL_ISSUING_DIST_POINT = struct {
	FDistPointName          TCRL_DIST_POINT_NAME
	FfOnlyContainsUserCerts TWINBOOL
	FfOnlyContainsCACerts   TWINBOOL
	FOnlySomeReasonFlags    TCRYPT_BIT_BLOB
	FfIndirectCRL           TWINBOOL
}

type TCRL_REVOCATION_INFO = struct {
	FpCrlEntry       TPCRL_ENTRY
	FpCrlContext     TPCCRL_CONTEXT
	FpCrlIssuerChain TPCCERT_CHAIN_CONTEXT
}

type TCRM_PROTOCOL_ID = struct {
	FData1 uint32
	FData2 uint16
	FData3 uint16
	FData4 [8]uint8
}

type TCROSS_CERT_DIST_POINTS_INFO = struct {
	FdwSyncDeltaTime TDWORD
	FcDistPoint      TDWORD
	FrgDistPoint     TPCERT_ALT_NAME_INFO
}

type TCRYPTNET_URL_CACHE_FLUSH_INFO = struct {
	FcbSize          TDWORD
	FdwExemptSeconds TDWORD
	FExpireTime      TFILETIME
}

type TCRYPTNET_URL_CACHE_PRE_FETCH_INFO = struct {
	FcbSize         TDWORD
	FdwObjectType   TDWORD
	FdwError        TDWORD
	FdwReserved     TDWORD
	FThisUpdateTime TFILETIME
	FNextUpdateTime TFILETIME
	FPublishTime    TFILETIME
}

type TCRYPTNET_URL_CACHE_RESPONSE_INFO = struct {
	FcbSize           TDWORD
	FwResponseType    TWORD
	FwResponseFlags   TWORD
	FLastModifiedTime TFILETIME
	FdwMaxAge         TDWORD
	FpwszETag         TLPCWSTR
	FdwProxyId        TDWORD
}

type TCRYPTPROTECT_PROMPTSTRUCT = struct {
	FcbSize        TDWORD
	FdwPromptFlags TDWORD
	FhwndApp       THWND
	FszPrompt      TLPCWSTR
}

type TCRYPT_3DES_KEY_STATE = struct {
	FKey      [24]uint8
	FIV       [8]uint8
	FFeedback [8]uint8
}

type TCRYPT_AES_128_KEY_STATE = struct {
	FKey             [16]uint8
	FIV              [16]uint8
	FEncryptionState [11][16]uint8
	FDecryptionState [11][16]uint8
	FFeedback        [16]uint8
}

type TCRYPT_AES_256_KEY_STATE = struct {
	FKey             [32]uint8
	FIV              [16]uint8
	FEncryptionState [15][16]uint8
	FDecryptionState [15][16]uint8
	FFeedback        [16]uint8
}

type TCRYPT_ALGORITHM_IDENTIFIER = struct {
	FpszObjId   TLPSTR
	FParameters TCRYPT_OBJID_BLOB
}

type TCRYPT_ASYNC_RETRIEVAL_COMPLETION = struct {
	FpfnCompletion TPFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC
	FpvCompletion  TLPVOID
}

type TCRYPT_ATTRIBUTE = struct {
	FpszObjId TLPSTR
	FcValue   TDWORD
	FrgValue  TPCRYPT_ATTR_BLOB
}

type TCRYPT_ATTRIBUTES = struct {
	FcAttr  TDWORD
	FrgAttr TPCRYPT_ATTRIBUTE
}

type TCRYPT_ATTRIBUTE_TYPE_VALUE = struct {
	FpszObjId TLPSTR
	FValue    TCRYPT_OBJID_BLOB
}

type TCRYPT_ATTR_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRYPT_BIT_BLOB = struct {
	FcbData      TDWORD
	FpbData      uintptr
	FcUnusedBits TDWORD
}

type TCRYPT_BLOB_ARRAY = struct {
	FcBlob  TDWORD
	FrgBlob TPCRYPT_DATA_BLOB
}

type TCRYPT_CONTENT_INFO = struct {
	FpszObjId TLPSTR
	FContent  TCRYPT_DER_BLOB
}

type TCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = struct {
	FpszObjId TLPSTR
	FcValue   TDWORD
	FrgValue  TPCRYPT_DER_BLOB
}

type TCRYPT_CONTEXTS = struct {
	FcContexts     TULONG
	FrgpszContexts uintptr
}

type TCRYPT_CONTEXT_CONFIG = struct {
	FdwFlags    TULONG
	FdwReserved TULONG
}

type TCRYPT_CONTEXT_FUNCTIONS = struct {
	FcFunctions     TULONG
	FrgpszFunctions uintptr
}

type TCRYPT_CONTEXT_FUNCTION_CONFIG = struct {
	FdwFlags    TULONG
	FdwReserved TULONG
}

type TCRYPT_CONTEXT_FUNCTION_PROVIDERS = struct {
	FcProviders     TULONG
	FrgpszProviders uintptr
}

type TCRYPT_CREDENTIALS = struct {
	FcbSize            TDWORD
	FpszCredentialsOid TLPCSTR
	FpvCredentials     TLPVOID
}

type TCRYPT_CSP_PROVIDER = struct {
	FdwKeySpec        TDWORD
	FpwszProviderName TLPWSTR
	FSignature        TCRYPT_BIT_BLOB
}

type TCRYPT_DATA_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRYPT_DECODE_PARA = struct {
	FcbSize   TDWORD
	FpfnAlloc TPFN_CRYPT_ALLOC
	FpfnFree  TPFN_CRYPT_FREE
}

type TCRYPT_DECRYPT_MESSAGE_PARA = struct {
	FcbSize                   TDWORD
	FdwMsgAndCertEncodingType TDWORD
	FcCertStore               TDWORD
	FrghCertStore             uintptr
}

type TCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA = struct {
	FcOID     TDWORD
	FrgpszOID uintptr
}

type TCRYPT_DER_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRYPT_DES_KEY_STATE = struct {
	FKey      [8]uint8
	FIV       [8]uint8
	FFeedback [8]uint8
}

type TCRYPT_DIGEST_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRYPT_ECC_CMS_SHARED_INFO = struct {
	FAlgorithm      TCRYPT_ALGORITHM_IDENTIFIER
	FEntityUInfo    TCRYPT_DATA_BLOB
	FrgbSuppPubInfo [4]TBYTE
}

type TCRYPT_ECC_PRIVATE_KEY_INFO = struct {
	FdwVersion  TDWORD
	FPrivateKey TCRYPT_DER_BLOB
	FszCurveOid TLPSTR
	FPublicKey  TCRYPT_BIT_BLOB
}

type TCRYPT_ENCODE_PARA = struct {
	FcbSize   TDWORD
	FpfnAlloc TPFN_CRYPT_ALLOC
	FpfnFree  TPFN_CRYPT_FREE
}

type TCRYPT_ENCRYPTED_PRIVATE_KEY_INFO = struct {
	FEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FEncryptedPrivateKey TCRYPT_DATA_BLOB
}

type TCRYPT_ENCRYPT_MESSAGE_PARA = struct {
	FcbSize                     TDWORD
	FdwMsgEncodingType          TDWORD
	FhCryptProv                 THCRYPTPROV_LEGACY
	FContentEncryptionAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FpvEncryptionAuxInfo        uintptr
	FdwFlags                    TDWORD
	FdwInnerContentType         TDWORD
}

type TCRYPT_ENROLLMENT_NAME_VALUE_PAIR = struct {
	FpwszName  TLPWSTR
	FpwszValue TLPWSTR
}

type TCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO = struct {
	FcbSize             TDWORD
	FiDeltaCrlIndicator int32
	FpftCacheResync     TLPFILETIME
	FpLastSyncTime      TLPFILETIME
	FpMaxAgeTime        TLPFILETIME
	FpChainPara         TPCERT_REVOCATION_CHAIN_PARA
	FpDeltaCrlIndicator TPCRYPT_INTEGER_BLOB
}

type TCRYPT_HASH_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRYPT_HASH_INFO = struct {
	FHashAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FHash          TCRYPT_HASH_BLOB
}

type TCRYPT_HASH_MESSAGE_PARA = struct {
	FcbSize            TDWORD
	FdwMsgEncodingType TDWORD
	FhCryptProv        THCRYPTPROV_LEGACY
	FHashAlgorithm     TCRYPT_ALGORITHM_IDENTIFIER
	FpvHashAuxInfo     uintptr
}

type TCRYPT_IMAGE_REF = struct {
	FpszImage TPWSTR
	FdwFlags  TULONG
}

type TCRYPT_IMAGE_REG = struct {
	FpszImage      TPWSTR
	FcInterfaces   TULONG
	FrgpInterfaces uintptr
}

type TCRYPT_INTEGER_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRYPT_INTERFACE_REG = struct {
	FdwInterface    TULONG
	FdwFlags        TULONG
	FcFunctions     TULONG
	FrgpszFunctions uintptr
}

type TCRYPT_KEY_PROV_INFO = struct {
	FpwszContainerName TLPWSTR
	FpwszProvName      TLPWSTR
	FdwProvType        TDWORD
	FdwFlags           TDWORD
	FcProvParam        TDWORD
	FrgProvParam       TPCRYPT_KEY_PROV_PARAM
	FdwKeySpec         TDWORD
}

type TCRYPT_KEY_PROV_PARAM = struct {
	FdwParam TDWORD
	FpbData  uintptr
	FcbData  TDWORD
	FdwFlags TDWORD
}

type TCRYPT_KEY_SIGN_MESSAGE_PARA = struct {
	FcbSize                   TDWORD
	FdwMsgAndCertEncodingType TDWORD
	F__ccgo2_8                struct {
		FhNCryptKey [0]TNCRYPT_KEY_HANDLE
		FhCryptProv THCRYPTPROV
	}
	FdwKeySpec       TDWORD
	FHashAlgorithm   TCRYPT_ALGORITHM_IDENTIFIER
	FpvHashAuxInfo   uintptr
	FPubKeyAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
}

type TCRYPT_KEY_VERIFY_MESSAGE_PARA = struct {
	FcbSize            TDWORD
	FdwMsgEncodingType TDWORD
	FhCryptProv        THCRYPTPROV_LEGACY
}

type TCRYPT_MASK_GEN_ALGORITHM = struct {
	FpszObjId      TLPSTR
	FHashAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
}

type TCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE = struct {
	FcbSize            TDWORD
	FpfnGet            TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET
	FpfnRelease        TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE
	FpfnFreePassword   TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD
	FpfnFree           TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE
	FpfnFreeIdentifier TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER
}

type TCRYPT_OBJID_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRYPT_OBJID_TABLE = struct {
	FdwAlgId  TDWORD
	FpszObjId TLPCSTR
}

type TCRYPT_OID_FUNC_ENTRY = struct {
	FpszOID     TLPCSTR
	FpvFuncAddr uintptr
}

type TCRYPT_PASSWORD_CREDENTIALS = struct {
	FcbSize      TDWORD
	FpszUsername TLPSTR
	FpszPassword TLPSTR
}

type TCRYPT_PASSWORD_CREDENTIALSA = struct {
	FcbSize      TDWORD
	FpszUsername TLPSTR
	FpszPassword TLPSTR
}

type TCRYPT_PASSWORD_CREDENTIALSW = struct {
	FcbSize      TDWORD
	FpszUsername TLPWSTR
	FpszPassword TLPWSTR
}

type TCRYPT_PKCS12_PBE_PARAMS = struct {
	FiIterations int32
	FcbSalt      TULONG
}

type TCRYPT_PKCS8_EXPORT_PARAMS = struct {
	FhCryptProv             THCRYPTPROV
	FdwKeySpec              TDWORD
	FpszPrivateKeyObjId     TLPSTR
	FpEncryptPrivateKeyFunc TPCRYPT_ENCRYPT_PRIVATE_KEY_FUNC
	FpVoidEncryptFunc       TLPVOID
}

type TCRYPT_PKCS8_IMPORT_PARAMS = struct {
	FPrivateKey             TCRYPT_DIGEST_BLOB
	FpResolvehCryptProvFunc TPCRYPT_RESOLVE_HCRYPTPROV_FUNC
	FpVoidResolveFunc       TLPVOID
	FpDecryptPrivateKeyFunc TPCRYPT_DECRYPT_PRIVATE_KEY_FUNC
	FpVoidDecryptFunc       TLPVOID
}

type TCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS = struct {
	FPrivateKey             TCRYPT_DIGEST_BLOB
	FpResolvehCryptProvFunc TPCRYPT_RESOLVE_HCRYPTPROV_FUNC
	FpVoidResolveFunc       TLPVOID
	FpDecryptPrivateKeyFunc TPCRYPT_DECRYPT_PRIVATE_KEY_FUNC
	FpVoidDecryptFunc       TLPVOID
}

type TCRYPT_PRIVATE_KEY_INFO = struct {
	FVersion     TDWORD
	FAlgorithm   TCRYPT_ALGORITHM_IDENTIFIER
	FPrivateKey  TCRYPT_DER_BLOB
	FpAttributes TPCRYPT_ATTRIBUTES
}

type TCRYPT_PROPERTY_REF = struct {
	FpszProperty TPWSTR
	FcbValue     TULONG
	FpbValue     TPUCHAR
}

type TCRYPT_PROVIDERS = struct {
	FcProviders     TULONG
	FrgpszProviders uintptr
}

type TCRYPT_PROVIDER_REF = struct {
	FdwInterface   TULONG
	FpszFunction   TPWSTR
	FpszProvider   TPWSTR
	FcProperties   TULONG
	FrgpProperties uintptr
	FpUM           TPCRYPT_IMAGE_REF
	FpKM           TPCRYPT_IMAGE_REF
}

type TCRYPT_PROVIDER_REFS = struct {
	FcProviders   TULONG
	FrgpProviders uintptr
}

type TCRYPT_PROVIDER_REG = struct {
	FcAliases     TULONG
	FrgpszAliases uintptr
	FpUM          TPCRYPT_IMAGE_REG
	FpKM          TPCRYPT_IMAGE_REG
}

type TCRYPT_PSOURCE_ALGORITHM = struct {
	FpszObjId           TLPSTR
	FEncodingParameters TCRYPT_DATA_BLOB
}

type TCRYPT_RC2_CBC_PARAMETERS = struct {
	FdwVersion TDWORD
	FfIV       TWINBOOL
	FrgbIV     [8]TBYTE
}

type TCRYPT_RC4_KEY_STATE = struct {
	FKey  [16]uint8
	FSBox [256]uint8
	Fi    uint8
	Fj    uint8
}

type TCRYPT_RETRIEVE_AUX_INFO = struct {
	FcbSize                     TDWORD
	FpLastSyncTime              uintptr
	FdwMaxUrlRetrievalByteCount TDWORD
	FpPreFetchInfo              TPCRYPTNET_URL_CACHE_PRE_FETCH_INFO
	FpFlushInfo                 TPCRYPTNET_URL_CACHE_FLUSH_INFO
	FppResponseInfo             uintptr
	FpwszCacheFileNamePrefix    TLPWSTR
	FpftCacheResync             TLPFILETIME
	FfProxyCacheRetrieval       TWINBOOL
	FdwHttpStatusCode           TDWORD
}

type TCRYPT_RSAES_OAEP_PARAMETERS = struct {
	FHashAlgorithm    TCRYPT_ALGORITHM_IDENTIFIER
	FMaskGenAlgorithm TCRYPT_MASK_GEN_ALGORITHM
	FPSourceAlgorithm TCRYPT_PSOURCE_ALGORITHM
}

type TCRYPT_RSA_SSA_PSS_PARAMETERS = struct {
	FHashAlgorithm    TCRYPT_ALGORITHM_IDENTIFIER
	FMaskGenAlgorithm TCRYPT_MASK_GEN_ALGORITHM
	FdwSaltLength     TDWORD
	FdwTrailerField   TDWORD
}

type TCRYPT_SEQUENCE_OF_ANY = struct {
	FcValue  TDWORD
	FrgValue TPCRYPT_DER_BLOB
}

type TCRYPT_SIGN_MESSAGE_PARA = struct {
	FcbSize             TDWORD
	FdwMsgEncodingType  TDWORD
	FpSigningCert       TPCCERT_CONTEXT
	FHashAlgorithm      TCRYPT_ALGORITHM_IDENTIFIER
	FpvHashAuxInfo      uintptr
	FcMsgCert           TDWORD
	FrgpMsgCert         uintptr
	FcMsgCrl            TDWORD
	FrgpMsgCrl          uintptr
	FcAuthAttr          TDWORD
	FrgAuthAttr         TPCRYPT_ATTRIBUTE
	FcUnauthAttr        TDWORD
	FrgUnauthAttr       TPCRYPT_ATTRIBUTE
	FdwFlags            TDWORD
	FdwInnerContentType TDWORD
}

type TCRYPT_SMART_CARD_ROOT_INFO = struct {
	FrgbCardID [16]TBYTE
	Fluid      TROOT_INFO_LUID
}

type TCRYPT_SMIME_CAPABILITIES = struct {
	FcCapability  TDWORD
	FrgCapability TPCRYPT_SMIME_CAPABILITY
}

type TCRYPT_SMIME_CAPABILITY = struct {
	FpszObjId   TLPSTR
	FParameters TCRYPT_OBJID_BLOB
}

type TCRYPT_TIMESTAMP_ACCURACY = struct {
	FdwSeconds TDWORD
	FdwMillis  TDWORD
	FdwMicros  TDWORD
}

type TCRYPT_TIMESTAMP_CONTEXT = struct {
	FcbEncoded  TDWORD
	FpbEncoded  uintptr
	FpTimeStamp TPCRYPT_TIMESTAMP_INFO
}

type TCRYPT_TIMESTAMP_INFO = struct {
	FdwVersion      TDWORD
	FpszTSAPolicyId TLPSTR
	FHashAlgorithm  TCRYPT_ALGORITHM_IDENTIFIER
	FHashedMessage  TCRYPT_DER_BLOB
	FSerialNumber   TCRYPT_INTEGER_BLOB
	FftTime         TFILETIME
	FpvAccuracy     TPCRYPT_TIMESTAMP_ACCURACY
	FfOrdering      TWINBOOL
	FNonce          TCRYPT_DER_BLOB
	FTsa            TCRYPT_DER_BLOB
	FcExtension     TDWORD
	FrgExtension    TPCERT_EXTENSION
}

type TCRYPT_TIMESTAMP_PARA = struct {
	FpszTSAPolicyId TLPCSTR
	FfRequestCerts  TWINBOOL
	FNonce          TCRYPT_INTEGER_BLOB
	FcExtension     TDWORD
	FrgExtension    TPCERT_EXTENSION
}

type TCRYPT_TIMESTAMP_REQUEST = struct {
	FdwVersion      TDWORD
	FHashAlgorithm  TCRYPT_ALGORITHM_IDENTIFIER
	FHashedMessage  TCRYPT_DER_BLOB
	FpszTSAPolicyId TLPSTR
	FNonce          TCRYPT_INTEGER_BLOB
	FfCertReq       TWINBOOL
	FcExtension     TDWORD
	FrgExtension    TPCERT_EXTENSION
}

type TCRYPT_TIMESTAMP_RESPONSE = struct {
	FdwStatus    TDWORD
	FcFreeText   TDWORD
	FrgFreeText  uintptr
	FFailureInfo TCRYPT_BIT_BLOB
	FContentInfo TCRYPT_DER_BLOB
}

type TCRYPT_TIME_STAMP_REQUEST_INFO = struct {
	FpszTimeStampAlgorithm TLPSTR
	FpszContentType        TLPSTR
	FContent               TCRYPT_OBJID_BLOB
	FcAttribute            TDWORD
	FrgAttribute           TPCRYPT_ATTRIBUTE
}

type TCRYPT_UINT_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TCRYPT_URL_ARRAY = struct {
	FcUrl     TDWORD
	FrgwszUrl uintptr
}

type TCRYPT_URL_INFO = struct {
	FcbSize          TDWORD
	FdwSyncDeltaTime TDWORD
	FcGroup          TDWORD
	FrgcGroupEntry   uintptr
}

type TCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO = struct {
	FCertSignHashCNGAlgPropData        TCRYPT_DATA_BLOB
	FCertIssuerPubKeyBitLengthPropData TCRYPT_DATA_BLOB
}

type TCRYPT_VERIFY_MESSAGE_PARA = struct {
	FcbSize                   TDWORD
	FdwMsgAndCertEncodingType TDWORD
	FhCryptProv               THCRYPTPROV_LEGACY
	FpfnGetSignerCertificate  TPFN_CRYPT_GET_SIGNER_CERTIFICATE
	FpvGetArg                 uintptr
}

type TCRYPT_X942_OTHER_INFO = struct {
	FpszContentEncryptionObjId TLPSTR
	FrgbCounter                [4]TBYTE
	FrgbKeyLength              [4]TBYTE
	FPubInfo                   TCRYPT_DATA_BLOB
}

type TCSPLATFORM = struct {
	FdwPlatformId    TDWORD
	FdwVersionHi     TDWORD
	FdwVersionLo     TDWORD
	FdwProcessorArch TDWORD
}

type TCS_STUB_INFO = struct {
	FWireCodeset             uint32
	FDesiredReceivingCodeset uint32
	FCSArrayInfo             uintptr
}

type TCS_TAG_GETTING_ROUTINE = uintptr

type TCS_TYPE_FROM_NETCS_ROUTINE = uintptr

type TCS_TYPE_LOCAL_SIZE_ROUTINE = uintptr

type TCS_TYPE_NET_SIZE_ROUTINE = uintptr

type TCS_TYPE_TO_NETCS_ROUTINE = uintptr

type TCTL_ANY_SUBJECT_INFO = struct {
	FSubjectAlgorithm  TCRYPT_ALGORITHM_IDENTIFIER
	FSubjectIdentifier TCRYPT_DATA_BLOB
}

type TCTL_CONTEXT = struct {
	FdwMsgAndCertEncodingType TDWORD
	FpbCtlEncoded             uintptr
	FcbCtlEncoded             TDWORD
	FpCtlInfo                 TPCTL_INFO
	FhCertStore               THCERTSTORE
	FhCryptMsg                THCRYPTMSG
	FpbCtlContent             uintptr
	FcbCtlContent             TDWORD
}

type TCTL_ENTRY = struct {
	FSubjectIdentifier TCRYPT_DATA_BLOB
	FcAttribute        TDWORD
	FrgAttribute       TPCRYPT_ATTRIBUTE
}

type TCTL_FIND_SUBJECT_PARA = struct {
	FcbSize        TDWORD
	FpUsagePara    TPCTL_FIND_USAGE_PARA
	FdwSubjectType TDWORD
	FpvSubject     uintptr
}

type TCTL_FIND_USAGE_PARA = struct {
	FcbSize         TDWORD
	FSubjectUsage   TCTL_USAGE
	FListIdentifier TCRYPT_DATA_BLOB
	FpSigner        TPCERT_INFO
}

type TCTL_INFO = struct {
	FdwVersion        TDWORD
	FSubjectUsage     TCTL_USAGE
	FListIdentifier   TCRYPT_DATA_BLOB
	FSequenceNumber   TCRYPT_INTEGER_BLOB
	FThisUpdate       TFILETIME
	FNextUpdate       TFILETIME
	FSubjectAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FcCTLEntry        TDWORD
	FrgCTLEntry       TPCTL_ENTRY
	FcExtension       TDWORD
	FrgExtension      TPCERT_EXTENSION
}

type TCTL_USAGE = struct {
	FcUsageIdentifier     TDWORD
	FrgpszUsageIdentifier uintptr
}

type TCTL_USAGE_MATCH = struct {
	FdwType TDWORD
	FUsage  TCTL_USAGE
}

type TCTL_VERIFY_USAGE_PARA = struct {
	FcbSize         TDWORD
	FListIdentifier TCRYPT_DATA_BLOB
	FcCtlStore      TDWORD
	FrghCtlStore    uintptr
	FcSignerStore   TDWORD
	FrghSignerStore uintptr
}

type TCTL_VERIFY_USAGE_STATUS = struct {
	FcbSize          TDWORD
	FdwError         TDWORD
	FdwFlags         TDWORD
	FppCtl           uintptr
	FdwCtlEntryIndex TDWORD
	FppSigner        uintptr
	FdwSignerIndex   TDWORD
}

type TCURRENCYFMT = struct {
	FNumDigits        TUINT
	FLeadingZero      TUINT
	FGrouping         TUINT
	FlpDecimalSep     TLPSTR
	FlpThousandSep    TLPSTR
	FNegativeOrder    TUINT
	FPositiveOrder    TUINT
	FlpCurrencySymbol TLPSTR
}

type TCURRENCYFMTA = struct {
	FNumDigits        TUINT
	FLeadingZero      TUINT
	FGrouping         TUINT
	FlpDecimalSep     TLPSTR
	FlpThousandSep    TLPSTR
	FNegativeOrder    TUINT
	FPositiveOrder    TUINT
	FlpCurrencySymbol TLPSTR
}

type TCURRENCYFMTW = struct {
	FNumDigits        TUINT
	FLeadingZero      TUINT
	FGrouping         TUINT
	FlpDecimalSep     TLPWSTR
	FlpThousandSep    TLPWSTR
	FNegativeOrder    TUINT
	FPositiveOrder    TUINT
	FlpCurrencySymbol TLPWSTR
}

type TCURSORINFO = struct {
	FcbSize      TDWORD
	Fflags       TDWORD
	FhCursor     THCURSOR
	FptScreenPos TPOINT
}

type TCURSORSHAPE = struct {
	FxHotSpot  int32
	FyHotSpot  int32
	Fcx        int32
	Fcy        int32
	FcbWidth   int32
	FPlanes    TBYTE
	FBitsPixel TBYTE
}

type TCUSTDATA = struct {
	FcCustData   TDWORD
	FprgCustData TLPCUSTDATAITEM
}

type TCWMO_FLAGS = int32

type TCWPRETSTRUCT = struct {
	FlResult TLRESULT
	FlParam  TLPARAM
	FwParam  TWPARAM
	Fmessage TUINT
	Fhwnd    THWND
}

type TCWPSTRUCT = struct {
	FlParam  TLPARAM
	FwParam  TWPARAM
	Fmessage TUINT
	Fhwnd    THWND
}

const TC_CP_STROKE = 4

const TC_CR_90 = 8

const TC_CR_ANY = 16

const TC_EA_DOUBLE = 512

const TC_GP_TRAP = 2

const TC_HARDERR = 1

const TC_IA_ABLE = 1024

const TC_NORMAL = 0

const TC_OP_CHARACTER = 1

const TC_OP_STROKE = 2

const TC_RA_ABLE = 8192

const TC_RESERVED = 32768

const TC_SA_CONTIN = 256

const TC_SA_DOUBLE = 64

const TC_SA_INTEGER = 128

const TC_SCROLLBLT = 65536

const TC_SF_X_YINDEP = 32

const TC_SIGNAL = 3

const TC_SO_ABLE = 4096

const TC_UA_ABLE = 2048

const TC_VA_ABLE = 16384

type TCertKeyType = int32

type TDATADIR = int32

type TDATAINFO = struct {
	FulTotalSize      TULONG
	FulavrPacketSize  TULONG
	FulConnectSpeed   TULONG
	FulProcessorSpeed TULONG
}

type TDATATYPES_INFO_1 = struct {
	FpName TLPSTR
}

type TDATATYPES_INFO_1A = struct {
	FpName TLPSTR
}

type TDATATYPES_INFO_1W = struct {
	FpName TLPWSTR
}

type TDATA_BLOB = struct {
	FcbData TDWORD
	FpbData uintptr
}

type TDATE = float64

type TDATEFMT_ENUMPROCA = uintptr

type TDATEFMT_ENUMPROCEXA = uintptr

type TDATEFMT_ENUMPROCEXEX = uintptr

type TDATEFMT_ENUMPROCEXW = uintptr

type TDATEFMT_ENUMPROCW = uintptr

type TDCB = struct {
	FDCBlength  TDWORD
	FBaudRate   TDWORD
	F__ccgo8    uint32
	FwReserved  TWORD
	FXonLim     TWORD
	FXoffLim    TWORD
	FByteSize   TBYTE
	FParity     TBYTE
	FStopBits   TBYTE
	FXonChar    int8
	FXoffChar   int8
	FErrorChar  int8
	FEofChar    int8
	FEvtChar    int8
	FwReserved1 TWORD
}

type TDCOM_CALL_STATE = int32

type TDDEACK = struct {
	F__ccgo0 uint16
}

type TDDEADVISE = struct {
	F__ccgo0  uint16
	FcfFormat int16
}

type TDDEDATA = struct {
	F__ccgo0  uint16
	FcfFormat int16
	FValue    [1]TBYTE
}

type TDDELN = struct {
	F__ccgo0  uint16
	FcfFormat int16
}

type TDDEML_MSG_HOOK_DATA = struct {
	FuiLo   TUINT_PTR
	FuiHi   TUINT_PTR
	FcbData TDWORD
	FData   [8]TDWORD
}

type TDDEPOKE = struct {
	F__ccgo0  uint16
	FcfFormat int16
	FValue    [1]TBYTE
}

type TDDEUP = struct {
	F__ccgo0  uint16
	FcfFormat int16
	Frgb      [1]TBYTE
}

type TDEBUGHOOKINFO = struct {
	FidThread          TDWORD
	FidThreadInstaller TDWORD
	FlParam            TLPARAM
	FwParam            TWPARAM
	Fcode              int32
}

type TDEBUG_EVENT = struct {
	FdwDebugEventCode TDWORD
	FdwProcessId      TDWORD
	FdwThreadId       TDWORD
	Fu                struct {
		FCreateThread      [0]TCREATE_THREAD_DEBUG_INFO
		FCreateProcessInfo [0]TCREATE_PROCESS_DEBUG_INFO
		FExitThread        [0]TEXIT_THREAD_DEBUG_INFO
		FExitProcess       [0]TEXIT_PROCESS_DEBUG_INFO
		FLoadDll           [0]TLOAD_DLL_DEBUG_INFO
		FUnloadDll         [0]TUNLOAD_DLL_DEBUG_INFO
		FDebugString       [0]TOUTPUT_DEBUG_STRING_INFO
		FRipInfo           [0]TRIP_INFO
		FException         TEXCEPTION_DEBUG_INFO
	}
}

type TDECRYPTION_STATUS_BUFFER = struct {
	FNoEncryptedStreams TBOOLEAN
}

type TDELETEITEMSTRUCT = struct {
	FCtlType  TUINT
	FCtlID    TUINT
	FitemID   TUINT
	FhwndItem THWND
	FitemData TULONG_PTR
}

type TDELETE_SNAPSHOT_VHDSET_FLAG = int32

type TDELETE_SNAPSHOT_VHDSET_PARAMETERS = struct {
	FVersion   TDELETE_SNAPSHOT_VHDSET_VERSION
	F__ccgo1_4 struct {
		FVersion1 struct {
			FSnapshotId TGUID
		}
	}
}

type TDELETE_SNAPSHOT_VHDSET_VERSION = int32

type TDEPENDENT_DISK_FLAG = int32

type TDEP_SYSTEM_POLICY_TYPE = int32

type TDESCKIND = int32

type TDESIGNVECTOR = struct {
	FdvReserved TDWORD
	FdvNumAxes  TDWORD
	FdvValues   [16]TLONG
}

type TDESKTOPENUMPROC = uintptr

type TDESKTOPENUMPROCA = uintptr

type TDESKTOPENUMPROCW = uintptr

type TDETACH_VIRTUAL_DISK_FLAG = int32

type TDETECTION_TYPE = int32

type TDEVICE_DATA_MANAGEMENT_SET_ACTION = uint32

type TDEVICE_DSM_NOTIFICATION_PARAMETERS = struct {
	FSize           TULONG
	FFlags          TULONG
	FNumFileTypeIDs TULONG
	FFileTypeID     [1]TGUID
}

type TDEVICE_MANAGE_DATA_SET_ATTRIBUTES = struct {
	FSize                 TDWORD
	FAction               TDEVICE_DATA_MANAGEMENT_SET_ACTION
	FFlags                TDWORD
	FParameterBlockOffset TDWORD
	FParameterBlockLength TDWORD
	FDataSetRangesOffset  TDWORD
	FDataSetRangesLength  TDWORD
}

type TDEVICE_POWER_DESCRIPTOR = struct {
	FVersion                           TDWORD
	FSize                              TDWORD
	FDeviceAttentionSupported          TBOOLEAN
	FAsynchronousNotificationSupported TBOOLEAN
	FIdlePowerManagementEnabled        TBOOLEAN
	FD3ColdEnabled                     TBOOLEAN
	FD3ColdSupported                   TBOOLEAN
	FNoVerifyDuringIdlePower           TBOOLEAN
	FReserved                          [2]TBYTE
	FIdleTimeoutInMS                   TDWORD
}

type TDEVICE_POWER_STATE = int32

type TDEVICE_SEEK_PENALTY_DESCRIPTOR = struct {
	FVersion           TDWORD
	FSize              TDWORD
	FIncursSeekPenalty TBOOLEAN
}

type TDEVICE_TRIM_DESCRIPTOR = struct {
	FVersion     TDWORD
	FSize        TDWORD
	FTrimEnabled TBOOLEAN
}

type TDEVICE_WRITE_AGGREGATION_DESCRIPTOR = struct {
	FVersion                      TULONG
	FSize                         TULONG
	FBenefitsFromWriteAggregation TBOOLEAN
}

type TDEVMODE = struct {
	FdmDeviceName    [32]TBYTE
	FdmSpecVersion   TWORD
	FdmDriverVersion TWORD
	FdmSize          TWORD
	FdmDriverExtra   TWORD
	FdmFields        TDWORD
	F__ccgo6_44      struct {
		F__ccgo1_0 [0]struct {
			FdmPosition           TPOINTL
			FdmDisplayOrientation TDWORD
			FdmDisplayFixedOutput TDWORD
		}
		F__ccgo0_0 struct {
			FdmOrientation   int16
			FdmPaperSize     int16
			FdmPaperLength   int16
			FdmPaperWidth    int16
			FdmScale         int16
			FdmCopies        int16
			FdmDefaultSource int16
			FdmPrintQuality  int16
		}
	}
	FdmColor       int16
	FdmDuplex      int16
	FdmYResolution int16
	FdmTTOption    int16
	FdmCollate     int16
	FdmFormName    [32]TBYTE
	FdmLogPixels   TWORD
	FdmBitsPerPel  TDWORD
	FdmPelsWidth   TDWORD
	FdmPelsHeight  TDWORD
	F__ccgo17_116  struct {
		FdmNup          [0]TDWORD
		FdmDisplayFlags TDWORD
	}
	FdmDisplayFrequency TDWORD
	FdmICMMethod        TDWORD
	FdmICMIntent        TDWORD
	FdmMediaType        TDWORD
	FdmDitherType       TDWORD
	FdmReserved1        TDWORD
	FdmReserved2        TDWORD
	FdmPanningWidth     TDWORD
	FdmPanningHeight    TDWORD
}

type TDEVMODEA = struct {
	FdmDeviceName    [32]TBYTE
	FdmSpecVersion   TWORD
	FdmDriverVersion TWORD
	FdmSize          TWORD
	FdmDriverExtra   TWORD
	FdmFields        TDWORD
	F__ccgo6_44      struct {
		F__ccgo1_0 [0]struct {
			FdmPosition           TPOINTL
			FdmDisplayOrientation TDWORD
			FdmDisplayFixedOutput TDWORD
		}
		F__ccgo0_0 struct {
			FdmOrientation   int16
			FdmPaperSize     int16
			FdmPaperLength   int16
			FdmPaperWidth    int16
			FdmScale         int16
			FdmCopies        int16
			FdmDefaultSource int16
			FdmPrintQuality  int16
		}
	}
	FdmColor       int16
	FdmDuplex      int16
	FdmYResolution int16
	FdmTTOption    int16
	FdmCollate     int16
	FdmFormName    [32]TBYTE
	FdmLogPixels   TWORD
	FdmBitsPerPel  TDWORD
	FdmPelsWidth   TDWORD
	FdmPelsHeight  TDWORD
	F__ccgo17_116  struct {
		FdmNup          [0]TDWORD
		FdmDisplayFlags TDWORD
	}
	FdmDisplayFrequency TDWORD
	FdmICMMethod        TDWORD
	FdmICMIntent        TDWORD
	FdmMediaType        TDWORD
	FdmDitherType       TDWORD
	FdmReserved1        TDWORD
	FdmReserved2        TDWORD
	FdmPanningWidth     TDWORD
	FdmPanningHeight    TDWORD
}

type TDEVMODEW = struct {
	FdmDeviceName    [32]TWCHAR
	FdmSpecVersion   TWORD
	FdmDriverVersion TWORD
	FdmSize          TWORD
	FdmDriverExtra   TWORD
	FdmFields        TDWORD
	F__ccgo6_76      struct {
		F__ccgo1_0 [0]struct {
			FdmPosition           TPOINTL
			FdmDisplayOrientation TDWORD
			FdmDisplayFixedOutput TDWORD
		}
		F__ccgo0_0 struct {
			FdmOrientation   int16
			FdmPaperSize     int16
			FdmPaperLength   int16
			FdmPaperWidth    int16
			FdmScale         int16
			FdmCopies        int16
			FdmDefaultSource int16
			FdmPrintQuality  int16
		}
	}
	FdmColor       int16
	FdmDuplex      int16
	FdmYResolution int16
	FdmTTOption    int16
	FdmCollate     int16
	FdmFormName    [32]TWCHAR
	FdmLogPixels   TWORD
	FdmBitsPerPel  TDWORD
	FdmPelsWidth   TDWORD
	FdmPelsHeight  TDWORD
	F__ccgo17_180  struct {
		FdmNup          [0]TDWORD
		FdmDisplayFlags TDWORD
	}
	FdmDisplayFrequency TDWORD
	FdmICMMethod        TDWORD
	FdmICMIntent        TDWORD
	FdmMediaType        TDWORD
	FdmDitherType       TDWORD
	FdmReserved1        TDWORD
	FdmReserved2        TDWORD
	FdmPanningWidth     TDWORD
	FdmPanningHeight    TDWORD
}

type TDEVNAMES = struct {
	FwDriverOffset TWORD
	FwDeviceOffset TWORD
	FwOutputOffset TWORD
	FwDefault      TWORD
}

type TDHPRIVKEY_VER3 = struct {
	Fmagic   TDWORD
	FbitlenP TDWORD
	FbitlenQ TDWORD
	FbitlenJ TDWORD
	FbitlenX TDWORD
	FDSSSeed TDSSSEED
}

type TDHPUBKEY = struct {
	Fmagic  TDWORD
	Fbitlen TDWORD
}

type TDHPUBKEY_VER3 = struct {
	Fmagic   TDWORD
	FbitlenP TDWORD
	FbitlenQ TDWORD
	FbitlenJ TDWORD
	FDSSSeed TDSSSEED
}

type TDIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = int32

type TDIALOG_DPI_CHANGE_BEHAVIORS = int32

type TDIBSECTION = struct {
	FdsBm        TBITMAP
	FdsBmih      TBITMAPINFOHEADER
	FdsBitfields [3]TDWORD
	FdshSection  THANDLE
	FdsOffset    TDWORD
}

type TDISCARDCACHE = int32

type TDISCDLGSTRUCT = struct {
	FcbStructure  TDWORD
	FhwndOwner    THWND
	FlpLocalName  TLPSTR
	FlpRemoteName TLPSTR
	FdwFlags      TDWORD
}

type TDISCDLGSTRUCTA = struct {
	FcbStructure  TDWORD
	FhwndOwner    THWND
	FlpLocalName  TLPSTR
	FlpRemoteName TLPSTR
	FdwFlags      TDWORD
}

type TDISCDLGSTRUCTW = struct {
	FcbStructure  TDWORD
	FhwndOwner    THWND
	FlpLocalName  TLPWSTR
	FlpRemoteName TLPWSTR
	FdwFlags      TDWORD
}

type TDISK_CACHE_INFORMATION = struct {
	FParametersSavable             TBOOLEAN
	FReadCacheEnabled              TBOOLEAN
	FWriteCacheEnabled             TBOOLEAN
	FReadRetentionPriority         TDISK_CACHE_RETENTION_PRIORITY
	FWriteRetentionPriority        TDISK_CACHE_RETENTION_PRIORITY
	FDisablePrefetchTransferLength TWORD
	FPrefetchScalar                TBOOLEAN
	F__ccgo7_16                    struct {
		FBlockPrefetch [0]struct {
			FMinimum TWORD
			FMaximum TWORD
		}
		FScalarPrefetch struct {
			FMinimum       TWORD
			FMaximum       TWORD
			FMaximumBlocks TWORD
		}
	}
}

type TDISK_CACHE_RETENTION_PRIORITY = int32

type TDISK_CONTROLLER_NUMBER = struct {
	FControllerNumber TDWORD
	FDiskNumber       TDWORD
}

type TDISK_INT13_INFO = struct {
	FDriveSelect     TWORD
	FMaxCylinders    TDWORD
	FSectorsPerTrack TWORD
	FMaxHeads        TWORD
	FNumberDrives    TWORD
}

type TDISK_LOGGING = struct {
	FFunction      TBYTE
	FBufferAddress TPVOID
	FBufferSize    TDWORD
}

type TDISK_PARTITION_INFO = struct {
	FSizeOfPartitionInfo TDWORD
	FPartitionStyle      TPARTITION_STYLE
	F__ccgo2_8           struct {
		FGpt [0]struct {
			FDiskId TGUID
		}
		FMbr struct {
			FSignature TDWORD
			FCheckSum  TDWORD
		}
		F__ccgo_pad2 [8]byte
	}
}

type TDISPID = int32

type TDISPLAYCONFIG_2DREGION = struct {
	Fcx TUINT32
	Fcy TUINT32
}

type TDISPLAYCONFIG_ADAPTER_NAME = struct {
	Fheader            TDISPLAYCONFIG_DEVICE_INFO_HEADER
	FadapterDevicePath [128]TWCHAR
}

type TDISPLAYCONFIG_COLOR_ENCODING = uint32

type TDISPLAYCONFIG_DESKTOP_IMAGE_INFO = struct {
	FPathSourceSize     TPOINTL
	FDesktopImageRegion TRECTL
	FDesktopImageClip   TRECTL
}

type TDISPLAYCONFIG_DEVICE_INFO_HEADER = struct {
	Ftype1     TDISPLAYCONFIG_DEVICE_INFO_TYPE
	Fsize      TUINT32
	FadapterId TLUID
	Fid        TUINT32
}

type TDISPLAYCONFIG_DEVICE_INFO_TYPE = uint32

type TDISPLAYCONFIG_GET_ADVANCED_COLOR_INFO = struct {
	Fheader     TDISPLAYCONFIG_DEVICE_INFO_HEADER
	F__ccgo1_20 struct {
		Fvalue     [0]TUINT32
		F__ccgo0_0 struct {
			F__ccgo0 uint32
		}
	}
	FcolorEncoding       TDISPLAYCONFIG_COLOR_ENCODING
	FbitsPerColorChannel TUINT32
}

type TDISPLAYCONFIG_MODE_INFO_TYPE = uint32

type TDISPLAYCONFIG_PATH_INFO = struct {
	FsourceInfo TDISPLAYCONFIG_PATH_SOURCE_INFO
	FtargetInfo TDISPLAYCONFIG_PATH_TARGET_INFO
	Fflags      TUINT32
}

type TDISPLAYCONFIG_PATH_SOURCE_INFO = struct {
	FadapterId  TLUID
	Fid         TUINT32
	F__ccgo2_12 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FmodeInfoIdx TUINT32
	}
	FstatusFlags TUINT32
}

type TDISPLAYCONFIG_PATH_TARGET_INFO = struct {
	FadapterId  TLUID
	Fid         TUINT32
	F__ccgo2_12 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FmodeInfoIdx TUINT32
	}
	FoutputTechnology TDISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY
	Frotation         TDISPLAYCONFIG_ROTATION
	Fscaling          TDISPLAYCONFIG_SCALING
	FrefreshRate      TDISPLAYCONFIG_RATIONAL
	FscanLineOrdering TDISPLAYCONFIG_SCANLINE_ORDERING
	FtargetAvailable  TWINBOOL
	FstatusFlags      TUINT32
}

type TDISPLAYCONFIG_PIXELFORMAT = uint32

type TDISPLAYCONFIG_RATIONAL = struct {
	FNumerator   TUINT32
	FDenominator TUINT32
}

type TDISPLAYCONFIG_ROTATION = uint32

type TDISPLAYCONFIG_SCALING = uint32

type TDISPLAYCONFIG_SCANLINE_ORDERING = uint32

type TDISPLAYCONFIG_SDR_WHITE_LEVEL = struct {
	Fheader        TDISPLAYCONFIG_DEVICE_INFO_HEADER
	FSDRWhiteLevel TULONG
}

type TDISPLAYCONFIG_SET_ADVANCED_COLOR_STATE = struct {
	Fheader     TDISPLAYCONFIG_DEVICE_INFO_HEADER
	F__ccgo1_20 struct {
		Fvalue     [0]TUINT32
		F__ccgo0_0 struct {
			F__ccgo0 uint32
		}
	}
}

type TDISPLAYCONFIG_SET_TARGET_PERSISTENCE = struct {
	Fheader     TDISPLAYCONFIG_DEVICE_INFO_HEADER
	F__ccgo1_20 struct {
		Fvalue     [0]TUINT32
		F__ccgo0_0 struct {
			F__ccgo0 uint32
		}
	}
}

type TDISPLAYCONFIG_SOURCE_DEVICE_NAME = struct {
	Fheader            TDISPLAYCONFIG_DEVICE_INFO_HEADER
	FviewGdiDeviceName [32]TWCHAR
}

type TDISPLAYCONFIG_SOURCE_MODE = struct {
	Fwidth       TUINT32
	Fheight      TUINT32
	FpixelFormat TDISPLAYCONFIG_PIXELFORMAT
	Fposition    TPOINTL
}

type TDISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION = struct {
	Fheader     TDISPLAYCONFIG_DEVICE_INFO_HEADER
	F__ccgo1_20 struct {
		Fvalue     [0]TUINT32
		F__ccgo0_0 struct {
			F__ccgo0 uint32
		}
	}
}

type TDISPLAYCONFIG_TARGET_BASE_TYPE = struct {
	Fheader               TDISPLAYCONFIG_DEVICE_INFO_HEADER
	FbaseOutputTechnology TDISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY
}

type TDISPLAYCONFIG_TARGET_DEVICE_NAME = struct {
	Fheader                    TDISPLAYCONFIG_DEVICE_INFO_HEADER
	Fflags                     TDISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS
	FoutputTechnology          TDISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY
	FedidManufactureId         TUINT16
	FedidProductCodeId         TUINT16
	FconnectorInstance         TUINT32
	FmonitorFriendlyDeviceName [64]TWCHAR
	FmonitorDevicePath         [128]TWCHAR
}

type TDISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS = struct {
	F__ccgo0_0 struct {
		Fvalue     [0]TUINT32
		F__ccgo0_0 struct {
			F__ccgo0 uint32
		}
	}
}

type TDISPLAYCONFIG_TOPOLOGY_ID = uint32

type TDISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = int32

type TDISPLAY_DEVICE = struct {
	Fcb           TDWORD
	FDeviceName   [32]TCHAR
	FDeviceString [128]TCHAR
	FStateFlags   TDWORD
	FDeviceID     [128]TCHAR
	FDeviceKey    [128]TCHAR
}

type TDISPLAY_DEVICEA = struct {
	Fcb           TDWORD
	FDeviceName   [32]TCHAR
	FDeviceString [128]TCHAR
	FStateFlags   TDWORD
	FDeviceID     [128]TCHAR
	FDeviceKey    [128]TCHAR
}

type TDISPLAY_DEVICEW = struct {
	Fcb           TDWORD
	FDeviceName   [32]TWCHAR
	FDeviceString [128]TWCHAR
	FStateFlags   TDWORD
	FDeviceID     [128]TWCHAR
	FDeviceKey    [128]TWCHAR
}

type TDISPPARAMS = struct {
	Frgvarg            uintptr
	FrgdispidNamedArgs uintptr
	FcArgs             TUINT
	FcNamedArgs        TUINT
}

type TDLGITEMTEMPLATE = struct {
	Fstyle           TDWORD
	FdwExtendedStyle TDWORD
	Fx               int16
	Fy               int16
	Fcx              int16
	Fcy              int16
	Fid              TWORD
}

type TDLGPROC = uintptr

type TDLGTEMPLATE = struct {
	Fstyle           TDWORD
	FdwExtendedStyle TDWORD
	Fcdit            TWORD
	Fx               int16
	Fy               int16
	Fcx              int16
	Fcy              int16
}

type TDLL_DIRECTORY_COOKIE = uintptr

type TDOCINFO = struct {
	FcbSize       int32
	FlpszDocName  TLPCSTR
	FlpszOutput   TLPCSTR
	FlpszDatatype TLPCSTR
	FfwType       TDWORD
}

type TDOCINFOA = struct {
	FcbSize       int32
	FlpszDocName  TLPCSTR
	FlpszOutput   TLPCSTR
	FlpszDatatype TLPCSTR
	FfwType       TDWORD
}

type TDOCINFOW = struct {
	FcbSize       int32
	FlpszDocName  TLPCWSTR
	FlpszOutput   TLPCWSTR
	FlpszDatatype TLPCWSTR
	FfwType       TDWORD
}

type TDOC_INFO_1 = struct {
	FpDocName    TLPSTR
	FpOutputFile TLPSTR
	FpDatatype   TLPSTR
}

type TDOC_INFO_1A = struct {
	FpDocName    TLPSTR
	FpOutputFile TLPSTR
	FpDatatype   TLPSTR
}

type TDOC_INFO_1W = struct {
	FpDocName    TLPWSTR
	FpOutputFile TLPWSTR
	FpDatatype   TLPWSTR
}

type TDOC_INFO_2 = struct {
	FpDocName    TLPSTR
	FpOutputFile TLPSTR
	FpDatatype   TLPSTR
	FdwMode      TDWORD
	FJobId       TDWORD
}

type TDOC_INFO_2A = struct {
	FpDocName    TLPSTR
	FpOutputFile TLPSTR
	FpDatatype   TLPSTR
	FdwMode      TDWORD
	FJobId       TDWORD
}

type TDOC_INFO_2W = struct {
	FpDocName    TLPWSTR
	FpOutputFile TLPWSTR
	FpDatatype   TLPWSTR
	FdwMode      TDWORD
	FJobId       TDWORD
}

type TDOC_INFO_3 = struct {
	FpDocName    TLPSTR
	FpOutputFile TLPSTR
	FpDatatype   TLPSTR
	FdwFlags     TDWORD
}

type TDOC_INFO_3A = struct {
	FpDocName    TLPSTR
	FpOutputFile TLPSTR
	FpDatatype   TLPSTR
	FdwFlags     TDWORD
}

type TDOC_INFO_3W = struct {
	FpDocName    TLPWSTR
	FpOutputFile TLPWSTR
	FpDatatype   TLPWSTR
	FdwFlags     TDWORD
}

type TDOMNodeType = int32

type TDOUBLE = float64

type TDPI_AWARENESS = int32

type TDPI_AWARENESS_CONTEXT = uintptr

type TDPI_AWARENESS_CONTEXT__ = struct {
	Funused int32
}

type TDPI_HOSTING_BEHAVIOR = int32

type TDRAGINFO = struct {
	FuSize       TUINT
	Fpt          TPOINT
	FfNC         TWINBOOL
	FlpFileList  TLPSTR
	FgrfKeyState TDWORD
}

type TDRAGINFOA = struct {
	FuSize       TUINT
	Fpt          TPOINT
	FfNC         TWINBOOL
	FlpFileList  TLPSTR
	FgrfKeyState TDWORD
}

type TDRAGINFOW = struct {
	FuSize       TUINT
	Fpt          TPOINT
	FfNC         TWINBOOL
	FlpFileList  TLPWSTR
	FgrfKeyState TDWORD
}

type TDRAWITEMSTRUCT = struct {
	FCtlType    TUINT
	FCtlID      TUINT
	FitemID     TUINT
	FitemAction TUINT
	FitemState  TUINT
	FhwndItem   THWND
	FhDC        THDC
	FrcItem     TRECT
	FitemData   TULONG_PTR
}

type TDRAWPATRECT = struct {
	FptPosition TPOINT
	FptSize     TPOINT
	FwStyle     TWORD
	FwPattern   TWORD
}

type TDRAWSTATEPROC = uintptr

type TDRAWTEXTPARAMS = struct {
	FcbSize        TUINT
	FiTabLength    int32
	FiLeftMargin   int32
	FiRightMargin  int32
	FuiLengthDrawn TUINT
}

type TDRIVERPROC = uintptr

type TDRIVERSTATUS = struct {
	FbDriverError TBYTE
	FbIDEError    TBYTE
	FbReserved    [2]TBYTE
	FdwReserved   [2]TDWORD
}

type TDRIVER_INFO_1 = struct {
	FpName TLPSTR
}

type TDRIVER_INFO_1A = struct {
	FpName TLPSTR
}

type TDRIVER_INFO_1W = struct {
	FpName TLPWSTR
}

type TDRIVER_INFO_2 = struct {
	FcVersion     TDWORD
	FpName        TLPSTR
	FpEnvironment TLPSTR
	FpDriverPath  TLPSTR
	FpDataFile    TLPSTR
	FpConfigFile  TLPSTR
}

type TDRIVER_INFO_2A = struct {
	FcVersion     TDWORD
	FpName        TLPSTR
	FpEnvironment TLPSTR
	FpDriverPath  TLPSTR
	FpDataFile    TLPSTR
	FpConfigFile  TLPSTR
}

type TDRIVER_INFO_2W = struct {
	FcVersion     TDWORD
	FpName        TLPWSTR
	FpEnvironment TLPWSTR
	FpDriverPath  TLPWSTR
	FpDataFile    TLPWSTR
	FpConfigFile  TLPWSTR
}

type TDRIVER_INFO_3 = struct {
	FcVersion         TDWORD
	FpName            TLPSTR
	FpEnvironment     TLPSTR
	FpDriverPath      TLPSTR
	FpDataFile        TLPSTR
	FpConfigFile      TLPSTR
	FpHelpFile        TLPSTR
	FpDependentFiles  TLPSTR
	FpMonitorName     TLPSTR
	FpDefaultDataType TLPSTR
}

type TDRIVER_INFO_3A = struct {
	FcVersion         TDWORD
	FpName            TLPSTR
	FpEnvironment     TLPSTR
	FpDriverPath      TLPSTR
	FpDataFile        TLPSTR
	FpConfigFile      TLPSTR
	FpHelpFile        TLPSTR
	FpDependentFiles  TLPSTR
	FpMonitorName     TLPSTR
	FpDefaultDataType TLPSTR
}

type TDRIVER_INFO_3W = struct {
	FcVersion         TDWORD
	FpName            TLPWSTR
	FpEnvironment     TLPWSTR
	FpDriverPath      TLPWSTR
	FpDataFile        TLPWSTR
	FpConfigFile      TLPWSTR
	FpHelpFile        TLPWSTR
	FpDependentFiles  TLPWSTR
	FpMonitorName     TLPWSTR
	FpDefaultDataType TLPWSTR
}

type TDRIVER_INFO_4 = struct {
	FcVersion          TDWORD
	FpName             TLPSTR
	FpEnvironment      TLPSTR
	FpDriverPath       TLPSTR
	FpDataFile         TLPSTR
	FpConfigFile       TLPSTR
	FpHelpFile         TLPSTR
	FpDependentFiles   TLPSTR
	FpMonitorName      TLPSTR
	FpDefaultDataType  TLPSTR
	FpszzPreviousNames TLPSTR
}

type TDRIVER_INFO_4A = struct {
	FcVersion          TDWORD
	FpName             TLPSTR
	FpEnvironment      TLPSTR
	FpDriverPath       TLPSTR
	FpDataFile         TLPSTR
	FpConfigFile       TLPSTR
	FpHelpFile         TLPSTR
	FpDependentFiles   TLPSTR
	FpMonitorName      TLPSTR
	FpDefaultDataType  TLPSTR
	FpszzPreviousNames TLPSTR
}

type TDRIVER_INFO_4W = struct {
	FcVersion          TDWORD
	FpName             TLPWSTR
	FpEnvironment      TLPWSTR
	FpDriverPath       TLPWSTR
	FpDataFile         TLPWSTR
	FpConfigFile       TLPWSTR
	FpHelpFile         TLPWSTR
	FpDependentFiles   TLPWSTR
	FpMonitorName      TLPWSTR
	FpDefaultDataType  TLPWSTR
	FpszzPreviousNames TLPWSTR
}

type TDRIVER_INFO_5 = struct {
	FcVersion           TDWORD
	FpName              TLPSTR
	FpEnvironment       TLPSTR
	FpDriverPath        TLPSTR
	FpDataFile          TLPSTR
	FpConfigFile        TLPSTR
	FdwDriverAttributes TDWORD
	FdwConfigVersion    TDWORD
	FdwDriverVersion    TDWORD
}

type TDRIVER_INFO_5A = struct {
	FcVersion           TDWORD
	FpName              TLPSTR
	FpEnvironment       TLPSTR
	FpDriverPath        TLPSTR
	FpDataFile          TLPSTR
	FpConfigFile        TLPSTR
	FdwDriverAttributes TDWORD
	FdwConfigVersion    TDWORD
	FdwDriverVersion    TDWORD
}

type TDRIVER_INFO_5W = struct {
	FcVersion           TDWORD
	FpName              TLPWSTR
	FpEnvironment       TLPWSTR
	FpDriverPath        TLPWSTR
	FpDataFile          TLPWSTR
	FpConfigFile        TLPWSTR
	FdwDriverAttributes TDWORD
	FdwConfigVersion    TDWORD
	FdwDriverVersion    TDWORD
}

type TDRIVE_LAYOUT_INFORMATION_MBR = struct {
	FSignature TDWORD
}

type TDROPSTRUCT = struct {
	FhwndSource    THWND
	FhwndSink      THWND
	FwFmt          TDWORD
	FdwData        TULONG_PTR
	FptDrop        TPOINT
	FdwControlData TDWORD
}

type TDRVCONFIGINFO = struct {
	FdwDCISize          TDWORD
	FlpszDCISectionName TLPCWSTR
	FlpszDCIAliasName   TLPCWSTR
}

type TDRVCONFIGINFOEX = struct {
	FdwDCISize          TDWORD
	FlpszDCISectionName TLPCWSTR
	FlpszDCIAliasName   TLPCWSTR
	FdnDevNode          TDWORD
}

type TDSAFIPSVERSION_ENUM = int32

type TDSSPRIVKEY_VER3 = struct {
	Fmagic   TDWORD
	FbitlenP TDWORD
	FbitlenQ TDWORD
	FbitlenJ TDWORD
	FbitlenX TDWORD
	FDSSSeed TDSSSEED
}

type TDSSPUBKEY = struct {
	Fmagic  TDWORD
	Fbitlen TDWORD
}

type TDSSPUBKEY_VER3 = struct {
	Fmagic   TDWORD
	FbitlenP TDWORD
	FbitlenQ TDWORD
	FbitlenJ TDWORD
	FDSSSeed TDSSSEED
}

type TDSSSEED = struct {
	Fcounter TDWORD
	Fseed    [20]TBYTE
}

type TDVASPECT = int32

type TDVTARGETDEVICE = struct {
	FtdSize             TDWORD
	FtdDriverNameOffset TWORD
	FtdDeviceNameOffset TWORD
	FtdPortNameOffset   TWORD
	FtdExtDevmodeOffset TWORD
	FtdData             [1]TBYTE
}

type TDWORD = uint32

type TDWORD32 = uint32

type TDWORD64 = uint64

type TDWORDLONG = uint64

type TDWORD_BLOB = struct {
	FclSize TULONG
	FalData [1]TULONG
}

type TDWORD_SIZEDARR = struct {
	FclSize TULONG
	FpData  uintptr
}

type TDYNAMIC_TIME_ZONE_INFORMATION = struct {
	FBias                        TLONG
	FStandardName                [32]TWCHAR
	FStandardDate                TSYSTEMTIME
	FStandardBias                TLONG
	FDaylightName                [32]TWCHAR
	FDaylightDate                TSYSTEMTIME
	FDaylightBias                TLONG
	FTimeZoneKeyName             [128]TWCHAR
	FDynamicDaylightTimeDisabled TBOOLEAN
}

const TECHNOLOGY = 2

type TEDITWORDBREAKPROC = uintptr

type TEDITWORDBREAKPROCA = uintptr

type TEDITWORDBREAKPROCW = uintptr

type TEFS_CERTIFICATE_BLOB = struct {
	FdwCertEncodingType TDWORD
	FcbData             TDWORD
	FpbData             TPBYTE
}

type TEFS_HASH_BLOB = struct {
	FcbData TDWORD
	FpbData TPBYTE
}

type TEFS_KEY_INFO = struct {
	FdwVersion TDWORD
	FEntropy   TULONG
	FAlgorithm TALG_ID
	FKeyLength TULONG
}

type TEFS_RPC_BLOB = struct {
	FcbData TDWORD
	FpbData TPBYTE
}

type TEKPUBKEY = TTEKPUBKEY

type TELEMENT_TYPE = int32

type TEMR = struct {
	FiType TDWORD
	FnSize TDWORD
}

type TEMRABORTPATH = struct {
	Femr TEMR
}

type TEMRALPHABLEND = struct {
	Femr          TEMR
	FrclBounds    TRECTL
	FxDest        TLONG
	FyDest        TLONG
	FcxDest       TLONG
	FcyDest       TLONG
	FdwRop        TDWORD
	FxSrc         TLONG
	FySrc         TLONG
	FxformSrc     TXFORM
	FcrBkColorSrc TCOLORREF
	FiUsageSrc    TDWORD
	FoffBmiSrc    TDWORD
	FcbBmiSrc     TDWORD
	FoffBitsSrc   TDWORD
	FcbBitsSrc    TDWORD
	FcxSrc        TLONG
	FcySrc        TLONG
}

type TEMRANGLEARC = struct {
	Femr         TEMR
	FptlCenter   TPOINTL
	FnRadius     TDWORD
	FeStartAngle TFLOAT
	FeSweepAngle TFLOAT
}

type TEMRARC = struct {
	Femr      TEMR
	FrclBox   TRECTL
	FptlStart TPOINTL
	FptlEnd   TPOINTL
}

type TEMRARCTO = struct {
	Femr      TEMR
	FrclBox   TRECTL
	FptlStart TPOINTL
	FptlEnd   TPOINTL
}

type TEMRBEGINPATH = struct {
	Femr TEMR
}

type TEMRBITBLT = struct {
	Femr          TEMR
	FrclBounds    TRECTL
	FxDest        TLONG
	FyDest        TLONG
	FcxDest       TLONG
	FcyDest       TLONG
	FdwRop        TDWORD
	FxSrc         TLONG
	FySrc         TLONG
	FxformSrc     TXFORM
	FcrBkColorSrc TCOLORREF
	FiUsageSrc    TDWORD
	FoffBmiSrc    TDWORD
	FcbBmiSrc     TDWORD
	FoffBitsSrc   TDWORD
	FcbBitsSrc    TDWORD
}

type TEMRCHORD = struct {
	Femr      TEMR
	FrclBox   TRECTL
	FptlStart TPOINTL
	FptlEnd   TPOINTL
}

type TEMRCLOSEFIGURE = struct {
	Femr TEMR
}

type TEMRCOLORCORRECTPALETTE = struct {
	Femr         TEMR
	FihPalette   TDWORD
	FnFirstEntry TDWORD
	FnPalEntries TDWORD
	FnReserved   TDWORD
}

type TEMRCOLORMATCHTOTARGET = struct {
	Femr      TEMR
	FdwAction TDWORD
	FdwFlags  TDWORD
	FcbName   TDWORD
	FcbData   TDWORD
	FData     [1]TBYTE
}

type TEMRCREATEBRUSHINDIRECT = struct {
	Femr     TEMR
	FihBrush TDWORD
	Flb      TLOGBRUSH32
}

type TEMRCREATECOLORSPACE = struct {
	Femr  TEMR
	FihCS TDWORD
	Flcs  TLOGCOLORSPACEA
}

type TEMRCREATECOLORSPACEW = struct {
	Femr     TEMR
	FihCS    TDWORD
	Flcs     TLOGCOLORSPACEW
	FdwFlags TDWORD
	FcbData  TDWORD
	FData    [1]TBYTE
}

type TEMRCREATEDIBPATTERNBRUSHPT = struct {
	Femr     TEMR
	FihBrush TDWORD
	FiUsage  TDWORD
	FoffBmi  TDWORD
	FcbBmi   TDWORD
	FoffBits TDWORD
	FcbBits  TDWORD
}

type TEMRCREATEMONOBRUSH = struct {
	Femr     TEMR
	FihBrush TDWORD
	FiUsage  TDWORD
	FoffBmi  TDWORD
	FcbBmi   TDWORD
	FoffBits TDWORD
	FcbBits  TDWORD
}

type TEMRCREATEPALETTE = struct {
	Femr   TEMR
	FihPal TDWORD
	Flgpl  TLOGPALETTE
}

type TEMRCREATEPEN = struct {
	Femr   TEMR
	FihPen TDWORD
	Flopn  TLOGPEN
}

type TEMRDELETECOLORSPACE = struct {
	Femr  TEMR
	FihCS TDWORD
}

type TEMRDELETEOBJECT = struct {
	Femr      TEMR
	FihObject TDWORD
}

type TEMRDRAWESCAPE = struct {
	Femr       TEMR
	FiEscape   TINT
	FcbEscData TINT
	FEscData   [1]TBYTE
}

type TEMRELLIPSE = struct {
	Femr    TEMR
	FrclBox TRECTL
}

type TEMRENDPATH = struct {
	Femr TEMR
}

type TEMREOF = struct {
	Femr           TEMR
	FnPalEntries   TDWORD
	FoffPalEntries TDWORD
	FnSizeLast     TDWORD
}

type TEMREXCLUDECLIPRECT = struct {
	Femr     TEMR
	FrclClip TRECTL
}

type TEMREXTCREATEFONTINDIRECTW = struct {
	Femr    TEMR
	FihFont TDWORD
	Felfw   TEXTLOGFONTW
}

type TEMREXTCREATEPEN = struct {
	Femr     TEMR
	FihPen   TDWORD
	FoffBmi  TDWORD
	FcbBmi   TDWORD
	FoffBits TDWORD
	FcbBits  TDWORD
	Felp     TEXTLOGPEN
}

type TEMREXTESCAPE = struct {
	Femr       TEMR
	FiEscape   TINT
	FcbEscData TINT
	FEscData   [1]TBYTE
}

type TEMREXTFLOODFILL = struct {
	Femr      TEMR
	FptlStart TPOINTL
	FcrColor  TCOLORREF
	FiMode    TDWORD
}

type TEMREXTSELECTCLIPRGN = struct {
	Femr       TEMR
	FcbRgnData TDWORD
	FiMode     TDWORD
	FRgnData   [1]TBYTE
}

type TEMREXTTEXTOUTA = struct {
	Femr           TEMR
	FrclBounds     TRECTL
	FiGraphicsMode TDWORD
	FexScale       TFLOAT
	FeyScale       TFLOAT
	Femrtext       TEMRTEXT
}

type TEMREXTTEXTOUTW = struct {
	Femr           TEMR
	FrclBounds     TRECTL
	FiGraphicsMode TDWORD
	FexScale       TFLOAT
	FeyScale       TFLOAT
	Femrtext       TEMRTEXT
}

type TEMRFILLPATH = struct {
	Femr       TEMR
	FrclBounds TRECTL
}

type TEMRFILLRGN = struct {
	Femr       TEMR
	FrclBounds TRECTL
	FcbRgnData TDWORD
	FihBrush   TDWORD
	FRgnData   [1]TBYTE
}

type TEMRFLATTENPATH = struct {
	Femr TEMR
}

type TEMRFORMAT = struct {
	FdSignature TDWORD
	FnVersion   TDWORD
	FcbData     TDWORD
	FoffData    TDWORD
}

type TEMRFRAMERGN = struct {
	Femr       TEMR
	FrclBounds TRECTL
	FcbRgnData TDWORD
	FihBrush   TDWORD
	FszlStroke TSIZEL
	FRgnData   [1]TBYTE
}

type TEMRGDICOMMENT = struct {
	Femr    TEMR
	FcbData TDWORD
	FData   [1]TBYTE
}

type TEMRGLSBOUNDEDRECORD = struct {
	Femr       TEMR
	FrclBounds TRECTL
	FcbData    TDWORD
	FData      [1]TBYTE
}

type TEMRGLSRECORD = struct {
	Femr    TEMR
	FcbData TDWORD
	FData   [1]TBYTE
}

type TEMRGRADIENTFILL = struct {
	Femr       TEMR
	FrclBounds TRECTL
	FnVer      TDWORD
	FnTri      TDWORD
	FulMode    TULONG
	FVer       [1]TTRIVERTEX
}

type TEMRINTERSECTCLIPRECT = struct {
	Femr     TEMR
	FrclClip TRECTL
}

type TEMRINVERTRGN = struct {
	Femr       TEMR
	FrclBounds TRECTL
	FcbRgnData TDWORD
	FRgnData   [1]TBYTE
}

type TEMRLINETO = struct {
	Femr TEMR
	Fptl TPOINTL
}

type TEMRMASKBLT = struct {
	Femr          TEMR
	FrclBounds    TRECTL
	FxDest        TLONG
	FyDest        TLONG
	FcxDest       TLONG
	FcyDest       TLONG
	FdwRop        TDWORD
	FxSrc         TLONG
	FySrc         TLONG
	FxformSrc     TXFORM
	FcrBkColorSrc TCOLORREF
	FiUsageSrc    TDWORD
	FoffBmiSrc    TDWORD
	FcbBmiSrc     TDWORD
	FoffBitsSrc   TDWORD
	FcbBitsSrc    TDWORD
	FxMask        TLONG
	FyMask        TLONG
	FiUsageMask   TDWORD
	FoffBmiMask   TDWORD
	FcbBmiMask    TDWORD
	FoffBitsMask  TDWORD
	FcbBitsMask   TDWORD
}

type TEMRMODIFYWORLDTRANSFORM = struct {
	Femr   TEMR
	Fxform TXFORM
	FiMode TDWORD
}

type TEMRMOVETOEX = struct {
	Femr TEMR
	Fptl TPOINTL
}

type TEMRNAMEDESCAPE = struct {
	Femr       TEMR
	FiEscape   TINT
	FcbDriver  TINT
	FcbEscData TINT
	FEscData   [1]TBYTE
}

type TEMROFFSETCLIPRGN = struct {
	Femr       TEMR
	FptlOffset TPOINTL
}

type TEMRPAINTRGN = struct {
	Femr       TEMR
	FrclBounds TRECTL
	FcbRgnData TDWORD
	FRgnData   [1]TBYTE
}

type TEMRPIE = struct {
	Femr      TEMR
	FrclBox   TRECTL
	FptlStart TPOINTL
	FptlEnd   TPOINTL
}

type TEMRPIXELFORMAT = struct {
	Femr TEMR
	Fpfd TPIXELFORMATDESCRIPTOR
}

type TEMRPLGBLT = struct {
	Femr          TEMR
	FrclBounds    TRECTL
	FaptlDest     [3]TPOINTL
	FxSrc         TLONG
	FySrc         TLONG
	FcxSrc        TLONG
	FcySrc        TLONG
	FxformSrc     TXFORM
	FcrBkColorSrc TCOLORREF
	FiUsageSrc    TDWORD
	FoffBmiSrc    TDWORD
	FcbBmiSrc     TDWORD
	FoffBitsSrc   TDWORD
	FcbBitsSrc    TDWORD
	FxMask        TLONG
	FyMask        TLONG
	FiUsageMask   TDWORD
	FoffBmiMask   TDWORD
	FcbBmiMask    TDWORD
	FoffBitsMask  TDWORD
	FcbBitsMask   TDWORD
}

type TEMRPOLYBEZIER = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcptl      TDWORD
	Faptl      [1]TPOINTL
}

type TEMRPOLYBEZIER16 = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcpts      TDWORD
	Fapts      [1]TPOINTS
}

type TEMRPOLYBEZIERTO = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcptl      TDWORD
	Faptl      [1]TPOINTL
}

type TEMRPOLYBEZIERTO16 = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcpts      TDWORD
	Fapts      [1]TPOINTS
}

type TEMRPOLYDRAW = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcptl      TDWORD
	Faptl      [1]TPOINTL
	FabTypes   [1]TBYTE
}

type TEMRPOLYDRAW16 = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcpts      TDWORD
	Fapts      [1]TPOINTS
	FabTypes   [1]TBYTE
}

type TEMRPOLYGON = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcptl      TDWORD
	Faptl      [1]TPOINTL
}

type TEMRPOLYGON16 = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcpts      TDWORD
	Fapts      [1]TPOINTS
}

type TEMRPOLYLINE = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcptl      TDWORD
	Faptl      [1]TPOINTL
}

type TEMRPOLYLINE16 = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcpts      TDWORD
	Fapts      [1]TPOINTS
}

type TEMRPOLYLINETO = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcptl      TDWORD
	Faptl      [1]TPOINTL
}

type TEMRPOLYLINETO16 = struct {
	Femr       TEMR
	FrclBounds TRECTL
	Fcpts      TDWORD
	Fapts      [1]TPOINTS
}

type TEMRPOLYPOLYGON = struct {
	Femr         TEMR
	FrclBounds   TRECTL
	FnPolys      TDWORD
	Fcptl        TDWORD
	FaPolyCounts [1]TDWORD
	Faptl        [1]TPOINTL
}

type TEMRPOLYPOLYGON16 = struct {
	Femr         TEMR
	FrclBounds   TRECTL
	FnPolys      TDWORD
	Fcpts        TDWORD
	FaPolyCounts [1]TDWORD
	Fapts        [1]TPOINTS
}

type TEMRPOLYPOLYLINE = struct {
	Femr         TEMR
	FrclBounds   TRECTL
	FnPolys      TDWORD
	Fcptl        TDWORD
	FaPolyCounts [1]TDWORD
	Faptl        [1]TPOINTL
}

type TEMRPOLYPOLYLINE16 = struct {
	Femr         TEMR
	FrclBounds   TRECTL
	FnPolys      TDWORD
	Fcpts        TDWORD
	FaPolyCounts [1]TDWORD
	Fapts        [1]TPOINTS
}

type TEMRPOLYTEXTOUTA = struct {
	Femr           TEMR
	FrclBounds     TRECTL
	FiGraphicsMode TDWORD
	FexScale       TFLOAT
	FeyScale       TFLOAT
	FcStrings      TLONG
	Faemrtext      [1]TEMRTEXT
}

type TEMRPOLYTEXTOUTW = struct {
	Femr           TEMR
	FrclBounds     TRECTL
	FiGraphicsMode TDWORD
	FexScale       TFLOAT
	FeyScale       TFLOAT
	FcStrings      TLONG
	Faemrtext      [1]TEMRTEXT
}

type TEMRREALIZEPALETTE = struct {
	Femr TEMR
}

type TEMRRECTANGLE = struct {
	Femr    TEMR
	FrclBox TRECTL
}

type TEMRRESIZEPALETTE = struct {
	Femr      TEMR
	FihPal    TDWORD
	FcEntries TDWORD
}

type TEMRRESTOREDC = struct {
	Femr       TEMR
	FiRelative TLONG
}

type TEMRROUNDRECT = struct {
	Femr       TEMR
	FrclBox    TRECTL
	FszlCorner TSIZEL
}

type TEMRSAVEDC = struct {
	Femr TEMR
}

type TEMRSCALEVIEWPORTEXTEX = struct {
	Femr    TEMR
	FxNum   TLONG
	FxDenom TLONG
	FyNum   TLONG
	FyDenom TLONG
}

type TEMRSCALEWINDOWEXTEX = struct {
	Femr    TEMR
	FxNum   TLONG
	FxDenom TLONG
	FyNum   TLONG
	FyDenom TLONG
}

type TEMRSELECTCLIPPATH = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSELECTCOLORSPACE = struct {
	Femr  TEMR
	FihCS TDWORD
}

type TEMRSELECTOBJECT = struct {
	Femr      TEMR
	FihObject TDWORD
}

type TEMRSELECTPALETTE = struct {
	Femr   TEMR
	FihPal TDWORD
}

type TEMRSETARCDIRECTION = struct {
	Femr           TEMR
	FiArcDirection TDWORD
}

type TEMRSETBKCOLOR = struct {
	Femr     TEMR
	FcrColor TCOLORREF
}

type TEMRSETBKMODE = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSETBRUSHORGEX = struct {
	Femr       TEMR
	FptlOrigin TPOINTL
}

type TEMRSETCOLORADJUSTMENT = struct {
	Femr             TEMR
	FColorAdjustment TCOLORADJUSTMENT
}

type TEMRSETCOLORSPACE = struct {
	Femr  TEMR
	FihCS TDWORD
}

type TEMRSETDIBITSTODEVICE = struct {
	Femr        TEMR
	FrclBounds  TRECTL
	FxDest      TLONG
	FyDest      TLONG
	FxSrc       TLONG
	FySrc       TLONG
	FcxSrc      TLONG
	FcySrc      TLONG
	FoffBmiSrc  TDWORD
	FcbBmiSrc   TDWORD
	FoffBitsSrc TDWORD
	FcbBitsSrc  TDWORD
	FiUsageSrc  TDWORD
	FiStartScan TDWORD
	FcScans     TDWORD
}

type TEMRSETICMMODE = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSETICMPROFILE = struct {
	Femr     TEMR
	FdwFlags TDWORD
	FcbName  TDWORD
	FcbData  TDWORD
	FData    [1]TBYTE
}

type TEMRSETICMPROFILEA = struct {
	Femr     TEMR
	FdwFlags TDWORD
	FcbName  TDWORD
	FcbData  TDWORD
	FData    [1]TBYTE
}

type TEMRSETICMPROFILEW = struct {
	Femr     TEMR
	FdwFlags TDWORD
	FcbName  TDWORD
	FcbData  TDWORD
	FData    [1]TBYTE
}

type TEMRSETLAYOUT = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSETMAPMODE = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSETMAPPERFLAGS = struct {
	Femr     TEMR
	FdwFlags TDWORD
}

type TEMRSETMETARGN = struct {
	Femr TEMR
}

type TEMRSETMITERLIMIT = struct {
	Femr         TEMR
	FeMiterLimit TFLOAT
}

type TEMRSETPALETTEENTRIES = struct {
	Femr         TEMR
	FihPal       TDWORD
	FiStart      TDWORD
	FcEntries    TDWORD
	FaPalEntries [1]TPALETTEENTRY
}

type TEMRSETPIXELV = struct {
	Femr      TEMR
	FptlPixel TPOINTL
	FcrColor  TCOLORREF
}

type TEMRSETPOLYFILLMODE = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSETROP2 = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSETSTRETCHBLTMODE = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSETTEXTALIGN = struct {
	Femr   TEMR
	FiMode TDWORD
}

type TEMRSETTEXTCOLOR = struct {
	Femr     TEMR
	FcrColor TCOLORREF
}

type TEMRSETVIEWPORTEXTEX = struct {
	Femr       TEMR
	FszlExtent TSIZEL
}

type TEMRSETVIEWPORTORGEX = struct {
	Femr       TEMR
	FptlOrigin TPOINTL
}

type TEMRSETWINDOWEXTEX = struct {
	Femr       TEMR
	FszlExtent TSIZEL
}

type TEMRSETWINDOWORGEX = struct {
	Femr       TEMR
	FptlOrigin TPOINTL
}

type TEMRSETWORLDTRANSFORM = struct {
	Femr   TEMR
	Fxform TXFORM
}

type TEMRSTRETCHBLT = struct {
	Femr          TEMR
	FrclBounds    TRECTL
	FxDest        TLONG
	FyDest        TLONG
	FcxDest       TLONG
	FcyDest       TLONG
	FdwRop        TDWORD
	FxSrc         TLONG
	FySrc         TLONG
	FxformSrc     TXFORM
	FcrBkColorSrc TCOLORREF
	FiUsageSrc    TDWORD
	FoffBmiSrc    TDWORD
	FcbBmiSrc     TDWORD
	FoffBitsSrc   TDWORD
	FcbBitsSrc    TDWORD
	FcxSrc        TLONG
	FcySrc        TLONG
}

type TEMRSTRETCHDIBITS = struct {
	Femr        TEMR
	FrclBounds  TRECTL
	FxDest      TLONG
	FyDest      TLONG
	FxSrc       TLONG
	FySrc       TLONG
	FcxSrc      TLONG
	FcySrc      TLONG
	FoffBmiSrc  TDWORD
	FcbBmiSrc   TDWORD
	FoffBitsSrc TDWORD
	FcbBitsSrc  TDWORD
	FiUsageSrc  TDWORD
	FdwRop      TDWORD
	FcxDest     TLONG
	FcyDest     TLONG
}

type TEMRSTROKEANDFILLPATH = struct {
	Femr       TEMR
	FrclBounds TRECTL
}

type TEMRSTROKEPATH = struct {
	Femr       TEMR
	FrclBounds TRECTL
}

type TEMRTEXT = struct {
	FptlReference TPOINTL
	FnChars       TDWORD
	FoffString    TDWORD
	FfOptions     TDWORD
	Frcl          TRECTL
	FoffDx        TDWORD
}

type TEMRTRANSPARENTBLT = struct {
	Femr          TEMR
	FrclBounds    TRECTL
	FxDest        TLONG
	FyDest        TLONG
	FcxDest       TLONG
	FcyDest       TLONG
	FdwRop        TDWORD
	FxSrc         TLONG
	FySrc         TLONG
	FxformSrc     TXFORM
	FcrBkColorSrc TCOLORREF
	FiUsageSrc    TDWORD
	FoffBmiSrc    TDWORD
	FcbBmiSrc     TDWORD
	FoffBitsSrc   TDWORD
	FcbBitsSrc    TDWORD
	FcxSrc        TLONG
	FcySrc        TLONG
}

type TEMRWIDENPATH = struct {
	Femr TEMR
}

type TENCRYPTION_BUFFER = struct {
	FEncryptionOperation TDWORD
	FPrivate             [1]TBYTE
}

type TENCRYPTION_CERTIFICATE = struct {
	FcbTotalLength TDWORD
	FpUserSid      uintptr
	FpCertBlob     TPEFS_CERTIFICATE_BLOB
}

type TENCRYPTION_CERTIFICATE_HASH = struct {
	FcbTotalLength        TDWORD
	FpUserSid             uintptr
	FpHash                TPEFS_HASH_BLOB
	FlpDisplayInformation TLPWSTR
}

type TENCRYPTION_CERTIFICATE_HASH_LIST = struct {
	FnCert_Hash TDWORD
	FpUsers     uintptr
}

type TENCRYPTION_CERTIFICATE_LIST = struct {
	FnUsers TDWORD
	FpUsers uintptr
}

type TENHMETAHEADER = struct {
	FiType          TDWORD
	FnSize          TDWORD
	FrclBounds      TRECTL
	FrclFrame       TRECTL
	FdSignature     TDWORD
	FnVersion       TDWORD
	FnBytes         TDWORD
	FnRecords       TDWORD
	FnHandles       TWORD
	FsReserved      TWORD
	FnDescription   TDWORD
	FoffDescription TDWORD
	FnPalEntries    TDWORD
	FszlDevice      TSIZEL
	FszlMillimeters TSIZEL
	FcbPixelFormat  TDWORD
	FoffPixelFormat TDWORD
	FbOpenGL        TDWORD
	FszlMicrometers TSIZEL
}

type TENHMETARECORD = struct {
	FiType TDWORD
	FnSize TDWORD
	FdParm [1]TDWORD
}

type TENHMFENUMPROC = uintptr

type TENLISTMENT_BASIC_INFORMATION = struct {
	FEnlistmentId      TGUID
	FTransactionId     TGUID
	FResourceManagerId TGUID
}

type TENLISTMENT_CRM_INFORMATION = struct {
	FCrmTransactionManagerId TGUID
	FCrmResourceManagerId    TGUID
	FCrmEnlistmentId         TGUID
}

type TENLISTMENT_INFORMATION_CLASS = int32

type TENUMLOGFONT = struct {
	FelfLogFont  TLOGFONTA
	FelfFullName [64]TBYTE
	FelfStyle    [32]TBYTE
}

type TENUMLOGFONTA = struct {
	FelfLogFont  TLOGFONTA
	FelfFullName [64]TBYTE
	FelfStyle    [32]TBYTE
}

type TENUMLOGFONTEX = struct {
	FelfLogFont  TLOGFONTA
	FelfFullName [64]TBYTE
	FelfStyle    [32]TBYTE
	FelfScript   [32]TBYTE
}

type TENUMLOGFONTEXA = struct {
	FelfLogFont  TLOGFONTA
	FelfFullName [64]TBYTE
	FelfStyle    [32]TBYTE
	FelfScript   [32]TBYTE
}

type TENUMLOGFONTEXDV = struct {
	FelfEnumLogfontEx TENUMLOGFONTEXA
	FelfDesignVector  TDESIGNVECTOR
}

type TENUMLOGFONTEXDVA = struct {
	FelfEnumLogfontEx TENUMLOGFONTEXA
	FelfDesignVector  TDESIGNVECTOR
}

type TENUMLOGFONTEXDVW = struct {
	FelfEnumLogfontEx TENUMLOGFONTEXW
	FelfDesignVector  TDESIGNVECTOR
}

type TENUMLOGFONTEXW = struct {
	FelfLogFont  TLOGFONTW
	FelfFullName [64]TWCHAR
	FelfStyle    [32]TWCHAR
	FelfScript   [32]TWCHAR
}

type TENUMLOGFONTW = struct {
	FelfLogFont  TLOGFONTW
	FelfFullName [64]TWCHAR
	FelfStyle    [32]TWCHAR
}

type TENUMRESLANGPROCA = uintptr

type TENUMRESLANGPROCW = uintptr

type TENUMRESNAMEPROCA = uintptr

type TENUMRESNAMEPROCW = uintptr

type TENUMRESTYPEPROCA = uintptr

type TENUMRESTYPEPROCW = uintptr

type TENUMTEXTMETRIC = struct {
	FetmNewTextMetricEx TNEWTEXTMETRICEXA
	FetmAxesList        TAXESLISTA
}

type TENUMTEXTMETRICA = struct {
	FetmNewTextMetricEx TNEWTEXTMETRICEXA
	FetmAxesList        TAXESLISTA
}

type TENUMTEXTMETRICW = struct {
	FetmNewTextMetricEx TNEWTEXTMETRICEXW
	FetmAxesList        TAXESLISTW
}

type TENUMUILANG = struct {
	FNumOfEnumUILang    TULONG
	FSizeOfEnumUIBuffer TULONG
	FpEnumUIBuffer      uintptr
}

type TENUM_SERVICE_STATUS = struct {
	FlpServiceName TLPSTR
	FlpDisplayName TLPSTR
	FServiceStatus TSERVICE_STATUS
}

type TENUM_SERVICE_STATUSA = struct {
	FlpServiceName TLPSTR
	FlpDisplayName TLPSTR
	FServiceStatus TSERVICE_STATUS
}

type TENUM_SERVICE_STATUSW = struct {
	FlpServiceName TLPWSTR
	FlpDisplayName TLPWSTR
	FServiceStatus TSERVICE_STATUS
}

type TENUM_SERVICE_STATUS_PROCESS = struct {
	FlpServiceName        TLPSTR
	FlpDisplayName        TLPSTR
	FServiceStatusProcess TSERVICE_STATUS_PROCESS
}

type TENUM_SERVICE_STATUS_PROCESSA = struct {
	FlpServiceName        TLPSTR
	FlpDisplayName        TLPSTR
	FServiceStatusProcess TSERVICE_STATUS_PROCESS
}

type TENUM_SERVICE_STATUS_PROCESSW = struct {
	FlpServiceName        TLPWSTR
	FlpDisplayName        TLPWSTR
	FServiceStatusProcess TSERVICE_STATUS_PROCESS
}

type TEOLE_AUTHENTICATION_CAPABILITIES = int32

type TEPrintXPSJobOperation = int32

type TEPrintXPSJobProgress = int32

type TEVENTLOGRECORD = struct {
	FLength              TDWORD
	FReserved            TDWORD
	FRecordNumber        TDWORD
	FTimeGenerated       TDWORD
	FTimeWritten         TDWORD
	FEventID             TDWORD
	FEventType           TWORD
	FNumStrings          TWORD
	FEventCategory       TWORD
	FReservedFlags       TWORD
	FClosingRecordNumber TDWORD
	FStringOffset        TDWORD
	FUserSidLength       TDWORD
	FUserSidOffset       TDWORD
	FDataLength          TDWORD
	FDataOffset          TDWORD
}

type TEVENTLOG_FULL_INFORMATION = struct {
	FdwFull TDWORD
}

type TEVENTMSG = struct {
	Fmessage TUINT
	FparamL  TUINT
	FparamH  TUINT
	Ftime    TDWORD
	Fhwnd    THWND
}

type TEVENTSFORLOGFILE = struct {
	FulSize           TDWORD
	FszLogicalLogFile [256]TWCHAR
	FulNumRecords     TDWORD
}

type TEV_EXTRA_CERT_CHAIN_POLICY_PARA = struct {
	FcbSize                      TDWORD
	FdwRootProgramQualifierFlags TDWORD
}

type TEV_EXTRA_CERT_CHAIN_POLICY_STATUS = struct {
	FcbSize               TDWORD
	FdwQualifiers         TDWORD
	FdwIssuanceUsageIndex TDWORD
}

type TEXCEPINFO = struct {
	FwCode             TWORD
	FwReserved         TWORD
	FbstrSource        TBSTR
	FbstrDescription   TBSTR
	FbstrHelpFile      TBSTR
	FdwHelpContext     TDWORD
	FpvReserved        TPVOID
	FpfnDeferredFillIn uintptr
	Fscode             TSCODE
}

type TEXCEPTION_DEBUG_INFO = struct {
	FExceptionRecord TEXCEPTION_RECORD
	FdwFirstChance   TDWORD
}

type TEXCEPTION_POINTERS = struct {
	FExceptionRecord TPEXCEPTION_RECORD
	FContextRecord   TPCONTEXT
}

type TEXCEPTION_RECORD = struct {
	FExceptionCode        TDWORD
	FExceptionFlags       TDWORD
	FExceptionRecord      uintptr
	FExceptionAddress     TPVOID
	FNumberParameters     TDWORD
	FExceptionInformation [15]TULONG_PTR
}

type TEXCEPTION_RECORD32 = struct {
	FExceptionCode        TDWORD
	FExceptionFlags       TDWORD
	FExceptionRecord      TDWORD
	FExceptionAddress     TDWORD
	FNumberParameters     TDWORD
	FExceptionInformation [15]TDWORD
}

type TEXECUTION_STATE = uint32

type TEXFAT_STATISTICS = struct {
	FCreateHits          TDWORD
	FSuccessfulCreates   TDWORD
	FFailedCreates       TDWORD
	FNonCachedReads      TDWORD
	FNonCachedReadBytes  TDWORD
	FNonCachedWrites     TDWORD
	FNonCachedWriteBytes TDWORD
	FNonCachedDiskReads  TDWORD
	FNonCachedDiskWrites TDWORD
}

type TEXIT_PROCESS_DEBUG_INFO = struct {
	FdwExitCode TDWORD
}

type TEXIT_THREAD_DEBUG_INFO = struct {
	FdwExitCode TDWORD
}

type TEXPAND_VIRTUAL_DISK_FLAG = int32

type TEXPAND_VIRTUAL_DISK_VERSION = int32

type TEXPR_EVAL = uintptr

const TEXTCAPS = 34

type TEXTCONN = int32

type TEXTENDED_ENCRYPTED_DATA_INFO = struct {
	FExtendedCode TULONG
	FLength       TULONG
	FFlags        TULONG
	FReserved     TULONG
}

type TEXTLOGFONT = struct {
	FelfLogFont   TLOGFONTA
	FelfFullName  [64]TBYTE
	FelfStyle     [32]TBYTE
	FelfVersion   TDWORD
	FelfStyleSize TDWORD
	FelfMatch     TDWORD
	FelfReserved  TDWORD
	FelfVendorId  [4]TBYTE
	FelfCulture   TDWORD
	FelfPanose    TPANOSE
}

type TEXTLOGFONTA = struct {
	FelfLogFont   TLOGFONTA
	FelfFullName  [64]TBYTE
	FelfStyle     [32]TBYTE
	FelfVersion   TDWORD
	FelfStyleSize TDWORD
	FelfMatch     TDWORD
	FelfReserved  TDWORD
	FelfVendorId  [4]TBYTE
	FelfCulture   TDWORD
	FelfPanose    TPANOSE
}

type TEXTLOGFONTW = struct {
	FelfLogFont   TLOGFONTW
	FelfFullName  [64]TWCHAR
	FelfStyle     [32]TWCHAR
	FelfVersion   TDWORD
	FelfStyleSize TDWORD
	FelfMatch     TDWORD
	FelfReserved  TDWORD
	FelfVendorId  [4]TBYTE
	FelfCulture   TDWORD
	FelfPanose    TPANOSE
}

type TEXTLOGPEN = struct {
	FelpPenStyle   TDWORD
	FelpWidth      TDWORD
	FelpBrushStyle TUINT
	FelpColor      TCOLORREF
	FelpHatch      TULONG_PTR
	FelpNumEntries TDWORD
	FelpStyleEntry [1]TDWORD
}

type TEXTLOGPEN32 = struct {
	FelpPenStyle   TDWORD
	FelpWidth      TDWORD
	FelpBrushStyle TUINT
	FelpColor      TCOLORREF
	FelpHatch      TULONG
	FelpNumEntries TDWORD
	FelpStyleEntry [1]TDWORD
}

type TEXTMETRIC = TTEXTMETRIC

type TEXTMETRICA = TTEXTMETRICA

type TEXTMETRICW = TTEXTMETRICW

// C documentation
//
//	/* State information for the randomness gatherer. */
type TEntropyGatherer = struct {
	Fa    uintptr
	Fna   int32
	Fi    int32
	FnXor int32
}

type TExtendedErrorParamTypes = int32

type TFARPROC = uintptr

type TFAT_STATISTICS = struct {
	FCreateHits          TDWORD
	FSuccessfulCreates   TDWORD
	FFailedCreates       TDWORD
	FNonCachedReads      TDWORD
	FNonCachedReadBytes  TDWORD
	FNonCachedWrites     TDWORD
	FNonCachedWriteBytes TDWORD
	FNonCachedDiskReads  TDWORD
	FNonCachedDiskWrites TDWORD
}

type TFCHAR = uint8

type TFD_SET = struct {
	Ffd_count Tu_int
	Ffd_array [64]TSOCKET
}

type TFEEDBACK_TYPE = uint32

type TFILE = struct {
	F_ptr      uintptr
	F_cnt      int32
	F_base     uintptr
	F_flag     int32
	F_file     int32
	F_charbuf  int32
	F_bufsiz   int32
	F_tmpfname uintptr
}

type TFILEMUIINFO = struct {
	FdwSize               TDWORD
	FdwVersion            TDWORD
	FdwFileType           TDWORD
	FpChecksum            [16]TBYTE
	FpServiceChecksum     [16]TBYTE
	FdwLanguageNameOffset TDWORD
	FdwTypeIDMainSize     TDWORD
	FdwTypeIDMainOffset   TDWORD
	FdwTypeNameMainOffset TDWORD
	FdwTypeIDMUISize      TDWORD
	FdwTypeIDMUIOffset    TDWORD
	FdwTypeNameMUIOffset  TDWORD
	FabBuffer             [8]TBYTE
}

type TFILEOP_FLAGS = uint16

type TFILESYSTEM_STATISTICS = struct {
	FFileSystemType          TWORD
	FVersion                 TWORD
	FSizeOfCompleteStructure TDWORD
	FUserFileReads           TDWORD
	FUserFileReadBytes       TDWORD
	FUserDiskReads           TDWORD
	FUserFileWrites          TDWORD
	FUserFileWriteBytes      TDWORD
	FUserDiskWrites          TDWORD
	FMetaDataReads           TDWORD
	FMetaDataReadBytes       TDWORD
	FMetaDataDiskReads       TDWORD
	FMetaDataWrites          TDWORD
	FMetaDataWriteBytes      TDWORD
	FMetaDataDiskWrites      TDWORD
}

type TFILETIME = struct {
	FdwLowDateTime  TDWORD
	FdwHighDateTime TDWORD
}

type TFILE_ALIGNMENT_INFO = struct {
	FAlignmentRequirement TULONG
}

type TFILE_ATTRIBUTE_TAG_INFO = struct {
	FFileAttributes TDWORD
	FReparseTag     TDWORD
}

type TFILE_CASE_SENSITIVE_INFO = struct {
	FFlags TULONG
}

type TFILE_DISPOSITION_INFO = struct {
	FDeleteFileA TBOOLEAN
}

type TFILE_DISPOSITION_INFO_EX = struct {
	FFlags TDWORD
}

type TFILE_FS_PERSISTENT_VOLUME_INFORMATION = struct {
	FVolumeFlags TULONG
	FFlagMask    TULONG
	FVersion     TULONG
	FReserved    TULONG
}

type TFILE_ID_128 = struct {
	FIdentifier [16]TBYTE
}

type TFILE_ID_TYPE = int32

type TFILE_INFO_BY_HANDLE_CLASS = int32

type TFILE_IO_PRIORITY_HINT_INFO = struct {
	FPriorityHint TPRIORITY_HINT
}

type TFILE_MAKE_COMPATIBLE_BUFFER = struct {
	FCloseDisc TBOOLEAN
}

type TFILE_NAME_INFO = struct {
	FFileNameLength TDWORD
	FFileName       [1]TWCHAR
}

type TFILE_NOTIFY_INFORMATION = struct {
	FNextEntryOffset TDWORD
	FAction          TDWORD
	FFileNameLength  TDWORD
	FFileName        [1]TWCHAR
}

type TFILE_OBJECTID_BUFFER = struct {
	FObjectId   [16]TBYTE
	F__ccgo1_16 struct {
		FExtendedInfo [0][48]TBYTE
		F__ccgo0_0    struct {
			FBirthVolumeId [16]TBYTE
			FBirthObjectId [16]TBYTE
			FDomainId      [16]TBYTE
		}
	}
}

type TFILE_PROVIDER_EXTERNAL_INFO_V0 = struct {
	FVersion   TDWORD
	FAlgorithm TDWORD
}

type TFILE_PROVIDER_EXTERNAL_INFO_V1 = struct {
	FVersion   TDWORD
	FAlgorithm TDWORD
	FFlags     TDWORD
}

type TFILE_QUERY_SPARING_BUFFER = struct {
	FSparingUnitBytes TULONG
	FSoftwareSparing  TBOOLEAN
	FTotalSpareBlocks TULONG
	FFreeSpareBlocks  TULONG
}

type TFILE_REMOTE_PROTOCOL_INFO = struct {
	FStructureVersion     TUSHORT
	FStructureSize        TUSHORT
	FProtocol             TULONG
	FProtocolMajorVersion TUSHORT
	FProtocolMinorVersion TUSHORT
	FProtocolRevision     TUSHORT
	FReserved             TUSHORT
	FFlags                TULONG
	FGenericReserved      struct {
		FReserved [8]TULONG
	}
	FProtocolSpecific struct {
		FReserved [0][16]TULONG
		FSmb2     struct {
			FServer struct {
				FCapabilities TULONG
			}
			FShare struct {
				FCapabilities TULONG
				FCachingFlags TULONG
			}
		}
		F__ccgo_pad2 [52]byte
	}
}

type TFILE_RENAME_INFO = struct {
	F__ccgo0_0 struct {
		FFlags           [0]TDWORD
		FReplaceIfExists TBOOLEAN
		F__ccgo_pad2     [3]byte
	}
	FRootDirectory  THANDLE
	FFileNameLength TDWORD
	FFileName       [1]TWCHAR
}

type TFILE_SET_DEFECT_MGMT_BUFFER = struct {
	FDisable TBOOLEAN
}

type TFILE_SET_SPARSE_BUFFER = struct {
	FSetSparse TBOOLEAN
}

type TFILE_STORAGE_INFO = struct {
	FLogicalBytesPerSector                                 TULONG
	FPhysicalBytesPerSectorForAtomicity                    TULONG
	FPhysicalBytesPerSectorForPerformance                  TULONG
	FFileSystemEffectivePhysicalBytesPerSectorForAtomicity TULONG
	FFlags                                                 TULONG
	FByteOffsetForSectorAlignment                          TULONG
	FByteOffsetForPartitionAlignment                       TULONG
}

type TFILE_SYSTEM_RECOGNITION_INFORMATION = struct {
	FFileSystem [9]TCHAR
}

type TFILE_SYSTEM_RECOGNITION_STRUCTURE = struct {
	FJmp        [3]TUCHAR
	FFsName     [8]TUCHAR
	FMustBeZero [5]TUCHAR
	FIdentifier TULONG
	FLength     TUSHORT
	FChecksum   TUSHORT
}

type TFILE_TYPE_NOTIFICATION_INPUT = struct {
	FFlags          TULONG
	FNumFileTypeIDs TULONG
	FFileTypeID     [1]TGUID
}

type TFILTERKEYS = struct {
	FcbSize      TUINT
	FdwFlags     TDWORD
	FiWaitMSec   TDWORD
	FiDelayMSec  TDWORD
	FiRepeatMSec TDWORD
	FiBounceMSec TDWORD
}

type TFINDEX_INFO_LEVELS = int32

type TFINDEX_SEARCH_OPS = int32

type TFINDREPLACE = struct {
	FlStructSize      TDWORD
	FhwndOwner        THWND
	FhInstance        THINSTANCE
	FFlags            TDWORD
	FlpstrFindWhat    TLPSTR
	FlpstrReplaceWith TLPSTR
	FwFindWhatLen     TWORD
	FwReplaceWithLen  TWORD
	FlCustData        TLPARAM
	FlpfnHook         TLPFRHOOKPROC
	FlpTemplateName   TLPCSTR
}

type TFINDREPLACEA = struct {
	FlStructSize      TDWORD
	FhwndOwner        THWND
	FhInstance        THINSTANCE
	FFlags            TDWORD
	FlpstrFindWhat    TLPSTR
	FlpstrReplaceWith TLPSTR
	FwFindWhatLen     TWORD
	FwReplaceWithLen  TWORD
	FlCustData        TLPARAM
	FlpfnHook         TLPFRHOOKPROC
	FlpTemplateName   TLPCSTR
}

type TFINDREPLACEW = struct {
	FlStructSize      TDWORD
	FhwndOwner        THWND
	FhInstance        THINSTANCE
	FFlags            TDWORD
	FlpstrFindWhat    TLPWSTR
	FlpstrReplaceWith TLPWSTR
	FwFindWhatLen     TWORD
	FwReplaceWithLen  TWORD
	FlCustData        TLPARAM
	FlpfnHook         TLPFRHOOKPROC
	FlpTemplateName   TLPCWSTR
}

type TFIND_BY_SID_DATA = struct {
	FRestart TDWORD
	FSid     TSID
}

type TFIND_BY_SID_OUTPUT = struct {
	FNextEntryOffset TDWORD
	FFileIndex       TDWORD
	FFileNameLength  TDWORD
	FFileName        [1]TWCHAR
}

type TFIND_NAME_BUFFER = struct {
	Flength           TUCHAR
	Faccess_control   TUCHAR
	Fframe_control    TUCHAR
	Fdestination_addr [6]TUCHAR
	Fsource_addr      [6]TUCHAR
	Frouting_info     [18]TUCHAR
}

type TFIND_NAME_HEADER = struct {
	Fnode_count   TWORD
	Freserved     TUCHAR
	Funique_group TUCHAR
}

type TFIRMWARE_TYPE = int32

type TFIXED = struct {
	Ffract TWORD
	Fvalue int16
}

type TFLAGGED_BYTE_BLOB = struct {
	FfFlags TULONG
	FclSize TULONG
	FabData [1]Tbyte
}

type TFLAGGED_WORD_BLOB = struct {
	FfFlags TULONG
	FclSize TULONG
	FasData [1]uint16
}

type TFLAG_STGMEDIUM = struct {
	FContextFlags   TLONG
	FfPassOwnership TLONG
	FStgmed         TSTGMEDIUM
}

type TFLASHWINFO = struct {
	FcbSize    TUINT
	Fhwnd      THWND
	FdwFlags   TDWORD
	FuCount    TUINT
	FdwTimeout TDWORD
}

type TFLOAT = float32

type TFLONG = uint32

type TFMTID = struct {
	FData1 uint32
	FData2 uint16
	FData3 uint16
	FData4 [8]uint8
}

type TFOCUS_EVENT_RECORD = struct {
	FbSetFocus TWINBOOL
}

type TFONTENUMPROC = uintptr

type TFONTENUMPROCA = uintptr

type TFONTENUMPROCW = uintptr

type TFONTSIGNATURE = struct {
	FfsUsb [4]TDWORD
	FfsCsb [2]TDWORD
}

type TFORMATETC = struct {
	FcfFormat TCLIPFORMAT
	Fptd      uintptr
	FdwAspect TDWORD
	Flindex   TLONG
	Ftymed    TDWORD
}

type TFORMAT_EX_PARAMETERS = struct {
	FMediaType           TMEDIA_TYPE
	FStartCylinderNumber TDWORD
	FEndCylinderNumber   TDWORD
	FStartHeadNumber     TDWORD
	FEndHeadNumber       TDWORD
	FFormatGapLength     TWORD
	FSectorsPerTrack     TWORD
	FSectorNumber        [1]TWORD
}

type TFORMAT_PARAMETERS = struct {
	FMediaType           TMEDIA_TYPE
	FStartCylinderNumber TDWORD
	FEndCylinderNumber   TDWORD
	FStartHeadNumber     TDWORD
	FEndHeadNumber       TDWORD
}

type TFORM_INFO_1 = struct {
	FFlags         TDWORD
	FpName         TLPSTR
	FSize          TSIZEL
	FImageableArea TRECTL
}

type TFORM_INFO_1A = struct {
	FFlags         TDWORD
	FpName         TLPSTR
	FSize          TSIZEL
	FImageableArea TRECTL
}

type TFORM_INFO_1W = struct {
	FFlags         TDWORD
	FpName         TLPWSTR
	FSize          TSIZEL
	FImageableArea TRECTL
}

type TFORM_INFO_2 = struct {
	FFlags         TDWORD
	FpName         TLPSTR
	FSize          TSIZEL
	FImageableArea TRECTL
	FpKeyword      TLPCSTR
	FStringType    TDWORD
	FpMuiDll       TLPCSTR
	FdwResourceId  TDWORD
	FpDisplayName  TLPCSTR
	FwLangId       TLANGID
}

type TFORM_INFO_2A = struct {
	FFlags         TDWORD
	FpName         TLPSTR
	FSize          TSIZEL
	FImageableArea TRECTL
	FpKeyword      TLPCSTR
	FStringType    TDWORD
	FpMuiDll       TLPCSTR
	FdwResourceId  TDWORD
	FpDisplayName  TLPCSTR
	FwLangId       TLANGID
}

type TFORM_INFO_2W = struct {
	FFlags         TDWORD
	FpName         TLPWSTR
	FSize          TSIZEL
	FImageableArea TRECTL
	FpKeyword      TLPCSTR
	FStringType    TDWORD
	FpMuiDll       TLPCWSTR
	FdwResourceId  TDWORD
	FpDisplayName  TLPCWSTR
	FwLangId       TLANGID
}

type TFOURCC = uint32

type TFPO_DATA = struct {
	FulOffStart TDWORD
	FcbProcSize TDWORD
	FcdwLocals  TDWORD
	FcdwParams  TWORD
	F__ccgo14   uint16
}

type TFSCTL_QUERY_FAT_BPB_BUFFER = struct {
	FFirst0x24BytesOfBootSector [36]TBYTE
}

type TFSHORT = uint16

type TFULL_PTR_TO_REFID_ELEMENT = struct {
	FNext    uintptr
	FPointer uintptr
	FRefId   uint32
	FState   uint8
}

type TFULL_PTR_XLAT_TABLES = struct {
	FRefIdToPointer struct {
		FXlatTable       uintptr
		FStateTable      uintptr
		FNumberOfEntries uint32
	}
	FPointerToRefId struct {
		FXlatTable       uintptr
		FNumberOfBuckets uint32
		FHashMask        uint32
	}
	FNextRefId uint32
	FXlatSide  TXLAT_SIDE
}

type TFUNCDESC = struct {
	Fmemid             TMEMBERID
	Flprgscode         uintptr
	FlprgelemdescParam uintptr
	Ffunckind          TFUNCKIND
	Finvkind           TINVOKEKIND
	Fcallconv          TCALLCONV
	FcParams           TSHORT
	FcParamsOpt        TSHORT
	FoVft              TSHORT
	FcScodes           TSHORT
	FelemdescFunc      TELEMDESC
	FwFuncFlags        TWORD
}

type TFUNCFLAGS = int32

type TFUNCKIND = int32

type TFXPT16DOT16 = int32

type TFXPT2DOT30 = int32

const TF_DISCONNECT = 1

const TF_REUSE_SOCKET = 2

const TF_WRITE_BEHIND = 4

type TGCP_RESULTS = struct {
	FlStructSize TDWORD
	FlpOutString TLPSTR
	FlpOrder     uintptr
	FlpDx        uintptr
	FlpCaretPos  uintptr
	FlpClass     TLPSTR
	FlpGlyphs    TLPWSTR
	FnGlyphs     TUINT
	FnMaxFit     int32
}

type TGCP_RESULTSA = struct {
	FlStructSize TDWORD
	FlpOutString TLPSTR
	FlpOrder     uintptr
	FlpDx        uintptr
	FlpCaretPos  uintptr
	FlpClass     TLPSTR
	FlpGlyphs    TLPWSTR
	FnGlyphs     TUINT
	FnMaxFit     int32
}

type TGCP_RESULTSW = struct {
	FlStructSize TDWORD
	FlpOutString TLPWSTR
	FlpOrder     uintptr
	FlpDx        uintptr
	FlpCaretPos  uintptr
	FlpClass     TLPSTR
	FlpGlyphs    TLPWSTR
	FnGlyphs     TUINT
	FnMaxFit     int32
}

type TGDI_NONREMOTE = struct {
	FfContext TLONG
	Fu        t__WIDL_wtypes_generated_name_00000002
}

type TGDI_OBJECT = struct {
	FObjectType TDWORD
	Fu          t__WIDL_objidl_generated_name_0000000C
}

type TGENERIC_BINDING_INFO = struct {
	FpObj      uintptr
	FSize      uint32
	FpfnBind   TGENERIC_BINDING_ROUTINE
	FpfnUnbind TGENERIC_UNBIND_ROUTINE
}

type TGENERIC_BINDING_ROUTINE = uintptr

type TGENERIC_BINDING_ROUTINE_PAIR = struct {
	FpfnBind   TGENERIC_BINDING_ROUTINE
	FpfnUnbind TGENERIC_UNBIND_ROUTINE
}

type TGENERIC_MAPPING = struct {
	FGenericRead    TACCESS_MASK
	FGenericWrite   TACCESS_MASK
	FGenericExecute TACCESS_MASK
	FGenericAll     TACCESS_MASK
}

type TGENERIC_UNBIND_ROUTINE = uintptr

type TGEOCLASS = uint32

type TGEOID = int32

type TGEOTYPE = uint32

type TGEO_ENUMPROC = uintptr

type TGESTURECONFIG = struct {
	FdwID    TDWORD
	FdwWant  TDWORD
	FdwBlock TDWORD
}

type TGESTURENOTIFYSTRUCT = struct {
	FcbSize       TUINT
	FdwFlags      TDWORD
	FhwndTarget   THWND
	FptsLocation  TPOINTS
	FdwInstanceID TDWORD
}

type TGETVERSIONINPARAMS = struct {
	FbVersion      TBYTE
	FbRevision     TBYTE
	FbReserved     TBYTE
	FbIDEDeviceMap TBYTE
	FfCapabilities TDWORD
	FdwReserved    [4]TDWORD
}

type TGET_CHANGER_PARAMETERS = struct {
	FSize                       TDWORD
	FNumberTransportElements    TWORD
	FNumberStorageElements      TWORD
	FNumberCleanerSlots         TWORD
	FNumberIEElements           TWORD
	FNumberDataTransferElements TWORD
	FNumberOfDoors              TWORD
	FFirstSlotNumber            TWORD
	FFirstDriveNumber           TWORD
	FFirstTransportNumber       TWORD
	FFirstIEPortNumber          TWORD
	FFirstCleanerSlotAddress    TWORD
	FMagazineSize               TWORD
	FDriveCleanTimeout          TDWORD
	FFeatures0                  TDWORD
	FFeatures1                  TDWORD
	FMoveFromTransport          TBYTE
	FMoveFromSlot               TBYTE
	FMoveFromIePort             TBYTE
	FMoveFromDrive              TBYTE
	FExchangeFromTransport      TBYTE
	FExchangeFromSlot           TBYTE
	FExchangeFromIePort         TBYTE
	FExchangeFromDrive          TBYTE
	FLockUnlockCapabilities     TBYTE
	FPositionCapabilities       TBYTE
	FReserved1                  [2]TBYTE
	FReserved2                  [2]TDWORD
}

type TGET_FILEEX_INFO_LEVELS = int32

type TGET_STORAGE_DEPENDENCY_FLAG = int32

type TGET_VIRTUAL_DISK_INFO_VERSION = int32

type TGLOBALHANDLE = uintptr

type TGLOBALOPT_EH_VALUES = int32

type TGLOBALOPT_PROPERTIES = int32

type TGLOBALOPT_RO_FLAGS = int32

type TGLOBALOPT_RPCTP_VALUES = int32

type TGLOBALOPT_UNMARSHALING_POLICY_VALUES = int32

type TGLYPHMETRICS = struct {
	FgmBlackBoxX     TUINT
	FgmBlackBoxY     TUINT
	FgmptGlyphOrigin TPOINT
	FgmCellIncX      int16
	FgmCellIncY      int16
}

type TGLYPHMETRICSFLOAT = struct {
	FgmfBlackBoxX     TFLOAT
	FgmfBlackBoxY     TFLOAT
	FgmfptGlyphOrigin TPOINTFLOAT
	FgmfCellIncX      TFLOAT
	FgmfCellIncY      TFLOAT
}

type TGLYPHSET = struct {
	FcbThis           TDWORD
	FflAccel          TDWORD
	FcGlyphsSupported TDWORD
	FcRanges          TDWORD
	Franges           [1]TWCRANGE
}

type TGOBJENUMPROC = uintptr

type TGRADIENT_RECT = struct {
	FUpperLeft  TULONG
	FLowerRight TULONG
}

type TGRADIENT_TRIANGLE = struct {
	FVertex1 TULONG
	FVertex2 TULONG
	FVertex3 TULONG
}

type TGRAYSTRINGPROC = uintptr

type TGROUP_AFFINITY = struct {
	FMask     TKAFFINITY
	FGroup    TWORD
	FReserved [3]TWORD
}

type TGROUP_RELATIONSHIP = struct {
	FMaximumGroupCount TWORD
	FActiveGroupCount  TWORD
	FReserved          [20]TBYTE
	FGroupInfo         [1]TPROCESSOR_GROUP_INFO
}

type TGUID = struct {
	FData1 uint32
	FData2 uint16
	FData3 uint16
	FData4 [8]uint8
}

type TGUITHREADINFO = struct {
	FcbSize        TDWORD
	Fflags         TDWORD
	FhwndActive    THWND
	FhwndFocus     THWND
	FhwndCapture   THWND
	FhwndMenuOwner THWND
	FhwndMoveSize  THWND
	FhwndCaret     THWND
	FrcCaret       TRECT
}

type THACCEL = uintptr

type THACCEL__ = struct {
	Funused int32
}

const THAI_CHARSET = 222

type THANDLE = uintptr

type THANDLETABLE = struct {
	FobjectHandle [1]THGDIOBJ
}

type THARDWAREHOOKSTRUCT = struct {
	Fhwnd    THWND
	Fmessage TUINT
	FwParam  TWPARAM
	FlParam  TLPARAM
}

type THARDWAREINPUT = struct {
	FuMsg    TDWORD
	FwParamL TWORD
	FwParamH TWORD
}

type THARDWARE_COUNTER_TYPE = int32

type THASHALGORITHM_ENUM = int32

type THBITMAP = uintptr

type THBITMAP__ = struct {
	Funused int32
}

type THBRUSH = uintptr

type THBRUSH__ = struct {
	Funused int32
}

type THCERTCHAINENGINE = uintptr

type THCERTSTORE = uintptr

type THCERTSTOREPROV = uintptr

type THCERT_SERVER_OCSP_RESPONSE = uintptr

type THCOLORSPACE = uintptr

type THCOLORSPACE__ = struct {
	Funused int32
}

type THCONTEXT = uintptr

type THCONV = uintptr

type THCONVLIST = uintptr

type THCONVLIST__ = struct {
	Funused int32
}

type THCONV__ = struct {
	Funused int32
}

type THCRYPTASYNC = uintptr

type THCRYPTDEFAULTCONTEXT = uintptr

type THCRYPTMSG = uintptr

type THCRYPTOIDFUNCADDR = uintptr

type THCRYPTOIDFUNCSET = uintptr

type THCURSOR = uintptr

type THDC = uintptr

type THDC__ = struct {
	Funused int32
}

type THDDEDATA = uintptr

type THDDEDATA__ = struct {
	Funused int32
}

type THDESK = uintptr

type THDESK__ = struct {
	Funused int32
}

type THDEVNOTIFY = uintptr

type THDROP = uintptr

type THDROP__ = struct {
	Funused int32
}

type THDRVR = uintptr

type THDRVR__ = struct {
	Funused int32
}

type THDTYPE = TTHDTYPE

type THDWP = uintptr

type THEAP_INFORMATION_CLASS = int32

type THEAP_SUMMARY = struct {
	Fcb           TDWORD
	FcbAllocated  TSIZE_T
	FcbCommitted  TSIZE_T
	FcbReserved   TSIZE_T
	FcbMaxReserve TSIZE_T
}

type THELPINFO = struct {
	FcbSize       TUINT
	FiContextType int32
	FiCtrlId      int32
	FhItemHandle  THANDLE
	FdwContextId  TDWORD_PTR
	FMousePos     TPOINT
}

type THELPPOLY = uint32

type THELPWININFO = struct {
	FwStructSize int32
	Fx           int32
	Fy           int32
	Fdx          int32
	Fdy          int32
	FwMax        int32
	FrgchMember  [2]TCHAR
}

type THELPWININFOA = struct {
	FwStructSize int32
	Fx           int32
	Fy           int32
	Fdx          int32
	Fdy          int32
	FwMax        int32
	FrgchMember  [2]TCHAR
}

type THELPWININFOW = struct {
	FwStructSize int32
	Fx           int32
	Fy           int32
	Fdx          int32
	Fdy          int32
	FwMax        int32
	FrgchMember  [2]TWCHAR
}

type THENHMETAFILE = uintptr

type THENHMETAFILE__ = struct {
	Funused int32
}

type THFILE = int32

type THFONT = uintptr

type THFONT__ = struct {
	Funused int32
}

type THGDIOBJ = uintptr

type THGESTUREINFO = uintptr

type THGESTUREINFO__ = struct {
	Funused int32
}

type THGLOBAL = uintptr

type THGLRC = uintptr

type THGLRC__ = struct {
	Funused int32
}

type THHOOK = uintptr

type THHOOK__ = struct {
	Funused int32
}

type THICON = uintptr

type THICON__ = struct {
	Funused int32
}

type THIGHCONTRAST = struct {
	FcbSize            TUINT
	FdwFlags           TDWORD
	FlpszDefaultScheme TLPSTR
}

type THIGHCONTRASTA = struct {
	FcbSize            TUINT
	FdwFlags           TDWORD
	FlpszDefaultScheme TLPSTR
}

type THIGHCONTRASTW = struct {
	FcbSize            TUINT
	FdwFlags           TDWORD
	FlpszDefaultScheme TLPWSTR
}

type THIMC = uintptr

type THIMCC = uintptr

type THIMCC__ = struct {
	Funused int32
}

type THIMC__ = struct {
	Funused int32
}

type THINSTANCE = uintptr

type THINSTANCE__ = struct {
	Funused int32
}

const THIS = 0

type THISTOGRAM_BUCKET = struct {
	FReads  TDWORD
	FWrites TDWORD
}

const THIS_ = 0

type THIT_LOGGING_INFO = struct {
	FdwStructSize      TDWORD
	FlpszLoggedUrlName TLPSTR
	FStartTime         TSYSTEMTIME
	FEndTime           TSYSTEMTIME
	FlpszExtendedInfo  TLPSTR
}

type THKEY = uintptr

type THKEY__ = struct {
	Funused int32
}

type THKL = uintptr

type THKL__ = struct {
	Funused int32
}

type THLOCAL = uintptr

type THLSURF = uintptr

type THLSURF__ = struct {
	Funused int32
}

type THMAC_INFO = struct {
	FHashAlgid     TALG_ID
	FpbInnerString uintptr
	FcbInnerString TDWORD
	FpbOuterString uintptr
	FcbOuterString TDWORD
}

type THMENU = uintptr

type THMENU__ = struct {
	Funused int32
}

type THMETAFILE = uintptr

type THMETAFILEPICT = uintptr

type THMETAFILE__ = struct {
	Funused int32
}

type THMIDI = uintptr

type THMIDIIN = uintptr

type THMIDIIN__ = struct {
	Funused int32
}

type THMIDIOUT = uintptr

type THMIDIOUT__ = struct {
	Funused int32
}

type THMIDISTRM = uintptr

type THMIDISTRM__ = struct {
	Funused int32
}

type THMIDI__ = struct {
	Funused int32
}

type THMIXER = uintptr

type THMIXEROBJ = uintptr

type THMIXEROBJ__ = struct {
	Funused int32
}

type THMIXER__ = struct {
	Funused int32
}

type THMMIO = uintptr

type THMMIO__ = struct {
	Funused int32
}

type THMODULE = uintptr

type THMONITOR = uintptr

type THMONITOR__ = struct {
	Funused int32
}

type THOLEMENU = uintptr

type THOOKPROC = uintptr

type THOSTENT = struct {
	Fh_name      uintptr
	Fh_aliases   uintptr
	Fh_addrtype  int16
	Fh_length    int16
	Fh_addr_list uintptr
}

type THPALETTE = uintptr

type THPALETTE__ = struct {
	Funused int32
}

type THPEN = uintptr

type THPEN__ = struct {
	Funused int32
}

type THPOWERNOTIFY = uintptr

type THPROPSHEETPAGE = uintptr

type THPSTR = uintptr

type THRAWINPUT = uintptr

type THRAWINPUT__ = struct {
	Funused int32
}

const THREAD_ALL_ACCESS = 2097151

const THREAD_BASE_PRIORITY_IDLE = -15

const THREAD_BASE_PRIORITY_LOWRT = 15

const THREAD_BASE_PRIORITY_MAX = 2

const THREAD_BASE_PRIORITY_MIN = -2

const THREAD_DIRECT_IMPERSONATION = 512

const THREAD_GET_CONTEXT = 8

const THREAD_IMPERSONATE = 256

type THREAD_INFORMATION_CLASS = TTHREAD_INFORMATION_CLASS

const THREAD_MODE_BACKGROUND_BEGIN = 65536

const THREAD_MODE_BACKGROUND_END = 131072

const THREAD_PRIORITY_ABOVE_NORMAL = 1

const THREAD_PRIORITY_BELOW_NORMAL = -1

const THREAD_PRIORITY_ERROR_RETURN = 2147483647

const THREAD_PRIORITY_HIGHEST = 2

const THREAD_PRIORITY_IDLE = -15

const THREAD_PRIORITY_LOWEST = -2

const THREAD_PRIORITY_NORMAL = 0

const THREAD_PRIORITY_TIME_CRITICAL = 15

const THREAD_PROFILING_FLAG_DISPATCH = 1

const THREAD_QUERY_INFORMATION = 64

const THREAD_QUERY_LIMITED_INFORMATION = 2048

const THREAD_SET_CONTEXT = 16

const THREAD_SET_INFORMATION = 32

const THREAD_SET_LIMITED_INFORMATION = 1024

const THREAD_SET_THREAD_TOKEN = 128

const THREAD_SUSPEND_RESUME = 2

const THREAD_TERMINATE = 1

type THREFTYPE = uint32

type THRESULT = int32

type THRGN = uintptr

type THRGN__ = struct {
	Funused int32
}

type THRSRC = uintptr

type THRSRC__ = struct {
	Funused int32
}

type THSPRITE = uintptr

type THSPRITE__ = struct {
	Funused int32
}

type THSTR = uintptr

type THSTR__ = struct {
	Funused int32
}

type THSZ = uintptr

type THSZPAIR = struct {
	FhszSvc   THSZ
	FhszTopic THSZ
}

type THSZ__ = struct {
	Funused int32
}

type THTASK = uintptr

type THTASK__ = struct {
	Funused int32
}

type THTOUCHINPUT = uintptr

type THTOUCHINPUT__ = struct {
	Funused int32
}

type THTTPSPolicyCallbackData = struct {
	F__ccgo0_0 struct {
		FcbSize   [0]TDWORD
		FcbStruct TDWORD
	}
	FdwAuthType     TDWORD
	FfdwChecks      TDWORD
	FpwszServerName uintptr
}

type THUMPD = uintptr

type THUMPD__ = struct {
	Funused int32
}

type THWAVE = uintptr

type THWAVEIN = uintptr

type THWAVEIN__ = struct {
	Funused int32
}

type THWAVEOUT = uintptr

type THWAVEOUT__ = struct {
	Funused int32
}

type THWAVE__ = struct {
	Funused int32
}

type THWINEVENTHOOK = uintptr

type THWINEVENTHOOK__ = struct {
	Funused int32
}

type THWINSTA = uintptr

type THWINSTA__ = struct {
	Funused int32
}

type THWND = uintptr

type THWND__ = struct {
	Funused int32
}

type THW_PROFILE_INFO = struct {
	FdwDockInfo      TDWORD
	FszHwProfileGuid [39]TCHAR
	FszHwProfileName [80]TCHAR
}

type THW_PROFILE_INFOA = struct {
	FdwDockInfo      TDWORD
	FszHwProfileGuid [39]TCHAR
	FszHwProfileName [80]TCHAR
}

type THW_PROFILE_INFOW = struct {
	FdwDockInfo      TDWORD
	FszHwProfileGuid [39]TWCHAR
	FszHwProfileName [80]TWCHAR
}

type THYPER_SIZEDARR = struct {
	FclSize TULONG
	FpData  uintptr
}

type TIAddrExclusionControl = struct {
	FlpVtbl uintptr
}

type TIAddrExclusionControlVtbl = struct {
	FQueryInterface              uintptr
	FAddRef                      uintptr
	FRelease                     uintptr
	FGetCurrentAddrExclusionList uintptr
	FUpdateAddrExclusionList     uintptr
}

type TIAddrTrackingControl = struct {
	FlpVtbl uintptr
}

type TIAddrTrackingControlVtbl = struct {
	FQueryInterface                uintptr
	FAddRef                        uintptr
	FRelease                       uintptr
	FEnableCOMDynamicAddrTracking  uintptr
	FDisableCOMDynamicAddrTracking uintptr
}

type TIAdviseSink = struct {
	FlpVtbl uintptr
}

type TIAdviseSink2 = struct {
	FlpVtbl uintptr
}

type TIAdviseSink2Vtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FOnDataChange    uintptr
	FOnViewChange    uintptr
	FOnRename        uintptr
	FOnSave          uintptr
	FOnClose         uintptr
	FOnLinkSrcChange uintptr
}

type TIAdviseSinkVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FOnDataChange   uintptr
	FOnViewChange   uintptr
	FOnRename       uintptr
	FOnSave         uintptr
	FOnClose        uintptr
}

type TIAgileObject = struct {
	FlpVtbl uintptr
}

type TIAgileObjectVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
}

type TIAgileReference = struct {
	FlpVtbl uintptr
}

type TIAgileReferenceVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FResolve        uintptr
}

type TIApartmentShutdown = struct {
	FlpVtbl uintptr
}

type TIApartmentShutdownVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FOnUninitialize uintptr
}

type TIAsyncManager = struct {
	FlpVtbl uintptr
}

type TIAsyncManagerVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCompleteCall   uintptr
	FGetCallContext uintptr
	FGetState       uintptr
}

type TIAsyncRpcChannelBuffer = struct {
	FlpVtbl uintptr
}

type TIAsyncRpcChannelBufferVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FGetBuffer          uintptr
	FSendReceive        uintptr
	FFreeBuffer         uintptr
	FGetDestCtx         uintptr
	FIsConnected        uintptr
	FGetProtocolVersion uintptr
	FSend               uintptr
	FReceive            uintptr
	FGetDestCtxEx       uintptr
}

type TIAuthenticate = struct {
	FlpVtbl uintptr
}

type TIAuthenticateEx = struct {
	FlpVtbl uintptr
}

type TIAuthenticateExVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FAuthenticate   uintptr
	FAuthenticateEx uintptr
}

type TIAuthenticateVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FAuthenticate   uintptr
}

type TIBindCallbackRedirect = struct {
	FlpVtbl uintptr
}

type TIBindCallbackRedirectVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FRedirect       uintptr
}

type TIBindCtx = struct {
	FlpVtbl uintptr
}

type TIBindCtxVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FRegisterObjectBound   uintptr
	FRevokeObjectBound     uintptr
	FReleaseBoundObjects   uintptr
	FSetBindOptions        uintptr
	FGetBindOptions        uintptr
	FGetRunningObjectTable uintptr
	FRegisterObjectParam   uintptr
	FGetObjectParam        uintptr
	FEnumObjectParam       uintptr
	FRevokeObjectParam     uintptr
}

type TIBindHost = struct {
	FlpVtbl uintptr
}

type TIBindHostVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FCreateMoniker        uintptr
	FMonikerBindToStorage uintptr
	FMonikerBindToObject  uintptr
}

type TIBindProtocol = struct {
	FlpVtbl uintptr
}

type TIBindProtocolVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCreateBinding  uintptr
}

type TIBindStatusCallback = struct {
	FlpVtbl uintptr
}

type TIBindStatusCallbackEx = struct {
	FlpVtbl uintptr
}

type TIBindStatusCallbackExVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FOnStartBinding    uintptr
	FGetPriority       uintptr
	FOnLowResource     uintptr
	FOnProgress        uintptr
	FOnStopBinding     uintptr
	FGetBindInfo       uintptr
	FOnDataAvailable   uintptr
	FOnObjectAvailable uintptr
	FGetBindInfoEx     uintptr
}

type TIBindStatusCallbackVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FOnStartBinding    uintptr
	FGetPriority       uintptr
	FOnLowResource     uintptr
	FOnProgress        uintptr
	FOnStopBinding     uintptr
	FGetBindInfo       uintptr
	FOnDataAvailable   uintptr
	FOnObjectAvailable uintptr
}

type TIBinding = struct {
	FlpVtbl uintptr
}

type TIBindingVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FAbort          uintptr
	FSuspend        uintptr
	FResume         uintptr
	FSetPriority    uintptr
	FGetPriority    uintptr
	FGetBindResult  uintptr
}

type TIBlockingLock = struct {
	FlpVtbl uintptr
}

type TIBlockingLockVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FLock           uintptr
	FUnlock         uintptr
}

type TICMENUMPROCA = uintptr

type TICMENUMPROCW = uintptr

type TICONINFO = struct {
	FfIcon    TWINBOOL
	FxHotspot TDWORD
	FyHotspot TDWORD
	FhbmMask  THBITMAP
	FhbmColor THBITMAP
}

type TICONINFOEX = struct {
	FcbSize    TDWORD
	FfIcon     TWINBOOL
	FxHotspot  TDWORD
	FyHotspot  TDWORD
	FhbmMask   THBITMAP
	FhbmColor  THBITMAP
	FwResID    TWORD
	FszModName [260]TCHAR
	FszResName [260]TCHAR
}

type TICONINFOEXA = struct {
	FcbSize    TDWORD
	FfIcon     TWINBOOL
	FxHotspot  TDWORD
	FyHotspot  TDWORD
	FhbmMask   THBITMAP
	FhbmColor  THBITMAP
	FwResID    TWORD
	FszModName [260]TCHAR
	FszResName [260]TCHAR
}

type TICONINFOEXW = struct {
	FcbSize    TDWORD
	FfIcon     TWINBOOL
	FxHotspot  TDWORD
	FyHotspot  TDWORD
	FhbmMask   THBITMAP
	FhbmColor  THBITMAP
	FwResID    TWORD
	FszModName [260]TWCHAR
	FszResName [260]TWCHAR
}

type TICONMETRICS = struct {
	FcbSize       TUINT
	FiHorzSpacing int32
	FiVertSpacing int32
	FiTitleWrap   int32
	FlfFont       TLOGFONTA
}

type TICONMETRICSA = struct {
	FcbSize       TUINT
	FiHorzSpacing int32
	FiVertSpacing int32
	FiTitleWrap   int32
	FlfFont       TLOGFONTA
}

type TICONMETRICSW = struct {
	FcbSize       TUINT
	FiHorzSpacing int32
	FiVertSpacing int32
	FiTitleWrap   int32
	FlfFont       TLOGFONTW
}

type TICallFactory = struct {
	FlpVtbl uintptr
}

type TICallFactoryVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCreateCall     uintptr
}

type TICancelMethodCalls = struct {
	FlpVtbl uintptr
}

type TICancelMethodCallsVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCancel         uintptr
	FTestCancel     uintptr
}

type TICatalogFileInfo = struct {
	FlpVtbl uintptr
}

type TICatalogFileInfoVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetCatalogFile uintptr
	FGetJavaTrust   uintptr
}

type TIChannelHook = struct {
	FlpVtbl uintptr
}

type TIChannelHookVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FClientGetSize    uintptr
	FClientFillBuffer uintptr
	FClientNotify     uintptr
	FServerNotify     uintptr
	FServerGetSize    uintptr
	FServerFillBuffer uintptr
}

type TIClassActivator = struct {
	FlpVtbl uintptr
}

type TIClassActivatorVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetClassObject uintptr
}

type TIClassFactory = struct {
	FlpVtbl uintptr
}

type TIClassFactoryVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCreateInstance uintptr
	FLockServer     uintptr
}

type TIClientSecurity = struct {
	FlpVtbl uintptr
}

type TIClientSecurityVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FQueryBlanket   uintptr
	FSetBlanket     uintptr
	FCopyProxy      uintptr
}

type TICodeInstall = struct {
	FlpVtbl uintptr
}

type TICodeInstallVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FGetWindow            uintptr
	FOnCodeInstallProblem uintptr
}

type TIComThreadingInfo = struct {
	FlpVtbl uintptr
}

type TIComThreadingInfoVtbl = struct {
	FQueryInterface            uintptr
	FAddRef                    uintptr
	FRelease                   uintptr
	FGetCurrentApartmentType   uintptr
	FGetCurrentThreadType      uintptr
	FGetCurrentLogicalThreadId uintptr
	FSetCurrentLogicalThreadId uintptr
}

type TIContinue = struct {
	FlpVtbl uintptr
}

type TIContinueVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FFContinue      uintptr
}

type TICreateErrorInfo = struct {
	FlpVtbl uintptr
}

type TICreateErrorInfoVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FSetGUID        uintptr
	FSetSource      uintptr
	FSetDescription uintptr
	FSetHelpFile    uintptr
	FSetHelpContext uintptr
}

type TICreateTypeInfo = struct {
	FlpVtbl uintptr
}

type TICreateTypeInfo2 = struct {
	FlpVtbl uintptr
}

type TICreateTypeInfo2Vtbl = struct {
	FQueryInterface           uintptr
	FAddRef                   uintptr
	FRelease                  uintptr
	FSetGuid                  uintptr
	FSetTypeFlags             uintptr
	FSetDocString             uintptr
	FSetHelpContext           uintptr
	FSetVersion               uintptr
	FAddRefTypeInfo           uintptr
	FAddFuncDesc              uintptr
	FAddImplType              uintptr
	FSetImplTypeFlags         uintptr
	FSetAlignment             uintptr
	FSetSchema                uintptr
	FAddVarDesc               uintptr
	FSetFuncAndParamNames     uintptr
	FSetVarName               uintptr
	FSetTypeDescAlias         uintptr
	FDefineFuncAsDllEntry     uintptr
	FSetFuncDocString         uintptr
	FSetVarDocString          uintptr
	FSetFuncHelpContext       uintptr
	FSetVarHelpContext        uintptr
	FSetMops                  uintptr
	FSetTypeIdldesc           uintptr
	FLayOut                   uintptr
	FDeleteFuncDesc           uintptr
	FDeleteFuncDescByMemId    uintptr
	FDeleteVarDesc            uintptr
	FDeleteVarDescByMemId     uintptr
	FDeleteImplType           uintptr
	FSetCustData              uintptr
	FSetFuncCustData          uintptr
	FSetParamCustData         uintptr
	FSetVarCustData           uintptr
	FSetImplTypeCustData      uintptr
	FSetHelpStringContext     uintptr
	FSetFuncHelpStringContext uintptr
	FSetVarHelpStringContext  uintptr
	FInvalidate               uintptr
	FSetName                  uintptr
}

type TICreateTypeInfoVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FSetGuid              uintptr
	FSetTypeFlags         uintptr
	FSetDocString         uintptr
	FSetHelpContext       uintptr
	FSetVersion           uintptr
	FAddRefTypeInfo       uintptr
	FAddFuncDesc          uintptr
	FAddImplType          uintptr
	FSetImplTypeFlags     uintptr
	FSetAlignment         uintptr
	FSetSchema            uintptr
	FAddVarDesc           uintptr
	FSetFuncAndParamNames uintptr
	FSetVarName           uintptr
	FSetTypeDescAlias     uintptr
	FDefineFuncAsDllEntry uintptr
	FSetFuncDocString     uintptr
	FSetVarDocString      uintptr
	FSetFuncHelpContext   uintptr
	FSetVarHelpContext    uintptr
	FSetMops              uintptr
	FSetTypeIdldesc       uintptr
	FLayOut               uintptr
}

type TICreateTypeLib = struct {
	FlpVtbl uintptr
}

type TICreateTypeLib2 = struct {
	FlpVtbl uintptr
}

type TICreateTypeLib2Vtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FCreateTypeInfo       uintptr
	FSetName              uintptr
	FSetVersion           uintptr
	FSetGuid              uintptr
	FSetDocString         uintptr
	FSetHelpFileName      uintptr
	FSetHelpContext       uintptr
	FSetLcid              uintptr
	FSetLibFlags          uintptr
	FSaveAllChanges       uintptr
	FDeleteTypeInfo       uintptr
	FSetCustData          uintptr
	FSetHelpStringContext uintptr
	FSetHelpStringDll     uintptr
}

type TICreateTypeLibVtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FCreateTypeInfo  uintptr
	FSetName         uintptr
	FSetVersion      uintptr
	FSetGuid         uintptr
	FSetDocString    uintptr
	FSetHelpFileName uintptr
	FSetHelpContext  uintptr
	FSetLcid         uintptr
	FSetLibFlags     uintptr
	FSaveAllChanges  uintptr
}

type TIDEREGS = struct {
	FbFeaturesReg     TBYTE
	FbSectorCountReg  TBYTE
	FbSectorNumberReg TBYTE
	FbCylLowReg       TBYTE
	FbCylHighReg      TBYTE
	FbDriveHeadReg    TBYTE
	FbCommandReg      TBYTE
	FbReserved        TBYTE
}

type TIDLDESC = struct {
	FdwReserved TULONG_PTR
	FwIDLFlags  TUSHORT
}

type TIDL_CS_CONVERT = int32

type TIDataAdviseHolder = struct {
	FlpVtbl uintptr
}

type TIDataAdviseHolderVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FAdvise           uintptr
	FUnadvise         uintptr
	FEnumAdvise       uintptr
	FSendOnDataChange uintptr
}

type TIDataFilter = struct {
	FlpVtbl uintptr
}

type TIDataFilterVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FDoEncode         uintptr
	FDoDecode         uintptr
	FSetEncodingLevel uintptr
}

type TIDataObject = struct {
	FlpVtbl uintptr
}

type TIDataObjectVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetData               uintptr
	FGetDataHere           uintptr
	FQueryGetData          uintptr
	FGetCanonicalFormatEtc uintptr
	FSetData               uintptr
	FEnumFormatEtc         uintptr
	FDAdvise               uintptr
	FDUnadvise             uintptr
	FEnumDAdvise           uintptr
}

type TIDirectWriterLock = struct {
	FlpVtbl uintptr
}

type TIDirectWriterLockVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FWaitForWriteAccess uintptr
	FReleaseWriteAccess uintptr
	FHaveWriteAccess    uintptr
}

type TIDispatch = struct {
	FlpVtbl uintptr
}

type TIDispatchVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
}

type TIDropSource = struct {
	FlpVtbl uintptr
}

type TIDropSourceNotify = struct {
	FlpVtbl uintptr
}

type TIDropSourceNotifyVtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FDragEnterTarget uintptr
	FDragLeaveTarget uintptr
}

type TIDropSourceVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FQueryContinueDrag uintptr
	FGiveFeedback      uintptr
}

type TIDropTarget = struct {
	FlpVtbl uintptr
}

type TIDropTargetVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FDragEnter      uintptr
	FDragOver       uintptr
	FDragLeave      uintptr
	FDrop           uintptr
}

type TIDummyHICONIncluder = struct {
	FlpVtbl uintptr
}

type TIDummyHICONIncluderVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FDummy          uintptr
}

type TIEncodingFilterFactory = struct {
	FlpVtbl uintptr
}

type TIEncodingFilterFactoryVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FFindBestFilter   uintptr
	FGetDefaultFilter uintptr
}

type TIEnumFORMATETC = struct {
	FlpVtbl uintptr
}

type TIEnumFORMATETCVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumMoniker = struct {
	FlpVtbl uintptr
}

type TIEnumMonikerVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumOLEVERB = struct {
	FlpVtbl uintptr
}

type TIEnumOLEVERBVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumSTATDATA = struct {
	FlpVtbl uintptr
}

type TIEnumSTATDATAVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumSTATPROPSETSTG = struct {
	FlpVtbl uintptr
}

type TIEnumSTATPROPSETSTGVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumSTATPROPSTG = struct {
	FlpVtbl uintptr
}

type TIEnumSTATPROPSTGVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumSTATSTG = struct {
	FlpVtbl uintptr
}

type TIEnumSTATSTGVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumString = struct {
	FlpVtbl uintptr
}

type TIEnumStringVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumUnknown = struct {
	FlpVtbl uintptr
}

type TIEnumUnknownVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIEnumVARIANT = struct {
	FlpVtbl uintptr
}

type TIEnumVARIANTVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FNext           uintptr
	FSkip           uintptr
	FReset          uintptr
	FClone          uintptr
}

type TIErrorInfo = struct {
	FlpVtbl uintptr
}

type TIErrorInfoVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetGUID        uintptr
	FGetSource      uintptr
	FGetDescription uintptr
	FGetHelpFile    uintptr
	FGetHelpContext uintptr
}

type TIErrorLog = struct {
	FlpVtbl uintptr
}

type TIErrorLogVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FAddError       uintptr
}

type TIExternalConnection = struct {
	FlpVtbl uintptr
}

type TIExternalConnectionVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FAddConnection     uintptr
	FReleaseConnection uintptr
}

type TIFastRundown = struct {
	FlpVtbl uintptr
}

type TIFastRundownVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
}

type TIFillLockBytes = struct {
	FlpVtbl uintptr
}

type TIFillLockBytesVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FFillAppend     uintptr
	FFillAt         uintptr
	FSetFillSize    uintptr
	FTerminate      uintptr
}

type TIForegroundTransfer = struct {
	FlpVtbl uintptr
}

type TIForegroundTransferVtbl = struct {
	FQueryInterface          uintptr
	FAddRef                  uintptr
	FRelease                 uintptr
	FAllowForegroundTransfer uintptr
}

type TIGetBindHandle = struct {
	FlpVtbl uintptr
}

type TIGetBindHandleVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetBindHandle  uintptr
}

type TIGlobalInterfaceTable = struct {
	FlpVtbl uintptr
}

type TIGlobalInterfaceTableVtbl = struct {
	FQueryInterface            uintptr
	FAddRef                    uintptr
	FRelease                   uintptr
	FRegisterInterfaceInGlobal uintptr
	FRevokeInterfaceFromGlobal uintptr
	FGetInterfaceFromGlobal    uintptr
}

type TIGlobalOptions = struct {
	FlpVtbl uintptr
}

type TIGlobalOptionsVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FSet            uintptr
	FQuery          uintptr
}

type TIHttpNegotiate = struct {
	FlpVtbl uintptr
}

type TIHttpNegotiate2 = struct {
	FlpVtbl uintptr
}

type TIHttpNegotiate2Vtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FBeginningTransaction uintptr
	FOnResponse           uintptr
	FGetRootSecurityId    uintptr
}

type TIHttpNegotiate3 = struct {
	FlpVtbl uintptr
}

type TIHttpNegotiate3Vtbl = struct {
	FQueryInterface                 uintptr
	FAddRef                         uintptr
	FRelease                        uintptr
	FBeginningTransaction           uintptr
	FOnResponse                     uintptr
	FGetRootSecurityId              uintptr
	FGetSerializedClientCertContext uintptr
}

type TIHttpNegotiateVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FBeginningTransaction uintptr
	FOnResponse           uintptr
}

type TIHttpSecurity = struct {
	FlpVtbl uintptr
}

type TIHttpSecurityVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FGetWindow         uintptr
	FOnSecurityProblem uintptr
}

type TIID = struct {
	FData1 uint32
	FData2 uint16
	FData3 uint16
	FData4 [8]uint8
}

type TIInitializeSpy = struct {
	FlpVtbl uintptr
}

type TIInitializeSpyVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FPreInitialize    uintptr
	FPostInitialize   uintptr
	FPreUninitialize  uintptr
	FPostUninitialize uintptr
}

type TIInternalUnknown = struct {
	FlpVtbl uintptr
}

type TIInternalUnknownVtbl = struct {
	FQueryInterface         uintptr
	FAddRef                 uintptr
	FRelease                uintptr
	FQueryInternalInterface uintptr
}

type TIInternet = struct {
	FlpVtbl uintptr
}

type TIInternetBindInfo = struct {
	FlpVtbl uintptr
}

type TIInternetBindInfoEx = struct {
	FlpVtbl uintptr
}

type TIInternetBindInfoExVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetBindInfo    uintptr
	FGetBindString  uintptr
	FGetBindInfoEx  uintptr
}

type TIInternetBindInfoVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetBindInfo    uintptr
	FGetBindString  uintptr
}

type TIInternetHostSecurityManager = struct {
	FlpVtbl uintptr
}

type TIInternetHostSecurityManagerVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FGetSecurityId     uintptr
	FProcessUrlAction  uintptr
	FQueryCustomPolicy uintptr
}

type TIInternetPriority = struct {
	FlpVtbl uintptr
}

type TIInternetPriorityVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FSetPriority    uintptr
	FGetPriority    uintptr
}

type TIInternetProtocol = struct {
	FlpVtbl uintptr
}

type TIInternetProtocolEx = struct {
	FlpVtbl uintptr
}

type TIInternetProtocolExVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FStart          uintptr
	FContinue       uintptr
	FAbort          uintptr
	FTerminate      uintptr
	FSuspend        uintptr
	FResume         uintptr
	FRead           uintptr
	FSeek           uintptr
	FLockRequest    uintptr
	FUnlockRequest  uintptr
	FStartEx        uintptr
}

type TIInternetProtocolInfo = struct {
	FlpVtbl uintptr
}

type TIInternetProtocolInfoVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FParseUrl       uintptr
	FCombineUrl     uintptr
	FCompareUrl     uintptr
	FQueryInfo      uintptr
}

type TIInternetProtocolRoot = struct {
	FlpVtbl uintptr
}

type TIInternetProtocolRootVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FStart          uintptr
	FContinue       uintptr
	FAbort          uintptr
	FTerminate      uintptr
	FSuspend        uintptr
	FResume         uintptr
}

type TIInternetProtocolSink = struct {
	FlpVtbl uintptr
}

type TIInternetProtocolSinkStackable = struct {
	FlpVtbl uintptr
}

type TIInternetProtocolSinkStackableVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FSwitchSink     uintptr
	FCommitSwitch   uintptr
	FRollbackSwitch uintptr
}

type TIInternetProtocolSinkVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FSwitch         uintptr
	FReportProgress uintptr
	FReportData     uintptr
	FReportResult   uintptr
}

type TIInternetProtocolVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FStart          uintptr
	FContinue       uintptr
	FAbort          uintptr
	FTerminate      uintptr
	FSuspend        uintptr
	FResume         uintptr
	FRead           uintptr
	FSeek           uintptr
	FLockRequest    uintptr
	FUnlockRequest  uintptr
}

type TIInternetSecurityManager = struct {
	FlpVtbl uintptr
}

type TIInternetSecurityManagerEx = struct {
	FlpVtbl uintptr
}

type TIInternetSecurityManagerEx2 = struct {
	FlpVtbl uintptr
}

type TIInternetSecurityManagerEx2Vtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FSetSecuritySite      uintptr
	FGetSecuritySite      uintptr
	FMapUrlToZone         uintptr
	FGetSecurityId        uintptr
	FProcessUrlAction     uintptr
	FQueryCustomPolicy    uintptr
	FSetZoneMapping       uintptr
	FGetZoneMappings      uintptr
	FProcessUrlActionEx   uintptr
	FMapUrlToZoneEx2      uintptr
	FProcessUrlActionEx2  uintptr
	FGetSecurityIdEx2     uintptr
	FQueryCustomPolicyEx2 uintptr
}

type TIInternetSecurityManagerExVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FSetSecuritySite    uintptr
	FGetSecuritySite    uintptr
	FMapUrlToZone       uintptr
	FGetSecurityId      uintptr
	FProcessUrlAction   uintptr
	FQueryCustomPolicy  uintptr
	FSetZoneMapping     uintptr
	FGetZoneMappings    uintptr
	FProcessUrlActionEx uintptr
}

type TIInternetSecurityManagerVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FSetSecuritySite   uintptr
	FGetSecuritySite   uintptr
	FMapUrlToZone      uintptr
	FGetSecurityId     uintptr
	FProcessUrlAction  uintptr
	FQueryCustomPolicy uintptr
	FSetZoneMapping    uintptr
	FGetZoneMappings   uintptr
}

type TIInternetSecurityMgrSite = struct {
	FlpVtbl uintptr
}

type TIInternetSecurityMgrSiteVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetWindow      uintptr
	FEnableModeless uintptr
}

type TIInternetSession = struct {
	FlpVtbl uintptr
}

type TIInternetSessionVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FRegisterNameSpace    uintptr
	FUnregisterNameSpace  uintptr
	FRegisterMimeFilter   uintptr
	FUnregisterMimeFilter uintptr
	FCreateBinding        uintptr
	FSetSessionOption     uintptr
	FGetSessionOption     uintptr
}

type TIInternetThreadSwitch = struct {
	FlpVtbl uintptr
}

type TIInternetThreadSwitchVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FPrepare        uintptr
	FContinue       uintptr
}

type TIInternetVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
}

type TIInternetZoneManager = struct {
	FlpVtbl uintptr
}

type TIInternetZoneManagerEx = struct {
	FlpVtbl uintptr
}

type TIInternetZoneManagerEx2 = struct {
	FlpVtbl uintptr
}

type TIInternetZoneManagerEx2Vtbl = struct {
	FQueryInterface             uintptr
	FAddRef                     uintptr
	FRelease                    uintptr
	FGetZoneAttributes          uintptr
	FSetZoneAttributes          uintptr
	FGetZoneCustomPolicy        uintptr
	FSetZoneCustomPolicy        uintptr
	FGetZoneActionPolicy        uintptr
	FSetZoneActionPolicy        uintptr
	FPromptAction               uintptr
	FLogAction                  uintptr
	FCreateZoneEnumerator       uintptr
	FGetZoneAt                  uintptr
	FDestroyZoneEnumerator      uintptr
	FCopyTemplatePoliciesToZone uintptr
	FGetZoneActionPolicyEx      uintptr
	FSetZoneActionPolicyEx      uintptr
	FGetZoneAttributesEx        uintptr
	FGetZoneSecurityState       uintptr
	FGetIESecurityState         uintptr
	FFixUnsecureSettings        uintptr
}

type TIInternetZoneManagerExVtbl = struct {
	FQueryInterface             uintptr
	FAddRef                     uintptr
	FRelease                    uintptr
	FGetZoneAttributes          uintptr
	FSetZoneAttributes          uintptr
	FGetZoneCustomPolicy        uintptr
	FSetZoneCustomPolicy        uintptr
	FGetZoneActionPolicy        uintptr
	FSetZoneActionPolicy        uintptr
	FPromptAction               uintptr
	FLogAction                  uintptr
	FCreateZoneEnumerator       uintptr
	FGetZoneAt                  uintptr
	FDestroyZoneEnumerator      uintptr
	FCopyTemplatePoliciesToZone uintptr
	FGetZoneActionPolicyEx      uintptr
	FSetZoneActionPolicyEx      uintptr
}

type TIInternetZoneManagerVtbl = struct {
	FQueryInterface             uintptr
	FAddRef                     uintptr
	FRelease                    uintptr
	FGetZoneAttributes          uintptr
	FSetZoneAttributes          uintptr
	FGetZoneCustomPolicy        uintptr
	FSetZoneCustomPolicy        uintptr
	FGetZoneActionPolicy        uintptr
	FSetZoneActionPolicy        uintptr
	FPromptAction               uintptr
	FLogAction                  uintptr
	FCreateZoneEnumerator       uintptr
	FGetZoneAt                  uintptr
	FDestroyZoneEnumerator      uintptr
	FCopyTemplatePoliciesToZone uintptr
}

type TILayoutStorage = struct {
	FlpVtbl uintptr
}

type TILayoutStorageVtbl = struct {
	FQueryInterface              uintptr
	FAddRef                      uintptr
	FRelease                     uintptr
	FLayoutScript                uintptr
	FBeginMonitor                uintptr
	FEndMonitor                  uintptr
	FReLayoutDocfile             uintptr
	FReLayoutDocfileOnILockBytes uintptr
}

type TILockBytes = struct {
	FlpVtbl uintptr
}

type TILockBytesVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FReadAt         uintptr
	FWriteAt        uintptr
	FFlush          uintptr
	FSetSize        uintptr
	FLockRegion     uintptr
	FUnlockRegion   uintptr
	FStat           uintptr
}

type TIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = struct {
	FBeginAddress     TDWORD
	FEndAddress       TDWORD
	FExceptionHandler TDWORD
	FHandlerData      TDWORD
	FPrologEndAddress TDWORD
}

type TIMAGE_ARCHITECTURE_ENTRY = struct {
	FFixupInstRVA TDWORD
	FNewInst      TDWORD
}

type TIMAGE_ARCHITECTURE_HEADER = struct {
	F__ccgo0       uint32
	FFirstEntryRVA TDWORD
}

type TIMAGE_ARCHIVE_MEMBER_HEADER = struct {
	FName      [16]TBYTE
	FDate      [12]TBYTE
	FUserID    [6]TBYTE
	FGroupID   [6]TBYTE
	FMode      [8]TBYTE
	FSize      [10]TBYTE
	FEndHeader [2]TBYTE
}

type TIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = struct {
	FBeginAddress TDWORD
	F__ccgo1_4    struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FUnwindData TDWORD
	}
}

type TIMAGE_ARM_RUNTIME_FUNCTION_ENTRY = struct {
	FBeginAddress TDWORD
	F__ccgo1_4    struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FUnwindData TDWORD
	}
}

type TIMAGE_AUX_SYMBOL = struct {
	FFile [0]struct {
		FName [18]TBYTE
	}
	FSection [0]struct {
		FLength              TDWORD
		FNumberOfRelocations TWORD
		FNumberOfLinenumbers TWORD
		FCheckSum            TDWORD
		FNumber              TSHORT
		FSelection           TBYTE
	}
	FTokenDef [0]TIMAGE_AUX_SYMBOL_TOKEN_DEF
	FCRC      [0]struct {
		Fcrc         TDWORD
		FrgbReserved [14]TBYTE
	}
	FSym struct {
		FTagIndex TDWORD
		FMisc     struct {
			FTotalSize [0]TDWORD
			FLnSz      struct {
				FLinenumber TWORD
				FSize       TWORD
			}
		}
		FFcnAry struct {
			FArray [0]struct {
				FDimension [4]TWORD
			}
			FFunction struct {
				FPointerToLinenumber   TDWORD
				FPointerToNextFunction TDWORD
			}
		}
		FTvIndex TWORD
	}
}

type TIMAGE_AUX_SYMBOL_EX = struct {
	FFile [0]struct {
		FName [20]TBYTE
	}
	FSection [0]struct {
		FLength              TDWORD
		FNumberOfRelocations TWORD
		FNumberOfLinenumbers TWORD
		FCheckSum            TDWORD
		FNumber              TSHORT
		FSelection           TBYTE
		FbReserved           TBYTE
		FHighNumber          TSHORT
		FrgbReserved         [2]TBYTE
	}
	F__ccgo3_0 [0]struct {
		FTokenDef    TIMAGE_AUX_SYMBOL_TOKEN_DEF
		FrgbReserved [2]TBYTE
	}
	FCRC [0]struct {
		Fcrc         TDWORD
		FrgbReserved [16]TBYTE
	}
	FSym struct {
		FWeakDefaultSymIndex TDWORD
		FWeakSearchType      TDWORD
		FrgbReserved         [12]TBYTE
	}
	F__ccgo_pad5 [4]byte
}

type TIMAGE_AUX_SYMBOL_TOKEN_DEF = struct {
	FbAuxType         TBYTE
	FbReserved        TBYTE
	FSymbolTableIndex TDWORD
	FrgbReserved      [12]TBYTE
}

type TIMAGE_AUX_SYMBOL_TYPE = int32

type TIMAGE_BASE_RELOCATION = struct {
	FVirtualAddress TDWORD
	FSizeOfBlock    TDWORD
}

type TIMAGE_BOUND_FORWARDER_REF = struct {
	FTimeDateStamp    TDWORD
	FOffsetModuleName TWORD
	FReserved         TWORD
}

type TIMAGE_BOUND_IMPORT_DESCRIPTOR = struct {
	FTimeDateStamp               TDWORD
	FOffsetModuleName            TWORD
	FNumberOfModuleForwarderRefs TWORD
}

type TIMAGE_CE_RUNTIME_FUNCTION_ENTRY = struct {
	FFuncStart TDWORD
	F__ccgo4   uint32
}

type TIMAGE_COFF_SYMBOLS_HEADER = struct {
	FNumberOfSymbols      TDWORD
	FLvaToFirstSymbol     TDWORD
	FNumberOfLinenumbers  TDWORD
	FLvaToFirstLinenumber TDWORD
	FRvaToFirstByteOfCode TDWORD
	FRvaToLastByteOfCode  TDWORD
	FRvaToFirstByteOfData TDWORD
	FRvaToLastByteOfData  TDWORD
}

type TIMAGE_COR20_HEADER = struct {
	Fcb                  TDWORD
	FMajorRuntimeVersion TWORD
	FMinorRuntimeVersion TWORD
	FMetaData            TIMAGE_DATA_DIRECTORY
	FFlags               TDWORD
	F__ccgo5_20          struct {
		FEntryPointRVA   [0]TDWORD
		FEntryPointToken TDWORD
	}
	FResources               TIMAGE_DATA_DIRECTORY
	FStrongNameSignature     TIMAGE_DATA_DIRECTORY
	FCodeManagerTable        TIMAGE_DATA_DIRECTORY
	FVTableFixups            TIMAGE_DATA_DIRECTORY
	FExportAddressTableJumps TIMAGE_DATA_DIRECTORY
	FManagedNativeHeader     TIMAGE_DATA_DIRECTORY
}

type TIMAGE_DATA_DIRECTORY = struct {
	FVirtualAddress TDWORD
	FSize           TDWORD
}

type TIMAGE_DEBUG_DIRECTORY = struct {
	FCharacteristics  TDWORD
	FTimeDateStamp    TDWORD
	FMajorVersion     TWORD
	FMinorVersion     TWORD
	FType             TDWORD
	FSizeOfData       TDWORD
	FAddressOfRawData TDWORD
	FPointerToRawData TDWORD
}

type TIMAGE_DEBUG_MISC = struct {
	FDataType TDWORD
	FLength   TDWORD
	FUnicode  TBOOLEAN
	FReserved [3]TBYTE
	FData     [1]TBYTE
}

type TIMAGE_DELAYLOAD_DESCRIPTOR = struct {
	FAttributes struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FAllAttributes TDWORD
	}
	FDllNameRVA                 TDWORD
	FModuleHandleRVA            TDWORD
	FImportAddressTableRVA      TDWORD
	FImportNameTableRVA         TDWORD
	FBoundImportAddressTableRVA TDWORD
	FUnloadInformationTableRVA  TDWORD
	FTimeDateStamp              TDWORD
}

type TIMAGE_DOS_HEADER = struct {
	Fe_magic    TWORD
	Fe_cblp     TWORD
	Fe_cp       TWORD
	Fe_crlc     TWORD
	Fe_cparhdr  TWORD
	Fe_minalloc TWORD
	Fe_maxalloc TWORD
	Fe_ss       TWORD
	Fe_sp       TWORD
	Fe_csum     TWORD
	Fe_ip       TWORD
	Fe_cs       TWORD
	Fe_lfarlc   TWORD
	Fe_ovno     TWORD
	Fe_res      [4]TWORD
	Fe_oemid    TWORD
	Fe_oeminfo  TWORD
	Fe_res2     [10]TWORD
	Fe_lfanew   TLONG
}

type TIMAGE_EXPORT_DIRECTORY = struct {
	FCharacteristics       TDWORD
	FTimeDateStamp         TDWORD
	FMajorVersion          TWORD
	FMinorVersion          TWORD
	FName                  TDWORD
	FBase                  TDWORD
	FNumberOfFunctions     TDWORD
	FNumberOfNames         TDWORD
	FAddressOfFunctions    TDWORD
	FAddressOfNames        TDWORD
	FAddressOfNameOrdinals TDWORD
}

type TIMAGE_FILE_HEADER = struct {
	FMachine              TWORD
	FNumberOfSections     TWORD
	FTimeDateStamp        TDWORD
	FPointerToSymbolTable TDWORD
	FNumberOfSymbols      TDWORD
	FSizeOfOptionalHeader TWORD
	FCharacteristics      TWORD
}

type TIMAGE_FUNCTION_ENTRY = struct {
	FStartingAddress TDWORD
	FEndingAddress   TDWORD
	FEndOfPrologue   TDWORD
}

type TIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = struct {
	FBeginAddress TDWORD
	FEndAddress   TDWORD
	F__ccgo2_8    struct {
		FUnwindData        [0]TDWORD
		FUnwindInfoAddress TDWORD
	}
}

type TIMAGE_IMPORT_BY_NAME = struct {
	FHint TWORD
	FName [1]TCHAR
}

type TIMAGE_IMPORT_DESCRIPTOR = struct {
	F__ccgo0_0 struct {
		FOriginalFirstThunk [0]TDWORD
		FCharacteristics    TDWORD
	}
	FTimeDateStamp  TDWORD
	FForwarderChain TDWORD
	FName           TDWORD
	FFirstThunk     TDWORD
}

type TIMAGE_LINENUMBER = struct {
	FType struct {
		FVirtualAddress   [0]TDWORD
		FSymbolTableIndex TDWORD
	}
	FLinenumber TWORD
}

type TIMAGE_LOAD_CONFIG_DIRECTORY32 = struct {
	FSize                          TDWORD
	FTimeDateStamp                 TDWORD
	FMajorVersion                  TWORD
	FMinorVersion                  TWORD
	FGlobalFlagsClear              TDWORD
	FGlobalFlagsSet                TDWORD
	FCriticalSectionDefaultTimeout TDWORD
	FDeCommitFreeBlockThreshold    TDWORD
	FDeCommitTotalFreeThreshold    TDWORD
	FLockPrefixTable               TDWORD
	FMaximumAllocationSize         TDWORD
	FVirtualMemoryThreshold        TDWORD
	FProcessHeapFlags              TDWORD
	FProcessAffinityMask           TDWORD
	FCSDVersion                    TWORD
	FReserved1                     TWORD
	FEditList                      TDWORD
	FSecurityCookie                TDWORD
	FSEHandlerTable                TDWORD
	FSEHandlerCount                TDWORD
}

type TIMAGE_NT_HEADERS32 = struct {
	FSignature      TDWORD
	FFileHeader     TIMAGE_FILE_HEADER
	FOptionalHeader TIMAGE_OPTIONAL_HEADER32
}

type TIMAGE_OPTIONAL_HEADER32 = struct {
	FMagic                       TWORD
	FMajorLinkerVersion          TBYTE
	FMinorLinkerVersion          TBYTE
	FSizeOfCode                  TDWORD
	FSizeOfInitializedData       TDWORD
	FSizeOfUninitializedData     TDWORD
	FAddressOfEntryPoint         TDWORD
	FBaseOfCode                  TDWORD
	FBaseOfData                  TDWORD
	FImageBase                   TDWORD
	FSectionAlignment            TDWORD
	FFileAlignment               TDWORD
	FMajorOperatingSystemVersion TWORD
	FMinorOperatingSystemVersion TWORD
	FMajorImageVersion           TWORD
	FMinorImageVersion           TWORD
	FMajorSubsystemVersion       TWORD
	FMinorSubsystemVersion       TWORD
	FWin32VersionValue           TDWORD
	FSizeOfImage                 TDWORD
	FSizeOfHeaders               TDWORD
	FCheckSum                    TDWORD
	FSubsystem                   TWORD
	FDllCharacteristics          TWORD
	FSizeOfStackReserve          TDWORD
	FSizeOfStackCommit           TDWORD
	FSizeOfHeapReserve           TDWORD
	FSizeOfHeapCommit            TDWORD
	FLoaderFlags                 TDWORD
	FNumberOfRvaAndSizes         TDWORD
	FDataDirectory               [16]TIMAGE_DATA_DIRECTORY
}

type TIMAGE_OS2_HEADER = struct {
	Fne_magic        TWORD
	Fne_ver          TCHAR
	Fne_rev          TCHAR
	Fne_enttab       TWORD
	Fne_cbenttab     TWORD
	Fne_crc          TLONG
	Fne_flags        TWORD
	Fne_autodata     TWORD
	Fne_heap         TWORD
	Fne_stack        TWORD
	Fne_csip         TLONG
	Fne_sssp         TLONG
	Fne_cseg         TWORD
	Fne_cmod         TWORD
	Fne_cbnrestab    TWORD
	Fne_segtab       TWORD
	Fne_rsrctab      TWORD
	Fne_restab       TWORD
	Fne_modtab       TWORD
	Fne_imptab       TWORD
	Fne_nrestab      TLONG
	Fne_cmovent      TWORD
	Fne_align        TWORD
	Fne_cres         TWORD
	Fne_exetyp       TBYTE
	Fne_flagsothers  TBYTE
	Fne_pretthunks   TWORD
	Fne_psegrefbytes TWORD
	Fne_swaparea     TWORD
	Fne_expver       TWORD
}

type TIMAGE_RELOCATION = struct {
	F__ccgo0_0 struct {
		FRelocCount     [0]TDWORD
		FVirtualAddress TDWORD
	}
	FSymbolTableIndex TDWORD
	FType             TWORD
}

type TIMAGE_RESOURCE_DATA_ENTRY = struct {
	FOffsetToData TDWORD
	FSize         TDWORD
	FCodePage     TDWORD
	FReserved     TDWORD
}

type TIMAGE_RESOURCE_DIRECTORY = struct {
	FCharacteristics      TDWORD
	FTimeDateStamp        TDWORD
	FMajorVersion         TWORD
	FMinorVersion         TWORD
	FNumberOfNamedEntries TWORD
	FNumberOfIdEntries    TWORD
}

type TIMAGE_RESOURCE_DIRECTORY_ENTRY = struct {
	F__ccgo0_0 struct {
		FName      [0]TDWORD
		FId        [0]TWORD
		F__ccgo0_0 struct {
			F__ccgo0 uint32
		}
	}
	F__ccgo1_4 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FOffsetToData TDWORD
	}
}

type TIMAGE_RESOURCE_DIRECTORY_STRING = struct {
	FLength     TWORD
	FNameString [1]TCHAR
}

type TIMAGE_RESOURCE_DIR_STRING_U = struct {
	FLength     TWORD
	FNameString [1]TWCHAR
}

type TIMAGE_ROM_HEADERS = struct {
	FFileHeader     TIMAGE_FILE_HEADER
	FOptionalHeader TIMAGE_ROM_OPTIONAL_HEADER
}

type TIMAGE_ROM_OPTIONAL_HEADER = struct {
	FMagic                   TWORD
	FMajorLinkerVersion      TBYTE
	FMinorLinkerVersion      TBYTE
	FSizeOfCode              TDWORD
	FSizeOfInitializedData   TDWORD
	FSizeOfUninitializedData TDWORD
	FAddressOfEntryPoint     TDWORD
	FBaseOfCode              TDWORD
	FBaseOfData              TDWORD
	FBaseOfBss               TDWORD
	FGprMask                 TDWORD
	FCprMask                 [4]TDWORD
	FGpValue                 TDWORD
}

type TIMAGE_RUNTIME_FUNCTION_ENTRY = struct {
	FBeginAddress TDWORD
	FEndAddress   TDWORD
	F__ccgo2_8    struct {
		FUnwindData        [0]TDWORD
		FUnwindInfoAddress TDWORD
	}
}

type TIMAGE_SECTION_HEADER = struct {
	FName [8]TBYTE
	FMisc struct {
		FVirtualSize     [0]TDWORD
		FPhysicalAddress TDWORD
	}
	FVirtualAddress       TDWORD
	FSizeOfRawData        TDWORD
	FPointerToRawData     TDWORD
	FPointerToRelocations TDWORD
	FPointerToLinenumbers TDWORD
	FNumberOfRelocations  TWORD
	FNumberOfLinenumbers  TWORD
	FCharacteristics      TDWORD
}

type TIMAGE_SEPARATE_DEBUG_HEADER = struct {
	FSignature          TWORD
	FFlags              TWORD
	FMachine            TWORD
	FCharacteristics    TWORD
	FTimeDateStamp      TDWORD
	FCheckSum           TDWORD
	FImageBase          TDWORD
	FSizeOfImage        TDWORD
	FNumberOfSections   TDWORD
	FExportedNamesSize  TDWORD
	FDebugDirectorySize TDWORD
	FSectionAlignment   TDWORD
	FReserved           [2]TDWORD
}

type TIMAGE_SYMBOL = struct {
	FN struct {
		FName [0]struct {
			FShort TDWORD
			FLong  TDWORD
		}
		FLongName  [0][2]TDWORD
		FShortName [8]TBYTE
	}
	FValue              TDWORD
	FSectionNumber      TSHORT
	FType               TWORD
	FStorageClass       TBYTE
	FNumberOfAuxSymbols TBYTE
}

type TIMAGE_SYMBOL_EX = struct {
	FN struct {
		FName [0]struct {
			FShort TDWORD
			FLong  TDWORD
		}
		FLongName  [0][2]TDWORD
		FShortName [8]TBYTE
	}
	FValue              TDWORD
	FSectionNumber      TLONG
	FType               TWORD
	FStorageClass       TBYTE
	FNumberOfAuxSymbols TBYTE
}

type TIMAGE_THUNK_DATA32 = struct {
	Fu1 struct {
		FFunction        [0]TDWORD
		FOrdinal         [0]TDWORD
		FAddressOfData   [0]TDWORD
		FForwarderString TDWORD
	}
}

type TIMAGE_TLS_DIRECTORY32 = struct {
	FStartAddressOfRawData TDWORD
	FEndAddressOfRawData   TDWORD
	FAddressOfIndex        TDWORD
	FAddressOfCallBacks    TDWORD
	FSizeOfZeroFill        TDWORD
	FCharacteristics       TDWORD
}

type TIMAGE_VXD_HEADER = struct {
	Fe32_magic        TWORD
	Fe32_border       TBYTE
	Fe32_worder       TBYTE
	Fe32_level        TDWORD
	Fe32_cpu          TWORD
	Fe32_os           TWORD
	Fe32_ver          TDWORD
	Fe32_mflags       TDWORD
	Fe32_mpages       TDWORD
	Fe32_startobj     TDWORD
	Fe32_eip          TDWORD
	Fe32_stackobj     TDWORD
	Fe32_esp          TDWORD
	Fe32_pagesize     TDWORD
	Fe32_lastpagesize TDWORD
	Fe32_fixupsize    TDWORD
	Fe32_fixupsum     TDWORD
	Fe32_ldrsize      TDWORD
	Fe32_ldrsum       TDWORD
	Fe32_objtab       TDWORD
	Fe32_objcnt       TDWORD
	Fe32_objmap       TDWORD
	Fe32_itermap      TDWORD
	Fe32_rsrctab      TDWORD
	Fe32_rsrccnt      TDWORD
	Fe32_restab       TDWORD
	Fe32_enttab       TDWORD
	Fe32_dirtab       TDWORD
	Fe32_dircnt       TDWORD
	Fe32_fpagetab     TDWORD
	Fe32_frectab      TDWORD
	Fe32_impmod       TDWORD
	Fe32_impmodcnt    TDWORD
	Fe32_impproc      TDWORD
	Fe32_pagesum      TDWORD
	Fe32_datapage     TDWORD
	Fe32_preload      TDWORD
	Fe32_nrestab      TDWORD
	Fe32_cbnrestab    TDWORD
	Fe32_nressum      TDWORD
	Fe32_autodata     TDWORD
	Fe32_debuginfo    TDWORD
	Fe32_debuglen     TDWORD
	Fe32_instpreload  TDWORD
	Fe32_instdemand   TDWORD
	Fe32_heapsize     TDWORD
	Fe32_res3         [12]TBYTE
	Fe32_winresoff    TDWORD
	Fe32_winreslen    TDWORD
	Fe32_devid        TWORD
	Fe32_ddkver       TWORD
}

type TIMCENUMPROC = uintptr

type TIMECAPS = TTIMECAPS

type TIMECHARPOSITION = struct {
	FdwSize      TDWORD
	FdwCharPos   TDWORD
	Fpt          TPOINT
	FcLineHeight TUINT
	FrcDocument  TRECT
}

const TIMEFMT_ENUMPROC = 0

type TIMEFMT_ENUMPROCA = TTIMEFMT_ENUMPROCA

type TIMEFMT_ENUMPROCEX = TTIMEFMT_ENUMPROCEX

type TIMEFMT_ENUMPROCW = TTIMEFMT_ENUMPROCW

type TIMEMENUITEMINFO = struct {
	FcbSize        TUINT
	FfType         TUINT
	FfState        TUINT
	FwID           TUINT
	FhbmpChecked   THBITMAP
	FhbmpUnchecked THBITMAP
	FdwItemData    TDWORD
	FszString      [80]TCHAR
	FhbmpItem      THBITMAP
}

type TIMEMENUITEMINFOA = struct {
	FcbSize        TUINT
	FfType         TUINT
	FfState        TUINT
	FwID           TUINT
	FhbmpChecked   THBITMAP
	FhbmpUnchecked THBITMAP
	FdwItemData    TDWORD
	FszString      [80]TCHAR
	FhbmpItem      THBITMAP
}

type TIMEMENUITEMINFOW = struct {
	FcbSize        TUINT
	FfType         TUINT
	FfState        TUINT
	FwID           TUINT
	FhbmpChecked   THBITMAP
	FhbmpUnchecked THBITMAP
	FdwItemData    TDWORD
	FszString      [80]TWCHAR
	FhbmpItem      THBITMAP
}

const TIMEOUT_ASYNC = 4294967295

type TIMERPROC = TTIMERPROC

const TIMERR_BASE = 96

const TIMERR_NOCANDO = 97

const TIMERR_NOERROR = 0

const TIMERR_STRUCT = 129

const TIMERV_COALESCING_MAX = 2147483637

const TIMERV_COALESCING_MIN = 1

const TIMERV_DEFAULT_COALESCING = 0

const TIMERV_NO_COALESCING = 4294967295

const TIMER_ALL_ACCESS = 2031619

const TIMER_MODIFY_STATE = 2

const TIMER_QUERY_STATE = 1

const TIMESTAMP_DONT_HASH_DATA = 1

const TIMESTAMP_FAILURE_BAD_ALG = 0

const TIMESTAMP_FAILURE_BAD_FORMAT = 5

const TIMESTAMP_FAILURE_BAD_REQUEST = 2

const TIMESTAMP_FAILURE_EXTENSION_NOT_SUPPORTED = 16

const TIMESTAMP_FAILURE_INFO_NOT_AVAILABLE = 17

const TIMESTAMP_FAILURE_POLICY_NOT_SUPPORTED = 15

const TIMESTAMP_FAILURE_SYSTEM_FAILURE = 25

const TIMESTAMP_FAILURE_TIME_NOT_AVAILABLE = 14

const TIMESTAMP_NO_AUTH_RETRIEVAL = 131072

const TIMESTAMP_STATUS_GRANTED = 0

const TIMESTAMP_STATUS_GRANTED_WITH_MODS = 1

const TIMESTAMP_STATUS_REJECTED = 2

const TIMESTAMP_STATUS_REVOCATION_WARNING = 4

const TIMESTAMP_STATUS_REVOKED = 5

const TIMESTAMP_STATUS_WAITING = 3

const TIMESTAMP_VERIFY_CONTEXT_SIGNATURE = 32

const TIMESTAMP_VERSION = 1

type TIMEVAL = TTIMEVAL

const TIME_BYTES = 4

const TIME_CALLBACK_EVENT_PULSE = 32

const TIME_CALLBACK_EVENT_SET = 16

const TIME_CALLBACK_FUNCTION = 0

const TIME_FORCE24HOURFORMAT = 8

const TIME_KILL_SYNCHRONOUS = 256

const TIME_MIDI = 16

const TIME_MS = 1

const TIME_NOMINUTESORSECONDS = 1

const TIME_NOSECONDS = 2

const TIME_NOTIMEMARKER = 4

const TIME_ONESHOT = 0

const TIME_PERIODIC = 1

const TIME_SAMPLES = 2

const TIME_SMPTE = 8

const TIME_TICKS = 32

const TIME_VALID_OID_FLUSH_OBJECT_FUNC = "TimeValidDllFlushObject"

const TIME_VALID_OID_GET_OBJECT_FUNC = "TimeValidDllGetObject"

const TIME_ZONE_ID_DAYLIGHT = 2

const TIME_ZONE_ID_STANDARD = 1

const TIME_ZONE_ID_UNKNOWN = 0

type TIME_ZONE_INFORMATION = TTIME_ZONE_INFORMATION

type TIMPORT_OBJECT_HEADER = struct {
	FSig1          TWORD
	FSig2          TWORD
	FVersion       TWORD
	FMachine       TWORD
	FTimeDateStamp TDWORD
	FSizeOfData    TDWORD
	F__ccgo6_16    struct {
		FHint    [0]TWORD
		FOrdinal TWORD
	}
	F__ccgo18 uint16
}

type TIMPORT_OBJECT_NAME_TYPE = int32

type TIMPORT_OBJECT_TYPE = int32

type TIMalloc = struct {
	FlpVtbl uintptr
}

type TIMallocSpy = struct {
	FlpVtbl uintptr
}

type TIMallocSpyVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FPreAlloc         uintptr
	FPostAlloc        uintptr
	FPreFree          uintptr
	FPostFree         uintptr
	FPreRealloc       uintptr
	FPostRealloc      uintptr
	FPreGetSize       uintptr
	FPostGetSize      uintptr
	FPreDidAlloc      uintptr
	FPostDidAlloc     uintptr
	FPreHeapMinimize  uintptr
	FPostHeapMinimize uintptr
}

type TIMallocVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FAlloc          uintptr
	FRealloc        uintptr
	FFree           uintptr
	FGetSize        uintptr
	FDidAlloc       uintptr
	FHeapMinimize   uintptr
}

type TIMarshal = struct {
	FlpVtbl uintptr
}

type TIMarshal2 = struct {
	FlpVtbl uintptr
}

type TIMarshal2Vtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FGetUnmarshalClass  uintptr
	FGetMarshalSizeMax  uintptr
	FMarshalInterface   uintptr
	FUnmarshalInterface uintptr
	FReleaseMarshalData uintptr
	FDisconnectObject   uintptr
}

type TIMarshalVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FGetUnmarshalClass  uintptr
	FGetMarshalSizeMax  uintptr
	FMarshalInterface   uintptr
	FUnmarshalInterface uintptr
	FReleaseMarshalData uintptr
	FDisconnectObject   uintptr
}

type TIMarshalingStream = struct {
	FlpVtbl uintptr
}

type TIMarshalingStreamVtbl = struct {
	FQueryInterface                uintptr
	FAddRef                        uintptr
	FRelease                       uintptr
	FRead                          uintptr
	FWrite                         uintptr
	FSeek                          uintptr
	FSetSize                       uintptr
	FCopyTo                        uintptr
	FCommit                        uintptr
	FRevert                        uintptr
	FLockRegion                    uintptr
	FUnlockRegion                  uintptr
	FStat                          uintptr
	FClone                         uintptr
	FGetMarshalingContextAttribute uintptr
}

type TIMessageFilter = struct {
	FlpVtbl uintptr
}

type TIMessageFilterVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FHandleInComingCall uintptr
	FRetryRejectedCall  uintptr
	FMessagePending     uintptr
}

type TIMoniker = struct {
	FlpVtbl uintptr
}

type TIMonikerProp = struct {
	FlpVtbl uintptr
}

type TIMonikerPropVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FPutProperty    uintptr
}

type TIMonikerVtbl = struct {
	FQueryInterface      uintptr
	FAddRef              uintptr
	FRelease             uintptr
	FGetClassID          uintptr
	FIsDirty             uintptr
	FLoad                uintptr
	FSave                uintptr
	FGetSizeMax          uintptr
	FBindToObject        uintptr
	FBindToStorage       uintptr
	FReduce              uintptr
	FComposeWith         uintptr
	FEnum                uintptr
	FIsEqual             uintptr
	FHash                uintptr
	FIsRunning           uintptr
	FGetTimeOfLastChange uintptr
	FInverse             uintptr
	FCommonPrefixWith    uintptr
	FRelativePathTo      uintptr
	FGetDisplayName      uintptr
	FParseDisplayName    uintptr
	FIsSystemMoniker     uintptr
}

type TIMultiQI = struct {
	FlpVtbl uintptr
}

type TIMultiQIVtbl = struct {
	FQueryInterface          uintptr
	FAddRef                  uintptr
	FRelease                 uintptr
	FQueryMultipleInterfaces uintptr
}

type TINIT_ONCE = struct {
	FPtr TPVOID
}

type TINPUT_INJECTION_VALUE = struct {
	Fpage  TUSHORT
	Fusage TUSHORT
	Fvalue TINT32
	Findex TUSHORT
}

type TINPUT_MESSAGE_DEVICE_TYPE = int32

type TINPUT_MESSAGE_ORIGIN_ID = int32

type TINPUT_MESSAGE_SOURCE = struct {
	FdeviceType TINPUT_MESSAGE_DEVICE_TYPE
	ForiginId   TINPUT_MESSAGE_ORIGIN_ID
}

type TINPUT_RECORD = struct {
	FEventType TWORD
	FEvent     struct {
		FMouseEvent            [0]TMOUSE_EVENT_RECORD
		FWindowBufferSizeEvent [0]TWINDOW_BUFFER_SIZE_RECORD
		FMenuEvent             [0]TMENU_EVENT_RECORD
		FFocusEvent            [0]TFOCUS_EVENT_RECORD
		FKeyEvent              TKEY_EVENT_RECORD
	}
}

type TINPUT_TRANSFORM = struct {
	F__ccgo0_0 struct {
		Fm         [0][4][4]float32
		F__ccgo0_0 struct {
			F_11 float32
			F_12 float32
			F_13 float32
			F_14 float32
			F_21 float32
			F_22 float32
			F_23 float32
			F_24 float32
			F_31 float32
			F_32 float32
			F_33 float32
			F_34 float32
			F_41 float32
			F_42 float32
			F_43 float32
			F_44 float32
		}
	}
}

type TINT = int32

type TINT16 = int16

type TINT32 = int32

type TINT64 = int64

type TINT8 = int8

type TINTERFACEDATA = struct {
	Fpmethdata uintptr
	FcMembers  TUINT
}

type TINTERFACEINFO = struct {
	FpUnk    uintptr
	Fiid     TIID
	FwMethod TWORD
}

type TINTERNETFEATURELIST = int32

type TINVOKEKIND = int32

type TIN_ADDR = struct {
	FS_un struct {
		FS_un_w [0]struct {
			Fs_w1 Tu_short
			Fs_w2 Tu_short
		}
		FS_addr [0]Tu_long
		FS_un_b struct {
			Fs_b1 Tu_char
			Fs_b2 Tu_char
			Fs_b3 Tu_char
			Fs_b4 Tu_char
		}
	}
}

type TINoMarshal = struct {
	FlpVtbl uintptr
}

type TINoMarshalVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
}

type TIOleAdviseHolder = struct {
	FlpVtbl uintptr
}

type TIOleAdviseHolderVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FAdvise         uintptr
	FUnadvise       uintptr
	FEnumAdvise     uintptr
	FSendOnRename   uintptr
	FSendOnSave     uintptr
	FSendOnClose    uintptr
}

type TIOleCache = struct {
	FlpVtbl uintptr
}

type TIOleCache2 = struct {
	FlpVtbl uintptr
}

type TIOleCache2Vtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCache          uintptr
	FUncache        uintptr
	FEnumCache      uintptr
	FInitCache      uintptr
	FSetData        uintptr
	FUpdateCache    uintptr
	FDiscardCache   uintptr
}

type TIOleCacheControl = struct {
	FlpVtbl uintptr
}

type TIOleCacheControlVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FOnRun          uintptr
	FOnStop         uintptr
}

type TIOleCacheVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCache          uintptr
	FUncache        uintptr
	FEnumCache      uintptr
	FInitCache      uintptr
	FSetData        uintptr
}

type TIOleClientSite = struct {
	FlpVtbl uintptr
}

type TIOleClientSiteVtbl = struct {
	FQueryInterface         uintptr
	FAddRef                 uintptr
	FRelease                uintptr
	FSaveObject             uintptr
	FGetMoniker             uintptr
	FGetContainer           uintptr
	FShowObject             uintptr
	FOnShowWindow           uintptr
	FRequestNewObjectLayout uintptr
}

type TIOleContainer = struct {
	FlpVtbl uintptr
}

type TIOleContainerVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FParseDisplayName uintptr
	FEnumObjects      uintptr
	FLockContainer    uintptr
}

type TIOleInPlaceActiveObject = struct {
	FlpVtbl uintptr
}

type TIOleInPlaceActiveObjectVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetWindow             uintptr
	FContextSensitiveHelp  uintptr
	FTranslateAcceleratorA uintptr
	FOnFrameWindowActivate uintptr
	FOnDocWindowActivate   uintptr
	FResizeBorder          uintptr
	FEnableModeless        uintptr
}

type TIOleInPlaceFrame = struct {
	FlpVtbl uintptr
}

type TIOleInPlaceFrameVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetWindow             uintptr
	FContextSensitiveHelp  uintptr
	FGetBorder             uintptr
	FRequestBorderSpace    uintptr
	FSetBorderSpace        uintptr
	FSetActiveObject       uintptr
	FInsertMenus           uintptr
	FSetMenu               uintptr
	FRemoveMenus           uintptr
	FSetStatusText         uintptr
	FEnableModeless        uintptr
	FTranslateAcceleratorA uintptr
}

type TIOleInPlaceObject = struct {
	FlpVtbl uintptr
}

type TIOleInPlaceObjectVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FGetWindow            uintptr
	FContextSensitiveHelp uintptr
	FInPlaceDeactivate    uintptr
	FUIDeactivate         uintptr
	FSetObjectRects       uintptr
	FReactivateAndUndo    uintptr
}

type TIOleInPlaceSite = struct {
	FlpVtbl uintptr
}

type TIOleInPlaceSiteVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FGetWindow            uintptr
	FContextSensitiveHelp uintptr
	FCanInPlaceActivate   uintptr
	FOnInPlaceActivate    uintptr
	FOnUIActivate         uintptr
	FGetWindowContext     uintptr
	FScroll               uintptr
	FOnUIDeactivate       uintptr
	FOnInPlaceDeactivate  uintptr
	FDiscardUndoState     uintptr
	FDeactivateAndUndo    uintptr
	FOnPosRectChange      uintptr
}

type TIOleInPlaceUIWindow = struct {
	FlpVtbl uintptr
}

type TIOleInPlaceUIWindowVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FGetWindow            uintptr
	FContextSensitiveHelp uintptr
	FGetBorder            uintptr
	FRequestBorderSpace   uintptr
	FSetBorderSpace       uintptr
	FSetActiveObject      uintptr
}

type TIOleItemContainer = struct {
	FlpVtbl uintptr
}

type TIOleItemContainerVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FParseDisplayName uintptr
	FEnumObjects      uintptr
	FLockContainer    uintptr
	FGetObjectA       uintptr
	FGetObjectStorage uintptr
	FIsRunning        uintptr
}

type TIOleLink = struct {
	FlpVtbl uintptr
}

type TIOleLinkVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FSetUpdateOptions     uintptr
	FGetUpdateOptions     uintptr
	FSetSourceMoniker     uintptr
	FGetSourceMoniker     uintptr
	FSetSourceDisplayName uintptr
	FGetSourceDisplayName uintptr
	FBindToSource         uintptr
	FBindIfRunning        uintptr
	FGetBoundSource       uintptr
	FUnbindSource         uintptr
	FUpdate               uintptr
}

type TIOleObject = struct {
	FlpVtbl uintptr
}

type TIOleObjectVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FSetClientSite    uintptr
	FGetClientSite    uintptr
	FSetHostNames     uintptr
	FClose            uintptr
	FSetMoniker       uintptr
	FGetMoniker       uintptr
	FInitFromData     uintptr
	FGetClipboardData uintptr
	FDoVerb           uintptr
	FEnumVerbs        uintptr
	FUpdate           uintptr
	FIsUpToDate       uintptr
	FGetUserClassID   uintptr
	FGetUserType      uintptr
	FSetExtent        uintptr
	FGetExtent        uintptr
	FAdvise           uintptr
	FUnadvise         uintptr
	FEnumAdvise       uintptr
	FGetMiscStatus    uintptr
	FSetColorScheme   uintptr
}

type TIOleWindow = struct {
	FlpVtbl uintptr
}

type TIOleWindowVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FGetWindow            uintptr
	FContextSensitiveHelp uintptr
}

type TIOplockStorage = struct {
	FlpVtbl uintptr
}

type TIOplockStorageVtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FCreateStorageEx uintptr
	FOpenStorageEx   uintptr
}

type TIPSFactoryBuffer = struct {
	FlpVtbl uintptr
}

type TIPSFactoryBufferVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCreateProxy    uintptr
	FCreateStub     uintptr
}

type TIP_MREQ = struct {
	Fimr_multiaddr Tin_addr
	Fimr_interface Tin_addr
}

type TIParseDisplayName = struct {
	FlpVtbl uintptr
}

type TIParseDisplayNameVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FParseDisplayName uintptr
}

type TIPersist = struct {
	FlpVtbl uintptr
}

type TIPersistFile = struct {
	FlpVtbl uintptr
}

type TIPersistFileVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetClassID     uintptr
	FIsDirty        uintptr
	FLoad           uintptr
	FSave           uintptr
	FSaveCompleted  uintptr
	FGetCurFile     uintptr
}

type TIPersistMoniker = struct {
	FlpVtbl uintptr
}

type TIPersistMonikerVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetClassID     uintptr
	FIsDirty        uintptr
	FLoad           uintptr
	FSave           uintptr
	FSaveCompleted  uintptr
	FGetCurMoniker  uintptr
}

type TIPersistStorage = struct {
	FlpVtbl uintptr
}

type TIPersistStorageVtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FGetClassID      uintptr
	FIsDirty         uintptr
	FInitNew         uintptr
	FLoad            uintptr
	FSave            uintptr
	FSaveCompleted   uintptr
	FHandsOffStorage uintptr
}

type TIPersistStream = struct {
	FlpVtbl uintptr
}

type TIPersistStreamVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetClassID     uintptr
	FIsDirty        uintptr
	FLoad           uintptr
	FSave           uintptr
	FGetSizeMax     uintptr
}

type TIPersistVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetClassID     uintptr
}

type TIPipeByte = struct {
	FlpVtbl uintptr
}

type TIPipeByteVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FPull           uintptr
	FPush           uintptr
}

type TIPipeDouble = struct {
	FlpVtbl uintptr
}

type TIPipeDoubleVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FPull           uintptr
	FPush           uintptr
}

type TIPipeLong = struct {
	FlpVtbl uintptr
}

type TIPipeLongVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FPull           uintptr
	FPush           uintptr
}

type TIPrintDialogCallback = struct {
	FlpVtbl uintptr
}

type TIPrintDialogCallbackVtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FInitDone        uintptr
	FSelectionChange uintptr
	FHandleMessage   uintptr
}

type TIPrintDialogServices = struct {
	FlpVtbl uintptr
}

type TIPrintDialogServicesVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetCurrentDevMode     uintptr
	FGetCurrentPrinterName uintptr
	FGetCurrentPortName    uintptr
}

type TIProcessInitControl = struct {
	FlpVtbl uintptr
}

type TIProcessInitControlVtbl = struct {
	FQueryInterface          uintptr
	FAddRef                  uintptr
	FRelease                 uintptr
	FResetInitializerTimeout uintptr
}

type TIProcessLock = struct {
	FlpVtbl uintptr
}

type TIProcessLockVtbl = struct {
	FQueryInterface      uintptr
	FAddRef              uintptr
	FRelease             uintptr
	FAddRefOnProcess     uintptr
	FReleaseRefOnProcess uintptr
}

type TIProgressNotify = struct {
	FlpVtbl uintptr
}

type TIProgressNotifyVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FOnProgress     uintptr
}

type TIPropertyBag = struct {
	FlpVtbl uintptr
}

type TIPropertyBagVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FRead           uintptr
	FWrite          uintptr
}

type TIPropertySetStorage = struct {
	FlpVtbl uintptr
}

type TIPropertySetStorageVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FCreate         uintptr
	FOpen           uintptr
	FDelete         uintptr
	FEnum           uintptr
}

type TIPropertyStorage = struct {
	FlpVtbl uintptr
}

type TIPropertyStorageVtbl = struct {
	FQueryInterface      uintptr
	FAddRef              uintptr
	FRelease             uintptr
	FReadMultiple        uintptr
	FWriteMultiple       uintptr
	FDeleteMultiple      uintptr
	FReadPropertyNames   uintptr
	FWritePropertyNames  uintptr
	FDeletePropertyNames uintptr
	FCommit              uintptr
	FRevert              uintptr
	FEnum                uintptr
	FSetTimes            uintptr
	FSetClass            uintptr
	FStat                uintptr
}

type TIROTData = struct {
	FlpVtbl uintptr
}

type TIROTDataVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FGetComparisonData uintptr
}

type TIRecordInfo = struct {
	FlpVtbl uintptr
}

type TIRecordInfoVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FRecordInit       uintptr
	FRecordClear      uintptr
	FRecordCopy       uintptr
	FGetGuid          uintptr
	FGetName          uintptr
	FGetSize          uintptr
	FGetTypeInfo      uintptr
	FGetField         uintptr
	FGetFieldNoCopy   uintptr
	FPutField         uintptr
	FPutFieldNoCopy   uintptr
	FGetFieldNames    uintptr
	FIsMatchingType   uintptr
	FRecordCreate     uintptr
	FRecordCreateCopy uintptr
	FRecordDestroy    uintptr
}

type TIReleaseMarshalBuffers = struct {
	FlpVtbl uintptr
}

type TIReleaseMarshalBuffersVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FReleaseMarshalBuffer uintptr
}

type TIRootStorage = struct {
	FlpVtbl uintptr
}

type TIRootStorageVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FSwitchToFile   uintptr
}

type TIRpcChannelBuffer = struct {
	FlpVtbl uintptr
}

type TIRpcChannelBuffer2 = struct {
	FlpVtbl uintptr
}

type TIRpcChannelBuffer2Vtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FGetBuffer          uintptr
	FSendReceive        uintptr
	FFreeBuffer         uintptr
	FGetDestCtx         uintptr
	FIsConnected        uintptr
	FGetProtocolVersion uintptr
}

type TIRpcChannelBuffer3 = struct {
	FlpVtbl uintptr
}

type TIRpcChannelBuffer3Vtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FGetBuffer          uintptr
	FSendReceive        uintptr
	FFreeBuffer         uintptr
	FGetDestCtx         uintptr
	FIsConnected        uintptr
	FGetProtocolVersion uintptr
	FSend               uintptr
	FReceive            uintptr
	FCancel             uintptr
	FGetCallContext     uintptr
	FGetDestCtxEx       uintptr
	FGetState           uintptr
	FRegisterAsync      uintptr
}

type TIRpcChannelBufferVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetBuffer      uintptr
	FSendReceive    uintptr
	FFreeBuffer     uintptr
	FGetDestCtx     uintptr
	FIsConnected    uintptr
}

type TIRpcHelper = struct {
	FlpVtbl uintptr
}

type TIRpcHelperVtbl = struct {
	FQueryInterface         uintptr
	FAddRef                 uintptr
	FRelease                uintptr
	FGetDCOMProtocolVersion uintptr
	FGetIIDFromOBJREF       uintptr
}

type TIRpcOptions = struct {
	FlpVtbl uintptr
}

type TIRpcOptionsVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FSet            uintptr
	FQuery          uintptr
}

type TIRpcProxyBuffer = struct {
	FlpVtbl uintptr
}

type TIRpcProxyBufferVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FConnect        uintptr
	FDisconnect     uintptr
}

type TIRpcStubBuffer = struct {
	FlpVtbl uintptr
}

type TIRpcStubBufferVtbl = struct {
	FQueryInterface            uintptr
	FAddRef                    uintptr
	FRelease                   uintptr
	FConnect                   uintptr
	FDisconnect                uintptr
	FInvoke                    uintptr
	FIsIIDSupported            uintptr
	FCountRefs                 uintptr
	FDebugServerQueryInterface uintptr
	FDebugServerRelease        uintptr
}

type TIRpcSyntaxNegotiate = struct {
	FlpVtbl uintptr
}

type TIRpcSyntaxNegotiateVtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FNegotiateSyntax uintptr
}

type TIRunnableObject = struct {
	FlpVtbl uintptr
}

type TIRunnableObjectVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FGetRunningClass    uintptr
	FRun                uintptr
	FIsRunning          uintptr
	FLockRunning        uintptr
	FSetContainedObject uintptr
}

type TIRunningObjectTable = struct {
	FlpVtbl uintptr
}

type TIRunningObjectTableVtbl = struct {
	FQueryInterface      uintptr
	FAddRef              uintptr
	FRelease             uintptr
	FRegister            uintptr
	FRevoke              uintptr
	FIsRunning           uintptr
	FGetObjectA          uintptr
	FNoteChangeTime      uintptr
	FGetTimeOfLastChange uintptr
	FEnumRunning         uintptr
}

type TISequentialStream = struct {
	FlpVtbl uintptr
}

type TISequentialStreamVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FRead           uintptr
	FWrite          uintptr
}

type TIServerSecurity = struct {
	FlpVtbl uintptr
}

type TIServerSecurityVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FQueryBlanket      uintptr
	FImpersonateClient uintptr
	FRevertToSelf      uintptr
	FIsImpersonating   uintptr
}

type TIServiceProvider = struct {
	FlpVtbl uintptr
}

type TIServiceProviderVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FQueryService   uintptr
}

type TISoftDistExt = struct {
	FlpVtbl uintptr
}

type TISoftDistExtVtbl = struct {
	FQueryInterface               uintptr
	FAddRef                       uintptr
	FRelease                      uintptr
	FProcessSoftDist              uintptr
	FGetFirstCodeBase             uintptr
	FGetNextCodeBase              uintptr
	FAsyncInstallDistributionUnit uintptr
}

type TIStdMarshalInfo = struct {
	FlpVtbl uintptr
}

type TIStdMarshalInfoVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FGetClassForHandler uintptr
}

type TIStorage = struct {
	FlpVtbl uintptr
}

type TIStorageVtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FCreateStream    uintptr
	FOpenStream      uintptr
	FCreateStorage   uintptr
	FOpenStorage     uintptr
	FCopyTo          uintptr
	FMoveElementTo   uintptr
	FCommit          uintptr
	FRevert          uintptr
	FEnumElements    uintptr
	FDestroyElement  uintptr
	FRenameElement   uintptr
	FSetElementTimes uintptr
	FSetClass        uintptr
	FSetStateBits    uintptr
	FStat            uintptr
}

type TIStream = struct {
	FlpVtbl uintptr
}

type TIStreamVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FRead           uintptr
	FWrite          uintptr
	FSeek           uintptr
	FSetSize        uintptr
	FCopyTo         uintptr
	FCommit         uintptr
	FRevert         uintptr
	FLockRegion     uintptr
	FUnlockRegion   uintptr
	FStat           uintptr
	FClone          uintptr
}

type TISupportErrorInfo = struct {
	FlpVtbl uintptr
}

type TISupportErrorInfoVtbl = struct {
	FQueryInterface             uintptr
	FAddRef                     uintptr
	FRelease                    uintptr
	FInterfaceSupportsErrorInfo uintptr
}

type TISurrogate = struct {
	FlpVtbl uintptr
}

type TISurrogateService = struct {
	FlpVtbl uintptr
}

type TISurrogateServiceVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FInit              uintptr
	FApplicationLaunch uintptr
	FApplicationFree   uintptr
	FCatalogRefresh    uintptr
	FProcessShutdown   uintptr
}

type TISurrogateVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FLoadDllServer  uintptr
	FFreeSurrogate  uintptr
}

type TISynchronize = struct {
	FlpVtbl uintptr
}

type TISynchronizeContainer = struct {
	FlpVtbl uintptr
}

type TISynchronizeContainerVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FAddSynchronize uintptr
	FWaitMultiple   uintptr
}

type TISynchronizeEvent = struct {
	FlpVtbl uintptr
}

type TISynchronizeEventVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetHandle      uintptr
	FSetEventHandle uintptr
}

type TISynchronizeHandle = struct {
	FlpVtbl uintptr
}

type TISynchronizeHandleVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetHandle      uintptr
}

type TISynchronizeMutex = struct {
	FlpVtbl uintptr
}

type TISynchronizeMutexVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FWait           uintptr
	FSignal         uintptr
	FReset          uintptr
	FReleaseMutex   uintptr
}

type TISynchronizeVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FWait           uintptr
	FSignal         uintptr
	FReset          uintptr
}

type TITLEBARINFO = TTITLEBARINFO

type TITLEBARINFOEX = TTITLEBARINFOEX

type TIThumbnailExtractor = struct {
	FlpVtbl uintptr
}

type TIThumbnailExtractorVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FExtractThumbnail uintptr
	FOnFileUpdated    uintptr
}

type TITimeAndNoticeControl = struct {
	FlpVtbl uintptr
}

type TITimeAndNoticeControlVtbl = struct {
	FQueryInterface  uintptr
	FAddRef          uintptr
	FRelease         uintptr
	FSuppressChanges uintptr
}

type TITypeChangeEvents = struct {
	FlpVtbl uintptr
}

type TITypeChangeEventsVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FRequestTypeChange uintptr
	FAfterTypeChange   uintptr
}

type TITypeComp = struct {
	FlpVtbl uintptr
}

type TITypeCompVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FBind           uintptr
	FBindType       uintptr
}

type TITypeFactory = struct {
	FlpVtbl uintptr
}

type TITypeFactoryVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FCreateFromTypeInfo uintptr
}

type TITypeInfo = struct {
	FlpVtbl uintptr
}

type TITypeInfo2 = struct {
	FlpVtbl uintptr
}

type TITypeInfo2Vtbl = struct {
	FQueryInterface         uintptr
	FAddRef                 uintptr
	FRelease                uintptr
	FGetTypeAttr            uintptr
	FGetTypeComp            uintptr
	FGetFuncDesc            uintptr
	FGetVarDesc             uintptr
	FGetNames               uintptr
	FGetRefTypeOfImplType   uintptr
	FGetImplTypeFlags       uintptr
	FGetIDsOfNames          uintptr
	FInvoke                 uintptr
	FGetDocumentation       uintptr
	FGetDllEntry            uintptr
	FGetRefTypeInfo         uintptr
	FAddressOfMember        uintptr
	FCreateInstance         uintptr
	FGetMops                uintptr
	FGetContainingTypeLib   uintptr
	FReleaseTypeAttr        uintptr
	FReleaseFuncDesc        uintptr
	FReleaseVarDesc         uintptr
	FGetTypeKind            uintptr
	FGetTypeFlags           uintptr
	FGetFuncIndexOfMemId    uintptr
	FGetVarIndexOfMemId     uintptr
	FGetCustData            uintptr
	FGetFuncCustData        uintptr
	FGetParamCustData       uintptr
	FGetVarCustData         uintptr
	FGetImplTypeCustData    uintptr
	FGetDocumentation2      uintptr
	FGetAllCustData         uintptr
	FGetAllFuncCustData     uintptr
	FGetAllParamCustData    uintptr
	FGetAllVarCustData      uintptr
	FGetAllImplTypeCustData uintptr
}

type TITypeInfoVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FGetTypeAttr          uintptr
	FGetTypeComp          uintptr
	FGetFuncDesc          uintptr
	FGetVarDesc           uintptr
	FGetNames             uintptr
	FGetRefTypeOfImplType uintptr
	FGetImplTypeFlags     uintptr
	FGetIDsOfNames        uintptr
	FInvoke               uintptr
	FGetDocumentation     uintptr
	FGetDllEntry          uintptr
	FGetRefTypeInfo       uintptr
	FAddressOfMember      uintptr
	FCreateInstance       uintptr
	FGetMops              uintptr
	FGetContainingTypeLib uintptr
	FReleaseTypeAttr      uintptr
	FReleaseFuncDesc      uintptr
	FReleaseVarDesc       uintptr
}

type TITypeLib = struct {
	FlpVtbl uintptr
}

type TITypeLib2 = struct {
	FlpVtbl uintptr
}

type TITypeLib2Vtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FGetTypeInfoCount  uintptr
	FGetTypeInfo       uintptr
	FGetTypeInfoType   uintptr
	FGetTypeInfoOfGuid uintptr
	FGetLibAttr        uintptr
	FGetTypeComp       uintptr
	FGetDocumentation  uintptr
	FIsName            uintptr
	FFindName          uintptr
	FReleaseTLibAttr   uintptr
	FGetCustData       uintptr
	FGetLibStatistics  uintptr
	FGetDocumentation2 uintptr
	FGetAllCustData    uintptr
}

type TITypeLibVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FGetTypeInfoCount  uintptr
	FGetTypeInfo       uintptr
	FGetTypeInfoType   uintptr
	FGetTypeInfoOfGuid uintptr
	FGetLibAttr        uintptr
	FGetTypeComp       uintptr
	FGetDocumentation  uintptr
	FIsName            uintptr
	FFindName          uintptr
	FReleaseTLibAttr   uintptr
}

type TITypeMarshal = struct {
	FlpVtbl uintptr
}

type TITypeMarshalVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FSize           uintptr
	FMarshal        uintptr
	FUnmarshal      uintptr
	FFree           uintptr
}

type TIUnknown = struct {
	FlpVtbl uintptr
}

type TIUnknownVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
}

type TIUri = struct {
	FlpVtbl uintptr
}

type TIUriBuilder = struct {
	FlpVtbl uintptr
}

type TIUriBuilderFactory = struct {
	FlpVtbl uintptr
}

type TIUriBuilderFactoryVtbl = struct {
	FQueryInterface               uintptr
	FAddRef                       uintptr
	FRelease                      uintptr
	FCreateIUriBuilder            uintptr
	FCreateInitializedIUriBuilder uintptr
}

type TIUriBuilderVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FCreateUriSimple    uintptr
	FCreateUri          uintptr
	FCreateUriWithFlags uintptr
	FGetIUri            uintptr
	FSetIUri            uintptr
	FGetFragment        uintptr
	FGetHost            uintptr
	FGetPassword        uintptr
	FGetPath            uintptr
	FGetPort            uintptr
	FGetQuery           uintptr
	FGetSchemeName      uintptr
	FGetUserNameA       uintptr
	FSetFragment        uintptr
	FSetHost            uintptr
	FSetPassword        uintptr
	FSetPath            uintptr
	FSetPort            uintptr
	FSetQuery           uintptr
	FSetSchemeName      uintptr
	FSetUserName        uintptr
	FRemoveProperties   uintptr
	FHasBeenModified    uintptr
}

type TIUriContainer = struct {
	FlpVtbl uintptr
}

type TIUriContainerVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetIUri        uintptr
}

type TIUriVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FGetPropertyBSTR   uintptr
	FGetPropertyLength uintptr
	FGetPropertyDWORD  uintptr
	FHasProperty       uintptr
	FGetAbsoluteUri    uintptr
	FGetAuthority      uintptr
	FGetDisplayUri     uintptr
	FGetDomain         uintptr
	FGetExtension      uintptr
	FGetFragment       uintptr
	FGetHost           uintptr
	FGetPassword       uintptr
	FGetPath           uintptr
	FGetPathAndQuery   uintptr
	FGetQuery          uintptr
	FGetRawUri         uintptr
	FGetSchemeName     uintptr
	FGetUserInfo       uintptr
	FGetUserNameA      uintptr
	FGetHostType       uintptr
	FGetPort           uintptr
	FGetScheme         uintptr
	FGetZone           uintptr
	FGetProperties     uintptr
	FIsEqual           uintptr
}

type TIUrlMon = struct {
	FlpVtbl uintptr
}

type TIUrlMonVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FAsyncGetClassBits uintptr
}

type TIViewObject = struct {
	FlpVtbl uintptr
}

type TIViewObject2 = struct {
	FlpVtbl uintptr
}

type TIViewObject2Vtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FDraw           uintptr
	FGetColorSet    uintptr
	FFreeze         uintptr
	FUnfreeze       uintptr
	FSetAdvise      uintptr
	FGetAdvise      uintptr
	FGetExtent      uintptr
}

type TIViewObjectVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FDraw           uintptr
	FGetColorSet    uintptr
	FFreeze         uintptr
	FUnfreeze       uintptr
	FSetAdvise      uintptr
	FGetAdvise      uintptr
}

type TIWaitMultiple = struct {
	FlpVtbl uintptr
}

type TIWaitMultipleVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FWaitMultiple   uintptr
	FAddSynchronize uintptr
}

type TIWinInetCacheHints = struct {
	FlpVtbl uintptr
}

type TIWinInetCacheHints2 = struct {
	FlpVtbl uintptr
}

type TIWinInetCacheHints2Vtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FSetCacheExtension  uintptr
	FSetCacheExtension2 uintptr
}

type TIWinInetCacheHintsVtbl = struct {
	FQueryInterface    uintptr
	FAddRef            uintptr
	FRelease           uintptr
	FSetCacheExtension uintptr
}

type TIWinInetFileStream = struct {
	FlpVtbl uintptr
}

type TIWinInetFileStreamVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FSetHandleForUnlock uintptr
	FSetDeleteFile      uintptr
}

type TIWinInetHttpInfo = struct {
	FlpVtbl uintptr
}

type TIWinInetHttpInfoVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FQueryOption    uintptr
	FQueryInfo      uintptr
}

type TIWinInetHttpTimeouts = struct {
	FlpVtbl uintptr
}

type TIWinInetHttpTimeoutsVtbl = struct {
	FQueryInterface     uintptr
	FAddRef             uintptr
	FRelease            uintptr
	FGetRequestTimeouts uintptr
}

type TIWinInetInfo = struct {
	FlpVtbl uintptr
}

type TIWinInetInfoVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FQueryOption    uintptr
}

type TIWindowForBindingUI = struct {
	FlpVtbl uintptr
}

type TIWindowForBindingUIVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetWindow      uintptr
}

type TIWrappedProtocol = struct {
	FlpVtbl uintptr
}

type TIWrappedProtocolVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetWrapperCode uintptr
}

type TIXMLAttribute = struct {
	FlpVtbl uintptr
}

type TIXMLAttributeVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
	Fget_name         uintptr
	Fget_value        uintptr
}

type TIXMLDOMAttribute = struct {
	FlpVtbl uintptr
}

type TIXMLDOMAttributeVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_name              uintptr
	Fget_value             uintptr
	Fput_value             uintptr
}

type TIXMLDOMCDATASection = struct {
	FlpVtbl uintptr
}

type TIXMLDOMCDATASectionVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_data              uintptr
	Fput_data              uintptr
	Fget_length            uintptr
	FsubstringData         uintptr
	FappendData            uintptr
	FinsertData            uintptr
	FdeleteData            uintptr
	FreplaceData           uintptr
	FsplitText             uintptr
}

type TIXMLDOMCharacterData = struct {
	FlpVtbl uintptr
}

type TIXMLDOMCharacterDataVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_data              uintptr
	Fput_data              uintptr
	Fget_length            uintptr
	FsubstringData         uintptr
	FappendData            uintptr
	FinsertData            uintptr
	FdeleteData            uintptr
	FreplaceData           uintptr
}

type TIXMLDOMComment = struct {
	FlpVtbl uintptr
}

type TIXMLDOMCommentVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_data              uintptr
	Fput_data              uintptr
	Fget_length            uintptr
	FsubstringData         uintptr
	FappendData            uintptr
	FinsertData            uintptr
	FdeleteData            uintptr
	FreplaceData           uintptr
}

type TIXMLDOMDocument = struct {
	FlpVtbl uintptr
}

type TIXMLDOMDocumentFragment = struct {
	FlpVtbl uintptr
}

type TIXMLDOMDocumentFragmentVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
}

type TIXMLDOMDocumentType = struct {
	FlpVtbl uintptr
}

type TIXMLDOMDocumentTypeVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_name              uintptr
	Fget_entities          uintptr
	Fget_notations         uintptr
}

type TIXMLDOMDocumentVtbl = struct {
	FQueryInterface              uintptr
	FAddRef                      uintptr
	FRelease                     uintptr
	FGetTypeInfoCount            uintptr
	FGetTypeInfo                 uintptr
	FGetIDsOfNames               uintptr
	FInvoke                      uintptr
	Fget_nodeName                uintptr
	Fget_nodeValue               uintptr
	Fput_nodeValue               uintptr
	Fget_nodeType                uintptr
	Fget_parentNode              uintptr
	Fget_childNodes              uintptr
	Fget_firstChild              uintptr
	Fget_lastChild               uintptr
	Fget_previousSibling         uintptr
	Fget_nextSibling             uintptr
	Fget_attributes              uintptr
	FinsertBefore                uintptr
	FreplaceChild                uintptr
	FremoveChild                 uintptr
	FappendChild                 uintptr
	FhasChildNodes               uintptr
	Fget_ownerDocument           uintptr
	FcloneNode                   uintptr
	Fget_nodeTypeString          uintptr
	Fget_text                    uintptr
	Fput_text                    uintptr
	Fget_specified               uintptr
	Fget_definition              uintptr
	Fget_nodeTypedValue          uintptr
	Fput_nodeTypedValue          uintptr
	Fget_dataType                uintptr
	Fput_dataType                uintptr
	Fget_xml                     uintptr
	FtransformNode               uintptr
	FselectNodes                 uintptr
	FselectSingleNode            uintptr
	Fget_parsed                  uintptr
	Fget_namespaceURI            uintptr
	Fget_prefix                  uintptr
	Fget_baseName                uintptr
	FtransformNodeToObject       uintptr
	Fget_doctype                 uintptr
	Fget_implementation          uintptr
	Fget_documentElement         uintptr
	Fputref_documentElement      uintptr
	FcreateElement               uintptr
	FcreateDocumentFragment      uintptr
	FcreateTextNode              uintptr
	FcreateComment               uintptr
	FcreateCDATASection          uintptr
	FcreateProcessingInstruction uintptr
	FcreateAttribute             uintptr
	FcreateEntityReference       uintptr
	FgetElementsByTagName        uintptr
	FcreateNode                  uintptr
	FnodeFromID                  uintptr
	Fload                        uintptr
	Fget_readyState              uintptr
	Fget_parseError              uintptr
	Fget_url                     uintptr
	Fget_async                   uintptr
	Fput_async                   uintptr
	Fabort                       uintptr
	FloadXML                     uintptr
	Fsave                        uintptr
	Fget_validateOnParse         uintptr
	Fput_validateOnParse         uintptr
	Fget_resolveExternals        uintptr
	Fput_resolveExternals        uintptr
	Fget_preserveWhiteSpace      uintptr
	Fput_preserveWhiteSpace      uintptr
	Fput_onreadystatechange      uintptr
	Fput_ondataavailable         uintptr
	Fput_ontransformnode         uintptr
}

type TIXMLDOMElement = struct {
	FlpVtbl uintptr
}

type TIXMLDOMElementVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_tagName           uintptr
	FgetAttribute          uintptr
	FsetAttribute          uintptr
	FremoveAttribute       uintptr
	FgetAttributeNode      uintptr
	FsetAttributeNode      uintptr
	FremoveAttributeNode   uintptr
	FgetElementsByTagName  uintptr
	Fnormalize             uintptr
}

type TIXMLDOMEntity = struct {
	FlpVtbl uintptr
}

type TIXMLDOMEntityReference = struct {
	FlpVtbl uintptr
}

type TIXMLDOMEntityReferenceVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
}

type TIXMLDOMEntityVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_publicId          uintptr
	Fget_systemId          uintptr
	Fget_notationName      uintptr
}

type TIXMLDOMImplementation = struct {
	FlpVtbl uintptr
}

type TIXMLDOMImplementationVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
	FhasFeature       uintptr
}

type TIXMLDOMNamedNodeMap = struct {
	FlpVtbl uintptr
}

type TIXMLDOMNamedNodeMapVtbl = struct {
	FQueryInterface      uintptr
	FAddRef              uintptr
	FRelease             uintptr
	FGetTypeInfoCount    uintptr
	FGetTypeInfo         uintptr
	FGetIDsOfNames       uintptr
	FInvoke              uintptr
	FgetNamedItem        uintptr
	FsetNamedItem        uintptr
	FremoveNamedItem     uintptr
	Fget_item            uintptr
	Fget_length          uintptr
	FgetQualifiedItem    uintptr
	FremoveQualifiedItem uintptr
	FnextNode            uintptr
	Freset               uintptr
	Fget__newEnum        uintptr
}

type TIXMLDOMNode = struct {
	FlpVtbl uintptr
}

type TIXMLDOMNodeList = struct {
	FlpVtbl uintptr
}

type TIXMLDOMNodeListVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
	Fget_item         uintptr
	Fget_length       uintptr
	FnextNode         uintptr
	Freset            uintptr
	Fget__newEnum     uintptr
}

type TIXMLDOMNodeVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
}

type TIXMLDOMNotation = struct {
	FlpVtbl uintptr
}

type TIXMLDOMNotationVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_publicId          uintptr
	Fget_systemId          uintptr
}

type TIXMLDOMParseError = struct {
	FlpVtbl uintptr
}

type TIXMLDOMParseErrorVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
	Fget_errorCode    uintptr
	Fget_url          uintptr
	Fget_reason       uintptr
	Fget_srcText      uintptr
	Fget_line         uintptr
	Fget_linepos      uintptr
	Fget_filepos      uintptr
}

type TIXMLDOMProcessingInstruction = struct {
	FlpVtbl uintptr
}

type TIXMLDOMProcessingInstructionVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_target            uintptr
	Fget_data              uintptr
	Fput_data              uintptr
}

type TIXMLDOMText = struct {
	FlpVtbl uintptr
}

type TIXMLDOMTextVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	Fget_data              uintptr
	Fput_data              uintptr
	Fget_length            uintptr
	FsubstringData         uintptr
	FappendData            uintptr
	FinsertData            uintptr
	FdeleteData            uintptr
	FreplaceData           uintptr
	FsplitText             uintptr
}

type TIXMLDSOControl = struct {
	FlpVtbl uintptr
}

type TIXMLDSOControlVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_XMLDocument       uintptr
	Fput_XMLDocument       uintptr
	Fget_JavaDSOCompatible uintptr
	Fput_JavaDSOCompatible uintptr
	Fget_readyState        uintptr
}

type TIXMLDocument = struct {
	FlpVtbl uintptr
}

type TIXMLDocument2 = struct {
	FlpVtbl uintptr
}

type TIXMLDocument2Vtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FGetTypeInfoCount     uintptr
	FGetTypeInfo          uintptr
	FGetIDsOfNames        uintptr
	FInvoke               uintptr
	Fget_root             uintptr
	Fget_fileSize         uintptr
	Fget_fileModifiedDate uintptr
	Fget_fileUpdatedDate  uintptr
	Fget_URL              uintptr
	Fput_URL              uintptr
	Fget_mimeType         uintptr
	Fget_readyState       uintptr
	Fget_charset          uintptr
	Fput_charset          uintptr
	Fget_version          uintptr
	Fget_doctype          uintptr
	Fget_dtdURL           uintptr
	FcreateElement        uintptr
	Fget_async            uintptr
	Fput_async            uintptr
}

type TIXMLDocumentVtbl = struct {
	FQueryInterface       uintptr
	FAddRef               uintptr
	FRelease              uintptr
	FGetTypeInfoCount     uintptr
	FGetTypeInfo          uintptr
	FGetIDsOfNames        uintptr
	FInvoke               uintptr
	Fget_root             uintptr
	Fget_fileSize         uintptr
	Fget_fileModifiedDate uintptr
	Fget_fileUpdatedDate  uintptr
	Fget_URL              uintptr
	Fput_URL              uintptr
	Fget_mimeType         uintptr
	Fget_readyState       uintptr
	Fget_charset          uintptr
	Fput_charset          uintptr
	Fget_version          uintptr
	Fget_doctype          uintptr
	Fget_dtdURL           uintptr
	FcreateElement        uintptr
}

type TIXMLElement = struct {
	FlpVtbl uintptr
}

type TIXMLElement2 = struct {
	FlpVtbl uintptr
}

type TIXMLElement2Vtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
	Fget_tagName      uintptr
	Fput_tagName      uintptr
	Fget_parent       uintptr
	FsetAttribute     uintptr
	FgetAttribute     uintptr
	FremoveAttribute  uintptr
	Fget_children     uintptr
	Fget_type         uintptr
	Fget_text         uintptr
	Fput_text         uintptr
	FaddChild         uintptr
	FremoveChild      uintptr
	Fget_attributes   uintptr
}

type TIXMLElementCollection = struct {
	FlpVtbl uintptr
}

type TIXMLElementCollectionVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
	Fput_length       uintptr
	Fget_length       uintptr
	Fget__newEnum     uintptr
	Fitem             uintptr
}

type TIXMLElementVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
	Fget_tagName      uintptr
	Fput_tagName      uintptr
	Fget_parent       uintptr
	FsetAttribute     uintptr
	FgetAttribute     uintptr
	FremoveAttribute  uintptr
	Fget_children     uintptr
	Fget_type         uintptr
	Fget_text         uintptr
	Fput_text         uintptr
	FaddChild         uintptr
	FremoveChild      uintptr
}

type TIXMLError = struct {
	FlpVtbl uintptr
}

type TIXMLErrorVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetErrorInfo   uintptr
}

type TIXMLHttpRequest = struct {
	FlpVtbl uintptr
}

type TIXMLHttpRequestVtbl = struct {
	FQueryInterface         uintptr
	FAddRef                 uintptr
	FRelease                uintptr
	FGetTypeInfoCount       uintptr
	FGetTypeInfo            uintptr
	FGetIDsOfNames          uintptr
	FInvoke                 uintptr
	Fopen                   uintptr
	FsetRequestHeader       uintptr
	FgetResponseHeader      uintptr
	FgetAllResponseHeaders  uintptr
	Fsend                   uintptr
	Fabort                  uintptr
	Fget_status             uintptr
	Fget_statusText         uintptr
	Fget_responseXML        uintptr
	Fget_responseText       uintptr
	Fget_responseBody       uintptr
	Fget_responseStream     uintptr
	Fget_readyState         uintptr
	Fput_onreadystatechange uintptr
}

type TIXTLRuntime = struct {
	FlpVtbl uintptr
}

type TIXTLRuntimeVtbl = struct {
	FQueryInterface        uintptr
	FAddRef                uintptr
	FRelease               uintptr
	FGetTypeInfoCount      uintptr
	FGetTypeInfo           uintptr
	FGetIDsOfNames         uintptr
	FInvoke                uintptr
	Fget_nodeName          uintptr
	Fget_nodeValue         uintptr
	Fput_nodeValue         uintptr
	Fget_nodeType          uintptr
	Fget_parentNode        uintptr
	Fget_childNodes        uintptr
	Fget_firstChild        uintptr
	Fget_lastChild         uintptr
	Fget_previousSibling   uintptr
	Fget_nextSibling       uintptr
	Fget_attributes        uintptr
	FinsertBefore          uintptr
	FreplaceChild          uintptr
	FremoveChild           uintptr
	FappendChild           uintptr
	FhasChildNodes         uintptr
	Fget_ownerDocument     uintptr
	FcloneNode             uintptr
	Fget_nodeTypeString    uintptr
	Fget_text              uintptr
	Fput_text              uintptr
	Fget_specified         uintptr
	Fget_definition        uintptr
	Fget_nodeTypedValue    uintptr
	Fput_nodeTypedValue    uintptr
	Fget_dataType          uintptr
	Fput_dataType          uintptr
	Fget_xml               uintptr
	FtransformNode         uintptr
	FselectNodes           uintptr
	FselectSingleNode      uintptr
	Fget_parsed            uintptr
	Fget_namespaceURI      uintptr
	Fget_prefix            uintptr
	Fget_baseName          uintptr
	FtransformNodeToObject uintptr
	FuniqueID              uintptr
	Fdepth                 uintptr
	FchildNumber           uintptr
	FancestorChildNumber   uintptr
	FabsoluteChildNumber   uintptr
	FformatIndex           uintptr
	FformatNumber          uintptr
	FformatDate            uintptr
	FformatTime            uintptr
}

type TIZoneIdentifier = struct {
	FlpVtbl uintptr
}

type TIZoneIdentifierVtbl = struct {
	FQueryInterface uintptr
	FAddRef         uintptr
	FRelease        uintptr
	FGetId          uintptr
	FSetId          uintptr
	FRemove         uintptr
}

type TI_RPC_HANDLE = uintptr

type TI_RPC_MUTEX = uintptr

type TI_RpcFreeCalloutStateFn = uintptr

type TI_RpcPerformCalloutFn = uintptr

type TI_RpcProxyCallbackInterface = struct {
	FIsValidMachineFn       TI_RpcProxyIsValidMachineFn
	FGetClientAddressFn     TI_RpcProxyGetClientAddressFn
	FGetConnectionTimeoutFn TI_RpcProxyGetConnectionTimeoutFn
	FPerformCalloutFn       TI_RpcPerformCalloutFn
	FFreeCalloutStateFn     TI_RpcFreeCalloutStateFn
}

type TI_RpcProxyGetClientAddressFn = uintptr

type TI_RpcProxyGetConnectionTimeoutFn = uintptr

type TI_RpcProxyIsValidMachineFn = uintptr

type TJOBOBJECTINFOCLASS = int32

type TJOBOBJECT_ASSOCIATE_COMPLETION_PORT = struct {
	FCompletionKey  TPVOID
	FCompletionPort THANDLE
}

type TJOBOBJECT_BASIC_PROCESS_ID_LIST = struct {
	FNumberOfAssignedProcesses TDWORD
	FNumberOfProcessIdsInList  TDWORD
	FProcessIdList             [1]TULONG_PTR
}

type TJOBOBJECT_BASIC_UI_RESTRICTIONS = struct {
	FUIRestrictionsClass TDWORD
}

type TJOBOBJECT_CPU_RATE_CONTROL_INFORMATION = struct {
	FControlFlags TDWORD
	F__ccgo1_4    struct {
		FWeight  [0]TDWORD
		FCpuRate TDWORD
	}
}

type TJOBOBJECT_END_OF_JOB_TIME_INFORMATION = struct {
	FEndOfJobTimeAction TDWORD
}

type TJOBOBJECT_JOBSET_INFORMATION = struct {
	FMemberLevel TDWORD
}

type TJOBOBJECT_RATE_CONTROL_TOLERANCE = int32

type TJOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = int32

type TJOBOBJECT_SECURITY_LIMIT_INFORMATION = struct {
	FSecurityLimitFlags TDWORD
	FJobToken           THANDLE
	FSidsToDisable      TPTOKEN_GROUPS
	FPrivilegesToDelete TPTOKEN_PRIVILEGES
	FRestrictedSids     TPTOKEN_GROUPS
}

type TJOB_INFO_1 = struct {
	FJobId        TDWORD
	FpPrinterName TLPSTR
	FpMachineName TLPSTR
	FpUserName    TLPSTR
	FpDocument    TLPSTR
	FpDatatype    TLPSTR
	FpStatus      TLPSTR
	FStatus       TDWORD
	FPriority     TDWORD
	FPosition     TDWORD
	FTotalPages   TDWORD
	FPagesPrinted TDWORD
	FSubmitted    TSYSTEMTIME
}

type TJOB_INFO_1A = struct {
	FJobId        TDWORD
	FpPrinterName TLPSTR
	FpMachineName TLPSTR
	FpUserName    TLPSTR
	FpDocument    TLPSTR
	FpDatatype    TLPSTR
	FpStatus      TLPSTR
	FStatus       TDWORD
	FPriority     TDWORD
	FPosition     TDWORD
	FTotalPages   TDWORD
	FPagesPrinted TDWORD
	FSubmitted    TSYSTEMTIME
}

type TJOB_INFO_1W = struct {
	FJobId        TDWORD
	FpPrinterName TLPWSTR
	FpMachineName TLPWSTR
	FpUserName    TLPWSTR
	FpDocument    TLPWSTR
	FpDatatype    TLPWSTR
	FpStatus      TLPWSTR
	FStatus       TDWORD
	FPriority     TDWORD
	FPosition     TDWORD
	FTotalPages   TDWORD
	FPagesPrinted TDWORD
	FSubmitted    TSYSTEMTIME
}

type TJOB_INFO_2 = struct {
	FJobId               TDWORD
	FpPrinterName        TLPSTR
	FpMachineName        TLPSTR
	FpUserName           TLPSTR
	FpDocument           TLPSTR
	FpNotifyName         TLPSTR
	FpDatatype           TLPSTR
	FpPrintProcessor     TLPSTR
	FpParameters         TLPSTR
	FpDriverName         TLPSTR
	FpDevMode            TLPDEVMODEA
	FpStatus             TLPSTR
	FpSecurityDescriptor TPSECURITY_DESCRIPTOR
	FStatus              TDWORD
	FPriority            TDWORD
	FPosition            TDWORD
	FStartTime           TDWORD
	FUntilTime           TDWORD
	FTotalPages          TDWORD
	FSize                TDWORD
	FSubmitted           TSYSTEMTIME
	FTime                TDWORD
	FPagesPrinted        TDWORD
}

type TJOB_INFO_2A = struct {
	FJobId               TDWORD
	FpPrinterName        TLPSTR
	FpMachineName        TLPSTR
	FpUserName           TLPSTR
	FpDocument           TLPSTR
	FpNotifyName         TLPSTR
	FpDatatype           TLPSTR
	FpPrintProcessor     TLPSTR
	FpParameters         TLPSTR
	FpDriverName         TLPSTR
	FpDevMode            TLPDEVMODEA
	FpStatus             TLPSTR
	FpSecurityDescriptor TPSECURITY_DESCRIPTOR
	FStatus              TDWORD
	FPriority            TDWORD
	FPosition            TDWORD
	FStartTime           TDWORD
	FUntilTime           TDWORD
	FTotalPages          TDWORD
	FSize                TDWORD
	FSubmitted           TSYSTEMTIME
	FTime                TDWORD
	FPagesPrinted        TDWORD
}

type TJOB_INFO_2W = struct {
	FJobId               TDWORD
	FpPrinterName        TLPWSTR
	FpMachineName        TLPWSTR
	FpUserName           TLPWSTR
	FpDocument           TLPWSTR
	FpNotifyName         TLPWSTR
	FpDatatype           TLPWSTR
	FpPrintProcessor     TLPWSTR
	FpParameters         TLPWSTR
	FpDriverName         TLPWSTR
	FpDevMode            TLPDEVMODEW
	FpStatus             TLPWSTR
	FpSecurityDescriptor TPSECURITY_DESCRIPTOR
	FStatus              TDWORD
	FPriority            TDWORD
	FPosition            TDWORD
	FStartTime           TDWORD
	FUntilTime           TDWORD
	FTotalPages          TDWORD
	FSize                TDWORD
	FSubmitted           TSYSTEMTIME
	FTime                TDWORD
	FPagesPrinted        TDWORD
}

type TJOB_INFO_3 = struct {
	FJobId     TDWORD
	FNextJobId TDWORD
	FReserved  TDWORD
}

type TJOB_SET_ARRAY = struct {
	FJobHandle   THANDLE
	FMemberLevel TDWORD
	FFlags       TDWORD
}

type TJOYCAPS = struct {
	FwMid        TWORD
	FwPid        TWORD
	FszPname     [32]TCHAR
	FwXmin       TUINT
	FwXmax       TUINT
	FwYmin       TUINT
	FwYmax       TUINT
	FwZmin       TUINT
	FwZmax       TUINT
	FwNumButtons TUINT
	FwPeriodMin  TUINT
	FwPeriodMax  TUINT
	FwRmin       TUINT
	FwRmax       TUINT
	FwUmin       TUINT
	FwUmax       TUINT
	FwVmin       TUINT
	FwVmax       TUINT
	FwCaps       TUINT
	FwMaxAxes    TUINT
	FwNumAxes    TUINT
	FwMaxButtons TUINT
	FszRegKey    [32]TCHAR
	FszOEMVxD    [260]TCHAR
}

type TJOYCAPS2 = struct {
	FwMid             TWORD
	FwPid             TWORD
	FszPname          [32]TCHAR
	FwXmin            TUINT
	FwXmax            TUINT
	FwYmin            TUINT
	FwYmax            TUINT
	FwZmin            TUINT
	FwZmax            TUINT
	FwNumButtons      TUINT
	FwPeriodMin       TUINT
	FwPeriodMax       TUINT
	FwRmin            TUINT
	FwRmax            TUINT
	FwUmin            TUINT
	FwUmax            TUINT
	FwVmin            TUINT
	FwVmax            TUINT
	FwCaps            TUINT
	FwMaxAxes         TUINT
	FwNumAxes         TUINT
	FwMaxButtons      TUINT
	FszRegKey         [32]TCHAR
	FszOEMVxD         [260]TCHAR
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TJOYCAPS2A = struct {
	FwMid             TWORD
	FwPid             TWORD
	FszPname          [32]TCHAR
	FwXmin            TUINT
	FwXmax            TUINT
	FwYmin            TUINT
	FwYmax            TUINT
	FwZmin            TUINT
	FwZmax            TUINT
	FwNumButtons      TUINT
	FwPeriodMin       TUINT
	FwPeriodMax       TUINT
	FwRmin            TUINT
	FwRmax            TUINT
	FwUmin            TUINT
	FwUmax            TUINT
	FwVmin            TUINT
	FwVmax            TUINT
	FwCaps            TUINT
	FwMaxAxes         TUINT
	FwNumAxes         TUINT
	FwMaxButtons      TUINT
	FszRegKey         [32]TCHAR
	FszOEMVxD         [260]TCHAR
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TJOYCAPS2W = struct {
	FwMid             TWORD
	FwPid             TWORD
	FszPname          [32]TWCHAR
	FwXmin            TUINT
	FwXmax            TUINT
	FwYmin            TUINT
	FwYmax            TUINT
	FwZmin            TUINT
	FwZmax            TUINT
	FwNumButtons      TUINT
	FwPeriodMin       TUINT
	FwPeriodMax       TUINT
	FwRmin            TUINT
	FwRmax            TUINT
	FwUmin            TUINT
	FwUmax            TUINT
	FwVmin            TUINT
	FwVmax            TUINT
	FwCaps            TUINT
	FwMaxAxes         TUINT
	FwNumAxes         TUINT
	FwMaxButtons      TUINT
	FszRegKey         [32]TWCHAR
	FszOEMVxD         [260]TWCHAR
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TJOYCAPSA = struct {
	FwMid        TWORD
	FwPid        TWORD
	FszPname     [32]TCHAR
	FwXmin       TUINT
	FwXmax       TUINT
	FwYmin       TUINT
	FwYmax       TUINT
	FwZmin       TUINT
	FwZmax       TUINT
	FwNumButtons TUINT
	FwPeriodMin  TUINT
	FwPeriodMax  TUINT
	FwRmin       TUINT
	FwRmax       TUINT
	FwUmin       TUINT
	FwUmax       TUINT
	FwVmin       TUINT
	FwVmax       TUINT
	FwCaps       TUINT
	FwMaxAxes    TUINT
	FwNumAxes    TUINT
	FwMaxButtons TUINT
	FszRegKey    [32]TCHAR
	FszOEMVxD    [260]TCHAR
}

type TJOYCAPSW = struct {
	FwMid        TWORD
	FwPid        TWORD
	FszPname     [32]TWCHAR
	FwXmin       TUINT
	FwXmax       TUINT
	FwYmin       TUINT
	FwYmax       TUINT
	FwZmin       TUINT
	FwZmax       TUINT
	FwNumButtons TUINT
	FwPeriodMin  TUINT
	FwPeriodMax  TUINT
	FwRmin       TUINT
	FwRmax       TUINT
	FwUmin       TUINT
	FwUmax       TUINT
	FwVmin       TUINT
	FwVmax       TUINT
	FwCaps       TUINT
	FwMaxAxes    TUINT
	FwNumAxes    TUINT
	FwMaxButtons TUINT
	FszRegKey    [32]TWCHAR
	FszOEMVxD    [260]TWCHAR
}

type TJOYINFO = struct {
	FwXpos    TUINT
	FwYpos    TUINT
	FwZpos    TUINT
	FwButtons TUINT
}

type TJOYINFOEX = struct {
	FdwSize         TDWORD
	FdwFlags        TDWORD
	FdwXpos         TDWORD
	FdwYpos         TDWORD
	FdwZpos         TDWORD
	FdwRpos         TDWORD
	FdwUpos         TDWORD
	FdwVpos         TDWORD
	FdwButtons      TDWORD
	FdwButtonNumber TDWORD
	FdwPOV          TDWORD
	FdwReserved1    TDWORD
	FdwReserved2    TDWORD
}

type TKBDLLHOOKSTRUCT = struct {
	FvkCode      TDWORD
	FscanCode    TDWORD
	Fflags       TDWORD
	Ftime        TDWORD
	FdwExtraInfo TULONG_PTR
}

type TKCRM_MARSHAL_HEADER = struct {
	FVersionMajor TULONG
	FVersionMinor TULONG
	FNumProtocols TULONG
	FUnused       TULONG
}

type TKCRM_PROTOCOL_BLOB = struct {
	FProtocolId              TCRM_PROTOCOL_ID
	FStaticInfoLength        TULONG
	FTransactionIdInfoLength TULONG
	FUnused1                 TULONG
	FUnused2                 TULONG
}

type TKCRM_TRANSACTION_BLOB = struct {
	FUOW            TGUID
	FTmIdentity     TGUID
	FIsolationLevel TULONG
	FIsolationFlags TULONG
	FTimeout        TULONG
	FDescription    [64]TWCHAR
}

type TKEAPUBKEY = struct {
	Fmagic  TDWORD
	Fbitlen TDWORD
}

type TKERNINGPAIR = struct {
	FwFirst      TWORD
	FwSecond     TWORD
	FiKernAmount int32
}

type TKEYARRAY = [128]TWORD

type TKEYBDINPUT = struct {
	FwVk         TWORD
	FwScan       TWORD
	FdwFlags     TDWORD
	Ftime        TDWORD
	FdwExtraInfo TULONG_PTR
}

type TKEY_EVENT_RECORD = struct {
	FbKeyDown         TWINBOOL
	FwRepeatCount     TWORD
	FwVirtualKeyCode  TWORD
	FwVirtualScanCode TWORD
	FuChar            struct {
		FAsciiChar   [0]TCHAR
		FUnicodeChar TWCHAR
	}
	FdwControlKeyState TDWORD
}

type TKEY_TYPE_SUBTYPE = struct {
	FdwKeySpec TDWORD
	FType      TGUID
	FSubtype   TGUID
}

const TKF_AVAILABLE = 2

const TKF_CONFIRMHOTKEY = 8

const TKF_HOTKEYACTIVE = 4

const TKF_HOTKEYSOUND = 16

const TKF_INDICATOR = 32

const TKF_TOGGLEKEYSON = 1

type TKTMOBJECT_CURSOR = struct {
	FLastQuery     TGUID
	FObjectIdCount TDWORD
	FObjectIds     [1]TGUID
}

type TKTMOBJECT_TYPE = int32

type TLANA_ENUM = struct {
	Flength TUCHAR
	Flana   [255]TUCHAR
}

type TLANGGROUPLOCALE_ENUMPROCA = uintptr

type TLANGGROUPLOCALE_ENUMPROCW = uintptr

type TLANGID = uint16

type TLANGUAGEGROUP_ENUMPROCA = uintptr

type TLANGUAGEGROUP_ENUMPROCW = uintptr

type TLASTINPUTINFO = struct {
	FcbSize TUINT
	FdwTime TDWORD
}

type TLATENCY_TIME = int32

type TLAYERPLANEDESCRIPTOR = struct {
	FnSize           TWORD
	FnVersion        TWORD
	FdwFlags         TDWORD
	FiPixelType      TBYTE
	FcColorBits      TBYTE
	FcRedBits        TBYTE
	FcRedShift       TBYTE
	FcGreenBits      TBYTE
	FcGreenShift     TBYTE
	FcBlueBits       TBYTE
	FcBlueShift      TBYTE
	FcAlphaBits      TBYTE
	FcAlphaShift     TBYTE
	FcAccumBits      TBYTE
	FcAccumRedBits   TBYTE
	FcAccumGreenBits TBYTE
	FcAccumBlueBits  TBYTE
	FcAccumAlphaBits TBYTE
	FcDepthBits      TBYTE
	FcStencilBits    TBYTE
	FcAuxBuffers     TBYTE
	FiLayerPlane     TBYTE
	FbReserved       TBYTE
	FcrTransparent   TCOLORREF
}

type TLCID = uint32

type TLCSCSTYPE = int32

type TLCSGAMUTMATCH = int32

type TLCTYPE = uint32

type TLC_ID = struct {
	FwLanguage uint16
	FwCountry  uint16
	FwCodePage uint16
}

type TLDT_ENTRY = struct {
	FLimitLow TWORD
	FBaseLow  TWORD
	FHighWord struct {
		FBits [0]struct {
			F__ccgo0 uint32
		}
		FBytes struct {
			FBaseMid TBYTE
			FFlags1  TBYTE
			FFlags2  TBYTE
			FBaseHi  TBYTE
		}
	}
}

type TLGRPID = uint32

type TLIBATTR = TTLIBATTR

type TLIBFLAGS = int32

type TLINEDDAPROC = uintptr

type TLINGER = struct {
	Fl_onoff  Tu_short
	Fl_linger Tu_short
}

type TLINKSRCDESCRIPTOR = struct {
	FcbSize             TULONG
	Fclsid              TCLSID
	FdwDrawAspect       TDWORD
	Fsizel              TSIZEL
	Fpointl             TPOINTL
	FdwStatus           TDWORD
	FdwFullUserTypeName TDWORD
	FdwSrcOfCopy        TDWORD
}

type TLIST_ENTRY = struct {
	FFlink uintptr
	FBlink uintptr
}

type TLIST_ENTRY32 = struct {
	FFlink TDWORD
	FBlink TDWORD
}

type TLOAD_DLL_DEBUG_INFO = struct {
	FhFile                 THANDLE
	FlpBaseOfDll           TLPVOID
	FdwDebugInfoFileOffset TDWORD
	FnDebugInfoSize        TDWORD
	FlpImageName           TLPVOID
	FfUnicode              TWORD
}

type TLOCALESIGNATURE = struct {
	FlsUsb          [4]TDWORD
	FlsCsbDefault   [2]TDWORD
	FlsCsbSupported [2]TDWORD
}

type TLOCALE_ENUMPROCA = uintptr

type TLOCALE_ENUMPROCEX = uintptr

type TLOCALE_ENUMPROCW = uintptr

type TLOCALHANDLE = uintptr

type TLOCKTYPE = int32

type TLOGBRUSH = struct {
	FlbStyle TUINT
	FlbColor TCOLORREF
	FlbHatch TULONG_PTR
}

type TLOGBRUSH32 = struct {
	FlbStyle TUINT
	FlbColor TCOLORREF
	FlbHatch TULONG
}

type TLOGCOLORSPACE = struct {
	FlcsSignature  TDWORD
	FlcsVersion    TDWORD
	FlcsSize       TDWORD
	FlcsCSType     TLCSCSTYPE
	FlcsIntent     TLCSGAMUTMATCH
	FlcsEndpoints  TCIEXYZTRIPLE
	FlcsGammaRed   TDWORD
	FlcsGammaGreen TDWORD
	FlcsGammaBlue  TDWORD
	FlcsFilename   [260]TCHAR
}

type TLOGCOLORSPACEA = struct {
	FlcsSignature  TDWORD
	FlcsVersion    TDWORD
	FlcsSize       TDWORD
	FlcsCSType     TLCSCSTYPE
	FlcsIntent     TLCSGAMUTMATCH
	FlcsEndpoints  TCIEXYZTRIPLE
	FlcsGammaRed   TDWORD
	FlcsGammaGreen TDWORD
	FlcsGammaBlue  TDWORD
	FlcsFilename   [260]TCHAR
}

type TLOGCOLORSPACEW = struct {
	FlcsSignature  TDWORD
	FlcsVersion    TDWORD
	FlcsSize       TDWORD
	FlcsCSType     TLCSCSTYPE
	FlcsIntent     TLCSGAMUTMATCH
	FlcsEndpoints  TCIEXYZTRIPLE
	FlcsGammaRed   TDWORD
	FlcsGammaGreen TDWORD
	FlcsGammaBlue  TDWORD
	FlcsFilename   [260]TWCHAR
}

type TLOGFONT = struct {
	FlfHeight         TLONG
	FlfWidth          TLONG
	FlfEscapement     TLONG
	FlfOrientation    TLONG
	FlfWeight         TLONG
	FlfItalic         TBYTE
	FlfUnderline      TBYTE
	FlfStrikeOut      TBYTE
	FlfCharSet        TBYTE
	FlfOutPrecision   TBYTE
	FlfClipPrecision  TBYTE
	FlfQuality        TBYTE
	FlfPitchAndFamily TBYTE
	FlfFaceName       [32]TCHAR
}

type TLOGFONTA = struct {
	FlfHeight         TLONG
	FlfWidth          TLONG
	FlfEscapement     TLONG
	FlfOrientation    TLONG
	FlfWeight         TLONG
	FlfItalic         TBYTE
	FlfUnderline      TBYTE
	FlfStrikeOut      TBYTE
	FlfCharSet        TBYTE
	FlfOutPrecision   TBYTE
	FlfClipPrecision  TBYTE
	FlfQuality        TBYTE
	FlfPitchAndFamily TBYTE
	FlfFaceName       [32]TCHAR
}

type TLOGFONTW = struct {
	FlfHeight         TLONG
	FlfWidth          TLONG
	FlfEscapement     TLONG
	FlfOrientation    TLONG
	FlfWeight         TLONG
	FlfItalic         TBYTE
	FlfUnderline      TBYTE
	FlfStrikeOut      TBYTE
	FlfCharSet        TBYTE
	FlfOutPrecision   TBYTE
	FlfClipPrecision  TBYTE
	FlfQuality        TBYTE
	FlfPitchAndFamily TBYTE
	FlfFaceName       [32]TWCHAR
}

type TLOGICAL_PROCESSOR_RELATIONSHIP = int32

type TLOGPALETTE = struct {
	FpalVersion    TWORD
	FpalNumEntries TWORD
	FpalPalEntry   [1]TPALETTEENTRY
}

type TLOGPEN = struct {
	FlopnStyle TUINT
	FlopnWidth TPOINT
	FlopnColor TCOLORREF
}

type TLONG = int32

type TLONG32 = int32

type TLONG64 = int64

type TLONGLONG = int64

type TLOOKUP_STREAM_FROM_CLUSTER_OUTPUT = struct {
	FOffset             TDWORD
	FNumberOfMatches    TDWORD
	FBufferSizeRequired TDWORD
}

type TLPABC = uintptr

type TLPABCFLOAT = uintptr

type TLPACCEL = uintptr

type TLPACCESSTIMEOUT = uintptr

type TLPADDJOB_INFO_1 = uintptr

type TLPADDJOB_INFO_1A = uintptr

type TLPADDJOB_INFO_1W = uintptr

type TLPADDREXCLUSIONCONTROL = uintptr

type TLPADDRTRACKINGCONTROL = uintptr

type TLPADVISESINK = uintptr

type TLPADVISESINK2 = uintptr

type TLPALTTABINFO = uintptr

type TLPANIMATIONINFO = uintptr

type TLPAUDIODESCRIPTION = uintptr

type TLPAUTHENTICATION = uintptr

type TLPAUTHENTICATIONEX = uintptr

type TLPAUXCAPS = uintptr

type TLPAUXCAPS2 = uintptr

type TLPAUXCAPS2A = uintptr

type TLPAUXCAPS2W = uintptr

type TLPAUXCAPSA = uintptr

type TLPAUXCAPSW = uintptr

type TLPAXESLIST = uintptr

type TLPAXESLISTA = uintptr

type TLPAXESLISTW = uintptr

type TLPAXISINFO = uintptr

type TLPAXISINFOA = uintptr

type TLPAXISINFOW = uintptr

type TLPBC = uintptr

type TLPBIDI_DATA = uintptr

type TLPBIDI_REQUEST_CONTAINER = uintptr

type TLPBIDI_REQUEST_DATA = uintptr

type TLPBIDI_RESPONSE_CONTAINER = uintptr

type TLPBIDI_RESPONSE_DATA = uintptr

type TLPBINDCALLBACKREDIRECT = uintptr

type TLPBINDCTX = uintptr

type TLPBINDHOST = uintptr

type TLPBINDING = uintptr

type TLPBINDPROTOCOL = uintptr

type TLPBINDPTR = uintptr

type TLPBINDSTATUSCALLBACK = uintptr

type TLPBINDSTATUSCALLBACKEX = uintptr

type TLPBIND_OPTS = uintptr

type TLPBIND_OPTS2 = uintptr

type TLPBIND_OPTS3 = uintptr

type TLPBITMAP = uintptr

type TLPBITMAPCOREHEADER = uintptr

type TLPBITMAPCOREINFO = uintptr

type TLPBITMAPFILEHEADER = uintptr

type TLPBITMAPINFO = uintptr

type TLPBITMAPINFOHEADER = uintptr

type TLPBITMAPV4HEADER = uintptr

type TLPBITMAPV5HEADER = uintptr

type TLPBLOB = uintptr

type TLPBOOL = uintptr

type TLPBORDERWIDTHS = uintptr

type TLPBSTR = uintptr

type TLPBSTRBLOB = uintptr

type TLPBYTE = uintptr

type TLPBY_HANDLE_FILE_INFORMATION = uintptr

type TLPCANCELMETHODCALLS = uintptr

type TLPCANDIDATEFORM = uintptr

type TLPCANDIDATELIST = uintptr

type TLPCATALOGFILEINFO = uintptr

type TLPCBORDERWIDTHS = uintptr

type TLPCBTACTIVATESTRUCT = uintptr

type TLPCBT_CREATEWND = uintptr

type TLPCBT_CREATEWNDA = uintptr

type TLPCBT_CREATEWNDW = uintptr

type TLPCBYTE = uintptr

type TLPCCH = uintptr

type TLPCCHOOKPROC = uintptr

type TLPCDLGTEMPLATE = uintptr

type TLPCDLGTEMPLATEA = uintptr

type TLPCDLGTEMPLATEW = uintptr

type TLPCFHOOKPROC = uintptr

type TLPCGUID = uintptr

type TLPCH = uintptr

type TLPCHARSETINFO = uintptr

type TLPCHOOSECOLOR = uintptr

type TLPCHOOSECOLORA = uintptr

type TLPCHOOSECOLORW = uintptr

type TLPCHOOSEFONT = uintptr

type TLPCHOOSEFONTA = uintptr

type TLPCHOOSEFONTW = uintptr

type TLPCIEXYZ = uintptr

type TLPCIEXYZTRIPLE = uintptr

type TLPCLASSFACTORY = uintptr

type TLPCLIENTCREATESTRUCT = uintptr

type TLPCLIPFORMAT = uintptr

type TLPCLSID = uintptr

type TLPCMENUINFO = uintptr

type TLPCMENUITEMINFO = uintptr

type TLPCMENUITEMINFOA = uintptr

type TLPCMENUITEMINFOW = uintptr

type TLPCMMCKINFO = uintptr

type TLPCMMIOINFO = uintptr

type TLPCODEBASEHOLD = uintptr

type TLPCODEINSTALL = uintptr

type TLPCOLESTR = uintptr

type TLPCOLORADJUSTMENT = uintptr

type TLPCOLORREF = uintptr

type TLPCOMBOBOXINFO = uintptr

type TLPCOMMCONFIG = uintptr

type TLPCOMMPROP = uintptr

type TLPCOMMTIMEOUTS = uintptr

type TLPCOMPAREITEMSTRUCT = uintptr

type TLPCOMPOSITIONFORM = uintptr

type TLPCOMSTAT = uintptr

type TLPCONNECTDLGSTRUCT = uintptr

type TLPCONNECTDLGSTRUCTA = uintptr

type TLPCONNECTDLGSTRUCTW = uintptr

type TLPCONTEXT = uintptr

type TLPCPINFO = uintptr

type TLPCPINFOEX = uintptr

type TLPCPINFOEXA = uintptr

type TLPCPINFOEXW = uintptr

type TLPCPROPSHEETHEADERA = uintptr

type TLPCPROPSHEETHEADERW = uintptr

type TLPCPROPSHEETPAGEA = uintptr

type TLPCPROPSHEETPAGEA_LATEST = uintptr

type TLPCPROPSHEETPAGEA_V1 = uintptr

type TLPCPROPSHEETPAGEA_V2 = uintptr

type TLPCPROPSHEETPAGEA_V3 = uintptr

type TLPCPROPSHEETPAGEW = uintptr

type TLPCPROPSHEETPAGEW_LATEST = uintptr

type TLPCPROPSHEETPAGEW_V1 = uintptr

type TLPCPROPSHEETPAGEW_V2 = uintptr

type TLPCPROPSHEETPAGEW_V3 = uintptr

type TLPCREATEERRORINFO = uintptr

type TLPCREATEFILE2_EXTENDED_PARAMETERS = uintptr

type TLPCREATESTRUCT = uintptr

type TLPCREATESTRUCTA = uintptr

type TLPCREATESTRUCTW = uintptr

type TLPCREATETYPEINFO = uintptr

type TLPCREATETYPEINFO2 = uintptr

type TLPCREATETYPELIB = uintptr

type TLPCREATETYPELIB2 = uintptr

type TLPCREATE_PROCESS_DEBUG_INFO = uintptr

type TLPCREATE_THREAD_DEBUG_INFO = uintptr

type TLPCRECT = uintptr

type TLPCRECTL = uintptr

type TLPCRITICAL_SECTION = uintptr

type TLPCRITICAL_SECTION_DEBUG = uintptr

type TLPCSCARD_IO_REQUEST = uintptr

type TLPCSCROLLINFO = uintptr

type TLPCSTR = uintptr

type TLPCTCH = uintptr

type TLPCTSTR = uintptr

type TLPCURRENCYFMT = uintptr

type TLPCURRENCYFMTA = uintptr

type TLPCURRENCYFMTW = uintptr

type TLPCURSORINFO = uintptr

type TLPCURSORSHAPE = uintptr

type TLPCUSTDATA = uintptr

type TLPCUSTDATAITEM = uintptr

type TLPCUTSTR = uintptr

type TLPCUWCHAR = uintptr

type TLPCUWSTR = uintptr

type TLPCVOID = uintptr

type TLPCWAVEFORMATEX = uintptr

type TLPCWCH = uintptr

type TLPCWCHAR = uintptr

type TLPCWPRETSTRUCT = uintptr

type TLPCWPSTRUCT = uintptr

type TLPCWSTR = uintptr

type TLPCY = uintptr

type TLPDATAADVISEHOLDER = uintptr

type TLPDATAFILTER = uintptr

type TLPDATAOBJECT = uintptr

type TLPDATATYPES_INFO_1 = uintptr

type TLPDATATYPES_INFO_1A = uintptr

type TLPDATATYPES_INFO_1W = uintptr

type TLPDCB = uintptr

type TLPDEBUGHOOKINFO = uintptr

type TLPDEBUG_EVENT = uintptr

type TLPDECIMAL = uintptr

type TLPDELETEITEMSTRUCT = uintptr

type TLPDESIGNVECTOR = uintptr

type TLPDEVMODE = uintptr

type TLPDEVMODEA = uintptr

type TLPDEVMODEW = uintptr

type TLPDEVNAMES = uintptr

type TLPDIBSECTION = uintptr

type TLPDISCDLGSTRUCT = uintptr

type TLPDISCDLGSTRUCTA = uintptr

type TLPDISCDLGSTRUCTW = uintptr

type TLPDISPATCH = uintptr

type TLPDISPLAY_DEVICE = uintptr

type TLPDISPLAY_DEVICEA = uintptr

type TLPDISPLAY_DEVICEW = uintptr

type TLPDLGITEMTEMPLATE = uintptr

type TLPDLGITEMTEMPLATEA = uintptr

type TLPDLGITEMTEMPLATEW = uintptr

type TLPDLGTEMPLATE = uintptr

type TLPDLGTEMPLATEA = uintptr

type TLPDLGTEMPLATEW = uintptr

type TLPDOCINFO = uintptr

type TLPDOCINFOA = uintptr

type TLPDOCINFOW = uintptr

type TLPDOC_INFO_1 = uintptr

type TLPDOC_INFO_1A = uintptr

type TLPDOC_INFO_1W = uintptr

type TLPDOC_INFO_2 = uintptr

type TLPDOC_INFO_2A = uintptr

type TLPDOC_INFO_2W = uintptr

type TLPDOC_INFO_3 = uintptr

type TLPDOC_INFO_3A = uintptr

type TLPDOC_INFO_3W = uintptr

type TLPDRAGINFO = uintptr

type TLPDRAGINFOA = uintptr

type TLPDRAGINFOW = uintptr

type TLPDRAWITEMSTRUCT = uintptr

type TLPDRAWTEXTPARAMS = uintptr

type TLPDRIVERSTATUS = uintptr

type TLPDRIVER_INFO_1 = uintptr

type TLPDRIVER_INFO_1A = uintptr

type TLPDRIVER_INFO_1W = uintptr

type TLPDRIVER_INFO_2 = uintptr

type TLPDRIVER_INFO_2A = uintptr

type TLPDRIVER_INFO_2W = uintptr

type TLPDRIVER_INFO_3 = uintptr

type TLPDRIVER_INFO_3A = uintptr

type TLPDRIVER_INFO_3W = uintptr

type TLPDRIVER_INFO_4 = uintptr

type TLPDRIVER_INFO_4A = uintptr

type TLPDRIVER_INFO_4W = uintptr

type TLPDRIVER_INFO_5 = uintptr

type TLPDRIVER_INFO_5A = uintptr

type TLPDRIVER_INFO_5W = uintptr

type TLPDRIVER_INFO_6 = uintptr

type TLPDRIVER_INFO_6A = uintptr

type TLPDRIVER_INFO_6W = uintptr

type TLPDRIVER_INFO_8 = uintptr

type TLPDRIVER_INFO_8A = uintptr

type TLPDRIVER_INFO_8W = uintptr

type TLPDROPSOURCE = uintptr

type TLPDROPSTRUCT = uintptr

type TLPDROPTARGET = uintptr

type TLPDRVCALLBACK = uintptr

type TLPDRVCONFIGINFO = uintptr

type TLPDRVCONFIGINFOEX = uintptr

type TLPDWORD = uintptr

type TLPELEMDESC = uintptr

type TLPENCLAVE_ROUTINE = uintptr

type TLPENCODINGFILTERFACTORY = uintptr

type TLPENHMETAHEADER = uintptr

type TLPENHMETARECORD = uintptr

type TLPENUMFORMATETC = uintptr

type TLPENUMLOGFONT = uintptr

type TLPENUMLOGFONTA = uintptr

type TLPENUMLOGFONTEX = uintptr

type TLPENUMLOGFONTEXA = uintptr

type TLPENUMLOGFONTEXDV = uintptr

type TLPENUMLOGFONTEXDVA = uintptr

type TLPENUMLOGFONTEXDVW = uintptr

type TLPENUMLOGFONTEXW = uintptr

type TLPENUMLOGFONTW = uintptr

type TLPENUMMONIKER = uintptr

type TLPENUMOLEVERB = uintptr

type TLPENUMSTATDATA = uintptr

type TLPENUMSTATPROPSETSTG = uintptr

type TLPENUMSTATPROPSTG = uintptr

type TLPENUMSTATSTG = uintptr

type TLPENUMSTRING = uintptr

type TLPENUMTEXTMETRIC = uintptr

type TLPENUMTEXTMETRICA = uintptr

type TLPENUMTEXTMETRICW = uintptr

type TLPENUMUNKNOWN = uintptr

type TLPENUMVARIANT = uintptr

type TLPENUM_SERVICE_STATUS = uintptr

type TLPENUM_SERVICE_STATUSA = uintptr

type TLPENUM_SERVICE_STATUSW = uintptr

type TLPENUM_SERVICE_STATUS_PROCESS = uintptr

type TLPENUM_SERVICE_STATUS_PROCESSA = uintptr

type TLPENUM_SERVICE_STATUS_PROCESSW = uintptr

type TLPERRORINFO = uintptr

type TLPERRORLOG = uintptr

type TLPEVENTLOG_FULL_INFORMATION = uintptr

type TLPEVENTMSG = uintptr

type TLPEVENTMSGMSG = uintptr

type TLPEXCEPINFO = uintptr

type TLPEXCEPTION_DEBUG_INFO = uintptr

type TLPEXCEPTION_POINTERS = uintptr

type TLPEXCEPTION_RECORD = uintptr

type TLPEXIT_PROCESS_DEBUG_INFO = uintptr

type TLPEXIT_THREAD_DEBUG_INFO = uintptr

type TLPEXTERNALCONNECTION = uintptr

type TLPEXTLOGFONT = uintptr

type TLPEXTLOGFONTA = uintptr

type TLPEXTLOGFONTW = uintptr

type TLPEXTLOGPEN = uintptr

type TLPEXTLOGPEN32 = uintptr

type TLPFD_SET = uintptr

type TLPFIBER_START_ROUTINE = uintptr

type TLPFILETIME = uintptr

type TLPFILE_ID_DESCRIPTOR = uintptr

type TLPFILTERKEYS = uintptr

type TLPFINDREPLACE = uintptr

type TLPFINDREPLACEA = uintptr

type TLPFINDREPLACEW = uintptr

type TLPFMTID = uintptr

type TLPFNADDPROPSHEETPAGE = uintptr

type TLPFNADDPROPSHEETPAGES = uintptr

type TLPFNCANUNLOADNOW = uintptr

type TLPFNDEVCAPS = uintptr

type TLPFNDEVMODE = uintptr

type TLPFNGETCLASSOBJECT = uintptr

type TLPFNPSPCALLBACKA = uintptr

type TLPFNPSPCALLBACKW = uintptr

type TLPFONTSIGNATURE = uintptr

type TLPFORMATETC = uintptr

type TLPFORM_INFO_1 = uintptr

type TLPFORM_INFO_1A = uintptr

type TLPFORM_INFO_1W = uintptr

type TLPFRHOOKPROC = uintptr

type TLPFUNCDESC = uintptr

type TLPFXPT16DOT16 = uintptr

type TLPFXPT2DOT30 = uintptr

type TLPGCP_RESULTS = uintptr

type TLPGCP_RESULTSA = uintptr

type TLPGCP_RESULTSW = uintptr

type TLPGETBINDHANDLE = uintptr

type TLPGETVERSIONINPARAMS = uintptr

type TLPGLOBALINTERFACETABLE = uintptr

type TLPGLYPHMETRICS = uintptr

type TLPGLYPHMETRICSFLOAT = uintptr

type TLPGLYPHSET = uintptr

type TLPGRADIENT_RECT = uintptr

type TLPGRADIENT_TRIANGLE = uintptr

type TLPGUID = uintptr

type TLPGUITHREADINFO = uintptr

type TLPHANDLE = uintptr

type TLPHANDLER_FUNCTION = uintptr

type TLPHANDLER_FUNCTION_EX = uintptr

type TLPHANDLETABLE = uintptr

type TLPHARDWAREHOOKSTRUCT = uintptr

type TLPHARDWAREINPUT = uintptr

type TLPHEAP_SUMMARY = uintptr

type TLPHELPINFO = uintptr

type TLPHELPWININFO = uintptr

type TLPHELPWININFOA = uintptr

type TLPHELPWININFOW = uintptr

type TLPHIGHCONTRAST = uintptr

type TLPHIGHCONTRASTA = uintptr

type TLPHIGHCONTRASTW = uintptr

type TLPHIT_LOGGING_INFO = uintptr

type TLPHKL = uintptr

type TLPHMIDI = uintptr

type TLPHMIDIIN = uintptr

type TLPHMIDIOUT = uintptr

type TLPHMIDISTRM = uintptr

type TLPHMIXER = uintptr

type TLPHMIXEROBJ = uintptr

type TLPHOSTENT = uintptr

type TLPHTTPNEGOTIATE = uintptr

type TLPHTTPNEGOTIATE2 = uintptr

type TLPHTTPNEGOTIATE3 = uintptr

type TLPHTTPSECURITY = uintptr

type TLPHWAVEIN = uintptr

type TLPHWAVEOUT = uintptr

type TLPHW_PROFILE_INFO = uintptr

type TLPHW_PROFILE_INFOA = uintptr

type TLPHW_PROFILE_INFOW = uintptr

type TLPICONMETRICS = uintptr

type TLPICONMETRICSA = uintptr

type TLPICONMETRICSW = uintptr

type TLPIDEREGS = uintptr

type TLPIDLDESC = uintptr

type TLPIID = uintptr

type TLPIINTERNET = uintptr

type TLPIINTERNETBINDINFO = uintptr

type TLPIINTERNETBINDINFOEX = uintptr

type TLPIINTERNETPRIORITY = uintptr

type TLPIINTERNETPROTOCOL = uintptr

type TLPIINTERNETPROTOCOLINFO = uintptr

type TLPIINTERNETPROTOCOLROOT = uintptr

type TLPIINTERNETPROTOCOLSINK = uintptr

type TLPIINTERNETPROTOCOLSINKStackable = uintptr

type TLPIINTERNETSESSION = uintptr

type TLPIINTERNETTHREADSWITCH = uintptr

type TLPIMECHARPOSITION = uintptr

type TLPIMEMENUITEMINFO = uintptr

type TLPIMEMENUITEMINFOA = uintptr

type TLPIMEMENUITEMINFOW = uintptr

type TLPINITIALIZESPY = uintptr

type TLPINIT_ONCE = uintptr

type TLPINPUT = uintptr

type TLPINT = uintptr

type TLPINTERFACEDATA = uintptr

type TLPINTERFACEINFO = uintptr

type TLPIN_ADDR = uintptr

type TLPIWRAPPEDPROTOCOL = uintptr

type TLPJIT_DEBUG_INFO = uintptr

type TLPJIT_DEBUG_INFO32 = uintptr

type TLPJIT_DEBUG_INFO64 = uintptr

type TLPJOB_INFO_1 = uintptr

type TLPJOB_INFO_1A = uintptr

type TLPJOB_INFO_1W = uintptr

type TLPJOB_INFO_2 = uintptr

type TLPJOB_INFO_2A = uintptr

type TLPJOB_INFO_2W = uintptr

type TLPJOB_INFO_3 = uintptr

type TLPJOYCAPS = uintptr

type TLPJOYCAPS2 = uintptr

type TLPJOYCAPS2A = uintptr

type TLPJOYCAPS2W = uintptr

type TLPJOYCAPSA = uintptr

type TLPJOYCAPSW = uintptr

type TLPJOYINFO = uintptr

type TLPJOYINFOEX = uintptr

type TLPKBDLLHOOKSTRUCT = uintptr

type TLPKERNINGPAIR = uintptr

type TLPKEYARRAY = uintptr

type TLPKEYBDINPUT = uintptr

type TLPLAYERPLANEDESCRIPTOR = uintptr

type TLPLC_ID = uintptr

type TLPLDT_ENTRY = uintptr

type TLPLINGER = uintptr

type TLPLINKSRCDESCRIPTOR = uintptr

type TLPLOAD_DLL_DEBUG_INFO = uintptr

type TLPLOCALESIGNATURE = uintptr

type TLPLOCKBYTES = uintptr

type TLPLOGBRUSH = uintptr

type TLPLOGBRUSH32 = uintptr

type TLPLOGCOLORSPACE = uintptr

type TLPLOGCOLORSPACEA = uintptr

type TLPLOGCOLORSPACEW = uintptr

type TLPLOGFONT = uintptr

type TLPLOGFONTA = uintptr

type TLPLOGFONTW = uintptr

type TLPLOGPALETTE = uintptr

type TLPLOGPEN = uintptr

type TLPLONG = uintptr

type TLPMALLOC = uintptr

type TLPMALLOCSPY = uintptr

type TLPMARSHAL = uintptr

type TLPMARSHAL2 = uintptr

type TLPMAT2 = uintptr

type TLPMCI_ANIM_OPEN_PARMS = uintptr

type TLPMCI_ANIM_OPEN_PARMSA = uintptr

type TLPMCI_ANIM_OPEN_PARMSW = uintptr

type TLPMCI_ANIM_PLAY_PARMS = uintptr

type TLPMCI_ANIM_RECT_PARMS = uintptr

type TLPMCI_ANIM_STEP_PARMS = uintptr

type TLPMCI_ANIM_UPDATE_PARMS = uintptr

type TLPMCI_ANIM_WINDOW_PARMS = uintptr

type TLPMCI_ANIM_WINDOW_PARMSA = uintptr

type TLPMCI_ANIM_WINDOW_PARMSW = uintptr

type TLPMCI_BREAK_PARMS = uintptr

type TLPMCI_GENERIC_PARMS = uintptr

type TLPMCI_GETDEVCAPS_PARMS = uintptr

type TLPMCI_INFO_PARMS = uintptr

type TLPMCI_INFO_PARMSA = uintptr

type TLPMCI_INFO_PARMSW = uintptr

type TLPMCI_LOAD_PARMS = uintptr

type TLPMCI_LOAD_PARMSA = uintptr

type TLPMCI_LOAD_PARMSW = uintptr

type TLPMCI_OPEN_PARMS = uintptr

type TLPMCI_OPEN_PARMSA = uintptr

type TLPMCI_OPEN_PARMSW = uintptr

type TLPMCI_OVLY_LOAD_PARMS = uintptr

type TLPMCI_OVLY_LOAD_PARMSA = uintptr

type TLPMCI_OVLY_LOAD_PARMSW = uintptr

type TLPMCI_OVLY_OPEN_PARMS = uintptr

type TLPMCI_OVLY_OPEN_PARMSA = uintptr

type TLPMCI_OVLY_OPEN_PARMSW = uintptr

type TLPMCI_OVLY_RECT_PARMS = uintptr

type TLPMCI_OVLY_SAVE_PARMS = uintptr

type TLPMCI_OVLY_SAVE_PARMSA = uintptr

type TLPMCI_OVLY_SAVE_PARMSW = uintptr

type TLPMCI_OVLY_WINDOW_PARMS = uintptr

type TLPMCI_OVLY_WINDOW_PARMSA = uintptr

type TLPMCI_OVLY_WINDOW_PARMSW = uintptr

type TLPMCI_PLAY_PARMS = uintptr

type TLPMCI_RECORD_PARMS = uintptr

type TLPMCI_SAVE_PARMS = uintptr

type TLPMCI_SAVE_PARMSA = uintptr

type TLPMCI_SAVE_PARMSW = uintptr

type TLPMCI_SEEK_PARMS = uintptr

type TLPMCI_SEQ_SET_PARMS = uintptr

type TLPMCI_SET_PARMS = uintptr

type TLPMCI_STATUS_PARMS = uintptr

type TLPMCI_SYSINFO_PARMS = uintptr

type TLPMCI_SYSINFO_PARMSA = uintptr

type TLPMCI_SYSINFO_PARMSW = uintptr

type TLPMCI_VD_ESCAPE_PARMS = uintptr

type TLPMCI_VD_ESCAPE_PARMSA = uintptr

type TLPMCI_VD_ESCAPE_PARMSW = uintptr

type TLPMCI_VD_PLAY_PARMS = uintptr

type TLPMCI_VD_STEP_PARMS = uintptr

type TLPMCI_WAVE_DELETE_PARMS = uintptr

type TLPMCI_WAVE_OPEN_PARMS = uintptr

type TLPMCI_WAVE_OPEN_PARMSA = uintptr

type TLPMCI_WAVE_OPEN_PARMSW = uintptr

type TLPMCI_WAVE_SET_PARMS = uintptr

type TLPMDICREATESTRUCT = uintptr

type TLPMDICREATESTRUCTA = uintptr

type TLPMDICREATESTRUCTW = uintptr

type TLPMDINEXTMENU = uintptr

type TLPMEASUREITEMSTRUCT = uintptr

type TLPMEMORYSTATUS = uintptr

type TLPMEMORYSTATUSEX = uintptr

type TLPMENUBARINFO = uintptr

type TLPMENUINFO = uintptr

type TLPMENUITEMINFO = uintptr

type TLPMENUITEMINFOA = uintptr

type TLPMENUITEMINFOW = uintptr

type TLPMENUTEMPLATE = uintptr

type TLPMENUTEMPLATEA = uintptr

type TLPMENUTEMPLATEW = uintptr

type TLPMESSAGEFILTER = uintptr

type TLPMETAFILEPICT = uintptr

type TLPMETAHEADER = uintptr

type TLPMETARECORD = uintptr

type TLPMETHODDATA = uintptr

type TLPMIDICALLBACK = uintptr

type TLPMIDIHDR = uintptr

type TLPMIDIINCAPS = uintptr

type TLPMIDIINCAPS2 = uintptr

type TLPMIDIINCAPS2A = uintptr

type TLPMIDIINCAPS2W = uintptr

type TLPMIDIINCAPSA = uintptr

type TLPMIDIINCAPSW = uintptr

type TLPMIDIOUTCAPS = uintptr

type TLPMIDIOUTCAPS2 = uintptr

type TLPMIDIOUTCAPS2A = uintptr

type TLPMIDIOUTCAPS2W = uintptr

type TLPMIDIOUTCAPSA = uintptr

type TLPMIDIOUTCAPSW = uintptr

type TLPMIDIPROPTEMPO = uintptr

type TLPMIDIPROPTIMEDIV = uintptr

type TLPMINIMIZEDMETRICS = uintptr

type TLPMINMAXINFO = uintptr

type TLPMIXERCAPS = uintptr

type TLPMIXERCAPS2 = uintptr

type TLPMIXERCAPS2A = uintptr

type TLPMIXERCAPS2W = uintptr

type TLPMIXERCAPSA = uintptr

type TLPMIXERCAPSW = uintptr

type TLPMIXERCONTROL = uintptr

type TLPMIXERCONTROLA = uintptr

type TLPMIXERCONTROLDETAILS = uintptr

type TLPMIXERCONTROLDETAILS_BOOLEAN = uintptr

type TLPMIXERCONTROLDETAILS_LISTTEXT = uintptr

type TLPMIXERCONTROLDETAILS_LISTTEXTA = uintptr

type TLPMIXERCONTROLDETAILS_LISTTEXTW = uintptr

type TLPMIXERCONTROLDETAILS_SIGNED = uintptr

type TLPMIXERCONTROLDETAILS_UNSIGNED = uintptr

type TLPMIXERCONTROLW = uintptr

type TLPMIXERLINE = uintptr

type TLPMIXERLINEA = uintptr

type TLPMIXERLINECONTROLS = uintptr

type TLPMIXERLINECONTROLSA = uintptr

type TLPMIXERLINECONTROLSW = uintptr

type TLPMIXERLINEW = uintptr

type TLPMMCKINFO = uintptr

type TLPMMIOINFO = uintptr

type TLPMMIOPROC = uintptr

type TLPMMTIME = uintptr

type TLPMODEMDEVCAPS = uintptr

type TLPMODEMSETTINGS = uintptr

type TLPMONIKER = uintptr

type TLPMONIKERPROP = uintptr

type TLPMONITORINFO = uintptr

type TLPMONITORINFOEX = uintptr

type TLPMONITORINFOEXA = uintptr

type TLPMONITORINFOEXW = uintptr

type TLPMONITOR_INFO_1 = uintptr

type TLPMONITOR_INFO_1A = uintptr

type TLPMONITOR_INFO_1W = uintptr

type TLPMONITOR_INFO_2 = uintptr

type TLPMONITOR_INFO_2A = uintptr

type TLPMONITOR_INFO_2W = uintptr

type TLPMOUSEHOOKSTRUCT = uintptr

type TLPMOUSEHOOKSTRUCTEX = uintptr

type TLPMOUSEINPUT = uintptr

type TLPMOUSEKEYS = uintptr

type TLPMOUSEMOVEPOINT = uintptr

type TLPMSG = uintptr

type TLPMSGBOXPARAMS = uintptr

type TLPMSGBOXPARAMSA = uintptr

type TLPMSGBOXPARAMSW = uintptr

type TLPMSLLHOOKSTRUCT = uintptr

type TLPMULTIKEYHELP = uintptr

type TLPMULTIKEYHELPA = uintptr

type TLPMULTIKEYHELPW = uintptr

type TLPMULTIQI = uintptr

type TLPNCCALCSIZE_PARAMS = uintptr

type TLPNETCONNECTINFOSTRUCT = uintptr

type TLPNETINFOSTRUCT = uintptr

type TLPNETRESOURCE = uintptr

type TLPNETRESOURCEA = uintptr

type TLPNETRESOURCEW = uintptr

type TLPNEWTEXTMETRIC = uintptr

type TLPNEWTEXTMETRICA = uintptr

type TLPNEWTEXTMETRICW = uintptr

type TLPNLSVERSIONINFO = uintptr

type TLPNLSVERSIONINFOEX = uintptr

type TLPNMHDR = uintptr

type TLPNONCLIENTMETRICS = uintptr

type TLPNONCLIENTMETRICSA = uintptr

type TLPNONCLIENTMETRICSW = uintptr

type TLPNUMBERFMT = uintptr

type TLPNUMBERFMTA = uintptr

type TLPNUMBERFMTW = uintptr

type TLPOBJECTDESCRIPTOR = uintptr

type TLPOCNCHKPROC = uintptr

type TLPOCNCONNPROCA = uintptr

type TLPOCNCONNPROCW = uintptr

type TLPOCNDSCPROC = uintptr

type TLPOFNHOOKPROC = uintptr

type TLPOFNOTIFY = uintptr

type TLPOFNOTIFYA = uintptr

type TLPOFNOTIFYEX = uintptr

type TLPOFNOTIFYEXA = uintptr

type TLPOFNOTIFYEXW = uintptr

type TLPOFNOTIFYW = uintptr

type TLPOFSTRUCT = uintptr

type TLPOLEADVISEHOLDER = uintptr

type TLPOLECACHE = uintptr

type TLPOLECACHE2 = uintptr

type TLPOLECACHECONTROL = uintptr

type TLPOLECLIENTSITE = uintptr

type TLPOLECONTAINER = uintptr

type TLPOLEINPLACEACTIVEOBJECT = uintptr

type TLPOLEINPLACEFRAME = uintptr

type TLPOLEINPLACEFRAMEINFO = uintptr

type TLPOLEINPLACEOBJECT = uintptr

type TLPOLEINPLACESITE = uintptr

type TLPOLEINPLACEUIWINDOW = uintptr

type TLPOLEITEMCONTAINER = uintptr

type TLPOLELINK = uintptr

type TLPOLEMENUGROUPWIDTHS = uintptr

type TLPOLEOBJECT = uintptr

type TLPOLERENDER = uintptr

type TLPOLESTR = uintptr

type TLPOLESTREAM = uintptr

type TLPOLESTREAMVTBL = uintptr

type TLPOLEUPDATE = uintptr

type TLPOLEVERB = uintptr

type TLPOLEWINDOW = uintptr

type TLPOPENCARDNAME = uintptr

type TLPOPENCARDNAMEA = uintptr

type TLPOPENCARDNAMEW = uintptr

type TLPOPENCARDNAME_EX = uintptr

type TLPOPENCARDNAME_EXA = uintptr

type TLPOPENCARDNAME_EXW = uintptr

type TLPOPENCARD_SEARCH_CRITERIA = uintptr

type TLPOPENCARD_SEARCH_CRITERIAA = uintptr

type TLPOPENCARD_SEARCH_CRITERIAW = uintptr

type TLPOPENFILENAME = uintptr

type TLPOPENFILENAMEA = uintptr

type TLPOPENFILENAMEW = uintptr

type TLPOPENFILENAME_NT4 = uintptr

type TLPOPENFILENAME_NT4A = uintptr

type TLPOPENFILENAME_NT4W = uintptr

type TLPOSVERSIONINFO = uintptr

type TLPOSVERSIONINFOA = uintptr

type TLPOSVERSIONINFOEX = uintptr

type TLPOSVERSIONINFOEXA = uintptr

type TLPOSVERSIONINFOEXW = uintptr

type TLPOSVERSIONINFOW = uintptr

type TLPOUTLINETEXTMETRIC = uintptr

type TLPOUTLINETEXTMETRICA = uintptr

type TLPOUTLINETEXTMETRICW = uintptr

type TLPOUTPUT_DEBUG_STRING_INFO = uintptr

type TLPOVERLAPPED = uintptr

type TLPOVERLAPPED_COMPLETION_ROUTINE = uintptr

type TLPOVERLAPPED_ENTRY = uintptr

type TLPPAGEPAINTHOOK = uintptr

type TLPPAGESETUPDLG = uintptr

type TLPPAGESETUPDLGA = uintptr

type TLPPAGESETUPDLGW = uintptr

type TLPPAGESETUPHOOK = uintptr

type TLPPAINTSTRUCT = uintptr

type TLPPALETTEENTRY = uintptr

type TLPPANOSE = uintptr

type TLPPARAMDATA = uintptr

type TLPPARAMDESC = uintptr

type TLPPARAMDESCEX = uintptr

type TLPPARSEDISPLAYNAME = uintptr

type TLPPATCHARRAY = uintptr

type TLPPATTERN = uintptr

type TLPPCMWAVEFORMAT = uintptr

type TLPPELARRAY = uintptr

type TLPPERSIST = uintptr

type TLPPERSISTFILE = uintptr

type TLPPERSISTMONIKER = uintptr

type TLPPERSISTSTORAGE = uintptr

type TLPPERSISTSTREAM = uintptr

type TLPPIXELFORMATDESCRIPTOR = uintptr

type TLPPOINT = uintptr

type TLPPOINTFX = uintptr

type TLPPOINTS = uintptr

type TLPPOLYTEXT = uintptr

type TLPPOLYTEXTA = uintptr

type TLPPOLYTEXTW = uintptr

type TLPPORT_INFO_1 = uintptr

type TLPPORT_INFO_1A = uintptr

type TLPPORT_INFO_1W = uintptr

type TLPPORT_INFO_2 = uintptr

type TLPPORT_INFO_2A = uintptr

type TLPPORT_INFO_2W = uintptr

type TLPPORT_INFO_3 = uintptr

type TLPPORT_INFO_3A = uintptr

type TLPPORT_INFO_3W = uintptr

type TLPPOWER_REQUEST_CONTEXT = uintptr

type TLPPRINTDLG = uintptr

type TLPPRINTDLGA = uintptr

type TLPPRINTDLGEX = uintptr

type TLPPRINTDLGEXA = uintptr

type TLPPRINTDLGEXW = uintptr

type TLPPRINTDLGW = uintptr

type TLPPRINTER_DEFAULTS = uintptr

type TLPPRINTER_DEFAULTSA = uintptr

type TLPPRINTER_DEFAULTSW = uintptr

type TLPPRINTER_ENUM_VALUES = uintptr

type TLPPRINTER_ENUM_VALUESA = uintptr

type TLPPRINTER_ENUM_VALUESW = uintptr

type TLPPRINTER_INFO_1 = uintptr

type TLPPRINTER_INFO_1A = uintptr

type TLPPRINTER_INFO_1W = uintptr

type TLPPRINTER_INFO_2 = uintptr

type TLPPRINTER_INFO_2A = uintptr

type TLPPRINTER_INFO_2W = uintptr

type TLPPRINTER_INFO_3 = uintptr

type TLPPRINTER_INFO_4 = uintptr

type TLPPRINTER_INFO_4A = uintptr

type TLPPRINTER_INFO_4W = uintptr

type TLPPRINTER_INFO_5 = uintptr

type TLPPRINTER_INFO_5A = uintptr

type TLPPRINTER_INFO_5W = uintptr

type TLPPRINTER_INFO_6 = uintptr

type TLPPRINTER_INFO_7 = uintptr

type TLPPRINTER_INFO_7A = uintptr

type TLPPRINTER_INFO_7W = uintptr

type TLPPRINTER_INFO_8 = uintptr

type TLPPRINTER_INFO_8A = uintptr

type TLPPRINTER_INFO_8W = uintptr

type TLPPRINTER_INFO_9 = uintptr

type TLPPRINTER_INFO_9A = uintptr

type TLPPRINTER_INFO_9W = uintptr

type TLPPRINTER_NOTIFY_INFO = uintptr

type TLPPRINTER_NOTIFY_INFO_DATA = uintptr

type TLPPRINTER_NOTIFY_OPTIONS = uintptr

type TLPPRINTER_NOTIFY_OPTIONS_TYPE = uintptr

type TLPPRINTHOOKPROC = uintptr

type TLPPRINTPAGERANGE = uintptr

type TLPPRINTPROCESSOR_INFO_1 = uintptr

type TLPPRINTPROCESSOR_INFO_1A = uintptr

type TLPPRINTPROCESSOR_INFO_1W = uintptr

type TLPPROCESS_HEAP_ENTRY = uintptr

type TLPPROCESS_INFORMATION = uintptr

type TLPPROC_THREAD_ATTRIBUTE_LIST = uintptr

type TLPPROGRESS_ROUTINE = uintptr

type TLPPROPERTYBAG = uintptr

type TLPPROPERTYSETSTORAGE = uintptr

type TLPPROPERTYSTORAGE = uintptr

type TLPPROPSHEETHEADERA = uintptr

type TLPPROPSHEETHEADERW = uintptr

type TLPPROPSHEETPAGEA = uintptr

type TLPPROPSHEETPAGEA_LATEST = uintptr

type TLPPROPSHEETPAGEA_V1 = uintptr

type TLPPROPSHEETPAGEA_V2 = uintptr

type TLPPROPSHEETPAGEA_V3 = uintptr

type TLPPROPSHEETPAGEW = uintptr

type TLPPROPSHEETPAGEW_LATEST = uintptr

type TLPPROPSHEETPAGEW_V1 = uintptr

type TLPPROPSHEETPAGEW_V2 = uintptr

type TLPPROPSHEETPAGEW_V3 = uintptr

type TLPPROPVARIANT = uintptr

type TLPPROTOCOL_ARGUMENT = uintptr

type TLPPROTOENT = uintptr

type TLPPROVIDOR_INFO_1 = uintptr

type TLPPROVIDOR_INFO_1A = uintptr

type TLPPROVIDOR_INFO_1W = uintptr

type TLPPROVIDOR_INFO_2 = uintptr

type TLPPROVIDOR_INFO_2A = uintptr

type TLPPROVIDOR_INFO_2W = uintptr

type TLPPSHNOTIFY = uintptr

type TLPQUERY_SERVICE_CONFIG = uintptr

type TLPQUERY_SERVICE_CONFIGA = uintptr

type TLPQUERY_SERVICE_CONFIGW = uintptr

type TLPQUERY_SERVICE_LOCK_STATUS = uintptr

type TLPQUERY_SERVICE_LOCK_STATUSA = uintptr

type TLPQUERY_SERVICE_LOCK_STATUSW = uintptr

type TLPRASTERIZER_STATUS = uintptr

type TLPRAWHID = uintptr

type TLPRAWINPUT = uintptr

type TLPRAWINPUTDEVICE = uintptr

type TLPRAWINPUTHEADER = uintptr

type TLPRAWKEYBOARD = uintptr

type TLPRAWMOUSE = uintptr

type TLPRECONVERTSTRING = uintptr

type TLPRECORDINFO = uintptr

type TLPRECT = uintptr

type TLPRECTL = uintptr

type TLPREGISTERWORD = uintptr

type TLPREGISTERWORDA = uintptr

type TLPREGISTERWORDW = uintptr

type TLPREMFORMATETC = uintptr

type TLPREMOTE_NAME_INFO = uintptr

type TLPREMOTE_NAME_INFOA = uintptr

type TLPREMOTE_NAME_INFOW = uintptr

type TLPREMSECURITY_ATTRIBUTES = uintptr

type TLPRGBQUAD = uintptr

type TLPRGBTRIPLE = uintptr

type TLPRGNDATA = uintptr

type TLPRID_DEVICE_INFO = uintptr

type TLPRIP_INFO = uintptr

type TLPROOTSTORAGE = uintptr

type TLPRUNNABLEOBJECT = uintptr

type TLPRUNNINGOBJECTTABLE = uintptr

type TLPSAFEARRAY = uintptr

type TLPSAFEARRAYBOUND = uintptr

type TLPSCARDCONTEXT = uintptr

type TLPSCARDHANDLE = uintptr

type TLPSCARD_ATRMASK = uintptr

type TLPSCARD_IO_REQUEST = uintptr

type TLPSCARD_READERSTATE = uintptr

type TLPSCARD_READERSTATEA = uintptr

type TLPSCARD_READERSTATEW = uintptr

type TLPSCARD_T0_COMMAND = uintptr

type TLPSCARD_T0_REQUEST = uintptr

type TLPSCARD_T1_REQUEST = uintptr

type TLPSCROLLBARINFO = uintptr

type TLPSCROLLINFO = uintptr

type TLPSC_ACTION = uintptr

type TLPSC_HANDLE = uintptr

type TLPSECURITY_ATTRIBUTES = uintptr

type TLPSECURITY_CAPABILITIES = uintptr

type TLPSENDCMDINPARAMS = uintptr

type TLPSENDCMDOUTPARAMS = uintptr

type TLPSERIALKEYS = uintptr

type TLPSERIALKEYSA = uintptr

type TLPSERIALKEYSW = uintptr

type TLPSERVENT = uintptr

type TLPSERVICEPROVIDER = uintptr

type TLPSERVICE_DELAYED_AUTO_START_INFO = uintptr

type TLPSERVICE_DESCRIPTION = uintptr

type TLPSERVICE_DESCRIPTIONA = uintptr

type TLPSERVICE_DESCRIPTIONW = uintptr

type TLPSERVICE_FAILURE_ACTIONS = uintptr

type TLPSERVICE_FAILURE_ACTIONSA = uintptr

type TLPSERVICE_FAILURE_ACTIONSW = uintptr

type TLPSERVICE_FAILURE_ACTIONS_FLAG = uintptr

type TLPSERVICE_MAIN_FUNCTIONA = uintptr

type TLPSERVICE_MAIN_FUNCTIONW = uintptr

type TLPSERVICE_PRESHUTDOWN_INFO = uintptr

type TLPSERVICE_REQUIRED_PRIVILEGES_INFOA = uintptr

type TLPSERVICE_REQUIRED_PRIVILEGES_INFOW = uintptr

type TLPSERVICE_SID_INFO = uintptr

type TLPSERVICE_STATUS = uintptr

type TLPSERVICE_STATUS_PROCESS = uintptr

type TLPSERVICE_TABLE_ENTRY = uintptr

type TLPSERVICE_TABLE_ENTRYA = uintptr

type TLPSERVICE_TABLE_ENTRYW = uintptr

type TLPSETUPHOOKPROC = uintptr

type TLPSHELLEXECUTEINFO = uintptr

type TLPSHELLEXECUTEINFOA = uintptr

type TLPSHELLEXECUTEINFOW = uintptr

type TLPSHELLHOOKINFO = uintptr

type TLPSHFILEOPSTRUCT = uintptr

type TLPSHFILEOPSTRUCTA = uintptr

type TLPSHFILEOPSTRUCTW = uintptr

type TLPSHNAMEMAPPING = uintptr

type TLPSHNAMEMAPPINGA = uintptr

type TLPSHNAMEMAPPINGW = uintptr

type TLPSHQUERYRBINFO = uintptr

type TLPSIZE = uintptr

type TLPSIZEL = uintptr

type TLPSOCKADDR = uintptr

type TLPSOCKADDR_IN = uintptr

type TLPSOFTDISTINFO = uintptr

type TLPSOUNDSENTRY = uintptr

type TLPSOUNDSENTRYA = uintptr

type TLPSOUNDSENTRYW = uintptr

type TLPSTARTUPINFO = uintptr

type TLPSTARTUPINFOA = uintptr

type TLPSTARTUPINFOEX = uintptr

type TLPSTARTUPINFOEXA = uintptr

type TLPSTARTUPINFOEXW = uintptr

type TLPSTARTUPINFOW = uintptr

type TLPSTATDATA = uintptr

type TLPSTDMARSHALINFO = uintptr

type TLPSTGMEDIUM = uintptr

type TLPSTICKYKEYS = uintptr

type TLPSTORAGE = uintptr

type TLPSTR = uintptr

type TLPSTREAM = uintptr

type TLPSTYLEBUF = uintptr

type TLPSTYLEBUFA = uintptr

type TLPSTYLEBUFW = uintptr

type TLPSTYLESTRUCT = uintptr

type TLPSUPPORTERRORINFO = uintptr

type TLPSURROGATE = uintptr

type TLPSYNCHRONIZATION_BARRIER = uintptr

type TLPSYSTEMTIME = uintptr

type TLPSYSTEM_INFO = uintptr

type TLPSYSTEM_POWER_STATUS = uintptr

type TLPTCH = uintptr

type TLPTEXTMETRIC = uintptr

type TLPTEXTMETRICA = uintptr

type TLPTEXTMETRICW = uintptr

type TLPTHREAD_START_ROUTINE = uintptr

type TLPTIMECALLBACK = uintptr

type TLPTIMECAPS = uintptr

type TLPTIMEVAL = uintptr

type TLPTIME_ZONE_INFORMATION = uintptr

type TLPTITLEBARINFO = uintptr

type TLPTITLEBARINFOEX = uintptr

type TLPTLIBATTR = uintptr

type TLPTOGGLEKEYS = uintptr

type TLPTOP_LEVEL_EXCEPTION_FILTER = uintptr

type TLPTPMPARAMS = uintptr

type TLPTRACKMOUSEEVENT = uintptr

type TLPTRANSMIT_FILE_BUFFERS = uintptr

type TLPTRIVERTEX = uintptr

type TLPTSTR = uintptr

type TLPTTPOLYCURVE = uintptr

type TLPTTPOLYGONHEADER = uintptr

type TLPTYPEATTR = uintptr

type TLPTYPECHANGEEVENTS = uintptr

type TLPTYPECOMP = uintptr

type TLPTYPEINFO = uintptr

type TLPTYPEINFO2 = uintptr

type TLPTYPELIB = uintptr

type TLPTYPELIB2 = uintptr

type TLPUINT = uintptr

type TLPUNIVERSAL_NAME_INFO = uintptr

type TLPUNIVERSAL_NAME_INFOA = uintptr

type TLPUNIVERSAL_NAME_INFOW = uintptr

type TLPUNKNOWN = uintptr

type TLPUNLOAD_DLL_DEBUG_INFO = uintptr

type TLPURLZONEMANAGER = uintptr

type TLPUTSTR = uintptr

type TLPUWSTR = uintptr

type TLPVARDESC = uintptr

type TLPVARIANT = uintptr

type TLPVARIANTARG = uintptr

type TLPVERSIONEDSTREAM = uintptr

type TLPVIDEOPARAMETERS = uintptr

type TLPVIEWOBJECT = uintptr

type TLPVIEWOBJECT2 = uintptr

type TLPVOID = uintptr

type TLPWAVECALLBACK = uintptr

type TLPWAVEFORMAT = uintptr

type TLPWAVEFORMATEX = uintptr

type TLPWAVEHDR = uintptr

type TLPWAVEINCAPS = uintptr

type TLPWAVEINCAPS2 = uintptr

type TLPWAVEINCAPS2A = uintptr

type TLPWAVEINCAPS2W = uintptr

type TLPWAVEINCAPSA = uintptr

type TLPWAVEINCAPSW = uintptr

type TLPWAVEOUTCAPS = uintptr

type TLPWAVEOUTCAPS2 = uintptr

type TLPWAVEOUTCAPS2A = uintptr

type TLPWAVEOUTCAPS2W = uintptr

type TLPWAVEOUTCAPSA = uintptr

type TLPWAVEOUTCAPSW = uintptr

type TLPWCH = uintptr

type TLPWCRANGE = uintptr

type TLPWGLSWAP = uintptr

type TLPWIN32_FILE_ATTRIBUTE_DATA = uintptr

type TLPWIN32_FIND_DATA = uintptr

type TLPWIN32_FIND_DATAA = uintptr

type TLPWIN32_FIND_DATAW = uintptr

type TLPWIN32_STREAM_ID = uintptr

type TLPWINDOWFORBINDINGUI = uintptr

type TLPWINDOWINFO = uintptr

type TLPWINDOWPLACEMENT = uintptr

type TLPWINDOWPOS = uintptr

type TLPWININETCACHEHINTS = uintptr

type TLPWININETCACHEHINTS2 = uintptr

type TLPWININETFILESTREAM = uintptr

type TLPWININETHTTPINFO = uintptr

type TLPWININETINFO = uintptr

type TLPWNDCLASS = uintptr

type TLPWNDCLASSA = uintptr

type TLPWNDCLASSEX = uintptr

type TLPWNDCLASSEXA = uintptr

type TLPWNDCLASSEXW = uintptr

type TLPWNDCLASSW = uintptr

type TLPWORD = uintptr

type TLPWSADATA = uintptr

type TLPWSTR = uintptr

type TLPXFORM = uintptr

type TLPZONEATTRIBUTES = uintptr

type TLSTATUS = int32

const TLS_MINIMUM_AVAILABLE = 64

type TLUID = struct {
	FLowPart  TDWORD
	FHighPart TLONG
}

type TLUID_AND_ATTRIBUTES = struct {
	FLuid       TLUID
	FAttributes TDWORD
}

type TLUID_AND_ATTRIBUTES_ARRAY = [1]TLUID_AND_ATTRIBUTES

type TMACHINE_ATTRIBUTES = int32

type TMALLOC_FREE_STRUCT = struct {
	FpfnAllocate uintptr
	FpfnFree     uintptr
}

type TMANDATORY_LEVEL = int32

type TMARK_HANDLE_INFO = struct {
	FUsnSourceInfo TDWORD
	FVolumeHandle  THANDLE
	FHandleInfo    TDWORD
}

type TMAT2 = struct {
	FeM11 TFIXED
	FeM12 TFIXED
	FeM21 TFIXED
	FeM22 TFIXED
}

type TMCIDEVICEID = uint32

type TMCIERROR = uint32

type TMCI_ANIM_OPEN_PARMS = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCSTR
	FlpstrElementName TLPCSTR
	FlpstrAlias       TLPCSTR
	FdwStyle          TDWORD
	FhWndParent       THWND
}

type TMCI_ANIM_OPEN_PARMSA = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCSTR
	FlpstrElementName TLPCSTR
	FlpstrAlias       TLPCSTR
	FdwStyle          TDWORD
	FhWndParent       THWND
}

type TMCI_ANIM_OPEN_PARMSW = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCWSTR
	FlpstrElementName TLPCWSTR
	FlpstrAlias       TLPCWSTR
	FdwStyle          TDWORD
	FhWndParent       THWND
}

type TMCI_ANIM_PLAY_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwFrom     TDWORD
	FdwTo       TDWORD
	FdwSpeed    TDWORD
}

type TMCI_ANIM_RECT_PARMS = struct {
	FdwCallback TDWORD_PTR
	Frc         TRECT
}

type TMCI_ANIM_STEP_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwFrames   TDWORD
}

type TMCI_ANIM_UPDATE_PARMS = struct {
	FdwCallback TDWORD_PTR
	Frc         TRECT
	FhDC        THDC
}

type TMCI_ANIM_WINDOW_PARMS = struct {
	FdwCallback TDWORD_PTR
	FhWnd       THWND
	FnCmdShow   TUINT
	FlpstrText  TLPCSTR
}

type TMCI_ANIM_WINDOW_PARMSA = struct {
	FdwCallback TDWORD_PTR
	FhWnd       THWND
	FnCmdShow   TUINT
	FlpstrText  TLPCSTR
}

type TMCI_ANIM_WINDOW_PARMSW = struct {
	FdwCallback TDWORD_PTR
	FhWnd       THWND
	FnCmdShow   TUINT
	FlpstrText  TLPCWSTR
}

type TMCI_BREAK_PARMS = struct {
	FdwCallback TDWORD_PTR
	FnVirtKey   int32
	FhwndBreak  THWND
}

type TMCI_GENERIC_PARMS = struct {
	FdwCallback TDWORD_PTR
}

type TMCI_GETDEVCAPS_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwReturn   TDWORD
	FdwItem     TDWORD
}

type TMCI_INFO_PARMS = struct {
	FdwCallback  TDWORD_PTR
	FlpstrReturn TLPSTR
	FdwRetSize   TDWORD
}

type TMCI_INFO_PARMSA = struct {
	FdwCallback  TDWORD_PTR
	FlpstrReturn TLPSTR
	FdwRetSize   TDWORD
}

type TMCI_INFO_PARMSW = struct {
	FdwCallback  TDWORD_PTR
	FlpstrReturn TLPWSTR
	FdwRetSize   TDWORD
}

type TMCI_LOAD_PARMS = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCSTR
}

type TMCI_LOAD_PARMSA = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCSTR
}

type TMCI_LOAD_PARMSW = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCWSTR
}

type TMCI_OPEN_PARMS = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCSTR
	FlpstrElementName TLPCSTR
	FlpstrAlias       TLPCSTR
}

type TMCI_OPEN_PARMSA = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCSTR
	FlpstrElementName TLPCSTR
	FlpstrAlias       TLPCSTR
}

type TMCI_OPEN_PARMSW = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCWSTR
	FlpstrElementName TLPCWSTR
	FlpstrAlias       TLPCWSTR
}

type TMCI_OVLY_LOAD_PARMS = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCSTR
	Frc         TRECT
}

type TMCI_OVLY_LOAD_PARMSA = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCSTR
	Frc         TRECT
}

type TMCI_OVLY_LOAD_PARMSW = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCWSTR
	Frc         TRECT
}

type TMCI_OVLY_OPEN_PARMS = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCSTR
	FlpstrElementName TLPCSTR
	FlpstrAlias       TLPCSTR
	FdwStyle          TDWORD
	FhWndParent       THWND
}

type TMCI_OVLY_OPEN_PARMSA = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCSTR
	FlpstrElementName TLPCSTR
	FlpstrAlias       TLPCSTR
	FdwStyle          TDWORD
	FhWndParent       THWND
}

type TMCI_OVLY_OPEN_PARMSW = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCWSTR
	FlpstrElementName TLPCWSTR
	FlpstrAlias       TLPCWSTR
	FdwStyle          TDWORD
	FhWndParent       THWND
}

type TMCI_OVLY_RECT_PARMS = struct {
	FdwCallback TDWORD_PTR
	Frc         TRECT
}

type TMCI_OVLY_SAVE_PARMS = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCSTR
	Frc         TRECT
}

type TMCI_OVLY_SAVE_PARMSA = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCSTR
	Frc         TRECT
}

type TMCI_OVLY_SAVE_PARMSW = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCWSTR
	Frc         TRECT
}

type TMCI_OVLY_WINDOW_PARMS = struct {
	FdwCallback TDWORD_PTR
	FhWnd       THWND
	FnCmdShow   TUINT
	FlpstrText  TLPCSTR
}

type TMCI_OVLY_WINDOW_PARMSA = struct {
	FdwCallback TDWORD_PTR
	FhWnd       THWND
	FnCmdShow   TUINT
	FlpstrText  TLPCSTR
}

type TMCI_OVLY_WINDOW_PARMSW = struct {
	FdwCallback TDWORD_PTR
	FhWnd       THWND
	FnCmdShow   TUINT
	FlpstrText  TLPCWSTR
}

type TMCI_PLAY_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwFrom     TDWORD
	FdwTo       TDWORD
}

type TMCI_RECORD_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwFrom     TDWORD
	FdwTo       TDWORD
}

type TMCI_SAVE_PARMS = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCSTR
}

type TMCI_SAVE_PARMSA = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCSTR
}

type TMCI_SAVE_PARMSW = struct {
	FdwCallback TDWORD_PTR
	Flpfilename TLPCWSTR
}

type TMCI_SEEK_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwTo       TDWORD
}

type TMCI_SEQ_SET_PARMS = struct {
	FdwCallback   TDWORD_PTR
	FdwTimeFormat TDWORD
	FdwAudio      TDWORD
	FdwTempo      TDWORD
	FdwPort       TDWORD
	FdwSlave      TDWORD
	FdwMaster     TDWORD
	FdwOffset     TDWORD
}

type TMCI_SET_PARMS = struct {
	FdwCallback   TDWORD_PTR
	FdwTimeFormat TDWORD
	FdwAudio      TDWORD
}

type TMCI_STATUS_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwReturn   TDWORD_PTR
	FdwItem     TDWORD
	FdwTrack    TDWORD
}

type TMCI_SYSINFO_PARMS = struct {
	FdwCallback  TDWORD_PTR
	FlpstrReturn TLPSTR
	FdwRetSize   TDWORD
	FdwNumber    TDWORD
	FwDeviceType TUINT
}

type TMCI_SYSINFO_PARMSA = struct {
	FdwCallback  TDWORD_PTR
	FlpstrReturn TLPSTR
	FdwRetSize   TDWORD
	FdwNumber    TDWORD
	FwDeviceType TUINT
}

type TMCI_SYSINFO_PARMSW = struct {
	FdwCallback  TDWORD_PTR
	FlpstrReturn TLPWSTR
	FdwRetSize   TDWORD
	FdwNumber    TDWORD
	FwDeviceType TUINT
}

type TMCI_VD_ESCAPE_PARMS = struct {
	FdwCallback   TDWORD_PTR
	FlpstrCommand TLPCSTR
}

type TMCI_VD_ESCAPE_PARMSA = struct {
	FdwCallback   TDWORD_PTR
	FlpstrCommand TLPCSTR
}

type TMCI_VD_ESCAPE_PARMSW = struct {
	FdwCallback   TDWORD_PTR
	FlpstrCommand TLPCWSTR
}

type TMCI_VD_PLAY_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwFrom     TDWORD
	FdwTo       TDWORD
	FdwSpeed    TDWORD
}

type TMCI_VD_STEP_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwFrames   TDWORD
}

type TMCI_WAVE_DELETE_PARMS = struct {
	FdwCallback TDWORD_PTR
	FdwFrom     TDWORD
	FdwTo       TDWORD
}

type TMCI_WAVE_OPEN_PARMS = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCSTR
	FlpstrElementName TLPCSTR
	FlpstrAlias       TLPCSTR
	FdwBufferSeconds  TDWORD
}

type TMCI_WAVE_OPEN_PARMSA = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCSTR
	FlpstrElementName TLPCSTR
	FlpstrAlias       TLPCSTR
	FdwBufferSeconds  TDWORD
}

type TMCI_WAVE_OPEN_PARMSW = struct {
	FdwCallback       TDWORD_PTR
	FwDeviceID        TMCIDEVICEID
	FlpstrDeviceType  TLPCWSTR
	FlpstrElementName TLPCWSTR
	FlpstrAlias       TLPCWSTR
	FdwBufferSeconds  TDWORD
}

type TMCI_WAVE_SET_PARMS = struct {
	FdwCallback      TDWORD_PTR
	FdwTimeFormat    TDWORD
	FdwAudio         TDWORD
	FwInput          TUINT
	FwOutput         TUINT
	FwFormatTag      TWORD
	FwReserved2      TWORD
	FnChannels       TWORD
	FwReserved3      TWORD
	FnSamplesPerSec  TDWORD
	FnAvgBytesPerSec TDWORD
	FnBlockAlign     TWORD
	FwReserved4      TWORD
	FwBitsPerSample  TWORD
	FwReserved5      TWORD
}

type TMDICREATESTRUCT = struct {
	FszClass TLPCSTR
	FszTitle TLPCSTR
	FhOwner  THANDLE
	Fx       int32
	Fy       int32
	Fcx      int32
	Fcy      int32
	Fstyle   TDWORD
	FlParam  TLPARAM
}

type TMDICREATESTRUCTA = struct {
	FszClass TLPCSTR
	FszTitle TLPCSTR
	FhOwner  THANDLE
	Fx       int32
	Fy       int32
	Fcx      int32
	Fcy      int32
	Fstyle   TDWORD
	FlParam  TLPARAM
}

type TMDICREATESTRUCTW = struct {
	FszClass TLPCWSTR
	FszTitle TLPCWSTR
	FhOwner  THANDLE
	Fx       int32
	Fy       int32
	Fcx      int32
	Fcy      int32
	Fstyle   TDWORD
	FlParam  TLPARAM
}

type TMDINEXTMENU = struct {
	FhmenuIn   THMENU
	FhmenuNext THMENU
	FhwndNext  THWND
}

type TMEASUREITEMSTRUCT = struct {
	FCtlType    TUINT
	FCtlID      TUINT
	FitemID     TUINT
	FitemWidth  TUINT
	FitemHeight TUINT
	FitemData   TULONG_PTR
}

type TMEDIA_TYPE = int32

type TMEMBERID = int32

type TMEMCTX = int32

type TMEMORYSTATUS = struct {
	FdwLength        TDWORD
	FdwMemoryLoad    TDWORD
	FdwTotalPhys     TSIZE_T
	FdwAvailPhys     TSIZE_T
	FdwTotalPageFile TSIZE_T
	FdwAvailPageFile TSIZE_T
	FdwTotalVirtual  TSIZE_T
	FdwAvailVirtual  TSIZE_T
}

type TMEMORY_BASIC_INFORMATION = struct {
	FBaseAddress       TPVOID
	FAllocationBase    TPVOID
	FAllocationProtect TDWORD
	FRegionSize        TSIZE_T
	FState             TDWORD
	FProtect           TDWORD
	FType              TDWORD
}

type TMEMORY_BASIC_INFORMATION32 = struct {
	FBaseAddress       TDWORD
	FAllocationBase    TDWORD
	FAllocationProtect TDWORD
	FRegionSize        TDWORD
	FState             TDWORD
	FProtect           TDWORD
	FType              TDWORD
}

type TMEMORY_PRIORITY_INFORMATION = struct {
	FMemoryPriority TULONG
}

type TMEMORY_RESOURCE_NOTIFICATION_TYPE = int32

type TMEM_ADDRESS_REQUIREMENTS = struct {
	FLowestStartingAddress TPVOID
	FHighestEndingAddress  TPVOID
	FAlignment             TSIZE_T
}

type TMEM_EXTENDED_PARAMETER_TYPE = int32

type TMEM_SECTION_EXTENDED_PARAMETER_TYPE = int32

type TMENUGETOBJECTINFO = struct {
	FdwFlags TDWORD
	FuPos    TUINT
	Fhmenu   THMENU
	Friid    TPVOID
	FpvObj   TPVOID
}

type TMENUINFO = struct {
	FcbSize          TDWORD
	FfMask           TDWORD
	FdwStyle         TDWORD
	FcyMax           TUINT
	FhbrBack         THBRUSH
	FdwContextHelpID TDWORD
	FdwMenuData      TULONG_PTR
}

type TMENUITEMINFO = struct {
	FcbSize        TUINT
	FfMask         TUINT
	FfType         TUINT
	FfState        TUINT
	FwID           TUINT
	FhSubMenu      THMENU
	FhbmpChecked   THBITMAP
	FhbmpUnchecked THBITMAP
	FdwItemData    TULONG_PTR
	FdwTypeData    TLPSTR
	Fcch           TUINT
	FhbmpItem      THBITMAP
}

type TMENUITEMINFOA = struct {
	FcbSize        TUINT
	FfMask         TUINT
	FfType         TUINT
	FfState        TUINT
	FwID           TUINT
	FhSubMenu      THMENU
	FhbmpChecked   THBITMAP
	FhbmpUnchecked THBITMAP
	FdwItemData    TULONG_PTR
	FdwTypeData    TLPSTR
	Fcch           TUINT
	FhbmpItem      THBITMAP
}

type TMENUITEMINFOW = struct {
	FcbSize        TUINT
	FfMask         TUINT
	FfType         TUINT
	FfState        TUINT
	FwID           TUINT
	FhSubMenu      THMENU
	FhbmpChecked   THBITMAP
	FhbmpUnchecked THBITMAP
	FdwItemData    TULONG_PTR
	FdwTypeData    TLPWSTR
	Fcch           TUINT
	FhbmpItem      THBITMAP
}

type TMENUITEMTEMPLATE = struct {
	FmtOption TWORD
	FmtID     TWORD
	FmtString [1]TWCHAR
}

type TMENUITEMTEMPLATEHEADER = struct {
	FversionNumber TWORD
	Foffset        TWORD
}

type TMENUTEMPLATE = struct{}

type TMENUTEMPLATEA = struct{}

type TMENUTEMPLATEW = struct{}

type TMENU_EVENT_RECORD = struct {
	FdwCommandId TUINT
}

type TMERGE_VIRTUAL_DISK_FLAG = int32

type TMERGE_VIRTUAL_DISK_PARAMETERS = struct {
	FVersion   TMERGE_VIRTUAL_DISK_VERSION
	F__ccgo1_4 struct {
		FVersion2 [0]struct {
			FMergeSourceDepth TULONG
			FMergeTargetDepth TULONG
		}
		FVersion1 struct {
			FMergeDepth TULONG
		}
		F__ccgo_pad2 [4]byte
	}
}

type TMERGE_VIRTUAL_DISK_VERSION = int32

type TMESSAGE_RESOURCE_BLOCK = struct {
	FLowId           TDWORD
	FHighId          TDWORD
	FOffsetToEntries TDWORD
}

type TMESSAGE_RESOURCE_DATA = struct {
	FNumberOfBlocks TDWORD
	FBlocks         [1]TMESSAGE_RESOURCE_BLOCK
}

type TMESSAGE_RESOURCE_ENTRY = struct {
	FLength TWORD
	FFlags  TWORD
	FText   [1]TBYTE
}

type TMETAFILEPICT = struct {
	Fmm   TLONG
	FxExt TLONG
	FyExt TLONG
	FhMF  THMETAFILE
}

type TMETAHEADER = struct {
	FmtType         TWORD
	FmtHeaderSize   TWORD
	FmtVersion      TWORD
	FmtSize         TDWORD
	FmtNoObjects    TWORD
	FmtMaxRecord    TDWORD
	FmtNoParameters TWORD
}

type TMETARECORD = struct {
	FrdSize     TDWORD
	FrdFunction TWORD
	FrdParm     [1]TWORD
}

type TMETHODDATA = struct {
	FszName   uintptr
	Fppdata   uintptr
	Fdispid   TDISPID
	FiMeth    TUINT
	Fcc       TCALLCONV
	FcArgs    TUINT
	FwFlags   TWORD
	FvtReturn TVARTYPE
}

const TME_CANCEL = 2147483648

const TME_HOVER = 1

const TME_LEAVE = 2

const TME_NONCLIENT = 16

const TME_QUERY = 1073741824

type TMFENUMPROC = uintptr

type TMIDIEVENT = struct {
	FdwDeltaTime TDWORD
	FdwStreamID  TDWORD
	FdwEvent     TDWORD
	FdwParms     [1]TDWORD
}

type TMIDIHDR = struct {
	FlpData          TLPSTR
	FdwBufferLength  TDWORD
	FdwBytesRecorded TDWORD
	FdwUser          TDWORD_PTR
	FdwFlags         TDWORD
	FlpNext          uintptr
	Freserved        TDWORD_PTR
	FdwOffset        TDWORD
	FdwReserved      [8]TDWORD_PTR
}

type TMIDIINCAPS = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FdwSupport      TDWORD
}

type TMIDIINCAPS2 = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIDIINCAPS2A = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIDIINCAPS2W = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TWCHAR
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIDIINCAPSA = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FdwSupport      TDWORD
}

type TMIDIINCAPSW = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TWCHAR
	FdwSupport      TDWORD
}

type TMIDIOUTCAPS = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FwTechnology    TWORD
	FwVoices        TWORD
	FwNotes         TWORD
	FwChannelMask   TWORD
	FdwSupport      TDWORD
}

type TMIDIOUTCAPS2 = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FwTechnology      TWORD
	FwVoices          TWORD
	FwNotes           TWORD
	FwChannelMask     TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIDIOUTCAPS2A = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FwTechnology      TWORD
	FwVoices          TWORD
	FwNotes           TWORD
	FwChannelMask     TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIDIOUTCAPS2W = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TWCHAR
	FwTechnology      TWORD
	FwVoices          TWORD
	FwNotes           TWORD
	FwChannelMask     TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIDIOUTCAPSA = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FwTechnology    TWORD
	FwVoices        TWORD
	FwNotes         TWORD
	FwChannelMask   TWORD
	FdwSupport      TDWORD
}

type TMIDIOUTCAPSW = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TWCHAR
	FwTechnology    TWORD
	FwVoices        TWORD
	FwNotes         TWORD
	FwChannelMask   TWORD
	FdwSupport      TDWORD
}

type TMIDIPROPTEMPO = struct {
	FcbStruct TDWORD
	FdwTempo  TDWORD
}

type TMIDIPROPTIMEDIV = struct {
	FcbStruct  TDWORD
	FdwTimeDiv TDWORD
}

type TMIDISTRMBUFFVER = struct {
	FdwVersion    TDWORD
	FdwMid        TDWORD
	FdwOEMVersion TDWORD
}

type TMIDL_FORMAT_STRING = struct {
	FPad int16
}

type TMIDL_SERVER_INFO = struct {
	FpStubDesc       TPMIDL_STUB_DESC
	FDispatchTable   uintptr
	FProcString      TPFORMAT_STRING
	FFmtStringOffset uintptr
	FThunkTable      uintptr
	FpTransferSyntax TPRPC_SYNTAX_IDENTIFIER
	FnCount          TULONG_PTR
	FpSyntaxInfo     TPMIDL_SYNTAX_INFO
}

type TMIDL_STUBLESS_PROXY_INFO = struct {
	FpStubDesc          TPMIDL_STUB_DESC
	FProcFormatString   TPFORMAT_STRING
	FFormatStringOffset uintptr
	FpTransferSyntax    TPRPC_SYNTAX_IDENTIFIER
	FnCount             TULONG_PTR
	FpSyntaxInfo        TPMIDL_SYNTAX_INFO
}

type TMIDL_STUB_DESC = struct {
	FRpcInterfaceInformation uintptr
	FpfnAllocate             uintptr
	FpfnFree                 uintptr
	FIMPLICIT_HANDLE_INFO    struct {
		FpPrimitiveHandle    [0]uintptr
		FpGenericBindingInfo [0]TPGENERIC_BINDING_INFO
		FpAutoHandle         uintptr
	}
	FapfnNdrRundownRoutines      uintptr
	FaGenericBindingRoutinePairs uintptr
	FapfnExprEval                uintptr
	FaXmitQuintuple              uintptr
	FpFormatTypes                uintptr
	FfCheckBounds                int32
	FVersion                     uint32
	FpMallocFreeStruct           uintptr
	FMIDLVersion                 int32
	FCommFaultOffsets            uintptr
	FaUserMarshalQuadruple       uintptr
	FNotifyRoutineTable          uintptr
	FmFlags                      TULONG_PTR
	FCsRoutineTables             uintptr
	FReserved4                   uintptr
	FReserved5                   TULONG_PTR
}

type TMIDL_SYNTAX_INFO = struct {
	FTransferSyntax        TRPC_SYNTAX_IDENTIFIER
	FDispatchTable         uintptr
	FProcString            TPFORMAT_STRING
	FFmtStringOffset       uintptr
	FTypeString            TPFORMAT_STRING
	FaUserMarshalQuadruple uintptr
	FpReserved1            TULONG_PTR
	FpReserved2            TULONG_PTR
}

type TMINIMIZEDMETRICS = struct {
	FcbSize   TUINT
	FiWidth   int32
	FiHorzGap int32
	FiVertGap int32
	FiArrange int32
}

type TMINMAXINFO = struct {
	FptReserved     TPOINT
	FptMaxSize      TPOINT
	FptMaxPosition  TPOINT
	FptMinTrackSize TPOINT
	FptMaxTrackSize TPOINT
}

type TMIRROR_VIRTUAL_DISK_FLAG = int32

type TMIRROR_VIRTUAL_DISK_VERSION = int32

type TMIXERCAPS = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FfdwSupport     TDWORD
	FcDestinations  TDWORD
}

type TMIXERCAPS2 = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FfdwSupport       TDWORD
	FcDestinations    TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIXERCAPS2A = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FfdwSupport       TDWORD
	FcDestinations    TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIXERCAPS2W = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TWCHAR
	FfdwSupport       TDWORD
	FcDestinations    TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TMIXERCAPSA = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FfdwSupport     TDWORD
	FcDestinations  TDWORD
}

type TMIXERCAPSW = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TWCHAR
	FfdwSupport     TDWORD
	FcDestinations  TDWORD
}

type TMIXERCONTROL = struct {
	FcbStruct       TDWORD
	FdwControlID    TDWORD
	FdwControlType  TDWORD
	FfdwControl     TDWORD
	FcMultipleItems TDWORD
	FszShortName    [16]TCHAR
	FszName         [64]TCHAR
	FBounds         struct {
		F__ccgo1_0 [0]struct {
			FdwMinimum TDWORD
			FdwMaximum TDWORD
		}
		FdwReserved [0][6]TDWORD
		F__ccgo0_0  struct {
			FlMinimum TLONG
			FlMaximum TLONG
		}
		F__ccgo_pad3 [16]byte
	}
	FMetrics struct {
		FcbCustomData [0]TDWORD
		FdwReserved   [0][6]TDWORD
		FcSteps       TDWORD
		F__ccgo_pad3  [20]byte
	}
}

type TMIXERCONTROLA = struct {
	FcbStruct       TDWORD
	FdwControlID    TDWORD
	FdwControlType  TDWORD
	FfdwControl     TDWORD
	FcMultipleItems TDWORD
	FszShortName    [16]TCHAR
	FszName         [64]TCHAR
	FBounds         struct {
		F__ccgo1_0 [0]struct {
			FdwMinimum TDWORD
			FdwMaximum TDWORD
		}
		FdwReserved [0][6]TDWORD
		F__ccgo0_0  struct {
			FlMinimum TLONG
			FlMaximum TLONG
		}
		F__ccgo_pad3 [16]byte
	}
	FMetrics struct {
		FcbCustomData [0]TDWORD
		FdwReserved   [0][6]TDWORD
		FcSteps       TDWORD
		F__ccgo_pad3  [20]byte
	}
}

type TMIXERCONTROLDETAILS_BOOLEAN = struct {
	FfValue TLONG
}

type TMIXERCONTROLDETAILS_LISTTEXT = struct {
	FdwParam1 TDWORD
	FdwParam2 TDWORD
	FszName   [64]TCHAR
}

type TMIXERCONTROLDETAILS_LISTTEXTA = struct {
	FdwParam1 TDWORD
	FdwParam2 TDWORD
	FszName   [64]TCHAR
}

type TMIXERCONTROLDETAILS_LISTTEXTW = struct {
	FdwParam1 TDWORD
	FdwParam2 TDWORD
	FszName   [64]TWCHAR
}

type TMIXERCONTROLDETAILS_SIGNED = struct {
	FlValue TLONG
}

type TMIXERCONTROLDETAILS_UNSIGNED = struct {
	FdwValue TDWORD
}

type TMIXERCONTROLW = struct {
	FcbStruct       TDWORD
	FdwControlID    TDWORD
	FdwControlType  TDWORD
	FfdwControl     TDWORD
	FcMultipleItems TDWORD
	FszShortName    [16]TWCHAR
	FszName         [64]TWCHAR
	FBounds         struct {
		F__ccgo1_0 [0]struct {
			FdwMinimum TDWORD
			FdwMaximum TDWORD
		}
		FdwReserved [0][6]TDWORD
		F__ccgo0_0  struct {
			FlMinimum TLONG
			FlMaximum TLONG
		}
		F__ccgo_pad3 [16]byte
	}
	FMetrics struct {
		FcbCustomData [0]TDWORD
		FdwReserved   [0][6]TDWORD
		FcSteps       TDWORD
		F__ccgo_pad3  [20]byte
	}
}

type TMIXERLINE = struct {
	FcbStruct        TDWORD
	FdwDestination   TDWORD
	FdwSource        TDWORD
	FdwLineID        TDWORD
	FfdwLine         TDWORD
	FdwUser          TDWORD_PTR
	FdwComponentType TDWORD
	FcChannels       TDWORD
	FcConnections    TDWORD
	FcControls       TDWORD
	FszShortName     [16]TCHAR
	FszName          [64]TCHAR
	FTarget          struct {
		FdwType         TDWORD
		FdwDeviceID     TDWORD
		FwMid           TWORD
		FwPid           TWORD
		FvDriverVersion TMMVERSION
		FszPname        [32]TCHAR
	}
}

type TMIXERLINEA = struct {
	FcbStruct        TDWORD
	FdwDestination   TDWORD
	FdwSource        TDWORD
	FdwLineID        TDWORD
	FfdwLine         TDWORD
	FdwUser          TDWORD_PTR
	FdwComponentType TDWORD
	FcChannels       TDWORD
	FcConnections    TDWORD
	FcControls       TDWORD
	FszShortName     [16]TCHAR
	FszName          [64]TCHAR
	FTarget          struct {
		FdwType         TDWORD
		FdwDeviceID     TDWORD
		FwMid           TWORD
		FwPid           TWORD
		FvDriverVersion TMMVERSION
		FszPname        [32]TCHAR
	}
}

type TMIXERLINECONTROLS = struct {
	FcbStruct  TDWORD
	FdwLineID  TDWORD
	F__ccgo2_8 struct {
		FdwControlType [0]TDWORD
		FdwControlID   TDWORD
	}
	FcControls TDWORD
	Fcbmxctrl  TDWORD
	Fpamxctrl  TLPMIXERCONTROLA
}

type TMIXERLINECONTROLSA = struct {
	FcbStruct  TDWORD
	FdwLineID  TDWORD
	F__ccgo2_8 struct {
		FdwControlType [0]TDWORD
		FdwControlID   TDWORD
	}
	FcControls TDWORD
	Fcbmxctrl  TDWORD
	Fpamxctrl  TLPMIXERCONTROLA
}

type TMIXERLINECONTROLSW = struct {
	FcbStruct  TDWORD
	FdwLineID  TDWORD
	F__ccgo2_8 struct {
		FdwControlType [0]TDWORD
		FdwControlID   TDWORD
	}
	FcControls TDWORD
	Fcbmxctrl  TDWORD
	Fpamxctrl  TLPMIXERCONTROLW
}

type TMIXERLINEW = struct {
	FcbStruct        TDWORD
	FdwDestination   TDWORD
	FdwSource        TDWORD
	FdwLineID        TDWORD
	FfdwLine         TDWORD
	FdwUser          TDWORD_PTR
	FdwComponentType TDWORD
	FcChannels       TDWORD
	FcConnections    TDWORD
	FcControls       TDWORD
	FszShortName     [16]TWCHAR
	FszName          [64]TWCHAR
	FTarget          struct {
		FdwType         TDWORD
		FdwDeviceID     TDWORD
		FwMid           TWORD
		FwPid           TWORD
		FvDriverVersion TMMVERSION
		FszPname        [32]TWCHAR
	}
}

type TMKRREDUCE = int32

type TMKSYS = int32

type TMMCKINFO = struct {
	Fckid         TFOURCC
	Fcksize       TDWORD
	FfccType      TFOURCC
	FdwDataOffset TDWORD
	FdwFlags      TDWORD
}

type TMMIOINFO = struct {
	FdwFlags     TDWORD
	FfccIOProc   TFOURCC
	FpIOProc     TLPMMIOPROC
	FwErrorRet   TUINT
	Fhtask       THTASK
	FcchBuffer   TLONG
	FpchBuffer   THPSTR
	FpchNext     THPSTR
	FpchEndRead  THPSTR
	FpchEndWrite THPSTR
	FlBufOffset  TLONG
	FlDiskOffset TLONG
	FadwInfo     [3]TDWORD
	FdwReserved1 TDWORD
	FdwReserved2 TDWORD
	Fhmmio       THMMIO
}

type TMMRESULT = uint32

type TMMTIME = struct {
	FwType TUINT
	Fu     struct {
		Fsample [0]TDWORD
		Fcb     [0]TDWORD
		Fticks  [0]TDWORD
		Fsmpte  [0]struct {
			Fhour  TBYTE
			Fmin   TBYTE
			Fsec   TBYTE
			Fframe TBYTE
			Ffps   TBYTE
			Fdummy TBYTE
			Fpad   [2]TBYTE
		}
		Fmidi [0]struct {
			Fsongptrpos TDWORD
		}
		Fms          TDWORD
		F__ccgo_pad6 [4]byte
	}
}

type TMMVERSION = uint32

type TMODEMDEVCAPS = struct {
	FdwActualSize              TDWORD
	FdwRequiredSize            TDWORD
	FdwDevSpecificOffset       TDWORD
	FdwDevSpecificSize         TDWORD
	FdwModemProviderVersion    TDWORD
	FdwModemManufacturerOffset TDWORD
	FdwModemManufacturerSize   TDWORD
	FdwModemModelOffset        TDWORD
	FdwModemModelSize          TDWORD
	FdwModemVersionOffset      TDWORD
	FdwModemVersionSize        TDWORD
	FdwDialOptions             TDWORD
	FdwCallSetupFailTimer      TDWORD
	FdwInactivityTimeout       TDWORD
	FdwSpeakerVolume           TDWORD
	FdwSpeakerMode             TDWORD
	FdwModemOptions            TDWORD
	FdwMaxDTERate              TDWORD
	FdwMaxDCERate              TDWORD
	FabVariablePortion         [1]TBYTE
}

type TMODEMSETTINGS = struct {
	FdwActualSize             TDWORD
	FdwRequiredSize           TDWORD
	FdwDevSpecificOffset      TDWORD
	FdwDevSpecificSize        TDWORD
	FdwCallSetupFailTimer     TDWORD
	FdwInactivityTimeout      TDWORD
	FdwSpeakerVolume          TDWORD
	FdwSpeakerMode            TDWORD
	FdwPreferredModemOptions  TDWORD
	FdwNegotiatedModemOptions TDWORD
	FdwNegotiatedDCERate      TDWORD
	FabVariablePortion        [1]TBYTE
}

type TMODIFY_VHDSET_FLAG = int32

type TMODIFY_VHDSET_VERSION = int32

type TMONCBSTRUCT = struct {
	Fcb      TUINT
	FdwTime  TDWORD
	FhTask   THANDLE
	FdwRet   TDWORD
	FwType   TUINT
	FwFmt    TUINT
	FhConv   THCONV
	Fhsz1    THSZ
	Fhsz2    THSZ
	FhData   THDDEDATA
	FdwData1 TULONG_PTR
	FdwData2 TULONG_PTR
	Fcc      TCONVCONTEXT
	FcbData  TDWORD
	FData    [8]TDWORD
}

type TMONCONVSTRUCT = struct {
	Fcb          TUINT
	FfConnect    TWINBOOL
	FdwTime      TDWORD
	FhTask       THANDLE
	FhszSvc      THSZ
	FhszTopic    THSZ
	FhConvClient THCONV
	FhConvServer THCONV
}

type TMONERRSTRUCT = struct {
	Fcb         TUINT
	FwLastError TUINT
	FdwTime     TDWORD
	FhTask      THANDLE
}

type TMONHSZSTRUCT = struct {
	Fcb       TUINT
	FfsAction TWINBOOL
	FdwTime   TDWORD
	Fhsz      THSZ
	FhTask    THANDLE
	Fstr      [1]TCHAR
}

type TMONHSZSTRUCTA = struct {
	Fcb       TUINT
	FfsAction TWINBOOL
	FdwTime   TDWORD
	Fhsz      THSZ
	FhTask    THANDLE
	Fstr      [1]TCHAR
}

type TMONHSZSTRUCTW = struct {
	Fcb       TUINT
	FfsAction TWINBOOL
	FdwTime   TDWORD
	Fhsz      THSZ
	FhTask    THANDLE
	Fstr      [1]TWCHAR
}

type TMONIKERPROPERTY = int32

type TMONITORENUMPROC = uintptr

type TMONITORINFO = struct {
	FcbSize    TDWORD
	FrcMonitor TRECT
	FrcWork    TRECT
	FdwFlags   TDWORD
}

type TMONITORINFOEX = struct {
	F__ccgo0_0 struct {
		FcbSize    TDWORD
		FrcMonitor TRECT
		FrcWork    TRECT
		FdwFlags   TDWORD
	}
	FszDevice [32]TCHAR
}

type TMONITORINFOEXA = struct {
	F__ccgo0_0 struct {
		FcbSize    TDWORD
		FrcMonitor TRECT
		FrcWork    TRECT
		FdwFlags   TDWORD
	}
	FszDevice [32]TCHAR
}

type TMONITORINFOEXW = struct {
	F__ccgo0_0 struct {
		FcbSize    TDWORD
		FrcMonitor TRECT
		FrcWork    TRECT
		FdwFlags   TDWORD
	}
	FszDevice [32]TWCHAR
}

type TMONITOR_DISPLAY_STATE = int32

type TMONITOR_INFO_1 = struct {
	FpName TLPSTR
}

type TMONITOR_INFO_1A = struct {
	FpName TLPSTR
}

type TMONITOR_INFO_1W = struct {
	FpName TLPWSTR
}

type TMONITOR_INFO_2 = struct {
	FpName        TLPSTR
	FpEnvironment TLPSTR
	FpDLLName     TLPSTR
}

type TMONITOR_INFO_2A = struct {
	FpName        TLPSTR
	FpEnvironment TLPSTR
	FpDLLName     TLPSTR
}

type TMONITOR_INFO_2W = struct {
	FpName        TLPWSTR
	FpEnvironment TLPWSTR
	FpDLLName     TLPWSTR
}

type TMONLINKSTRUCT = struct {
	Fcb           TUINT
	FdwTime       TDWORD
	FhTask        THANDLE
	FfEstablished TWINBOOL
	FfNoData      TWINBOOL
	FhszSvc       THSZ
	FhszTopic     THSZ
	FhszItem      THSZ
	FwFmt         TUINT
	FfServer      TWINBOOL
	FhConvServer  THCONV
	FhConvClient  THCONV
}

type TMONMSGSTRUCT = struct {
	Fcb     TUINT
	FhwndTo THWND
	FdwTime TDWORD
	FhTask  THANDLE
	FwMsg   TUINT
	FwParam TWPARAM
	FlParam TLPARAM
	Fdmhd   TDDEML_MSG_HOOK_DATA
}

type TMOUSEHOOKSTRUCT = struct {
	Fpt           TPOINT
	Fhwnd         THWND
	FwHitTestCode TUINT
	FdwExtraInfo  TULONG_PTR
}

type TMOUSEHOOKSTRUCTEX = struct {
	F__unnamed TMOUSEHOOKSTRUCT
	FmouseData TDWORD
}

type TMOUSEINPUT = struct {
	Fdx          TLONG
	Fdy          TLONG
	FmouseData   TDWORD
	FdwFlags     TDWORD
	Ftime        TDWORD
	FdwExtraInfo TULONG_PTR
}

type TMOUSEKEYS = struct {
	FcbSize          TUINT
	FdwFlags         TDWORD
	FiMaxSpeed       TDWORD
	FiTimeToMaxSpeed TDWORD
	FiCtrlSpeed      TDWORD
	FdwReserved1     TDWORD
	FdwReserved2     TDWORD
}

type TMOUSEMOVEPOINT = struct {
	Fx           int32
	Fy           int32
	Ftime        TDWORD
	FdwExtraInfo TULONG_PTR
}

type TMOUSE_EVENT_RECORD = struct {
	FdwMousePosition   TCOORD
	FdwButtonState     TDWORD
	FdwControlKeyState TDWORD
	FdwEventFlags      TDWORD
}

const TMPF_DEVICE = 8

const TMPF_FIXED_PITCH = 1

const TMPF_TRUETYPE = 4

const TMPF_VECTOR = 2

const TMP_MAX = 32767

const TMP_MAX_S = 32767

type TMSG = struct {
	Fhwnd    THWND
	Fmessage TUINT
	FwParam  TWPARAM
	FlParam  TLPARAM
	Ftime    TDWORD
	Fpt      TPOINT
}

type TMSGBOXCALLBACK = uintptr

type TMSGBOXPARAMS = struct {
	FcbSize             TUINT
	FhwndOwner          THWND
	FhInstance          THINSTANCE
	FlpszText           TLPCSTR
	FlpszCaption        TLPCSTR
	FdwStyle            TDWORD
	FlpszIcon           TLPCSTR
	FdwContextHelpId    TDWORD_PTR
	FlpfnMsgBoxCallback TMSGBOXCALLBACK
	FdwLanguageId       TDWORD
}

type TMSGBOXPARAMSA = struct {
	FcbSize             TUINT
	FhwndOwner          THWND
	FhInstance          THINSTANCE
	FlpszText           TLPCSTR
	FlpszCaption        TLPCSTR
	FdwStyle            TDWORD
	FlpszIcon           TLPCSTR
	FdwContextHelpId    TDWORD_PTR
	FlpfnMsgBoxCallback TMSGBOXCALLBACK
	FdwLanguageId       TDWORD
}

type TMSGBOXPARAMSW = struct {
	FcbSize             TUINT
	FhwndOwner          THWND
	FhInstance          THINSTANCE
	FlpszText           TLPCWSTR
	FlpszCaption        TLPCWSTR
	FdwStyle            TDWORD
	FlpszIcon           TLPCWSTR
	FdwContextHelpId    TDWORD_PTR
	FlpfnMsgBoxCallback TMSGBOXCALLBACK
	FdwLanguageId       TDWORD
}

type TMSHCTX = int32

type TMSHLFLAGS = int32

type TMSLLHOOKSTRUCT = struct {
	Fpt          TPOINT
	FmouseData   TDWORD
	Fflags       TDWORD
	Ftime        TDWORD
	FdwExtraInfo TULONG_PTR
}

type TMULTIKEYHELP = struct {
	FmkSize      TDWORD
	FmkKeylist   TCHAR
	FszKeyphrase [1]TCHAR
}

type TMULTIKEYHELPA = struct {
	FmkSize      TDWORD
	FmkKeylist   TCHAR
	FszKeyphrase [1]TCHAR
}

type TMULTIKEYHELPW = struct {
	FmkSize      TDWORD
	FmkKeylist   TWCHAR
	FszKeyphrase [1]TWCHAR
}

type TMULTI_QI = struct {
	FpIID uintptr
	FpItf uintptr
	Fhr   THRESULT
}

type TNAMEENUMPROCA = uintptr

type TNAMEENUMPROCW = uintptr

type TNAME_BUFFER = struct {
	Fname       [16]TUCHAR
	Fname_num   TUCHAR
	Fname_flags TUCHAR
}

type TNCCALCSIZE_PARAMS = struct {
	Frgrc  [3]TRECT
	Flppos TPWINDOWPOS
}

type TNCRYPT_ALLOC_PARA = struct {
	FcbSize   TDWORD
	FpfnAlloc TPFN_NCRYPT_ALLOC
	FpfnFree  TPFN_NCRYPT_FREE
}

type TNCRYPT_CIPHER_PADDING_INFO = struct {
	FcbSize      TULONG
	FdwFlags     TDWORD
	FpbIV        TPUCHAR
	FcbIV        TULONG
	FpbOtherInfo TPUCHAR
	FcbOtherInfo TULONG
}

type TNCRYPT_KEY_BLOB_HEADER = struct {
	FcbSize    TULONG
	FdwMagic   TULONG
	FcbAlgName TULONG
	FcbKeyData TULONG
}

type TNCRYPT_SUPPORTED_LENGTHS = struct {
	FdwMinLength     TDWORD
	FdwMaxLength     TDWORD
	FdwIncrement     TDWORD
	FdwDefaultLength TDWORD
}

type TNCRYPT_UI_POLICY = struct {
	FdwVersion        TDWORD
	FdwFlags          TDWORD
	FpszCreationTitle TLPCWSTR
	FpszFriendlyName  TLPCWSTR
	FpszDescription   TLPCWSTR
}

type TNC_ADDRESS = struct {
	FpAddrInfo    uintptr
	FPortNumber   TUSHORT
	FPrefixLength TBYTE
}

type TNCryptAlgorithmName = struct {
	FpszName         TLPWSTR
	FdwClass         TDWORD
	FdwAlgOperations TDWORD
	FdwFlags         TDWORD
}

type TNCryptBuffer = struct {
	FcbBuffer   TULONG
	FBufferType TULONG
	FpvBuffer   TPVOID
}

type TNCryptBufferDesc = struct {
	FulVersion TULONG
	FcBuffers  TULONG
	FpBuffers  TPBCryptBuffer
}

type TNCryptKeyName = struct {
	FpszName         TLPWSTR
	FpszAlgid        TLPWSTR
	FdwLegacyKeySpec TDWORD
	FdwFlags         TDWORD
}

type TNCryptProviderName = struct {
	FpszName    TLPWSTR
	FpszComment TLPWSTR
}

type TNDR_CCONTEXT = uintptr

type TNDR_CS_ROUTINES = struct {
	FpSizeConvertRoutines uintptr
	FpTagGettingRoutines  uintptr
}

type TNDR_CS_SIZE_CONVERT_ROUTINES = struct {
	FpfnNetSize   TCS_TYPE_NET_SIZE_ROUTINE
	FpfnToNetCs   TCS_TYPE_TO_NETCS_ROUTINE
	FpfnLocalSize TCS_TYPE_LOCAL_SIZE_ROUTINE
	FpfnFromNetCs TCS_TYPE_FROM_NETCS_ROUTINE
}

type TNDR_NOTIFY2_ROUTINE = uintptr

type TNDR_NOTIFY_ROUTINE = uintptr

type TNDR_RUNDOWN = uintptr

type TNDR_SCONTEXT = uintptr

type TNDR_USER_MARSHAL_INFO_LEVEL1 = struct {
	FBuffer            uintptr
	FBufferSize        uint32
	FpfnAllocate       uintptr
	FpfnFree           uintptr
	FpRpcChannelBuffer uintptr
	FReserved          [5]TULONG_PTR
}

type TNEARPROC = uintptr

type TNETCONNECTINFOSTRUCT = struct {
	FcbStructure   TDWORD
	FdwFlags       TDWORD
	FdwSpeed       TDWORD
	FdwDelay       TDWORD
	FdwOptDataSize TDWORD
}

type TNETINFOSTRUCT = struct {
	FcbStructure       TDWORD
	FdwProviderVersion TDWORD
	FdwStatus          TDWORD
	FdwCharacteristics TDWORD
	FdwHandle          TULONG_PTR
	FwNetType          TWORD
	FdwPrinters        TDWORD
	FdwDrives          TDWORD
}

type TNETRESOURCE = struct {
	FdwScope       TDWORD
	FdwType        TDWORD
	FdwDisplayType TDWORD
	FdwUsage       TDWORD
	FlpLocalName   TLPSTR
	FlpRemoteName  TLPSTR
	FlpComment     TLPSTR
	FlpProvider    TLPSTR
}

type TNETRESOURCEA = struct {
	FdwScope       TDWORD
	FdwType        TDWORD
	FdwDisplayType TDWORD
	FdwUsage       TDWORD
	FlpLocalName   TLPSTR
	FlpRemoteName  TLPSTR
	FlpComment     TLPSTR
	FlpProvider    TLPSTR
}

type TNETRESOURCEW = struct {
	FdwScope       TDWORD
	FdwType        TDWORD
	FdwDisplayType TDWORD
	FdwUsage       TDWORD
	FlpLocalName   TLPWSTR
	FlpRemoteName  TLPWSTR
	FlpComment     TLPWSTR
	FlpProvider    TLPWSTR
}

type TNEWTEXTMETRIC = struct {
	FtmHeight           TLONG
	FtmAscent           TLONG
	FtmDescent          TLONG
	FtmInternalLeading  TLONG
	FtmExternalLeading  TLONG
	FtmAveCharWidth     TLONG
	FtmMaxCharWidth     TLONG
	FtmWeight           TLONG
	FtmOverhang         TLONG
	FtmDigitizedAspectX TLONG
	FtmDigitizedAspectY TLONG
	FtmFirstChar        TBYTE
	FtmLastChar         TBYTE
	FtmDefaultChar      TBYTE
	FtmBreakChar        TBYTE
	FtmItalic           TBYTE
	FtmUnderlined       TBYTE
	FtmStruckOut        TBYTE
	FtmPitchAndFamily   TBYTE
	FtmCharSet          TBYTE
	FntmFlags           TDWORD
	FntmSizeEM          TUINT
	FntmCellHeight      TUINT
	FntmAvgWidth        TUINT
}

type TNEWTEXTMETRICA = struct {
	FtmHeight           TLONG
	FtmAscent           TLONG
	FtmDescent          TLONG
	FtmInternalLeading  TLONG
	FtmExternalLeading  TLONG
	FtmAveCharWidth     TLONG
	FtmMaxCharWidth     TLONG
	FtmWeight           TLONG
	FtmOverhang         TLONG
	FtmDigitizedAspectX TLONG
	FtmDigitizedAspectY TLONG
	FtmFirstChar        TBYTE
	FtmLastChar         TBYTE
	FtmDefaultChar      TBYTE
	FtmBreakChar        TBYTE
	FtmItalic           TBYTE
	FtmUnderlined       TBYTE
	FtmStruckOut        TBYTE
	FtmPitchAndFamily   TBYTE
	FtmCharSet          TBYTE
	FntmFlags           TDWORD
	FntmSizeEM          TUINT
	FntmCellHeight      TUINT
	FntmAvgWidth        TUINT
}

type TNEWTEXTMETRICEX = struct {
	FntmTm      TNEWTEXTMETRICA
	FntmFontSig TFONTSIGNATURE
}

type TNEWTEXTMETRICEXA = struct {
	FntmTm      TNEWTEXTMETRICA
	FntmFontSig TFONTSIGNATURE
}

type TNEWTEXTMETRICEXW = struct {
	FntmTm      TNEWTEXTMETRICW
	FntmFontSig TFONTSIGNATURE
}

type TNEWTEXTMETRICW = struct {
	FtmHeight           TLONG
	FtmAscent           TLONG
	FtmDescent          TLONG
	FtmInternalLeading  TLONG
	FtmExternalLeading  TLONG
	FtmAveCharWidth     TLONG
	FtmMaxCharWidth     TLONG
	FtmWeight           TLONG
	FtmOverhang         TLONG
	FtmDigitizedAspectX TLONG
	FtmDigitizedAspectY TLONG
	FtmFirstChar        TWCHAR
	FtmLastChar         TWCHAR
	FtmDefaultChar      TWCHAR
	FtmBreakChar        TWCHAR
	FtmItalic           TBYTE
	FtmUnderlined       TBYTE
	FtmStruckOut        TBYTE
	FtmPitchAndFamily   TBYTE
	FtmCharSet          TBYTE
	FntmFlags           TDWORD
	FntmSizeEM          TUINT
	FntmCellHeight      TUINT
	FntmAvgWidth        TUINT
}

type TNLSVERSIONINFO = struct {
	FdwNLSVersionInfoSize TDWORD
	FdwNLSVersion         TDWORD
	FdwDefinedVersion     TDWORD
	FdwEffectiveId        TDWORD
	FguidCustomVersion    TGUID
}

type TNLSVERSIONINFOEX = struct {
	FdwNLSVersionInfoSize TDWORD
	FdwNLSVersion         TDWORD
	FdwDefinedVersion     TDWORD
	FdwEffectiveId        TDWORD
	FguidCustomVersion    TGUID
}

type TNLS_FUNCTION = uint32

type TNMHDR = struct {
	FhwndFrom THWND
	FidFrom   TUINT_PTR
	Fcode     TUINT
}

type TNONCLIENTMETRICS = struct {
	FcbSize             TUINT
	FiBorderWidth       int32
	FiScrollWidth       int32
	FiScrollHeight      int32
	FiCaptionWidth      int32
	FiCaptionHeight     int32
	FlfCaptionFont      TLOGFONTA
	FiSmCaptionWidth    int32
	FiSmCaptionHeight   int32
	FlfSmCaptionFont    TLOGFONTA
	FiMenuWidth         int32
	FiMenuHeight        int32
	FlfMenuFont         TLOGFONTA
	FlfStatusFont       TLOGFONTA
	FlfMessageFont      TLOGFONTA
	FiPaddedBorderWidth int32
}

type TNONCLIENTMETRICSA = struct {
	FcbSize             TUINT
	FiBorderWidth       int32
	FiScrollWidth       int32
	FiScrollHeight      int32
	FiCaptionWidth      int32
	FiCaptionHeight     int32
	FlfCaptionFont      TLOGFONTA
	FiSmCaptionWidth    int32
	FiSmCaptionHeight   int32
	FlfSmCaptionFont    TLOGFONTA
	FiMenuWidth         int32
	FiMenuHeight        int32
	FlfMenuFont         TLOGFONTA
	FlfStatusFont       TLOGFONTA
	FlfMessageFont      TLOGFONTA
	FiPaddedBorderWidth int32
}

type TNONCLIENTMETRICSW = struct {
	FcbSize             TUINT
	FiBorderWidth       int32
	FiScrollWidth       int32
	FiScrollHeight      int32
	FiCaptionWidth      int32
	FiCaptionHeight     int32
	FlfCaptionFont      TLOGFONTW
	FiSmCaptionWidth    int32
	FiSmCaptionHeight   int32
	FlfSmCaptionFont    TLOGFONTW
	FiMenuWidth         int32
	FiMenuHeight        int32
	FlfMenuFont         TLOGFONTW
	FlfStatusFont       TLOGFONTW
	FlfMessageFont      TLOGFONTW
	FiPaddedBorderWidth int32
}

type TNORM_FORM = int32

type TNOTIFICATION_MASK = uint32

type TNOTIFYICONIDENTIFIER = struct {
	FcbSize   TDWORD
	FhWnd     THWND
	FuID      TUINT
	FguidItem TGUID
}

type TNOTIFY_USER_POWER_SETTING = struct {
	FGuid TGUID
}

type TNPABC = uintptr

type TNPABCFLOAT = uintptr

type TNPAUXCAPS = uintptr

type TNPAUXCAPS2 = uintptr

type TNPAUXCAPS2A = uintptr

type TNPAUXCAPS2W = uintptr

type TNPAUXCAPSA = uintptr

type TNPAUXCAPSW = uintptr

type TNPBITMAP = uintptr

type TNPCANDIDATEFORM = uintptr

type TNPCANDIDATELIST = uintptr

type TNPCHARSETINFO = uintptr

type TNPCOMPOSITIONFORM = uintptr

type TNPCWPRETSTRUCT = uintptr

type TNPCWPSTRUCT = uintptr

type TNPDEBUGHOOKINFO = uintptr

type TNPDEVMODE = uintptr

type TNPDEVMODEA = uintptr

type TNPDEVMODEW = uintptr

type TNPDRVCONFIGINFO = uintptr

type TNPDRVCONFIGINFOEX = uintptr

type TNPEVENTMSG = uintptr

type TNPEVENTMSGMSG = uintptr

type TNPEXTLOGFONT = uintptr

type TNPEXTLOGFONTA = uintptr

type TNPEXTLOGFONTW = uintptr

type TNPEXTLOGPEN = uintptr

type TNPEXTLOGPEN32 = uintptr

type TNPIMECHARPOSITION = uintptr

type TNPIMEMENUITEMINFO = uintptr

type TNPIMEMENUITEMINFOA = uintptr

type TNPIMEMENUITEMINFOW = uintptr

type TNPJOYCAPS = uintptr

type TNPJOYCAPS2 = uintptr

type TNPJOYCAPS2A = uintptr

type TNPJOYCAPS2W = uintptr

type TNPJOYCAPSA = uintptr

type TNPJOYCAPSW = uintptr

type TNPJOYINFO = uintptr

type TNPJOYINFOEX = uintptr

type TNPLOGBRUSH = uintptr

type TNPLOGBRUSH32 = uintptr

type TNPLOGFONT = uintptr

type TNPLOGFONTA = uintptr

type TNPLOGFONTW = uintptr

type TNPLOGPALETTE = uintptr

type TNPLOGPEN = uintptr

type TNPMIDIHDR = uintptr

type TNPMIDIINCAPS = uintptr

type TNPMIDIINCAPS2 = uintptr

type TNPMIDIINCAPS2A = uintptr

type TNPMIDIINCAPS2W = uintptr

type TNPMIDIINCAPSA = uintptr

type TNPMIDIINCAPSW = uintptr

type TNPMIDIOUTCAPS = uintptr

type TNPMIDIOUTCAPS2 = uintptr

type TNPMIDIOUTCAPS2A = uintptr

type TNPMIDIOUTCAPS2W = uintptr

type TNPMIDIOUTCAPSA = uintptr

type TNPMIDIOUTCAPSW = uintptr

type TNPMMCKINFO = uintptr

type TNPMMIOINFO = uintptr

type TNPMMTIME = uintptr

type TNPMSG = uintptr

type TNPNEWTEXTMETRIC = uintptr

type TNPNEWTEXTMETRICA = uintptr

type TNPNEWTEXTMETRICW = uintptr

type TNPOUTLINETEXTMETRIC = uintptr

type TNPOUTLINETEXTMETRICA = uintptr

type TNPOUTLINETEXTMETRICW = uintptr

type TNPPAINTSTRUCT = uintptr

type TNPPATTERN = uintptr

type TNPPCMWAVEFORMAT = uintptr

type TNPPELARRAY = uintptr

type TNPPOINT = uintptr

type TNPPOLYTEXT = uintptr

type TNPPOLYTEXTA = uintptr

type TNPPOLYTEXTW = uintptr

type TNPRECONVERTSTRING = uintptr

type TNPRECT = uintptr

type TNPREGISTERWORD = uintptr

type TNPREGISTERWORDA = uintptr

type TNPREGISTERWORDW = uintptr

type TNPRGBTRIPLE = uintptr

type TNPRGNDATA = uintptr

type TNPSTR = uintptr

type TNPSTYLEBUF = uintptr

type TNPSTYLEBUFA = uintptr

type TNPSTYLEBUFW = uintptr

type TNPTEXTMETRIC = uintptr

type TNPTEXTMETRICA = uintptr

type TNPTEXTMETRICW = uintptr

type TNPTIMECAPS = uintptr

type TNPWAVEFORMAT = uintptr

type TNPWAVEFORMATEX = uintptr

type TNPWAVEHDR = uintptr

type TNPWAVEINCAPS = uintptr

type TNPWAVEINCAPS2 = uintptr

type TNPWAVEINCAPS2A = uintptr

type TNPWAVEINCAPS2W = uintptr

type TNPWAVEINCAPSA = uintptr

type TNPWAVEINCAPSW = uintptr

type TNPWAVEOUTCAPS = uintptr

type TNPWAVEOUTCAPS2 = uintptr

type TNPWAVEOUTCAPS2A = uintptr

type TNPWAVEOUTCAPS2W = uintptr

type TNPWAVEOUTCAPSA = uintptr

type TNPWAVEOUTCAPSW = uintptr

type TNPWNDCLASS = uintptr

type TNPWNDCLASSA = uintptr

type TNPWNDCLASSEX = uintptr

type TNPWNDCLASSEXA = uintptr

type TNPWNDCLASSEXW = uintptr

type TNPWNDCLASSW = uintptr

type TNTFS_EXTENDED_VOLUME_DATA = struct {
	FByteCount    TDWORD
	FMajorVersion TWORD
	FMinorVersion TWORD
}

type TNTFS_STATISTICS = struct {
	FLogFileFullExceptions TDWORD
	FOtherExceptions       TDWORD
	FMftReads              TDWORD
	FMftReadBytes          TDWORD
	FMftWrites             TDWORD
	FMftWriteBytes         TDWORD
	FMftWritesUserLevel    struct {
		FWrite   TWORD
		FCreate  TWORD
		FSetInfo TWORD
		FFlush   TWORD
	}
	FMftWritesFlushForLogFileFull TWORD
	FMftWritesLazyWriter          TWORD
	FMftWritesUserRequest         TWORD
	FMft2Writes                   TDWORD
	FMft2WriteBytes               TDWORD
	FMft2WritesUserLevel          struct {
		FWrite   TWORD
		FCreate  TWORD
		FSetInfo TWORD
		FFlush   TWORD
	}
	FMft2WritesFlushForLogFileFull   TWORD
	FMft2WritesLazyWriter            TWORD
	FMft2WritesUserRequest           TWORD
	FRootIndexReads                  TDWORD
	FRootIndexReadBytes              TDWORD
	FRootIndexWrites                 TDWORD
	FRootIndexWriteBytes             TDWORD
	FBitmapReads                     TDWORD
	FBitmapReadBytes                 TDWORD
	FBitmapWrites                    TDWORD
	FBitmapWriteBytes                TDWORD
	FBitmapWritesFlushForLogFileFull TWORD
	FBitmapWritesLazyWriter          TWORD
	FBitmapWritesUserRequest         TWORD
	FBitmapWritesUserLevel           struct {
		FWrite   TWORD
		FCreate  TWORD
		FSetInfo TWORD
	}
	FMftBitmapReads                     TDWORD
	FMftBitmapReadBytes                 TDWORD
	FMftBitmapWrites                    TDWORD
	FMftBitmapWriteBytes                TDWORD
	FMftBitmapWritesFlushForLogFileFull TWORD
	FMftBitmapWritesLazyWriter          TWORD
	FMftBitmapWritesUserRequest         TWORD
	FMftBitmapWritesUserLevel           struct {
		FWrite   TWORD
		FCreate  TWORD
		FSetInfo TWORD
		FFlush   TWORD
	}
	FUserIndexReads      TDWORD
	FUserIndexReadBytes  TDWORD
	FUserIndexWrites     TDWORD
	FUserIndexWriteBytes TDWORD
	FLogFileReads        TDWORD
	FLogFileReadBytes    TDWORD
	FLogFileWrites       TDWORD
	FLogFileWriteBytes   TDWORD
	FAllocate            struct {
		FCalls             TDWORD
		FClusters          TDWORD
		FHints             TDWORD
		FRunsReturned      TDWORD
		FHintsHonored      TDWORD
		FHintsClusters     TDWORD
		FCache             TDWORD
		FCacheClusters     TDWORD
		FCacheMiss         TDWORD
		FCacheMissClusters TDWORD
	}
}

type TNTSTATUS = int32

type TNT_TIB32 = struct {
	FExceptionList TDWORD
	FStackBase     TDWORD
	FStackLimit    TDWORD
	FSubSystemTib  TDWORD
	F__ccgo4_16    struct {
		FVersion   [0]TDWORD
		FFiberData TDWORD
	}
	FArbitraryUserPointer TDWORD
	FSelf                 TDWORD
}

type TNUMA_NODE_RELATIONSHIP = struct {
	FNodeNumber TDWORD
	FReserved   [20]TBYTE
	FGroupMask  TGROUP_AFFINITY
}

type TNUMBERFMT = struct {
	FNumDigits     TUINT
	FLeadingZero   TUINT
	FGrouping      TUINT
	FlpDecimalSep  TLPSTR
	FlpThousandSep TLPSTR
	FNegativeOrder TUINT
}

type TNUMBERFMTA = struct {
	FNumDigits     TUINT
	FLeadingZero   TUINT
	FGrouping      TUINT
	FlpDecimalSep  TLPSTR
	FlpThousandSep TLPSTR
	FNegativeOrder TUINT
}

type TNUMBERFMTW = struct {
	FNumDigits     TUINT
	FLeadingZero   TUINT
	FGrouping      TUINT
	FlpDecimalSep  TLPWSTR
	FlpThousandSep TLPWSTR
	FNegativeOrder TUINT
}

type TNUMPARSE = struct {
	FcDig       TINT
	FdwInFlags  TULONG
	FdwOutFlags TULONG
	FcchUsed    TINT
	FnBaseShift TINT
	FnPwr10     TINT
}

type TNWPSTR = uintptr

type TOBJECTDESCRIPTOR = struct {
	FcbSize             TULONG
	Fclsid              TCLSID
	FdwDrawAspect       TDWORD
	Fsizel              TSIZEL
	Fpointl             TPOINTL
	FdwStatus           TDWORD
	FdwFullUserTypeName TDWORD
	FdwSrcOfCopy        TDWORD
}

type TOBJECTID = struct {
	FLineage    TGUID
	FUniquifier TDWORD
}

type TOBJECT_TYPE_LIST = struct {
	FLevel      TWORD
	FSbz        TWORD
	FObjectType uintptr
}

type TOCSP_BASIC_RESPONSE_INFO = struct {
	FdwVersion           TDWORD
	FdwResponderIdChoice TDWORD
	F__ccgo2_8           struct {
		FByKeyResponderId  [0]TCRYPT_HASH_BLOB
		FByNameResponderId TCERT_NAME_BLOB
	}
	FProducedAt      TFILETIME
	FcResponseEntry  TDWORD
	FrgResponseEntry TPOCSP_BASIC_RESPONSE_ENTRY
	FcExtension      TDWORD
	FrgExtension     TPCERT_EXTENSION
}

type TOCSP_BASIC_REVOKED_INFO = struct {
	FRevocationDate  TFILETIME
	FdwCrlReasonCode TDWORD
}

type TOCSP_BASIC_SIGNED_RESPONSE_INFO = struct {
	FToBeSigned    TCRYPT_DER_BLOB
	FSignatureInfo TOCSP_SIGNATURE_INFO
}

type TOCSP_CERT_ID = struct {
	FHashAlgorithm  TCRYPT_ALGORITHM_IDENTIFIER
	FIssuerNameHash TCRYPT_HASH_BLOB
	FIssuerKeyHash  TCRYPT_HASH_BLOB
	FSerialNumber   TCRYPT_INTEGER_BLOB
}

type TOCSP_REQUEST_ENTRY = struct {
	FCertId      TOCSP_CERT_ID
	FcExtension  TDWORD
	FrgExtension TPCERT_EXTENSION
}

type TOCSP_REQUEST_INFO = struct {
	FdwVersion      TDWORD
	FpRequestorName TPCERT_ALT_NAME_ENTRY
	FcRequestEntry  TDWORD
	FrgRequestEntry TPOCSP_REQUEST_ENTRY
	FcExtension     TDWORD
	FrgExtension    TPCERT_EXTENSION
}

type TOCSP_RESPONSE_INFO = struct {
	FdwStatus TDWORD
	FpszObjId TLPSTR
	FValue    TCRYPT_OBJID_BLOB
}

type TOCSP_SIGNATURE_INFO = struct {
	FSignatureAlgorithm TCRYPT_ALGORITHM_IDENTIFIER
	FSignature          TCRYPT_BIT_BLOB
	FcCertEncoded       TDWORD
	FrgCertEncoded      TPCERT_BLOB
}

type TOCSP_SIGNED_REQUEST_INFO = struct {
	FToBeSigned             TCRYPT_DER_BLOB
	FpOptionalSignatureInfo TPOCSP_SIGNATURE_INFO
}

type TOFFER_PRIORITY = int32

type TOFNOTIFY = struct {
	Fhdr     TNMHDR
	FlpOFN   TLPOPENFILENAMEA
	FpszFile TLPSTR
}

type TOFNOTIFYA = struct {
	Fhdr     TNMHDR
	FlpOFN   TLPOPENFILENAMEA
	FpszFile TLPSTR
}

type TOFNOTIFYEX = struct {
	Fhdr   TNMHDR
	FlpOFN TLPOPENFILENAMEA
	Fpsf   TLPVOID
	Fpidl  TLPVOID
}

type TOFNOTIFYEXA = struct {
	Fhdr   TNMHDR
	FlpOFN TLPOPENFILENAMEA
	Fpsf   TLPVOID
	Fpidl  TLPVOID
}

type TOFNOTIFYEXW = struct {
	Fhdr   TNMHDR
	FlpOFN TLPOPENFILENAMEW
	Fpsf   TLPVOID
	Fpidl  TLPVOID
}

type TOFNOTIFYW = struct {
	Fhdr     TNMHDR
	FlpOFN   TLPOPENFILENAMEW
	FpszFile TLPWSTR
}

type TOFSTRUCT = struct {
	FcBytes     TBYTE
	FfFixedDisk TBYTE
	FnErrCode   TWORD
	FReserved1  TWORD
	FReserved2  TWORD
	FszPathName [128]TCHAR
}

type TOGGLEKEYS = TTOGGLEKEYS

type TOIBDG_FLAGS = int32

type TOKEN_ACCESS_INFORMATION = TTOKEN_ACCESS_INFORMATION

const TOKEN_ADJUST_DEFAULT = 128

const TOKEN_ADJUST_GROUPS = 64

const TOKEN_ADJUST_PRIVILEGES = 32

const TOKEN_ADJUST_SESSIONID = 256

const TOKEN_ALL_ACCESS = 983551

const TOKEN_ALL_ACCESS_P = 983295

type TOKEN_APPCONTAINER_INFORMATION = TTOKEN_APPCONTAINER_INFORMATION

const TOKEN_ASSIGN_PRIMARY = 1

type TOKEN_AUDIT_POLICY = TTOKEN_AUDIT_POLICY

type TOKEN_CONTROL = TTOKEN_CONTROL

type TOKEN_DEFAULT_DACL = TTOKEN_DEFAULT_DACL

type TOKEN_DEVICE_CLAIMS = TTOKEN_DEVICE_CLAIMS

const TOKEN_DUPLICATE = 2

type TOKEN_ELEVATION = TTOKEN_ELEVATION

type TOKEN_ELEVATION_TYPE = TTOKEN_ELEVATION_TYPE

const TOKEN_EXECUTE = 131072

type TOKEN_GROUPS = TTOKEN_GROUPS

type TOKEN_GROUPS_AND_PRIVILEGES = TTOKEN_GROUPS_AND_PRIVILEGES

const TOKEN_IMPERSONATE = 4

type TOKEN_INFORMATION_CLASS = TTOKEN_INFORMATION_CLASS

type TOKEN_LINKED_TOKEN = TTOKEN_LINKED_TOKEN

type TOKEN_MANDATORY_LABEL = TTOKEN_MANDATORY_LABEL

type TOKEN_MANDATORY_POLICY = TTOKEN_MANDATORY_POLICY

const TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN = 2

const TOKEN_MANDATORY_POLICY_NO_WRITE_UP = 1

const TOKEN_MANDATORY_POLICY_OFF = 0

const TOKEN_MANDATORY_POLICY_VALID_MASK = 3

type TOKEN_ORIGIN = TTOKEN_ORIGIN

type TOKEN_OWNER = TTOKEN_OWNER

type TOKEN_PRIMARY_GROUP = TTOKEN_PRIMARY_GROUP

type TOKEN_PRIVILEGES = TTOKEN_PRIVILEGES

const TOKEN_QUERY = 8

const TOKEN_QUERY_SOURCE = 16

const TOKEN_READ = 131080

type TOKEN_SOURCE = TTOKEN_SOURCE

const TOKEN_SOURCE_LENGTH = 8

type TOKEN_STATISTICS = TTOKEN_STATISTICS

type TOKEN_TYPE = TTOKEN_TYPE

type TOKEN_USER = TTOKEN_USER

type TOKEN_USER_CLAIMS = TTOKEN_USER_CLAIMS

const TOKEN_WRITE = 131296

type TOLDFONTENUMPROCA = uintptr

type TOLDFONTENUMPROCW = uintptr

type TOLECHAR = uint16

type TOLECLOSE = int32

type TOLECONTF = int32

type TOLEGETMONIKER = int32

type TOLEINPLACEFRAMEINFO = struct {
	Fcb            TUINT
	FfMDIApp       TWINBOOL
	FhwndFrame     THWND
	Fhaccel        THACCEL
	FcAccelEntries TUINT
}

type TOLELINKBIND = int32

type TOLEMENUGROUPWIDTHS = struct {
	Fwidth [6]TLONG
}

type TOLEMISC = int32

type TOLERENDER = int32

type TOLESTREAM = struct {
	Flpstbl TLPOLESTREAMVTBL
}

type TOLESTREAMVTBL = struct {
	FGet uintptr
	FPut uintptr
}

type TOLEUPDATE = int32

type TOLEVERB = struct {
	FlVerb        TLONG
	FlpszVerbName TLPOLESTR
	FfuFlags      TDWORD
	FgrfAttribs   TDWORD
}

type TOLEVERBATTRIB = int32

type TOLEWHICHMK = int32

type TOPENCARDNAME = struct {
	FdwStructSize         TDWORD
	FhwndOwner            THWND
	FhSCardContext        TSCARDCONTEXT
	FlpstrGroupNames      TLPSTR
	FnMaxGroupNames       TDWORD
	FlpstrCardNames       TLPSTR
	FnMaxCardNames        TDWORD
	FrgguidInterfaces     TLPCGUID
	FcguidInterfaces      TDWORD
	FlpstrRdr             TLPSTR
	FnMaxRdr              TDWORD
	FlpstrCard            TLPSTR
	FnMaxCard             TDWORD
	FlpstrTitle           TLPCSTR
	FdwFlags              TDWORD
	FpvUserData           TLPVOID
	FdwShareMode          TDWORD
	FdwPreferredProtocols TDWORD
	FdwActiveProtocol     TDWORD
	FlpfnConnect          TLPOCNCONNPROCA
	FlpfnCheck            TLPOCNCHKPROC
	FlpfnDisconnect       TLPOCNDSCPROC
	FhCardHandle          TSCARDHANDLE
}

type TOPENCARDNAMEA = struct {
	FdwStructSize         TDWORD
	FhwndOwner            THWND
	FhSCardContext        TSCARDCONTEXT
	FlpstrGroupNames      TLPSTR
	FnMaxGroupNames       TDWORD
	FlpstrCardNames       TLPSTR
	FnMaxCardNames        TDWORD
	FrgguidInterfaces     TLPCGUID
	FcguidInterfaces      TDWORD
	FlpstrRdr             TLPSTR
	FnMaxRdr              TDWORD
	FlpstrCard            TLPSTR
	FnMaxCard             TDWORD
	FlpstrTitle           TLPCSTR
	FdwFlags              TDWORD
	FpvUserData           TLPVOID
	FdwShareMode          TDWORD
	FdwPreferredProtocols TDWORD
	FdwActiveProtocol     TDWORD
	FlpfnConnect          TLPOCNCONNPROCA
	FlpfnCheck            TLPOCNCHKPROC
	FlpfnDisconnect       TLPOCNDSCPROC
	FhCardHandle          TSCARDHANDLE
}

type TOPENCARDNAMEW = struct {
	FdwStructSize         TDWORD
	FhwndOwner            THWND
	FhSCardContext        TSCARDCONTEXT
	FlpstrGroupNames      TLPWSTR
	FnMaxGroupNames       TDWORD
	FlpstrCardNames       TLPWSTR
	FnMaxCardNames        TDWORD
	FrgguidInterfaces     TLPCGUID
	FcguidInterfaces      TDWORD
	FlpstrRdr             TLPWSTR
	FnMaxRdr              TDWORD
	FlpstrCard            TLPWSTR
	FnMaxCard             TDWORD
	FlpstrTitle           TLPCWSTR
	FdwFlags              TDWORD
	FpvUserData           TLPVOID
	FdwShareMode          TDWORD
	FdwPreferredProtocols TDWORD
	FdwActiveProtocol     TDWORD
	FlpfnConnect          TLPOCNCONNPROCW
	FlpfnCheck            TLPOCNCHKPROC
	FlpfnDisconnect       TLPOCNDSCPROC
	FhCardHandle          TSCARDHANDLE
}

type TOPENCARDNAME_EX = struct {
	FdwStructSize            TDWORD
	FhSCardContext           TSCARDCONTEXT
	FhwndOwner               THWND
	FdwFlags                 TDWORD
	FlpstrTitle              TLPCSTR
	FlpstrSearchDesc         TLPCSTR
	FhIcon                   THICON
	FpOpenCardSearchCriteria TPOPENCARD_SEARCH_CRITERIAA
	FlpfnConnect             TLPOCNCONNPROCA
	FpvUserData              TLPVOID
	FdwShareMode             TDWORD
	FdwPreferredProtocols    TDWORD
	FlpstrRdr                TLPSTR
	FnMaxRdr                 TDWORD
	FlpstrCard               TLPSTR
	FnMaxCard                TDWORD
	FdwActiveProtocol        TDWORD
	FhCardHandle             TSCARDHANDLE
}

type TOPENCARDNAME_EXA = struct {
	FdwStructSize            TDWORD
	FhSCardContext           TSCARDCONTEXT
	FhwndOwner               THWND
	FdwFlags                 TDWORD
	FlpstrTitle              TLPCSTR
	FlpstrSearchDesc         TLPCSTR
	FhIcon                   THICON
	FpOpenCardSearchCriteria TPOPENCARD_SEARCH_CRITERIAA
	FlpfnConnect             TLPOCNCONNPROCA
	FpvUserData              TLPVOID
	FdwShareMode             TDWORD
	FdwPreferredProtocols    TDWORD
	FlpstrRdr                TLPSTR
	FnMaxRdr                 TDWORD
	FlpstrCard               TLPSTR
	FnMaxCard                TDWORD
	FdwActiveProtocol        TDWORD
	FhCardHandle             TSCARDHANDLE
}

type TOPENCARDNAME_EXW = struct {
	FdwStructSize            TDWORD
	FhSCardContext           TSCARDCONTEXT
	FhwndOwner               THWND
	FdwFlags                 TDWORD
	FlpstrTitle              TLPCWSTR
	FlpstrSearchDesc         TLPCWSTR
	FhIcon                   THICON
	FpOpenCardSearchCriteria TPOPENCARD_SEARCH_CRITERIAW
	FlpfnConnect             TLPOCNCONNPROCW
	FpvUserData              TLPVOID
	FdwShareMode             TDWORD
	FdwPreferredProtocols    TDWORD
	FlpstrRdr                TLPWSTR
	FnMaxRdr                 TDWORD
	FlpstrCard               TLPWSTR
	FnMaxCard                TDWORD
	FdwActiveProtocol        TDWORD
	FhCardHandle             TSCARDHANDLE
}

type TOPENCARD_SEARCH_CRITERIA = struct {
	FdwStructSize         TDWORD
	FlpstrGroupNames      TLPSTR
	FnMaxGroupNames       TDWORD
	FrgguidInterfaces     TLPCGUID
	FcguidInterfaces      TDWORD
	FlpstrCardNames       TLPSTR
	FnMaxCardNames        TDWORD
	FlpfnCheck            TLPOCNCHKPROC
	FlpfnConnect          TLPOCNCONNPROCA
	FlpfnDisconnect       TLPOCNDSCPROC
	FpvUserData           TLPVOID
	FdwShareMode          TDWORD
	FdwPreferredProtocols TDWORD
}

type TOPENCARD_SEARCH_CRITERIAA = struct {
	FdwStructSize         TDWORD
	FlpstrGroupNames      TLPSTR
	FnMaxGroupNames       TDWORD
	FrgguidInterfaces     TLPCGUID
	FcguidInterfaces      TDWORD
	FlpstrCardNames       TLPSTR
	FnMaxCardNames        TDWORD
	FlpfnCheck            TLPOCNCHKPROC
	FlpfnConnect          TLPOCNCONNPROCA
	FlpfnDisconnect       TLPOCNDSCPROC
	FpvUserData           TLPVOID
	FdwShareMode          TDWORD
	FdwPreferredProtocols TDWORD
}

type TOPENCARD_SEARCH_CRITERIAW = struct {
	FdwStructSize         TDWORD
	FlpstrGroupNames      TLPWSTR
	FnMaxGroupNames       TDWORD
	FrgguidInterfaces     TLPCGUID
	FcguidInterfaces      TDWORD
	FlpstrCardNames       TLPWSTR
	FnMaxCardNames        TDWORD
	FlpfnCheck            TLPOCNCHKPROC
	FlpfnConnect          TLPOCNCONNPROCW
	FlpfnDisconnect       TLPOCNDSCPROC
	FpvUserData           TLPVOID
	FdwShareMode          TDWORD
	FdwPreferredProtocols TDWORD
}

type TOPENFILENAME = struct {
	FlStructSize       TDWORD
	FhwndOwner         THWND
	FhInstance         THINSTANCE
	FlpstrFilter       TLPCSTR
	FlpstrCustomFilter TLPSTR
	FnMaxCustFilter    TDWORD
	FnFilterIndex      TDWORD
	FlpstrFile         TLPSTR
	FnMaxFile          TDWORD
	FlpstrFileTitle    TLPSTR
	FnMaxFileTitle     TDWORD
	FlpstrInitialDir   TLPCSTR
	FlpstrTitle        TLPCSTR
	FFlags             TDWORD
	FnFileOffset       TWORD
	FnFileExtension    TWORD
	FlpstrDefExt       TLPCSTR
	FlCustData         TLPARAM
	FlpfnHook          TLPOFNHOOKPROC
	FlpTemplateName    TLPCSTR
	FpvReserved        uintptr
	FdwReserved        TDWORD
	FFlagsEx           TDWORD
}

type TOPENFILENAMEA = struct {
	FlStructSize       TDWORD
	FhwndOwner         THWND
	FhInstance         THINSTANCE
	FlpstrFilter       TLPCSTR
	FlpstrCustomFilter TLPSTR
	FnMaxCustFilter    TDWORD
	FnFilterIndex      TDWORD
	FlpstrFile         TLPSTR
	FnMaxFile          TDWORD
	FlpstrFileTitle    TLPSTR
	FnMaxFileTitle     TDWORD
	FlpstrInitialDir   TLPCSTR
	FlpstrTitle        TLPCSTR
	FFlags             TDWORD
	FnFileOffset       TWORD
	FnFileExtension    TWORD
	FlpstrDefExt       TLPCSTR
	FlCustData         TLPARAM
	FlpfnHook          TLPOFNHOOKPROC
	FlpTemplateName    TLPCSTR
	FpvReserved        uintptr
	FdwReserved        TDWORD
	FFlagsEx           TDWORD
}

type TOPENFILENAMEW = struct {
	FlStructSize       TDWORD
	FhwndOwner         THWND
	FhInstance         THINSTANCE
	FlpstrFilter       TLPCWSTR
	FlpstrCustomFilter TLPWSTR
	FnMaxCustFilter    TDWORD
	FnFilterIndex      TDWORD
	FlpstrFile         TLPWSTR
	FnMaxFile          TDWORD
	FlpstrFileTitle    TLPWSTR
	FnMaxFileTitle     TDWORD
	FlpstrInitialDir   TLPCWSTR
	FlpstrTitle        TLPCWSTR
	FFlags             TDWORD
	FnFileOffset       TWORD
	FnFileExtension    TWORD
	FlpstrDefExt       TLPCWSTR
	FlCustData         TLPARAM
	FlpfnHook          TLPOFNHOOKPROC
	FlpTemplateName    TLPCWSTR
	FpvReserved        uintptr
	FdwReserved        TDWORD
	FFlagsEx           TDWORD
}

type TOPENFILENAME_NT4 = struct {
	FlStructSize       TDWORD
	FhwndOwner         THWND
	FhInstance         THINSTANCE
	FlpstrFilter       TLPCSTR
	FlpstrCustomFilter TLPSTR
	FnMaxCustFilter    TDWORD
	FnFilterIndex      TDWORD
	FlpstrFile         TLPSTR
	FnMaxFile          TDWORD
	FlpstrFileTitle    TLPSTR
	FnMaxFileTitle     TDWORD
	FlpstrInitialDir   TLPCSTR
	FlpstrTitle        TLPCSTR
	FFlags             TDWORD
	FnFileOffset       TWORD
	FnFileExtension    TWORD
	FlpstrDefExt       TLPCSTR
	FlCustData         TLPARAM
	FlpfnHook          TLPOFNHOOKPROC
	FlpTemplateName    TLPCSTR
}

type TOPENFILENAME_NT4A = struct {
	FlStructSize       TDWORD
	FhwndOwner         THWND
	FhInstance         THINSTANCE
	FlpstrFilter       TLPCSTR
	FlpstrCustomFilter TLPSTR
	FnMaxCustFilter    TDWORD
	FnFilterIndex      TDWORD
	FlpstrFile         TLPSTR
	FnMaxFile          TDWORD
	FlpstrFileTitle    TLPSTR
	FnMaxFileTitle     TDWORD
	FlpstrInitialDir   TLPCSTR
	FlpstrTitle        TLPCSTR
	FFlags             TDWORD
	FnFileOffset       TWORD
	FnFileExtension    TWORD
	FlpstrDefExt       TLPCSTR
	FlCustData         TLPARAM
	FlpfnHook          TLPOFNHOOKPROC
	FlpTemplateName    TLPCSTR
}

type TOPENFILENAME_NT4W = struct {
	FlStructSize       TDWORD
	FhwndOwner         THWND
	FhInstance         THINSTANCE
	FlpstrFilter       TLPCWSTR
	FlpstrCustomFilter TLPWSTR
	FnMaxCustFilter    TDWORD
	FnFilterIndex      TDWORD
	FlpstrFile         TLPWSTR
	FnMaxFile          TDWORD
	FlpstrFileTitle    TLPWSTR
	FnMaxFileTitle     TDWORD
	FlpstrInitialDir   TLPCWSTR
	FlpstrTitle        TLPCWSTR
	FFlags             TDWORD
	FnFileOffset       TWORD
	FnFileExtension    TWORD
	FlpstrDefExt       TLPCWSTR
	FlCustData         TLPARAM
	FlpfnHook          TLPOFNHOOKPROC
	FlpTemplateName    TLPCWSTR
}

type TOPEN_PRINTER_PROPS_INFO = struct {
	FdwSize       TDWORD
	FpszSheetName TLPSTR
	FuSheetIndex  TUINT
	FdwFlags      TDWORD
	FbModal       TWINBOOL
}

type TOPEN_PRINTER_PROPS_INFOA = struct {
	FdwSize       TDWORD
	FpszSheetName TLPSTR
	FuSheetIndex  TUINT
	FdwFlags      TDWORD
	FbModal       TWINBOOL
}

type TOPEN_PRINTER_PROPS_INFOW = struct {
	FdwSize       TDWORD
	FpszSheetName TLPWSTR
	FuSheetIndex  TUINT
	FdwFlags      TDWORD
	FbModal       TWINBOOL
}

type TOPEN_VIRTUAL_DISK_FLAG = int32

type TOPEN_VIRTUAL_DISK_PARAMETERS = struct {
	FVersion   TOPEN_VIRTUAL_DISK_VERSION
	F__ccgo1_4 struct {
		FVersion2 [0]struct {
			FGetInfoOnly    TWINBOOL
			FReadOnly       TWINBOOL
			FResiliencyGuid TGUID
		}
		FVersion1 struct {
			FRWDepth TULONG
		}
		F__ccgo_pad2 [20]byte
	}
}

type TOPEN_VIRTUAL_DISK_VERSION = int32

type TOPERATION_END_PARAMETERS = struct {
	FVersion     TULONG
	FOperationId TOPERATION_ID
	FFlags       TULONG
}

type TOPERATION_ID = uint32

type TOPERATION_START_PARAMETERS = struct {
	FVersion     TULONG
	FOperationId TOPERATION_ID
	FFlags       TULONG
}

type TORIENTATION_PREFERENCE = int32

type TOSVERSIONINFO = struct {
	FdwOSVersionInfoSize TDWORD
	FdwMajorVersion      TDWORD
	FdwMinorVersion      TDWORD
	FdwBuildNumber       TDWORD
	FdwPlatformId        TDWORD
	FszCSDVersion        [128]TCHAR
}

type TOSVERSIONINFOA = struct {
	FdwOSVersionInfoSize TDWORD
	FdwMajorVersion      TDWORD
	FdwMinorVersion      TDWORD
	FdwBuildNumber       TDWORD
	FdwPlatformId        TDWORD
	FszCSDVersion        [128]TCHAR
}

type TOSVERSIONINFOEX = struct {
	FdwOSVersionInfoSize TDWORD
	FdwMajorVersion      TDWORD
	FdwMinorVersion      TDWORD
	FdwBuildNumber       TDWORD
	FdwPlatformId        TDWORD
	FszCSDVersion        [128]TCHAR
	FwServicePackMajor   TWORD
	FwServicePackMinor   TWORD
	FwSuiteMask          TWORD
	FwProductType        TBYTE
	FwReserved           TBYTE
}

type TOSVERSIONINFOEXA = struct {
	FdwOSVersionInfoSize TDWORD
	FdwMajorVersion      TDWORD
	FdwMinorVersion      TDWORD
	FdwBuildNumber       TDWORD
	FdwPlatformId        TDWORD
	FszCSDVersion        [128]TCHAR
	FwServicePackMajor   TWORD
	FwServicePackMinor   TWORD
	FwSuiteMask          TWORD
	FwProductType        TBYTE
	FwReserved           TBYTE
}

type TOSVERSIONINFOEXW = struct {
	FdwOSVersionInfoSize TDWORD
	FdwMajorVersion      TDWORD
	FdwMinorVersion      TDWORD
	FdwBuildNumber       TDWORD
	FdwPlatformId        TDWORD
	FszCSDVersion        [128]TWCHAR
	FwServicePackMajor   TWORD
	FwServicePackMinor   TWORD
	FwSuiteMask          TWORD
	FwProductType        TBYTE
	FwReserved           TBYTE
}

type TOSVERSIONINFOW = struct {
	FdwOSVersionInfoSize TDWORD
	FdwMajorVersion      TDWORD
	FdwMinorVersion      TDWORD
	FdwBuildNumber       TDWORD
	FdwPlatformId        TDWORD
	FszCSDVersion        [128]TWCHAR
}

const TOUCHEVENTF_DOWN = 2

const TOUCHEVENTF_INRANGE = 8

const TOUCHEVENTF_MOVE = 1

const TOUCHEVENTF_NOCOALESCE = 32

const TOUCHEVENTF_PALM = 128

const TOUCHEVENTF_PEN = 64

const TOUCHEVENTF_PRIMARY = 16

const TOUCHEVENTF_UP = 4

type TOUCHINPUT = TTOUCHINPUT

const TOUCHINPUTMASKF_CONTACTAREA = 4

const TOUCHINPUTMASKF_EXTRAINFO = 2

const TOUCHINPUTMASKF_TIMEFROMSYSTEM = 1

type TOUCHPREDICTIONPARAMETERS = TTOUCHPREDICTIONPARAMETERS

const TOUCHPREDICTIONPARAMETERS_DEFAULT_LATENCY = 8

const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_DELTA = 0

const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_EXPO_SMOOTH_ALPHA = 0

const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_LEARNING_RATE = 0

const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MAX = 0

const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MIN = 0

const TOUCHPREDICTIONPARAMETERS_DEFAULT_SAMPLETIME = 8

const TOUCHPREDICTIONPARAMETERS_DEFAULT_USE_HW_TIMESTAMP = 1

const TOUCH_FEEDBACK_DEFAULT = 1

const TOUCH_FEEDBACK_INDIRECT = 2

const TOUCH_FEEDBACK_NONE = 3

type TOUCH_FLAGS = TTOUCH_FLAGS

const TOUCH_FLAG_NONE = 0

const TOUCH_HIT_TESTING_CLIENT = 1

const TOUCH_HIT_TESTING_DEFAULT = 0

type TOUCH_HIT_TESTING_INPUT = TTOUCH_HIT_TESTING_INPUT

const TOUCH_HIT_TESTING_NONE = 2

const TOUCH_HIT_TESTING_PROXIMITY_CLOSEST = 0

type TOUCH_HIT_TESTING_PROXIMITY_EVALUATION = TTOUCH_HIT_TESTING_PROXIMITY_EVALUATION

const TOUCH_HIT_TESTING_PROXIMITY_FARTHEST = 4095

type TOUCH_MASK = TTOUCH_MASK

const TOUCH_MASK_CONTACTAREA = 1

const TOUCH_MASK_NONE = 0

const TOUCH_MASK_ORIENTATION = 2

const TOUCH_MASK_PRESSURE = 4

type TOUTLINETEXTMETRIC = struct {
	FotmSize                TUINT
	FotmTextMetrics         TTEXTMETRICA
	FotmFiller              TBYTE
	FotmPanoseNumber        TPANOSE
	FotmfsSelection         TUINT
	FotmfsType              TUINT
	FotmsCharSlopeRise      int32
	FotmsCharSlopeRun       int32
	FotmItalicAngle         int32
	FotmEMSquare            TUINT
	FotmAscent              int32
	FotmDescent             int32
	FotmLineGap             TUINT
	FotmsCapEmHeight        TUINT
	FotmsXHeight            TUINT
	FotmrcFontBox           TRECT
	FotmMacAscent           int32
	FotmMacDescent          int32
	FotmMacLineGap          TUINT
	FotmusMinimumPPEM       TUINT
	FotmptSubscriptSize     TPOINT
	FotmptSubscriptOffset   TPOINT
	FotmptSuperscriptSize   TPOINT
	FotmptSuperscriptOffset TPOINT
	FotmsStrikeoutSize      TUINT
	FotmsStrikeoutPosition  int32
	FotmsUnderscoreSize     int32
	FotmsUnderscorePosition int32
	FotmpFamilyName         TPSTR
	FotmpFaceName           TPSTR
	FotmpStyleName          TPSTR
	FotmpFullName           TPSTR
}

type TOUTLINETEXTMETRICA = struct {
	FotmSize                TUINT
	FotmTextMetrics         TTEXTMETRICA
	FotmFiller              TBYTE
	FotmPanoseNumber        TPANOSE
	FotmfsSelection         TUINT
	FotmfsType              TUINT
	FotmsCharSlopeRise      int32
	FotmsCharSlopeRun       int32
	FotmItalicAngle         int32
	FotmEMSquare            TUINT
	FotmAscent              int32
	FotmDescent             int32
	FotmLineGap             TUINT
	FotmsCapEmHeight        TUINT
	FotmsXHeight            TUINT
	FotmrcFontBox           TRECT
	FotmMacAscent           int32
	FotmMacDescent          int32
	FotmMacLineGap          TUINT
	FotmusMinimumPPEM       TUINT
	FotmptSubscriptSize     TPOINT
	FotmptSubscriptOffset   TPOINT
	FotmptSuperscriptSize   TPOINT
	FotmptSuperscriptOffset TPOINT
	FotmsStrikeoutSize      TUINT
	FotmsStrikeoutPosition  int32
	FotmsUnderscoreSize     int32
	FotmsUnderscorePosition int32
	FotmpFamilyName         TPSTR
	FotmpFaceName           TPSTR
	FotmpStyleName          TPSTR
	FotmpFullName           TPSTR
}

type TOUTLINETEXTMETRICW = struct {
	FotmSize                TUINT
	FotmTextMetrics         TTEXTMETRICW
	FotmFiller              TBYTE
	FotmPanoseNumber        TPANOSE
	FotmfsSelection         TUINT
	FotmfsType              TUINT
	FotmsCharSlopeRise      int32
	FotmsCharSlopeRun       int32
	FotmItalicAngle         int32
	FotmEMSquare            TUINT
	FotmAscent              int32
	FotmDescent             int32
	FotmLineGap             TUINT
	FotmsCapEmHeight        TUINT
	FotmsXHeight            TUINT
	FotmrcFontBox           TRECT
	FotmMacAscent           int32
	FotmMacDescent          int32
	FotmMacLineGap          TUINT
	FotmusMinimumPPEM       TUINT
	FotmptSubscriptSize     TPOINT
	FotmptSubscriptOffset   TPOINT
	FotmptSuperscriptSize   TPOINT
	FotmptSuperscriptOffset TPOINT
	FotmsStrikeoutSize      TUINT
	FotmsStrikeoutPosition  int32
	FotmsUnderscoreSize     int32
	FotmsUnderscorePosition int32
	FotmpFamilyName         TPSTR
	FotmpFaceName           TPSTR
	FotmpStyleName          TPSTR
	FotmpFullName           TPSTR
}

type TOUTPUT_DEBUG_STRING_INFO = struct {
	FlpDebugStringData  TLPSTR
	FfUnicode           TWORD
	FnDebugStringLength TWORD
}

type TOVERLAPPED_ENTRY = struct {
	FlpCompletionKey            TULONG_PTR
	FlpOverlapped               TLPOVERLAPPED
	FInternal                   TULONG_PTR
	FdwNumberOfBytesTransferred TDWORD
}

type TPABC = uintptr

type TPABCFLOAT = uintptr

type TPACCESS_ALLOWED_ACE = uintptr

type TPACCESS_ALLOWED_CALLBACK_ACE = uintptr

type TPACCESS_ALLOWED_CALLBACK_OBJECT_ACE = uintptr

type TPACCESS_ALLOWED_OBJECT_ACE = uintptr

type TPACCESS_DENIED_ACE = uintptr

type TPACCESS_DENIED_CALLBACK_ACE = uintptr

type TPACCESS_DENIED_CALLBACK_OBJECT_ACE = uintptr

type TPACCESS_DENIED_OBJECT_ACE = uintptr

type TPACCESS_MASK = uintptr

type TPACCESS_REASONS = uintptr

type TPACCESS_TOKEN = uintptr

type TPACE_HEADER = uintptr

type TPACKEDEVENTINFO = struct {
	FulSize                TDWORD
	FulNumEventsForLogFile TDWORD
}

type TPACL = uintptr

type TPACL_REVISION_INFORMATION = uintptr

type TPACL_SIZE_INFORMATION = uintptr

type TPACTCTX = uintptr

type TPACTCTXA = uintptr

type TPACTCTXW = uintptr

type TPACTCTX_SECTION_KEYED_DATA = uintptr

type TPACTCTX_SECTION_KEYED_DATA_2600 = uintptr

type TPACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = uintptr

type TPACTION_HEADER = uintptr

type TPACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = uintptr

type TPACTIVATION_CONTEXT_BASIC_INFORMATION = uintptr

type TPACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = uintptr

type TPACTIVATION_CONTEXT_DETAILED_INFORMATION = uintptr

type TPACTIVATION_CONTEXT_QUERY_INDEX = uintptr

type TPACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = uintptr

type TPADAPTER_STATUS = uintptr

type TPADDJOB_INFO_1 = uintptr

type TPADDJOB_INFO_1A = uintptr

type TPADDJOB_INFO_1W = uintptr

type TPADMINISTRATOR_POWER_POLICY = uintptr

type TPAGESETUPDLG = struct {
	FlStructSize             TDWORD
	FhwndOwner               THWND
	FhDevMode                THGLOBAL
	FhDevNames               THGLOBAL
	FFlags                   TDWORD
	FptPaperSize             TPOINT
	FrtMinMargin             TRECT
	FrtMargin                TRECT
	FhInstance               THINSTANCE
	FlCustData               TLPARAM
	FlpfnPageSetupHook       TLPPAGESETUPHOOK
	FlpfnPagePaintHook       TLPPAGEPAINTHOOK
	FlpPageSetupTemplateName TLPCSTR
	FhPageSetupTemplate      THGLOBAL
}

type TPAGESETUPDLGA = struct {
	FlStructSize             TDWORD
	FhwndOwner               THWND
	FhDevMode                THGLOBAL
	FhDevNames               THGLOBAL
	FFlags                   TDWORD
	FptPaperSize             TPOINT
	FrtMinMargin             TRECT
	FrtMargin                TRECT
	FhInstance               THINSTANCE
	FlCustData               TLPARAM
	FlpfnPageSetupHook       TLPPAGESETUPHOOK
	FlpfnPagePaintHook       TLPPAGEPAINTHOOK
	FlpPageSetupTemplateName TLPCSTR
	FhPageSetupTemplate      THGLOBAL
}

type TPAGESETUPDLGW = struct {
	FlStructSize             TDWORD
	FhwndOwner               THWND
	FhDevMode                THGLOBAL
	FhDevNames               THGLOBAL
	FFlags                   TDWORD
	FptPaperSize             TPOINT
	FrtMinMargin             TRECT
	FrtMargin                TRECT
	FhInstance               THINSTANCE
	FlCustData               TLPARAM
	FlpfnPageSetupHook       TLPPAGESETUPHOOK
	FlpfnPagePaintHook       TLPPAGEPAINTHOOK
	FlpPageSetupTemplateName TLPCWSTR
	FhPageSetupTemplate      THGLOBAL
}

type TPAINTSTRUCT = struct {
	Fhdc         THDC
	FfErase      TWINBOOL
	FrcPaint     TRECT
	FfRestore    TWINBOOL
	FfIncUpdate  TWINBOOL
	FrgbReserved [32]TBYTE
}

type TPALETTEENTRY = struct {
	FpeRed   TBYTE
	FpeGreen TBYTE
	FpeBlue  TBYTE
	FpeFlags TBYTE
}

type TPALTTABINFO = uintptr

type TPANOSE = struct {
	FbFamilyType      TBYTE
	FbSerifStyle      TBYTE
	FbWeight          TBYTE
	FbProportion      TBYTE
	FbContrast        TBYTE
	FbStrokeVariation TBYTE
	FbArmStyle        TBYTE
	FbLetterform      TBYTE
	FbMidline         TBYTE
	FbXHeight         TBYTE
}

type TPAPCFUNC = uintptr

type TPAPPBARDATA = uintptr

type TPAPPLICATIONLAUNCH_SETTING_VALUE = uintptr

type TPAPPLY_SNAPSHOT_VHDSET_FLAG = uintptr

type TPAPPLY_SNAPSHOT_VHDSET_PARAMETERS = uintptr

type TPAPP_MEMORY_INFORMATION = uintptr

type TPARAMDATA = struct {
	FszName uintptr
	Fvt     TVARTYPE
}

type TPARAMDESC = struct {
	Fpparamdescex TLPPARAMDESCEX
	FwParamFlags  TUSHORT
}

type TPARAM_OFFSETTABLE = uintptr

type TPARRAY_INFO = uintptr

type TPARSEACTION = int32

type TPARTITION_INFORMATION_MBR = struct {
	FPartitionType       TBYTE
	FBootIndicator       TBOOLEAN
	FRecognizedPartition TBOOLEAN
	FHiddenSectors       TDWORD
	FPartitionId         TGUID
}

type TPARTITION_STYLE = int32

type TPAR_STATE = uintptr

type TPASSEMBLY_FILE_DETAILED_INFORMATION = uintptr

type TPATCHARRAY = [128]TWORD

type TPATHNAME_BUFFER = struct {
	FPathNameLength TDWORD
	FName           [1]TWCHAR
}

type TPATTACH_VIRTUAL_DISK_PARAMETERS = uintptr

type TPATTERN = struct {
	FlbStyle TUINT
	FlbColor TCOLORREF
	FlbHatch TULONG_PTR
}

type TPAUDIT_EVENT_TYPE = uintptr

type TPAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA = uintptr

type TPAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS = uintptr

type TPAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA = uintptr

type TPAUXCAPS = uintptr

type TPAUXCAPS2 = uintptr

type TPAUXCAPS2A = uintptr

type TPAUXCAPS2W = uintptr

type TPAUXCAPSA = uintptr

type TPAUXCAPSW = uintptr

type TPAXESLIST = uintptr

type TPAXESLISTA = uintptr

type TPAXESLISTW = uintptr

type TPAXISINFO = uintptr

type TPAXISINFOA = uintptr

type TPAXISINFOW = uintptr

type TPBAD_MEMORY_CALLBACK_ROUTINE = uintptr

type TPBAD_TRACK_NUMBER = uintptr

type TPBATTERY_REPORTING_SCALE = uintptr

type TPBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = uintptr

type TPBCRYPT_DH_KEY_BLOB = uintptr

type TPBCRYPT_DSA_KEY_BLOB = uintptr

type TPBCRYPT_DSA_KEY_BLOB_V2 = uintptr

type TPBCRYPT_ECCKEY_BLOB = uintptr

type TPBCRYPT_INTERFACE_VERSION = uintptr

type TPBCRYPT_KEY_DATA_BLOB_HEADER = uintptr

type TPBCryptBuffer = uintptr

type TPBCryptBufferDesc = uintptr

type TPBIDI_DATA = uintptr

type TPBIDI_REQUEST_CONTAINER = uintptr

type TPBIDI_REQUEST_DATA = uintptr

type TPBIDI_RESPONSE_CONTAINER = uintptr

type TPBIDI_RESPONSE_DATA = uintptr

type TPBINARY_CONTAINER = uintptr

type TPBIN_COUNT = uintptr

type TPBIN_RANGE = uintptr

type TPBIN_RESULTS = uintptr

type TPBITMAP = uintptr

type TPBITMAPCOREHEADER = uintptr

type TPBITMAPCOREINFO = uintptr

type TPBITMAPFILEHEADER = uintptr

type TPBITMAPINFO = uintptr

type TPBITMAPINFOHEADER = uintptr

type TPBITMAPV4HEADER = uintptr

type TPBITMAPV5HEADER = uintptr

type TPBLENDFUNCTION = uintptr

type TPBOOL = uintptr

type TPBOOLEAN = uintptr

type TPBOOT_AREA_INFO = uintptr

type TPBSMINFO = uintptr

type TPBULK_SECURITY_TEST_DATA = uintptr

type TPBYTE = uintptr

type TPBY_HANDLE_FILE_INFORMATION = uintptr

type TPCACHE_DESCRIPTOR = uintptr

type TPCACHE_RELATIONSHIP = uintptr

type TPCACTCTX = uintptr

type TPCACTCTXA = uintptr

type TPCACTCTXW = uintptr

type TPCACTCTX_SECTION_KEYED_DATA = uintptr

type TPCACTCTX_SECTION_KEYED_DATA_2600 = uintptr

type TPCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = uintptr

type TPCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = uintptr

type TPCACTIVATION_CONTEXT_BASIC_INFORMATION = uintptr

type TPCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = uintptr

type TPCACTIVATION_CONTEXT_DETAILED_INFORMATION = uintptr

type TPCACTIVATION_CONTEXT_QUERY_INDEX = uintptr

type TPCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = uintptr

type TPCANDIDATEFORM = uintptr

type TPCANDIDATELIST = uintptr

type TPCASSEMBLY_FILE_DETAILED_INFORMATION = uintptr

type TPCCERT_CHAIN_CONTEXT = uintptr

type TPCCERT_CHAIN_ELEMENT = uintptr

type TPCCERT_CONTEXT = uintptr

type TPCCERT_CRL_CONTEXT_PAIR = uintptr

type TPCCERT_ENHKEY_USAGE = uintptr

type TPCCERT_EXTENSION = uintptr

type TPCCERT_SELECT_CHAIN_PARA = uintptr

type TPCCERT_SELECT_CRITERIA = uintptr

type TPCCERT_SERVER_OCSP_RESPONSE_CONTEXT = uintptr

type TPCCERT_SIMPLE_CHAIN = uintptr

type TPCCERT_STORE_PROV_FIND_INFO = uintptr

type TPCCERT_STRONG_SIGN_PARA = uintptr

type TPCCH = uintptr

type TPCCOMPATIBILITY_CONTEXT_ELEMENT = uintptr

type TPCCRL_CONTEXT = uintptr

type TPCCRYPT_OID_INFO = uintptr

type TPCCTL_CONTEXT = uintptr

type TPCCTL_USAGE = uintptr

type TPCERT_ACCESS_DESCRIPTION = uintptr

type TPCERT_ALT_NAME_ENTRY = uintptr

type TPCERT_ALT_NAME_INFO = uintptr

type TPCERT_AUTHORITY_INFO_ACCESS = uintptr

type TPCERT_AUTHORITY_KEY_ID2_INFO = uintptr

type TPCERT_AUTHORITY_KEY_ID_INFO = uintptr

type TPCERT_BASIC_CONSTRAINTS2_INFO = uintptr

type TPCERT_BASIC_CONSTRAINTS_INFO = uintptr

type TPCERT_BIOMETRIC_DATA = uintptr

type TPCERT_BIOMETRIC_EXT_INFO = uintptr

type TPCERT_BLOB = uintptr

type TPCERT_CHAIN = uintptr

type TPCERT_CHAIN_CONTEXT = uintptr

type TPCERT_CHAIN_ELEMENT = uintptr

type TPCERT_CHAIN_ENGINE_CONFIG = uintptr

type TPCERT_CHAIN_FIND_BY_ISSUER_PARA = uintptr

type TPCERT_CHAIN_FIND_ISSUER_PARA = uintptr

type TPCERT_CHAIN_PARA = uintptr

type TPCERT_CHAIN_POLICY_PARA = uintptr

type TPCERT_CHAIN_POLICY_STATUS = uintptr

type TPCERT_CONTEXT = uintptr

type TPCERT_CREATE_CONTEXT_PARA = uintptr

type TPCERT_CRL_CONTEXT_PAIR = uintptr

type TPCERT_DH_PARAMETERS = uintptr

type TPCERT_DSS_PARAMETERS = uintptr

type TPCERT_ECC_SIGNATURE = uintptr

type TPCERT_ENHKEY_USAGE = uintptr

type TPCERT_EXTENSION = uintptr

type TPCERT_EXTENSIONS = uintptr

type TPCERT_GENERAL_SUBTREE = uintptr

type TPCERT_HASHED_URL = uintptr

type TPCERT_ID = uintptr

type TPCERT_INFO = uintptr

type TPCERT_ISSUER_SERIAL_NUMBER = uintptr

type TPCERT_KEYGEN_REQUEST_INFO = uintptr

type TPCERT_KEY_ATTRIBUTES_INFO = uintptr

type TPCERT_KEY_CONTEXT = uintptr

type TPCERT_KEY_USAGE_RESTRICTION_INFO = uintptr

type TPCERT_LDAP_STORE_OPENED_PARA = uintptr

type TPCERT_LOGOTYPE_AUDIO = uintptr

type TPCERT_LOGOTYPE_AUDIO_INFO = uintptr

type TPCERT_LOGOTYPE_DATA = uintptr

type TPCERT_LOGOTYPE_DETAILS = uintptr

type TPCERT_LOGOTYPE_EXT_INFO = uintptr

type TPCERT_LOGOTYPE_IMAGE = uintptr

type TPCERT_LOGOTYPE_IMAGE_INFO = uintptr

type TPCERT_LOGOTYPE_INFO = uintptr

type TPCERT_LOGOTYPE_REFERENCE = uintptr

type TPCERT_NAME_BLOB = uintptr

type TPCERT_NAME_CONSTRAINTS_INFO = uintptr

type TPCERT_NAME_INFO = uintptr

type TPCERT_NAME_VALUE = uintptr

type TPCERT_OR_CRL_BLOB = uintptr

type TPCERT_OR_CRL_BUNDLE = uintptr

type TPCERT_OTHER_LOGOTYPE_INFO = uintptr

type TPCERT_OTHER_NAME = uintptr

type TPCERT_PAIR = uintptr

type TPCERT_PHYSICAL_STORE_INFO = uintptr

type TPCERT_POLICIES_INFO = uintptr

type TPCERT_POLICY95_QUALIFIER1 = uintptr

type TPCERT_POLICY_CONSTRAINTS_INFO = uintptr

type TPCERT_POLICY_ID = uintptr

type TPCERT_POLICY_INFO = uintptr

type TPCERT_POLICY_MAPPING = uintptr

type TPCERT_POLICY_MAPPINGS_INFO = uintptr

type TPCERT_POLICY_QUALIFIER_INFO = uintptr

type TPCERT_POLICY_QUALIFIER_NOTICE_REFERENCE = uintptr

type TPCERT_POLICY_QUALIFIER_USER_NOTICE = uintptr

type TPCERT_PRIVATE_KEY_VALIDITY = uintptr

type TPCERT_PUBLIC_KEY_INFO = uintptr

type TPCERT_QC_STATEMENT = uintptr

type TPCERT_QC_STATEMENTS_EXT_INFO = uintptr

type TPCERT_RDN = uintptr

type TPCERT_RDN_ATTR = uintptr

type TPCERT_RDN_VALUE_BLOB = uintptr

type TPCERT_REGISTRY_STORE_CLIENT_GPT_PARA = uintptr

type TPCERT_REGISTRY_STORE_ROAMING_PARA = uintptr

type TPCERT_REQUEST_INFO = uintptr

type TPCERT_REVOCATION_CHAIN_PARA = uintptr

type TPCERT_REVOCATION_CRL_INFO = uintptr

type TPCERT_REVOCATION_INFO = uintptr

type TPCERT_REVOCATION_PARA = uintptr

type TPCERT_REVOCATION_STATUS = uintptr

type TPCERT_SELECT_CHAIN_PARA = uintptr

type TPCERT_SELECT_CRITERIA = uintptr

type TPCERT_SERVER_OCSP_RESPONSE_CONTEXT = uintptr

type TPCERT_SERVER_OCSP_RESPONSE_OPEN_PARA = uintptr

type TPCERT_SIGNED_CONTENT_INFO = uintptr

type TPCERT_SIMPLE_CHAIN = uintptr

type TPCERT_STORE_PROV_FIND_INFO = uintptr

type TPCERT_STORE_PROV_INFO = uintptr

type TPCERT_STRONG_SIGN_PARA = uintptr

type TPCERT_STRONG_SIGN_SERIALIZED_INFO = uintptr

type TPCERT_SUBJECT_INFO_ACCESS = uintptr

type TPCERT_SUPPORTED_ALGORITHM_INFO = uintptr

type TPCERT_SYSTEM_STORE_INFO = uintptr

type TPCERT_SYSTEM_STORE_RELOCATE_PARA = uintptr

type TPCERT_TEMPLATE_EXT = uintptr

type TPCERT_TPM_SPECIFICATION_INFO = uintptr

type TPCERT_TRUST_LIST_INFO = uintptr

type TPCERT_TRUST_STATUS = uintptr

type TPCERT_USAGE_MATCH = uintptr

type TPCERT_X942_DH_PARAMETERS = uintptr

type TPCERT_X942_DH_VALIDATION_PARAMS = uintptr

type TPCFG_CALL_TARGET_INFO = uintptr

type TPCGESTUREINFO = uintptr

type TPCH = uintptr

type TPCHANGEFILTERSTRUCT = uintptr

type TPCHANGER_DEVICE_PROBLEM_TYPE = uintptr

type TPCHANGER_ELEMENT = uintptr

type TPCHANGER_ELEMENT_LIST = uintptr

type TPCHANGER_ELEMENT_STATUS = uintptr

type TPCHANGER_ELEMENT_STATUS_EX = uintptr

type TPCHANGER_EXCHANGE_MEDIUM = uintptr

type TPCHANGER_INITIALIZE_ELEMENT_STATUS = uintptr

type TPCHANGER_MOVE_MEDIUM = uintptr

type TPCHANGER_PRODUCT_DATA = uintptr

type TPCHANGER_READ_ELEMENT_STATUS = uintptr

type TPCHANGER_SEND_VOLUME_TAG_INFORMATION = uintptr

type TPCHANGER_SET_ACCESS = uintptr

type TPCHANGER_SET_POSITION = uintptr

type TPCHAR = uintptr

type TPCHARSETINFO = uintptr

type TPCHAR_INFO = uintptr

type TPCIMAGE_DELAYLOAD_DESCRIPTOR = uintptr

type TPCLAIMS_BLOB = uintptr

type TPCLAIM_SECURITY_ATTRIBUTES_INFORMATION = uintptr

type TPCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = uintptr

type TPCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = uintptr

type TPCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = uintptr

type TPCLAIM_SECURITY_ATTRIBUTE_V1 = uintptr

type TPCLASS_MEDIA_CHANGE_CONTEXT = uintptr

type TPCMC_ADD_ATTRIBUTES_INFO = uintptr

type TPCMC_ADD_EXTENSIONS_INFO = uintptr

type TPCMC_DATA_INFO = uintptr

type TPCMC_PEND_INFO = uintptr

type TPCMC_RESPONSE_INFO = uintptr

type TPCMC_STATUS_INFO = uintptr

type TPCMC_TAGGED_ATTRIBUTE = uintptr

type TPCMC_TAGGED_CERT_REQUEST = uintptr

type TPCMC_TAGGED_CONTENT_INFO = uintptr

type TPCMC_TAGGED_OTHER_MSG = uintptr

type TPCMC_TAGGED_REQUEST = uintptr

type TPCMSG_ATTR = uintptr

type TPCMSG_CMS_RECIPIENT_INFO = uintptr

type TPCMSG_CMS_SIGNER_INFO = uintptr

type TPCMSG_CNG_CONTENT_DECRYPT_INFO = uintptr

type TPCMSG_CONTENT_ENCRYPT_INFO = uintptr

type TPCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = uintptr

type TPCMSG_CTRL_DECRYPT_PARA = uintptr

type TPCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = uintptr

type TPCMSG_CTRL_KEY_AGREE_DECRYPT_PARA = uintptr

type TPCMSG_CTRL_KEY_TRANS_DECRYPT_PARA = uintptr

type TPCMSG_CTRL_MAIL_LIST_DECRYPT_PARA = uintptr

type TPCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = uintptr

type TPCMSG_ENCRYPTED_ENCODE_INFO = uintptr

type TPCMSG_ENVELOPED_ENCODE_INFO = uintptr

type TPCMSG_HASHED_ENCODE_INFO = uintptr

type TPCMSG_KEY_AGREE_ENCRYPT_INFO = uintptr

type TPCMSG_KEY_AGREE_KEY_ENCRYPT_INFO = uintptr

type TPCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = uintptr

type TPCMSG_KEY_AGREE_RECIPIENT_INFO = uintptr

type TPCMSG_KEY_TRANS_ENCRYPT_INFO = uintptr

type TPCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = uintptr

type TPCMSG_KEY_TRANS_RECIPIENT_INFO = uintptr

type TPCMSG_MAIL_LIST_ENCRYPT_INFO = uintptr

type TPCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = uintptr

type TPCMSG_MAIL_LIST_RECIPIENT_INFO = uintptr

type TPCMSG_RC2_AUX_INFO = uintptr

type TPCMSG_RC4_AUX_INFO = uintptr

type TPCMSG_RECIPIENT_ENCODE_INFO = uintptr

type TPCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = uintptr

type TPCMSG_RECIPIENT_ENCRYPTED_KEY_INFO = uintptr

type TPCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = uintptr

type TPCMSG_SIGNED_ENCODE_INFO = uintptr

type TPCMSG_SIGNER_ENCODE_INFO = uintptr

type TPCMSG_SIGNER_INFO = uintptr

type TPCMSG_SP3_COMPATIBLE_AUX_INFO = uintptr

type TPCMSG_STREAM_INFO = uintptr

type TPCMS_DH_KEY_INFO = uintptr

type TPCMS_KEY_INFO = uintptr

type TPCMWAVEFORMAT = struct {
	Fwf             TWAVEFORMAT
	FwBitsPerSample TWORD
}

type TPCM_POWER_DATA = uintptr

type TPCNZCH = uintptr

type TPCNZTCH = uintptr

type TPCNZWCH = uintptr

type TPCOLORADJUSTMENT = uintptr

type TPCOMBOBOXINFO = uintptr

type TPCOMPACT_VIRTUAL_DISK_PARAMETERS = uintptr

type TPCOMPAREITEMSTRUCT = uintptr

type TPCOMPARTMENT_ID = uintptr

type TPCOMPATIBILITY_CONTEXT_ELEMENT = uintptr

type TPCOMPONENT_FILTER = uintptr

type TPCOMPOSITIONFORM = uintptr

type TPCONDITION_VARIABLE = uintptr

type TPCONSOLE_CURSOR_INFO = uintptr

type TPCONSOLE_FONT_INFO = uintptr

type TPCONSOLE_FONT_INFOEX = uintptr

type TPCONSOLE_HISTORY_INFO = uintptr

type TPCONSOLE_READCONSOLE_CONTROL = uintptr

type TPCONSOLE_SCREEN_BUFFER_INFO = uintptr

type TPCONSOLE_SCREEN_BUFFER_INFOEX = uintptr

type TPCONSOLE_SELECTION_INFO = uintptr

type TPCONTEXT = uintptr

type TPCONVCONTEXT = uintptr

type TPCONVINFO = uintptr

type TPCOORD = uintptr

type TPCOPYDATASTRUCT = uintptr

type TPCOPYFILE2_PROGRESS_ROUTINE = uintptr

type TPCORE_PRINTER_DRIVER = uintptr

type TPCORE_PRINTER_DRIVERA = uintptr

type TPCORE_PRINTER_DRIVERW = uintptr

type TPCPS_URLS = uintptr

type TPCRAWINPUTDEVICE = uintptr

type TPCREATEFILE2_EXTENDED_PARAMETERS = uintptr

type TPCREATE_DISK = uintptr

type TPCREATE_DISK_GPT = uintptr

type TPCREATE_DISK_MBR = uintptr

type TPCREATE_USN_JOURNAL_DATA = uintptr

type TPCREATE_VIRTUAL_DISK_PARAMETERS = uintptr

type TPCREDIRECTION_DESCRIPTOR = uintptr

type TPCREDIRECTION_FUNCTION_DESCRIPTOR = uintptr

type TPCRITICAL_SECTION = uintptr

type TPCRITICAL_SECTION_DEBUG = uintptr

type TPCRL_BLOB = uintptr

type TPCRL_CONTEXT = uintptr

type TPCRL_DIST_POINT = uintptr

type TPCRL_DIST_POINTS_INFO = uintptr

type TPCRL_DIST_POINT_NAME = uintptr

type TPCRL_ENTRY = uintptr

type TPCRL_FIND_ISSUED_FOR_PARA = uintptr

type TPCRL_INFO = uintptr

type TPCRL_ISSUING_DIST_POINT = uintptr

type TPCRL_REVOCATION_INFO = uintptr

type TPCRM_PROTOCOL_ID = uintptr

type TPCROSS_CERT_DIST_POINTS_INFO = uintptr

type TPCRYPTNET_URL_CACHE_FLUSH_INFO = uintptr

type TPCRYPTNET_URL_CACHE_PRE_FETCH_INFO = uintptr

type TPCRYPTNET_URL_CACHE_RESPONSE_INFO = uintptr

type TPCRYPTPROTECT_PROMPTSTRUCT = uintptr

type TPCRYPT_3DES_KEY_STATE = uintptr

type TPCRYPT_AES_128_KEY_STATE = uintptr

type TPCRYPT_AES_256_KEY_STATE = uintptr

type TPCRYPT_ALGORITHM_IDENTIFIER = uintptr

type TPCRYPT_ASYNC_RETRIEVAL_COMPLETION = uintptr

type TPCRYPT_ATTRIBUTE = uintptr

type TPCRYPT_ATTRIBUTES = uintptr

type TPCRYPT_ATTRIBUTE_TYPE_VALUE = uintptr

type TPCRYPT_ATTR_BLOB = uintptr

type TPCRYPT_BIT_BLOB = uintptr

type TPCRYPT_BLOB_ARRAY = uintptr

type TPCRYPT_CONTENT_INFO = uintptr

type TPCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = uintptr

type TPCRYPT_CONTEXTS = uintptr

type TPCRYPT_CONTEXT_CONFIG = uintptr

type TPCRYPT_CONTEXT_FUNCTIONS = uintptr

type TPCRYPT_CONTEXT_FUNCTION_CONFIG = uintptr

type TPCRYPT_CONTEXT_FUNCTION_PROVIDERS = uintptr

type TPCRYPT_CREDENTIALS = uintptr

type TPCRYPT_CSP_PROVIDER = uintptr

type TPCRYPT_DATA_BLOB = uintptr

type TPCRYPT_DECODE_PARA = uintptr

type TPCRYPT_DECRYPT_MESSAGE_PARA = uintptr

type TPCRYPT_DECRYPT_PRIVATE_KEY_FUNC = uintptr

type TPCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA = uintptr

type TPCRYPT_DER_BLOB = uintptr

type TPCRYPT_DES_KEY_STATE = uintptr

type TPCRYPT_DIGEST_BLOB = uintptr

type TPCRYPT_ECC_CMS_SHARED_INFO = uintptr

type TPCRYPT_ECC_PRIVATE_KEY_INFO = uintptr

type TPCRYPT_ENCODE_PARA = uintptr

type TPCRYPT_ENCRYPTED_PRIVATE_KEY_INFO = uintptr

type TPCRYPT_ENCRYPT_MESSAGE_PARA = uintptr

type TPCRYPT_ENCRYPT_PRIVATE_KEY_FUNC = uintptr

type TPCRYPT_ENROLLMENT_NAME_VALUE_PAIR = uintptr

type TPCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO = uintptr

type TPCRYPT_HASH_BLOB = uintptr

type TPCRYPT_HASH_INFO = uintptr

type TPCRYPT_HASH_MESSAGE_PARA = uintptr

type TPCRYPT_IMAGE_REF = uintptr

type TPCRYPT_IMAGE_REG = uintptr

type TPCRYPT_INTEGER_BLOB = uintptr

type TPCRYPT_INTERFACE_REG = uintptr

type TPCRYPT_KEY_PROV_INFO = uintptr

type TPCRYPT_KEY_PROV_PARAM = uintptr

type TPCRYPT_KEY_SIGN_MESSAGE_PARA = uintptr

type TPCRYPT_KEY_VERIFY_MESSAGE_PARA = uintptr

type TPCRYPT_MASK_GEN_ALGORITHM = uintptr

type TPCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE = uintptr

type TPCRYPT_OBJID_BLOB = uintptr

type TPCRYPT_OBJID_TABLE = uintptr

type TPCRYPT_OID_FUNC_ENTRY = uintptr

type TPCRYPT_OID_INFO = uintptr

type TPCRYPT_PASSWORD_CREDENTIALS = uintptr

type TPCRYPT_PASSWORD_CREDENTIALSA = uintptr

type TPCRYPT_PASSWORD_CREDENTIALSW = uintptr

type TPCRYPT_PKCS8_EXPORT_PARAMS = uintptr

type TPCRYPT_PKCS8_IMPORT_PARAMS = uintptr

type TPCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS = uintptr

type TPCRYPT_PRIVATE_KEY_INFO = uintptr

type TPCRYPT_PROPERTY_REF = uintptr

type TPCRYPT_PROVIDERS = uintptr

type TPCRYPT_PROVIDER_REF = uintptr

type TPCRYPT_PROVIDER_REFS = uintptr

type TPCRYPT_PROVIDER_REG = uintptr

type TPCRYPT_PSOURCE_ALGORITHM = uintptr

type TPCRYPT_RC2_CBC_PARAMETERS = uintptr

type TPCRYPT_RC4_KEY_STATE = uintptr

type TPCRYPT_RESOLVE_HCRYPTPROV_FUNC = uintptr

type TPCRYPT_RETRIEVE_AUX_INFO = uintptr

type TPCRYPT_RSAES_OAEP_PARAMETERS = uintptr

type TPCRYPT_RSA_SSA_PSS_PARAMETERS = uintptr

type TPCRYPT_SEQUENCE_OF_ANY = uintptr

type TPCRYPT_SIGN_MESSAGE_PARA = uintptr

type TPCRYPT_SMART_CARD_ROOT_INFO = uintptr

type TPCRYPT_SMIME_CAPABILITIES = uintptr

type TPCRYPT_SMIME_CAPABILITY = uintptr

type TPCRYPT_TIMESTAMP_ACCURACY = uintptr

type TPCRYPT_TIMESTAMP_CONTEXT = uintptr

type TPCRYPT_TIMESTAMP_INFO = uintptr

type TPCRYPT_TIMESTAMP_PARA = uintptr

type TPCRYPT_TIMESTAMP_REQUEST = uintptr

type TPCRYPT_TIMESTAMP_RESPONSE = uintptr

type TPCRYPT_TIME_STAMP_REQUEST_INFO = uintptr

type TPCRYPT_UINT_BLOB = uintptr

type TPCRYPT_URL_ARRAY = uintptr

type TPCRYPT_URL_INFO = uintptr

type TPCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO = uintptr

type TPCRYPT_VERIFY_MESSAGE_PARA = uintptr

type TPCRYPT_X942_OTHER_INFO = uintptr

type TPCSTR = uintptr

type TPCSV_NAMESPACE_INFO = uintptr

type TPCTCH = uintptr

type TPCTL_ANY_SUBJECT_INFO = uintptr

type TPCTL_CONTEXT = uintptr

type TPCTL_ENTRY = uintptr

type TPCTL_FIND_SUBJECT_PARA = uintptr

type TPCTL_FIND_USAGE_PARA = uintptr

type TPCTL_INFO = uintptr

type TPCTL_USAGE = uintptr

type TPCTL_USAGE_MATCH = uintptr

type TPCTL_VERIFY_USAGE_PARA = uintptr

type TPCTL_VERIFY_USAGE_STATUS = uintptr

type TPCTOUCHINPUT = uintptr

type TPCTSTR = uintptr

type TPCUCSCHAR = uintptr

type TPCUCSSTR = uintptr

type TPCUNZTCH = uintptr

type TPCUNZWCH = uintptr

type TPCURSORINFO = uintptr

type TPCUTSTR = uintptr

type TPCUUCSCHAR = uintptr

type TPCUUCSSTR = uintptr

type TPCUWCHAR = uintptr

type TPCUWSTR = uintptr

type TPCUZZTSTR = uintptr

type TPCUZZWSTR = uintptr

type TPCWCH = uintptr

type TPCWCHAR = uintptr

type TPCWPRETSTRUCT = uintptr

type TPCWPSTRUCT = uintptr

type TPCWSTR = uintptr

type TPCZPSTR = uintptr

type TPCZPWSTR = uintptr

type TPCZZSTR = uintptr

type TPCZZTSTR = uintptr

type TPCZZWSTR = uintptr

type TPDATATYPES_INFO_1 = uintptr

type TPDATATYPES_INFO_1A = uintptr

type TPDATATYPES_INFO_1W = uintptr

type TPDATA_BLOB = uintptr

type TPDDEML_MSG_HOOK_DATA = uintptr

type TPDEBUGHOOKINFO = uintptr

type TPDECRYPTION_STATUS_BUFFER = uintptr

type TPDELETEITEMSTRUCT = uintptr

type TPDELETE_SNAPSHOT_VHDSET_FLAG = uintptr

type TPDELETE_SNAPSHOT_VHDSET_PARAMETERS = uintptr

type TPDELETE_SNAPSHOT_VHDSET_VERSION = uintptr

type TPDELETE_USN_JOURNAL_DATA = uintptr

type TPDESIGNVECTOR = uintptr

type TPDEVICE_COPY_OFFLOAD_DESCRIPTOR = uintptr

type TPDEVICE_DATA_SET_RANGE = uintptr

type TPDEVICE_DSM_NOTIFICATION_PARAMETERS = uintptr

type TPDEVICE_LB_PROVISIONING_DESCRIPTOR = uintptr

type TPDEVICE_MANAGE_DATA_SET_ATTRIBUTES = uintptr

type TPDEVICE_MEDIA_INFO = uintptr

type TPDEVICE_POWER_DESCRIPTOR = uintptr

type TPDEVICE_POWER_STATE = uintptr

type TPDEVICE_SEEK_PENALTY_DESCRIPTOR = uintptr

type TPDEVICE_TRIM_DESCRIPTOR = uintptr

type TPDEVICE_WRITE_AGGREGATION_DESCRIPTOR = uintptr

type TPDEVMODE = uintptr

type TPDEVMODEA = uintptr

type TPDEVMODEW = uintptr

type TPDIBSECTION = uintptr

type TPDISK_CACHE_INFORMATION = uintptr

type TPDISK_CONTROLLER_NUMBER = uintptr

type TPDISK_DETECTION_INFO = uintptr

type TPDISK_EXTENT = uintptr

type TPDISK_EX_INT13_INFO = uintptr

type TPDISK_GEOMETRY = uintptr

type TPDISK_GEOMETRY_EX = uintptr

type TPDISK_GROW_PARTITION = uintptr

type TPDISK_HISTOGRAM = uintptr

type TPDISK_INT13_INFO = uintptr

type TPDISK_LOGGING = uintptr

type TPDISK_PARTITION_INFO = uintptr

type TPDISK_PERFORMANCE = uintptr

type TPDISK_RECORD = uintptr

type TPDISPLAY_DEVICE = uintptr

type TPDISPLAY_DEVICEA = uintptr

type TPDISPLAY_DEVICEW = uintptr

type TPDLGITEMTEMPLATE = uintptr

type TPDLGITEMTEMPLATEA = uintptr

type TPDLGITEMTEMPLATEW = uintptr

type TPDLL_DIRECTORY_COOKIE = uintptr

type TPDOC_INFO_1 = uintptr

type TPDOC_INFO_1A = uintptr

type TPDOC_INFO_1W = uintptr

type TPDOC_INFO_2 = uintptr

type TPDOC_INFO_2A = uintptr

type TPDOC_INFO_2W = uintptr

type TPDOC_INFO_3 = uintptr

type TPDOC_INFO_3A = uintptr

type TPDOC_INFO_3W = uintptr

type TPDRAWITEMSTRUCT = uintptr

type TPDRAWPATRECT = uintptr

type TPDRIVERSTATUS = uintptr

type TPDRIVER_INFO_1 = uintptr

type TPDRIVER_INFO_1A = uintptr

type TPDRIVER_INFO_1W = uintptr

type TPDRIVER_INFO_2 = uintptr

type TPDRIVER_INFO_2A = uintptr

type TPDRIVER_INFO_2W = uintptr

type TPDRIVER_INFO_3 = uintptr

type TPDRIVER_INFO_3A = uintptr

type TPDRIVER_INFO_3W = uintptr

type TPDRIVER_INFO_4 = uintptr

type TPDRIVER_INFO_4A = uintptr

type TPDRIVER_INFO_4W = uintptr

type TPDRIVER_INFO_5 = uintptr

type TPDRIVER_INFO_5A = uintptr

type TPDRIVER_INFO_5W = uintptr

type TPDRIVER_INFO_6 = uintptr

type TPDRIVER_INFO_6A = uintptr

type TPDRIVER_INFO_6W = uintptr

type TPDRIVER_INFO_8 = uintptr

type TPDRIVER_INFO_8A = uintptr

type TPDRIVER_INFO_8W = uintptr

type TPDRIVE_LAYOUT_INFORMATION = uintptr

type TPDRIVE_LAYOUT_INFORMATION_EX = uintptr

type TPDRIVE_LAYOUT_INFORMATION_GPT = uintptr

type TPDRIVE_LAYOUT_INFORMATION_MBR = uintptr

type TPDROPSTRUCT = uintptr

type TPDRVCALLBACK = uintptr

type TPDRVCONFIGINFO = uintptr

type TPDRVCONFIGINFOEX = uintptr

type TPDWORD = uintptr

type TPDWORD32 = uintptr

type TPDWORD64 = uintptr

type TPDWORDLONG = uintptr

type TPDWORD_PTR = uintptr

type TPDYNAMIC_TIME_ZONE_INFORMATION = uintptr

type TPEFS_CERTIFICATE_BLOB = uintptr

type TPEFS_HASH_BLOB = uintptr

type TPEFS_KEY_INFO = uintptr

type TPEFS_RPC_BLOB = uintptr

type TPELARRAY = struct {
	FpaXCount TLONG
	FpaYCount TLONG
	FpaXExt   TLONG
	FpaYExt   TLONG
	FpaRGBs   TBYTE
}

type TPELEMENT_TYPE = uintptr

type TPEMR = uintptr

type TPEMRABORTPATH = uintptr

type TPEMRALPHABLEND = uintptr

type TPEMRANGLEARC = uintptr

type TPEMRARC = uintptr

type TPEMRARCTO = uintptr

type TPEMRBEGINPATH = uintptr

type TPEMRBITBLT = uintptr

type TPEMRCHORD = uintptr

type TPEMRCLOSEFIGURE = uintptr

type TPEMRCOLORCORRECTPALETTE = uintptr

type TPEMRCOLORMATCHTOTARGET = uintptr

type TPEMRCREATEBRUSHINDIRECT = uintptr

type TPEMRCREATECOLORSPACE = uintptr

type TPEMRCREATECOLORSPACEW = uintptr

type TPEMRCREATEDIBPATTERNBRUSHPT = uintptr

type TPEMRCREATEMONOBRUSH = uintptr

type TPEMRCREATEPALETTE = uintptr

type TPEMRCREATEPEN = uintptr

type TPEMRDELETECOLORSPACE = uintptr

type TPEMRDELETEOBJECT = uintptr

type TPEMRDRAWESCAPE = uintptr

type TPEMRELLIPSE = uintptr

type TPEMRENDPATH = uintptr

type TPEMREOF = uintptr

type TPEMREXCLUDECLIPRECT = uintptr

type TPEMREXTCREATEFONTINDIRECTW = uintptr

type TPEMREXTCREATEPEN = uintptr

type TPEMREXTESCAPE = uintptr

type TPEMREXTFLOODFILL = uintptr

type TPEMREXTSELECTCLIPRGN = uintptr

type TPEMREXTTEXTOUTA = uintptr

type TPEMREXTTEXTOUTW = uintptr

type TPEMRFILLPATH = uintptr

type TPEMRFILLRGN = uintptr

type TPEMRFLATTENPATH = uintptr

type TPEMRFORMAT = uintptr

type TPEMRFRAMERGN = uintptr

type TPEMRGDICOMMENT = uintptr

type TPEMRGLSBOUNDEDRECORD = uintptr

type TPEMRGLSRECORD = uintptr

type TPEMRGRADIENTFILL = uintptr

type TPEMRINTERSECTCLIPRECT = uintptr

type TPEMRINVERTRGN = uintptr

type TPEMRLINETO = uintptr

type TPEMRMASKBLT = uintptr

type TPEMRMODIFYWORLDTRANSFORM = uintptr

type TPEMRMOVETOEX = uintptr

type TPEMRNAMEDESCAPE = uintptr

type TPEMROFFSETCLIPRGN = uintptr

type TPEMRPAINTRGN = uintptr

type TPEMRPIE = uintptr

type TPEMRPIXELFORMAT = uintptr

type TPEMRPLGBLT = uintptr

type TPEMRPOLYBEZIER = uintptr

type TPEMRPOLYBEZIER16 = uintptr

type TPEMRPOLYBEZIERTO = uintptr

type TPEMRPOLYBEZIERTO16 = uintptr

type TPEMRPOLYDRAW = uintptr

type TPEMRPOLYDRAW16 = uintptr

type TPEMRPOLYGON = uintptr

type TPEMRPOLYGON16 = uintptr

type TPEMRPOLYLINE = uintptr

type TPEMRPOLYLINE16 = uintptr

type TPEMRPOLYLINETO = uintptr

type TPEMRPOLYLINETO16 = uintptr

type TPEMRPOLYPOLYGON = uintptr

type TPEMRPOLYPOLYGON16 = uintptr

type TPEMRPOLYPOLYLINE = uintptr

type TPEMRPOLYPOLYLINE16 = uintptr

type TPEMRPOLYTEXTOUTA = uintptr

type TPEMRPOLYTEXTOUTW = uintptr

type TPEMRREALIZEPALETTE = uintptr

type TPEMRRECTANGLE = uintptr

type TPEMRRESIZEPALETTE = uintptr

type TPEMRRESTOREDC = uintptr

type TPEMRROUNDRECT = uintptr

type TPEMRSAVEDC = uintptr

type TPEMRSCALEVIEWPORTEXTEX = uintptr

type TPEMRSCALEWINDOWEXTEX = uintptr

type TPEMRSELECTCLIPPATH = uintptr

type TPEMRSELECTCOLORSPACE = uintptr

type TPEMRSELECTOBJECT = uintptr

type TPEMRSELECTPALETTE = uintptr

type TPEMRSETARCDIRECTION = uintptr

type TPEMRSETBKCOLOR = uintptr

type TPEMRSETBKMODE = uintptr

type TPEMRSETBRUSHORGEX = uintptr

type TPEMRSETCOLORADJUSTMENT = uintptr

type TPEMRSETCOLORSPACE = uintptr

type TPEMRSETDIBITSTODEVICE = uintptr

type TPEMRSETICMMODE = uintptr

type TPEMRSETICMPROFILE = uintptr

type TPEMRSETICMPROFILEA = uintptr

type TPEMRSETICMPROFILEW = uintptr

type TPEMRSETLAYOUT = uintptr

type TPEMRSETMAPMODE = uintptr

type TPEMRSETMAPPERFLAGS = uintptr

type TPEMRSETMETARGN = uintptr

type TPEMRSETMITERLIMIT = uintptr

type TPEMRSETPALETTEENTRIES = uintptr

type TPEMRSETPIXELV = uintptr

type TPEMRSETPOLYFILLMODE = uintptr

type TPEMRSETROP2 = uintptr

type TPEMRSETSTRETCHBLTMODE = uintptr

type TPEMRSETTEXTALIGN = uintptr

type TPEMRSETTEXTCOLOR = uintptr

type TPEMRSETVIEWPORTEXTEX = uintptr

type TPEMRSETVIEWPORTORGEX = uintptr

type TPEMRSETWINDOWEXTEX = uintptr

type TPEMRSETWINDOWORGEX = uintptr

type TPEMRSETWORLDTRANSFORM = uintptr

type TPEMRSTRETCHBLT = uintptr

type TPEMRSTRETCHDIBITS = uintptr

type TPEMRSTROKEANDFILLPATH = uintptr

type TPEMRSTROKEPATH = uintptr

type TPEMRTEXT = uintptr

type TPEMRTRANSPARENTBLT = uintptr

type TPEMRWIDENPATH = uintptr

type TPENCLAVE_ROUTINE = uintptr

type TPENCRYPTED_DATA_INFO = uintptr

type TPENCRYPTION_BUFFER = uintptr

type TPENCRYPTION_CERTIFICATE = uintptr

type TPENCRYPTION_CERTIFICATE_HASH = uintptr

type TPENCRYPTION_CERTIFICATE_HASH_LIST = uintptr

type TPENCRYPTION_CERTIFICATE_LIST = uintptr

type TPENDINGMSG = int32

type TPENDINGTYPE = int32

type TPENHMETAHEADER = uintptr

type TPENHMETARECORD = uintptr

type TPENLISTMENT_BASIC_INFORMATION = uintptr

type TPENLISTMENT_CRM_INFORMATION = uintptr

type TPENUMLOGFONTEXDV = uintptr

type TPENUMLOGFONTEXDVA = uintptr

type TPENUMLOGFONTEXDVW = uintptr

type TPENUMTEXTMETRIC = uintptr

type TPENUMTEXTMETRICA = uintptr

type TPENUMTEXTMETRICW = uintptr

type TPENUMUILANG = uintptr

type TPEN_FLAGS = uint32

type TPEN_MASK = uint32

type TPERF_COUNTER_BLOCK = struct {
	FByteLength TDWORD
}

type TPERF_INSTANCE_DEFINITION = struct {
	FByteLength             TDWORD
	FParentObjectTitleIndex TDWORD
	FParentObjectInstance   TDWORD
	FUniqueID               TLONG
	FNameOffset             TDWORD
	FNameLength             TDWORD
}

type TPERSISTENT_RESERVE_COMMAND = struct {
	FVersion   TULONG
	FSize      TULONG
	F__ccgo2_8 struct {
		FPR_OUT [0]struct {
			F__ccgo0 uint8
			F__ccgo1 uint8
		}
		FPR_IN struct {
			F__ccgo0          uint8
			FAllocationLength TUSHORT
		}
	}
}

type TPEVENTLOGRECORD = uintptr

type TPEVENTMSG = uintptr

type TPEVENTMSGMSG = uintptr

type TPEVENTSFORLOGFILE = uintptr

type TPEV_EXTRA_CERT_CHAIN_POLICY_PARA = uintptr

type TPEV_EXTRA_CERT_CHAIN_POLICY_STATUS = uintptr

type TPEXCEPTION_HANDLER = uintptr

type TPEXCEPTION_POINTERS = uintptr

type TPEXCEPTION_RECORD = uintptr

type TPEXCEPTION_RECORD32 = uintptr

type TPEXCEPTION_RECORD64 = uintptr

type TPEXCEPTION_REGISTRATION = uintptr

type TPEXCEPTION_REGISTRATION_RECORD = uintptr

type TPEXCEPTION_ROUTINE = uintptr

type TPEXECUTION_STATE = uintptr

type TPEXFAT_STATISTICS = uintptr

type TPEXPAND_VIRTUAL_DISK_PARAMETERS = uintptr

type TPEXTENDED_ENCRYPTED_DATA_INFO = uintptr

type TPEXTLOGFONT = uintptr

type TPEXTLOGFONTA = uintptr

type TPEXTLOGFONTW = uintptr

type TPEXTLOGPEN = uintptr

type TPEXTLOGPEN32 = uintptr

type TPFAT_STATISTICS = uintptr

type TPFD_SET = uintptr

type TPFE_EXPORT_FUNC = uintptr

type TPFE_IMPORT_FUNC = uintptr

type TPFIBER_CALLOUT_ROUTINE = uintptr

type TPFIBER_START_ROUTINE = uintptr

type TPFILEMUIINFO = uintptr

type TPFILESYSTEM_STATISTICS = uintptr

type TPFILETIME = uintptr

type TPFILE_ALIGNMENT_INFO = uintptr

type TPFILE_ALLOCATED_RANGE_BUFFER = uintptr

type TPFILE_ALLOCATION_INFO = uintptr

type TPFILE_ATTRIBUTE_TAG_INFO = uintptr

type TPFILE_BASIC_INFO = uintptr

type TPFILE_CASE_SENSITIVE_INFO = uintptr

type TPFILE_COMPRESSION_INFO = uintptr

type TPFILE_DISPOSITION_INFO = uintptr

type TPFILE_DISPOSITION_INFO_EX = uintptr

type TPFILE_END_OF_FILE_INFO = uintptr

type TPFILE_FS_PERSISTENT_VOLUME_INFORMATION = uintptr

type TPFILE_FULL_DIR_INFO = uintptr

type TPFILE_ID_128 = uintptr

type TPFILE_ID_BOTH_DIR_INFO = uintptr

type TPFILE_ID_EXTD_DIR_INFO = uintptr

type TPFILE_ID_INFO = uintptr

type TPFILE_ID_TYPE = uintptr

type TPFILE_INFO_BY_HANDLE_CLASS = uintptr

type TPFILE_IO_PRIORITY_HINT_INFO = uintptr

type TPFILE_MAKE_COMPATIBLE_BUFFER = uintptr

type TPFILE_NAME_INFO = uintptr

type TPFILE_NOTIFY_INFORMATION = uintptr

type TPFILE_OBJECTID_BUFFER = uintptr

type TPFILE_PREFETCH = uintptr

type TPFILE_PREFETCH_EX = uintptr

type TPFILE_PROVIDER_EXTERNAL_INFO_V0 = uintptr

type TPFILE_PROVIDER_EXTERNAL_INFO_V1 = uintptr

type TPFILE_QUERY_ON_DISK_VOL_INFO_BUFFER = uintptr

type TPFILE_QUERY_SPARING_BUFFER = uintptr

type TPFILE_REMOTE_PROTOCOL_INFO = uintptr

type TPFILE_RENAME_INFO = uintptr

type TPFILE_SEGMENT_ELEMENT = uintptr

type TPFILE_SET_DEFECT_MGMT_BUFFER = uintptr

type TPFILE_SET_SPARSE_BUFFER = uintptr

type TPFILE_STANDARD_INFO = uintptr

type TPFILE_STORAGE_INFO = uintptr

type TPFILE_STREAM_INFO = uintptr

type TPFILE_SYSTEM_RECOGNITION_INFORMATION = uintptr

type TPFILE_TYPE_NOTIFICATION_INPUT = uintptr

type TPFILE_ZERO_DATA_INFORMATION = uintptr

type TPFIND_BY_SID_DATA = uintptr

type TPFIND_BY_SID_OUTPUT = uintptr

type TPFIND_NAME_BUFFER = uintptr

type TPFIND_NAME_HEADER = uintptr

type TPFIRMWARE_TYPE = uintptr

type TPFLASHWINFO = uintptr

type TPFLOAT = uintptr

type TPFLOAT128 = uintptr

type TPFLS_CALLBACK_FUNCTION = uintptr

type TPFNCALLBACK = uintptr

type TPFNCANSHAREFOLDERW = uintptr

type TPFNGETPROFILEPATHA = uintptr

type TPFNGETPROFILEPATHW = uintptr

type TPFNPROCESSPOLICIESA = uintptr

type TPFNPROCESSPOLICIESW = uintptr

type TPFNPROPSHEETCALLBACK = uintptr

type TPFNRECONCILEPROFILEA = uintptr

type TPFNRECONCILEPROFILEW = uintptr

type TPFNSHOWSHAREFOLDERUIW = uintptr

type TPFN_CANCEL_ASYNC_RETRIEVAL_FUNC = uintptr

type TPFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK = uintptr

type TPFN_CERT_CREATE_CONTEXT_SORT_FUNC = uintptr

type TPFN_CERT_DLL_OPEN_STORE_PROV_FUNC = uintptr

type TPFN_CERT_ENUM_PHYSICAL_STORE = uintptr

type TPFN_CERT_ENUM_SYSTEM_STORE = uintptr

type TPFN_CERT_ENUM_SYSTEM_STORE_LOCATION = uintptr

type TPFN_CERT_IS_WEAK_HASH = uintptr

type TPFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK = uintptr

type TPFN_CERT_STORE_PROV_CLOSE = uintptr

type TPFN_CERT_STORE_PROV_CONTROL = uintptr

type TPFN_CERT_STORE_PROV_DELETE_CERT = uintptr

type TPFN_CERT_STORE_PROV_DELETE_CRL = uintptr

type TPFN_CERT_STORE_PROV_DELETE_CTL = uintptr

type TPFN_CERT_STORE_PROV_FIND_CERT = uintptr

type TPFN_CERT_STORE_PROV_FIND_CRL = uintptr

type TPFN_CERT_STORE_PROV_FIND_CTL = uintptr

type TPFN_CERT_STORE_PROV_FREE_FIND_CERT = uintptr

type TPFN_CERT_STORE_PROV_FREE_FIND_CRL = uintptr

type TPFN_CERT_STORE_PROV_FREE_FIND_CTL = uintptr

type TPFN_CERT_STORE_PROV_GET_CERT_PROPERTY = uintptr

type TPFN_CERT_STORE_PROV_GET_CRL_PROPERTY = uintptr

type TPFN_CERT_STORE_PROV_GET_CTL_PROPERTY = uintptr

type TPFN_CERT_STORE_PROV_READ_CERT = uintptr

type TPFN_CERT_STORE_PROV_READ_CRL = uintptr

type TPFN_CERT_STORE_PROV_READ_CTL = uintptr

type TPFN_CERT_STORE_PROV_SET_CERT_PROPERTY = uintptr

type TPFN_CERT_STORE_PROV_SET_CRL_PROPERTY = uintptr

type TPFN_CERT_STORE_PROV_SET_CTL_PROPERTY = uintptr

type TPFN_CERT_STORE_PROV_WRITE_CERT = uintptr

type TPFN_CERT_STORE_PROV_WRITE_CRL = uintptr

type TPFN_CERT_STORE_PROV_WRITE_CTL = uintptr

type TPFN_CMSG_ALLOC = uintptr

type TPFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY = uintptr

type TPFN_CMSG_CNG_IMPORT_KEY_AGREE = uintptr

type TPFN_CMSG_CNG_IMPORT_KEY_TRANS = uintptr

type TPFN_CMSG_EXPORT_ENCRYPT_KEY = uintptr

type TPFN_CMSG_EXPORT_KEY_AGREE = uintptr

type TPFN_CMSG_EXPORT_KEY_TRANS = uintptr

type TPFN_CMSG_EXPORT_MAIL_LIST = uintptr

type TPFN_CMSG_FREE = uintptr

type TPFN_CMSG_GEN_CONTENT_ENCRYPT_KEY = uintptr

type TPFN_CMSG_GEN_ENCRYPT_KEY = uintptr

type TPFN_CMSG_IMPORT_ENCRYPT_KEY = uintptr

type TPFN_CMSG_IMPORT_KEY_AGREE = uintptr

type TPFN_CMSG_IMPORT_KEY_TRANS = uintptr

type TPFN_CMSG_IMPORT_MAIL_LIST = uintptr

type TPFN_CMSG_STREAM_OUTPUT = uintptr

type TPFN_CRYPT_ALLOC = uintptr

type TPFN_CRYPT_ASYNC_PARAM_FREE_FUNC = uintptr

type TPFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC = uintptr

type TPFN_CRYPT_CANCEL_RETRIEVAL = uintptr

type TPFN_CRYPT_ENUM_KEYID_PROP = uintptr

type TPFN_CRYPT_ENUM_OID_FUNC = uintptr

type TPFN_CRYPT_ENUM_OID_INFO = uintptr

type TPFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC = uintptr

type TPFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC = uintptr

type TPFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC = uintptr

type TPFN_CRYPT_FREE = uintptr

type TPFN_CRYPT_GET_SIGNER_CERTIFICATE = uintptr

type TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH = uintptr

type TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE = uintptr

type TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER = uintptr

type TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD = uintptr

type TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET = uintptr

type TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE = uintptr

type TPFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE = uintptr

type TPFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC = uintptr

type TPFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC = uintptr

type TPFN_EXPORT_PRIV_KEY_FUNC = uintptr

type TPFN_FREE_ENCODED_OBJECT_FUNC = uintptr

type TPFN_IMPORT_PRIV_KEY_FUNC = uintptr

type TPFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC = uintptr

type TPFN_NCRYPT_ALLOC = uintptr

type TPFN_NCRYPT_FREE = uintptr

type TPFN_RPCNOTIFICATION_ROUTINE = uintptr

type TPFN_SC_NOTIFY_CALLBACK = uintptr

type TPFOCUS_EVENT_RECORD = uintptr

type TPFONTSIGNATURE = uintptr

type TPFORMAT_EX_PARAMETERS = uintptr

type TPFORMAT_PARAMETERS = uintptr

type TPFORMAT_STRING = uintptr

type TPFORM_INFO_1 = uintptr

type TPFORM_INFO_1A = uintptr

type TPFORM_INFO_1W = uintptr

type TPFORM_INFO_2 = uintptr

type TPFORM_INFO_2A = uintptr

type TPFORM_INFO_2W = uintptr

type TPFPO_DATA = uintptr

type TPFSCTL_QUERY_FAT_BPB_BUFFER = uintptr

type TPFULL_PTR_TO_REFID_ELEMENT = uintptr

type TPFULL_PTR_XLAT_TABLES = uintptr

type TPGENERIC_BINDING_INFO = uintptr

type TPGENERIC_BINDING_ROUTINE_PAIR = uintptr

type TPGENERIC_MAPPING = uintptr

type TPGESTURECONFIG = uintptr

type TPGESTUREINFO = uintptr

type TPGESTURENOTIFYSTRUCT = uintptr

type TPGETVERSIONINPARAMS = uintptr

type TPGET_CHANGER_PARAMETERS = uintptr

type TPGET_LENGTH_INFORMATION = uintptr

type TPGET_MEDIA_TYPES = uintptr

type TPGET_MODULE_HANDLE_EXA = uintptr

type TPGET_MODULE_HANDLE_EXW = uintptr

type TPGET_SYSTEM_WOW64_DIRECTORY_A = uintptr

type TPGET_SYSTEM_WOW64_DIRECTORY_W = uintptr

type TPGET_VIRTUAL_DISK_INFO = uintptr

type TPGLYPHMETRICSFLOAT = uintptr

type TPGLYPHSET = uintptr

type TPGRADIENT_RECT = uintptr

type TPGRADIENT_TRIANGLE = uintptr

type TPGROUP_AFFINITY = uintptr

type TPGROUP_RELATIONSHIP = uintptr

type TPGUITHREADINFO = uintptr

type TPHALF_PTR = uintptr

type TPHANDLE = uintptr

type TPHANDLER_ROUTINE = uintptr

type TPHANDLETABLE = uintptr

type TPHARDWAREHOOKSTRUCT = uintptr

type TPHARDWAREINPUT = uintptr

type TPHARDWARE_COUNTER_DATA = uintptr

type TPHARDWARE_COUNTER_TYPE = uintptr

type TPHCRYPTASYNC = uintptr

type TPHDEVNOTIFY = uintptr

type TPHEAP_SUMMARY = uintptr

type TPHELPWININFO = uintptr

type TPHELPWININFOA = uintptr

type TPHELPWININFOW = uintptr

type TPHISTOGRAM_BUCKET = uintptr

type TPHKEY = uintptr

type TPHMAC_INFO = uintptr

type TPHOSTENT = uintptr

type TPHPOWERNOTIFY = uintptr

type TPHSZPAIR = uintptr

type TPHTTPSPolicyCallbackData = uintptr

type TPICONINFO = uintptr

type TPICONINFOEX = uintptr

type TPICONINFOEXA = uintptr

type TPICONINFOEXW = uintptr

type TPICONMETRICS = uintptr

type TPICONMETRICSA = uintptr

type TPICONMETRICSW = uintptr

type TPIDEREGS = uintptr

type TPIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = uintptr

type TPIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = uintptr

type TPIMAGE_ARCHITECTURE_ENTRY = uintptr

type TPIMAGE_ARCHITECTURE_HEADER = uintptr

type TPIMAGE_ARCHIVE_MEMBER_HEADER = uintptr

type TPIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = uintptr

type TPIMAGE_ARM_RUNTIME_FUNCTION_ENTRY = uintptr

type TPIMAGE_AUX_SYMBOL = uintptr

type TPIMAGE_AUX_SYMBOL_EX = uintptr

type TPIMAGE_AUX_SYMBOL_TOKEN_DEF = uintptr

type TPIMAGE_BASE_RELOCATION = uintptr

type TPIMAGE_BOUND_FORWARDER_REF = uintptr

type TPIMAGE_BOUND_IMPORT_DESCRIPTOR = uintptr

type TPIMAGE_CE_RUNTIME_FUNCTION_ENTRY = uintptr

type TPIMAGE_COFF_SYMBOLS_HEADER = uintptr

type TPIMAGE_COR20_HEADER = uintptr

type TPIMAGE_DATA_DIRECTORY = uintptr

type TPIMAGE_DEBUG_DIRECTORY = uintptr

type TPIMAGE_DEBUG_MISC = uintptr

type TPIMAGE_DELAYLOAD_DESCRIPTOR = uintptr

type TPIMAGE_DOS_HEADER = uintptr

type TPIMAGE_EXPORT_DIRECTORY = uintptr

type TPIMAGE_FILE_HEADER = uintptr

type TPIMAGE_FUNCTION_ENTRY = uintptr

type TPIMAGE_FUNCTION_ENTRY64 = uintptr

type TPIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = uintptr

type TPIMAGE_IMPORT_BY_NAME = uintptr

type TPIMAGE_IMPORT_DESCRIPTOR = uintptr

type TPIMAGE_LINENUMBER = uintptr

type TPIMAGE_LOAD_CONFIG_DIRECTORY = uintptr

type TPIMAGE_LOAD_CONFIG_DIRECTORY32 = uintptr

type TPIMAGE_LOAD_CONFIG_DIRECTORY64 = uintptr

type TPIMAGE_NT_HEADERS = uintptr

type TPIMAGE_NT_HEADERS32 = uintptr

type TPIMAGE_NT_HEADERS64 = uintptr

type TPIMAGE_OPTIONAL_HEADER = uintptr

type TPIMAGE_OPTIONAL_HEADER32 = uintptr

type TPIMAGE_OPTIONAL_HEADER64 = uintptr

type TPIMAGE_OS2_HEADER = uintptr

type TPIMAGE_RELOCATION = uintptr

type TPIMAGE_RESOURCE_DATA_ENTRY = uintptr

type TPIMAGE_RESOURCE_DIRECTORY = uintptr

type TPIMAGE_RESOURCE_DIRECTORY_ENTRY = uintptr

type TPIMAGE_RESOURCE_DIRECTORY_STRING = uintptr

type TPIMAGE_RESOURCE_DIR_STRING_U = uintptr

type TPIMAGE_ROM_HEADERS = uintptr

type TPIMAGE_ROM_OPTIONAL_HEADER = uintptr

type TPIMAGE_RUNTIME_FUNCTION_ENTRY = uintptr

type TPIMAGE_SECTION_HEADER = uintptr

type TPIMAGE_SEPARATE_DEBUG_HEADER = uintptr

type TPIMAGE_SYMBOL = uintptr

type TPIMAGE_SYMBOL_EX = uintptr

type TPIMAGE_THUNK_DATA = uintptr

type TPIMAGE_THUNK_DATA32 = uintptr

type TPIMAGE_THUNK_DATA64 = uintptr

type TPIMAGE_TLS_CALLBACK = uintptr

type TPIMAGE_TLS_DIRECTORY = uintptr

type TPIMAGE_TLS_DIRECTORY32 = uintptr

type TPIMAGE_TLS_DIRECTORY64 = uintptr

type TPIMAGE_VXD_HEADER = uintptr

type TPIMECHARPOSITION = uintptr

type TPIMEMENUITEMINFO = uintptr

type TPIMEMENUITEMINFOA = uintptr

type TPIMEMENUITEMINFOW = uintptr

type TPINIT_ONCE = uintptr

type TPINIT_ONCE_FN = uintptr

type TPINPUT = uintptr

type TPINPUT_INJECTION_VALUE = uintptr

type TPINPUT_RECORD = uintptr

type TPINT = uintptr

type TPINT16 = uintptr

type TPINT32 = uintptr

type TPINT64 = uintptr

type TPINT8 = uintptr

type TPINT_PTR = uintptr

type TPIN_ADDR = uintptr

type TPIO_COUNTERS = uintptr

type TPIP_MREQ = uintptr

type TPISECURITY_DESCRIPTOR = uintptr

type TPISECURITY_DESCRIPTOR_RELATIVE = uintptr

type TPISID = uintptr

type TPIXELFORMATDESCRIPTOR = struct {
	FnSize           TWORD
	FnVersion        TWORD
	FdwFlags         TDWORD
	FiPixelType      TBYTE
	FcColorBits      TBYTE
	FcRedBits        TBYTE
	FcRedShift       TBYTE
	FcGreenBits      TBYTE
	FcGreenShift     TBYTE
	FcBlueBits       TBYTE
	FcBlueShift      TBYTE
	FcAlphaBits      TBYTE
	FcAlphaShift     TBYTE
	FcAccumBits      TBYTE
	FcAccumRedBits   TBYTE
	FcAccumGreenBits TBYTE
	FcAccumBlueBits  TBYTE
	FcAccumAlphaBits TBYTE
	FcDepthBits      TBYTE
	FcStencilBits    TBYTE
	FcAuxBuffers     TBYTE
	FiLayerType      TBYTE
	FbReserved       TBYTE
	FdwLayerMask     TDWORD
	FdwVisibleMask   TDWORD
	FdwDamageMask    TDWORD
}

type TPI_FLAGS = int32

type TPJOBOBJECT_ASSOCIATE_COMPLETION_PORT = uintptr

type TPJOBOBJECT_BASIC_ACCOUNTING_INFORMATION = uintptr

type TPJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = uintptr

type TPJOBOBJECT_BASIC_LIMIT_INFORMATION = uintptr

type TPJOBOBJECT_BASIC_PROCESS_ID_LIST = uintptr

type TPJOBOBJECT_BASIC_UI_RESTRICTIONS = uintptr

type TPJOBOBJECT_CPU_RATE_CONTROL_INFORMATION = uintptr

type TPJOBOBJECT_END_OF_JOB_TIME_INFORMATION = uintptr

type TPJOBOBJECT_EXTENDED_LIMIT_INFORMATION = uintptr

type TPJOBOBJECT_JOBSET_INFORMATION = uintptr

type TPJOBOBJECT_LIMIT_VIOLATION_INFORMATION = uintptr

type TPJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = uintptr

type TPJOBOBJECT_SECURITY_LIMIT_INFORMATION = uintptr

type TPJOB_INFO_1 = uintptr

type TPJOB_INFO_1A = uintptr

type TPJOB_INFO_1W = uintptr

type TPJOB_INFO_2 = uintptr

type TPJOB_INFO_2A = uintptr

type TPJOB_INFO_2W = uintptr

type TPJOB_INFO_3 = uintptr

type TPJOB_SET_ARRAY = uintptr

type TPJOYCAPS = uintptr

type TPJOYCAPS2 = uintptr

type TPJOYCAPS2A = uintptr

type TPJOYCAPS2W = uintptr

type TPJOYCAPSA = uintptr

type TPJOYCAPSW = uintptr

type TPJOYINFO = uintptr

type TPJOYINFOEX = uintptr

type TPKAFFINITY = uintptr

type TPKBDLLHOOKSTRUCT = uintptr

type TPKCRM_MARSHAL_HEADER = uintptr

type TPKCRM_PROTOCOL_BLOB = uintptr

type TPKCRM_TRANSACTION_BLOB = uintptr

type TPKCS12_PBES2_EXPORT_PARAMS = struct {
	FdwSize            TDWORD
	FhNcryptDescriptor TPVOID
	FpwszPbes2Alg      TLPWSTR
}

type TPKEYBDINPUT = uintptr

type TPKEY_EVENT_RECORD = uintptr

type TPKEY_TYPE_SUBTYPE = uintptr

type TPKSPIN_LOCK = uintptr

type TPKTMOBJECT_CURSOR = uintptr

type TPKTMOBJECT_TYPE = uintptr

type TPLANA_ENUM = uintptr

type TPLARGE_INTEGER = uintptr

type TPLASTINPUTINFO = uintptr

type TPLAYERPLANEDESCRIPTOR = uintptr

type TPLCID = uintptr

type TPLDT_ENTRY = uintptr

type TPLINGER = uintptr

type TPLINKSRCDESCRIPTOR = uintptr

type TPLIST_ENTRY = uintptr

type TPLIST_ENTRY32 = uintptr

type TPLIST_ENTRY64 = uintptr

type TPLOCALESIGNATURE = uintptr

type TPLOGBRUSH = uintptr

type TPLOGBRUSH32 = uintptr

type TPLOGFONT = uintptr

type TPLOGFONTA = uintptr

type TPLOGFONTW = uintptr

type TPLOGPALETTE = uintptr

type TPLOGPEN = uintptr

type TPLONG = uintptr

type TPLONG32 = uintptr

type TPLONG64 = uintptr

type TPLONGLONG = uintptr

type TPLONG_PTR = uintptr

type TPLOOKUP_STREAM_FROM_CLUSTER_ENTRY = uintptr

type TPLOOKUP_STREAM_FROM_CLUSTER_INPUT = uintptr

type TPLOOKUP_STREAM_FROM_CLUSTER_OUTPUT = uintptr

type TPLUID = uintptr

type TPLUID_AND_ATTRIBUTES = uintptr

type TPLUID_AND_ATTRIBUTES_ARRAY = uintptr

type TPM128A = uintptr

type TPMANDATORY_LEVEL = uintptr

type TPMARK_HANDLE_INFO = uintptr

type TPMCI_ANIM_OPEN_PARMS = uintptr

type TPMCI_ANIM_OPEN_PARMSA = uintptr

type TPMCI_ANIM_OPEN_PARMSW = uintptr

type TPMCI_ANIM_PLAY_PARMS = uintptr

type TPMCI_ANIM_RECT_PARMS = uintptr

type TPMCI_ANIM_STEP_PARMS = uintptr

type TPMCI_ANIM_UPDATE_PARMS = uintptr

type TPMCI_ANIM_WINDOW_PARMS = uintptr

type TPMCI_ANIM_WINDOW_PARMSA = uintptr

type TPMCI_ANIM_WINDOW_PARMSW = uintptr

type TPMCI_BREAK_PARMS = uintptr

type TPMCI_GENERIC_PARMS = uintptr

type TPMCI_GETDEVCAPS_PARMS = uintptr

type TPMCI_LOAD_PARMS = uintptr

type TPMCI_LOAD_PARMSA = uintptr

type TPMCI_LOAD_PARMSW = uintptr

type TPMCI_OPEN_PARMS = uintptr

type TPMCI_OPEN_PARMSA = uintptr

type TPMCI_OPEN_PARMSW = uintptr

type TPMCI_OVLY_LOAD_PARMS = uintptr

type TPMCI_OVLY_LOAD_PARMSA = uintptr

type TPMCI_OVLY_LOAD_PARMSW = uintptr

type TPMCI_OVLY_OPEN_PARMS = uintptr

type TPMCI_OVLY_OPEN_PARMSA = uintptr

type TPMCI_OVLY_OPEN_PARMSW = uintptr

type TPMCI_OVLY_RECT_PARMS = uintptr

type TPMCI_OVLY_SAVE_PARMS = uintptr

type TPMCI_OVLY_SAVE_PARMSA = uintptr

type TPMCI_OVLY_SAVE_PARMSW = uintptr

type TPMCI_OVLY_WINDOW_PARMS = uintptr

type TPMCI_OVLY_WINDOW_PARMSA = uintptr

type TPMCI_OVLY_WINDOW_PARMSW = uintptr

type TPMCI_PLAY_PARMS = uintptr

type TPMCI_SAVE_PARMS = uintptr

type TPMCI_SAVE_PARMSA = uintptr

type TPMCI_SAVE_PARMSW = uintptr

type TPMCI_SEEK_PARMS = uintptr

type TPMCI_SEQ_SET_PARMS = uintptr

type TPMCI_SET_PARMS = uintptr

type TPMCI_STATUS_PARMS = uintptr

type TPMCI_SYSINFO_PARMS = uintptr

type TPMCI_SYSINFO_PARMSA = uintptr

type TPMCI_SYSINFO_PARMSW = uintptr

type TPMCI_VD_ESCAPE_PARMS = uintptr

type TPMCI_VD_ESCAPE_PARMSA = uintptr

type TPMCI_VD_ESCAPE_PARMSW = uintptr

type TPMCI_VD_PLAY_PARMS = uintptr

type TPMCI_VD_STEP_PARMS = uintptr

type TPMCI_WAVE_DELETE_PARMS = uintptr

type TPMCI_WAVE_OPEN_PARMS = uintptr

type TPMCI_WAVE_OPEN_PARMSA = uintptr

type TPMCI_WAVE_OPEN_PARMSW = uintptr

type TPMCI_WAVE_SET_PARMS = uintptr

type TPMDINEXTMENU = uintptr

type TPMEASUREITEMSTRUCT = uintptr

type TPMEDIA_TYPE = uintptr

type TPMEMORY_BASIC_INFORMATION = uintptr

type TPMEMORY_BASIC_INFORMATION32 = uintptr

type TPMEMORY_BASIC_INFORMATION64 = uintptr

type TPMEMORY_PRIORITY_INFORMATION = uintptr

type TPMEM_ADDRESS_REQUIREMENTS = uintptr

type TPMEM_EXTENDED_PARAMETER = uintptr

type TPMEM_EXTENDED_PARAMETER_TYPE = uintptr

type TPMEM_SECTION_EXTENDED_PARAMETER_TYPE = uintptr

type TPMENUBARINFO = uintptr

type TPMENUGETOBJECTINFO = uintptr

type TPMENUITEMTEMPLATE = uintptr

type TPMENUITEMTEMPLATEHEADER = uintptr

type TPMENU_EVENT_RECORD = uintptr

type TPMERGE_VIRTUAL_DISK_PARAMETERS = uintptr

type TPMESSAGE_RESOURCE_BLOCK = uintptr

type TPMESSAGE_RESOURCE_DATA = uintptr

type TPMESSAGE_RESOURCE_ENTRY = uintptr

type TPMETAHEADER = uintptr

type TPMETARECORD = uintptr

type TPMFT_ENUM_DATA = uintptr

type TPMIDIHDR = uintptr

type TPMIDIINCAPS = uintptr

type TPMIDIINCAPS2 = uintptr

type TPMIDIINCAPS2A = uintptr

type TPMIDIINCAPS2W = uintptr

type TPMIDIINCAPSA = uintptr

type TPMIDIINCAPSW = uintptr

type TPMIDIOUTCAPS = uintptr

type TPMIDIOUTCAPS2 = uintptr

type TPMIDIOUTCAPS2A = uintptr

type TPMIDIOUTCAPS2W = uintptr

type TPMIDIOUTCAPSA = uintptr

type TPMIDIOUTCAPSW = uintptr

type TPMIDL_SERVER_INFO = uintptr

type TPMIDL_STUBLESS_PROXY_INFO = uintptr

type TPMIDL_STUB_DESC = uintptr

type TPMIDL_STUB_MESSAGE = uintptr

type TPMIDL_SYNTAX_INFO = uintptr

type TPMIDL_XMIT_TYPE = uintptr

type TPMINIMIZEDMETRICS = uintptr

type TPMINMAXINFO = uintptr

type TPMIRROR_VIRTUAL_DISK_PARAMETERS = uintptr

type TPMIXERCAPS = uintptr

type TPMIXERCAPS2 = uintptr

type TPMIXERCAPS2A = uintptr

type TPMIXERCAPS2W = uintptr

type TPMIXERCAPSA = uintptr

type TPMIXERCAPSW = uintptr

type TPMIXERCONTROL = uintptr

type TPMIXERCONTROLA = uintptr

type TPMIXERCONTROLDETAILS = uintptr

type TPMIXERCONTROLDETAILS_BOOLEAN = uintptr

type TPMIXERCONTROLDETAILS_LISTTEXT = uintptr

type TPMIXERCONTROLDETAILS_LISTTEXTA = uintptr

type TPMIXERCONTROLDETAILS_LISTTEXTW = uintptr

type TPMIXERCONTROLDETAILS_SIGNED = uintptr

type TPMIXERCONTROLDETAILS_UNSIGNED = uintptr

type TPMIXERCONTROLW = uintptr

type TPMIXERLINE = uintptr

type TPMIXERLINEA = uintptr

type TPMIXERLINECONTROLS = uintptr

type TPMIXERLINECONTROLSA = uintptr

type TPMIXERLINECONTROLSW = uintptr

type TPMIXERLINEW = uintptr

type TPMMCKINFO = uintptr

type TPMMIOINFO = uintptr

type TPMMTIME = uintptr

type TPMODEMDEVCAPS = uintptr

type TPMODEMSETTINGS = uintptr

type TPMODIFY_VHDSET_FLAG = uintptr

type TPMODIFY_VHDSET_PARAMETERS = uintptr

type TPMODIFY_VHDSET_VERSION = uintptr

type TPMONCBSTRUCT = uintptr

type TPMONCONVSTRUCT = uintptr

type TPMONERRSTRUCT = uintptr

type TPMONHSZSTRUCT = uintptr

type TPMONHSZSTRUCTA = uintptr

type TPMONHSZSTRUCTW = uintptr

type TPMONITOR_DISPLAY_STATE = uintptr

type TPMONITOR_INFO_1 = uintptr

type TPMONITOR_INFO_1A = uintptr

type TPMONITOR_INFO_1W = uintptr

type TPMONITOR_INFO_2 = uintptr

type TPMONITOR_INFO_2A = uintptr

type TPMONITOR_INFO_2W = uintptr

type TPMONLINKSTRUCT = uintptr

type TPMONMSGSTRUCT = uintptr

type TPMOUSEHOOKSTRUCT = uintptr

type TPMOUSEHOOKSTRUCTEX = uintptr

type TPMOUSEINPUT = uintptr

type TPMOUSEMOVEPOINT = uintptr

type TPMOUSE_EVENT_RECORD = uintptr

type TPMOVE_FILE_DATA = uintptr

type TPMOVE_FILE_RECORD_DATA = uintptr

type TPMPARAMS = TTPMPARAMS

type TPMSG = uintptr

type TPMSGBOXPARAMS = uintptr

type TPMSGBOXPARAMSA = uintptr

type TPMSGBOXPARAMSW = uintptr

type TPMSLLHOOKSTRUCT = uintptr

type TPMULTIKEYHELP = uintptr

type TPMULTIKEYHELPA = uintptr

type TPMULTIKEYHELPW = uintptr

const TPM_BOTTOMALIGN = 32

const TPM_CENTERALIGN = 4

const TPM_HORIZONTAL = 0

const TPM_HORNEGANIMATION = 2048

const TPM_HORPOSANIMATION = 1024

const TPM_LAYOUTRTL = 32768

const TPM_LEFTALIGN = 0

const TPM_LEFTBUTTON = 0

const TPM_NOANIMATION = 16384

const TPM_NONOTIFY = 128

const TPM_RECURSE = 1

const TPM_RETURNCMD = 256

const TPM_RIGHTALIGN = 8

const TPM_RIGHTBUTTON = 2

const TPM_TOPALIGN = 0

const TPM_VCENTERALIGN = 16

const TPM_VERNEGANIMATION = 8192

const TPM_VERPOSANIMATION = 4096

const TPM_VERTICAL = 64

const TPM_WORKAREA = 65536

type TPNAME_BUFFER = uintptr

type TPNCB = uintptr

type TPNCRYPT_CIPHER_PADDING_INFO = uintptr

type TPNCRYPT_KEY_BLOB_HEADER = uintptr

type TPNC_ADDRESS = uintptr

type TPNCryptBuffer = uintptr

type TPNCryptBufferDesc = uintptr

type TPNDR_ASYNC_MESSAGE = uintptr

type TPNDR_CORRELATION_INFO = uintptr

type TPNEWTEXTMETRIC = uintptr

type TPNEWTEXTMETRICA = uintptr

type TPNEWTEXTMETRICW = uintptr

type TPNONCLIENTMETRICS = uintptr

type TPNONCLIENTMETRICSA = uintptr

type TPNONCLIENTMETRICSW = uintptr

type TPNON_PAGED_DEBUG_INFO = uintptr

type TPNOTIFYICONDATA = uintptr

type TPNOTIFYICONDATAA = uintptr

type TPNOTIFYICONDATAW = uintptr

type TPNOTIFYICONIDENTIFIER = uintptr

type TPNOTIFY_USER_POWER_SETTING = uintptr

type TPNTFS_EXTENDED_VOLUME_DATA = uintptr

type TPNTFS_FILE_RECORD_INPUT_BUFFER = uintptr

type TPNTFS_FILE_RECORD_OUTPUT_BUFFER = uintptr

type TPNTFS_STATISTICS = uintptr

type TPNTFS_VOLUME_DATA_BUFFER = uintptr

type TPNTSTATUS = uintptr

type TPNT_TIB = uintptr

type TPNT_TIB32 = uintptr

type TPNT_TIB64 = uintptr

type TPNUMA_NODE_RELATIONSHIP = uintptr

type TPNZCH = uintptr

type TPNZTCH = uintptr

type TPNZWCH = uintptr

type TPOBJECTDESCRIPTOR = uintptr

type TPOBJECT_TYPE_LIST = uintptr

type TPOCSP_BASIC_RESPONSE_ENTRY = uintptr

type TPOCSP_BASIC_RESPONSE_INFO = uintptr

type TPOCSP_BASIC_REVOKED_INFO = uintptr

type TPOCSP_BASIC_SIGNED_RESPONSE_INFO = uintptr

type TPOCSP_CERT_ID = uintptr

type TPOCSP_REQUEST_ENTRY = uintptr

type TPOCSP_REQUEST_INFO = uintptr

type TPOCSP_RESPONSE_INFO = uintptr

type TPOCSP_SIGNATURE_INFO = uintptr

type TPOCSP_SIGNED_REQUEST_INFO = uintptr

type TPOFSTRUCT = uintptr

type TPOINT = struct {
	Fx TLONG
	Fy TLONG
}

type TPOINTER_BUTTON_CHANGE_TYPE = int32

type TPOINTER_DEVICE_CURSOR_INFO = struct {
	FcursorId TUINT32
	Fcursor   TPOINTER_DEVICE_CURSOR_TYPE
}

type TPOINTER_DEVICE_CURSOR_TYPE = uint32

type TPOINTER_DEVICE_INFO = struct {
	FdisplayOrientation TDWORD
	Fdevice             THANDLE
	FpointerDeviceType  TPOINTER_DEVICE_TYPE
	Fmonitor            THMONITOR
	FstartingCursorId   TULONG
	FmaxActiveContacts  TUSHORT
	FproductString      [520]TWCHAR
}

type TPOINTER_DEVICE_PROPERTY = struct {
	FlogicalMin   TINT32
	FlogicalMax   TINT32
	FphysicalMin  TINT32
	FphysicalMax  TINT32
	Funit         TUINT32
	FunitExponent TUINT32
	FusagePageId  TUSHORT
	FusageId      TUSHORT
}

type TPOINTER_DEVICE_TYPE = uint32

type TPOINTER_FEEDBACK_MODE = int32

type TPOINTER_FLAGS = uint32

type TPOINTER_INPUT_TYPE = uint32

type TPOINTFLOAT = struct {
	Fx TFLOAT
	Fy TFLOAT
}

type TPOINTFX = struct {
	Fx TFIXED
	Fy TFIXED
}

type TPOINTL = struct {
	Fx TLONG
	Fy TLONG
}

type TPOINTS = struct {
	Fx TSHORT
	Fy TSHORT
}

type TPOLEUPDATE = uintptr

type TPOLYTEXT = struct {
	Fx       int32
	Fy       int32
	Fn       TUINT
	Flpstr   TLPCSTR
	FuiFlags TUINT
	Frcl     TRECT
	Fpdx     uintptr
}

type TPOLYTEXTA = struct {
	Fx       int32
	Fy       int32
	Fn       TUINT
	Flpstr   TLPCSTR
	FuiFlags TUINT
	Frcl     TRECT
	Fpdx     uintptr
}

type TPOLYTEXTW = struct {
	Fx       int32
	Fy       int32
	Fn       TUINT
	Flpstr   TLPCWSTR
	FuiFlags TUINT
	Frcl     TRECT
	Fpdx     uintptr
}

type TPOPENCARDNAME = uintptr

type TPOPENCARDNAMEA = uintptr

type TPOPENCARDNAMEW = uintptr

type TPOPENCARDNAME_EX = uintptr

type TPOPENCARDNAME_EXA = uintptr

type TPOPENCARDNAME_EXW = uintptr

type TPOPENCARD_SEARCH_CRITERIA = uintptr

type TPOPENCARD_SEARCH_CRITERIAA = uintptr

type TPOPENCARD_SEARCH_CRITERIAW = uintptr

type TPOPEN_PRINTER_PROPS_INFO = uintptr

type TPOPEN_PRINTER_PROPS_INFOA = uintptr

type TPOPEN_PRINTER_PROPS_INFOW = uintptr

type TPOPEN_VIRTUAL_DISK_PARAMETERS = uintptr

type TPOPERATION_END_PARAMETERS = uintptr

type TPOPERATION_START_PARAMETERS = uintptr

type TPORT_INFO_1 = struct {
	FpName TLPSTR
}

type TPORT_INFO_1A = struct {
	FpName TLPSTR
}

type TPORT_INFO_1W = struct {
	FpName TLPWSTR
}

type TPORT_INFO_2 = struct {
	FpPortName    TLPSTR
	FpMonitorName TLPSTR
	FpDescription TLPSTR
	FfPortType    TDWORD
	FReserved     TDWORD
}

type TPORT_INFO_2A = struct {
	FpPortName    TLPSTR
	FpMonitorName TLPSTR
	FpDescription TLPSTR
	FfPortType    TDWORD
	FReserved     TDWORD
}

type TPORT_INFO_2W = struct {
	FpPortName    TLPWSTR
	FpMonitorName TLPWSTR
	FpDescription TLPWSTR
	FfPortType    TDWORD
	FReserved     TDWORD
}

type TPORT_INFO_3 = struct {
	FdwStatus   TDWORD
	FpszStatus  TLPSTR
	FdwSeverity TDWORD
}

type TPORT_INFO_3A = struct {
	FdwStatus   TDWORD
	FpszStatus  TLPSTR
	FdwSeverity TDWORD
}

type TPORT_INFO_3W = struct {
	FdwStatus   TDWORD
	FpszStatus  TLPWSTR
	FdwSeverity TDWORD
}

type TPOSVERSIONINFO = uintptr

type TPOSVERSIONINFOA = uintptr

type TPOSVERSIONINFOEX = uintptr

type TPOSVERSIONINFOEXA = uintptr

type TPOSVERSIONINFOEXW = uintptr

type TPOSVERSIONINFOW = uintptr

type TPOUTLINETEXTMETRIC = uintptr

type TPOUTLINETEXTMETRICA = uintptr

type TPOUTLINETEXTMETRICW = uintptr

type TPOWERBROADCAST_SETTING = struct {
	FPowerSetting TGUID
	FDataLength   TDWORD
	FData         [1]TUCHAR
}

type TPOWER_ACTION = int32

type TPOWER_ACTION_POLICY = struct {
	FAction    TPOWER_ACTION
	FFlags     TDWORD
	FEventCode TDWORD
}

type TPOWER_IDLE_RESILIENCY = struct {
	FCoalescingTimeout    TDWORD
	FIdleResiliencyPeriod TDWORD
}

type TPOWER_INFORMATION_LEVEL = int32

type TPOWER_MONITOR_INVOCATION = struct {
	FOn            TBOOLEAN
	FConsole       TBOOLEAN
	FRequestReason TPOWER_MONITOR_REQUEST_REASON
}

type TPOWER_MONITOR_REQUEST_REASON = int32

type TPOWER_PLATFORM_INFORMATION = struct {
	FAoAc TBOOLEAN
}

type TPOWER_PLATFORM_ROLE = int32

type TPOWER_REQUEST_CONTEXT = struct {
	FVersion TULONG
	FFlags   TDWORD
	FReason  struct {
		FSimpleReasonString [0]TLPWSTR
		FDetailed           struct {
			FLocalizedReasonModule THMODULE
			FLocalizedReasonId     TULONG
			FReasonStringCount     TULONG
			FReasonStrings         uintptr
		}
	}
}

type TPOWER_REQUEST_TYPE = int32

type TPOWER_SESSION_CONNECT = struct {
	FConnected TBOOLEAN
	FConsole   TBOOLEAN
}

type TPOWER_SESSION_RIT_STATE = struct {
	FActive        TBOOLEAN
	FLastInputTime TDWORD
}

type TPOWER_SESSION_TIMEOUTS = struct {
	FInputTimeout   TDWORD
	FDisplayTimeout TDWORD
}

type TPOWER_SESSION_WINLOGON = struct {
	FSessionId TDWORD
	FConsole   TBOOLEAN
	FLocked    TBOOLEAN
}

type TPOWER_USER_PRESENCE = struct {
	FUserPresence TPOWER_USER_PRESENCE_TYPE
}

type TPOWER_USER_PRESENCE_TYPE = int32

type TPPACKEDEVENTINFO = uintptr

type TPPAINTSTRUCT = uintptr

type TPPALETTEENTRY = uintptr

type TPPARAM_OFFSETTABLE = uintptr

type TPPARTITION_INFORMATION = uintptr

type TPPARTITION_INFORMATION_EX = uintptr

type TPPARTITION_INFORMATION_GPT = uintptr

type TPPARTITION_INFORMATION_MBR = uintptr

type TPPATHNAME_BUFFER = uintptr

type TPPATTERN = uintptr

type TPPCMWAVEFORMAT = uintptr

type TPPELARRAY = uintptr

type TPPERFORMANCE_DATA = uintptr

type TPPERF_BIN = uintptr

type TPPERF_COUNTER_BLOCK = uintptr

type TPPERF_COUNTER_DEFINITION = uintptr

type TPPERF_DATA_BLOCK = uintptr

type TPPERF_INSTANCE_DEFINITION = uintptr

type TPPERF_OBJECT_TYPE = uintptr

type TPPERSISTENT_RESERVE_COMMAND = uintptr

type TPPIXELFORMATDESCRIPTOR = uintptr

type TPPKCS12_PBES2_EXPORT_PARAMS = uintptr

type TPPLEX_READ_DATA_REQUEST = uintptr

type TPPM_PERFSTATE_EVENT = struct {
	FState     TDWORD
	FStatus    TDWORD
	FLatency   TDWORD
	FSpeed     TDWORD
	FProcessor TDWORD
}

type TPPM_WMI_IDLE_STATE = struct {
	FLatency        TDWORD
	FPower          TDWORD
	FTimeCheck      TDWORD
	FPromotePercent TBYTE
	FDemotePercent  TBYTE
	FStateType      TBYTE
	FReserved       TBYTE
	FStateFlags     TDWORD
	FContext        TDWORD
	FIdleHandler    TDWORD
	FReserved1      TDWORD
}

type TPPM_WMI_IDLE_STATES_EX = struct {
	FType             TDWORD
	FCount            TDWORD
	FTargetState      TDWORD
	FOldState         TDWORD
	FTargetProcessors TPVOID
	FState            [1]TPPM_WMI_IDLE_STATE
}

type TPPM_WMI_LEGACY_PERFSTATE = struct {
	FFrequency        TDWORD
	FFlags            TDWORD
	FPercentFrequency TDWORD
}

type TPPOINT = uintptr

type TPPOINTER_TYPE_INFO = uintptr

type TPPOINTFLOAT = uintptr

type TPPOINTL = uintptr

type TPPOINTS = uintptr

type TPPOLYTEXT = uintptr

type TPPOLYTEXTA = uintptr

type TPPOLYTEXTW = uintptr

type TPPORT_INFO_1 = uintptr

type TPPORT_INFO_1A = uintptr

type TPPORT_INFO_1W = uintptr

type TPPORT_INFO_2 = uintptr

type TPPORT_INFO_2A = uintptr

type TPPORT_INFO_2W = uintptr

type TPPORT_INFO_3 = uintptr

type TPPORT_INFO_3A = uintptr

type TPPORT_INFO_3W = uintptr

type TPPOWERBROADCAST_SETTING = uintptr

type TPPOWER_ACTION = uintptr

type TPPOWER_ACTION_POLICY = uintptr

type TPPOWER_IDLE_RESILIENCY = uintptr

type TPPOWER_MONITOR_INVOCATION = uintptr

type TPPOWER_PLATFORM_INFORMATION = uintptr

type TPPOWER_PLATFORM_ROLE = uintptr

type TPPOWER_REQUEST_CONTEXT = uintptr

type TPPOWER_REQUEST_TYPE = uintptr

type TPPOWER_SESSION_CONNECT = uintptr

type TPPOWER_SESSION_RIT_STATE = uintptr

type TPPOWER_SESSION_TIMEOUTS = uintptr

type TPPOWER_SESSION_WINLOGON = uintptr

type TPPOWER_USER_PRESENCE = uintptr

type TPPOWER_USER_PRESENCE_TYPE = uintptr

type TPPPM_IDLESTATE_EVENT = uintptr

type TPPPM_IDLE_ACCOUNTING = uintptr

type TPPPM_IDLE_ACCOUNTING_EX = uintptr

type TPPPM_IDLE_STATE_ACCOUNTING = uintptr

type TPPPM_IDLE_STATE_ACCOUNTING_EX = uintptr

type TPPPM_IDLE_STATE_BUCKET_EX = uintptr

type TPPPM_PERFSTATE_DOMAIN_EVENT = uintptr

type TPPPM_PERFSTATE_EVENT = uintptr

type TPPPM_THERMALCHANGE_EVENT = uintptr

type TPPPM_THERMAL_POLICY_EVENT = uintptr

type TPPPM_WMI_IDLE_STATE = uintptr

type TPPPM_WMI_IDLE_STATES = uintptr

type TPPPM_WMI_IDLE_STATES_EX = uintptr

type TPPPM_WMI_LEGACY_PERFSTATE = uintptr

type TPPPM_WMI_PERF_STATE = uintptr

type TPPPM_WMI_PERF_STATES = uintptr

type TPPPM_WMI_PERF_STATES_EX = uintptr

type TPPREVENT_MEDIA_REMOVAL = uintptr

type TPPRINTER_CONNECTION_INFO_1 = uintptr

type TPPRINTER_DEFAULTS = uintptr

type TPPRINTER_DEFAULTSA = uintptr

type TPPRINTER_DEFAULTSW = uintptr

type TPPRINTER_ENUM_VALUES = uintptr

type TPPRINTER_ENUM_VALUESA = uintptr

type TPPRINTER_ENUM_VALUESW = uintptr

type TPPRINTER_INFO_1 = uintptr

type TPPRINTER_INFO_1A = uintptr

type TPPRINTER_INFO_1W = uintptr

type TPPRINTER_INFO_2 = uintptr

type TPPRINTER_INFO_2A = uintptr

type TPPRINTER_INFO_2W = uintptr

type TPPRINTER_INFO_3 = uintptr

type TPPRINTER_INFO_4 = uintptr

type TPPRINTER_INFO_4A = uintptr

type TPPRINTER_INFO_4W = uintptr

type TPPRINTER_INFO_5 = uintptr

type TPPRINTER_INFO_5A = uintptr

type TPPRINTER_INFO_5W = uintptr

type TPPRINTER_INFO_6 = uintptr

type TPPRINTER_INFO_7 = uintptr

type TPPRINTER_INFO_7A = uintptr

type TPPRINTER_INFO_7W = uintptr

type TPPRINTER_INFO_8 = uintptr

type TPPRINTER_INFO_8A = uintptr

type TPPRINTER_INFO_8W = uintptr

type TPPRINTER_INFO_9 = uintptr

type TPPRINTER_INFO_9A = uintptr

type TPPRINTER_INFO_9W = uintptr

type TPPRINTER_NOTIFY_INFO = uintptr

type TPPRINTER_NOTIFY_INFO_DATA = uintptr

type TPPRINTER_NOTIFY_OPTIONS = uintptr

type TPPRINTER_NOTIFY_OPTIONS_TYPE = uintptr

type TPPRINTER_OPTIONS = uintptr

type TPPRINTPROCESSOR_CAPS_1 = uintptr

type TPPRINTPROCESSOR_CAPS_2 = uintptr

type TPPRINTPROCESSOR_INFO_1 = uintptr

type TPPRINTPROCESSOR_INFO_1A = uintptr

type TPPRINTPROCESSOR_INFO_1W = uintptr

type TPPRIVILEGE_SET = uintptr

type TPPROCESSOR_GROUP_INFO = uintptr

type TPPROCESSOR_IDLESTATE_INFO = uintptr

type TPPROCESSOR_IDLESTATE_POLICY = uintptr

type TPPROCESSOR_NUMBER = uintptr

type TPPROCESSOR_PERFSTATE_POLICY = uintptr

type TPPROCESSOR_POWER_POLICY = uintptr

type TPPROCESSOR_POWER_POLICY_INFO = uintptr

type TPPROCESSOR_RELATIONSHIP = uintptr

type TPPROCESS_DYNAMIC_EH_CONTINUATION_TARGET = uintptr

type TPPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION = uintptr

type TPPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE = uintptr

type TPPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION = uintptr

type TPPROCESS_HEAP_ENTRY = uintptr

type TPPROCESS_INFORMATION = uintptr

type TPPROCESS_LEAP_SECOND_INFO = uintptr

type TPPROCESS_MEMORY_EXHAUSTION_INFO = uintptr

type TPPROCESS_MEMORY_EXHAUSTION_TYPE = uintptr

type TPPROCESS_MITIGATION_ASLR_POLICY = uintptr

type TPPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = uintptr

type TPPROCESS_MITIGATION_CHILD_PROCESS_POLICY = uintptr

type TPPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = uintptr

type TPPROCESS_MITIGATION_DEP_POLICY = uintptr

type TPPROCESS_MITIGATION_DYNAMIC_CODE_POLICY = uintptr

type TPPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = uintptr

type TPPROCESS_MITIGATION_FONT_DISABLE_POLICY = uintptr

type TPPROCESS_MITIGATION_IMAGE_LOAD_POLICY = uintptr

type TPPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY = uintptr

type TPPROCESS_MITIGATION_POLICY = uintptr

type TPPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY = uintptr

type TPPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY = uintptr

type TPPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = uintptr

type TPPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = uintptr

type TPPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY = uintptr

type TPPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY = uintptr

type TPPROCESS_POWER_THROTTLING_STATE = uintptr

type TPPROC_THREAD_ATTRIBUTE_LIST = uintptr

type TPPROTOENT = uintptr

type TPPROVIDER = uintptr

type TPPROVIDOR_INFO_1 = uintptr

type TPPROVIDOR_INFO_1A = uintptr

type TPPROVIDOR_INFO_1W = uintptr

type TPPROVIDOR_INFO_2 = uintptr

type TPPROVIDOR_INFO_2A = uintptr

type TPPROVIDOR_INFO_2W = uintptr

type TPPSFEATURE_CUSTPAPER = uintptr

type TPPSFEATURE_OUTPUT = uintptr

type TPPSINJECTDATA = uintptr

type TPPVALUE = uintptr

type TPPVALUEA = uintptr

type TPPVALUEW = uintptr

type TPQUERYACTCTXW_FUNC = uintptr

type TPQUERYHANDLER = uintptr

type TPQUERY_CHANGES_VIRTUAL_DISK_RANGE = uintptr

type TPQUOTA_LIMITS = uintptr

type TPQUOTA_LIMITS_EX = uintptr

type TPRATE_QUOTA_LIMIT = uintptr

type TPRAWHID = uintptr

type TPRAWINPUT = uintptr

type TPRAWINPUTDEVICE = uintptr

type TPRAWINPUTDEVICELIST = uintptr

type TPRAWINPUTHEADER = uintptr

type TPRAWKEYBOARD = uintptr

type TPRAWMOUSE = uintptr

type TPREAD_ELEMENT_ADDRESS_INFO = uintptr

type TPREAD_USN_JOURNAL_DATA = uintptr

type TPREASON_CONTEXT = uintptr

type TPREASSIGN_BLOCKS = uintptr

type TPREASSIGN_BLOCKS_EX = uintptr

type TPRECONVERTSTRING = uintptr

type TPRECT = uintptr

type TPRECTL = uintptr

type TPREDIRECTION_DESCRIPTOR = uintptr

type TPREDIRECTION_FUNCTION_DESCRIPTOR = uintptr

type TPREGISTERCLASSNAMEW = uintptr

type TPREGISTERWORD = uintptr

type TPREGISTERWORDA = uintptr

type TPREGISTERWORDW = uintptr

type TPREMSECURITY_ATTRIBUTES = uintptr

type TPREPARSE_GUID_DATA_BUFFER = uintptr

type TPREQUEST_OPLOCK_INPUT_BUFFER = uintptr

type TPREQUEST_OPLOCK_OUTPUT_BUFFER = uintptr

type TPREQUEST_RAW_ENCRYPTED_DATA = uintptr

type TPRESIZE_VIRTUAL_DISK_PARAMETERS = uintptr

type TPRESOURCEMANAGER_BASIC_INFORMATION = uintptr

type TPRESOURCEMANAGER_COMPLETION_INFORMATION = uintptr

type TPRESUME_PERFORMANCE = uintptr

type TPRETRIEVAL_POINTERS_BUFFER = uintptr

type TPRETRIEVAL_POINTER_BASE = uintptr

type TPREVENT_MEDIA_REMOVAL = struct {
	FPreventMediaRemoval TBOOLEAN
}

type TPRGBTRIPLE = uintptr

type TPRGNDATA = uintptr

type TPRGNDATAHEADER = uintptr

type TPRID_DEVICE_INFO = uintptr

type TPRID_DEVICE_INFO_HID = uintptr

type TPRID_DEVICE_INFO_KEYBOARD = uintptr

type TPRID_DEVICE_INFO_MOUSE = uintptr

type TPRINTDLG = struct {
	FlStructSize         TDWORD
	FhwndOwner           THWND
	FhDevMode            THGLOBAL
	FhDevNames           THGLOBAL
	FhDC                 THDC
	FFlags               TDWORD
	FnFromPage           TWORD
	FnToPage             TWORD
	FnMinPage            TWORD
	FnMaxPage            TWORD
	FnCopies             TWORD
	FhInstance           THINSTANCE
	FlCustData           TLPARAM
	FlpfnPrintHook       TLPPRINTHOOKPROC
	FlpfnSetupHook       TLPSETUPHOOKPROC
	FlpPrintTemplateName TLPCSTR
	FlpSetupTemplateName TLPCSTR
	FhPrintTemplate      THGLOBAL
	FhSetupTemplate      THGLOBAL
}

type TPRINTDLGA = struct {
	FlStructSize         TDWORD
	FhwndOwner           THWND
	FhDevMode            THGLOBAL
	FhDevNames           THGLOBAL
	FhDC                 THDC
	FFlags               TDWORD
	FnFromPage           TWORD
	FnToPage             TWORD
	FnMinPage            TWORD
	FnMaxPage            TWORD
	FnCopies             TWORD
	FhInstance           THINSTANCE
	FlCustData           TLPARAM
	FlpfnPrintHook       TLPPRINTHOOKPROC
	FlpfnSetupHook       TLPSETUPHOOKPROC
	FlpPrintTemplateName TLPCSTR
	FlpSetupTemplateName TLPCSTR
	FhPrintTemplate      THGLOBAL
	FhSetupTemplate      THGLOBAL
}

type TPRINTDLGEX = struct {
	FlStructSize         TDWORD
	FhwndOwner           THWND
	FhDevMode            THGLOBAL
	FhDevNames           THGLOBAL
	FhDC                 THDC
	FFlags               TDWORD
	FFlags2              TDWORD
	FExclusionFlags      TDWORD
	FnPageRanges         TDWORD
	FnMaxPageRanges      TDWORD
	FlpPageRanges        TLPPRINTPAGERANGE
	FnMinPage            TDWORD
	FnMaxPage            TDWORD
	FnCopies             TDWORD
	FhInstance           THINSTANCE
	FlpPrintTemplateName TLPCSTR
	FlpCallback          TLPUNKNOWN
	FnPropertyPages      TDWORD
	FlphPropertyPages    uintptr
	FnStartPage          TDWORD
	FdwResultAction      TDWORD
}

type TPRINTDLGEXA = struct {
	FlStructSize         TDWORD
	FhwndOwner           THWND
	FhDevMode            THGLOBAL
	FhDevNames           THGLOBAL
	FhDC                 THDC
	FFlags               TDWORD
	FFlags2              TDWORD
	FExclusionFlags      TDWORD
	FnPageRanges         TDWORD
	FnMaxPageRanges      TDWORD
	FlpPageRanges        TLPPRINTPAGERANGE
	FnMinPage            TDWORD
	FnMaxPage            TDWORD
	FnCopies             TDWORD
	FhInstance           THINSTANCE
	FlpPrintTemplateName TLPCSTR
	FlpCallback          TLPUNKNOWN
	FnPropertyPages      TDWORD
	FlphPropertyPages    uintptr
	FnStartPage          TDWORD
	FdwResultAction      TDWORD
}

type TPRINTDLGEXW = struct {
	FlStructSize         TDWORD
	FhwndOwner           THWND
	FhDevMode            THGLOBAL
	FhDevNames           THGLOBAL
	FhDC                 THDC
	FFlags               TDWORD
	FFlags2              TDWORD
	FExclusionFlags      TDWORD
	FnPageRanges         TDWORD
	FnMaxPageRanges      TDWORD
	FlpPageRanges        TLPPRINTPAGERANGE
	FnMinPage            TDWORD
	FnMaxPage            TDWORD
	FnCopies             TDWORD
	FhInstance           THINSTANCE
	FlpPrintTemplateName TLPCWSTR
	FlpCallback          TLPUNKNOWN
	FnPropertyPages      TDWORD
	FlphPropertyPages    uintptr
	FnStartPage          TDWORD
	FdwResultAction      TDWORD
}

type TPRINTDLGW = struct {
	FlStructSize         TDWORD
	FhwndOwner           THWND
	FhDevMode            THGLOBAL
	FhDevNames           THGLOBAL
	FhDC                 THDC
	FFlags               TDWORD
	FnFromPage           TWORD
	FnToPage             TWORD
	FnMinPage            TWORD
	FnMaxPage            TWORD
	FnCopies             TWORD
	FhInstance           THINSTANCE
	FlCustData           TLPARAM
	FlpfnPrintHook       TLPPRINTHOOKPROC
	FlpfnSetupHook       TLPSETUPHOOKPROC
	FlpPrintTemplateName TLPCWSTR
	FlpSetupTemplateName TLPCWSTR
	FhPrintTemplate      THGLOBAL
	FhSetupTemplate      THGLOBAL
}

type TPRINTEROP_FLAGS = uint16

type TPRINTER_CONNECTION_INFO_1 = struct {
	FdwFlags       TDWORD
	FpszDriverName TLPTSTR
}

type TPRINTER_DEFAULTS = struct {
	FpDatatype     TLPSTR
	FpDevMode      TLPDEVMODEA
	FDesiredAccess TACCESS_MASK
}

type TPRINTER_DEFAULTSA = struct {
	FpDatatype     TLPSTR
	FpDevMode      TLPDEVMODEA
	FDesiredAccess TACCESS_MASK
}

type TPRINTER_DEFAULTSW = struct {
	FpDatatype     TLPWSTR
	FpDevMode      TLPDEVMODEW
	FDesiredAccess TACCESS_MASK
}

type TPRINTER_ENUM_VALUES = struct {
	FpValueName  TLPSTR
	FcbValueName TDWORD
	FdwType      TDWORD
	FpData       TLPBYTE
	FcbData      TDWORD
}

type TPRINTER_ENUM_VALUESA = struct {
	FpValueName  TLPSTR
	FcbValueName TDWORD
	FdwType      TDWORD
	FpData       TLPBYTE
	FcbData      TDWORD
}

type TPRINTER_ENUM_VALUESW = struct {
	FpValueName  TLPWSTR
	FcbValueName TDWORD
	FdwType      TDWORD
	FpData       TLPBYTE
	FcbData      TDWORD
}

type TPRINTER_INFO_1 = struct {
	FFlags        TDWORD
	FpDescription TLPSTR
	FpName        TLPSTR
	FpComment     TLPSTR
}

type TPRINTER_INFO_1A = struct {
	FFlags        TDWORD
	FpDescription TLPSTR
	FpName        TLPSTR
	FpComment     TLPSTR
}

type TPRINTER_INFO_1W = struct {
	FFlags        TDWORD
	FpDescription TLPWSTR
	FpName        TLPWSTR
	FpComment     TLPWSTR
}

type TPRINTER_INFO_2 = struct {
	FpServerName         TLPSTR
	FpPrinterName        TLPSTR
	FpShareName          TLPSTR
	FpPortName           TLPSTR
	FpDriverName         TLPSTR
	FpComment            TLPSTR
	FpLocation           TLPSTR
	FpDevMode            TLPDEVMODEA
	FpSepFile            TLPSTR
	FpPrintProcessor     TLPSTR
	FpDatatype           TLPSTR
	FpParameters         TLPSTR
	FpSecurityDescriptor TPSECURITY_DESCRIPTOR
	FAttributes          TDWORD
	FPriority            TDWORD
	FDefaultPriority     TDWORD
	FStartTime           TDWORD
	FUntilTime           TDWORD
	FStatus              TDWORD
	FcJobs               TDWORD
	FAveragePPM          TDWORD
}

type TPRINTER_INFO_2A = struct {
	FpServerName         TLPSTR
	FpPrinterName        TLPSTR
	FpShareName          TLPSTR
	FpPortName           TLPSTR
	FpDriverName         TLPSTR
	FpComment            TLPSTR
	FpLocation           TLPSTR
	FpDevMode            TLPDEVMODEA
	FpSepFile            TLPSTR
	FpPrintProcessor     TLPSTR
	FpDatatype           TLPSTR
	FpParameters         TLPSTR
	FpSecurityDescriptor TPSECURITY_DESCRIPTOR
	FAttributes          TDWORD
	FPriority            TDWORD
	FDefaultPriority     TDWORD
	FStartTime           TDWORD
	FUntilTime           TDWORD
	FStatus              TDWORD
	FcJobs               TDWORD
	FAveragePPM          TDWORD
}

type TPRINTER_INFO_2W = struct {
	FpServerName         TLPWSTR
	FpPrinterName        TLPWSTR
	FpShareName          TLPWSTR
	FpPortName           TLPWSTR
	FpDriverName         TLPWSTR
	FpComment            TLPWSTR
	FpLocation           TLPWSTR
	FpDevMode            TLPDEVMODEW
	FpSepFile            TLPWSTR
	FpPrintProcessor     TLPWSTR
	FpDatatype           TLPWSTR
	FpParameters         TLPWSTR
	FpSecurityDescriptor TPSECURITY_DESCRIPTOR
	FAttributes          TDWORD
	FPriority            TDWORD
	FDefaultPriority     TDWORD
	FStartTime           TDWORD
	FUntilTime           TDWORD
	FStatus              TDWORD
	FcJobs               TDWORD
	FAveragePPM          TDWORD
}

type TPRINTER_INFO_3 = struct {
	FpSecurityDescriptor TPSECURITY_DESCRIPTOR
}

type TPRINTER_INFO_4 = struct {
	FpPrinterName TLPSTR
	FpServerName  TLPSTR
	FAttributes   TDWORD
}

type TPRINTER_INFO_4A = struct {
	FpPrinterName TLPSTR
	FpServerName  TLPSTR
	FAttributes   TDWORD
}

type TPRINTER_INFO_4W = struct {
	FpPrinterName TLPWSTR
	FpServerName  TLPWSTR
	FAttributes   TDWORD
}

type TPRINTER_INFO_5 = struct {
	FpPrinterName             TLPSTR
	FpPortName                TLPSTR
	FAttributes               TDWORD
	FDeviceNotSelectedTimeout TDWORD
	FTransmissionRetryTimeout TDWORD
}

type TPRINTER_INFO_5A = struct {
	FpPrinterName             TLPSTR
	FpPortName                TLPSTR
	FAttributes               TDWORD
	FDeviceNotSelectedTimeout TDWORD
	FTransmissionRetryTimeout TDWORD
}

type TPRINTER_INFO_5W = struct {
	FpPrinterName             TLPWSTR
	FpPortName                TLPWSTR
	FAttributes               TDWORD
	FDeviceNotSelectedTimeout TDWORD
	FTransmissionRetryTimeout TDWORD
}

type TPRINTER_INFO_6 = struct {
	FdwStatus TDWORD
}

type TPRINTER_INFO_7 = struct {
	FpszObjectGUID TLPSTR
	FdwAction      TDWORD
}

type TPRINTER_INFO_7A = struct {
	FpszObjectGUID TLPSTR
	FdwAction      TDWORD
}

type TPRINTER_INFO_7W = struct {
	FpszObjectGUID TLPWSTR
	FdwAction      TDWORD
}

type TPRINTER_INFO_8 = struct {
	FpDevMode TLPDEVMODEA
}

type TPRINTER_INFO_8A = struct {
	FpDevMode TLPDEVMODEA
}

type TPRINTER_INFO_8W = struct {
	FpDevMode TLPDEVMODEW
}

type TPRINTER_INFO_9 = struct {
	FpDevMode TLPDEVMODEA
}

type TPRINTER_INFO_9A = struct {
	FpDevMode TLPDEVMODEA
}

type TPRINTER_INFO_9W = struct {
	FpDevMode TLPDEVMODEW
}

type TPRINTER_NOTIFY_INFO = struct {
	FVersion TDWORD
	FFlags   TDWORD
	FCount   TDWORD
	FaData   [1]TPRINTER_NOTIFY_INFO_DATA
}

type TPRINTER_NOTIFY_OPTIONS = struct {
	FVersion TDWORD
	FFlags   TDWORD
	FCount   TDWORD
	FpTypes  TPPRINTER_NOTIFY_OPTIONS_TYPE
}

type TPRINTER_NOTIFY_OPTIONS_TYPE = struct {
	FType      TWORD
	FReserved0 TWORD
	FReserved1 TDWORD
	FReserved2 TDWORD
	FCount     TDWORD
	FpFields   TPWORD
}

type TPRINTER_OPTIONS = struct {
	FcbSize  TUINT
	FdwFlags TDWORD
}

type TPRINTER_OPTION_FLAGS = int32

type TPRINTPAGERANGE = struct {
	FnFromPage TDWORD
	FnToPage   TDWORD
}

type TPRINTPROCESSOR_CAPS_1 = struct {
	FdwLevel          TDWORD
	FdwNupOptions     TDWORD
	FdwPageOrderFlags TDWORD
	FdwNumberOfCopies TDWORD
}

type TPRINTPROCESSOR_CAPS_2 = struct {
	FdwLevel               TDWORD
	FdwNupOptions          TDWORD
	FdwPageOrderFlags      TDWORD
	FdwNumberOfCopies      TDWORD
	FdwNupDirectionCaps    TDWORD
	FdwNupBorderCaps       TDWORD
	FdwBookletHandlingCaps TDWORD
	FdwDuplexHandlingCaps  TDWORD
	FdwScalingCaps         TDWORD
}

type TPRINTPROCESSOR_INFO_1 = struct {
	FpName TLPSTR
}

type TPRINTPROCESSOR_INFO_1A = struct {
	FpName TLPSTR
}

type TPRINTPROCESSOR_INFO_1W = struct {
	FpName TLPWSTR
}

type TPRIORITY_HINT = int32

type TPRIVILEGE_SET = struct {
	FPrivilegeCount TDWORD
	FControl        TDWORD
	FPrivilege      [1]TLUID_AND_ATTRIBUTES
}

type TPRKCRM_MARSHAL_HEADER = uintptr

type TPRKCRM_PROTOCOL_BLOB = uintptr

type TPRKCRM_TRANSACTION_BLOB = uintptr

type TPRLIST_ENTRY = uintptr

type TPROC = uintptr

type TPROCESSOR_CACHE_TYPE = int32

type TPROCESSOR_GROUP_INFO = struct {
	FMaximumProcessorCount TBYTE
	FActiveProcessorCount  TBYTE
	FReserved              [38]TBYTE
	FActiveProcessorMask   TKAFFINITY
}

type TPROCESSOR_IDLESTATE_INFO = struct {
	FTimeCheck      TDWORD
	FDemotePercent  TBYTE
	FPromotePercent TBYTE
	FSpare          [2]TBYTE
}

type TPROCESSOR_IDLESTATE_POLICY = struct {
	FRevision TWORD
	FFlags    struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint16
		}
		FAsWORD TWORD
	}
	FPolicyCount TDWORD
	FPolicy      [3]TPROCESSOR_IDLESTATE_INFO
}

type TPROCESSOR_NUMBER = struct {
	FGroup    TWORD
	FNumber   TBYTE
	FReserved TBYTE
}

type TPROCESSOR_PERFSTATE_POLICY = struct {
	FRevision         TDWORD
	FMaxThrottle      TBYTE
	FMinThrottle      TBYTE
	FBusyAdjThreshold TBYTE
	F__ccgo4_7        struct {
		FFlags [0]struct {
			F__ccgo1_0 [0]struct {
				F__ccgo0 uint8
			}
			FAsBYTE TBYTE
		}
		FSpare TBYTE
	}
	FTimeCheck       TDWORD
	FIncreaseTime    TDWORD
	FDecreaseTime    TDWORD
	FIncreasePercent TDWORD
	FDecreasePercent TDWORD
}

type TPROCESSOR_POWER_POLICY = struct {
	FRevision        TDWORD
	FDynamicThrottle TBYTE
	FSpare           [3]TBYTE
	F__ccgo8         uint32
	FPolicyCount     TDWORD
	FPolicy          [3]TPROCESSOR_POWER_POLICY_INFO
}

type TPROCESSOR_POWER_POLICY_INFO = struct {
	FTimeCheck      TDWORD
	FDemoteLimit    TDWORD
	FPromoteLimit   TDWORD
	FDemotePercent  TBYTE
	FPromotePercent TBYTE
	FSpare          [2]TBYTE
	F__ccgo16       uint32
}

type TPROCESSOR_RELATIONSHIP = struct {
	FFlags      TBYTE
	FReserved   [21]TBYTE
	FGroupCount TWORD
	FGroupMask  [1]TGROUP_AFFINITY
}

type TPROCESS_DYNAMIC_EH_CONTINUATION_TARGET = struct {
	FTargetAddress TULONG_PTR
	FFlags         TULONG_PTR
}

type TPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION = struct {
	FNumberOfTargets TWORD
	FReserved        TWORD
	FReserved2       TDWORD
	FTargets         TPPROCESS_DYNAMIC_EH_CONTINUATION_TARGET
}

type TPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE = struct {
	FBaseAddress TULONG_PTR
	FSize        TSIZE_T
	FFlags       TDWORD
}

type TPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION = struct {
	FNumberOfRanges TWORD
	FReserved       TWORD
	FReserved2      TDWORD
	FRanges         TPPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE
}

type TPROCESS_INFORMATION = struct {
	FhProcess    THANDLE
	FhThread     THANDLE
	FdwProcessId TDWORD
	FdwThreadId  TDWORD
}

type TPROCESS_INFORMATION_CLASS = int32

type TPROCESS_LEAP_SECOND_INFO = struct {
	FFlags    TULONG
	FReserved TULONG
}

type TPROCESS_MACHINE_INFORMATION = struct {
	FProcessMachine    TUSHORT
	FRes0              TUSHORT
	FMachineAttributes TMACHINE_ATTRIBUTES
}

type TPROCESS_MEMORY_EXHAUSTION_INFO = struct {
	FVersion  TUSHORT
	FReserved TUSHORT
	FType     TPROCESS_MEMORY_EXHAUSTION_TYPE
	FValue    TULONG_PTR
}

type TPROCESS_MEMORY_EXHAUSTION_TYPE = int32

type TPROCESS_MITIGATION_ASLR_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_CHILD_PROCESS_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_DEP_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
	FPermanent TBOOLEAN
}

type TPROCESS_MITIGATION_DYNAMIC_CODE_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint8
			F__ccgo4 uint32
		}
		FFlags       TDWORD
		F__ccgo_pad2 [4]byte
	}
}

type TPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_FONT_DISABLE_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_IMAGE_LOAD_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_POLICY = int32

type TPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
}

type TPROCESS_POWER_THROTTLING_STATE = struct {
	FVersion     TULONG
	FControlMask TULONG
	FStateMask   TULONG
}

type TPROCESS_PROTECTION_LEVEL_INFORMATION = struct {
	FProtectionLevel TDWORD
}

type TPROC_THREAD_ATTRIBUTE_NUM = int32

type TPROOT_INFO_LUID = uintptr

type TPROPENUMPROC = uintptr

type TPROPENUMPROCA = uintptr

type TPROPENUMPROCEX = uintptr

type TPROPENUMPROCEXA = uintptr

type TPROPENUMPROCEXW = uintptr

type TPROPENUMPROCW = uintptr

type TPROPERTYKEY = struct {
	Ffmtid TGUID
	Fpid   TDWORD
}

type TPROPID = uint32

type TPROPSHEETPAGE_RESOURCE = uintptr

type TPROPVAR_PAD1 = uint16

type TPROPVAR_PAD2 = uint16

type TPROPVAR_PAD3 = uint16

type TPROTOCOLDATA = struct {
	FgrfFlags TDWORD
	FdwState  TDWORD
	FpData    TLPVOID
	FcbData   TULONG
}

type TPROTOCOLFILTERDATA = struct {
	FcbSize        TDWORD
	FpProtocolSink uintptr
	FpProtocol     uintptr
	FpUnk          uintptr
	FdwFilterFlags TDWORD
}

type TPROTOCOL_ARGUMENT = struct {
	FszMethod    TLPCWSTR
	FszTargetUrl TLPCWSTR
}

type TPROTOENT = struct {
	Fp_name    uintptr
	Fp_aliases uintptr
	Fp_proto   int16
}

type TPROVIDOR_INFO_1 = struct {
	FpName        TLPSTR
	FpEnvironment TLPSTR
	FpDLLName     TLPSTR
}

type TPROVIDOR_INFO_1A = struct {
	FpName        TLPSTR
	FpEnvironment TLPSTR
	FpDLLName     TLPSTR
}

type TPROVIDOR_INFO_1W = struct {
	FpName        TLPWSTR
	FpEnvironment TLPWSTR
	FpDLLName     TLPWSTR
}

type TPROVIDOR_INFO_2 = struct {
	FpOrder TLPSTR
}

type TPROVIDOR_INFO_2A = struct {
	FpOrder TLPSTR
}

type TPROVIDOR_INFO_2W = struct {
	FpOrder TLPWSTR
}

type TPROV_ENUMALGS = struct {
	FaiAlgid   TALG_ID
	FdwBitLen  TDWORD
	FdwNameLen TDWORD
	FszName    [20]TCHAR
}

type TPROV_ENUMALGS_EX = struct {
	FaiAlgid       TALG_ID
	FdwDefaultLen  TDWORD
	FdwMinLen      TDWORD
	FdwMaxLen      TDWORD
	FdwProtocols   TDWORD
	FdwNameLen     TDWORD
	FszName        [20]TCHAR
	FdwLongNameLen TDWORD
	FszLongName    [40]TCHAR
}

type TPROXY_PHASE = int32

type TPRPCOLEMESSAGE = uintptr

type TPRPC_ASYNC_NOTIFICATION_INFO = uintptr

type TPRPC_ASYNC_STATE = uintptr

type TPRPC_CLIENT_INFORMATION1 = uintptr

type TPRPC_CLIENT_INTERFACE = uintptr

type TPRPC_DISPATCH_TABLE = uintptr

type TPRPC_HTTP_TRANSPORT_CREDENTIALS_A = uintptr

type TPRPC_HTTP_TRANSPORT_CREDENTIALS_W = uintptr

type TPRPC_IMPORT_CONTEXT_P = uintptr

type TPRPC_MESSAGE = uintptr

type TPRPC_POLICY = uintptr

type TPRPC_PROTSEQ_ENDPOINT = uintptr

type TPRPC_RUNDOWN = uintptr

type TPRPC_SECURITY_QOS = uintptr

type TPRPC_SECURITY_QOS_V2_A = uintptr

type TPRPC_SECURITY_QOS_V2_W = uintptr

type TPRPC_SECURITY_QOS_V3_A = uintptr

type TPRPC_SECURITY_QOS_V3_W = uintptr

type TPRPC_SERVER_INTERFACE = uintptr

type TPRPC_SYNTAX_IDENTIFIER = uintptr

type TPRTL_BARRIER = uintptr

type TPRTL_CONDITION_VARIABLE = uintptr

type TPRTL_CRITICAL_SECTION = uintptr

type TPRTL_CRITICAL_SECTION_DEBUG = uintptr

type TPRTL_OSVERSIONINFOEXW = uintptr

type TPRTL_OSVERSIONINFOW = uintptr

type TPRTL_RESOURCE_DEBUG = uintptr

type TPRTL_RUN_ONCE = uintptr

type TPRTL_RUN_ONCE_INIT_FN = uintptr

type TPRTL_SRWLOCK = uintptr

type TPRTL_UMS_SCHEDULER_ENTRY_POINT = uintptr

type TPRTL_UMS_SCHEDULER_REASON = uintptr

type TPRTL_UMS_THREAD_INFO_CLASS = uintptr

type TPRTL_VERIFIER_DLL_DESCRIPTOR = uintptr

type TPRTL_VERIFIER_PROVIDER_DESCRIPTOR = uintptr

type TPRTL_VERIFIER_THUNK_DESCRIPTOR = uintptr

type TPSAVEPOINT_ID = uintptr

type TPSCARDCONTEXT = uintptr

type TPSCARDHANDLE = uintptr

type TPSCARD_ATRMASK = uintptr

type TPSCARD_IO_REQUEST = uintptr

type TPSCARD_READERSTATE = uintptr

type TPSCARD_READERSTATEA = uintptr

type TPSCARD_READERSTATEW = uintptr

type TPSCARD_T0_REQUEST = uintptr

type TPSCARD_T1_REQUEST = uintptr

type TPSCHANNEL_ALG = uintptr

type TPSCODE = uintptr

type TPSCONTEXT_QUEUE = uintptr

type TPSCOPE_TABLE_AMD64 = uintptr

type TPSCROLLBARINFO = uintptr

type TPSCRUB_DATA_INPUT = uintptr

type TPSCRUB_DATA_OUTPUT = uintptr

type TPSD_CHANGE_MACHINE_SID_INPUT = uintptr

type TPSD_CHANGE_MACHINE_SID_OUTPUT = uintptr

type TPSECURE_MEMORY_CACHE_CALLBACK = uintptr

type TPSECURITY_ATTRIBUTES = uintptr

type TPSECURITY_CAPABILITIES = uintptr

type TPSECURITY_CONTEXT_TRACKING_MODE = uintptr

type TPSECURITY_DESCRIPTOR = uintptr

type TPSECURITY_DESCRIPTOR_CONTROL = uintptr

type TPSECURITY_IMPERSONATION_LEVEL = uintptr

type TPSECURITY_INFORMATION = uintptr

type TPSECURITY_QUALITY_OF_SERVICE = uintptr

type TPSEC_WINNT_AUTH_IDENTITY_A = uintptr

type TPSEC_WINNT_AUTH_IDENTITY_W = uintptr

type TPSENDCMDINPARAMS = uintptr

type TPSENDCMDOUTPARAMS = uintptr

type TPSERVENT = uintptr

type TPSERVICE_CONTROL_STATUS_REASON_PARAMS = uintptr

type TPSERVICE_CONTROL_STATUS_REASON_PARAMSA = uintptr

type TPSERVICE_CONTROL_STATUS_REASON_PARAMSW = uintptr

type TPSERVICE_NOTIFY = uintptr

type TPSERVICE_NOTIFYA = uintptr

type TPSERVICE_NOTIFYW = uintptr

type TPSESSION_BUFFER = uintptr

type TPSESSION_HEADER = uintptr

type TPSET_PARTITION_INFORMATION = uintptr

type TPSET_PARTITION_INFORMATION_EX = uintptr

type TPSET_POWER_SETTING_VALUE = uintptr

type TPSET_VIRTUAL_DISK_INFO = uintptr

type TPSE_ACCESS_REPLY = uintptr

type TPSE_ACCESS_REQUEST = uintptr

type TPSE_IMPERSONATION_STATE = uintptr

type TPSE_SECURITY_DESCRIPTOR = uintptr

type TPSFEATURE_CUSTPAPER = struct {
	FlOrientation  TLONG
	FlWidth        TLONG
	FlHeight       TLONG
	FlWidthOffset  TLONG
	FlHeightOffset TLONG
}

type TPSFEATURE_OUTPUT = struct {
	FbPageIndependent TWINBOOL
	FbSetPageDevice   TWINBOOL
}

type TPSHCREATEPROCESSINFOW = uintptr

type TPSHNOTIFY = struct {
	Fhdr    TNMHDR
	FlParam TLPARAM
}

type TPSHORT = uintptr

type TPSHRINK_VOLUME_INFORMATION = uintptr

type TPSID = uintptr

type TPSID_AND_ATTRIBUTES = uintptr

type TPSID_AND_ATTRIBUTES_ARRAY = uintptr

type TPSID_AND_ATTRIBUTES_HASH = uintptr

type TPSID_HASH_ENTRY = uintptr

type TPSID_IDENTIFIER_AUTHORITY = uintptr

type TPSID_NAME_USE = uintptr

type TPSINGLE_LIST_ENTRY = uintptr

type TPSINJECTDATA = struct {
	FDataBytes      TDWORD
	FInjectionPoint TWORD
	FPageNumber     TWORD
}

type TPSIZE = uintptr

type TPSIZEL = uintptr

type TPSIZE_T = uintptr

type TPSI_COPYFILE = uintptr

type TPSLIST_ENTRY = uintptr

type TPSLIST_HEADER = uintptr

type TPSMALL_RECT = uintptr

type TPSOCKADDR = uintptr

type TPSOCKADDR_IN = uintptr

type TPSOLE_AUTHENTICATION_INFO = uintptr

type TPSOLE_AUTHENTICATION_LIST = uintptr

type TPSOLE_AUTHENTICATION_SERVICE = uintptr

type TPSRWLOCK = uintptr

type TPSSIZE_T = uintptr

type TPSSL_EXTRA_CERT_CHAIN_POLICY_PARA = uintptr

type TPSSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS = uintptr

type TPSSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA = uintptr

type TPSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA = uintptr

type TPSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS = uintptr

type TPSTARTING_LCN_INPUT_BUFFER = uintptr

type TPSTARTING_VCN_INPUT_BUFFER = uintptr

type TPSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = uintptr

type TPSTORAGE_ADAPTER_DESCRIPTOR = uintptr

type TPSTORAGE_ALLOCATE_BC_STREAM_INPUT = uintptr

type TPSTORAGE_ALLOCATE_BC_STREAM_OUTPUT = uintptr

type TPSTORAGE_ASSOCIATION_TYPE = uintptr

type TPSTORAGE_BREAK_RESERVATION_REQUEST = uintptr

type TPSTORAGE_BUS_RESET_REQUEST = uintptr

type TPSTORAGE_BUS_TYPE = uintptr

type TPSTORAGE_CRYPTO_ALGORITHM_ID = uintptr

type TPSTORAGE_CRYPTO_CAPABILITY = uintptr

type TPSTORAGE_CRYPTO_DESCRIPTOR = uintptr

type TPSTORAGE_CRYPTO_KEY_SIZE = uintptr

type TPSTORAGE_DEPENDENCY_INFO = uintptr

type TPSTORAGE_DEPENDENCY_INFO_TYPE_1 = uintptr

type TPSTORAGE_DEPENDENCY_INFO_TYPE_2 = uintptr

type TPSTORAGE_DESCRIPTOR_HEADER = uintptr

type TPSTORAGE_DEVICE_DESCRIPTOR = uintptr

type TPSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = uintptr

type TPSTORAGE_DEVICE_ID_DESCRIPTOR = uintptr

type TPSTORAGE_DEVICE_NUMBER = uintptr

type TPSTORAGE_DEVICE_NUMBERS = uintptr

type TPSTORAGE_DEVICE_NUMBER_EX = uintptr

type TPSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR = uintptr

type TPSTORAGE_DEVICE_TIERING_DESCRIPTOR = uintptr

type TPSTORAGE_FAILURE_PREDICTION_CONFIG = uintptr

type TPSTORAGE_GET_BC_PROPERTIES_OUTPUT = uintptr

type TPSTORAGE_HOTPLUG_INFO = uintptr

type TPSTORAGE_IDENTIFIER = uintptr

type TPSTORAGE_IDENTIFIER_CODE_SET = uintptr

type TPSTORAGE_IDENTIFIER_TYPE = uintptr

type TPSTORAGE_ID_NAA_FORMAT = uintptr

type TPSTORAGE_LB_PROVISIONING_MAP_RESOURCES = uintptr

type TPSTORAGE_MEDIA_SERIAL_NUMBER_DATA = uintptr

type TPSTORAGE_MEDIA_TYPE = uintptr

type TPSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = uintptr

type TPSTORAGE_MINIPORT_DESCRIPTOR = uintptr

type TPSTORAGE_PORT_CODE_SET = uintptr

type TPSTORAGE_PREDICT_FAILURE = uintptr

type TPSTORAGE_PRIORITY_HINT_SUPPORT = uintptr

type TPSTORAGE_PROPERTY_ID = uintptr

type TPSTORAGE_PROPERTY_QUERY = uintptr

type TPSTORAGE_PROPERTY_SET = uintptr

type TPSTORAGE_PROTOCOL_ATA_DATA_TYPE = uintptr

type TPSTORAGE_PROTOCOL_DATA_DESCRIPTOR = uintptr

type TPSTORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = uintptr

type TPSTORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = uintptr

type TPSTORAGE_PROTOCOL_NVME_DATA_TYPE = uintptr

type TPSTORAGE_PROTOCOL_SPECIFIC_DATA = uintptr

type TPSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT = uintptr

type TPSTORAGE_PROTOCOL_TYPE = uintptr

type TPSTORAGE_PROTOCOL_UFS_DATA_TYPE = uintptr

type TPSTORAGE_QUERY_TYPE = uintptr

type TPSTORAGE_READ_CAPACITY = uintptr

type TPSTORAGE_RPMB_DESCRIPTOR = uintptr

type TPSTORAGE_RPMB_FRAME_TYPE = uintptr

type TPSTORAGE_SET_TYPE = uintptr

type TPSTORAGE_TIER = uintptr

type TPSTORAGE_TIER_CLASS = uintptr

type TPSTORAGE_TIER_MEDIA_TYPE = uintptr

type TPSTORAGE_WRITE_CACHE_PROPERTY = uintptr

type TPSTR = uintptr

type TPSTYLEBUF = uintptr

type TPSTYLEBUFA = uintptr

type TPSTYLEBUFW = uintptr

type TPSUACTION = int32

type TPSUPPORTED_OS_INFO = uintptr

type TPSYNCHRONIZATION_BARRIER = uintptr

type TPSYSTEMTIME = uintptr

type TPSYSTEM_ALARM_ACE = uintptr

type TPSYSTEM_ALARM_CALLBACK_ACE = uintptr

type TPSYSTEM_ALARM_CALLBACK_OBJECT_ACE = uintptr

type TPSYSTEM_ALARM_OBJECT_ACE = uintptr

type TPSYSTEM_AUDIT_ACE = uintptr

type TPSYSTEM_AUDIT_CALLBACK_ACE = uintptr

type TPSYSTEM_AUDIT_CALLBACK_OBJECT_ACE = uintptr

type TPSYSTEM_AUDIT_OBJECT_ACE = uintptr

type TPSYSTEM_BATTERY_STATE = uintptr

type TPSYSTEM_LOGICAL_PROCESSOR_INFORMATION = uintptr

type TPSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = uintptr

type TPSYSTEM_MANDATORY_LABEL_ACE = uintptr

type TPSYSTEM_POWER_CAPABILITIES = uintptr

type TPSYSTEM_POWER_LEVEL = uintptr

type TPSYSTEM_POWER_POLICY = uintptr

type TPSYSTEM_POWER_STATE = uintptr

type TPSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = uintptr

type TPSYSTEM_RESOURCE_ATTRIBUTE_ACE = uintptr

type TPSYSTEM_SCOPED_POLICY_ID_ACE = uintptr

type TPSYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION = uintptr

type TPSZ = uintptr

type TPServerInformation = uintptr

type TPTAKE_SNAPSHOT_VHDSET_FLAG = uintptr

type TPTAKE_SNAPSHOT_VHDSET_PARAMETERS = uintptr

type TPTAPE_CREATE_PARTITION = uintptr

type TPTAPE_ERASE = uintptr

type TPTAPE_GET_DRIVE_PARAMETERS = uintptr

type TPTAPE_GET_MEDIA_PARAMETERS = uintptr

type TPTAPE_GET_POSITION = uintptr

type TPTAPE_GET_STATISTICS = uintptr

type TPTAPE_PREPARE = uintptr

type TPTAPE_SET_DRIVE_PARAMETERS = uintptr

type TPTAPE_SET_MEDIA_PARAMETERS = uintptr

type TPTAPE_SET_POSITION = uintptr

type TPTAPE_STATISTICS = uintptr

type TPTAPE_WMI_OPERATIONS = uintptr

type TPTAPE_WRITE_MARKS = uintptr

type TPTBYTE = uintptr

type TPTCH = uintptr

type TPTCHAR = uintptr

type TPTEXTMETRIC = uintptr

type TPTEXTMETRICA = uintptr

type TPTEXTMETRICW = uintptr

type TPTHREAD_START_ROUTINE = uintptr

type TPTIMECAPS = uintptr

type TPTIMERAPCROUTINE = uintptr

type TPTIMEVAL = uintptr

type TPTIME_ZONE_INFORMATION = uintptr

type TPTITLEBARINFO = uintptr

type TPTITLEBARINFOEX = uintptr

type TPTOKEN_ACCESS_INFORMATION = uintptr

type TPTOKEN_APPCONTAINER_INFORMATION = uintptr

type TPTOKEN_AUDIT_POLICY = uintptr

type TPTOKEN_CONTROL = uintptr

type TPTOKEN_DEFAULT_DACL = uintptr

type TPTOKEN_DEVICE_CLAIMS = uintptr

type TPTOKEN_ELEVATION = uintptr

type TPTOKEN_ELEVATION_TYPE = uintptr

type TPTOKEN_GROUPS = uintptr

type TPTOKEN_GROUPS_AND_PRIVILEGES = uintptr

type TPTOKEN_INFORMATION_CLASS = uintptr

type TPTOKEN_LINKED_TOKEN = uintptr

type TPTOKEN_MANDATORY_LABEL = uintptr

type TPTOKEN_MANDATORY_POLICY = uintptr

type TPTOKEN_ORIGIN = uintptr

type TPTOKEN_OWNER = uintptr

type TPTOKEN_PRIMARY_GROUP = uintptr

type TPTOKEN_PRIVILEGES = uintptr

type TPTOKEN_SOURCE = uintptr

type TPTOKEN_STATISTICS = uintptr

type TPTOKEN_TYPE = uintptr

type TPTOKEN_USER = uintptr

type TPTOKEN_USER_CLAIMS = uintptr

type TPTOP_LEVEL_EXCEPTION_FILTER = uintptr

type TPTOUCHINPUT = uintptr

type TPTOUCHPREDICTIONPARAMETERS = uintptr

type TPTOUCH_HIT_TESTING_INPUT = uintptr

type TPTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = uintptr

type TPTP_CALLBACK_ENVIRON = uintptr

type TPTP_CALLBACK_INSTANCE = uintptr

type TPTP_CLEANUP_GROUP = uintptr

type TPTP_CLEANUP_GROUP_CANCEL_CALLBACK = uintptr

type TPTP_IO = uintptr

type TPTP_POOL = uintptr

type TPTP_POOL_STACK_INFORMATION = uintptr

type TPTP_SIMPLE_CALLBACK = uintptr

type TPTP_TIMER = uintptr

type TPTP_TIMER_CALLBACK = uintptr

type TPTP_VERSION = uintptr

type TPTP_WAIT = uintptr

type TPTP_WAIT_CALLBACK = uintptr

type TPTP_WIN32_IO_CALLBACK = uintptr

type TPTP_WORK = uintptr

type TPTP_WORK_CALLBACK = uintptr

type TPTRANSACTIONMANAGER_BASIC_INFORMATION = uintptr

type TPTRANSACTIONMANAGER_LOGPATH_INFORMATION = uintptr

type TPTRANSACTIONMANAGER_LOG_INFORMATION = uintptr

type TPTRANSACTIONMANAGER_OLDEST_INFORMATION = uintptr

type TPTRANSACTIONMANAGER_RECOVERY_INFORMATION = uintptr

type TPTRANSACTION_BASIC_INFORMATION = uintptr

type TPTRANSACTION_BIND_INFORMATION = uintptr

type TPTRANSACTION_ENLISTMENTS_INFORMATION = uintptr

type TPTRANSACTION_ENLISTMENT_PAIR = uintptr

type TPTRANSACTION_LIST_ENTRY = uintptr

type TPTRANSACTION_LIST_INFORMATION = uintptr

type TPTRANSACTION_NOTIFICATION = uintptr

type TPTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = uintptr

type TPTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = uintptr

type TPTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = uintptr

type TPTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = uintptr

type TPTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = uintptr

type TPTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = uintptr

type TPTRANSACTION_PROPERTIES_INFORMATION = uintptr

type TPTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = uintptr

type TPTRANSMIT_FILE_BUFFERS = uintptr

type TPTRIVERTEX = uintptr

type TPTSTR = uintptr

type TPTXFS_CREATE_MINIVERSION_INFO = uintptr

type TPTXFS_GET_METADATA_INFO_OUT = uintptr

type TPTXFS_GET_TRANSACTED_VERSION = uintptr

type TPTXFS_LIST_TRANSACTIONS = uintptr

type TPTXFS_LIST_TRANSACTIONS_ENTRY = uintptr

type TPTXFS_LIST_TRANSACTION_LOCKED_FILES = uintptr

type TPTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY = uintptr

type TPTXFS_MODIFY_RM = uintptr

type TPTXFS_QUERY_RM_INFORMATION = uintptr

type TPTXFS_READ_BACKUP_INFORMATION_OUT = uintptr

type TPTXFS_ROLLFORWARD_REDO_INFORMATION = uintptr

type TPTXFS_SAVEPOINT_INFORMATION = uintptr

type TPTXFS_START_RM_INFORMATION = uintptr

type TPTXFS_TRANSACTION_ACTIVE_INFO = uintptr

type TPTXFS_WRITE_BACKUP_INFORMATION = uintptr

type TPUAF = int32

type TPUAFOUT = int32

type TPUBLICKEYSTRUC = struct {
	FbType    TBYTE
	FbVersion TBYTE
	Freserved TWORD
	FaiKeyAlg TALG_ID
}

type TPUCHAR = uintptr

type TPUCSCHAR = uintptr

type TPUCSSTR = uintptr

type TPUHALF_PTR = uintptr

type TPUINT = uintptr

type TPUINT16 = uintptr

type TPUINT32 = uintptr

type TPUINT64 = uintptr

type TPUINT8 = uintptr

type TPUINT_PTR = uintptr

type TPULARGE_INTEGER = uintptr

type TPULONG = uintptr

type TPULONG32 = uintptr

type TPULONG64 = uintptr

type TPULONGLONG = uintptr

type TPULONG_PTR = uintptr

type TPUMS_CREATE_THREAD_ATTRIBUTES = uintptr

type TPUNZTCH = uintptr

type TPUNZWCH = uintptr

type TPUPDATELAYEREDWINDOWINFO = uintptr

type TPUSAGE_PROPERTIES = uintptr

type TPUSEROBJECTFLAGS = uintptr

type TPUSER_ACTIVITY_PRESENCE = uintptr

type TPUSHORT = uintptr

type TPUSN_JOURNAL_DATA = uintptr

type TPUSN_RECORD = uintptr

type TPUTSTR = uintptr

type TPUUCSCHAR = uintptr

type TPUUCSSTR = uintptr

type TPUWSTR = uintptr

type TPUZZTSTR = uintptr

type TPUZZWSTR = uintptr

type TPVALCONTEXT = uintptr

type TPVALENT = uintptr

type TPVALENTA = uintptr

type TPVALENTW = uintptr

type TPVALUE = struct {
	Fpv_valuename     TLPSTR
	Fpv_valuelen      int32
	Fpv_value_context TLPVOID
	Fpv_type          TDWORD
}

type TPVALUEA = struct {
	Fpv_valuename     TLPSTR
	Fpv_valuelen      int32
	Fpv_value_context TLPVOID
	Fpv_type          TDWORD
}

type TPVALUEW = struct {
	Fpv_valuename     TLPWSTR
	Fpv_valuelen      int32
	Fpv_value_context TLPVOID
	Fpv_type          TDWORD
}

type TPVECTORED_EXCEPTION_HANDLER = uintptr

type TPVERIFY_INFORMATION = uintptr

type TPVIDEOPARAMETERS = uintptr

type TPVIRTUAL_DISK_PROGRESS = uintptr

type TPVIRTUAL_STORAGE_TYPE = uintptr

type TPVOID = uintptr

type TPVOID64 = uintptr

type TPVOLUME_BITMAP_BUFFER = uintptr

type TPVOLUME_DISK_EXTENTS = uintptr

type TPVOLUME_GET_GPT_ATTRIBUTES_INFORMATION = uintptr

type TPWAVEFORMAT = uintptr

type TPWAVEFORMATEX = uintptr

type TPWAVEHDR = uintptr

type TPWAVEINCAPS = uintptr

type TPWAVEINCAPS2 = uintptr

type TPWAVEINCAPS2A = uintptr

type TPWAVEINCAPS2W = uintptr

type TPWAVEINCAPSA = uintptr

type TPWAVEINCAPSW = uintptr

type TPWAVEOUTCAPS = uintptr

type TPWAVEOUTCAPS2 = uintptr

type TPWAVEOUTCAPS2A = uintptr

type TPWAVEOUTCAPS2W = uintptr

type TPWAVEOUTCAPSA = uintptr

type TPWAVEOUTCAPSW = uintptr

type TPWCH = uintptr

type TPWCHAR = uintptr

type TPWCRANGE = uintptr

type TPWGLSWAP = uintptr

type TPWIN32_FIND_DATA = uintptr

type TPWIN32_FIND_DATAA = uintptr

type TPWIN32_FIND_DATAW = uintptr

type TPWIN32_FIND_STREAM_DATA = uintptr

type TPWIN32_MEMORY_RANGE_ENTRY = uintptr

type TPWINDOWINFO = uintptr

type TPWINDOWPLACEMENT = uintptr

type TPWINDOWPOS = uintptr

type TPWINDOW_BUFFER_SIZE_RECORD = uintptr

type TPWNDCLASS = uintptr

type TPWNDCLASSA = uintptr

type TPWNDCLASSEX = uintptr

type TPWNDCLASSEXA = uintptr

type TPWNDCLASSEXW = uintptr

type TPWNDCLASSW = uintptr

type TPWOF_EXTERNAL_INFO = uintptr

type TPWORD = uintptr

type TPWOW64_CONTEXT = uintptr

type TPWOW64_DESCRIPTOR_TABLE_ENTRY = uintptr

type TPWOW64_FLOATING_SAVE_AREA = uintptr

type TPWOW64_LDT_ENTRY = uintptr

type TPWSTR = uintptr

type TPWTSSESSION_NOTIFICATION = uintptr

type TPXFORM = uintptr

type TPXMIT_ROUTINE_QUINTUPLE = uintptr

type TPXSAVE_AREA = uintptr

type TPXSAVE_AREA_HEADER = uintptr

type TPXSAVE_FORMAT = uintptr

type TPXSTATE_CONFIGURATION = uintptr

type TPXSTATE_CONTEXT = uintptr

type TPXSTATE_FEATURE = uintptr

type TPZPCSTR = uintptr

type TPZPCWSTR = uintptr

type TPZPSTR = uintptr

type TPZPTSTR = uintptr

type TPZPWSTR = uintptr

type TPZZSTR = uintptr

type TPZZTSTR = uintptr

type TPZZWSTR = uintptr

type TP_CALLBACK_ENVIRON = TTP_CALLBACK_ENVIRON

type TP_CALLBACK_ENVIRON_V3 = TTP_CALLBACK_ENVIRON_V3

type TP_CALLBACK_PRIORITY = TTP_CALLBACK_PRIORITY

type TP_POOL_STACK_INFORMATION = TTP_POOL_STACK_INFORMATION

type TP_VERSION = TTP_VERSION

type TP_WAIT_RESULT = TTP_WAIT_RESULT

type TQUERYCONTEXT = struct {
	FdwContext   TDWORD
	FPlatform    TCSPLATFORM
	FLocale      TLCID
	FdwVersionHi TDWORD
	FdwVersionLo TDWORD
}

type TQUERYOPTION = int32

type TQUERY_CHANGES_VIRTUAL_DISK_FLAG = int32

type TQUERY_SERVICE_CONFIG = struct {
	FdwServiceType      TDWORD
	FdwStartType        TDWORD
	FdwErrorControl     TDWORD
	FlpBinaryPathName   TLPSTR
	FlpLoadOrderGroup   TLPSTR
	FdwTagId            TDWORD
	FlpDependencies     TLPSTR
	FlpServiceStartName TLPSTR
	FlpDisplayName      TLPSTR
}

type TQUERY_SERVICE_CONFIGA = struct {
	FdwServiceType      TDWORD
	FdwStartType        TDWORD
	FdwErrorControl     TDWORD
	FlpBinaryPathName   TLPSTR
	FlpLoadOrderGroup   TLPSTR
	FdwTagId            TDWORD
	FlpDependencies     TLPSTR
	FlpServiceStartName TLPSTR
	FlpDisplayName      TLPSTR
}

type TQUERY_SERVICE_CONFIGW = struct {
	FdwServiceType      TDWORD
	FdwStartType        TDWORD
	FdwErrorControl     TDWORD
	FlpBinaryPathName   TLPWSTR
	FlpLoadOrderGroup   TLPWSTR
	FdwTagId            TDWORD
	FlpDependencies     TLPWSTR
	FlpServiceStartName TLPWSTR
	FlpDisplayName      TLPWSTR
}

type TQUERY_SERVICE_LOCK_STATUS = struct {
	FfIsLocked      TDWORD
	FlpLockOwner    TLPSTR
	FdwLockDuration TDWORD
}

type TQUERY_SERVICE_LOCK_STATUSA = struct {
	FfIsLocked      TDWORD
	FlpLockOwner    TLPSTR
	FdwLockDuration TDWORD
}

type TQUERY_SERVICE_LOCK_STATUSW = struct {
	FfIsLocked      TDWORD
	FlpLockOwner    TLPWSTR
	FdwLockDuration TDWORD
}

type TQUERY_USER_NOTIFICATION_STATE = int32

type TRACKMOUSEEVENT = TTRACKMOUSEEVENT

const TRANSACTIONMANAGER_ALL_ACCESS = 983103

type TRANSACTIONMANAGER_BASIC_INFORMATION = TTRANSACTIONMANAGER_BASIC_INFORMATION

const TRANSACTIONMANAGER_BIND_TRANSACTION = 32

const TRANSACTIONMANAGER_CREATE_RM = 16

const TRANSACTIONMANAGER_GENERIC_EXECUTE = 131072

const TRANSACTIONMANAGER_GENERIC_READ = 131073

const TRANSACTIONMANAGER_GENERIC_WRITE = 131102

type TRANSACTIONMANAGER_INFORMATION_CLASS = TTRANSACTIONMANAGER_INFORMATION_CLASS

type TRANSACTIONMANAGER_LOGPATH_INFORMATION = TTRANSACTIONMANAGER_LOGPATH_INFORMATION

type TRANSACTIONMANAGER_LOG_INFORMATION = TTRANSACTIONMANAGER_LOG_INFORMATION

const TRANSACTIONMANAGER_OBJECT_NAME_LENGTH_IN_BYTES = 0

const TRANSACTIONMANAGER_OBJECT_PATH = "\\\\TransactionManager\\\\"

type TRANSACTIONMANAGER_OLDEST_INFORMATION = TTRANSACTIONMANAGER_OLDEST_INFORMATION

const TRANSACTIONMANAGER_QUERY_INFORMATION = 1

const TRANSACTIONMANAGER_RECOVER = 4

type TRANSACTIONMANAGER_RECOVERY_INFORMATION = TTRANSACTIONMANAGER_RECOVERY_INFORMATION

const TRANSACTIONMANAGER_RENAME = 8

const TRANSACTIONMANAGER_SET_INFORMATION = 2

const TRANSACTION_ALL_ACCESS = 2031679

type TRANSACTION_BASIC_INFORMATION = TTRANSACTION_BASIC_INFORMATION

type TRANSACTION_BIND_INFORMATION = TTRANSACTION_BIND_INFORMATION

const TRANSACTION_COMMIT = 8

const TRANSACTION_DO_NOT_PROMOTE = 1

const TRANSACTION_ENLIST = 4

type TRANSACTION_ENLISTMENTS_INFORMATION = TTRANSACTION_ENLISTMENTS_INFORMATION

type TRANSACTION_ENLISTMENT_PAIR = TTRANSACTION_ENLISTMENT_PAIR

const TRANSACTION_GENERIC_EXECUTE = 1179672

const TRANSACTION_GENERIC_READ = 1179649

const TRANSACTION_GENERIC_WRITE = 1179710

type TRANSACTION_INFORMATION_CLASS = TTRANSACTION_INFORMATION_CLASS

type TRANSACTION_LIST_ENTRY = TTRANSACTION_LIST_ENTRY

type TRANSACTION_LIST_INFORMATION = TTRANSACTION_LIST_INFORMATION

const TRANSACTION_MANAGER_COMMIT_DEFAULT = 0

const TRANSACTION_MANAGER_COMMIT_LOWEST = 8

const TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES = 4

const TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME = 2

const TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS = 32

const TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY = 16

const TRANSACTION_MANAGER_MAXIMUM_OPTION = 63

const TRANSACTION_MANAGER_VOLATILE = 1

const TRANSACTION_MAXIMUM_OPTION = 1

type TRANSACTION_NOTIFICATION = TTRANSACTION_NOTIFICATION

type TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = TTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT

type TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = TTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT

type TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = TTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT

type TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = TTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT

type TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = TTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT

type TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = TTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT

const TRANSACTION_NOTIFICATION_TM_ONLINE_FLAG_IS_CLUSTERED = 1

const TRANSACTION_NOTIFY_COMMIT = 4

const TRANSACTION_NOTIFY_COMMIT_COMPLETE = 64

const TRANSACTION_NOTIFY_COMMIT_FINALIZE = 1073741824

const TRANSACTION_NOTIFY_COMMIT_REQUEST = 67108864

const TRANSACTION_NOTIFY_DELEGATE_COMMIT = 1024

const TRANSACTION_NOTIFY_ENLIST_MASK = 262144

const TRANSACTION_NOTIFY_ENLIST_PREPREPARE = 4096

const TRANSACTION_NOTIFY_INDOUBT = 16384

const TRANSACTION_NOTIFY_LAST_RECOVER = 8192

const TRANSACTION_NOTIFY_MARSHAL = 131072

const TRANSACTION_NOTIFY_MASK = 1073741823

const TRANSACTION_NOTIFY_PREPARE = 2

const TRANSACTION_NOTIFY_PREPARE_COMPLETE = 32

const TRANSACTION_NOTIFY_PREPREPARE = 1

const TRANSACTION_NOTIFY_PREPREPARE_COMPLETE = 16

const TRANSACTION_NOTIFY_PROMOTE = 134217728

const TRANSACTION_NOTIFY_PROMOTE_NEW = 268435456

const TRANSACTION_NOTIFY_PROPAGATE_PULL = 32768

const TRANSACTION_NOTIFY_PROPAGATE_PUSH = 65536

const TRANSACTION_NOTIFY_RECOVER = 256

const TRANSACTION_NOTIFY_RECOVER_QUERY = 2048

const TRANSACTION_NOTIFY_REQUEST_OUTCOME = 536870912

const TRANSACTION_NOTIFY_RM_DISCONNECTED = 16777216

const TRANSACTION_NOTIFY_ROLLBACK = 8

const TRANSACTION_NOTIFY_ROLLBACK_COMPLETE = 128

const TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT = 512

const TRANSACTION_NOTIFY_TM_ONLINE = 33554432

const TRANSACTION_OBJECT_NAME_LENGTH_IN_BYTES = 0

const TRANSACTION_OBJECT_PATH = "\\\\Transaction\\\\"

type TRANSACTION_OUTCOME = TTRANSACTION_OUTCOME

const TRANSACTION_PROPAGATE = 32

type TRANSACTION_PROPERTIES_INFORMATION = TTRANSACTION_PROPERTIES_INFORMATION

const TRANSACTION_QUERY_INFORMATION = 1

const TRANSACTION_RESOURCE_MANAGER_RIGHTS = 1179703

const TRANSACTION_RIGHT_RESERVED1 = 64

const TRANSACTION_ROLLBACK = 16

const TRANSACTION_SET_INFORMATION = 2

type TRANSACTION_STATE = TTRANSACTION_STATE

type TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = TTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION

const TRANSFORM_CTM = 4107

type TRANSMIT_FILE_BUFFERS = TTRANSMIT_FILE_BUFFERS

const TRANSPARENT = 1

const TRANSPORT_TYPE_CN = 1

const TRANSPORT_TYPE_DG = 2

const TRANSPORT_TYPE_LPC = 4

const TRANSPORT_TYPE_WMSG = 8

type TRASTERIZER_STATUS = struct {
	FnSize       int16
	FwFlags      int16
	FnLanguageID int16
}

type TRATE_QUOTA_LIMIT = struct {
	F__ccgo1_0 [0]struct {
		F__ccgo0 uint32
	}
	FRateData TDWORD
}

type TRAWHID = struct {
	FdwSizeHid TDWORD
	FdwCount   TDWORD
	FbRawData  [1]TBYTE
}

type TRAWINPUT = struct {
	Fheader TRAWINPUTHEADER
	Fdata   struct {
		Fkeyboard [0]TRAWKEYBOARD
		Fhid      [0]TRAWHID
		Fmouse    TRAWMOUSE
	}
}

type TRAWINPUTDEVICE = struct {
	FusUsagePage TUSHORT
	FusUsage     TUSHORT
	FdwFlags     TDWORD
	FhwndTarget  THWND
}

type TRAWINPUTDEVICELIST = struct {
	FhDevice THANDLE
	FdwType  TDWORD
}

type TRAWINPUTHEADER = struct {
	FdwType  TDWORD
	FdwSize  TDWORD
	FhDevice THANDLE
	FwParam  TWPARAM
}

type TRAWKEYBOARD = struct {
	FMakeCode         TUSHORT
	FFlags            TUSHORT
	FReserved         TUSHORT
	FVKey             TUSHORT
	FMessage          TUINT
	FExtraInformation TULONG
}

type TRAWMOUSE = struct {
	FusFlags   TUSHORT
	F__ccgo1_4 struct {
		F__ccgo1_0 [0]struct {
			FusButtonFlags TUSHORT
			FusButtonData  TUSHORT
		}
		FulButtons TULONG
	}
	FulRawButtons       TULONG
	FlLastX             TLONG
	FlLastY             TLONG
	FulExtraInformation TULONG
}

type TRDR_CALLOUT_STATE = struct {
	FLastError           TRPC_STATUS
	FLastEEInfo          uintptr
	FLastCalledStage     TRPC_HTTP_REDIRECTOR_STAGE
	FServerName          uintptr
	FServerPort          uintptr
	FRemoteUser          uintptr
	FAuthType            uintptr
	FResourceTypePresent uint8
	FMetadataPresent     uint8
	FSessionIdPresent    uint8
	FInterfacePresent    uint8
	FResourceType        TUUID
	FMetadata            TRPC_C_OPT_METADATA_DESCRIPTOR
	FSessionId           TUUID
	FInterface           TRPC_SYNTAX_IDENTIFIER
	FCertContext         uintptr
}

type TREAD_ELEMENT_ADDRESS_INFO = struct {
	FNumberOfElements TDWORD
	FElementStatus    [1]TCHANGER_ELEMENT_STATUS
}

type TREASON_CONTEXT = struct {
	FVersion TULONG
	FFlags   TDWORD
	FReason  struct {
		FSimpleReasonString [0]TLPWSTR
		FDetailed           struct {
			FLocalizedReasonModule THMODULE
			FLocalizedReasonId     TULONG
			FReasonStringCount     TULONG
			FReasonStrings         uintptr
		}
	}
}

type TREASSIGN_BLOCKS = struct {
	FReserved    TWORD
	FCount       TWORD
	FBlockNumber [1]TDWORD
}

type TRECONVERTSTRING = struct {
	FdwSize            TDWORD
	FdwVersion         TDWORD
	FdwStrLen          TDWORD
	FdwStrOffset       TDWORD
	FdwCompStrLen      TDWORD
	FdwCompStrOffset   TDWORD
	FdwTargetStrLen    TDWORD
	FdwTargetStrOffset TDWORD
}

type TRECT = struct {
	Fleft   TLONG
	Ftop    TLONG
	Fright  TLONG
	Fbottom TLONG
}

type TRECTL = struct {
	Fleft   TLONG
	Ftop    TLONG
	Fright  TLONG
	Fbottom TLONG
}

type TREDIRECTION_DESCRIPTOR = struct {
	FVersion       TULONG
	FFunctionCount TULONG
	FRedirections  TPCREDIRECTION_FUNCTION_DESCRIPTOR
}

type TREDIRECTION_FUNCTION_DESCRIPTOR = struct {
	FDllName           TPCSTR
	FFunctionName      TPCSTR
	FRedirectionTarget TPVOID
}

type TREGCLS = int32

type TREGISTERWORD = struct {
	FlpReading TLPSTR
	FlpWord    TLPSTR
}

type TREGISTERWORDA = struct {
	FlpReading TLPSTR
	FlpWord    TLPSTR
}

type TREGISTERWORDENUMPROCA = uintptr

type TREGISTERWORDENUMPROCW = uintptr

type TREGISTERWORDW = struct {
	FlpReading TLPWSTR
	FlpWord    TLPWSTR
}

type TREGKIND = int32

type TREGSAM = uint32

type TREG_PROVIDER = struct {
	Fpi_R0_1val     TPQUERYHANDLER
	Fpi_R0_allvals  TPQUERYHANDLER
	Fpi_R3_1val     TPQUERYHANDLER
	Fpi_R3_allvals  TPQUERYHANDLER
	Fpi_flags       TDWORD
	Fpi_key_context TLPVOID
}

type TREMOTE_NAME_INFO = struct {
	FlpUniversalName  TLPSTR
	FlpConnectionName TLPSTR
	FlpRemainingPath  TLPSTR
}

type TREMOTE_NAME_INFOA = struct {
	FlpUniversalName  TLPSTR
	FlpConnectionName TLPSTR
	FlpRemainingPath  TLPSTR
}

type TREMOTE_NAME_INFOW = struct {
	FlpUniversalName  TLPWSTR
	FlpConnectionName TLPWSTR
	FlpRemainingPath  TLPWSTR
}

type TREMSECURITY_ATTRIBUTES = struct {
	FnLength              TDWORD
	FlpSecurityDescriptor TDWORD
	FbInheritHandle       TWINBOOL
}

type TREPARSE_GUID_DATA_BUFFER = struct {
	FReparseTag           TDWORD
	FReparseDataLength    TWORD
	FReserved             TWORD
	FReparseGuid          TGUID
	FGenericReparseBuffer struct {
		FDataBuffer [1]TBYTE
	}
}

type TREQUEST_OPLOCK_INPUT_BUFFER = struct {
	FStructureVersion     TWORD
	FStructureLength      TWORD
	FRequestedOplockLevel TDWORD
	FFlags                TDWORD
}

type TREQUEST_OPLOCK_OUTPUT_BUFFER = struct {
	FStructureVersion    TWORD
	FStructureLength     TWORD
	FOriginalOplockLevel TDWORD
	FNewOplockLevel      TDWORD
	FFlags               TDWORD
	FAccessMode          TACCESS_MASK
	FShareMode           TWORD
}

type TRESIZE_VIRTUAL_DISK_FLAG = int32

type TRESIZE_VIRTUAL_DISK_VERSION = int32

type TRESOURCEMANAGER_BASIC_INFORMATION = struct {
	FResourceManagerId TGUID
	FDescriptionLength TDWORD
	FDescription       [1]TWCHAR
}

type TRESOURCEMANAGER_COMPLETION_INFORMATION = struct {
	FIoCompletionPortHandle THANDLE
	FCompletionKey          TULONG_PTR
}

type TRESOURCEMANAGER_INFORMATION_CLASS = int32

type TRGBQUAD = struct {
	FrgbBlue     TBYTE
	FrgbGreen    TBYTE
	FrgbRed      TBYTE
	FrgbReserved TBYTE
}

type TRGBTRIPLE = struct {
	FrgbtBlue  TBYTE
	FrgbtGreen TBYTE
	FrgbtRed   TBYTE
}

type TRGNDATA = struct {
	Frdh    TRGNDATAHEADER
	FBuffer [1]int8
}

type TRGNDATAHEADER = struct {
	FdwSize   TDWORD
	FiType    TDWORD
	FnCount   TDWORD
	FnRgnSize TDWORD
	FrcBound  TRECT
}

type TRID_DEVICE_INFO = struct {
	FcbSize    TDWORD
	FdwType    TDWORD
	F__ccgo2_8 struct {
		Fkeyboard    [0]TRID_DEVICE_INFO_KEYBOARD
		Fhid         [0]TRID_DEVICE_INFO_HID
		Fmouse       TRID_DEVICE_INFO_MOUSE
		F__ccgo_pad3 [8]byte
	}
}

type TRID_DEVICE_INFO_HID = struct {
	FdwVendorId      TDWORD
	FdwProductId     TDWORD
	FdwVersionNumber TDWORD
	FusUsagePage     TUSHORT
	FusUsage         TUSHORT
}

type TRID_DEVICE_INFO_KEYBOARD = struct {
	FdwType                 TDWORD
	FdwSubType              TDWORD
	FdwKeyboardMode         TDWORD
	FdwNumberOfFunctionKeys TDWORD
	FdwNumberOfIndicators   TDWORD
	FdwNumberOfKeysTotal    TDWORD
}

type TRID_DEVICE_INFO_MOUSE = struct {
	FdwId                TDWORD
	FdwNumberOfButtons   TDWORD
	FdwSampleRate        TDWORD
	FfHasHorizontalWheel TWINBOOL
}

type TRIP_INFO = struct {
	FdwError TDWORD
	FdwType  TDWORD
}

type TRIVERTEX = TTRIVERTEX

type TROOT_INFO_LUID = struct {
	FLowPart  TDWORD
	FHighPart TLONG
}

type TRPCLT_PDU_FILTER_FUNC = uintptr

type TRPCOLEDATAREP = uint32

type TRPCOLEMESSAGE = struct {
	Freserved1          uintptr
	FdataRepresentation TRPCOLEDATAREP
	FBuffer             uintptr
	FcbBuffer           TULONG
	FiMethod            TULONG
	Freserved2          [5]uintptr
	FrpcFlags           TULONG
}

type TRPCOPT_PROPERTIES = int32

type TRPCOPT_SERVER_LOCALITY_VALUES = int32

type TRPC_ASYNC_EVENT = int32

type TRPC_AUTHZ_HANDLE = uintptr

type TRPC_AUTH_IDENTITY_HANDLE = uintptr

type TRPC_AUTH_KEY_RETRIEVAL_FN = uintptr

type TRPC_BINDING_HANDLE = uintptr

type TRPC_BINDING_HANDLE_OPTIONS = struct {
	FVersion     uint32
	FFlags       uint32
	FComTimeout  uint32
	FCallTimeout uint32
}

type TRPC_BINDING_HANDLE_OPTIONS_V1 = struct {
	FVersion     uint32
	FFlags       uint32
	FComTimeout  uint32
	FCallTimeout uint32
}

type TRPC_BINDING_HANDLE_SECURITY = struct {
	FVersion         uint32
	FServerPrincName uintptr
	FAuthnLevel      uint32
	FAuthnSvc        uint32
	FAuthIdentity    uintptr
	FSecurityQos     uintptr
}

type TRPC_BINDING_HANDLE_SECURITY_V1 = struct {
	FVersion         uint32
	FServerPrincName uintptr
	FAuthnLevel      uint32
	FAuthnSvc        uint32
	FAuthIdentity    uintptr
	FSecurityQos     uintptr
}

type TRPC_BINDING_HANDLE_TEMPLATE = struct {
	FVersion          uint32
	FFlags            uint32
	FProtocolSequence uint32
	FNetworkAddress   uintptr
	FStringEndpoint   uintptr
	Fu1               struct {
		FReserved uintptr
	}
	FObjectUuid TUUID
}

type TRPC_BINDING_HANDLE_TEMPLATE_V1 = struct {
	FVersion          uint32
	FFlags            uint32
	FProtocolSequence uint32
	FNetworkAddress   uintptr
	FStringEndpoint   uintptr
	Fu1               struct {
		FReserved uintptr
	}
	FObjectUuid TUUID
}

type TRPC_BINDING_VECTOR = struct {
	FCount    uint32
	FBindingH [1]TRPC_BINDING_HANDLE
}

type TRPC_BUFPTR = uintptr

type TRPC_CALL_ATTRIBUTES = struct {
	FVersion                         uint32
	FFlags                           uint32
	FServerPrincipalNameBufferLength uint32
	FServerPrincipalName             uintptr
	FClientPrincipalNameBufferLength uint32
	FClientPrincipalName             uintptr
	FAuthenticationLevel             uint32
	FAuthenticationService           uint32
	FNullSession                     TWINBOOL
}

type TRPC_CALL_ATTRIBUTES_A = struct {
	FVersion                         uint32
	FFlags                           uint32
	FServerPrincipalNameBufferLength uint32
	FServerPrincipalName             uintptr
	FClientPrincipalNameBufferLength uint32
	FClientPrincipalName             uintptr
	FAuthenticationLevel             uint32
	FAuthenticationService           uint32
	FNullSession                     TWINBOOL
	FKernelMode                      TWINBOOL
	FProtocolSequence                uint32
	FIsClientLocal                   TRpcCallClientLocality
	FClientPID                       THANDLE
	FCallStatus                      uint32
	FCallType                        TRpcCallType
	FCallLocalAddress                uintptr
	FOpNum                           uint16
	FInterfaceUuid                   TUUID
}

type TRPC_CALL_ATTRIBUTES_V1_A = struct {
	FVersion                         uint32
	FFlags                           uint32
	FServerPrincipalNameBufferLength uint32
	FServerPrincipalName             uintptr
	FClientPrincipalNameBufferLength uint32
	FClientPrincipalName             uintptr
	FAuthenticationLevel             uint32
	FAuthenticationService           uint32
	FNullSession                     TWINBOOL
}

type TRPC_CALL_ATTRIBUTES_V1_W = struct {
	FVersion                         uint32
	FFlags                           uint32
	FServerPrincipalNameBufferLength uint32
	FServerPrincipalName             uintptr
	FClientPrincipalNameBufferLength uint32
	FClientPrincipalName             uintptr
	FAuthenticationLevel             uint32
	FAuthenticationService           uint32
	FNullSession                     TWINBOOL
}

type TRPC_CALL_ATTRIBUTES_V2_A = struct {
	FVersion                         uint32
	FFlags                           uint32
	FServerPrincipalNameBufferLength uint32
	FServerPrincipalName             uintptr
	FClientPrincipalNameBufferLength uint32
	FClientPrincipalName             uintptr
	FAuthenticationLevel             uint32
	FAuthenticationService           uint32
	FNullSession                     TWINBOOL
	FKernelMode                      TWINBOOL
	FProtocolSequence                uint32
	FIsClientLocal                   TRpcCallClientLocality
	FClientPID                       THANDLE
	FCallStatus                      uint32
	FCallType                        TRpcCallType
	FCallLocalAddress                uintptr
	FOpNum                           uint16
	FInterfaceUuid                   TUUID
}

type TRPC_CALL_ATTRIBUTES_V2_W = struct {
	FVersion                         uint32
	FFlags                           uint32
	FServerPrincipalNameBufferLength uint32
	FServerPrincipalName             uintptr
	FClientPrincipalNameBufferLength uint32
	FClientPrincipalName             uintptr
	FAuthenticationLevel             uint32
	FAuthenticationService           uint32
	FNullSession                     TWINBOOL
	FKernelMode                      TWINBOOL
	FProtocolSequence                uint32
	FIsClientLocal                   TRpcCallClientLocality
	FClientPID                       THANDLE
	FCallStatus                      uint32
	FCallType                        TRpcCallType
	FCallLocalAddress                uintptr
	FOpNum                           uint16
	FInterfaceUuid                   TUUID
}

type TRPC_CALL_ATTRIBUTES_W = struct {
	FVersion                         uint32
	FFlags                           uint32
	FServerPrincipalNameBufferLength uint32
	FServerPrincipalName             uintptr
	FClientPrincipalNameBufferLength uint32
	FClientPrincipalName             uintptr
	FAuthenticationLevel             uint32
	FAuthenticationService           uint32
	FNullSession                     TWINBOOL
	FKernelMode                      TWINBOOL
	FProtocolSequence                uint32
	FIsClientLocal                   TRpcCallClientLocality
	FClientPID                       THANDLE
	FCallStatus                      uint32
	FCallType                        TRpcCallType
	FCallLocalAddress                uintptr
	FOpNum                           uint16
	FInterfaceUuid                   TUUID
}

type TRPC_CALL_LOCAL_ADDRESS_A = struct {
	FVersion       uint32
	FBuffer        uintptr
	FBufferSize    uint32
	FAddressFormat TRpcLocalAddressFormat
}

type TRPC_CALL_LOCAL_ADDRESS_V1_A = struct {
	FVersion       uint32
	FBuffer        uintptr
	FBufferSize    uint32
	FAddressFormat TRpcLocalAddressFormat
}

type TRPC_CALL_LOCAL_ADDRESS_V1_W = struct {
	FVersion       uint32
	FBuffer        uintptr
	FBufferSize    uint32
	FAddressFormat TRpcLocalAddressFormat
}

type TRPC_CALL_LOCAL_ADDRESS_W = struct {
	FVersion       uint32
	FBuffer        uintptr
	FBufferSize    uint32
	FAddressFormat TRpcLocalAddressFormat
}

type TRPC_CLIENT_INFORMATION1 = struct {
	FUserName     uintptr
	FComputerName uintptr
	FPrivilege    uint16
	FAuthFlags    uint32
}

type TRPC_CLIENT_INTERFACE = struct {
	FLength                  uint32
	FInterfaceId             TRPC_SYNTAX_IDENTIFIER
	FTransferSyntax          TRPC_SYNTAX_IDENTIFIER
	FDispatchTable           TPRPC_DISPATCH_TABLE
	FRpcProtseqEndpointCount uint32
	FRpcProtseqEndpoint      TPRPC_PROTSEQ_ENDPOINT
	FReserved                TULONG_PTR
	FInterpreterInfo         uintptr
	FFlags                   uint32
}

type TRPC_CSTR = uintptr

type TRPC_C_OPT_METADATA_DESCRIPTOR = struct {
	FBufferSize uint32
	FBuffer     uintptr
}

type TRPC_DISPATCH_FUNCTION = uintptr

type TRPC_DISPATCH_TABLE = struct {
	FDispatchTableCount uint32
	FDispatchTable      uintptr
	FReserved           TLONG_PTR
}

type TRPC_EP_INQ_HANDLE = uintptr

type TRPC_ERROR_ENUM_HANDLE = struct {
	FSignature  TULONG
	FCurrentPos uintptr
	FHead       uintptr
}

type TRPC_HTTP_PROXY_FREE_STRING = uintptr

type TRPC_HTTP_REDIRECTOR_STAGE = int32

type TRPC_HTTP_TRANSPORT_CREDENTIALS_A = struct {
	FTransportCredentials     uintptr
	FFlags                    uint32
	FAuthenticationTarget     uint32
	FNumberOfAuthnSchemes     uint32
	FAuthnSchemes             uintptr
	FServerCertificateSubject uintptr
}

type TRPC_HTTP_TRANSPORT_CREDENTIALS_W = struct {
	FTransportCredentials     uintptr
	FFlags                    uint32
	FAuthenticationTarget     uint32
	FNumberOfAuthnSchemes     uint32
	FAuthnSchemes             uintptr
	FServerCertificateSubject uintptr
}

type TRPC_IF_HANDLE = uintptr

type TRPC_IF_ID = struct {
	FUuid      TUUID
	FVersMajor uint16
	FVersMinor uint16
}

type TRPC_IF_ID_VECTOR = struct {
	FCount uint32
	FIfId  [1]uintptr
}

type TRPC_IMPORT_CONTEXT_P = struct {
	FLookupContext  TRPC_NS_HANDLE
	FProposedHandle TRPC_BINDING_HANDLE
	FBindings       uintptr
}

type TRPC_LENGTH = uint32

type TRPC_MESSAGE = struct {
	FHandle                  TRPC_BINDING_HANDLE
	FDataRepresentation      uint32
	FBuffer                  uintptr
	FBufferLength            uint32
	FProcNum                 uint32
	FTransferSyntax          TPRPC_SYNTAX_IDENTIFIER
	FRpcInterfaceInformation uintptr
	FReservedForRuntime      uintptr
	FManagerEpv              uintptr
	FImportContext           uintptr
	FRpcFlags                uint32
}

type TRPC_MGMT_AUTHORIZATION_FN = uintptr

type TRPC_NEW_HTTP_PROXY_CHANNEL = uintptr

type TRPC_NOTIFICATIONS = int32

type TRPC_NOTIFICATION_TYPES = int32

type TRPC_NS_HANDLE = uintptr

type TRPC_POLICY = struct {
	FLength        uint32
	FEndpointFlags uint32
	FNICFlags      uint32
}

type TRPC_PROTSEQ_ENDPOINT = struct {
	FRpcProtocolSequence uintptr
	FEndpoint            uintptr
}

type TRPC_PROTSEQ_VECTORA = struct {
	FCount   uint32
	FProtseq [1]uintptr
}

type TRPC_PROTSEQ_VECTORW = struct {
	FCount   uint32
	FProtseq [1]uintptr
}

type TRPC_SECURITY_QOS = struct {
	FVersion           uint32
	FCapabilities      uint32
	FIdentityTracking  uint32
	FImpersonationType uint32
}

type TRPC_SECURITY_QOS_V2_A = struct {
	FVersion                    uint32
	FCapabilities               uint32
	FIdentityTracking           uint32
	FImpersonationType          uint32
	FAdditionalSecurityInfoType uint32
	Fu                          struct {
		FHttpCredentials uintptr
	}
}

type TRPC_SECURITY_QOS_V2_W = struct {
	FVersion                    uint32
	FCapabilities               uint32
	FIdentityTracking           uint32
	FImpersonationType          uint32
	FAdditionalSecurityInfoType uint32
	Fu                          struct {
		FHttpCredentials uintptr
	}
}

type TRPC_SECURITY_QOS_V3_A = struct {
	FVersion                    uint32
	FCapabilities               uint32
	FIdentityTracking           uint32
	FImpersonationType          uint32
	FAdditionalSecurityInfoType uint32
	Fu                          struct {
		FHttpCredentials uintptr
	}
	FSid uintptr
}

type TRPC_SECURITY_QOS_V3_W = struct {
	FVersion                    uint32
	FCapabilities               uint32
	FIdentityTracking           uint32
	FImpersonationType          uint32
	FAdditionalSecurityInfoType uint32
	Fu                          struct {
		FHttpCredentials uintptr
	}
	FSid uintptr
}

type TRPC_SERVER_INTERFACE = struct {
	FLength                  uint32
	FInterfaceId             TRPC_SYNTAX_IDENTIFIER
	FTransferSyntax          TRPC_SYNTAX_IDENTIFIER
	FDispatchTable           TPRPC_DISPATCH_TABLE
	FRpcProtseqEndpointCount uint32
	FRpcProtseqEndpoint      TPRPC_PROTSEQ_ENDPOINT
	FDefaultManagerEpv       uintptr
	FInterpreterInfo         uintptr
	FFlags                   uint32
}

type TRPC_SETFILTER_FUNC = uintptr

type TRPC_SS_THREAD_HANDLE = uintptr

type TRPC_STATS_VECTOR = struct {
	FCount uint32
	FStats [1]uint32
}

type TRPC_STATUS = int32

type TRPC_SYNTAX_IDENTIFIER = struct {
	FSyntaxGUID    TGUID
	FSyntaxVersion TRPC_VERSION
}

type TRPC_TRANSFER_SYNTAX = struct {
	FUuid      TUUID
	FVersMajor uint16
	FVersMinor uint16
}

type TRPC_VERSION = struct {
	FMajorVersion uint16
	FMinorVersion uint16
}

type TRPC_WSTR = uintptr

type TRSAPUBKEY = struct {
	Fmagic  TDWORD
	Fbitlen TDWORD
	Fpubexp TDWORD
}

type TRTL_BARRIER = struct {
	FReserved1 TDWORD
	FReserved2 TDWORD
	FReserved3 [2]TULONG_PTR
	FReserved4 TDWORD
	FReserved5 TDWORD
}

type TRTL_CONDITION_VARIABLE = struct {
	FPtr TPVOID
}

type TRTL_CRITICAL_SECTION = struct {
	FDebugInfo      TPRTL_CRITICAL_SECTION_DEBUG
	FLockCount      TLONG
	FRecursionCount TLONG
	FOwningThread   THANDLE
	FLockSemaphore  THANDLE
	FSpinCount      TULONG_PTR
}

type TRTL_CRITICAL_SECTION_DEBUG = struct {
	FType                      TWORD
	FCreatorBackTraceIndex     TWORD
	FCriticalSection           uintptr
	FProcessLocksList          TLIST_ENTRY
	FEntryCount                TDWORD
	FContentionCount           TDWORD
	FFlags                     TDWORD
	FCreatorBackTraceIndexHigh TWORD
	FSpareWORD                 TWORD
}

type TRTL_OSVERSIONINFOEXW = struct {
	FdwOSVersionInfoSize TDWORD
	FdwMajorVersion      TDWORD
	FdwMinorVersion      TDWORD
	FdwBuildNumber       TDWORD
	FdwPlatformId        TDWORD
	FszCSDVersion        [128]TWCHAR
	FwServicePackMajor   TWORD
	FwServicePackMinor   TWORD
	FwSuiteMask          TWORD
	FwProductType        TBYTE
	FwReserved           TBYTE
}

type TRTL_OSVERSIONINFOW = struct {
	FdwOSVersionInfoSize TDWORD
	FdwMajorVersion      TDWORD
	FdwMinorVersion      TDWORD
	FdwBuildNumber       TDWORD
	FdwPlatformId        TDWORD
	FszCSDVersion        [128]TWCHAR
}

type TRTL_RESOURCE_DEBUG = struct {
	FType                      TWORD
	FCreatorBackTraceIndex     TWORD
	FCriticalSection           uintptr
	FProcessLocksList          TLIST_ENTRY
	FEntryCount                TDWORD
	FContentionCount           TDWORD
	FFlags                     TDWORD
	FCreatorBackTraceIndexHigh TWORD
	FSpareWORD                 TWORD
}

type TRTL_RUN_ONCE = struct {
	FPtr TPVOID
}

type TRTL_SRWLOCK = struct {
	FPtr TPVOID
}

type TRTL_UMS_SCHEDULER_REASON = int32

type TRTL_UMS_THREAD_INFO_CLASS = int32

type TRTL_VERIFIER_DLL_DESCRIPTOR = struct {
	FDllName    TPWCHAR
	FDllFlags   TDWORD
	FDllAddress TPVOID
	FDllThunks  TPRTL_VERIFIER_THUNK_DESCRIPTOR
}

type TRTL_VERIFIER_DLL_LOAD_CALLBACK = uintptr

type TRTL_VERIFIER_DLL_UNLOAD_CALLBACK = uintptr

type TRTL_VERIFIER_NTDLLHEAPFREE_CALLBACK = uintptr

type TRTL_VERIFIER_PROVIDER_DESCRIPTOR = struct {
	FLength                        TDWORD
	FProviderDlls                  TPRTL_VERIFIER_DLL_DESCRIPTOR
	FProviderDllLoadCallback       TRTL_VERIFIER_DLL_LOAD_CALLBACK
	FProviderDllUnloadCallback     TRTL_VERIFIER_DLL_UNLOAD_CALLBACK
	FVerifierImage                 TPWSTR
	FVerifierFlags                 TDWORD
	FVerifierDebug                 TDWORD
	FRtlpGetStackTraceAddress      TPVOID
	FRtlpDebugPageHeapCreate       TPVOID
	FRtlpDebugPageHeapDestroy      TPVOID
	FProviderNtdllHeapFreeCallback TRTL_VERIFIER_NTDLLHEAPFREE_CALLBACK
}

type TRTL_VERIFIER_THUNK_DESCRIPTOR = struct {
	FThunkName       TPCHAR
	FThunkOldAddress TPVOID
	FThunkNewAddress TPVOID
}

const TRUETYPE_FONTTYPE = 4

const TRUNCATE_EXISTING = 5

const TRY_AGAIN = 11002

type TRemBINDINFO = struct {
	FcbSize             TULONG
	FszExtraInfo        TLPWSTR
	FgrfBindInfoF       TDWORD
	FdwBindVerb         TDWORD
	FszCustomVerb       TLPWSTR
	FcbstgmedData       TDWORD
	FdwOptions          TDWORD
	FdwOptionsFlags     TDWORD
	FdwCodePage         TDWORD
	FsecurityAttributes TREMSECURITY_ATTRIBUTES
	Fiid                TIID
	FpUnk               uintptr
	FdwReserved         TDWORD
}

type TRemFORMATETC = struct {
	FcfFormat TDWORD
	Fptd      TDWORD
	FdwAspect TDWORD
	Flindex   TLONG
	Ftymed    TDWORD
}

type TRemHBITMAP = struct {
	FcbData TULONG
	Fdata   [1]Tbyte
}

type TRemHBRUSH = struct {
	FcbData TULONG
	Fdata   [1]Tbyte
}

type TRemHENHMETAFILE = struct {
	FcbData TULONG
	Fdata   [1]Tbyte
}

type TRemHGLOBAL = struct {
	FfNullHGlobal TLONG
	FcbData       TULONG
	Fdata         [1]Tbyte
}

type TRemHMETAFILEPICT = struct {
	Fmm     TLONG
	FxExt   TLONG
	FyExt   TLONG
	FcbData TULONG
	Fdata   [1]Tbyte
}

type TRemHPALETTE = struct {
	FcbData TULONG
	Fdata   [1]Tbyte
}

type TRemSNB = struct {
	FulCntStr  TULONG
	FulCntChar TULONG
	FrgString  [1]TOLECHAR
}

type TRemSTGMEDIUM = struct {
	Ftymed          TDWORD
	FdwHandleType   TDWORD
	FpData          TULONG
	FpUnkForRelease TULONG
	FcbData         TULONG
	Fdata           [1]Tbyte
}

type TRemotableHandle = struct {
	FfContext TLONG
	Fu        t__WIDL_wtypes_generated_name_00000009
}

type TReplacesCorHdrNumericDefines = int32

type TRpcCallClientLocality = int32

type TRpcCallType = int32

type TRpcLocalAddressFormat = int32

type TSAFEARRAY = struct {
	FcDims      TUSHORT
	FfFeatures  TUSHORT
	FcbElements TULONG
	FcLocks     TULONG
	FpvData     TPVOID
	Frgsabound  [1]TSAFEARRAYBOUND
}

type TSAFEARRAYBOUND = struct {
	FcElements TULONG
	FlLbound   TLONG
}

type TSAFEARRAYUNION = struct {
	FsfType TULONG
	Fu      t__WIDL_oaidl_generated_name_0000000E
}

type TSAFEARR_BRECORD = struct {
	FSize    TULONG
	FaRecord uintptr
}

type TSAFEARR_BSTR = struct {
	FSize  TULONG
	FaBstr uintptr
}

type TSAFEARR_DISPATCH = struct {
	FSize       TULONG
	FapDispatch uintptr
}

type TSAFEARR_HAVEIID = struct {
	FSize      TULONG
	FapUnknown uintptr
	Fiid       TIID
}

type TSAFEARR_UNKNOWN = struct {
	FSize      TULONG
	FapUnknown uintptr
}

type TSAFEARR_VARIANT = struct {
	FSize     TULONG
	FaVariant uintptr
}

type TSAVEPOINT_ID = uint32

type TSCARD_ATRMASK = struct {
	FcbAtr   TDWORD
	FrgbAtr  [36]TBYTE
	FrgbMask [36]TBYTE
}

type TSCARD_IO_REQUEST = struct {
	FdwProtocol  TDWORD
	FcbPciLength TDWORD
}

type TSCARD_READERSTATE = struct {
	FszReader       TLPCSTR
	FpvUserData     TLPVOID
	FdwCurrentState TDWORD
	FdwEventState   TDWORD
	FcbAtr          TDWORD
	FrgbAtr         [36]TBYTE
}

type TSCARD_READERSTATEA = struct {
	FszReader       TLPCSTR
	FpvUserData     TLPVOID
	FdwCurrentState TDWORD
	FdwEventState   TDWORD
	FcbAtr          TDWORD
	FrgbAtr         [36]TBYTE
}

type TSCARD_READERSTATEW = struct {
	FszReader       TLPCWSTR
	FpvUserData     TLPVOID
	FdwCurrentState TDWORD
	FdwEventState   TDWORD
	FcbAtr          TDWORD
	FrgbAtr         [36]TBYTE
}

type TSCARD_T0_COMMAND = struct {
	FbCla TBYTE
	FbIns TBYTE
	FbP1  TBYTE
	FbP2  TBYTE
	FbP3  TBYTE
}

type TSCARD_T0_REQUEST = struct {
	FioRequest  TSCARD_IO_REQUEST
	FbSw1       TBYTE
	FbSw2       TBYTE
	F__ccgo3_10 struct {
		FrgbHeader [0][5]TBYTE
		FCmdBytes  TSCARD_T0_COMMAND
	}
}

type TSCARD_T1_REQUEST = struct {
	FioRequest TSCARD_IO_REQUEST
}

type TSCHANNEL_ALG = struct {
	FdwUse      TDWORD
	FAlgid      TALG_ID
	FcBits      TDWORD
	FdwFlags    TDWORD
	FdwReserved TDWORD
}

type TSCODE = int32

type TSCONTEXT_QUEUE = struct {
	FNumberOfObjects uint32
	FArrayOfObjects  uintptr
}

type TSCOPE_TABLE_AMD64 = struct {
	FCount       TDWORD
	FScopeRecord [1]struct {
		FBeginAddress   TDWORD
		FEndAddress     TDWORD
		FHandlerAddress TDWORD
		FJumpTarget     TDWORD
	}
}

type TSCROLLBARINFO = struct {
	FcbSize        TDWORD
	FrcScrollBar   TRECT
	FdxyLineButton int32
	FxyThumbTop    int32
	FxyThumbBottom int32
	Freserved      int32
	Frgstate       [6]TDWORD
}

type TSCROLLINFO = struct {
	FcbSize    TUINT
	FfMask     TUINT
	FnMin      int32
	FnMax      int32
	FnPage     TUINT
	FnPos      int32
	FnTrackPos int32
}

type TSCRUB_DATA_INPUT = struct {
	FSize          TDWORD
	FFlags         TDWORD
	FMaximumIos    TDWORD
	FReserved      [17]TDWORD
	FResumeContext [816]TBYTE
}

type TSC_ACTION = struct {
	FType  TSC_ACTION_TYPE
	FDelay TDWORD
}

type TSC_ACTION_TYPE = int32

type TSC_ENUM_TYPE = int32

type TSC_HANDLE = uintptr

type TSC_HANDLE__ = struct {
	Funused int32
}

type TSC_LOCK = uintptr

type TSC_STATUS_TYPE = int32

type TSChannelHookCallInfo = struct {
	Fiid         TIID
	FcbSize      TDWORD
	FuCausality  TGUID
	FdwServerPid TDWORD
	FiMethod     TDWORD
	FpObject     uintptr
}

type TSD_CHANGE_MACHINE_SID_INPUT = struct {
	FCurrentMachineSIDOffset TUSHORT
	FCurrentMachineSIDLength TUSHORT
	FNewMachineSIDOffset     TUSHORT
	FNewMachineSIDLength     TUSHORT
}

type TSECURITY_ATTRIBUTES = struct {
	FnLength              TDWORD
	FlpSecurityDescriptor TLPVOID
	FbInheritHandle       TWINBOOL
}

type TSECURITY_CAPABILITIES = struct {
	FAppContainerSid TPSID
	FCapabilities    TPSID_AND_ATTRIBUTES
	FCapabilityCount TDWORD
	FReserved        TDWORD
}

type TSECURITY_CONTEXT_TRACKING_MODE = uint8

type TSECURITY_DESCRIPTOR = struct {
	FRevision TBYTE
	FSbz1     TBYTE
	FControl  TSECURITY_DESCRIPTOR_CONTROL
	FOwner    TPSID
	FGroup    TPSID
	FSacl     TPACL
	FDacl     TPACL
}

type TSECURITY_DESCRIPTOR_CONTROL = uint16

type TSECURITY_DESCRIPTOR_RELATIVE = struct {
	FRevision TBYTE
	FSbz1     TBYTE
	FControl  TSECURITY_DESCRIPTOR_CONTROL
	FOwner    TDWORD
	FGroup    TDWORD
	FSacl     TDWORD
	FDacl     TDWORD
}

type TSECURITY_IMPERSONATION_LEVEL = int32

type TSECURITY_INFORMATION = uint32

type TSECURITY_QUALITY_OF_SERVICE = struct {
	FLength              TDWORD
	FImpersonationLevel  TSECURITY_IMPERSONATION_LEVEL
	FContextTrackingMode TSECURITY_CONTEXT_TRACKING_MODE
	FEffectiveOnly       TBOOLEAN
}

type TSECURITY_STATUS = int32

type TSEC_WINNT_AUTH_IDENTITY_A = struct {
	FUser           uintptr
	FUserLength     uint32
	FDomain         uintptr
	FDomainLength   uint32
	FPassword       uintptr
	FPasswordLength uint32
	FFlags          uint32
}

type TSEC_WINNT_AUTH_IDENTITY_W = struct {
	FUser           uintptr
	FUserLength     uint32
	FDomain         uintptr
	FDomainLength   uint32
	FPassword       uintptr
	FPasswordLength uint32
	FFlags          uint32
}

type TSENDASYNCPROC = uintptr

type TSENDCMDINPARAMS = struct {
	FcBufferSize  TDWORD
	FirDriveRegs  TIDEREGS
	FbDriveNumber TBYTE
	FbReserved    [3]TBYTE
	FdwReserved   [4]TDWORD
	FbBuffer      [1]TBYTE
}

type TSENDCMDOUTPARAMS = struct {
	FcBufferSize  TDWORD
	FDriverStatus TDRIVERSTATUS
	FbBuffer      [1]TBYTE
}

type TSERIALIZEDPROPERTYVALUE = struct {
	FdwType TDWORD
	Frgb    [1]TBYTE
}

type TSERIALKEYS = struct {
	FcbSize         TUINT
	FdwFlags        TDWORD
	FlpszActivePort TLPSTR
	FlpszPort       TLPSTR
	FiBaudRate      TUINT
	FiPortState     TUINT
	FiActive        TUINT
}

type TSERIALKEYSA = struct {
	FcbSize         TUINT
	FdwFlags        TDWORD
	FlpszActivePort TLPSTR
	FlpszPort       TLPSTR
	FiBaudRate      TUINT
	FiPortState     TUINT
	FiActive        TUINT
}

type TSERIALKEYSW = struct {
	FcbSize         TUINT
	FdwFlags        TDWORD
	FlpszActivePort TLPWSTR
	FlpszPort       TLPWSTR
	FiBaudRate      TUINT
	FiPortState     TUINT
	FiActive        TUINT
}

type TSERVERCALL = int32

type TSERVER_ROUTINE = uintptr

type TSERVICE_CONTROL_STATUS_REASON_PARAMS = struct {
	FdwReason      TDWORD
	FpszComment    TLPSTR
	FServiceStatus TSERVICE_STATUS_PROCESS
}

type TSERVICE_CONTROL_STATUS_REASON_PARAMSA = struct {
	FdwReason      TDWORD
	FpszComment    TLPSTR
	FServiceStatus TSERVICE_STATUS_PROCESS
}

type TSERVICE_CONTROL_STATUS_REASON_PARAMSW = struct {
	FdwReason      TDWORD
	FpszComment    TLPWSTR
	FServiceStatus TSERVICE_STATUS_PROCESS
}

type TSERVICE_DELAYED_AUTO_START_INFO = struct {
	FfDelayedAutostart TWINBOOL
}

type TSERVICE_DESCRIPTION = struct {
	FlpDescription TLPSTR
}

type TSERVICE_DESCRIPTIONA = struct {
	FlpDescription TLPSTR
}

type TSERVICE_DESCRIPTIONW = struct {
	FlpDescription TLPWSTR
}

type TSERVICE_ERROR_TYPE = int32

type TSERVICE_FAILURE_ACTIONS = struct {
	FdwResetPeriod TDWORD
	FlpRebootMsg   TLPSTR
	FlpCommand     TLPSTR
	FcActions      TDWORD
	FlpsaActions   uintptr
}

type TSERVICE_FAILURE_ACTIONSA = struct {
	FdwResetPeriod TDWORD
	FlpRebootMsg   TLPSTR
	FlpCommand     TLPSTR
	FcActions      TDWORD
	FlpsaActions   uintptr
}

type TSERVICE_FAILURE_ACTIONSW = struct {
	FdwResetPeriod TDWORD
	FlpRebootMsg   TLPWSTR
	FlpCommand     TLPWSTR
	FcActions      TDWORD
	FlpsaActions   uintptr
}

type TSERVICE_FAILURE_ACTIONS_FLAG = struct {
	FfFailureActionsOnNonCrashFailures TWINBOOL
}

type TSERVICE_LOAD_TYPE = int32

type TSERVICE_NODE_TYPE = int32

type TSERVICE_NOTIFY = struct {
	FdwVersion               TDWORD
	FpfnNotifyCallback       TPFN_SC_NOTIFY_CALLBACK
	FpContext                TPVOID
	FdwNotificationStatus    TDWORD
	FServiceStatus           TSERVICE_STATUS_PROCESS
	FdwNotificationTriggered TDWORD
	FpszServiceNames         TLPSTR
}

type TSERVICE_NOTIFYA = struct {
	FdwVersion               TDWORD
	FpfnNotifyCallback       TPFN_SC_NOTIFY_CALLBACK
	FpContext                TPVOID
	FdwNotificationStatus    TDWORD
	FServiceStatus           TSERVICE_STATUS_PROCESS
	FdwNotificationTriggered TDWORD
	FpszServiceNames         TLPSTR
}

type TSERVICE_NOTIFYW = struct {
	FdwVersion               TDWORD
	FpfnNotifyCallback       TPFN_SC_NOTIFY_CALLBACK
	FpContext                TPVOID
	FdwNotificationStatus    TDWORD
	FServiceStatus           TSERVICE_STATUS_PROCESS
	FdwNotificationTriggered TDWORD
	FpszServiceNames         TLPWSTR
}

type TSERVICE_PRESHUTDOWN_INFO = struct {
	FdwPreshutdownTimeout TDWORD
}

type TSERVICE_REQUIRED_PRIVILEGES_INFO = struct {
	FpmszRequiredPrivileges TLPSTR
}

type TSERVICE_REQUIRED_PRIVILEGES_INFOA = struct {
	FpmszRequiredPrivileges TLPSTR
}

type TSERVICE_REQUIRED_PRIVILEGES_INFOW = struct {
	FpmszRequiredPrivileges TLPWSTR
}

type TSERVICE_SID_INFO = struct {
	FdwServiceSidType TDWORD
}

type TSERVICE_STATUS = struct {
	FdwServiceType             TDWORD
	FdwCurrentState            TDWORD
	FdwControlsAccepted        TDWORD
	FdwWin32ExitCode           TDWORD
	FdwServiceSpecificExitCode TDWORD
	FdwCheckPoint              TDWORD
	FdwWaitHint                TDWORD
}

type TSERVICE_STATUS_HANDLE = uintptr

type TSERVICE_STATUS_HANDLE__ = struct {
	Funused int32
}

type TSERVICE_STATUS_PROCESS = struct {
	FdwServiceType             TDWORD
	FdwCurrentState            TDWORD
	FdwControlsAccepted        TDWORD
	FdwWin32ExitCode           TDWORD
	FdwServiceSpecificExitCode TDWORD
	FdwCheckPoint              TDWORD
	FdwWaitHint                TDWORD
	FdwProcessId               TDWORD
	FdwServiceFlags            TDWORD
}

type TSERVICE_TABLE_ENTRY = struct {
	FlpServiceName TLPSTR
	FlpServiceProc TLPSERVICE_MAIN_FUNCTIONA
}

type TSERVICE_TABLE_ENTRYA = struct {
	FlpServiceName TLPSTR
	FlpServiceProc TLPSERVICE_MAIN_FUNCTIONA
}

type TSERVICE_TABLE_ENTRYW = struct {
	FlpServiceName TLPWSTR
	FlpServiceProc TLPSERVICE_MAIN_FUNCTIONW
}

type TSESSION_BUFFER = struct {
	Flsn               TUCHAR
	Fstate             TUCHAR
	Flocal_name        [16]TUCHAR
	Fremote_name       [16]TUCHAR
	Frcvs_outstanding  TUCHAR
	Fsends_outstanding TUCHAR
}

type TSESSION_HEADER = struct {
	Fsess_name           TUCHAR
	Fnum_sess            TUCHAR
	Frcv_dg_outstanding  TUCHAR
	Frcv_any_outstanding TUCHAR
}

type TSET_PARTITION_INFORMATION = struct {
	FPartitionType TBYTE
}

type TSET_PARTITION_INFORMATION_MBR = struct {
	FPartitionType TBYTE
}

type TSET_POWER_SETTING_VALUE = struct {
	FVersion        TDWORD
	FGuid           TGUID
	FPowerCondition TSYSTEM_POWER_CONDITION
	FDataLength     TDWORD
	FData           [1]TBYTE
}

type TSET_VIRTUAL_DISK_INFO_VERSION = int32

type TSE_ACCESS_REPLY = struct {
	FSize            TDWORD
	FResultListCount TDWORD
	FGrantedAccess   TPACCESS_MASK
	FAccessStatus    TPDWORD
	FAccessReason    TPACCESS_REASONS
	FPrivileges      uintptr
}

type TSE_ACCESS_REQUEST = struct {
	FSize                    TDWORD
	FSeSecurityDescriptor    TPSE_SECURITY_DESCRIPTOR
	FDesiredAccess           TACCESS_MASK
	FPreviouslyGrantedAccess TACCESS_MASK
	FPrincipalSelfSid        TPSID
	FGenericMapping          TPGENERIC_MAPPING
	FObjectTypeListCount     TDWORD
	FObjectTypeList          TPOBJECT_TYPE_LIST
}

type TSE_IMPERSONATION_STATE = struct {
	FToken         TPACCESS_TOKEN
	FCopyOnOpen    TBOOLEAN
	FEffectiveOnly TBOOLEAN
	FLevel         TSECURITY_IMPERSONATION_LEVEL
}

type TSE_LEARNING_MODE_DATA_TYPE = int32

type TSE_SECURITY_DESCRIPTOR = struct {
	FSize               TDWORD
	FFlags              TDWORD
	FSecurityDescriptor TPSECURITY_DESCRIPTOR
}

type TSF_TYPE = int32

type TSHCREATEPROCESSINFOW = struct {
	FcbSize               TDWORD
	FfMask                TULONG
	Fhwnd                 THWND
	FpszFile              TLPCWSTR
	FpszParameters        TLPCWSTR
	FpszCurrentDirectory  TLPCWSTR
	FhUserToken           THANDLE
	FlpProcessAttributes  TLPSECURITY_ATTRIBUTES
	FlpThreadAttributes   TLPSECURITY_ATTRIBUTES
	FbInheritHandles      TWINBOOL
	FdwCreationFlags      TDWORD
	FlpStartupInfo        TLPSTARTUPINFOW
	FlpProcessInformation TLPPROCESS_INFORMATION
}

type TSHELLHOOKINFO = struct {
	Fhwnd THWND
	Frc   TRECT
}

type TSHFILEINFO = struct {
	FhIcon         THICON
	FiIcon         int32
	FdwAttributes  TDWORD
	FszDisplayName [260]TCHAR
	FszTypeName    [80]TCHAR
}

type TSHFILEINFOA = struct {
	FhIcon         THICON
	FiIcon         int32
	FdwAttributes  TDWORD
	FszDisplayName [260]TCHAR
	FszTypeName    [80]TCHAR
}

type TSHFILEINFOW = struct {
	FhIcon         THICON
	FiIcon         int32
	FdwAttributes  TDWORD
	FszDisplayName [260]TWCHAR
	FszTypeName    [80]TWCHAR
}

type TSHFILEOPSTRUCT = struct {
	Fhwnd                  THWND
	FwFunc                 TUINT
	FpFrom                 TLPCSTR
	FpTo                   TLPCSTR
	FfFlags                TFILEOP_FLAGS
	FfAnyOperationsAborted TWINBOOL
	FhNameMappings         TLPVOID
	FlpszProgressTitle     TPCSTR
}

type TSHFILEOPSTRUCTA = struct {
	Fhwnd                  THWND
	FwFunc                 TUINT
	FpFrom                 TLPCSTR
	FpTo                   TLPCSTR
	FfFlags                TFILEOP_FLAGS
	FfAnyOperationsAborted TWINBOOL
	FhNameMappings         TLPVOID
	FlpszProgressTitle     TPCSTR
}

type TSHFILEOPSTRUCTW = struct {
	Fhwnd                  THWND
	FwFunc                 TUINT
	FpFrom                 TLPCWSTR
	FpTo                   TLPCWSTR
	FfFlags                TFILEOP_FLAGS
	FfAnyOperationsAborted TWINBOOL
	FhNameMappings         TLPVOID
	FlpszProgressTitle     TPCWSTR
}

type TSHNAMEMAPPING = struct {
	FpszOldPath TLPSTR
	FpszNewPath TLPSTR
	FcchOldPath int32
	FcchNewPath int32
}

type TSHNAMEMAPPINGA = struct {
	FpszOldPath TLPSTR
	FpszNewPath TLPSTR
	FcchOldPath int32
	FcchNewPath int32
}

type TSHNAMEMAPPINGW = struct {
	FpszOldPath TLPWSTR
	FpszNewPath TLPWSTR
	FcchOldPath int32
	FcchNewPath int32
}

type TSHORT = int16

type TSHRINK_VOLUME_REQUEST_TYPES = int32

type TSHSTOCKICONID = int32

type TSHSTOCKICONINFO = struct {
	FcbSize         TDWORD
	FhIcon          THICON
	FiSysImageIndex int32
	FiIcon          int32
	FszPath         [260]TWCHAR
}

type TSID = struct {
	FRevision            TBYTE
	FSubAuthorityCount   TBYTE
	FIdentifierAuthority TSID_IDENTIFIER_AUTHORITY
	FSubAuthority        [1]TDWORD
}

type TSID_AND_ATTRIBUTES = struct {
	FSid        TPSID
	FAttributes TDWORD
}

type TSID_AND_ATTRIBUTES_ARRAY = [1]TSID_AND_ATTRIBUTES

type TSID_AND_ATTRIBUTES_HASH = struct {
	FSidCount TDWORD
	FSidAttr  TPSID_AND_ATTRIBUTES
	FHash     [32]TSID_HASH_ENTRY
}

type TSID_IDENTIFIER_AUTHORITY = struct {
	FValue [6]TBYTE
}

type TSID_NAME_USE = int32

type TSINGLE_LIST_ENTRY = struct {
	FNext uintptr
}

type TSIZE = struct {
	Fcx TLONG
	Fcy TLONG
}

type TSIZEL = struct {
	Fcx TLONG
	Fcy TLONG
}

type TSI_COPYFILE = struct {
	FSourceFileNameLength      TDWORD
	FDestinationFileNameLength TDWORD
	FFlags                     TDWORD
	FFileNameBuffer            [1]TWCHAR
}

type TSLIST_ENTRY = struct {
	FNext uintptr
}

type TSMALL_RECT = struct {
	FLeft   TSHORT
	FTop    TSHORT
	FRight  TSHORT
	FBottom TSHORT
}

type TSNB = uintptr

type TSOCKADDR = struct {
	Fsa_family Tu_short
	Fsa_data   [14]int8
}

type TSOCKADDR_IN = struct {
	Fsin_family int16
	Fsin_port   Tu_short
	Fsin_addr   Tin_addr
	Fsin_zero   [8]int8
}

type TSOFTDISTINFO = struct {
	FcbSize                TULONG
	FdwFlags               TDWORD
	FdwAdState             TDWORD
	FszTitle               TLPWSTR
	FszAbstract            TLPWSTR
	FszHREF                TLPWSTR
	FdwInstalledVersionMS  TDWORD
	FdwInstalledVersionLS  TDWORD
	FdwUpdateVersionMS     TDWORD
	FdwUpdateVersionLS     TDWORD
	FdwAdvertisedVersionMS TDWORD
	FdwAdvertisedVersionLS TDWORD
	FdwReserved            TDWORD
}

type TSOLE_AUTHENTICATION_INFO = struct {
	FdwAuthnSvc TDWORD
	FdwAuthzSvc TDWORD
	FpAuthInfo  uintptr
}

type TSOLE_AUTHENTICATION_LIST = struct {
	FcAuthInfo TDWORD
	FaAuthInfo uintptr
}

type TSOLE_AUTHENTICATION_SERVICE = struct {
	FdwAuthnSvc     TDWORD
	FdwAuthzSvc     TDWORD
	FpPrincipalName uintptr
	Fhr             THRESULT
}

type TSOUNDSENTRY = struct {
	FcbSize                 TUINT
	FdwFlags                TDWORD
	FiFSTextEffect          TDWORD
	FiFSTextEffectMSec      TDWORD
	FiFSTextEffectColorBits TDWORD
	FiFSGrafEffect          TDWORD
	FiFSGrafEffectMSec      TDWORD
	FiFSGrafEffectColor     TDWORD
	FiWindowsEffect         TDWORD
	FiWindowsEffectMSec     TDWORD
	FlpszWindowsEffectDLL   TLPSTR
	FiWindowsEffectOrdinal  TDWORD
}

type TSOUNDSENTRYA = struct {
	FcbSize                 TUINT
	FdwFlags                TDWORD
	FiFSTextEffect          TDWORD
	FiFSTextEffectMSec      TDWORD
	FiFSTextEffectColorBits TDWORD
	FiFSGrafEffect          TDWORD
	FiFSGrafEffectMSec      TDWORD
	FiFSGrafEffectColor     TDWORD
	FiWindowsEffect         TDWORD
	FiWindowsEffectMSec     TDWORD
	FlpszWindowsEffectDLL   TLPSTR
	FiWindowsEffectOrdinal  TDWORD
}

type TSOUNDSENTRYW = struct {
	FcbSize                 TUINT
	FdwFlags                TDWORD
	FiFSTextEffect          TDWORD
	FiFSTextEffectMSec      TDWORD
	FiFSTextEffectColorBits TDWORD
	FiFSGrafEffect          TDWORD
	FiFSGrafEffectMSec      TDWORD
	FiFSGrafEffectColor     TDWORD
	FiWindowsEffect         TDWORD
	FiWindowsEffectMSec     TDWORD
	FlpszWindowsEffectDLL   TLPWSTR
	FiWindowsEffectOrdinal  TDWORD
}

type TSPHANDLE = uintptr

type TSQLiteThread = struct {
	Ftid     uintptr
	Fid      uint32
	FxTask   uintptr
	FpIn     uintptr
	FpResult uintptr
}

type TSRWLOCK = struct {
	FPtr TPVOID
}

type TSSL_EXTRA_CERT_CHAIN_POLICY_PARA = struct {
	F__ccgo0_0 struct {
		FcbSize   [0]TDWORD
		FcbStruct TDWORD
	}
	FdwAuthType     TDWORD
	FfdwChecks      TDWORD
	FpwszServerName uintptr
}

type TSSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS = struct {
	FcbSize          TDWORD
	FdwErrorLevel    TDWORD
	FdwErrorCategory TDWORD
	FdwReserved      TDWORD
	FwszErrorText    [256]TWCHAR
}

type TSSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA = struct {
	FcbSize         TDWORD
	FdwReserved     TDWORD
	FpwszServerName TLPWSTR
	FrgpszHpkpValue [2]TLPSTR
}

type TSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA = struct {
	FcbSize         TDWORD
	FdwReserved     TDWORD
	FpwszServerName TPCWSTR
}

type TSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS = struct {
	FcbSize       TDWORD
	FlError       TLONG
	FwszErrorText [512]TWCHAR
}

type TSTARTUPINFO = struct {
	Fcb              TDWORD
	FlpReserved      TLPSTR
	FlpDesktop       TLPSTR
	FlpTitle         TLPSTR
	FdwX             TDWORD
	FdwY             TDWORD
	FdwXSize         TDWORD
	FdwYSize         TDWORD
	FdwXCountChars   TDWORD
	FdwYCountChars   TDWORD
	FdwFillAttribute TDWORD
	FdwFlags         TDWORD
	FwShowWindow     TWORD
	FcbReserved2     TWORD
	FlpReserved2     TLPBYTE
	FhStdInput       THANDLE
	FhStdOutput      THANDLE
	FhStdError       THANDLE
}

type TSTARTUPINFOA = struct {
	Fcb              TDWORD
	FlpReserved      TLPSTR
	FlpDesktop       TLPSTR
	FlpTitle         TLPSTR
	FdwX             TDWORD
	FdwY             TDWORD
	FdwXSize         TDWORD
	FdwYSize         TDWORD
	FdwXCountChars   TDWORD
	FdwYCountChars   TDWORD
	FdwFillAttribute TDWORD
	FdwFlags         TDWORD
	FwShowWindow     TWORD
	FcbReserved2     TWORD
	FlpReserved2     TLPBYTE
	FhStdInput       THANDLE
	FhStdOutput      THANDLE
	FhStdError       THANDLE
}

type TSTARTUPINFOEX = struct {
	FStartupInfo     TSTARTUPINFOA
	FlpAttributeList TLPPROC_THREAD_ATTRIBUTE_LIST
}

type TSTARTUPINFOEXA = struct {
	FStartupInfo     TSTARTUPINFOA
	FlpAttributeList TLPPROC_THREAD_ATTRIBUTE_LIST
}

type TSTARTUPINFOEXW = struct {
	FStartupInfo     TSTARTUPINFOW
	FlpAttributeList TLPPROC_THREAD_ATTRIBUTE_LIST
}

type TSTARTUPINFOW = struct {
	Fcb              TDWORD
	FlpReserved      TLPWSTR
	FlpDesktop       TLPWSTR
	FlpTitle         TLPWSTR
	FdwX             TDWORD
	FdwY             TDWORD
	FdwXSize         TDWORD
	FdwYSize         TDWORD
	FdwXCountChars   TDWORD
	FdwYCountChars   TDWORD
	FdwFillAttribute TDWORD
	FdwFlags         TDWORD
	FwShowWindow     TWORD
	FcbReserved2     TWORD
	FlpReserved2     TLPBYTE
	FhStdInput       THANDLE
	FhStdOutput      THANDLE
	FhStdError       THANDLE
}

type TSTATDATA = struct {
	Fformatetc    TFORMATETC
	Fadvf         TDWORD
	FpAdvSink     uintptr
	FdwConnection TDWORD
}

type TSTATFLAG = int32

type TSTATPROPSETSTG = struct {
	Ffmtid       TFMTID
	Fclsid       TCLSID
	FgrfFlags    TDWORD
	Fmtime       TFILETIME
	Fctime       TFILETIME
	Fatime       TFILETIME
	FdwOSVersion TDWORD
}

type TSTATPROPSTG = struct {
	FlpwstrName TLPOLESTR
	Fpropid     TPROPID
	Fvt         TVARTYPE
}

type TSTDMSHLFLAGS = int32

type TSTGC = int32

type TSTGFMT = uint32

type TSTGMOVE = int32

type TSTGOPTIONS = struct {
	FusVersion        TUSHORT
	Freserved         TUSHORT
	FulSectorSize     TULONG
	FpwcsTemplateFile uintptr
}

type TSTGTY = int32

type TSTICKYKEYS = struct {
	FcbSize  TUINT
	FdwFlags TDWORD
}

type TSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = struct {
	FVersion                       TDWORD
	FSize                          TDWORD
	FBytesPerCacheLine             TDWORD
	FBytesOffsetForCacheAlignment  TDWORD
	FBytesPerLogicalSector         TDWORD
	FBytesPerPhysicalSector        TDWORD
	FBytesOffsetForSectorAlignment TDWORD
}

type TSTORAGE_ADAPTER_DESCRIPTOR = struct {
	FVersion               TDWORD
	FSize                  TDWORD
	FMaximumTransferLength TDWORD
	FMaximumPhysicalPages  TDWORD
	FAlignmentMask         TDWORD
	FAdapterUsesPio        TBOOLEAN
	FAdapterScansDown      TBOOLEAN
	FCommandQueueing       TBOOLEAN
	FAcceleratedTransfer   TBOOLEAN
	FBusType               TBYTE
	FBusMajorVersion       TWORD
	FBusMinorVersion       TWORD
	FSrbType               TBYTE
	FAddressType           TBYTE
}

type TSTORAGE_ALLOCATE_BC_STREAM_INPUT = struct {
	FVersion           TULONG
	FRequestsPerPeriod TULONG
	FPeriod            TULONG
	FRetryFailures     TBOOLEAN
	FDiscardable       TBOOLEAN
	FReserved1         [2]TBOOLEAN
	FAccessType        TULONG
	FAccessMode        TULONG
}

type TSTORAGE_ASSOCIATION_TYPE = int32

type TSTORAGE_BREAK_RESERVATION_REQUEST = struct {
	FLength   TDWORD
	F_unused  TBYTE
	FPathId   TBYTE
	FTargetId TBYTE
	FLun      TBYTE
}

type TSTORAGE_BUS_RESET_REQUEST = struct {
	FPathId TBYTE
}

type TSTORAGE_BUS_TYPE = int32

type TSTORAGE_CRYPTO_ALGORITHM_ID = int32

type TSTORAGE_CRYPTO_CAPABILITY = struct {
	FVersion               TDWORD
	FSize                  TDWORD
	FCryptoCapabilityIndex TDWORD
	FAlgorithmId           TSTORAGE_CRYPTO_ALGORITHM_ID
	FKeySize               TSTORAGE_CRYPTO_KEY_SIZE
	FDataUnitSizeBitmask   TDWORD
}

type TSTORAGE_CRYPTO_DESCRIPTOR = struct {
	FVersion               TDWORD
	FSize                  TDWORD
	FNumKeysSupported      TDWORD
	FNumCryptoCapabilities TDWORD
	FCryptoCapabilities    [1]TSTORAGE_CRYPTO_CAPABILITY
}

type TSTORAGE_CRYPTO_KEY_SIZE = int32

type TSTORAGE_DEPENDENCY_INFO_TYPE_1 = struct {
	FDependencyTypeFlags   TDEPENDENT_DISK_FLAG
	FProviderSpecificFlags TULONG
	FVirtualStorageType    TVIRTUAL_STORAGE_TYPE
}

type TSTORAGE_DEPENDENCY_INFO_TYPE_2 = struct {
	FDependencyTypeFlags         TDEPENDENT_DISK_FLAG
	FProviderSpecificFlags       TULONG
	FVirtualStorageType          TVIRTUAL_STORAGE_TYPE
	FAncestorLevel               TULONG
	FDependencyDeviceName        TPWSTR
	FHostVolumeName              TPWSTR
	FDependentVolumeName         TPWSTR
	FDependentVolumeRelativePath TPWSTR
}

type TSTORAGE_DEPENDENCY_INFO_VERSION = int32

type TSTORAGE_DESCRIPTOR_HEADER = struct {
	FVersion TDWORD
	FSize    TDWORD
}

type TSTORAGE_DEVICE_DESCRIPTOR = struct {
	FVersion               TDWORD
	FSize                  TDWORD
	FDeviceType            TBYTE
	FDeviceTypeModifier    TBYTE
	FRemovableMedia        TBOOLEAN
	FCommandQueueing       TBOOLEAN
	FVendorIdOffset        TDWORD
	FProductIdOffset       TDWORD
	FProductRevisionOffset TDWORD
	FSerialNumberOffset    TDWORD
	FBusType               TSTORAGE_BUS_TYPE
	FRawPropertiesLength   TDWORD
	FRawDeviceProperties   [1]TBYTE
}

type TSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = struct {
	FVersion              TDWORD
	FSize                 TDWORD
	FNumberOfFaultDomains TDWORD
	FFaultDomainIds       [1]TGUID
}

type TSTORAGE_DEVICE_ID_DESCRIPTOR = struct {
	FVersion             TDWORD
	FSize                TDWORD
	FNumberOfIdentifiers TDWORD
	FIdentifiers         [1]TBYTE
}

type TSTORAGE_DEVICE_NUMBER = struct {
	FDeviceType      TDWORD
	FDeviceNumber    TDWORD
	FPartitionNumber TDWORD
}

type TSTORAGE_DEVICE_NUMBERS = struct {
	FVersion         TDWORD
	FSize            TDWORD
	FNumberOfDevices TDWORD
	FDevices         [1]TSTORAGE_DEVICE_NUMBER
}

type TSTORAGE_DEVICE_NUMBER_EX = struct {
	FVersion         TDWORD
	FSize            TDWORD
	FFlags           TDWORD
	FDeviceType      TDWORD
	FDeviceNumber    TDWORD
	FDeviceGuid      TGUID
	FPartitionNumber TDWORD
}

type TSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR = struct {
	FVersion                TDWORD
	FSize                   TDWORD
	FNameOffset             TDWORD
	FNumberOfLogicalCopies  TDWORD
	FNumberOfPhysicalCopies TDWORD
	FPhysicalDiskRedundancy TDWORD
	FNumberOfColumns        TDWORD
	FInterleave             TDWORD
}

type TSTORAGE_FAILURE_PREDICTION_CONFIG = struct {
	FVersion  TDWORD
	FSize     TDWORD
	FSet      TBOOLEAN
	FEnabled  TBOOLEAN
	FReserved TWORD
}

type TSTORAGE_HOTPLUG_INFO = struct {
	FSize                     TDWORD
	FMediaRemovable           TBOOLEAN
	FMediaHotplug             TBOOLEAN
	FDeviceHotplug            TBOOLEAN
	FWriteCacheEnableOverride TBOOLEAN
}

type TSTORAGE_IDENTIFIER = struct {
	FCodeSet        TSTORAGE_IDENTIFIER_CODE_SET
	FType           TSTORAGE_IDENTIFIER_TYPE
	FIdentifierSize TUSHORT
	FNextOffset     TUSHORT
	FAssociation    TSTORAGE_ASSOCIATION_TYPE
	FIdentifier     [1]TUCHAR
}

type TSTORAGE_IDENTIFIER_CODE_SET = int32

type TSTORAGE_IDENTIFIER_TYPE = int32

type TSTORAGE_ID_NAA_FORMAT = int32

type TSTORAGE_MEDIA_SERIAL_NUMBER_DATA = struct {
	FReserved           TUSHORT
	FSerialNumberLength TUSHORT
}

type TSTORAGE_MEDIA_TYPE = int32

type TSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = struct {
	FVersion           TDWORD
	FSize              TDWORD
	FMediumProductType TDWORD
}

type TSTORAGE_MINIPORT_DESCRIPTOR = struct {
	FVersion              TDWORD
	FSize                 TDWORD
	FPortdriver           TSTORAGE_PORT_CODE_SET
	FLUNResetSupported    TBOOLEAN
	FTargetResetSupported TBOOLEAN
}

type TSTORAGE_PORT_CODE_SET = int32

type TSTORAGE_PREDICT_FAILURE = struct {
	FPredictFailure TDWORD
	FVendorSpecific [512]TBYTE
}

type TSTORAGE_PRIORITY_HINT_SUPPORT = struct {
	FSupportFlags TULONG
}

type TSTORAGE_PROPERTY_ID = int32

type TSTORAGE_PROPERTY_QUERY = struct {
	FPropertyId           TSTORAGE_PROPERTY_ID
	FQueryType            TSTORAGE_QUERY_TYPE
	FAdditionalParameters [1]TBYTE
}

type TSTORAGE_PROPERTY_SET = struct {
	FPropertyId           TSTORAGE_PROPERTY_ID
	FSetType              TSTORAGE_SET_TYPE
	FAdditionalParameters [1]TBYTE
}

type TSTORAGE_PROTOCOL_ATA_DATA_TYPE = int32

type TSTORAGE_PROTOCOL_DATA_DESCRIPTOR = struct {
	FVersion              TDWORD
	FSize                 TDWORD
	FProtocolSpecificData TSTORAGE_PROTOCOL_SPECIFIC_DATA
}

type TSTORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = struct {
	FVersion              TDWORD
	FSize                 TDWORD
	FProtocolSpecificData TSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT
}

type TSTORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = struct {
	FAsUlong   [0]TDWORD
	F__ccgo0_0 struct {
		F__ccgo0 uint32
	}
}

type TSTORAGE_PROTOCOL_NVME_DATA_TYPE = int32

type TSTORAGE_PROTOCOL_SPECIFIC_DATA = struct {
	FProtocolType                 TSTORAGE_PROTOCOL_TYPE
	FDataType                     TDWORD
	FProtocolDataRequestValue     TDWORD
	FProtocolDataRequestSubValue  TDWORD
	FProtocolDataOffset           TDWORD
	FProtocolDataLength           TDWORD
	FFixedProtocolReturnData      TDWORD
	FProtocolDataRequestSubValue2 TDWORD
	FProtocolDataRequestSubValue3 TDWORD
	FProtocolDataRequestSubValue4 TDWORD
}

type TSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT = struct {
	FProtocolType            TSTORAGE_PROTOCOL_TYPE
	FDataType                TDWORD
	FProtocolDataValue       TDWORD
	FProtocolDataSubValue    TDWORD
	FProtocolDataOffset      TDWORD
	FProtocolDataLength      TDWORD
	FFixedProtocolReturnData TDWORD
	FProtocolDataSubValue2   TDWORD
	FProtocolDataSubValue3   TDWORD
	FProtocolDataSubValue4   TDWORD
	FProtocolDataSubValue5   TDWORD
	FReserved                [5]TDWORD
}

type TSTORAGE_PROTOCOL_TYPE = int32

type TSTORAGE_PROTOCOL_UFS_DATA_TYPE = int32

type TSTORAGE_QUERY_TYPE = int32

type TSTORAGE_RPMB_DESCRIPTOR = struct {
	FVersion                     TDWORD
	FSize                        TDWORD
	FSizeInBytes                 TDWORD
	FMaxReliableWriteSizeInBytes TDWORD
	FFrameFormat                 TSTORAGE_RPMB_FRAME_TYPE
}

type TSTORAGE_RPMB_FRAME_TYPE = int32

type TSTORAGE_SET_TYPE = int32

type TSTORAGE_TIER_CLASS = int32

type TSTORAGE_TIER_MEDIA_TYPE = int32

type TSTORAGE_WRITE_CACHE_PROPERTY = struct {
	FVersion                    TDWORD
	FSize                       TDWORD
	FWriteCacheType             TWRITE_CACHE_TYPE
	FWriteCacheEnabled          TWRITE_CACHE_ENABLE
	FWriteCacheChangeable       TWRITE_CACHE_CHANGE
	FWriteThroughSupported      TWRITE_THROUGH
	FFlushCacheSupported        TBOOLEAN
	FUserDefinedPowerProtection TBOOLEAN
	FNVCacheEnabled             TBOOLEAN
}

type TSTREAM_INFO_LEVELS = int32

type TSTREAM_SEEK = int32

type TSTUB_PHASE = int32

type TSTUB_THUNK = uintptr

type TSTYLEBUF = struct {
	FdwStyle       TDWORD
	FszDescription [32]TCHAR
}

type TSTYLEBUFA = struct {
	FdwStyle       TDWORD
	FszDescription [32]TCHAR
}

type TSTYLEBUFW = struct {
	FdwStyle       TDWORD
	FszDescription [32]TWCHAR
}

type TSTYLESTRUCT = struct {
	FstyleOld TDWORD
	FstyleNew TDWORD
}

type TSUPPORTED_OS_INFO = struct {
	FOsCount         TWORD
	FMitigationExist TWORD
	FOsList          [4]TWORD
}

type TSYNCHRONIZATION_BARRIER = struct {
	FReserved1 TDWORD
	FReserved2 TDWORD
	FReserved3 [2]TULONG_PTR
	FReserved4 TDWORD
	FReserved5 TDWORD
}

type TSYSKIND = int32

type TSYSTEMTIME = struct {
	FwYear         TWORD
	FwMonth        TWORD
	FwDayOfWeek    TWORD
	FwDay          TWORD
	FwHour         TWORD
	FwMinute       TWORD
	FwSecond       TWORD
	FwMilliseconds TWORD
}

type TSYSTEM_ALARM_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TSYSTEM_ALARM_CALLBACK_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TSYSTEM_ALARM_CALLBACK_OBJECT_ACE = struct {
	FHeader              TACE_HEADER
	FMask                TACCESS_MASK
	FFlags               TDWORD
	FObjectType          TGUID
	FInheritedObjectType TGUID
	FSidStart            TDWORD
}

type TSYSTEM_ALARM_OBJECT_ACE = struct {
	FHeader              TACE_HEADER
	FMask                TACCESS_MASK
	FFlags               TDWORD
	FObjectType          TGUID
	FInheritedObjectType TGUID
	FSidStart            TDWORD
}

type TSYSTEM_AUDIT_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TSYSTEM_AUDIT_CALLBACK_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TSYSTEM_AUDIT_CALLBACK_OBJECT_ACE = struct {
	FHeader              TACE_HEADER
	FMask                TACCESS_MASK
	FFlags               TDWORD
	FObjectType          TGUID
	FInheritedObjectType TGUID
	FSidStart            TDWORD
}

type TSYSTEM_AUDIT_OBJECT_ACE = struct {
	FHeader              TACE_HEADER
	FMask                TACCESS_MASK
	FFlags               TDWORD
	FObjectType          TGUID
	FInheritedObjectType TGUID
	FSidStart            TDWORD
}

type TSYSTEM_BATTERY_STATE = struct {
	FAcOnLine          TBOOLEAN
	FBatteryPresent    TBOOLEAN
	FCharging          TBOOLEAN
	FDischarging       TBOOLEAN
	FSpare1            [4]TBOOLEAN
	FMaxCapacity       TDWORD
	FRemainingCapacity TDWORD
	FRate              TDWORD
	FEstimatedTime     TDWORD
	FDefaultAlert1     TDWORD
	FDefaultAlert2     TDWORD
}

type TSYSTEM_INFO = struct {
	F__ccgo0_0 struct {
		F__ccgo1_0 [0]struct {
			FwProcessorArchitecture TWORD
			FwReserved              TWORD
		}
		FdwOemId TDWORD
	}
	FdwPageSize                  TDWORD
	FlpMinimumApplicationAddress TLPVOID
	FlpMaximumApplicationAddress TLPVOID
	FdwActiveProcessorMask       TDWORD_PTR
	FdwNumberOfProcessors        TDWORD
	FdwProcessorType             TDWORD
	FdwAllocationGranularity     TDWORD
	FwProcessorLevel             TWORD
	FwProcessorRevision          TWORD
}

type TSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = struct {
	FRelationship TLOGICAL_PROCESSOR_RELATIONSHIP
	FSize         TDWORD
	F__ccgo2_8    struct {
		FNumaNode    [0]TNUMA_NODE_RELATIONSHIP
		FCache       [0]TCACHE_RELATIONSHIP
		FGroup       [0]TGROUP_RELATIONSHIP
		FProcessor   TPROCESSOR_RELATIONSHIP
		F__ccgo_pad4 [32]byte
	}
}

type TSYSTEM_MANDATORY_LABEL_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TSYSTEM_POWER_CAPABILITIES = struct {
	FPowerButtonPresent     TBOOLEAN
	FSleepButtonPresent     TBOOLEAN
	FLidPresent             TBOOLEAN
	FSystemS1               TBOOLEAN
	FSystemS2               TBOOLEAN
	FSystemS3               TBOOLEAN
	FSystemS4               TBOOLEAN
	FSystemS5               TBOOLEAN
	FHiberFilePresent       TBOOLEAN
	FFullWake               TBOOLEAN
	FVideoDimPresent        TBOOLEAN
	FApmPresent             TBOOLEAN
	FUpsPresent             TBOOLEAN
	FThermalControl         TBOOLEAN
	FProcessorThrottle      TBOOLEAN
	FProcessorMinThrottle   TBYTE
	FProcessorMaxThrottle   TBYTE
	FFastSystemS4           TBOOLEAN
	Fspare2                 [3]TBYTE
	FDiskSpinDown           TBOOLEAN
	Fspare3                 [8]TBYTE
	FSystemBatteriesPresent TBOOLEAN
	FBatteriesAreShortTerm  TBOOLEAN
	FBatteryScale           [3]TBATTERY_REPORTING_SCALE
	FAcOnLineWake           TSYSTEM_POWER_STATE
	FSoftLidWake            TSYSTEM_POWER_STATE
	FRtcWake                TSYSTEM_POWER_STATE
	FMinDeviceWakeState     TSYSTEM_POWER_STATE
	FDefaultLowLatencyWake  TSYSTEM_POWER_STATE
}

type TSYSTEM_POWER_CONDITION = int32

type TSYSTEM_POWER_LEVEL = struct {
	FEnable         TBOOLEAN
	FSpare          [3]TBYTE
	FBatteryLevel   TDWORD
	FPowerPolicy    TPOWER_ACTION_POLICY
	FMinSystemState TSYSTEM_POWER_STATE
}

type TSYSTEM_POWER_POLICY = struct {
	FRevision                    TDWORD
	FPowerButton                 TPOWER_ACTION_POLICY
	FSleepButton                 TPOWER_ACTION_POLICY
	FLidClose                    TPOWER_ACTION_POLICY
	FLidOpenWake                 TSYSTEM_POWER_STATE
	FReserved                    TDWORD
	FIdle                        TPOWER_ACTION_POLICY
	FIdleTimeout                 TDWORD
	FIdleSensitivity             TBYTE
	FDynamicThrottle             TBYTE
	FSpare2                      [2]TBYTE
	FMinSleep                    TSYSTEM_POWER_STATE
	FMaxSleep                    TSYSTEM_POWER_STATE
	FReducedLatencySleep         TSYSTEM_POWER_STATE
	FWinLogonFlags               TDWORD
	FSpare3                      TDWORD
	FDozeS4Timeout               TDWORD
	FBroadcastCapacityResolution TDWORD
	FDischargePolicy             [4]TSYSTEM_POWER_LEVEL
	FVideoTimeout                TDWORD
	FVideoDimDisplay             TBOOLEAN
	FVideoReserved               [3]TDWORD
	FSpindownTimeout             TDWORD
	FOptimizeForPower            TBOOLEAN
	FFanThrottleTolerance        TBYTE
	FForcedThrottle              TBYTE
	FMinThrottle                 TBYTE
	FOverThrottled               TPOWER_ACTION_POLICY
}

type TSYSTEM_POWER_STATE = int32

type TSYSTEM_POWER_STATUS = struct {
	FACLineStatus        TBYTE
	FBatteryFlag         TBYTE
	FBatteryLifePercent  TBYTE
	FReserved1           TBYTE
	FBatteryLifeTime     TDWORD
	FBatteryFullLifeTime TDWORD
}

type TSYSTEM_RESOURCE_ATTRIBUTE_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TSYSTEM_SCOPED_POLICY_ID_ACE = struct {
	FHeader   TACE_HEADER
	FMask     TACCESS_MASK
	FSidStart TDWORD
}

type TSYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION = struct {
	F__ccgo0 uint32
}

type TSZM_FLAGS = int32

type TShmRegion = struct {
	FhMap THANDLE
	FpMap uintptr
}

type TShutdownType = int32

type TStartParam = struct {
	Fiid       TIID
	FpIBindCtx uintptr
	FpItf      uintptr
}

type TTAKE_SNAPSHOT_VHDSET_FLAG = int32

type TTAKE_SNAPSHOT_VHDSET_PARAMETERS = struct {
	FVersion   TTAKE_SNAPSHOT_VHDSET_VERSION
	F__ccgo1_4 struct {
		FVersion1 struct {
			FSnapshotId TGUID
		}
	}
}

type TTAKE_SNAPSHOT_VHDSET_VERSION = int32

type TTAPE_CREATE_PARTITION = struct {
	FMethod TDWORD
	FCount  TDWORD
	FSize   TDWORD
}

type TTAPE_DRIVE_PROBLEM_TYPE = int32

type TTAPE_ERASE = struct {
	FType      TDWORD
	FImmediate TBOOLEAN
}

type TTAPE_GET_DRIVE_PARAMETERS = struct {
	FECC                   TBOOLEAN
	FCompression           TBOOLEAN
	FDataPadding           TBOOLEAN
	FReportSetmarks        TBOOLEAN
	FDefaultBlockSize      TDWORD
	FMaximumBlockSize      TDWORD
	FMinimumBlockSize      TDWORD
	FMaximumPartitionCount TDWORD
	FFeaturesLow           TDWORD
	FFeaturesHigh          TDWORD
	FEOTWarningZoneSize    TDWORD
}

type TTAPE_GET_STATISTICS = struct {
	FOperation TDWORD
}

type TTAPE_PREPARE = struct {
	FOperation TDWORD
	FImmediate TBOOLEAN
}

type TTAPE_SET_DRIVE_PARAMETERS = struct {
	FECC                TBOOLEAN
	FCompression        TBOOLEAN
	FDataPadding        TBOOLEAN
	FReportSetmarks     TBOOLEAN
	FEOTWarningZoneSize TDWORD
}

type TTAPE_SET_MEDIA_PARAMETERS = struct {
	FBlockSize TDWORD
}

type TTAPE_WMI_OPERATIONS = struct {
	FMethod         TDWORD
	FDataBufferSize TDWORD
	FDataBuffer     TPVOID
}

type TTAPE_WRITE_MARKS = struct {
	FType      TDWORD
	FCount     TDWORD
	FImmediate TBOOLEAN
}

type TTBYTE = uint8

type TTCHAR = int8

type TTEKPUBKEY = struct {
	Fmagic  TDWORD
	Fbitlen TDWORD
}

type TTEXTMETRIC = struct {
	FtmHeight           TLONG
	FtmAscent           TLONG
	FtmDescent          TLONG
	FtmInternalLeading  TLONG
	FtmExternalLeading  TLONG
	FtmAveCharWidth     TLONG
	FtmMaxCharWidth     TLONG
	FtmWeight           TLONG
	FtmOverhang         TLONG
	FtmDigitizedAspectX TLONG
	FtmDigitizedAspectY TLONG
	FtmFirstChar        TBYTE
	FtmLastChar         TBYTE
	FtmDefaultChar      TBYTE
	FtmBreakChar        TBYTE
	FtmItalic           TBYTE
	FtmUnderlined       TBYTE
	FtmStruckOut        TBYTE
	FtmPitchAndFamily   TBYTE
	FtmCharSet          TBYTE
}

type TTEXTMETRICA = struct {
	FtmHeight           TLONG
	FtmAscent           TLONG
	FtmDescent          TLONG
	FtmInternalLeading  TLONG
	FtmExternalLeading  TLONG
	FtmAveCharWidth     TLONG
	FtmMaxCharWidth     TLONG
	FtmWeight           TLONG
	FtmOverhang         TLONG
	FtmDigitizedAspectX TLONG
	FtmDigitizedAspectY TLONG
	FtmFirstChar        TBYTE
	FtmLastChar         TBYTE
	FtmDefaultChar      TBYTE
	FtmBreakChar        TBYTE
	FtmItalic           TBYTE
	FtmUnderlined       TBYTE
	FtmStruckOut        TBYTE
	FtmPitchAndFamily   TBYTE
	FtmCharSet          TBYTE
}

type TTEXTMETRICW = struct {
	FtmHeight           TLONG
	FtmAscent           TLONG
	FtmDescent          TLONG
	FtmInternalLeading  TLONG
	FtmExternalLeading  TLONG
	FtmAveCharWidth     TLONG
	FtmMaxCharWidth     TLONG
	FtmWeight           TLONG
	FtmOverhang         TLONG
	FtmDigitizedAspectX TLONG
	FtmDigitizedAspectY TLONG
	FtmFirstChar        TWCHAR
	FtmLastChar         TWCHAR
	FtmDefaultChar      TWCHAR
	FtmBreakChar        TWCHAR
	FtmItalic           TBYTE
	FtmUnderlined       TBYTE
	FtmStruckOut        TBYTE
	FtmPitchAndFamily   TBYTE
	FtmCharSet          TBYTE
}

type TTHDTYPE = int32

type TTHREAD_INFORMATION_CLASS = int32

type TTIMECAPS = struct {
	FwPeriodMin TUINT
	FwPeriodMax TUINT
}

type TTIMEFMT_ENUMPROCA = uintptr

type TTIMEFMT_ENUMPROCEX = uintptr

type TTIMEFMT_ENUMPROCW = uintptr

type TTIMERPROC = uintptr

type TTIMEVAL = struct {
	Ftv_sec  int32
	Ftv_usec int32
}

type TTIME_ZONE_INFORMATION = struct {
	FBias         TLONG
	FStandardName [32]TWCHAR
	FStandardDate TSYSTEMTIME
	FStandardBias TLONG
	FDaylightName [32]TWCHAR
	FDaylightDate TSYSTEMTIME
	FDaylightBias TLONG
}

type TTITLEBARINFO = struct {
	FcbSize     TDWORD
	FrcTitleBar TRECT
	Frgstate    [6]TDWORD
}

type TTITLEBARINFOEX = struct {
	FcbSize     TDWORD
	FrcTitleBar TRECT
	Frgstate    [6]TDWORD
	Frgrect     [6]TRECT
}

type TTLIBATTR = struct {
	Fguid         TGUID
	Flcid         TLCID
	Fsyskind      TSYSKIND
	FwMajorVerNum TWORD
	FwMinorVerNum TWORD
	FwLibFlags    TWORD
}

type TTOGGLEKEYS = struct {
	FcbSize  TUINT
	FdwFlags TDWORD
}

type TTOKEN_ACCESS_INFORMATION = struct {
	FSidHash            TPSID_AND_ATTRIBUTES_HASH
	FRestrictedSidHash  TPSID_AND_ATTRIBUTES_HASH
	FPrivileges         TPTOKEN_PRIVILEGES
	FAuthenticationId   TLUID
	FTokenType          TTOKEN_TYPE
	FImpersonationLevel TSECURITY_IMPERSONATION_LEVEL
	FMandatoryPolicy    TTOKEN_MANDATORY_POLICY
	FFlags              TDWORD
	FAppContainerNumber TDWORD
	FPackageSid         TPSID
	FCapabilitiesHash   TPSID_AND_ATTRIBUTES_HASH
}

type TTOKEN_APPCONTAINER_INFORMATION = struct {
	FTokenAppContainer TPSID
}

type TTOKEN_AUDIT_POLICY = struct {
	FPerUserPolicy [29]TUCHAR
}

type TTOKEN_CONTROL = struct {
	FTokenId          TLUID
	FAuthenticationId TLUID
	FModifiedId       TLUID
	FTokenSource      TTOKEN_SOURCE
}

type TTOKEN_DEFAULT_DACL = struct {
	FDefaultDacl TPACL
}

type TTOKEN_DEVICE_CLAIMS = struct {
	FDeviceClaims TPCLAIMS_BLOB
}

type TTOKEN_ELEVATION = struct {
	FTokenIsElevated TDWORD
}

type TTOKEN_ELEVATION_TYPE = int32

type TTOKEN_GROUPS = struct {
	FGroupCount TDWORD
	FGroups     [1]TSID_AND_ATTRIBUTES
}

type TTOKEN_GROUPS_AND_PRIVILEGES = struct {
	FSidCount            TDWORD
	FSidLength           TDWORD
	FSids                TPSID_AND_ATTRIBUTES
	FRestrictedSidCount  TDWORD
	FRestrictedSidLength TDWORD
	FRestrictedSids      TPSID_AND_ATTRIBUTES
	FPrivilegeCount      TDWORD
	FPrivilegeLength     TDWORD
	FPrivileges          TPLUID_AND_ATTRIBUTES
	FAuthenticationId    TLUID
}

type TTOKEN_INFORMATION_CLASS = int32

type TTOKEN_LINKED_TOKEN = struct {
	FLinkedToken THANDLE
}

type TTOKEN_MANDATORY_LABEL = struct {
	FLabel TSID_AND_ATTRIBUTES
}

type TTOKEN_MANDATORY_POLICY = struct {
	FPolicy TDWORD
}

type TTOKEN_ORIGIN = struct {
	FOriginatingLogonSession TLUID
}

type TTOKEN_OWNER = struct {
	FOwner TPSID
}

type TTOKEN_PRIMARY_GROUP = struct {
	FPrimaryGroup TPSID
}

type TTOKEN_PRIVILEGES = struct {
	FPrivilegeCount TDWORD
	FPrivileges     [1]TLUID_AND_ATTRIBUTES
}

type TTOKEN_SOURCE = struct {
	FSourceName       [8]TCHAR
	FSourceIdentifier TLUID
}

type TTOKEN_TYPE = int32

type TTOKEN_USER = struct {
	FUser TSID_AND_ATTRIBUTES
}

type TTOKEN_USER_CLAIMS = struct {
	FUserClaims TPCLAIMS_BLOB
}

type TTOUCHINPUT = struct {
	Fx           TLONG
	Fy           TLONG
	FhSource     THANDLE
	FdwID        TDWORD
	FdwFlags     TDWORD
	FdwMask      TDWORD
	FdwTime      TDWORD
	FdwExtraInfo TULONG_PTR
	FcxContact   TDWORD
	FcyContact   TDWORD
}

type TTOUCHPREDICTIONPARAMETERS = struct {
	FcbSize          TUINT
	FdwLatency       TUINT
	FdwSampleTime    TUINT
	FbUseHWTimeStamp TUINT
}

type TTOUCH_FLAGS = uint32

type TTOUCH_HIT_TESTING_INPUT = struct {
	FpointerId              TUINT32
	Fpoint                  TPOINT
	FboundingBox            TRECT
	FnonOccludedBoundingBox TRECT
	Forientation            TUINT32
}

type TTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = struct {
	Fscore         TUINT16
	FadjustedPoint TPOINT
}

type TTOUCH_MASK = uint32

type TTPMPARAMS = struct {
	FcbSize    TUINT
	FrcExclude TRECT
}

type TTPOLYCURVE = TTTPOLYCURVE

type TTPOLYGONHEADER = TTTPOLYGONHEADER

type TTP_CALLBACK_ENVIRON = struct {
	FVersion                    TTP_VERSION
	FPool                       TPTP_POOL
	FCleanupGroup               TPTP_CLEANUP_GROUP
	FCleanupGroupCancelCallback TPTP_CLEANUP_GROUP_CANCEL_CALLBACK
	FRaceDll                    TPVOID
	FActivationContext          uintptr
	FFinalizationCallback       TPTP_SIMPLE_CALLBACK
	Fu                          struct {
		Fs [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
	FCallbackPriority TTP_CALLBACK_PRIORITY
	FSize             TDWORD
}

type TTP_CALLBACK_ENVIRON_V3 = struct {
	FVersion                    TTP_VERSION
	FPool                       TPTP_POOL
	FCleanupGroup               TPTP_CLEANUP_GROUP
	FCleanupGroupCancelCallback TPTP_CLEANUP_GROUP_CANCEL_CALLBACK
	FRaceDll                    TPVOID
	FActivationContext          uintptr
	FFinalizationCallback       TPTP_SIMPLE_CALLBACK
	Fu                          struct {
		Fs [0]struct {
			F__ccgo0 uint32
		}
		FFlags TDWORD
	}
	FCallbackPriority TTP_CALLBACK_PRIORITY
	FSize             TDWORD
}

type TTP_CALLBACK_PRIORITY = int32

type TTP_POOL_STACK_INFORMATION = struct {
	FStackReserve TSIZE_T
	FStackCommit  TSIZE_T
}

type TTP_VERSION = uint32

type TTP_WAIT_RESULT = uint32

type TTRACKMOUSEEVENT = struct {
	FcbSize      TDWORD
	FdwFlags     TDWORD
	FhwndTrack   THWND
	FdwHoverTime TDWORD
}

type TTRANSACTIONMANAGER_INFORMATION_CLASS = int32

type TTRANSACTIONMANAGER_LOGPATH_INFORMATION = struct {
	FLogPathLength TDWORD
	FLogPath       [1]TWCHAR
}

type TTRANSACTIONMANAGER_LOG_INFORMATION = struct {
	FLogIdentity TGUID
}

type TTRANSACTIONMANAGER_OLDEST_INFORMATION = struct {
	FOldestTransactionGuid TGUID
}

type TTRANSACTION_BASIC_INFORMATION = struct {
	FTransactionId TGUID
	FState         TDWORD
	FOutcome       TDWORD
}

type TTRANSACTION_BIND_INFORMATION = struct {
	FTmHandle THANDLE
}

type TTRANSACTION_ENLISTMENTS_INFORMATION = struct {
	FNumberOfEnlistments TDWORD
	FEnlistmentPair      [1]TTRANSACTION_ENLISTMENT_PAIR
}

type TTRANSACTION_ENLISTMENT_PAIR = struct {
	FEnlistmentId      TGUID
	FResourceManagerId TGUID
}

type TTRANSACTION_INFORMATION_CLASS = int32

type TTRANSACTION_LIST_ENTRY = struct {
	FUOW TGUID
}

type TTRANSACTION_LIST_INFORMATION = struct {
	FNumberOfTransactions   TDWORD
	FTransactionInformation [1]TTRANSACTION_LIST_ENTRY
}

type TTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = struct {
	FMarshalCookie TULONG
	FUOW           TGUID
}

type TTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = struct {
	FPropagationCookie TULONG
	FUOW               TGUID
	FTmIdentity        TGUID
	FBufferLength      TULONG
}

type TTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = struct {
	FPropagationCookie TULONG
	FUOW               TGUID
	FTmIdentity        TGUID
	FBufferLength      TULONG
}

type TTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = struct {
	FEnlistmentId TGUID
	FUOW          TGUID
}

type TTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = struct {
	FSavepointId TSAVEPOINT_ID
}

type TTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = struct {
	FTmIdentity TGUID
	FFlags      TULONG
}

type TTRANSACTION_OUTCOME = int32

type TTRANSACTION_STATE = int32

type TTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = struct {
	FSuperiorEnlistmentPair TTRANSACTION_ENLISTMENT_PAIR
}

type TTRANSMIT_FILE_BUFFERS = struct {
	FHead       TLPVOID
	FHeadLength TDWORD
	FTail       TLPVOID
	FTailLength TDWORD
}

type TTRIVERTEX = struct {
	Fx     TLONG
	Fy     TLONG
	FRed   TCOLOR16
	FGreen TCOLOR16
	FBlue  TCOLOR16
	FAlpha TCOLOR16
}

type TTTPOLYCURVE = struct {
	FwType TWORD
	Fcpfx  TWORD
	Fapfx  [1]TPOINTFX
}

type TTTPOLYGONHEADER = struct {
	Fcb       TDWORD
	FdwType   TDWORD
	FpfxStart TPOINTFX
}

type TTXFS_CREATE_MINIVERSION_INFO = struct {
	FStructureVersion TUSHORT
	FStructureLength  TUSHORT
	FBaseVersion      TULONG
	FMiniVersion      TUSHORT
}

type TTXFS_GET_TRANSACTED_VERSION = struct {
	FThisBaseVersion   TULONG
	FLatestVersion     TULONG
	FThisMiniVersion   TUSHORT
	FFirstMiniVersion  TUSHORT
	FLatestMiniVersion TUSHORT
}

type TTXFS_READ_BACKUP_INFORMATION_OUT = struct {
	F__ccgo0_0 struct {
		FBuffer       [0]TUCHAR
		FBufferLength TULONG
	}
}

type TTXFS_SAVEPOINT_INFORMATION = struct {
	FKtmTransaction THANDLE
	FActionCode     TULONG
	FSavepointId    TULONG
}

type TTXFS_TRANSACTION_ACTIVE_INFO = struct {
	FTransactionsActiveAtSnapshot TBOOLEAN
}

type TTXFS_WRITE_BACKUP_INFORMATION = struct {
	FBuffer TUCHAR
}

type TTYMED = int32

type TTYPEATTR = struct {
	Fguid             TGUID
	Flcid             TLCID
	FdwReserved       TDWORD
	FmemidConstructor TMEMBERID
	FmemidDestructor  TMEMBERID
	FlpstrSchema      TLPOLESTR
	FcbSizeInstance   TULONG
	Ftypekind         TTYPEKIND
	FcFuncs           TWORD
	FcVars            TWORD
	FcImplTypes       TWORD
	FcbSizeVft        TWORD
	FcbAlignment      TWORD
	FwTypeFlags       TWORD
	FwMajorVerNum     TWORD
	FwMinorVerNum     TWORD
	FtdescAlias       TTYPEDESC
	FidldescType      TIDLDESC
}

type TTYPEDESC = struct {
	F__ccgo0_0 struct {
		Flpadesc  [0]uintptr
		Fhreftype [0]THREFTYPE
		Flptdesc  uintptr
	}
	Fvt TVARTYPE
}

type TTYPEFLAGS = int32

type TTYPEKIND = int32

type TTYSPEC = int32

const TT_AVAILABLE = 1

const TT_ENABLED = 2

const TT_OPENTYPE_FONTTYPE = 131072

const TT_POLYGON_TYPE = 24

const TT_PRIM_CSPLINE = 3

const TT_PRIM_LINE = 1

const TT_PRIM_QSPLINE = 2

type TUCHAR = uint8

type TUCSCHAR = uint32

type TUDATE = struct {
	Fst         TSYSTEMTIME
	FwDayOfYear TUSHORT
}

type TUILANGUAGE_ENUMPROCA = uintptr

type TUILANGUAGE_ENUMPROCW = uintptr

type TUINT = uint32

type TUINT16 = uint16

type TUINT32 = uint32

type TUINT64 = uint64

type TUINT8 = uint8

type TULONG = uint32

type TULONG32 = uint32

type TULONG64 = uint64

type TULONGLONG = uint64

type TUMS_CREATE_THREAD_ATTRIBUTES = struct {
	FUmsVersion        TDWORD
	FUmsContext        TPVOID
	FUmsCompletionList TPVOID
}

type TUNIVERSAL_NAME_INFO = struct {
	FlpUniversalName TLPSTR
}

type TUNIVERSAL_NAME_INFOA = struct {
	FlpUniversalName TLPSTR
}

type TUNIVERSAL_NAME_INFOW = struct {
	FlpUniversalName TLPWSTR
}

type TUNLOAD_DLL_DEBUG_INFO = struct {
	FlpBaseOfDll TLPVOID
}

type TUPDATELAYEREDWINDOWINFO = struct {
	FcbSize   TDWORD
	FhdcDst   THDC
	FpptDst   uintptr
	Fpsize    uintptr
	FhdcSrc   THDC
	FpptSrc   uintptr
	FcrKey    TCOLORREF
	Fpblend   uintptr
	FdwFlags  TDWORD
	FprcDirty uintptr
}

type TUP_BYTE_BLOB = uintptr

type TUP_DWORD_BLOB = uintptr

type TUP_FLAGGED_BYTE_BLOB = uintptr

type TUP_FLAGGED_WORD_BLOB = uintptr

type TUP_WORD_BLOB = uintptr

const TURKISH_CHARSET = 162

type TURLTEMPLATE = int32

type TURLZONE = int32

type TURLZONEREG = int32

type TURL_ENCODING = int32

type TUSAGE_PROPERTIES = struct {
	Flevel           TUSHORT
	Fpage            TUSHORT
	Fusage           TUSHORT
	FlogicalMinimum  TINT32
	FlogicalMaximum  TINT32
	Funit            TUSHORT
	Fexponent        TUSHORT
	Fcount           TBYTE
	FphysicalMinimum TINT32
	FphysicalMaximum TINT32
}

type TUSERCLASSTYPE = int32

type TUSEROBJECTFLAGS = struct {
	FfInherit  TWINBOOL
	FfReserved TWINBOOL
	FdwFlags   TDWORD
}

type TUSER_ACTIVITY_PRESENCE = int32

type TUSER_MARSHAL_CB = struct {
	FFlags       uint32
	FpStubMsg    TPMIDL_STUB_MESSAGE
	FpReserve    TPFORMAT_STRING
	FSignature   uint32
	FCBType      TUSER_MARSHAL_CB_TYPE
	FpFormat     TPFORMAT_STRING
	FpTypeFormat TPFORMAT_STRING
}

type TUSER_MARSHAL_CB_TYPE = int32

type TUSER_MARSHAL_FREEING_ROUTINE = uintptr

type TUSER_MARSHAL_MARSHALLING_ROUTINE = uintptr

type TUSER_MARSHAL_ROUTINE_QUADRUPLE = struct {
	FpfnBufferSize TUSER_MARSHAL_SIZING_ROUTINE
	FpfnMarshall   TUSER_MARSHAL_MARSHALLING_ROUTINE
	FpfnUnmarshall TUSER_MARSHAL_UNMARSHALLING_ROUTINE
	FpfnFree       TUSER_MARSHAL_FREEING_ROUTINE
}

type TUSER_MARSHAL_SIZING_ROUTINE = uintptr

type TUSER_MARSHAL_UNMARSHALLING_ROUTINE = uintptr

type TUSHORT = uint16

type TUSN = int64

type TUUID = struct {
	FData1 uint32
	FData2 uint16
	FData3 uint16
	FData4 [8]uint8
}

type TUUID_VECTOR = struct {
	FCount uint32
	FUuid  [1]uintptr
}

type TUWORD = uint16

type TUri_HOST_TYPE = int32

type TUri_PROPERTY = int32

type TVALENT = struct {
	Fve_valuename TLPSTR
	Fve_valuelen  TDWORD
	Fve_valueptr  TDWORD_PTR
	Fve_type      TDWORD
}

type TVALENTA = struct {
	Fve_valuename TLPSTR
	Fve_valuelen  TDWORD
	Fve_valueptr  TDWORD_PTR
	Fve_type      TDWORD
}

type TVALENTW = struct {
	Fve_valuename TLPWSTR
	Fve_valuelen  TDWORD
	Fve_valueptr  TDWORD_PTR
	Fve_type      TDWORD
}

type TVARFLAGS = int32

type TVARIANT_BOOL = int16

type TVARKIND = int32

type TVARTYPE = uint16

type TVERSIONEDSTREAM = struct {
	FguidVersion TGUID
	FpStream     uintptr
}

type TVIDEOPARAMETERS = struct {
	FGuid                  TGUID
	FdwOffset              TULONG
	FdwCommand             TULONG
	FdwFlags               TULONG
	FdwMode                TULONG
	FdwTVStandard          TULONG
	FdwAvailableModes      TULONG
	FdwAvailableTVStandard TULONG
	FdwFlickerFilter       TULONG
	FdwOverScanX           TULONG
	FdwOverScanY           TULONG
	FdwMaxUnscaledX        TULONG
	FdwMaxUnscaledY        TULONG
	FdwPositionX           TULONG
	FdwPositionY           TULONG
	FdwBrightness          TULONG
	FdwContrast            TULONG
	FdwCPType              TULONG
	FdwCPCommand           TULONG
	FdwCPStandard          TULONG
	FdwCPKey               TULONG
	FbCP_APSTriggerBits    TULONG
	FbOEMCopyProtection    [256]TUCHAR
}

type TVIRTUAL_DISK_ACCESS_MASK = int32

type TVIRTUAL_STORAGE_TYPE = struct {
	FDeviceId TULONG
	FVendorId TGUID
}

type TVS_FIXEDFILEINFO = struct {
	FdwSignature        TDWORD
	FdwStrucVersion     TDWORD
	FdwFileVersionMS    TDWORD
	FdwFileVersionLS    TDWORD
	FdwProductVersionMS TDWORD
	FdwProductVersionLS TDWORD
	FdwFileFlagsMask    TDWORD
	FdwFileFlags        TDWORD
	FdwFileOS           TDWORD
	FdwFileType         TDWORD
	FdwFileSubtype      TDWORD
	FdwFileDateMS       TDWORD
	FdwFileDateLS       TDWORD
}

type TWAITORTIMERCALLBACK = uintptr

type TWAITORTIMERCALLBACKFUNC = uintptr

type TWAVEFORMAT = struct {
	FwFormatTag      TWORD
	FnChannels       TWORD
	FnSamplesPerSec  TDWORD
	FnAvgBytesPerSec TDWORD
	FnBlockAlign     TWORD
}

type TWAVEFORMATEX = struct {
	FwFormatTag      TWORD
	FnChannels       TWORD
	FnSamplesPerSec  TDWORD
	FnAvgBytesPerSec TDWORD
	FnBlockAlign     TWORD
	FwBitsPerSample  TWORD
	FcbSize          TWORD
}

type TWAVEHDR = struct {
	FlpData          TLPSTR
	FdwBufferLength  TDWORD
	FdwBytesRecorded TDWORD
	FdwUser          TDWORD_PTR
	FdwFlags         TDWORD
	FdwLoops         TDWORD
	FlpNext          uintptr
	Freserved        TDWORD_PTR
}

type TWAVEINCAPS = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FdwFormats      TDWORD
	FwChannels      TWORD
	FwReserved1     TWORD
}

type TWAVEINCAPS2 = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FdwFormats        TDWORD
	FwChannels        TWORD
	FwReserved1       TWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TWAVEINCAPS2A = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FdwFormats        TDWORD
	FwChannels        TWORD
	FwReserved1       TWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TWAVEINCAPS2W = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TWCHAR
	FdwFormats        TDWORD
	FwChannels        TWORD
	FwReserved1       TWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TWAVEINCAPSA = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FdwFormats      TDWORD
	FwChannels      TWORD
	FwReserved1     TWORD
}

type TWAVEINCAPSW = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TWCHAR
	FdwFormats      TDWORD
	FwChannels      TWORD
	FwReserved1     TWORD
}

type TWAVEOUTCAPS = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FdwFormats      TDWORD
	FwChannels      TWORD
	FwReserved1     TWORD
	FdwSupport      TDWORD
}

type TWAVEOUTCAPS2 = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FdwFormats        TDWORD
	FwChannels        TWORD
	FwReserved1       TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TWAVEOUTCAPS2A = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TCHAR
	FdwFormats        TDWORD
	FwChannels        TWORD
	FwReserved1       TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TWAVEOUTCAPS2W = struct {
	FwMid             TWORD
	FwPid             TWORD
	FvDriverVersion   TMMVERSION
	FszPname          [32]TWCHAR
	FdwFormats        TDWORD
	FwChannels        TWORD
	FwReserved1       TWORD
	FdwSupport        TDWORD
	FManufacturerGuid TGUID
	FProductGuid      TGUID
	FNameGuid         TGUID
}

type TWAVEOUTCAPSA = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TCHAR
	FdwFormats      TDWORD
	FwChannels      TWORD
	FwReserved1     TWORD
	FdwSupport      TDWORD
}

type TWAVEOUTCAPSW = struct {
	FwMid           TWORD
	FwPid           TWORD
	FvDriverVersion TMMVERSION
	FszPname        [32]TWCHAR
	FdwFormats      TDWORD
	FwChannels      TWORD
	FwReserved1     TWORD
	FdwSupport      TDWORD
}

type TWCHAR = uint16

type TWCRANGE = struct {
	FwcLow   TWCHAR
	FcGlyphs TUSHORT
}

type TWELL_KNOWN_SID_TYPE = int32

const TWF_FINETOUCH = 1

const TWF_WANTPALM = 2

type TWGLSWAP = struct {
	Fhdc     THDC
	FuiFlags TUINT
}

type TWIN32_FILE_ATTRIBUTE_DATA = struct {
	FdwFileAttributes TDWORD
	FftCreationTime   TFILETIME
	FftLastAccessTime TFILETIME
	FftLastWriteTime  TFILETIME
	FnFileSizeHigh    TDWORD
	FnFileSizeLow     TDWORD
}

type TWIN32_FIND_DATA = struct {
	FdwFileAttributes   TDWORD
	FftCreationTime     TFILETIME
	FftLastAccessTime   TFILETIME
	FftLastWriteTime    TFILETIME
	FnFileSizeHigh      TDWORD
	FnFileSizeLow       TDWORD
	FdwReserved0        TDWORD
	FdwReserved1        TDWORD
	FcFileName          [260]TCHAR
	FcAlternateFileName [14]TCHAR
}

type TWIN32_FIND_DATAA = struct {
	FdwFileAttributes   TDWORD
	FftCreationTime     TFILETIME
	FftLastAccessTime   TFILETIME
	FftLastWriteTime    TFILETIME
	FnFileSizeHigh      TDWORD
	FnFileSizeLow       TDWORD
	FdwReserved0        TDWORD
	FdwReserved1        TDWORD
	FcFileName          [260]TCHAR
	FcAlternateFileName [14]TCHAR
}

type TWIN32_FIND_DATAW = struct {
	FdwFileAttributes   TDWORD
	FftCreationTime     TFILETIME
	FftLastAccessTime   TFILETIME
	FftLastWriteTime    TFILETIME
	FnFileSizeHigh      TDWORD
	FnFileSizeLow       TDWORD
	FdwReserved0        TDWORD
	FdwReserved1        TDWORD
	FcFileName          [260]TWCHAR
	FcAlternateFileName [14]TWCHAR
}

type TWIN32_MEMORY_RANGE_ENTRY = struct {
	FVirtualAddress TPVOID
	FNumberOfBytes  TSIZE_T
}

type TWINBOOL = int32

type TWINDOWINFO = struct {
	FcbSize          TDWORD
	FrcWindow        TRECT
	FrcClient        TRECT
	FdwStyle         TDWORD
	FdwExStyle       TDWORD
	FdwWindowStatus  TDWORD
	FcxWindowBorders TUINT
	FcyWindowBorders TUINT
	FatomWindowType  TATOM
	FwCreatorVersion TWORD
}

type TWINDOWPLACEMENT = struct {
	Flength           TUINT
	Fflags            TUINT
	FshowCmd          TUINT
	FptMinPosition    TPOINT
	FptMaxPosition    TPOINT
	FrcNormalPosition TRECT
}

type TWINDOWPOS = struct {
	Fhwnd            THWND
	FhwndInsertAfter THWND
	Fx               int32
	Fy               int32
	Fcx              int32
	Fcy              int32
	Fflags           TUINT
}

type TWINDOW_BUFFER_SIZE_RECORD = struct {
	FdwSize TCOORD
}

type TWINEVENTPROC = uintptr

type TWINSTAENUMPROC = uintptr

type TWINSTAENUMPROCA = uintptr

type TWINSTAENUMPROCW = uintptr

type TWNDCLASS = struct {
	Fstyle         TUINT
	FlpfnWndProc   TWNDPROC
	FcbClsExtra    int32
	FcbWndExtra    int32
	FhInstance     THINSTANCE
	FhIcon         THICON
	FhCursor       THCURSOR
	FhbrBackground THBRUSH
	FlpszMenuName  TLPCSTR
	FlpszClassName TLPCSTR
}

type TWNDCLASSA = struct {
	Fstyle         TUINT
	FlpfnWndProc   TWNDPROC
	FcbClsExtra    int32
	FcbWndExtra    int32
	FhInstance     THINSTANCE
	FhIcon         THICON
	FhCursor       THCURSOR
	FhbrBackground THBRUSH
	FlpszMenuName  TLPCSTR
	FlpszClassName TLPCSTR
}

type TWNDCLASSEX = struct {
	FcbSize        TUINT
	Fstyle         TUINT
	FlpfnWndProc   TWNDPROC
	FcbClsExtra    int32
	FcbWndExtra    int32
	FhInstance     THINSTANCE
	FhIcon         THICON
	FhCursor       THCURSOR
	FhbrBackground THBRUSH
	FlpszMenuName  TLPCSTR
	FlpszClassName TLPCSTR
	FhIconSm       THICON
}

type TWNDCLASSEXA = struct {
	FcbSize        TUINT
	Fstyle         TUINT
	FlpfnWndProc   TWNDPROC
	FcbClsExtra    int32
	FcbWndExtra    int32
	FhInstance     THINSTANCE
	FhIcon         THICON
	FhCursor       THCURSOR
	FhbrBackground THBRUSH
	FlpszMenuName  TLPCSTR
	FlpszClassName TLPCSTR
	FhIconSm       THICON
}

type TWNDCLASSEXW = struct {
	FcbSize        TUINT
	Fstyle         TUINT
	FlpfnWndProc   TWNDPROC
	FcbClsExtra    int32
	FcbWndExtra    int32
	FhInstance     THINSTANCE
	FhIcon         THICON
	FhCursor       THCURSOR
	FhbrBackground THBRUSH
	FlpszMenuName  TLPCWSTR
	FlpszClassName TLPCWSTR
	FhIconSm       THICON
}

type TWNDCLASSW = struct {
	Fstyle         TUINT
	FlpfnWndProc   TWNDPROC
	FcbClsExtra    int32
	FcbWndExtra    int32
	FhInstance     THINSTANCE
	FhIcon         THICON
	FhCursor       THCURSOR
	FhbrBackground THBRUSH
	FlpszMenuName  TLPCWSTR
	FlpszClassName TLPCWSTR
}

type TWNDENUMPROC = uintptr

type TWNDPROC = uintptr

type TWOF_EXTERNAL_INFO = struct {
	FVersion  TDWORD
	FProvider TDWORD
}

type TWORD = uint16

type TWORD_BLOB = struct {
	FclSize TULONG
	FasData [1]uint16
}

type TWORD_SIZEDARR = struct {
	FclSize TULONG
	FpData  uintptr
}

type TWORKERCALLBACKFUNC = uintptr

const TWOSTOPBITS = 2

type TWOW64_CONTEXT = struct {
	FContextFlags      TDWORD
	FDr0               TDWORD
	FDr1               TDWORD
	FDr2               TDWORD
	FDr3               TDWORD
	FDr6               TDWORD
	FDr7               TDWORD
	FFloatSave         TWOW64_FLOATING_SAVE_AREA
	FSegGs             TDWORD
	FSegFs             TDWORD
	FSegEs             TDWORD
	FSegDs             TDWORD
	FEdi               TDWORD
	FEsi               TDWORD
	FEbx               TDWORD
	FEdx               TDWORD
	FEcx               TDWORD
	FEax               TDWORD
	FEbp               TDWORD
	FEip               TDWORD
	FSegCs             TDWORD
	FEFlags            TDWORD
	FEsp               TDWORD
	FSegSs             TDWORD
	FExtendedRegisters [512]TBYTE
}

type TWOW64_DESCRIPTOR_TABLE_ENTRY = struct {
	FSelector   TDWORD
	FDescriptor TWOW64_LDT_ENTRY
}

type TWOW64_FLOATING_SAVE_AREA = struct {
	FControlWord   TDWORD
	FStatusWord    TDWORD
	FTagWord       TDWORD
	FErrorOffset   TDWORD
	FErrorSelector TDWORD
	FDataOffset    TDWORD
	FDataSelector  TDWORD
	FRegisterArea  [80]TBYTE
	FCr0NpxState   TDWORD
}

type TWOW64_LDT_ENTRY = struct {
	FLimitLow TWORD
	FBaseLow  TWORD
	FHighWord struct {
		FBits [0]struct {
			F__ccgo0 uint32
		}
		FBytes struct {
			FBaseMid TBYTE
			FFlags1  TBYTE
			FFlags2  TBYTE
			FBaseHi  TBYTE
		}
	}
}

type TWRITE_CACHE_CHANGE = int32

type TWRITE_CACHE_ENABLE = int32

type TWRITE_CACHE_TYPE = int32

type TWRITE_THROUGH = int32

type TWSAData = TWSADATA

type TWTSSESSION_NOTIFICATION = struct {
	FcbSize      TDWORD
	FdwSessionId TDWORD
}

type TXFORM = struct {
	FeM11 TFLOAT
	FeM12 TFLOAT
	FeM21 TFLOAT
	FeM22 TFLOAT
	FeDx  TFLOAT
	FeDy  TFLOAT
}

type TXFS_CREATE_MINIVERSION_INFO = TTXFS_CREATE_MINIVERSION_INFO

type TXFS_GET_METADATA_INFO_OUT = TTXFS_GET_METADATA_INFO_OUT

type TXFS_GET_TRANSACTED_VERSION = TTXFS_GET_TRANSACTED_VERSION

type TXFS_LIST_TRANSACTIONS = TTXFS_LIST_TRANSACTIONS

type TXFS_LIST_TRANSACTIONS_ENTRY = TTXFS_LIST_TRANSACTIONS_ENTRY

type TXFS_LIST_TRANSACTION_LOCKED_FILES = TTXFS_LIST_TRANSACTION_LOCKED_FILES

type TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY = TTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY

const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED = 1

const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED = 2

const TXFS_LOGGING_MODE_FULL = 2

const TXFS_LOGGING_MODE_SIMPLE = 1

type TXFS_MODIFY_RM = TTXFS_MODIFY_RM

const TXFS_MODIFY_RM_VALID_FLAGS = 261631

type TXFS_QUERY_RM_INFORMATION = TTXFS_QUERY_RM_INFORMATION

const TXFS_QUERY_RM_INFORMATION_VALID_FLAGS = 246192

type TXFS_READ_BACKUP_INFORMATION_OUT = TTXFS_READ_BACKUP_INFORMATION_OUT

const TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START = 32768

const TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE = 4096

const TXFS_RM_FLAG_GROW_LOG = 1024

const TXFS_RM_FLAG_LOGGING_MODE = 1

const TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE = 64

const TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX = 4

const TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN = 8

const TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS = 16

const TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT = 32

const TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX = 128

const TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN = 256

const TXFS_RM_FLAG_PREFER_AVAILABILITY = 131072

const TXFS_RM_FLAG_PREFER_CONSISTENCY = 65536

const TXFS_RM_FLAG_PRESERVE_CHANGES = 8192

const TXFS_RM_FLAG_RENAME_RM = 2

const TXFS_RM_FLAG_RESET_RM_AT_NEXT_START = 16384

const TXFS_RM_FLAG_SHRINK_LOG = 2048

const TXFS_RM_STATE_ACTIVE = 2

const TXFS_RM_STATE_NOT_STARTED = 0

const TXFS_RM_STATE_SHUTTING_DOWN = 3

const TXFS_RM_STATE_STARTING = 1

const TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN = 1

const TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK = 2

type TXFS_ROLLFORWARD_REDO_INFORMATION = TTXFS_ROLLFORWARD_REDO_INFORMATION

const TXFS_ROLLFORWARD_REDO_VALID_FLAGS = 3

const TXFS_SAVEPOINT_CLEAR = 4

const TXFS_SAVEPOINT_CLEAR_ALL = 16

type TXFS_SAVEPOINT_INFORMATION = TTXFS_SAVEPOINT_INFORMATION

const TXFS_SAVEPOINT_ROLLBACK = 2

const TXFS_SAVEPOINT_SET = 1

const TXFS_START_RM_FLAG_LOGGING_MODE = 1024

const TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE = 32

const TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX = 1

const TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN = 2

const TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE = 4

const TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS = 8

const TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT = 16

const TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX = 64

const TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN = 128

const TXFS_START_RM_FLAG_PREFER_AVAILABILITY = 8192

const TXFS_START_RM_FLAG_PREFER_CONSISTENCY = 4096

const TXFS_START_RM_FLAG_PRESERVE_CHANGES = 2048

const TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT = 512

type TXFS_START_RM_INFORMATION = TTXFS_START_RM_INFORMATION

const TXFS_START_RM_VALID_FLAGS = 15999

const TXFS_TRANSACTED_VERSION_NONTRANSACTED = 4294967294

const TXFS_TRANSACTED_VERSION_UNCOMMITTED = 4294967295

type TXFS_TRANSACTION_ACTIVE_INFO = TTXFS_TRANSACTION_ACTIVE_INFO

const TXFS_TRANSACTION_STATE_ACTIVE = 1

const TXFS_TRANSACTION_STATE_NONE = 0

const TXFS_TRANSACTION_STATE_NOTACTIVE = 3

const TXFS_TRANSACTION_STATE_PREPARED = 2

type TXFS_WRITE_BACKUP_INFORMATION = TTXFS_WRITE_BACKUP_INFORMATION

type TXLAT_SIDE = int32

type TXMIT_HELPER_ROUTINE = uintptr

type TXMIT_ROUTINE_QUINTUPLE = struct {
	FpfnTranslateToXmit   TXMIT_HELPER_ROUTINE
	FpfnTranslateFromXmit TXMIT_HELPER_ROUTINE
	FpfnFreeXmit          TXMIT_HELPER_ROUTINE
	FpfnFreeInst          TXMIT_HELPER_ROUTINE
}

type TXMLDOMDocumentEvents = struct {
	FlpVtbl uintptr
}

type TXMLDOMDocumentEventsVtbl = struct {
	FQueryInterface   uintptr
	FAddRef           uintptr
	FRelease          uintptr
	FGetTypeInfoCount uintptr
	FGetTypeInfo      uintptr
	FGetIDsOfNames    uintptr
	FInvoke           uintptr
}

type TXMLELEM_TYPE = int32

type TXML_ERROR = struct {
	F_nLine       uint32
	F_pchBuf      TBSTR
	F_cchBuf      uint32
	F_ich         uint32
	F_pszFound    TBSTR
	F_pszExpected TBSTR
	F_reserved1   TDWORD
	F_reserved2   TDWORD
}

type TXSTATE_FEATURE = struct {
	FOffset TDWORD
	FSize   TDWORD
}

type TYIELDPROC = uintptr

type TYMED = TTYMED

const TYPE1_FONTTYPE = 262144

type TYPEATTR = TTYPEATTR

type TYPEDESC = TTYPEDESC

type TYPEFLAGS = TTYPEFLAGS

type TYPEKIND = TTYPEKIND

type TYSPEC = TTYSPEC

type TZAFLAGS = int32

type TZONEATTRIBUTES = struct {
	FcbSize                 TULONG
	FszDisplayName          [260]TWCHAR
	FszDescription          [200]TWCHAR
	FszIconPath             [260]TWCHAR
	FdwTemplateMinLevel     TDWORD
	FdwTemplateRecommended  TDWORD
	FdwTemplateCurrentLevel TDWORD
	FdwFlags                TDWORD
}

type T_ABC = TABC

type T_ABCFLOAT = TABCFLOAT

type T_ACCESS_ALLOWED_ACE = TACCESS_ALLOWED_ACE

type T_ACCESS_ALLOWED_CALLBACK_ACE = TACCESS_ALLOWED_CALLBACK_ACE

type T_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = TACCESS_ALLOWED_CALLBACK_OBJECT_ACE

type T_ACCESS_ALLOWED_OBJECT_ACE = TACCESS_ALLOWED_OBJECT_ACE

type T_ACCESS_DENIED_ACE = TACCESS_DENIED_ACE

type T_ACCESS_DENIED_CALLBACK_ACE = TACCESS_DENIED_CALLBACK_ACE

type T_ACCESS_DENIED_CALLBACK_OBJECT_ACE = TACCESS_DENIED_CALLBACK_OBJECT_ACE

type T_ACCESS_DENIED_OBJECT_ACE = TACCESS_DENIED_OBJECT_ACE

type T_ACCESS_REASONS = TACCESS_REASONS

type T_ACE_HEADER = TACE_HEADER

type T_ACL = TACL

type T_ACL_REVISION_INFORMATION = TACL_REVISION_INFORMATION

type T_ACL_SIZE_INFORMATION = TACL_SIZE_INFORMATION

type T_ACTION_HEADER = TACTION_HEADER

type T_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = TACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION

type T_ACTIVATION_CONTEXT_BASIC_INFORMATION = TACTIVATION_CONTEXT_BASIC_INFORMATION

type T_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = TACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION

type T_ACTIVATION_CONTEXT_DETAILED_INFORMATION = TACTIVATION_CONTEXT_DETAILED_INFORMATION

type T_ACTIVATION_CONTEXT_QUERY_INDEX = TACTIVATION_CONTEXT_QUERY_INDEX

type T_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = TACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION

type T_ADAPTER_STATUS = TADAPTER_STATUS

type T_ADDJOB_INFO_1A = TADDJOB_INFO_1A

type T_ADDJOB_INFO_1W = TADDJOB_INFO_1W

type T_ADMINISTRATOR_POWER_POLICY = TADMINISTRATOR_POWER_POLICY

type T_APPLICATIONLAUNCH_SETTING_VALUE = TAPPLICATIONLAUNCH_SETTING_VALUE

type T_APPLY_SNAPSHOT_VHDSET_PARAMETERS = TAPPLY_SNAPSHOT_VHDSET_PARAMETERS

type T_APP_MEMORY_INFORMATION = TAPP_MEMORY_INFORMATION

type T_ASSEMBLY_FILE_DETAILED_INFORMATION = TASSEMBLY_FILE_DETAILED_INFORMATION

type T_ATTACH_VIRTUAL_DISK_PARAMETERS = TATTACH_VIRTUAL_DISK_PARAMETERS

type T_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA = TAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA

type T_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS = TAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS

type T_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA = TAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA

type T_AppBarData = TAPPBARDATA

type T_BCRYPT_ALGORITHM_IDENTIFIER = TBCRYPT_ALGORITHM_IDENTIFIER

type T_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = TBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO

type T_BCRYPT_DH_KEY_BLOB = TBCRYPT_DH_KEY_BLOB

type T_BCRYPT_DH_PARAMETER_HEADER = TBCRYPT_DH_PARAMETER_HEADER

type T_BCRYPT_DSA_KEY_BLOB = TBCRYPT_DSA_KEY_BLOB

type T_BCRYPT_DSA_KEY_BLOB_V2 = TBCRYPT_DSA_KEY_BLOB_V2

type T_BCRYPT_DSA_PARAMETER_HEADER = TBCRYPT_DSA_PARAMETER_HEADER

type T_BCRYPT_DSA_PARAMETER_HEADER_V2 = TBCRYPT_DSA_PARAMETER_HEADER_V2

type T_BCRYPT_ECCKEY_BLOB = TBCRYPT_ECCKEY_BLOB

type T_BCRYPT_ECC_CURVE_NAMES = TBCRYPT_ECC_CURVE_NAMES

type T_BCRYPT_INTERFACE_VERSION = TBCRYPT_INTERFACE_VERSION

type T_BCRYPT_KEY_BLOB = TBCRYPT_KEY_BLOB

type T_BCRYPT_KEY_DATA_BLOB_HEADER = TBCRYPT_KEY_DATA_BLOB_HEADER

type T_BCRYPT_MULTI_HASH_OPERATION = TBCRYPT_MULTI_HASH_OPERATION

type T_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT = TBCRYPT_MULTI_OBJECT_LENGTH_STRUCT

type T_BCRYPT_OAEP_PADDING_INFO = TBCRYPT_OAEP_PADDING_INFO

type T_BCRYPT_OID = TBCRYPT_OID

type T_BCRYPT_OID_LIST = TBCRYPT_OID_LIST

type T_BCRYPT_PKCS1_PADDING_INFO = TBCRYPT_PKCS1_PADDING_INFO

type T_BCRYPT_PROVIDER_NAME = TBCRYPT_PROVIDER_NAME

type T_BCRYPT_PSS_PADDING_INFO = TBCRYPT_PSS_PADDING_INFO

type T_BCRYPT_RSAKEY_BLOB = TBCRYPT_RSAKEY_BLOB

type T_BCryptBuffer = TBCryptBuffer

type T_BCryptBufferDesc = TBCryptBufferDesc

type T_BIDI_DATA = TBIDI_DATA

type T_BIDI_REQUEST_CONTAINER = TBIDI_REQUEST_CONTAINER

type T_BIDI_REQUEST_DATA = TBIDI_REQUEST_DATA

type T_BIDI_RESPONSE_CONTAINER = TBIDI_RESPONSE_CONTAINER

type T_BIDI_RESPONSE_DATA = TBIDI_RESPONSE_DATA

type T_BINARY_CONTAINER = TBINARY_CONTAINER

type T_BIN_COUNT = TBIN_COUNT

type T_BIN_RANGE = TBIN_RANGE

type T_BIN_RESULTS = TBIN_RESULTS

type T_BLENDFUNCTION = TBLENDFUNCTION

type T_BOOT_AREA_INFO = TBOOT_AREA_INFO

type T_BYTE_BLOB = TBYTE_BLOB

type T_BYTE_SIZEDARR = TBYTE_SIZEDARR

type T_BY_HANDLE_FILE_INFORMATION = TBY_HANDLE_FILE_INFORMATION

type T_CACHE_DESCRIPTOR = TCACHE_DESCRIPTOR

type T_CACHE_RELATIONSHIP = TCACHE_RELATIONSHIP

type T_CERTIFICATE_BLOB = TEFS_CERTIFICATE_BLOB

type T_CERT_ACCESS_DESCRIPTION = TCERT_ACCESS_DESCRIPTION

type T_CERT_ALT_NAME_ENTRY = TCERT_ALT_NAME_ENTRY

type T_CERT_ALT_NAME_INFO = TCERT_ALT_NAME_INFO

type T_CERT_AUTHORITY_INFO_ACCESS = TCERT_AUTHORITY_INFO_ACCESS

type T_CERT_AUTHORITY_KEY_ID2_INFO = TCERT_AUTHORITY_KEY_ID2_INFO

type T_CERT_AUTHORITY_KEY_ID_INFO = TCERT_AUTHORITY_KEY_ID_INFO

type T_CERT_BASIC_CONSTRAINTS2_INFO = TCERT_BASIC_CONSTRAINTS2_INFO

type T_CERT_BASIC_CONSTRAINTS_INFO = TCERT_BASIC_CONSTRAINTS_INFO

type T_CERT_BIOMETRIC_DATA = TCERT_BIOMETRIC_DATA

type T_CERT_BIOMETRIC_EXT_INFO = TCERT_BIOMETRIC_EXT_INFO

type T_CERT_CHAIN = TCERT_CHAIN

type T_CERT_CHAIN_CONTEXT = TCERT_CHAIN_CONTEXT

type T_CERT_CHAIN_ELEMENT = TCERT_CHAIN_ELEMENT

type T_CERT_CHAIN_ENGINE_CONFIG = TCERT_CHAIN_ENGINE_CONFIG

type T_CERT_CHAIN_FIND_BY_ISSUER_PARA = TCERT_CHAIN_FIND_ISSUER_PARA

type T_CERT_CHAIN_PARA = TCERT_CHAIN_PARA

type T_CERT_CHAIN_POLICY_PARA = TCERT_CHAIN_POLICY_PARA

type T_CERT_CHAIN_POLICY_STATUS = TCERT_CHAIN_POLICY_STATUS

type T_CERT_CONTEXT = TCERT_CONTEXT

type T_CERT_CREATE_CONTEXT_PARA = TCERT_CREATE_CONTEXT_PARA

type T_CERT_CRL_CONTEXT_PAIR = TCERT_CRL_CONTEXT_PAIR

type T_CERT_DH_PARAMETERS = TCERT_DH_PARAMETERS

type T_CERT_DSS_PARAMETERS = TCERT_DSS_PARAMETERS

type T_CERT_ECC_SIGNATURE = TCERT_ECC_SIGNATURE

type T_CERT_EXTENSION = TCERT_EXTENSION

type T_CERT_EXTENSIONS = TCERT_EXTENSIONS

type T_CERT_FORTEZZA_DATA_PROP = TCERT_FORTEZZA_DATA_PROP

type T_CERT_GENERAL_SUBTREE = TCERT_GENERAL_SUBTREE

type T_CERT_HASHED_URL = TCERT_HASHED_URL

type T_CERT_ID = TCERT_ID

type T_CERT_INFO = TCERT_INFO

type T_CERT_ISSUER_SERIAL_NUMBER = TCERT_ISSUER_SERIAL_NUMBER

type T_CERT_KEYGEN_REQUEST_INFO = TCERT_KEYGEN_REQUEST_INFO

type T_CERT_KEY_ATTRIBUTES_INFO = TCERT_KEY_ATTRIBUTES_INFO

type T_CERT_KEY_CONTEXT = TCERT_KEY_CONTEXT

type T_CERT_KEY_USAGE_RESTRICTION_INFO = TCERT_KEY_USAGE_RESTRICTION_INFO

type T_CERT_LDAP_STORE_OPENED_PARA = TCERT_LDAP_STORE_OPENED_PARA

type T_CERT_LOGOTYPE_AUDIO = TCERT_LOGOTYPE_AUDIO

type T_CERT_LOGOTYPE_AUDIO_INFO = TCERT_LOGOTYPE_AUDIO_INFO

type T_CERT_LOGOTYPE_DATA = TCERT_LOGOTYPE_DATA

type T_CERT_LOGOTYPE_DETAILS = TCERT_LOGOTYPE_DETAILS

type T_CERT_LOGOTYPE_EXT_INFO = TCERT_LOGOTYPE_EXT_INFO

type T_CERT_LOGOTYPE_IMAGE = TCERT_LOGOTYPE_IMAGE

type T_CERT_LOGOTYPE_IMAGE_INFO = TCERT_LOGOTYPE_IMAGE_INFO

type T_CERT_LOGOTYPE_INFO = TCERT_LOGOTYPE_INFO

type T_CERT_LOGOTYPE_REFERENCE = TCERT_LOGOTYPE_REFERENCE

type T_CERT_NAME_CONSTRAINTS_INFO = TCERT_NAME_CONSTRAINTS_INFO

type T_CERT_NAME_INFO = TCERT_NAME_INFO

type T_CERT_NAME_VALUE = TCERT_NAME_VALUE

type T_CERT_OR_CRL_BLOB = TCERT_OR_CRL_BLOB

type T_CERT_OR_CRL_BUNDLE = TCERT_OR_CRL_BUNDLE

type T_CERT_OTHER_LOGOTYPE_INFO = TCERT_OTHER_LOGOTYPE_INFO

type T_CERT_OTHER_NAME = TCERT_OTHER_NAME

type T_CERT_PAIR = TCERT_PAIR

type T_CERT_PHYSICAL_STORE_INFO = TCERT_PHYSICAL_STORE_INFO

type T_CERT_POLICIES_INFO = TCERT_POLICIES_INFO

type T_CERT_POLICY95_QUALIFIER1 = TCERT_POLICY95_QUALIFIER1

type T_CERT_POLICY_CONSTRAINTS_INFO = TCERT_POLICY_CONSTRAINTS_INFO

type T_CERT_POLICY_ID = TCERT_POLICY_ID

type T_CERT_POLICY_INFO = TCERT_POLICY_INFO

type T_CERT_POLICY_MAPPING = TCERT_POLICY_MAPPING

type T_CERT_POLICY_MAPPINGS_INFO = TCERT_POLICY_MAPPINGS_INFO

type T_CERT_POLICY_QUALIFIER_INFO = TCERT_POLICY_QUALIFIER_INFO

type T_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE = TCERT_POLICY_QUALIFIER_NOTICE_REFERENCE

type T_CERT_POLICY_QUALIFIER_USER_NOTICE = TCERT_POLICY_QUALIFIER_USER_NOTICE

type T_CERT_PRIVATE_KEY_VALIDITY = TCERT_PRIVATE_KEY_VALIDITY

type T_CERT_PUBLIC_KEY_INFO = TCERT_PUBLIC_KEY_INFO

type T_CERT_QC_STATEMENT = TCERT_QC_STATEMENT

type T_CERT_QC_STATEMENTS_EXT_INFO = TCERT_QC_STATEMENTS_EXT_INFO

type T_CERT_RDN = TCERT_RDN

type T_CERT_RDN_ATTR = TCERT_RDN_ATTR

type T_CERT_REGISTRY_STORE_CLIENT_GPT_PARA = TCERT_REGISTRY_STORE_CLIENT_GPT_PARA

type T_CERT_REGISTRY_STORE_ROAMING_PARA = TCERT_REGISTRY_STORE_ROAMING_PARA

type T_CERT_REQUEST_INFO = TCERT_REQUEST_INFO

type T_CERT_REVOCATION_CHAIN_PARA = TCERT_REVOCATION_CHAIN_PARA

type T_CERT_REVOCATION_CRL_INFO = TCERT_REVOCATION_CRL_INFO

type T_CERT_REVOCATION_INFO = TCERT_REVOCATION_INFO

type T_CERT_REVOCATION_PARA = TCERT_REVOCATION_PARA

type T_CERT_REVOCATION_STATUS = TCERT_REVOCATION_STATUS

type T_CERT_SELECT_CHAIN_PARA = TCERT_SELECT_CHAIN_PARA

type T_CERT_SELECT_CRITERIA = TCERT_SELECT_CRITERIA

type T_CERT_SERVER_OCSP_RESPONSE_CONTEXT = TCERT_SERVER_OCSP_RESPONSE_CONTEXT

type T_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA = TCERT_SERVER_OCSP_RESPONSE_OPEN_PARA

type T_CERT_SIGNED_CONTENT_INFO = TCERT_SIGNED_CONTENT_INFO

type T_CERT_SIMPLE_CHAIN = TCERT_SIMPLE_CHAIN

type T_CERT_STORE_PROV_FIND_INFO = TCERT_STORE_PROV_FIND_INFO

type T_CERT_STORE_PROV_INFO = TCERT_STORE_PROV_INFO

type T_CERT_STRONG_SIGN_PARA = TCERT_STRONG_SIGN_PARA

type T_CERT_STRONG_SIGN_SERIALIZED_INFO = TCERT_STRONG_SIGN_SERIALIZED_INFO

type T_CERT_SUPPORTED_ALGORITHM_INFO = TCERT_SUPPORTED_ALGORITHM_INFO

type T_CERT_SYSTEM_STORE_INFO = TCERT_SYSTEM_STORE_INFO

type T_CERT_SYSTEM_STORE_RELOCATE_PARA = TCERT_SYSTEM_STORE_RELOCATE_PARA

type T_CERT_TEMPLATE_EXT = TCERT_TEMPLATE_EXT

type T_CERT_TPM_SPECIFICATION_INFO = TCERT_TPM_SPECIFICATION_INFO

type T_CERT_TRUST_LIST_INFO = TCERT_TRUST_LIST_INFO

type T_CERT_TRUST_STATUS = TCERT_TRUST_STATUS

type T_CERT_USAGE_MATCH = TCERT_USAGE_MATCH

type T_CERT_X942_DH_PARAMETERS = TCERT_X942_DH_PARAMETERS

type T_CERT_X942_DH_VALIDATION_PARAMS = TCERT_X942_DH_VALIDATION_PARAMS

type T_CFG_CALL_TARGET_INFO = TCFG_CALL_TARGET_INFO

type T_CHANGER_ELEMENT = TCHANGER_ELEMENT

type T_CHANGER_ELEMENT_LIST = TCHANGER_ELEMENT_LIST

type T_CHANGER_ELEMENT_STATUS = TCHANGER_ELEMENT_STATUS

type T_CHANGER_ELEMENT_STATUS_EX = TCHANGER_ELEMENT_STATUS_EX

type T_CHANGER_EXCHANGE_MEDIUM = TCHANGER_EXCHANGE_MEDIUM

type T_CHANGER_INITIALIZE_ELEMENT_STATUS = TCHANGER_INITIALIZE_ELEMENT_STATUS

type T_CHANGER_MOVE_MEDIUM = TCHANGER_MOVE_MEDIUM

type T_CHANGER_PRODUCT_DATA = TCHANGER_PRODUCT_DATA

type T_CHANGER_READ_ELEMENT_STATUS = TCHANGER_READ_ELEMENT_STATUS

type T_CHANGER_SEND_VOLUME_TAG_INFORMATION = TCHANGER_SEND_VOLUME_TAG_INFORMATION

type T_CHANGER_SET_ACCESS = TCHANGER_SET_ACCESS

type T_CHANGER_SET_POSITION = TCHANGER_SET_POSITION

type T_CHAR_INFO = TCHAR_INFO

type T_CLAIM_SECURITY_ATTRIBUTES_INFORMATION = TCLAIM_SECURITY_ATTRIBUTES_INFORMATION

type T_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = TCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE

type T_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = TCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE

type T_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = TCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1

type T_CLAIM_SECURITY_ATTRIBUTE_V1 = TCLAIM_SECURITY_ATTRIBUTE_V1

type T_CLASS_MEDIA_CHANGE_CONTEXT = TCLASS_MEDIA_CHANGE_CONTEXT

type T_CLIENT_CALL_RETURN = TCLIENT_CALL_RETURN

type T_CMC_ADD_ATTRIBUTES_INFO = TCMC_ADD_ATTRIBUTES_INFO

type T_CMC_ADD_EXTENSIONS_INFO = TCMC_ADD_EXTENSIONS_INFO

type T_CMC_DATA_INFO = TCMC_DATA_INFO

type T_CMC_PEND_INFO = TCMC_PEND_INFO

type T_CMC_RESPONSE_INFO = TCMC_RESPONSE_INFO

type T_CMC_STATUS_INFO = TCMC_STATUS_INFO

type T_CMC_TAGGED_ATTRIBUTE = TCMC_TAGGED_ATTRIBUTE

type T_CMC_TAGGED_CERT_REQUEST = TCMC_TAGGED_CERT_REQUEST

type T_CMC_TAGGED_CONTENT_INFO = TCMC_TAGGED_CONTENT_INFO

type T_CMC_TAGGED_OTHER_MSG = TCMC_TAGGED_OTHER_MSG

type T_CMC_TAGGED_REQUEST = TCMC_TAGGED_REQUEST

type T_CMSG_CMS_RECIPIENT_INFO = TCMSG_CMS_RECIPIENT_INFO

type T_CMSG_CMS_SIGNER_INFO = TCMSG_CMS_SIGNER_INFO

type T_CMSG_CNG_CONTENT_DECRYPT_INFO = TCMSG_CNG_CONTENT_DECRYPT_INFO

type T_CMSG_CONTENT_ENCRYPT_INFO = TCMSG_CONTENT_ENCRYPT_INFO

type T_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = TCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA

type T_CMSG_CTRL_DECRYPT_PARA = TCMSG_CTRL_DECRYPT_PARA

type T_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = TCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA

type T_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA = TCMSG_CTRL_KEY_AGREE_DECRYPT_PARA

type T_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA = TCMSG_CTRL_KEY_TRANS_DECRYPT_PARA

type T_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA = TCMSG_CTRL_MAIL_LIST_DECRYPT_PARA

type T_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = TCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA

type T_CMSG_ENCRYPTED_ENCODE_INFO = TCMSG_ENCRYPTED_ENCODE_INFO

type T_CMSG_ENVELOPED_ENCODE_INFO = TCMSG_ENVELOPED_ENCODE_INFO

type T_CMSG_HASHED_ENCODE_INFO = TCMSG_HASHED_ENCODE_INFO

type T_CMSG_KEY_AGREE_ENCRYPT_INFO = TCMSG_KEY_AGREE_ENCRYPT_INFO

type T_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO = TCMSG_KEY_AGREE_KEY_ENCRYPT_INFO

type T_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = TCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO

type T_CMSG_KEY_AGREE_RECIPIENT_INFO = TCMSG_KEY_AGREE_RECIPIENT_INFO

type T_CMSG_KEY_TRANS_ENCRYPT_INFO = TCMSG_KEY_TRANS_ENCRYPT_INFO

type T_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = TCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO

type T_CMSG_KEY_TRANS_RECIPIENT_INFO = TCMSG_KEY_TRANS_RECIPIENT_INFO

type T_CMSG_MAIL_LIST_ENCRYPT_INFO = TCMSG_MAIL_LIST_ENCRYPT_INFO

type T_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = TCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO

type T_CMSG_MAIL_LIST_RECIPIENT_INFO = TCMSG_MAIL_LIST_RECIPIENT_INFO

type T_CMSG_RC2_AUX_INFO = TCMSG_RC2_AUX_INFO

type T_CMSG_RC4_AUX_INFO = TCMSG_RC4_AUX_INFO

type T_CMSG_RECIPIENT_ENCODE_INFO = TCMSG_RECIPIENT_ENCODE_INFO

type T_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = TCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

type T_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO = TCMSG_RECIPIENT_ENCRYPTED_KEY_INFO

type T_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = TCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO

type T_CMSG_SIGNED_ENCODE_INFO = TCMSG_SIGNED_ENCODE_INFO

type T_CMSG_SIGNER_ENCODE_INFO = TCMSG_SIGNER_ENCODE_INFO

type T_CMSG_SIGNER_INFO = TCMSG_SIGNER_INFO

type T_CMSG_SP3_COMPATIBLE_AUX_INFO = TCMSG_SP3_COMPATIBLE_AUX_INFO

type T_CMSG_STREAM_INFO = TCMSG_STREAM_INFO

type T_CMS_DH_KEY_INFO = TCMS_DH_KEY_INFO

type T_CMS_KEY_INFO = TCMS_KEY_INFO

type T_COAUTHIDENTITY = TCOAUTHIDENTITY

type T_COAUTHINFO = TCOAUTHINFO

type T_COMMCONFIG = TCOMMCONFIG

type T_COMMPROP = TCOMMPROP

type T_COMMTIMEOUTS = TCOMMTIMEOUTS

type T_COMM_FAULT_OFFSETS = TCOMM_FAULT_OFFSETS

type T_COMPACT_VIRTUAL_DISK_PARAMETERS = TCOMPACT_VIRTUAL_DISK_PARAMETERS

type T_COMPATIBILITY_CONTEXT_ELEMENT = TCOMPATIBILITY_CONTEXT_ELEMENT

type T_COMPONENT_FILTER = TCOMPONENT_FILTER

type T_COMSTAT = TCOMSTAT

type T_CONNECTDLGSTRUCTA = TCONNECTDLGSTRUCTA

type T_CONNECTDLGSTRUCTW = TCONNECTDLGSTRUCTW

type T_CONSOLE_CURSOR_INFO = TCONSOLE_CURSOR_INFO

type T_CONSOLE_FONT_INFO = TCONSOLE_FONT_INFO

type T_CONSOLE_FONT_INFOEX = TCONSOLE_FONT_INFOEX

type T_CONSOLE_HISTORY_INFO = TCONSOLE_HISTORY_INFO

type T_CONSOLE_READCONSOLE_CONTROL = TCONSOLE_READCONSOLE_CONTROL

type T_CONSOLE_SCREEN_BUFFER_INFO = TCONSOLE_SCREEN_BUFFER_INFO

type T_CONSOLE_SCREEN_BUFFER_INFOEX = TCONSOLE_SCREEN_BUFFER_INFOEX

type T_CONSOLE_SELECTION_INFO = TCONSOLE_SELECTION_INFO

type T_COORD = TCOORD

type T_CORE_PRINTER_DRIVERA = TCORE_PRINTER_DRIVERA

type T_CORE_PRINTER_DRIVERW = TCORE_PRINTER_DRIVERW

type T_COSERVERINFO = TCOSERVERINFO

type T_CPS_URLS = TCPS_URLS

type T_CREATEFILE2_EXTENDED_PARAMETERS = TCREATEFILE2_EXTENDED_PARAMETERS

type T_CREATE_DISK = TCREATE_DISK

type T_CREATE_DISK_GPT = TCREATE_DISK_GPT

type T_CREATE_DISK_MBR = TCREATE_DISK_MBR

type T_CREATE_PROCESS_DEBUG_INFO = TCREATE_PROCESS_DEBUG_INFO

type T_CREATE_THREAD_DEBUG_INFO = TCREATE_THREAD_DEBUG_INFO

type T_CREATE_VIRTUAL_DISK_PARAMETERS = TCREATE_VIRTUAL_DISK_PARAMETERS

type T_CRL_CONTEXT = TCRL_CONTEXT

type T_CRL_DIST_POINT = TCRL_DIST_POINT

type T_CRL_DIST_POINTS_INFO = TCRL_DIST_POINTS_INFO

type T_CRL_DIST_POINT_NAME = TCRL_DIST_POINT_NAME

type T_CRL_ENTRY = TCRL_ENTRY

type T_CRL_FIND_ISSUED_FOR_PARA = TCRL_FIND_ISSUED_FOR_PARA

type T_CRL_INFO = TCRL_INFO

type T_CRL_ISSUING_DIST_POINT = TCRL_ISSUING_DIST_POINT

type T_CRL_REVOCATION_INFO = TCRL_REVOCATION_INFO

type T_CROSS_CERT_DIST_POINTS_INFO = TCROSS_CERT_DIST_POINTS_INFO

type T_CRT_FLOAT = struct {
	Ff float32
}

type T_CRYPTNET_URL_CACHE_FLUSH_INFO = TCRYPTNET_URL_CACHE_FLUSH_INFO

type T_CRYPTNET_URL_CACHE_PRE_FETCH_INFO = TCRYPTNET_URL_CACHE_PRE_FETCH_INFO

type T_CRYPTNET_URL_CACHE_RESPONSE_INFO = TCRYPTNET_URL_CACHE_RESPONSE_INFO

type T_CRYPTOAPI_BLOB = TCRYPT_INTEGER_BLOB

type T_CRYPTPROTECT_PROMPTSTRUCT = TCRYPTPROTECT_PROMPTSTRUCT

type T_CRYPT_3DES_KEY_STATE = TCRYPT_3DES_KEY_STATE

type T_CRYPT_AES_128_KEY_STATE = TCRYPT_AES_128_KEY_STATE

type T_CRYPT_AES_256_KEY_STATE = TCRYPT_AES_256_KEY_STATE

type T_CRYPT_ALGORITHM_IDENTIFIER = TCRYPT_ALGORITHM_IDENTIFIER

type T_CRYPT_ASYNC_RETRIEVAL_COMPLETION = TCRYPT_ASYNC_RETRIEVAL_COMPLETION

type T_CRYPT_ATTRIBUTE = TCRYPT_ATTRIBUTE

type T_CRYPT_ATTRIBUTES = TCRYPT_ATTRIBUTES

type T_CRYPT_ATTRIBUTE_TYPE_VALUE = TCRYPT_ATTRIBUTE_TYPE_VALUE

type T_CRYPT_BIT_BLOB = TCRYPT_BIT_BLOB

type T_CRYPT_BLOB_ARRAY = TCRYPT_BLOB_ARRAY

type T_CRYPT_CONTENT_INFO = TCRYPT_CONTENT_INFO

type T_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = TCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY

type T_CRYPT_CONTEXTS = TCRYPT_CONTEXTS

type T_CRYPT_CONTEXT_CONFIG = TCRYPT_CONTEXT_CONFIG

type T_CRYPT_CONTEXT_FUNCTIONS = TCRYPT_CONTEXT_FUNCTIONS

type T_CRYPT_CONTEXT_FUNCTION_CONFIG = TCRYPT_CONTEXT_FUNCTION_CONFIG

type T_CRYPT_CONTEXT_FUNCTION_PROVIDERS = TCRYPT_CONTEXT_FUNCTION_PROVIDERS

type T_CRYPT_CREDENTIALS = TCRYPT_CREDENTIALS

type T_CRYPT_CSP_PROVIDER = TCRYPT_CSP_PROVIDER

type T_CRYPT_DECODE_PARA = TCRYPT_DECODE_PARA

type T_CRYPT_DECRYPT_MESSAGE_PARA = TCRYPT_DECRYPT_MESSAGE_PARA

type T_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA = TCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA

type T_CRYPT_DES_KEY_STATE = TCRYPT_DES_KEY_STATE

type T_CRYPT_ECC_CMS_SHARED_INFO = TCRYPT_ECC_CMS_SHARED_INFO

type T_CRYPT_ECC_PRIVATE_KEY_INFO = TCRYPT_ECC_PRIVATE_KEY_INFO

type T_CRYPT_ENCODE_PARA = TCRYPT_ENCODE_PARA

type T_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO = TCRYPT_ENCRYPTED_PRIVATE_KEY_INFO

type T_CRYPT_ENCRYPT_MESSAGE_PARA = TCRYPT_ENCRYPT_MESSAGE_PARA

type T_CRYPT_ENROLLMENT_NAME_VALUE_PAIR = TCRYPT_ENROLLMENT_NAME_VALUE_PAIR

type T_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO = TCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO

type T_CRYPT_HASH_INFO = TCRYPT_HASH_INFO

type T_CRYPT_HASH_MESSAGE_PARA = TCRYPT_HASH_MESSAGE_PARA

type T_CRYPT_IMAGE_REF = TCRYPT_IMAGE_REF

type T_CRYPT_IMAGE_REG = TCRYPT_IMAGE_REG

type T_CRYPT_INTERFACE_REG = TCRYPT_INTERFACE_REG

type T_CRYPT_KEY_PROV_INFO = TCRYPT_KEY_PROV_INFO

type T_CRYPT_KEY_PROV_PARAM = TCRYPT_KEY_PROV_PARAM

type T_CRYPT_KEY_SIGN_MESSAGE_PARA = TCRYPT_KEY_SIGN_MESSAGE_PARA

type T_CRYPT_KEY_VERIFY_MESSAGE_PARA = TCRYPT_KEY_VERIFY_MESSAGE_PARA

type T_CRYPT_MASK_GEN_ALGORITHM = TCRYPT_MASK_GEN_ALGORITHM

type T_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE = TCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE

type T_CRYPT_OBJID_TABLE = TCRYPT_OBJID_TABLE

type T_CRYPT_OID_FUNC_ENTRY = TCRYPT_OID_FUNC_ENTRY

type T_CRYPT_OID_INFO = TCRYPT_OID_INFO

type T_CRYPT_PASSWORD_CREDENTIALSA = TCRYPT_PASSWORD_CREDENTIALSA

type T_CRYPT_PASSWORD_CREDENTIALSW = TCRYPT_PASSWORD_CREDENTIALSW

type T_CRYPT_PKCS12_PBE_PARAMS = TCRYPT_PKCS12_PBE_PARAMS

type T_CRYPT_PKCS8_EXPORT_PARAMS = TCRYPT_PKCS8_EXPORT_PARAMS

type T_CRYPT_PKCS8_IMPORT_PARAMS = TCRYPT_PKCS8_IMPORT_PARAMS

type T_CRYPT_PRIVATE_KEY_INFO = TCRYPT_PRIVATE_KEY_INFO

type T_CRYPT_PROPERTY_REF = TCRYPT_PROPERTY_REF

type T_CRYPT_PROVIDERS = TCRYPT_PROVIDERS

type T_CRYPT_PROVIDER_REF = TCRYPT_PROVIDER_REF

type T_CRYPT_PROVIDER_REFS = TCRYPT_PROVIDER_REFS

type T_CRYPT_PROVIDER_REG = TCRYPT_PROVIDER_REG

type T_CRYPT_PSOURCE_ALGORITHM = TCRYPT_PSOURCE_ALGORITHM

type T_CRYPT_RC2_CBC_PARAMETERS = TCRYPT_RC2_CBC_PARAMETERS

type T_CRYPT_RC4_KEY_STATE = TCRYPT_RC4_KEY_STATE

type T_CRYPT_RETRIEVE_AUX_INFO = TCRYPT_RETRIEVE_AUX_INFO

type T_CRYPT_RSAES_OAEP_PARAMETERS = TCRYPT_RSAES_OAEP_PARAMETERS

type T_CRYPT_RSA_SSA_PSS_PARAMETERS = TCRYPT_RSA_SSA_PSS_PARAMETERS

type T_CRYPT_SEQUENCE_OF_ANY = TCRYPT_SEQUENCE_OF_ANY

type T_CRYPT_SIGN_MESSAGE_PARA = TCRYPT_SIGN_MESSAGE_PARA

type T_CRYPT_SMART_CARD_ROOT_INFO = TCRYPT_SMART_CARD_ROOT_INFO

type T_CRYPT_SMIME_CAPABILITIES = TCRYPT_SMIME_CAPABILITIES

type T_CRYPT_SMIME_CAPABILITY = TCRYPT_SMIME_CAPABILITY

type T_CRYPT_TIMESTAMP_ACCURACY = TCRYPT_TIMESTAMP_ACCURACY

type T_CRYPT_TIMESTAMP_CONTEXT = TCRYPT_TIMESTAMP_CONTEXT

type T_CRYPT_TIMESTAMP_INFO = TCRYPT_TIMESTAMP_INFO

type T_CRYPT_TIMESTAMP_PARA = TCRYPT_TIMESTAMP_PARA

type T_CRYPT_TIMESTAMP_REQUEST = TCRYPT_TIMESTAMP_REQUEST

type T_CRYPT_TIMESTAMP_RESPONSE = TCRYPT_TIMESTAMP_RESPONSE

type T_CRYPT_TIME_STAMP_REQUEST_INFO = TCRYPT_TIME_STAMP_REQUEST_INFO

type T_CRYPT_URL_ARRAY = TCRYPT_URL_ARRAY

type T_CRYPT_URL_INFO = TCRYPT_URL_INFO

type T_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO = TCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO

type T_CRYPT_VERIFY_MESSAGE_PARA = TCRYPT_VERIFY_MESSAGE_PARA

type T_CRYPT_X942_OTHER_INFO = TCRYPT_X942_OTHER_INFO

type T_CSV_NAMESPACE_INFO = TCSV_NAMESPACE_INFO

type T_CTL_ANY_SUBJECT_INFO = TCTL_ANY_SUBJECT_INFO

type T_CTL_CONTEXT = TCTL_CONTEXT

type T_CTL_ENTRY = TCTL_ENTRY

type T_CTL_FIND_SUBJECT_PARA = TCTL_FIND_SUBJECT_PARA

type T_CTL_FIND_USAGE_PARA = TCTL_FIND_USAGE_PARA

type T_CTL_INFO = TCTL_INFO

type T_CTL_USAGE = TCTL_USAGE

type T_CTL_USAGE_MATCH = TCTL_USAGE_MATCH

type T_CTL_VERIFY_USAGE_PARA = TCTL_VERIFY_USAGE_PARA

type T_CTL_VERIFY_USAGE_STATUS = TCTL_VERIFY_USAGE_STATUS

type T_DATATYPES_INFO_1A = TDATATYPES_INFO_1A

type T_DATATYPES_INFO_1W = TDATATYPES_INFO_1W

type T_DCB = TDCB

type T_DEBUG_EVENT = TDEBUG_EVENT

type T_DECRYPTION_STATUS_BUFFER = TDECRYPTION_STATUS_BUFFER

type T_DELETE_SNAPSHOT_VHDSET_PARAMETERS = TDELETE_SNAPSHOT_VHDSET_PARAMETERS

type T_DEVICE_COPY_OFFLOAD_DESCRIPTOR = TDEVICE_COPY_OFFLOAD_DESCRIPTOR

type T_DEVICE_DATA_SET_RANGE = TDEVICE_DATA_SET_RANGE

type T_DEVICE_DSM_NOTIFICATION_PARAMETERS = TDEVICE_DSM_NOTIFICATION_PARAMETERS

type T_DEVICE_LB_PROVISIONING_DESCRIPTOR = TDEVICE_LB_PROVISIONING_DESCRIPTOR

type T_DEVICE_MANAGE_DATA_SET_ATTRIBUTES = TDEVICE_MANAGE_DATA_SET_ATTRIBUTES

type T_DEVICE_MEDIA_INFO = TDEVICE_MEDIA_INFO

type T_DEVICE_POWER_DESCRIPTOR = TDEVICE_POWER_DESCRIPTOR

type T_DEVICE_SEEK_PENALTY_DESCRIPTOR = TDEVICE_SEEK_PENALTY_DESCRIPTOR

type T_DEVICE_TRIM_DESCRIPTOR = TDEVICE_TRIM_DESCRIPTOR

type T_DEVICE_WRITE_AGGREGATION_DESCRIPTOR = TDEVICE_WRITE_AGGREGATION_DESCRIPTOR

type T_DISCDLGSTRUCTA = TDISCDLGSTRUCTA

type T_DISCDLGSTRUCTW = TDISCDLGSTRUCTW

type T_DISK_CACHE_INFORMATION = TDISK_CACHE_INFORMATION

type T_DISK_CONTROLLER_NUMBER = TDISK_CONTROLLER_NUMBER

type T_DISK_DETECTION_INFO = TDISK_DETECTION_INFO

type T_DISK_EXTENT = TDISK_EXTENT

type T_DISK_EX_INT13_INFO = TDISK_EX_INT13_INFO

type T_DISK_GEOMETRY = TDISK_GEOMETRY

type T_DISK_GEOMETRY_EX = TDISK_GEOMETRY_EX

type T_DISK_GROW_PARTITION = TDISK_GROW_PARTITION

type T_DISK_HISTOGRAM = TDISK_HISTOGRAM

type T_DISK_INT13_INFO = TDISK_INT13_INFO

type T_DISK_LOGGING = TDISK_LOGGING

type T_DISK_PARTITION_INFO = TDISK_PARTITION_INFO

type T_DISK_PERFORMANCE = TDISK_PERFORMANCE

type T_DISK_RECORD = TDISK_RECORD

type T_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO = TDISPLAYCONFIG_GET_ADVANCED_COLOR_INFO

type T_DISPLAYCONFIG_SDR_WHITE_LEVEL = TDISPLAYCONFIG_SDR_WHITE_LEVEL

type T_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE = TDISPLAYCONFIG_SET_ADVANCED_COLOR_STATE

type T_DISPLAY_DEVICEA = TDISPLAY_DEVICEA

type T_DISPLAY_DEVICEW = TDISPLAY_DEVICEW

type T_DOCINFOA = TDOCINFOA

type T_DOCINFOW = TDOCINFOW

type T_DOC_INFO_1A = TDOC_INFO_1A

type T_DOC_INFO_1W = TDOC_INFO_1W

type T_DOC_INFO_2A = TDOC_INFO_2A

type T_DOC_INFO_2W = TDOC_INFO_2W

type T_DOC_INFO_3A = TDOC_INFO_3A

type T_DOC_INFO_3W = TDOC_INFO_3W

type T_DRAGINFOA = TDRAGINFOA

type T_DRAGINFOW = TDRAGINFOW

type T_DRAWPATRECT = TDRAWPATRECT

type T_DRIVERSTATUS = TDRIVERSTATUS

type T_DRIVER_INFO_1A = TDRIVER_INFO_1A

type T_DRIVER_INFO_1W = TDRIVER_INFO_1W

type T_DRIVER_INFO_2A = TDRIVER_INFO_2A

type T_DRIVER_INFO_2W = TDRIVER_INFO_2W

type T_DRIVER_INFO_3A = TDRIVER_INFO_3A

type T_DRIVER_INFO_3W = TDRIVER_INFO_3W

type T_DRIVER_INFO_4A = TDRIVER_INFO_4A

type T_DRIVER_INFO_4W = TDRIVER_INFO_4W

type T_DRIVER_INFO_5A = TDRIVER_INFO_5A

type T_DRIVER_INFO_5W = TDRIVER_INFO_5W

type T_DRIVER_INFO_6A = TDRIVER_INFO_6A

type T_DRIVER_INFO_6W = TDRIVER_INFO_6W

type T_DRIVER_INFO_8A = TDRIVER_INFO_8A

type T_DRIVER_INFO_8W = TDRIVER_INFO_8W

type T_DRIVE_LAYOUT_INFORMATION = TDRIVE_LAYOUT_INFORMATION

type T_DRIVE_LAYOUT_INFORMATION_EX = TDRIVE_LAYOUT_INFORMATION_EX

type T_DRIVE_LAYOUT_INFORMATION_GPT = TDRIVE_LAYOUT_INFORMATION_GPT

type T_DRIVE_LAYOUT_INFORMATION_MBR = TDRIVE_LAYOUT_INFORMATION_MBR

type T_DSSSEED = TDSSSEED

type T_DWORD_BLOB = TDWORD_BLOB

type T_EFS_HASH_BLOB = TEFS_HASH_BLOB

type T_EFS_KEY_INFO = TEFS_KEY_INFO

type T_EFS_RPC_BLOB = TEFS_RPC_BLOB

type T_ENCRYPTED_DATA_INFO = TENCRYPTED_DATA_INFO

type T_ENCRYPTION_BUFFER = TENCRYPTION_BUFFER

type T_ENCRYPTION_CERTIFICATE = TENCRYPTION_CERTIFICATE

type T_ENCRYPTION_CERTIFICATE_HASH = TENCRYPTION_CERTIFICATE_HASH

type T_ENCRYPTION_CERTIFICATE_HASH_LIST = TENCRYPTION_CERTIFICATE_HASH_LIST

type T_ENCRYPTION_CERTIFICATE_LIST = TENCRYPTION_CERTIFICATE_LIST

type T_ENLISTMENT_BASIC_INFORMATION = TENLISTMENT_BASIC_INFORMATION

type T_ENLISTMENT_CRM_INFORMATION = TENLISTMENT_CRM_INFORMATION

type T_ENUM_SERVICE_STATUSA = TENUM_SERVICE_STATUSA

type T_ENUM_SERVICE_STATUSW = TENUM_SERVICE_STATUSW

type T_ENUM_SERVICE_STATUS_PROCESSA = TENUM_SERVICE_STATUS_PROCESSA

type T_ENUM_SERVICE_STATUS_PROCESSW = TENUM_SERVICE_STATUS_PROCESSW

type T_EVENTLOGRECORD = TEVENTLOGRECORD

type T_EVENTLOG_FULL_INFORMATION = TEVENTLOG_FULL_INFORMATION

type T_EVENTSFORLOGFILE = TEVENTSFORLOGFILE

type T_EV_EXTRA_CERT_CHAIN_POLICY_PARA = TEV_EXTRA_CERT_CHAIN_POLICY_PARA

type T_EV_EXTRA_CERT_CHAIN_POLICY_STATUS = TEV_EXTRA_CERT_CHAIN_POLICY_STATUS

type T_EXCEPTION_DEBUG_INFO = TEXCEPTION_DEBUG_INFO

type T_EXCEPTION_POINTERS = struct {
	FExceptionRecord TPEXCEPTION_RECORD
	FContextRecord   TPCONTEXT
}

type T_EXCEPTION_RECORD = struct {
	FExceptionCode        TDWORD
	FExceptionFlags       TDWORD
	FExceptionRecord      uintptr
	FExceptionAddress     TPVOID
	FNumberParameters     TDWORD
	FExceptionInformation [15]TULONG_PTR
}

type T_EXCEPTION_RECORD32 = TEXCEPTION_RECORD32

type T_EXCEPTION_RECORD64 = TEXCEPTION_RECORD64

type T_EXCEPTION_REGISTRATION_RECORD = TEXCEPTION_REGISTRATION_RECORD

type T_EXFAT_STATISTICS = TEXFAT_STATISTICS

type T_EXIT_PROCESS_DEBUG_INFO = TEXIT_PROCESS_DEBUG_INFO

type T_EXIT_THREAD_DEBUG_INFO = TEXIT_THREAD_DEBUG_INFO

type T_EXPAND_VIRTUAL_DISK_PARAMETERS = TEXPAND_VIRTUAL_DISK_PARAMETERS

type T_EXTENDED_ENCRYPTED_DATA_INFO = TEXTENDED_ENCRYPTED_DATA_INFO

type T_FAT_STATISTICS = TFAT_STATISTICS

type T_FILEMUIINFO = TFILEMUIINFO

type T_FILESYSTEM_STATISTICS = TFILESYSTEM_STATISTICS

type T_FILETIME = TFILETIME

type T_FILE_ALIGNMENT_INFO = TFILE_ALIGNMENT_INFO

type T_FILE_ALLOCATED_RANGE_BUFFER = TFILE_ALLOCATED_RANGE_BUFFER

type T_FILE_ALLOCATION_INFO = TFILE_ALLOCATION_INFO

type T_FILE_ATTRIBUTE_TAG_INFO = TFILE_ATTRIBUTE_TAG_INFO

type T_FILE_BASIC_INFO = TFILE_BASIC_INFO

type T_FILE_CASE_SENSITIVE_INFO = TFILE_CASE_SENSITIVE_INFO

type T_FILE_COMPRESSION_INFO = TFILE_COMPRESSION_INFO

type T_FILE_DISPOSITION_INFO = TFILE_DISPOSITION_INFO

type T_FILE_DISPOSITION_INFO_EX = TFILE_DISPOSITION_INFO_EX

type T_FILE_END_OF_FILE_INFO = TFILE_END_OF_FILE_INFO

type T_FILE_FS_PERSISTENT_VOLUME_INFORMATION = TFILE_FS_PERSISTENT_VOLUME_INFORMATION

type T_FILE_FULL_DIR_INFO = TFILE_FULL_DIR_INFO

type T_FILE_ID_BOTH_DIR_INFO = TFILE_ID_BOTH_DIR_INFO

type T_FILE_ID_EXTD_DIR_INFO = TFILE_ID_EXTD_DIR_INFO

type T_FILE_ID_INFO = TFILE_ID_INFO

type T_FILE_IO_PRIORITY_HINT_INFO = TFILE_IO_PRIORITY_HINT_INFO

type T_FILE_MAKE_COMPATIBLE_BUFFER = TFILE_MAKE_COMPATIBLE_BUFFER

type T_FILE_NAME_INFO = TFILE_NAME_INFO

type T_FILE_NOTIFY_INFORMATION = TFILE_NOTIFY_INFORMATION

type T_FILE_OBJECTID_BUFFER = TFILE_OBJECTID_BUFFER

type T_FILE_PREFETCH = TFILE_PREFETCH

type T_FILE_PREFETCH_EX = TFILE_PREFETCH_EX

type T_FILE_PROVIDER_EXTERNAL_INFO_V0 = TFILE_PROVIDER_EXTERNAL_INFO_V0

type T_FILE_PROVIDER_EXTERNAL_INFO_V1 = TFILE_PROVIDER_EXTERNAL_INFO_V1

type T_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER = TFILE_QUERY_ON_DISK_VOL_INFO_BUFFER

type T_FILE_QUERY_SPARING_BUFFER = TFILE_QUERY_SPARING_BUFFER

type T_FILE_REMOTE_PROTOCOL_INFO = TFILE_REMOTE_PROTOCOL_INFO

type T_FILE_RENAME_INFO = TFILE_RENAME_INFO

type T_FILE_SEGMENT_ELEMENT = TFILE_SEGMENT_ELEMENT

type T_FILE_SET_DEFECT_MGMT_BUFFER = TFILE_SET_DEFECT_MGMT_BUFFER

type T_FILE_SET_SPARSE_BUFFER = TFILE_SET_SPARSE_BUFFER

type T_FILE_STANDARD_INFO = TFILE_STANDARD_INFO

type T_FILE_STORAGE_INFO = TFILE_STORAGE_INFO

type T_FILE_STREAM_INFO = TFILE_STREAM_INFO

type T_FILE_SYSTEM_RECOGNITION_INFORMATION = TFILE_SYSTEM_RECOGNITION_INFORMATION

type T_FILE_SYSTEM_RECOGNITION_STRUCTURE = TFILE_SYSTEM_RECOGNITION_STRUCTURE

type T_FILE_TYPE_NOTIFICATION_INPUT = TFILE_TYPE_NOTIFICATION_INPUT

type T_FILE_ZERO_DATA_INFORMATION = TFILE_ZERO_DATA_INFORMATION

type T_FIND_NAME_BUFFER = TFIND_NAME_BUFFER

type T_FIND_NAME_HEADER = TFIND_NAME_HEADER

type T_FIXED = TFIXED

type T_FLAGGED_BYTE_BLOB = TFLAGGED_BYTE_BLOB

type T_FLAGGED_WORD_BLOB = TFLAGGED_WORD_BLOB

type T_FLAG_STGMEDIUM = TFLAG_STGMEDIUM

type T_FLOAT128 = TFLOAT128

type T_FOCUS_EVENT_RECORD = TFOCUS_EVENT_RECORD

type T_FORMAT_EX_PARAMETERS = TFORMAT_EX_PARAMETERS

type T_FORMAT_PARAMETERS = TFORMAT_PARAMETERS

type T_FORM_INFO_1A = TFORM_INFO_1A

type T_FORM_INFO_1W = TFORM_INFO_1W

type T_FORM_INFO_2A = TFORM_INFO_2A

type T_FORM_INFO_2W = TFORM_INFO_2W

type T_FPO_DATA = TFPO_DATA

type T_FSCTL_QUERY_FAT_BPB_BUFFER = TFSCTL_QUERY_FAT_BPB_BUFFER

type T_FULL_PTR_TO_REFID_ELEMENT = TFULL_PTR_TO_REFID_ELEMENT

type T_FULL_PTR_XLAT_TABLES = struct {
	FRefIdToPointer struct {
		FXlatTable       uintptr
		FStateTable      uintptr
		FNumberOfEntries uint32
	}
	FPointerToRefId struct {
		FXlatTable       uintptr
		FNumberOfBuckets uint32
		FHashMask        uint32
	}
	FNextRefId uint32
	FXlatSide  TXLAT_SIDE
}

type T_GDI_NONREMOTE = TGDI_NONREMOTE

type T_GDI_OBJECT = TGDI_OBJECT

type T_GENERIC_BINDING_ROUTINE_PAIR = TGENERIC_BINDING_ROUTINE_PAIR

type T_GENERIC_MAPPING = TGENERIC_MAPPING

type T_GETVERSIONINPARAMS = TGETVERSIONINPARAMS

type T_GET_CHANGER_PARAMETERS = TGET_CHANGER_PARAMETERS

type T_GET_LENGTH_INFORMATION = TGET_LENGTH_INFORMATION

type T_GET_MEDIA_TYPES = TGET_MEDIA_TYPES

type T_GET_VIRTUAL_DISK_INFO = TGET_VIRTUAL_DISK_INFO

type T_GLYPHMETRICS = TGLYPHMETRICS

type T_GLYPHMETRICSFLOAT = TGLYPHMETRICSFLOAT

type T_GRADIENT_RECT = TGRADIENT_RECT

type T_GRADIENT_TRIANGLE = TGRADIENT_TRIANGLE

type T_GROUP_AFFINITY = TGROUP_AFFINITY

type T_GROUP_RELATIONSHIP = TGROUP_RELATIONSHIP

type T_GUID = TGUID

type T_HARDWARE_COUNTER_DATA = THARDWARE_COUNTER_DATA

type T_HEAPINFO = struct {
	F_pentry  uintptr
	F_size    Tsize_t
	F_useflag int32
}

type T_HEAP_SUMMARY = THEAP_SUMMARY

type T_HISTOGRAM_BUCKET = THISTOGRAM_BUCKET

type T_HMAC_Info = THMAC_INFO

type T_HTTPSPolicyCallbackData = THTTPSPolicyCallbackData

type T_HYPER_SIZEDARR = THYPER_SIZEDARR

type T_ICONINFO = TICONINFO

type T_ICONINFOEXA = TICONINFOEXA

type T_ICONINFOEXW = TICONINFOEXW

type T_IDEREGS = TIDEREGS

type T_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = TIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY

type T_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = TIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY

type T_IMAGE_ARCHIVE_MEMBER_HEADER = TIMAGE_ARCHIVE_MEMBER_HEADER

type T_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = TIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY

type T_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY = TIMAGE_ARM_RUNTIME_FUNCTION_ENTRY

type T_IMAGE_AUX_SYMBOL = TIMAGE_AUX_SYMBOL

type T_IMAGE_AUX_SYMBOL_EX = TIMAGE_AUX_SYMBOL_EX

type T_IMAGE_BASE_RELOCATION = TIMAGE_BASE_RELOCATION

type T_IMAGE_BOUND_FORWARDER_REF = TIMAGE_BOUND_FORWARDER_REF

type T_IMAGE_BOUND_IMPORT_DESCRIPTOR = TIMAGE_BOUND_IMPORT_DESCRIPTOR

type T_IMAGE_CE_RUNTIME_FUNCTION_ENTRY = TIMAGE_CE_RUNTIME_FUNCTION_ENTRY

type T_IMAGE_COFF_SYMBOLS_HEADER = TIMAGE_COFF_SYMBOLS_HEADER

type T_IMAGE_DATA_DIRECTORY = TIMAGE_DATA_DIRECTORY

type T_IMAGE_DEBUG_DIRECTORY = TIMAGE_DEBUG_DIRECTORY

type T_IMAGE_DEBUG_MISC = TIMAGE_DEBUG_MISC

type T_IMAGE_DELAYLOAD_DESCRIPTOR = TIMAGE_DELAYLOAD_DESCRIPTOR

type T_IMAGE_DOS_HEADER = TIMAGE_DOS_HEADER

type T_IMAGE_EXPORT_DIRECTORY = TIMAGE_EXPORT_DIRECTORY

type T_IMAGE_FILE_HEADER = TIMAGE_FILE_HEADER

type T_IMAGE_FUNCTION_ENTRY = TIMAGE_FUNCTION_ENTRY

type T_IMAGE_FUNCTION_ENTRY64 = TIMAGE_FUNCTION_ENTRY64

type T_IMAGE_IMPORT_BY_NAME = TIMAGE_IMPORT_BY_NAME

type T_IMAGE_IMPORT_DESCRIPTOR = TIMAGE_IMPORT_DESCRIPTOR

type T_IMAGE_LINENUMBER = TIMAGE_LINENUMBER

type T_IMAGE_NT_HEADERS = TIMAGE_NT_HEADERS32

type T_IMAGE_NT_HEADERS64 = TIMAGE_NT_HEADERS64

type T_IMAGE_OPTIONAL_HEADER = TIMAGE_OPTIONAL_HEADER32

type T_IMAGE_OPTIONAL_HEADER64 = TIMAGE_OPTIONAL_HEADER64

type T_IMAGE_OS2_HEADER = TIMAGE_OS2_HEADER

type T_IMAGE_RELOCATION = TIMAGE_RELOCATION

type T_IMAGE_RESOURCE_DATA_ENTRY = TIMAGE_RESOURCE_DATA_ENTRY

type T_IMAGE_RESOURCE_DIRECTORY = TIMAGE_RESOURCE_DIRECTORY

type T_IMAGE_RESOURCE_DIRECTORY_ENTRY = TIMAGE_RESOURCE_DIRECTORY_ENTRY

type T_IMAGE_RESOURCE_DIRECTORY_STRING = TIMAGE_RESOURCE_DIRECTORY_STRING

type T_IMAGE_RESOURCE_DIR_STRING_U = TIMAGE_RESOURCE_DIR_STRING_U

type T_IMAGE_ROM_HEADERS = TIMAGE_ROM_HEADERS

type T_IMAGE_ROM_OPTIONAL_HEADER = TIMAGE_ROM_OPTIONAL_HEADER

type T_IMAGE_RUNTIME_FUNCTION_ENTRY = struct {
	FBeginAddress TDWORD
	FEndAddress   TDWORD
	F__ccgo2_8    struct {
		FUnwindData        [0]TDWORD
		FUnwindInfoAddress TDWORD
	}
}

type T_IMAGE_SECTION_HEADER = TIMAGE_SECTION_HEADER

type T_IMAGE_SEPARATE_DEBUG_HEADER = TIMAGE_SEPARATE_DEBUG_HEADER

type T_IMAGE_SYMBOL = TIMAGE_SYMBOL

type T_IMAGE_SYMBOL_EX = TIMAGE_SYMBOL_EX

type T_IMAGE_THUNK_DATA32 = TIMAGE_THUNK_DATA32

type T_IMAGE_THUNK_DATA64 = TIMAGE_THUNK_DATA64

type T_IMAGE_TLS_DIRECTORY32 = TIMAGE_TLS_DIRECTORY32

type T_IMAGE_TLS_DIRECTORY64 = TIMAGE_TLS_DIRECTORY64

type T_IMAGE_VXD_HEADER = TIMAGE_VXD_HEADER

type T_INPUT_RECORD = TINPUT_RECORD

type T_IO_COUNTERS = TIO_COUNTERS

type T_ImageArchitectureEntry = TIMAGE_ARCHITECTURE_ENTRY

type T_ImageArchitectureHeader = TIMAGE_ARCHITECTURE_HEADER

type T_JIT_DEBUG_INFO = TJIT_DEBUG_INFO

type T_JOBOBJECT_ASSOCIATE_COMPLETION_PORT = TJOBOBJECT_ASSOCIATE_COMPLETION_PORT

type T_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION = TJOBOBJECT_BASIC_ACCOUNTING_INFORMATION

type T_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = TJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION

type T_JOBOBJECT_BASIC_LIMIT_INFORMATION = TJOBOBJECT_BASIC_LIMIT_INFORMATION

type T_JOBOBJECT_BASIC_PROCESS_ID_LIST = TJOBOBJECT_BASIC_PROCESS_ID_LIST

type T_JOBOBJECT_BASIC_UI_RESTRICTIONS = TJOBOBJECT_BASIC_UI_RESTRICTIONS

type T_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION = TJOBOBJECT_CPU_RATE_CONTROL_INFORMATION

type T_JOBOBJECT_END_OF_JOB_TIME_INFORMATION = TJOBOBJECT_END_OF_JOB_TIME_INFORMATION

type T_JOBOBJECT_EXTENDED_LIMIT_INFORMATION = TJOBOBJECT_EXTENDED_LIMIT_INFORMATION

type T_JOBOBJECT_JOBSET_INFORMATION = TJOBOBJECT_JOBSET_INFORMATION

type T_JOBOBJECT_LIMIT_VIOLATION_INFORMATION = TJOBOBJECT_LIMIT_VIOLATION_INFORMATION

type T_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = TJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

type T_JOBOBJECT_SECURITY_LIMIT_INFORMATION = TJOBOBJECT_SECURITY_LIMIT_INFORMATION

type T_JOB_INFO_1A = TJOB_INFO_1A

type T_JOB_INFO_1W = TJOB_INFO_1W

type T_JOB_INFO_2A = TJOB_INFO_2A

type T_JOB_INFO_2W = TJOB_INFO_2W

type T_JOB_INFO_3 = TJOB_INFO_3

type T_JOB_SET_ARRAY = TJOB_SET_ARRAY

type T_KCRM_MARSHAL_HEADER = TKCRM_MARSHAL_HEADER

type T_KCRM_PROTOCOL_BLOB = TKCRM_PROTOCOL_BLOB

type T_KCRM_TRANSACTION_BLOB = TKCRM_TRANSACTION_BLOB

type T_KEY_EVENT_RECORD = TKEY_EVENT_RECORD

type T_KEY_TYPE_SUBTYPE = TKEY_TYPE_SUBTYPE

type T_KTMOBJECT_CURSOR = TKTMOBJECT_CURSOR

type T_LANA_ENUM = TLANA_ENUM

type T_LARGE_INTEGER = TLARGE_INTEGER

type T_LDBL12 = struct {
	Fld12 [12]uint8
}

type T_LDOUBLE = struct {
	Fld [10]uint8
}

type T_LDT_ENTRY = TLDT_ENTRY

type T_LIST_ENTRY = TLIST_ENTRY

type T_LOAD_DLL_DEBUG_INFO = TLOAD_DLL_DEBUG_INFO

type T_LONG_SIZEDARR = TDWORD_SIZEDARR

type T_LOOKUP_STREAM_FROM_CLUSTER_ENTRY = TLOOKUP_STREAM_FROM_CLUSTER_ENTRY

type T_LOOKUP_STREAM_FROM_CLUSTER_INPUT = TLOOKUP_STREAM_FROM_CLUSTER_INPUT

type T_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT = TLOOKUP_STREAM_FROM_CLUSTER_OUTPUT

type T_LUID = TLUID

type T_LUID_AND_ATTRIBUTES = TLUID_AND_ATTRIBUTES

type T_M128A = TM128A

type T_MALLOC_FREE_STRUCT = TMALLOC_FREE_STRUCT

type T_MAT2 = TMAT2

type T_MEMORYSTATUS = TMEMORYSTATUS

type T_MEMORYSTATUSEX = TMEMORYSTATUSEX

type T_MEMORY_BASIC_INFORMATION = TMEMORY_BASIC_INFORMATION

type T_MEMORY_BASIC_INFORMATION32 = TMEMORY_BASIC_INFORMATION32

type T_MEMORY_BASIC_INFORMATION64 = TMEMORY_BASIC_INFORMATION64

type T_MEMORY_PRIORITY_INFORMATION = TMEMORY_PRIORITY_INFORMATION

type T_MEM_ADDRESS_REQUIREMENTS = TMEM_ADDRESS_REQUIREMENTS

type T_MENU_EVENT_RECORD = TMENU_EVENT_RECORD

type T_MERGE_VIRTUAL_DISK_PARAMETERS = TMERGE_VIRTUAL_DISK_PARAMETERS

type T_MESSAGE_RESOURCE_BLOCK = TMESSAGE_RESOURCE_BLOCK

type T_MESSAGE_RESOURCE_DATA = TMESSAGE_RESOURCE_DATA

type T_MESSAGE_RESOURCE_ENTRY = TMESSAGE_RESOURCE_ENTRY

type T_MIDL_FORMAT_STRING = TMIDL_FORMAT_STRING

type T_MIDL_SERVER_INFO_ = TMIDL_SERVER_INFO

type T_MIDL_STUBLESS_PROXY_INFO = TMIDL_STUBLESS_PROXY_INFO

type T_MIDL_STUB_DESC = struct {
	FRpcInterfaceInformation uintptr
	FpfnAllocate             uintptr
	FpfnFree                 uintptr
	FIMPLICIT_HANDLE_INFO    struct {
		FpPrimitiveHandle    [0]uintptr
		FpGenericBindingInfo [0]TPGENERIC_BINDING_INFO
		FpAutoHandle         uintptr
	}
	FapfnNdrRundownRoutines      uintptr
	FaGenericBindingRoutinePairs uintptr
	FapfnExprEval                uintptr
	FaXmitQuintuple              uintptr
	FpFormatTypes                uintptr
	FfCheckBounds                int32
	FVersion                     uint32
	FpMallocFreeStruct           uintptr
	FMIDLVersion                 int32
	FCommFaultOffsets            uintptr
	FaUserMarshalQuadruple       uintptr
	FNotifyRoutineTable          uintptr
	FmFlags                      TULONG_PTR
	FCsRoutineTables             uintptr
	FReserved4                   uintptr
	FReserved5                   TULONG_PTR
}

type T_MIDL_SYNTAX_INFO = struct {
	FTransferSyntax        TRPC_SYNTAX_IDENTIFIER
	FDispatchTable         uintptr
	FProcString            TPFORMAT_STRING
	FFmtStringOffset       uintptr
	FTypeString            TPFORMAT_STRING
	FaUserMarshalQuadruple uintptr
	FpReserved1            TULONG_PTR
	FpReserved2            TULONG_PTR
}

type T_MIRROR_VIRTUAL_DISK_PARAMETERS = TMIRROR_VIRTUAL_DISK_PARAMETERS

type T_MMCKINFO = TMMCKINFO

type T_MMIOINFO = TMMIOINFO

type T_MODEMDEVCAPS = TMODEMDEVCAPS

type T_MODEMSETTINGS = TMODEMSETTINGS

type T_MODIFY_VHDSET_PARAMETERS = TMODIFY_VHDSET_PARAMETERS

type T_MONITOR_INFO_1A = TMONITOR_INFO_1A

type T_MONITOR_INFO_1W = TMONITOR_INFO_1W

type T_MONITOR_INFO_2A = TMONITOR_INFO_2A

type T_MONITOR_INFO_2W = TMONITOR_INFO_2W

type T_MOUSE_EVENT_RECORD = TMOUSE_EVENT_RECORD

type T_MOVE_FILE_RECORD_DATA = TMOVE_FILE_RECORD_DATA

type T_NAME_BUFFER = TNAME_BUFFER

type T_NCB = TNCB

type T_NCRYPT_CIPHER_PADDING_INFO = TNCRYPT_CIPHER_PADDING_INFO

type T_NCRYPT_KEY_BLOB_HEADER = TNCRYPT_KEY_BLOB_HEADER

type T_NCryptAlgorithmName = TNCryptAlgorithmName

type T_NDR_CS_ROUTINES = TNDR_CS_ROUTINES

type T_NDR_CS_SIZE_CONVERT_ROUTINES = TNDR_CS_SIZE_CONVERT_ROUTINES

type T_NDR_SCONTEXT = struct {
	Fpad         [2]uintptr
	FuserContext uintptr
}

type T_NDR_USER_MARSHAL_INFO = TNDR_USER_MARSHAL_INFO

type T_NDR_USER_MARSHAL_INFO_LEVEL1 = TNDR_USER_MARSHAL_INFO_LEVEL1

type T_NETCONNECTINFOSTRUCT = TNETCONNECTINFOSTRUCT

type T_NETINFOSTRUCT = TNETINFOSTRUCT

type T_NETRESOURCEA = TNETRESOURCEA

type T_NETRESOURCEW = TNETRESOURCEW

type T_NON_PAGED_DEBUG_INFO = TNON_PAGED_DEBUG_INFO

type T_NOTIFYICONDATAA = TNOTIFYICONDATAA

type T_NOTIFYICONDATAW = TNOTIFYICONDATAW

type T_NOTIFYICONIDENTIFIER = TNOTIFYICONIDENTIFIER

type T_NTFS_STATISTICS = TNTFS_STATISTICS

type T_NT_TIB = TNT_TIB

type T_NT_TIB32 = TNT_TIB32

type T_NT_TIB64 = TNT_TIB64

type T_NUMA_NODE_RELATIONSHIP = TNUMA_NODE_RELATIONSHIP

type T_OBJECTID = TOBJECTID

type T_OBJECT_TYPE_LIST = TOBJECT_TYPE_LIST

type T_OCSP_BASIC_RESPONSE_ENTRY = TOCSP_BASIC_RESPONSE_ENTRY

type T_OCSP_BASIC_RESPONSE_INFO = TOCSP_BASIC_RESPONSE_INFO

type T_OCSP_BASIC_REVOKED_INFO = TOCSP_BASIC_REVOKED_INFO

type T_OCSP_BASIC_SIGNED_RESPONSE_INFO = TOCSP_BASIC_SIGNED_RESPONSE_INFO

type T_OCSP_CERT_ID = TOCSP_CERT_ID

type T_OCSP_REQUEST_ENTRY = TOCSP_REQUEST_ENTRY

type T_OCSP_REQUEST_INFO = TOCSP_REQUEST_INFO

type T_OCSP_RESPONSE_INFO = TOCSP_RESPONSE_INFO

type T_OCSP_SIGNATURE_INFO = TOCSP_SIGNATURE_INFO

type T_OCSP_SIGNED_REQUEST_INFO = TOCSP_SIGNED_REQUEST_INFO

type T_OFNOTIFYA = TOFNOTIFYA

type T_OFNOTIFYEXA = TOFNOTIFYEXA

type T_OFNOTIFYEXW = TOFNOTIFYEXW

type T_OFNOTIFYW = TOFNOTIFYW

type T_OFSTRUCT = TOFSTRUCT

type T_OLESTREAM = struct {
	Flpstbl TLPOLESTREAMVTBL
}

type T_OLESTREAMVTBL = TOLESTREAMVTBL

type T_OPEN_PRINTER_PROPS_INFOA = TOPEN_PRINTER_PROPS_INFOA

type T_OPEN_PRINTER_PROPS_INFOW = TOPEN_PRINTER_PROPS_INFOW

type T_OPEN_VIRTUAL_DISK_PARAMETERS = TOPEN_VIRTUAL_DISK_PARAMETERS

type T_OPERATION_END_PARAMETERS = TOPERATION_END_PARAMETERS

type T_OPERATION_START_PARAMETERS = TOPERATION_START_PARAMETERS

type T_OSVERSIONINFOA = TOSVERSIONINFOA

type T_OSVERSIONINFOEXA = TOSVERSIONINFOEXA

type T_OSVERSIONINFOEXW = TOSVERSIONINFOEXW

type T_OSVERSIONINFOW = TOSVERSIONINFOW

type T_OUTLINETEXTMETRICA = TOUTLINETEXTMETRICA

type T_OUTLINETEXTMETRICW = TOUTLINETEXTMETRICW

type T_OUTPUT_DEBUG_STRING_INFO = TOUTPUT_DEBUG_STRING_INFO

type T_OVERLAPPED = TOVERLAPPED

type T_OVERLAPPED_ENTRY = TOVERLAPPED_ENTRY

type T_PACKEDEVENTINFO = TPACKEDEVENTINFO

type T_PARTITION_INFORMATION = TPARTITION_INFORMATION

type T_PARTITION_INFORMATION_EX = TPARTITION_INFORMATION_EX

type T_PARTITION_INFORMATION_GPT = TPARTITION_INFORMATION_GPT

type T_PARTITION_INFORMATION_MBR = TPARTITION_INFORMATION_MBR

type T_PATHNAME_BUFFER = TPATHNAME_BUFFER

type T_PERFORMANCE_DATA = TPERFORMANCE_DATA

type T_PERF_BIN = TPERF_BIN

type T_PERF_COUNTER_BLOCK = TPERF_COUNTER_BLOCK

type T_PERF_COUNTER_DEFINITION = TPERF_COUNTER_DEFINITION

type T_PERF_DATA_BLOCK = TPERF_DATA_BLOCK

type T_PERF_INSTANCE_DEFINITION = TPERF_INSTANCE_DEFINITION

type T_PERF_OBJECT_TYPE = TPERF_OBJECT_TYPE

type T_PERSISTENT_RESERVE_COMMAND = TPERSISTENT_RESERVE_COMMAND

type T_PHNDLR = uintptr

type T_PIFV = uintptr

type T_PIMAGE_RUNTIME_FUNCTION_ENTRY = uintptr

type T_PKCS12_PBES2_EXPORT_PARAMS = TPKCS12_PBES2_EXPORT_PARAMS

type T_PLEX_READ_DATA_REQUEST = TPLEX_READ_DATA_REQUEST

type T_POINTFLOAT = TPOINTFLOAT

type T_POINTL = TPOINTL

type T_PORT_INFO_1A = TPORT_INFO_1A

type T_PORT_INFO_1W = TPORT_INFO_1W

type T_PORT_INFO_2A = TPORT_INFO_2A

type T_PORT_INFO_2W = TPORT_INFO_2W

type T_PORT_INFO_3A = TPORT_INFO_3A

type T_PORT_INFO_3W = TPORT_INFO_3W

type T_POWER_IDLE_RESILIENCY = TPOWER_IDLE_RESILIENCY

type T_POWER_MONITOR_INVOCATION = TPOWER_MONITOR_INVOCATION

type T_POWER_PLATFORM_INFORMATION = TPOWER_PLATFORM_INFORMATION

type T_POWER_SESSION_CONNECT = TPOWER_SESSION_CONNECT

type T_POWER_SESSION_RIT_STATE = TPOWER_SESSION_RIT_STATE

type T_POWER_SESSION_TIMEOUTS = TPOWER_SESSION_TIMEOUTS

type T_POWER_SESSION_WINLOGON = TPOWER_SESSION_WINLOGON

type T_POWER_USER_PRESENCE = TPOWER_USER_PRESENCE

type T_PREVENT_MEDIA_REMOVAL = TPREVENT_MEDIA_REMOVAL

type T_PRINTER_CONNECTION_INFO_1 = TPRINTER_CONNECTION_INFO_1

type T_PRINTER_DEFAULTSA = TPRINTER_DEFAULTSA

type T_PRINTER_DEFAULTSW = TPRINTER_DEFAULTSW

type T_PRINTER_ENUM_VALUESA = TPRINTER_ENUM_VALUESA

type T_PRINTER_ENUM_VALUESW = TPRINTER_ENUM_VALUESW

type T_PRINTER_INFO_1A = TPRINTER_INFO_1A

type T_PRINTER_INFO_1W = TPRINTER_INFO_1W

type T_PRINTER_INFO_2A = TPRINTER_INFO_2A

type T_PRINTER_INFO_2W = TPRINTER_INFO_2W

type T_PRINTER_INFO_3 = TPRINTER_INFO_3

type T_PRINTER_INFO_4A = TPRINTER_INFO_4A

type T_PRINTER_INFO_4W = TPRINTER_INFO_4W

type T_PRINTER_INFO_5A = TPRINTER_INFO_5A

type T_PRINTER_INFO_5W = TPRINTER_INFO_5W

type T_PRINTER_INFO_6 = TPRINTER_INFO_6

type T_PRINTER_INFO_7A = TPRINTER_INFO_7A

type T_PRINTER_INFO_7W = TPRINTER_INFO_7W

type T_PRINTER_INFO_8A = TPRINTER_INFO_8A

type T_PRINTER_INFO_8W = TPRINTER_INFO_8W

type T_PRINTER_INFO_9A = TPRINTER_INFO_9A

type T_PRINTER_INFO_9W = TPRINTER_INFO_9W

type T_PRINTER_NOTIFY_INFO = TPRINTER_NOTIFY_INFO

type T_PRINTER_NOTIFY_INFO_DATA = TPRINTER_NOTIFY_INFO_DATA

type T_PRINTER_NOTIFY_OPTIONS = TPRINTER_NOTIFY_OPTIONS

type T_PRINTER_NOTIFY_OPTIONS_TYPE = TPRINTER_NOTIFY_OPTIONS_TYPE

type T_PRINTER_OPTIONS = TPRINTER_OPTIONS

type T_PRINTPROCESSOR_CAPS_1 = TPRINTPROCESSOR_CAPS_1

type T_PRINTPROCESSOR_CAPS_2 = TPRINTPROCESSOR_CAPS_2

type T_PRINTPROCESSOR_INFO_1A = TPRINTPROCESSOR_INFO_1A

type T_PRINTPROCESSOR_INFO_1W = TPRINTPROCESSOR_INFO_1W

type T_PRIVILEGE_SET = TPRIVILEGE_SET

type T_PRIVKEYVER3 = TDHPRIVKEY_VER3

type T_PROCESSOR_GROUP_INFO = TPROCESSOR_GROUP_INFO

type T_PROCESSOR_NUMBER = TPROCESSOR_NUMBER

type T_PROCESSOR_POWER_POLICY = TPROCESSOR_POWER_POLICY

type T_PROCESSOR_POWER_POLICY_INFO = TPROCESSOR_POWER_POLICY_INFO

type T_PROCESSOR_RELATIONSHIP = TPROCESSOR_RELATIONSHIP

type T_PROCESS_DYNAMIC_EH_CONTINUATION_TARGET = TPROCESS_DYNAMIC_EH_CONTINUATION_TARGET

type T_PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION = TPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION

type T_PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE = TPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE

type T_PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION = TPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION

type T_PROCESS_HEAP_ENTRY = TPROCESS_HEAP_ENTRY

type T_PROCESS_INFORMATION = TPROCESS_INFORMATION

type T_PROCESS_LEAP_SECOND_INFO = TPROCESS_LEAP_SECOND_INFO

type T_PROCESS_MACHINE_INFORMATION = TPROCESS_MACHINE_INFORMATION

type T_PROCESS_MEMORY_EXHAUSTION_INFO = TPROCESS_MEMORY_EXHAUSTION_INFO

type T_PROCESS_MITIGATION_ASLR_POLICY = TPROCESS_MITIGATION_ASLR_POLICY

type T_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = TPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY

type T_PROCESS_MITIGATION_CHILD_PROCESS_POLICY = TPROCESS_MITIGATION_CHILD_PROCESS_POLICY

type T_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = TPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY

type T_PROCESS_MITIGATION_DEP_POLICY = TPROCESS_MITIGATION_DEP_POLICY

type T_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = TPROCESS_MITIGATION_DYNAMIC_CODE_POLICY

type T_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = TPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY

type T_PROCESS_MITIGATION_FONT_DISABLE_POLICY = TPROCESS_MITIGATION_FONT_DISABLE_POLICY

type T_PROCESS_MITIGATION_IMAGE_LOAD_POLICY = TPROCESS_MITIGATION_IMAGE_LOAD_POLICY

type T_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY = TPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY

type T_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY = TPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY

type T_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY = TPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY

type T_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = TPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY

type T_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = TPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY

type T_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY = TPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY

type T_PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY = TPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY

type T_PROCESS_POWER_THROTTLING_STATE = TPROCESS_POWER_THROTTLING_STATE

type T_PROPSHEETHEADERA = TPROPSHEETHEADERA

type T_PROPSHEETHEADERW = TPROPSHEETHEADERW

type T_PROPSHEETPAGEA_V1 = TPROPSHEETPAGEA_V1

type T_PROPSHEETPAGEA_V2 = TPROPSHEETPAGEA_V2

type T_PROPSHEETPAGEW_V1 = TPROPSHEETPAGEW_V1

type T_PROPSHEETPAGEW_V2 = TPROPSHEETPAGEW_V2

type T_PROVIDOR_INFO_1A = TPROVIDOR_INFO_1A

type T_PROVIDOR_INFO_1W = TPROVIDOR_INFO_1W

type T_PROVIDOR_INFO_2A = TPROVIDOR_INFO_2A

type T_PROVIDOR_INFO_2W = TPROVIDOR_INFO_2W

type T_PROV_ENUMALGS = TPROV_ENUMALGS

type T_PROV_ENUMALGS_EX = TPROV_ENUMALGS_EX

type T_PSFEATURE_CUSTPAPER = TPSFEATURE_CUSTPAPER

type T_PSFEATURE_OUTPUT = TPSFEATURE_OUTPUT

type T_PSHNOTIFY = TPSHNOTIFY

type T_PSINJECTDATA = TPSINJECTDATA

type T_PUBKEY = TDHPUBKEY

type T_PUBKEYVER3 = TDHPUBKEY_VER3

type T_PUBLICKEYSTRUC = TBLOBHEADER

type T_PVFI = uintptr

type T_PVFV = uintptr

type T_QUERY_CHANGES_VIRTUAL_DISK_RANGE = TQUERY_CHANGES_VIRTUAL_DISK_RANGE

type T_QUERY_SERVICE_CONFIGA = TQUERY_SERVICE_CONFIGA

type T_QUERY_SERVICE_CONFIGW = TQUERY_SERVICE_CONFIGW

type T_QUERY_SERVICE_LOCK_STATUSA = TQUERY_SERVICE_LOCK_STATUSA

type T_QUERY_SERVICE_LOCK_STATUSW = TQUERY_SERVICE_LOCK_STATUSW

type T_QUOTA_LIMITS = TQUOTA_LIMITS

type T_QUOTA_LIMITS_EX = TQUOTA_LIMITS_EX

type T_RASTERIZER_STATUS = TRASTERIZER_STATUS

type T_RATE_QUOTA_LIMIT = TRATE_QUOTA_LIMIT

type T_RDR_CALLOUT_STATE = TRDR_CALLOUT_STATE

type T_READ_ELEMENT_ADDRESS_INFO = TREAD_ELEMENT_ADDRESS_INFO

type T_REASON_CONTEXT = TREASON_CONTEXT

type T_REASSIGN_BLOCKS = TREASSIGN_BLOCKS

type T_REASSIGN_BLOCKS_EX = TREASSIGN_BLOCKS_EX

type T_RECTL = TRECTL

type T_REDIRECTION_DESCRIPTOR = TREDIRECTION_DESCRIPTOR

type T_REDIRECTION_FUNCTION_DESCRIPTOR = TREDIRECTION_FUNCTION_DESCRIPTOR

type T_REMOTE_NAME_INFOA = TREMOTE_NAME_INFOA

type T_REMOTE_NAME_INFOW = TREMOTE_NAME_INFOW

type T_REMSECURITY_ATTRIBUTES = TREMSECURITY_ATTRIBUTES

type T_REPARSE_GUID_DATA_BUFFER = TREPARSE_GUID_DATA_BUFFER

type T_REQUEST_OPLOCK_INPUT_BUFFER = TREQUEST_OPLOCK_INPUT_BUFFER

type T_REQUEST_OPLOCK_OUTPUT_BUFFER = TREQUEST_OPLOCK_OUTPUT_BUFFER

type T_REQUEST_RAW_ENCRYPTED_DATA = TREQUEST_RAW_ENCRYPTED_DATA

type T_RESIZE_VIRTUAL_DISK_PARAMETERS = TRESIZE_VIRTUAL_DISK_PARAMETERS

type T_RESOURCEMANAGER_BASIC_INFORMATION = TRESOURCEMANAGER_BASIC_INFORMATION

type T_RESOURCEMANAGER_COMPLETION_INFORMATION = TRESOURCEMANAGER_COMPLETION_INFORMATION

type T_RESUME_PERFORMANCE = TRESUME_PERFORMANCE

type T_RETRIEVAL_POINTER_BASE = TRETRIEVAL_POINTER_BASE

type T_RGNDATA = TRGNDATA

type T_RGNDATAHEADER = TRGNDATAHEADER

type T_RIP_INFO = TRIP_INFO

type T_ROOT_INFO_LUID = TROOT_INFO_LUID

type T_RPC_ASYNC_NOTIFICATION_INFO = TRPC_ASYNC_NOTIFICATION_INFO

type T_RPC_BINDING_HANDLE_OPTIONS_V1 = TRPC_BINDING_HANDLE_OPTIONS_V1

type T_RPC_BINDING_HANDLE_TEMPLATE = TRPC_BINDING_HANDLE_TEMPLATE_V1

type T_RPC_BINDING_VECTOR = TRPC_BINDING_VECTOR

type T_RPC_CLIENT_INTERFACE = TRPC_CLIENT_INTERFACE

type T_RPC_C_OPT_METADATA_DESCRIPTOR = TRPC_C_OPT_METADATA_DESCRIPTOR

type T_RPC_HTTP_TRANSPORT_CREDENTIALS_A = TRPC_HTTP_TRANSPORT_CREDENTIALS_A

type T_RPC_HTTP_TRANSPORT_CREDENTIALS_W = TRPC_HTTP_TRANSPORT_CREDENTIALS_W

type T_RPC_IF_ID = TRPC_IF_ID

type T_RPC_MESSAGE = TRPC_MESSAGE

type T_RPC_POLICY = TRPC_POLICY

type T_RPC_PROTSEQ_ENDPOINT = TRPC_PROTSEQ_ENDPOINT

type T_RPC_PROTSEQ_VECTORA = TRPC_PROTSEQ_VECTORA

type T_RPC_PROTSEQ_VECTORW = TRPC_PROTSEQ_VECTORW

type T_RPC_SECURITY_QOS = TRPC_SECURITY_QOS

type T_RPC_SECURITY_QOS_V2_A = TRPC_SECURITY_QOS_V2_A

type T_RPC_SECURITY_QOS_V2_W = TRPC_SECURITY_QOS_V2_W

type T_RPC_SECURITY_QOS_V3_A = TRPC_SECURITY_QOS_V3_A

type T_RPC_SECURITY_QOS_V3_W = TRPC_SECURITY_QOS_V3_W

type T_RPC_SERVER_INTERFACE = TRPC_SERVER_INTERFACE

type T_RPC_SYNTAX_IDENTIFIER = TRPC_SYNTAX_IDENTIFIER

type T_RPC_TRANSFER_SYNTAX = TRPC_TRANSFER_SYNTAX

type T_RPC_VERSION = TRPC_VERSION

type T_RSAPUBKEY = TRSAPUBKEY

type T_RTL_BARRIER = TRTL_BARRIER

type T_RTL_CONDITION_VARIABLE = TRTL_CONDITION_VARIABLE

type T_RTL_CRITICAL_SECTION = TRTL_CRITICAL_SECTION

type T_RTL_CRITICAL_SECTION_DEBUG = TRTL_CRITICAL_SECTION_DEBUG

type T_RTL_RUN_ONCE = TRTL_RUN_ONCE

type T_RTL_SRWLOCK = TRTL_SRWLOCK

type T_RTL_VERIFIER_DLL_DESCRIPTOR = TRTL_VERIFIER_DLL_DESCRIPTOR

type T_RTL_VERIFIER_PROVIDER_DESCRIPTOR = TRTL_VERIFIER_PROVIDER_DESCRIPTOR

type T_RTL_VERIFIER_THUNK_DESCRIPTOR = TRTL_VERIFIER_THUNK_DESCRIPTOR

type T_RemotableHandle = TRemotableHandle

type T_SCARD_ATRMASK = TSCARD_ATRMASK

type T_SCARD_IO_REQUEST = TSCARD_IO_REQUEST

type T_SCHANNEL_ALG = TSCHANNEL_ALG

type T_SCONTEXT_QUEUE = TSCONTEXT_QUEUE

type T_SCOPE_TABLE_AMD64 = TSCOPE_TABLE_AMD64

type T_SCRUB_DATA_INPUT = TSCRUB_DATA_INPUT

type T_SCRUB_DATA_OUTPUT = TSCRUB_DATA_OUTPUT

type T_SC_ACTION = TSC_ACTION

type T_SD_CHANGE_MACHINE_SID_INPUT = TSD_CHANGE_MACHINE_SID_INPUT

type T_SD_CHANGE_MACHINE_SID_OUTPUT = TSD_CHANGE_MACHINE_SID_OUTPUT

type T_SECURITY_ATTRIBUTES = TSECURITY_ATTRIBUTES

type T_SECURITY_CAPABILITIES = TSECURITY_CAPABILITIES

type T_SECURITY_DESCRIPTOR = TSECURITY_DESCRIPTOR

type T_SECURITY_DESCRIPTOR_RELATIVE = TSECURITY_DESCRIPTOR_RELATIVE

type T_SECURITY_QUALITY_OF_SERVICE = TSECURITY_QUALITY_OF_SERVICE

type T_SEC_WINNT_AUTH_IDENTITY_A = TSEC_WINNT_AUTH_IDENTITY_A

type T_SEC_WINNT_AUTH_IDENTITY_W = TSEC_WINNT_AUTH_IDENTITY_W

type T_SENDCMDINPARAMS = TSENDCMDINPARAMS

type T_SENDCMDOUTPARAMS = TSENDCMDOUTPARAMS

type T_SERVICE_CONTROL_STATUS_REASON_PARAMSA = TSERVICE_CONTROL_STATUS_REASON_PARAMSA

type T_SERVICE_CONTROL_STATUS_REASON_PARAMSW = TSERVICE_CONTROL_STATUS_REASON_PARAMSW

type T_SERVICE_DELAYED_AUTO_START_INFO = TSERVICE_DELAYED_AUTO_START_INFO

type T_SERVICE_DESCRIPTIONA = TSERVICE_DESCRIPTIONA

type T_SERVICE_DESCRIPTIONW = TSERVICE_DESCRIPTIONW

type T_SERVICE_FAILURE_ACTIONSA = TSERVICE_FAILURE_ACTIONSA

type T_SERVICE_FAILURE_ACTIONSW = TSERVICE_FAILURE_ACTIONSW

type T_SERVICE_FAILURE_ACTIONS_FLAG = TSERVICE_FAILURE_ACTIONS_FLAG

type T_SERVICE_NOTIFYA = TSERVICE_NOTIFYA

type T_SERVICE_NOTIFYW = TSERVICE_NOTIFYW

type T_SERVICE_PRESHUTDOWN_INFO = TSERVICE_PRESHUTDOWN_INFO

type T_SERVICE_REQUIRED_PRIVILEGES_INFOA = TSERVICE_REQUIRED_PRIVILEGES_INFOA

type T_SERVICE_REQUIRED_PRIVILEGES_INFOW = TSERVICE_REQUIRED_PRIVILEGES_INFOW

type T_SERVICE_SID_INFO = TSERVICE_SID_INFO

type T_SERVICE_STATUS = TSERVICE_STATUS

type T_SERVICE_STATUS_PROCESS = TSERVICE_STATUS_PROCESS

type T_SERVICE_TABLE_ENTRYA = TSERVICE_TABLE_ENTRYA

type T_SERVICE_TABLE_ENTRYW = TSERVICE_TABLE_ENTRYW

type T_SESSION_BUFFER = TSESSION_BUFFER

type T_SESSION_HEADER = TSESSION_HEADER

type T_SET_PARTITION_INFORMATION = TSET_PARTITION_INFORMATION

type T_SET_PARTITION_INFORMATION_EX = TSET_PARTITION_INFORMATION_EX

type T_SET_VIRTUAL_DISK_INFO = TSET_VIRTUAL_DISK_INFO

type T_SE_ACCESS_REPLY = TSE_ACCESS_REPLY

type T_SE_ACCESS_REQUEST = TSE_ACCESS_REQUEST

type T_SE_IMPERSONATION_STATE = TSE_IMPERSONATION_STATE

type T_SE_SECURITY_DESCRIPTOR = TSE_SECURITY_DESCRIPTOR

type T_SHCREATEPROCESSINFOW = TSHCREATEPROCESSINFOW

type T_SHELLEXECUTEINFOA = TSHELLEXECUTEINFOA

type T_SHELLEXECUTEINFOW = TSHELLEXECUTEINFOW

type T_SHFILEINFOA = TSHFILEINFOA

type T_SHFILEINFOW = TSHFILEINFOW

type T_SHFILEOPSTRUCTA = TSHFILEOPSTRUCTA

type T_SHFILEOPSTRUCTW = TSHFILEOPSTRUCTW

type T_SHNAMEMAPPINGA = TSHNAMEMAPPINGA

type T_SHNAMEMAPPINGW = TSHNAMEMAPPINGW

type T_SHORT_SIZEDARR = TWORD_SIZEDARR

type T_SHQUERYRBINFO = TSHQUERYRBINFO

type T_SHRINK_VOLUME_INFORMATION = TSHRINK_VOLUME_INFORMATION

type T_SHSTOCKICONINFO = TSHSTOCKICONINFO

type T_SID = TSID

type T_SID_AND_ATTRIBUTES = TSID_AND_ATTRIBUTES

type T_SID_AND_ATTRIBUTES_HASH = TSID_AND_ATTRIBUTES_HASH

type T_SID_IDENTIFIER_AUTHORITY = TSID_IDENTIFIER_AUTHORITY

type T_SINGLE_LIST_ENTRY = TSINGLE_LIST_ENTRY

type T_SI_COPYFILE = TSI_COPYFILE

type T_SLIST_HEADER = TSLIST_HEADER

type T_SMALL_RECT = TSMALL_RECT

type T_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS = TSSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS

type T_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA = TSSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA

type T_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA = TSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA

type T_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS = TSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS

type T_STARTUPINFOA = TSTARTUPINFOA

type T_STARTUPINFOEXA = TSTARTUPINFOEXA

type T_STARTUPINFOEXW = TSTARTUPINFOEXW

type T_STARTUPINFOW = TSTARTUPINFOW

type T_STGMEDIUM_UNION = struct {
	Ftymed TDWORD
	Fu     t__WIDL_objidl_generated_name_0000000D
}

type T_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = TSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR

type T_STORAGE_ADAPTER_DESCRIPTOR = TSTORAGE_ADAPTER_DESCRIPTOR

type T_STORAGE_ALLOCATE_BC_STREAM_INPUT = TSTORAGE_ALLOCATE_BC_STREAM_INPUT

type T_STORAGE_ALLOCATE_BC_STREAM_OUTPUT = TSTORAGE_ALLOCATE_BC_STREAM_OUTPUT

type T_STORAGE_BUS_RESET_REQUEST = TSTORAGE_BUS_RESET_REQUEST

type T_STORAGE_CRYPTO_CAPABILITY = TSTORAGE_CRYPTO_CAPABILITY

type T_STORAGE_CRYPTO_DESCRIPTOR = TSTORAGE_CRYPTO_DESCRIPTOR

type T_STORAGE_DEPENDENCY_INFO = TSTORAGE_DEPENDENCY_INFO

type T_STORAGE_DEPENDENCY_INFO_TYPE_1 = TSTORAGE_DEPENDENCY_INFO_TYPE_1

type T_STORAGE_DEPENDENCY_INFO_TYPE_2 = TSTORAGE_DEPENDENCY_INFO_TYPE_2

type T_STORAGE_DESCRIPTOR_HEADER = TSTORAGE_DESCRIPTOR_HEADER

type T_STORAGE_DEVICE_DESCRIPTOR = TSTORAGE_DEVICE_DESCRIPTOR

type T_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = TSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR

type T_STORAGE_DEVICE_ID_DESCRIPTOR = TSTORAGE_DEVICE_ID_DESCRIPTOR

type T_STORAGE_DEVICE_NUMBER = TSTORAGE_DEVICE_NUMBER

type T_STORAGE_DEVICE_NUMBERS = TSTORAGE_DEVICE_NUMBERS

type T_STORAGE_DEVICE_NUMBER_EX = TSTORAGE_DEVICE_NUMBER_EX

type T_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR = TSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR

type T_STORAGE_DEVICE_TIERING_DESCRIPTOR = TSTORAGE_DEVICE_TIERING_DESCRIPTOR

type T_STORAGE_FAILURE_PREDICTION_CONFIG = TSTORAGE_FAILURE_PREDICTION_CONFIG

type T_STORAGE_GET_BC_PROPERTIES_OUTPUT = TSTORAGE_GET_BC_PROPERTIES_OUTPUT

type T_STORAGE_HOTPLUG_INFO = TSTORAGE_HOTPLUG_INFO

type T_STORAGE_IDENTIFIER = TSTORAGE_IDENTIFIER

type T_STORAGE_LB_PROVISIONING_MAP_RESOURCES = TSTORAGE_LB_PROVISIONING_MAP_RESOURCES

type T_STORAGE_MEDIA_SERIAL_NUMBER_DATA = TSTORAGE_MEDIA_SERIAL_NUMBER_DATA

type T_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = TSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR

type T_STORAGE_MINIPORT_DESCRIPTOR = TSTORAGE_MINIPORT_DESCRIPTOR

type T_STORAGE_PREDICT_FAILURE = TSTORAGE_PREDICT_FAILURE

type T_STORAGE_PRIORITY_HINT_SUPPORT = TSTORAGE_PRIORITY_HINT_SUPPORT

type T_STORAGE_PROPERTY_QUERY = TSTORAGE_PROPERTY_QUERY

type T_STORAGE_PROPERTY_SET = TSTORAGE_PROPERTY_SET

type T_STORAGE_PROTOCOL_DATA_DESCRIPTOR = TSTORAGE_PROTOCOL_DATA_DESCRIPTOR

type T_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = TSTORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT

type T_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = TSTORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE

type T_STORAGE_PROTOCOL_SPECIFIC_DATA = TSTORAGE_PROTOCOL_SPECIFIC_DATA

type T_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT = TSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT

type T_STORAGE_READ_CAPACITY = TSTORAGE_READ_CAPACITY

type T_STORAGE_RPMB_DESCRIPTOR = TSTORAGE_RPMB_DESCRIPTOR

type T_STORAGE_TIER = TSTORAGE_TIER

type T_STORAGE_WRITE_CACHE_PROPERTY = TSTORAGE_WRITE_CACHE_PROPERTY

type T_SUPPORTED_OS_INFO = TSUPPORTED_OS_INFO

type T_SYSTEMTIME = TSYSTEMTIME

type T_SYSTEM_ALARM_ACE = TSYSTEM_ALARM_ACE

type T_SYSTEM_ALARM_CALLBACK_ACE = TSYSTEM_ALARM_CALLBACK_ACE

type T_SYSTEM_ALARM_CALLBACK_OBJECT_ACE = TSYSTEM_ALARM_CALLBACK_OBJECT_ACE

type T_SYSTEM_ALARM_OBJECT_ACE = TSYSTEM_ALARM_OBJECT_ACE

type T_SYSTEM_AUDIT_ACE = TSYSTEM_AUDIT_ACE

type T_SYSTEM_AUDIT_CALLBACK_ACE = TSYSTEM_AUDIT_CALLBACK_ACE

type T_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = TSYSTEM_AUDIT_CALLBACK_OBJECT_ACE

type T_SYSTEM_AUDIT_OBJECT_ACE = TSYSTEM_AUDIT_OBJECT_ACE

type T_SYSTEM_INFO = TSYSTEM_INFO

type T_SYSTEM_LOGICAL_PROCESSOR_INFORMATION = TSYSTEM_LOGICAL_PROCESSOR_INFORMATION

type T_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = struct {
	FRelationship TLOGICAL_PROCESSOR_RELATIONSHIP
	FSize         TDWORD
	F__ccgo2_8    struct {
		FNumaNode    [0]TNUMA_NODE_RELATIONSHIP
		FCache       [0]TCACHE_RELATIONSHIP
		FGroup       [0]TGROUP_RELATIONSHIP
		FProcessor   TPROCESSOR_RELATIONSHIP
		F__ccgo_pad4 [32]byte
	}
}

type T_SYSTEM_MANDATORY_LABEL_ACE = TSYSTEM_MANDATORY_LABEL_ACE

type T_SYSTEM_POWER_POLICY = TSYSTEM_POWER_POLICY

type T_SYSTEM_POWER_STATUS = TSYSTEM_POWER_STATUS

type T_SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = TSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION

type T_SYSTEM_RESOURCE_ATTRIBUTE_ACE = TSYSTEM_RESOURCE_ATTRIBUTE_ACE

type T_SYSTEM_SCOPED_POLICY_ID_ACE = TSYSTEM_SCOPED_POLICY_ID_ACE

type T_SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION = TSYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION

type T_TAKE_SNAPSHOT_VHDSET_PARAMETERS = TTAKE_SNAPSHOT_VHDSET_PARAMETERS

type T_TAPE_CREATE_PARTITION = TTAPE_CREATE_PARTITION

type T_TAPE_ERASE = TTAPE_ERASE

type T_TAPE_GET_DRIVE_PARAMETERS = TTAPE_GET_DRIVE_PARAMETERS

type T_TAPE_GET_MEDIA_PARAMETERS = TTAPE_GET_MEDIA_PARAMETERS

type T_TAPE_GET_POSITION = TTAPE_GET_POSITION

type T_TAPE_GET_STATISTICS = TTAPE_GET_STATISTICS

type T_TAPE_PREPARE = TTAPE_PREPARE

type T_TAPE_SET_DRIVE_PARAMETERS = TTAPE_SET_DRIVE_PARAMETERS

type T_TAPE_SET_MEDIA_PARAMETERS = TTAPE_SET_MEDIA_PARAMETERS

type T_TAPE_SET_POSITION = TTAPE_SET_POSITION

type T_TAPE_STATISTICS = TTAPE_STATISTICS

type T_TAPE_WMI_OPERATIONS = TTAPE_WMI_OPERATIONS

type T_TAPE_WRITE_MARKS = TTAPE_WRITE_MARKS

type T_TIME_DYNAMIC_ZONE_INFORMATION = TDYNAMIC_TIME_ZONE_INFORMATION

type T_TIME_ZONE_INFORMATION = TTIME_ZONE_INFORMATION

type T_TOKEN_ACCESS_INFORMATION = TTOKEN_ACCESS_INFORMATION

type T_TOKEN_APPCONTAINER_INFORMATION = TTOKEN_APPCONTAINER_INFORMATION

type T_TOKEN_AUDIT_POLICY = TTOKEN_AUDIT_POLICY

type T_TOKEN_CONTROL = TTOKEN_CONTROL

type T_TOKEN_DEFAULT_DACL = TTOKEN_DEFAULT_DACL

type T_TOKEN_DEVICE_CLAIMS = TTOKEN_DEVICE_CLAIMS

type T_TOKEN_ELEVATION = TTOKEN_ELEVATION

type T_TOKEN_GROUPS = TTOKEN_GROUPS

type T_TOKEN_GROUPS_AND_PRIVILEGES = TTOKEN_GROUPS_AND_PRIVILEGES

type T_TOKEN_LINKED_TOKEN = TTOKEN_LINKED_TOKEN

type T_TOKEN_MANDATORY_LABEL = TTOKEN_MANDATORY_LABEL

type T_TOKEN_MANDATORY_POLICY = TTOKEN_MANDATORY_POLICY

type T_TOKEN_ORIGIN = TTOKEN_ORIGIN

type T_TOKEN_OWNER = TTOKEN_OWNER

type T_TOKEN_PRIMARY_GROUP = TTOKEN_PRIMARY_GROUP

type T_TOKEN_PRIVILEGES = TTOKEN_PRIVILEGES

type T_TOKEN_SOURCE = TTOKEN_SOURCE

type T_TOKEN_STATISTICS = TTOKEN_STATISTICS

type T_TOKEN_USER = TTOKEN_USER

type T_TOKEN_USER_CLAIMS = TTOKEN_USER_CLAIMS

type T_TP_CALLBACK_ENVIRON_V3 = TTP_CALLBACK_ENVIRON_V3

type T_TP_POOL_STACK_INFORMATION = TTP_POOL_STACK_INFORMATION

type T_TRANSACTIONMANAGER_BASIC_INFORMATION = TTRANSACTIONMANAGER_BASIC_INFORMATION

type T_TRANSACTIONMANAGER_LOGPATH_INFORMATION = TTRANSACTIONMANAGER_LOGPATH_INFORMATION

type T_TRANSACTIONMANAGER_LOG_INFORMATION = TTRANSACTIONMANAGER_LOG_INFORMATION

type T_TRANSACTIONMANAGER_OLDEST_INFORMATION = TTRANSACTIONMANAGER_OLDEST_INFORMATION

type T_TRANSACTIONMANAGER_RECOVERY_INFORMATION = TTRANSACTIONMANAGER_RECOVERY_INFORMATION

type T_TRANSACTION_BASIC_INFORMATION = TTRANSACTION_BASIC_INFORMATION

type T_TRANSACTION_BIND_INFORMATION = TTRANSACTION_BIND_INFORMATION

type T_TRANSACTION_ENLISTMENTS_INFORMATION = TTRANSACTION_ENLISTMENTS_INFORMATION

type T_TRANSACTION_ENLISTMENT_PAIR = TTRANSACTION_ENLISTMENT_PAIR

type T_TRANSACTION_LIST_ENTRY = TTRANSACTION_LIST_ENTRY

type T_TRANSACTION_LIST_INFORMATION = TTRANSACTION_LIST_INFORMATION

type T_TRANSACTION_NOTIFICATION = TTRANSACTION_NOTIFICATION

type T_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = TTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT

type T_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = TTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT

type T_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = TTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT

type T_TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = TTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT

type T_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = TTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT

type T_TRANSACTION_PROPERTIES_INFORMATION = TTRANSACTION_PROPERTIES_INFORMATION

type T_TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = TTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION

type T_TRANSMIT_FILE_BUFFERS = TTRANSMIT_FILE_BUFFERS

type T_TRIVERTEX = TTRIVERTEX

type T_TXFS_CREATE_MINIVERSION_INFO = TTXFS_CREATE_MINIVERSION_INFO

type T_TXFS_GET_METADATA_INFO_OUT = TTXFS_GET_METADATA_INFO_OUT

type T_TXFS_GET_TRANSACTED_VERSION = TTXFS_GET_TRANSACTED_VERSION

type T_TXFS_LIST_TRANSACTIONS = TTXFS_LIST_TRANSACTIONS

type T_TXFS_LIST_TRANSACTIONS_ENTRY = TTXFS_LIST_TRANSACTIONS_ENTRY

type T_TXFS_LIST_TRANSACTION_LOCKED_FILES = TTXFS_LIST_TRANSACTION_LOCKED_FILES

type T_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY = TTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY

type T_TXFS_MODIFY_RM = TTXFS_MODIFY_RM

type T_TXFS_QUERY_RM_INFORMATION = TTXFS_QUERY_RM_INFORMATION

type T_TXFS_READ_BACKUP_INFORMATION_OUT = TTXFS_READ_BACKUP_INFORMATION_OUT

type T_TXFS_ROLLFORWARD_REDO_INFORMATION = TTXFS_ROLLFORWARD_REDO_INFORMATION

type T_TXFS_SAVEPOINT_INFORMATION = TTXFS_SAVEPOINT_INFORMATION

type T_TXFS_START_RM_INFORMATION = TTXFS_START_RM_INFORMATION

type T_TXFS_TRANSACTION_ACTIVE_INFO = TTXFS_TRANSACTION_ACTIVE_INFO

type T_TXFS_WRITE_BACKUP_INFORMATION = TTXFS_WRITE_BACKUP_INFORMATION

type T_ULARGE_INTEGER = TULARGE_INTEGER

type T_UMS_CREATE_THREAD_ATTRIBUTES = TUMS_CREATE_THREAD_ATTRIBUTES

type T_UNIVERSAL_NAME_INFOA = TUNIVERSAL_NAME_INFOA

type T_UNIVERSAL_NAME_INFOW = TUNIVERSAL_NAME_INFOW

type T_UNLOAD_DLL_DEBUG_INFO = TUNLOAD_DLL_DEBUG_INFO

type T_USER_MARSHAL_CB = TUSER_MARSHAL_CB

type T_USER_MARSHAL_ROUTINE_QUADRUPLE = TUSER_MARSHAL_ROUTINE_QUADRUPLE

type T_UUID_VECTOR = TUUID_VECTOR

type T_VERIFY_INFORMATION = TVERIFY_INFORMATION

type T_VIDEOPARAMETERS = TVIDEOPARAMETERS

type T_VIRTUAL_DISK_PROGRESS = TVIRTUAL_DISK_PROGRESS

type T_VIRTUAL_STORAGE_TYPE = TVIRTUAL_STORAGE_TYPE

type T_VOLUME_DISK_EXTENTS = TVOLUME_DISK_EXTENTS

type T_VOLUME_GET_GPT_ATTRIBUTES_INFORMATION = TVOLUME_GET_GPT_ATTRIBUTES_INFORMATION

type T_WGLSWAP = TWGLSWAP

type T_WIN32_FILE_ATTRIBUTE_DATA = TWIN32_FILE_ATTRIBUTE_DATA

type T_WIN32_FIND_DATAA = TWIN32_FIND_DATAA

type T_WIN32_FIND_DATAW = TWIN32_FIND_DATAW

type T_WIN32_FIND_STREAM_DATA = TWIN32_FIND_STREAM_DATA

type T_WIN32_MEMORY_RANGE_ENTRY = TWIN32_MEMORY_RANGE_ENTRY

type T_WIN32_STREAM_ID = TWIN32_STREAM_ID

type T_WINDOW_BUFFER_SIZE_RECORD = TWINDOW_BUFFER_SIZE_RECORD

type T_WOF_EXTERNAL_INFO = TWOF_EXTERNAL_INFO

type T_WORD_BLOB = TWORD_BLOB

type T_WOW64_CONTEXT = TWOW64_CONTEXT

type T_WOW64_DESCRIPTOR_TABLE_ENTRY = TWOW64_DESCRIPTOR_TABLE_ENTRY

type T_WOW64_FLOATING_SAVE_AREA = TWOW64_FLOATING_SAVE_AREA

type T_WOW64_LDT_ENTRY = TWOW64_LDT_ENTRY

type T_XCPT_ACTION = struct {
	FXcptNum    uint32
	FSigNum     int32
	FXcptAction T_PHNDLR
}

type T_XMIT_ROUTINE_QUINTUPLE = TXMIT_ROUTINE_QUINTUPLE

type T_XSAVE_AREA = TXSAVE_AREA

type T_XSAVE_AREA_HEADER = TXSAVE_AREA_HEADER

type T_XSAVE_FORMAT = TXSAVE_FORMAT

type T_XSTATE_CONFIGURATION = TXSTATE_CONFIGURATION

type T_XSTATE_CONTEXT = TXSTATE_CONTEXT

type T_XSTATE_FEATURE = TXSTATE_FEATURE

type T_ZONEATTRIBUTES = TZONEATTRIBUTES

type T_beginthread_proc_type = uintptr

type T_beginthreadex_proc_type = uintptr

type T_cpinfo = TCPINFO

type T_cpinfoexA = TCPINFOEXA

type T_cpinfoexW = TCPINFOEXW

type T_currencyfmtA = TCURRENCYFMTA

type T_currencyfmtW = TCURRENCYFMTW

type T_dev_t = uint32

type T_devicemodeA = TDEVMODEA

type T_devicemodeW = TDEVMODEW

type T_div_t = Tdiv_t

type T_heapinfo = T_HEAPINFO

type T_ino_t = uint16

type T_invalid_parameter_handler = uintptr

type T_iobuf = struct {
	F_ptr      uintptr
	F_cnt      int32
	F_base     uintptr
	F_flag     int32
	F_file     int32
	F_charbuf  int32
	F_bufsiz   int32
	F_tmpfname uintptr
}

type T_ldiv_t = Tldiv_t

type T_locale_t = uintptr

type T_locale_tstruct = struct {
	Flocinfo Tpthreadlocinfo
	Fmbcinfo Tpthreadmbcinfo
}

type T_mode_t = uint16

type T_nlsversioninfo = TNLSVERSIONINFO

type T_nlsversioninfoex = TNLSVERSIONINFOEX

type T_numberfmtA = TNUMBERFMTA

type T_numberfmtW = TNUMBERFMTW

type T_off64_t = int64

type T_off_t = int32

type T_onexit_t = uintptr

type T_onexit_table_t = struct {
	F_first uintptr
	F_last  uintptr
	F_end   uintptr
}

type T_purecall_handler = uintptr

type T_remoteMETAFILEPICT = TremoteMETAFILEPICT

type T_tagAUTHENTICATEINFO = TAUTHENTICATEINFO

type T_tagBINDINFO = TBINDINFO

type T_tagCODEBASEHOLD = TCODEBASEHOLD

type T_tagDATAINFO = TDATAINFO

type T_tagHIT_LOGGING_INFO = THIT_LOGGING_INFO

type T_tagPROTOCOLDATA = TPROTOCOLDATA

type T_tagPROTOCOLFILTERDATA = TPROTOCOLFILTERDATA

type T_tagPROTOCOL_ARGUMENT = TPROTOCOL_ARGUMENT

type T_tagRemBINDINFO = TRemBINDINFO

type T_tagSOFTDISTINFO = TSOFTDISTINFO

type T_tagStartParam = TStartParam

type T_tagpropertykey = TPROPERTYKEY

type T_timespec32 = struct {
	Ftv_sec  t__time32_t
	Ftv_nsec int32
}

type T_tls_callback_type = uintptr

type T_userBITMAP = TuserBITMAP

type T_userCLIPFORMAT = TuserCLIPFORMAT

type T_userFLAG_STGMEDIUM = TuserFLAG_STGMEDIUM

type T_userHBITMAP = TuserHBITMAP

type T_userHENHMETAFILE = TuserHENHMETAFILE

type T_userHGLOBAL = TuserHGLOBAL

type T_userHMETAFILE = TuserHMETAFILE

type T_userHMETAFILEPICT = TuserHMETAFILEPICT

type T_userHPALETTE = TuserHPALETTE

type T_userSTGMEDIUM = TuserSTGMEDIUM

type T_wireBRECORD = struct {
	FfFlags   TULONG
	FclSize   TULONG
	FpRecInfo uintptr
	FpRecord  uintptr
}

type T_wireSAFEARRAY = struct {
	FcDims         TUSHORT
	FfFeatures     TUSHORT
	FcbElements    TULONG
	FcLocks        TULONG
	FuArrayStructs TSAFEARRAYUNION
	Frgsabound     [1]TSAFEARRAYBOUND
}

type T_wireSAFEARRAY_UNION = TSAFEARRAYUNION

type T_wireSAFEARR_BRECORD = TSAFEARR_BRECORD

type T_wireSAFEARR_BSTR = TSAFEARR_BSTR

type T_wireSAFEARR_DISPATCH = TSAFEARR_DISPATCH

type T_wireSAFEARR_HAVEIID = TSAFEARR_HAVEIID

type T_wireSAFEARR_UNKNOWN = TSAFEARR_UNKNOWN

type T_wireSAFEARR_VARIANT = TSAFEARR_VARIANT

type T_xml_error = TXML_ERROR

const TabbedTextOut = 0

const TapeClassGuid = 0

type Tboolean = uint8

type Tbyte = uint8

type Tcs_byte = uint8

type Tdev_t = uint32

type Terror_status_t = uint32

const TextOut = 0

type Tfd_set = struct {
	Ffd_count Tu_int
	Ffd_array [64]TSOCKET
}

type Thandle_t = uintptr

type Thostent = struct {
	Fh_name      uintptr
	Fh_aliases   uintptr
	Fh_addrtype  int16
	Fh_length    int16
	Fh_addr_list uintptr
}

type Tin_addr = TIN_ADDR

type Tino_t = uint16

type Tip_mreq = TIP_MREQ

type Tjoyinfo_tag = TJOYINFO

type Tjoyinfoex_tag = TJOYINFOEX

type Tlinger = struct {
	Fl_onoff  Tu_short
	Fl_linger Tu_short
}

type Tlocaleinfo_struct = T_locale_tstruct

type Tmidievent_tag = TMIDIEVENT

type Tmidihdr_tag = TMIDIHDR

type Tmidiproptempo_tag = TMIDIPROPTEMPO

type Tmidiproptimediv_tag = TMIDIPROPTIMEDIV

type Tmidistrmbuffver_tag = TMIDISTRMBUFFVER

type Tmmtime_tag = TMMTIME

type Tnetent = struct {
	Fn_name     uintptr
	Fn_aliases  uintptr
	Fn_addrtype int16
	Fn_net      Tu_long
}

type Toff32_t = int32

type Tpcmwaveformat_tag = TPCMWAVEFORMAT

type Tprotoent = struct {
	Fp_name    uintptr
	Fp_aliases uintptr
	Fp_proto   int16
}

type Tprovider_info = TREG_PROVIDER

type Tpthreadlocinfo = uintptr

type Tpthreadmbcinfo = uintptr

type TpvalueA = TPVALUEA

type TpvalueW = TPVALUEW

const TranslateAccelerator = 0

type TremoteMETAFILEPICT = struct {
	Fmm   TLONG
	FxExt TLONG
	FyExt TLONG
	FhMF  uintptr
}

type Tsockaddr = struct {
	Fsa_family Tu_short
	Fsa_data   [14]int8
}

type Tsockaddr_in = struct {
	Fsin_family int16
	Fsin_port   Tu_short
	Fsin_addr   Tin_addr
	Fsin_zero   [8]int8
}

type Tsockproto = struct {
	Fsp_family   Tu_short
	Fsp_protocol Tu_short
}

type TtMIXERCONTROLDETAILS = TMIXERCONTROLDETAILS

type TtMIXERCONTROLDETAILS_BOOLEAN = TMIXERCONTROLDETAILS_BOOLEAN

type TtMIXERCONTROLDETAILS_SIGNED = TMIXERCONTROLDETAILS_SIGNED

type TtMIXERCONTROLDETAILS_UNSIGNED = TMIXERCONTROLDETAILS_UNSIGNED

type TtWAVEFORMATEX = TWAVEFORMATEX

type TtagABORTPATH = TEMRABORTPATH

type TtagACCEL = TACCEL

type TtagACCESSTIMEOUT = TACCESSTIMEOUT

type TtagACTCTXA = TACTCTXA

type TtagACTCTXW = TACTCTXW

type TtagACTCTX_SECTION_KEYED_DATA = TACTCTX_SECTION_KEYED_DATA

type TtagACTCTX_SECTION_KEYED_DATA_2600 = TACTCTX_SECTION_KEYED_DATA_2600

type TtagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = TACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA

type TtagALTTABINFO = TALTTABINFO

type TtagANIMATIONINFO = TANIMATIONINFO

type TtagARRAYDESC = TARRAYDESC

type TtagAUDIODESCRIPTION = TAUDIODESCRIPTION

type TtagAUXCAPS2A = TAUXCAPS2A

type TtagAUXCAPS2W = TAUXCAPS2W

type TtagAUXCAPSA = TAUXCAPSA

type TtagAUXCAPSW = TAUXCAPSW

type TtagAXESLISTA = TAXESLISTA

type TtagAXESLISTW = TAXESLISTW

type TtagAXISINFOA = TAXISINFOA

type TtagAXISINFOW = TAXISINFOW

type TtagBINDPTR = TBINDPTR

type TtagBIND_OPTS = TBIND_OPTS

type TtagBIND_OPTS2 = TBIND_OPTS2

type TtagBIND_OPTS3 = TBIND_OPTS3

type TtagBITMAP = TBITMAP

type TtagBITMAPCOREHEADER = TBITMAPCOREHEADER

type TtagBITMAPCOREINFO = TBITMAPCOREINFO

type TtagBITMAPFILEHEADER = TBITMAPFILEHEADER

type TtagBITMAPINFO = TBITMAPINFO

type TtagBITMAPINFOHEADER = TBITMAPINFOHEADER

type TtagBLOB = TBLOB

type TtagBSTRBLOB = TBSTRBLOB

type TtagBinaryParam = TBinaryParam

type TtagCABOOL = TCABOOL

type TtagCABSTR = TCABSTR

type TtagCABSTRBLOB = TCABSTRBLOB

type TtagCAC = TCAC

type TtagCACLIPDATA = TCACLIPDATA

type TtagCACLSID = TCACLSID

type TtagCACY = TCACY

type TtagCADATE = TCADATE

type TtagCADBL = TCADBL

type TtagCAFILETIME = TCAFILETIME

type TtagCAFLT = TCAFLT

type TtagCAH = TCAH

type TtagCAI = TCAI

type TtagCAL = TCAL

type TtagCALPSTR = TCALPSTR

type TtagCALPWSTR = TCALPWSTR

type TtagCANDIDATEFORM = TCANDIDATEFORM

type TtagCANDIDATELIST = TCANDIDATELIST

type TtagCAPROPVARIANT = TCAPROPVARIANT

type TtagCASCODE = TCASCODE

type TtagCAUB = TCAUB

type TtagCAUH = TCAUH

type TtagCAUI = TCAUI

type TtagCAUL = TCAUL

type TtagCBTACTIVATESTRUCT = TCBTACTIVATESTRUCT

type TtagCBT_CREATEWNDA = TCBT_CREATEWNDA

type TtagCBT_CREATEWNDW = TCBT_CREATEWNDW

type TtagCHANGEFILTERSTRUCT = TCHANGEFILTERSTRUCT

type TtagCHARSETINFO = TCHARSETINFO

type TtagCHOOSECOLORA = TCHOOSECOLORA

type TtagCHOOSECOLORW = TCHOOSECOLORW

type TtagCHOOSEFONTA = TCHOOSEFONTA

type TtagCHOOSEFONTW = TCHOOSEFONTW

type TtagCIEXYZ = TCIEXYZ

type TtagCLEANLOCALSTORAGE = TCLEANLOCALSTORAGE

type TtagCLIENTCREATESTRUCT = TCLIENTCREATESTRUCT

type TtagCLIPDATA = TCLIPDATA

type TtagCOLORADJUSTMENT = TCOLORADJUSTMENT

type TtagCOLORCORRECTPALETTE = TEMRCOLORCORRECTPALETTE

type TtagCOLORMATCHTOTARGET = TEMRCOLORMATCHTOTARGET

type TtagCOMBOBOXINFO = TCOMBOBOXINFO

type TtagCOMPAREITEMSTRUCT = TCOMPAREITEMSTRUCT

type TtagCOMPOSITIONFORM = TCOMPOSITIONFORM

type TtagCONVCONTEXT = TCONVCONTEXT

type TtagCONVINFO = TCONVINFO

type TtagCOPYDATASTRUCT = TCOPYDATASTRUCT

type TtagCREATESTRUCTA = TCREATESTRUCTA

type TtagCREATESTRUCTW = TCREATESTRUCTW

type TtagCRGB = TCRGB

type TtagCSPLATFORM = TCSPLATFORM

type TtagCURSORINFO = TCURSORINFO

type TtagCURSORSHAPE = TCURSORSHAPE

type TtagCUSTDATA = TCUSTDATA

type TtagCUSTDATAITEM = TCUSTDATAITEM

type TtagCWPRETSTRUCT = TCWPRETSTRUCT

type TtagCWPSTRUCT = TCWPSTRUCT

type TtagCY = TCY

type TtagDDEML_MSG_HOOK_DATA = TDDEML_MSG_HOOK_DATA

type TtagDEBUGHOOKINFO = TDEBUGHOOKINFO

type TtagDEC = TDECIMAL

type TtagDELETEITEMSTRUCT = TDELETEITEMSTRUCT

type TtagDESIGNVECTOR = TDESIGNVECTOR

type TtagDEVNAMES = TDEVNAMES

type TtagDIBSECTION = TDIBSECTION

type TtagDISPPARAMS = TDISPPARAMS

type TtagDRAWITEMSTRUCT = TDRAWITEMSTRUCT

type TtagDRAWTEXTPARAMS = TDRAWTEXTPARAMS

type TtagDROPSTRUCT = TDROPSTRUCT

type TtagDRVCONFIGINFO = TDRVCONFIGINFO

type TtagDVTARGETDEVICE = TDVTARGETDEVICE

type TtagELEMDESC = TELEMDESC

type TtagEMR = TEMR

type TtagEMRALPHABLEND = TEMRALPHABLEND

type TtagEMRANGLEARC = TEMRANGLEARC

type TtagEMRARC = TEMRARC

type TtagEMRBITBLT = TEMRBITBLT

type TtagEMRCREATEBRUSHINDIRECT = TEMRCREATEBRUSHINDIRECT

type TtagEMRCREATECOLORSPACE = TEMRCREATECOLORSPACE

type TtagEMRCREATECOLORSPACEW = TEMRCREATECOLORSPACEW

type TtagEMRCREATEDIBPATTERNBRUSHPT = TEMRCREATEDIBPATTERNBRUSHPT

type TtagEMRCREATEMONOBRUSH = TEMRCREATEMONOBRUSH

type TtagEMRCREATEPALETTE = TEMRCREATEPALETTE

type TtagEMRCREATEPEN = TEMRCREATEPEN

type TtagEMRELLIPSE = TEMRELLIPSE

type TtagEMREOF = TEMREOF

type TtagEMREXCLUDECLIPRECT = TEMREXCLUDECLIPRECT

type TtagEMREXTCREATEFONTINDIRECTW = TEMREXTCREATEFONTINDIRECTW

type TtagEMREXTCREATEPEN = TEMREXTCREATEPEN

type TtagEMREXTESCAPE = TEMREXTESCAPE

type TtagEMREXTFLOODFILL = TEMREXTFLOODFILL

type TtagEMREXTSELECTCLIPRGN = TEMREXTSELECTCLIPRGN

type TtagEMREXTTEXTOUTA = TEMREXTTEXTOUTA

type TtagEMRFILLPATH = TEMRFILLPATH

type TtagEMRFILLRGN = TEMRFILLRGN

type TtagEMRFORMAT = TEMRFORMAT

type TtagEMRFRAMERGN = TEMRFRAMERGN

type TtagEMRGDICOMMENT = TEMRGDICOMMENT

type TtagEMRGLSBOUNDEDRECORD = TEMRGLSBOUNDEDRECORD

type TtagEMRGLSRECORD = TEMRGLSRECORD

type TtagEMRGRADIENTFILL = TEMRGRADIENTFILL

type TtagEMRINVERTRGN = TEMRINVERTRGN

type TtagEMRLINETO = TEMRLINETO

type TtagEMRMASKBLT = TEMRMASKBLT

type TtagEMRMODIFYWORLDTRANSFORM = TEMRMODIFYWORLDTRANSFORM

type TtagEMRNAMEDESCAPE = TEMRNAMEDESCAPE

type TtagEMROFFSETCLIPRGN = TEMROFFSETCLIPRGN

type TtagEMRPIXELFORMAT = TEMRPIXELFORMAT

type TtagEMRPLGBLT = TEMRPLGBLT

type TtagEMRPOLYDRAW = TEMRPOLYDRAW

type TtagEMRPOLYDRAW16 = TEMRPOLYDRAW16

type TtagEMRPOLYLINE = TEMRPOLYLINE

type TtagEMRPOLYLINE16 = TEMRPOLYLINE16

type TtagEMRPOLYPOLYLINE = TEMRPOLYPOLYLINE

type TtagEMRPOLYPOLYLINE16 = TEMRPOLYPOLYLINE16

type TtagEMRPOLYTEXTOUTA = TEMRPOLYTEXTOUTA

type TtagEMRRESIZEPALETTE = TEMRRESIZEPALETTE

type TtagEMRRESTOREDC = TEMRRESTOREDC

type TtagEMRROUNDRECT = TEMRROUNDRECT

type TtagEMRSCALEVIEWPORTEXTEX = TEMRSCALEVIEWPORTEXTEX

type TtagEMRSELECTCLIPPATH = TEMRSELECTCLIPPATH

type TtagEMRSELECTOBJECT = TEMRSELECTOBJECT

type TtagEMRSELECTPALETTE = TEMRSELECTPALETTE

type TtagEMRSETARCDIRECTION = TEMRSETARCDIRECTION

type TtagEMRSETCOLORADJUSTMENT = TEMRSETCOLORADJUSTMENT

type TtagEMRSETCOLORSPACE = TEMRSETCOLORSPACE

type TtagEMRSETDIBITSTODEVICE = TEMRSETDIBITSTODEVICE

type TtagEMRSETICMPROFILE = TEMRSETICMPROFILE

type TtagEMRSETMAPPERFLAGS = TEMRSETMAPPERFLAGS

type TtagEMRSETMITERLIMIT = TEMRSETMITERLIMIT

type TtagEMRSETPALETTEENTRIES = TEMRSETPALETTEENTRIES

type TtagEMRSETPIXELV = TEMRSETPIXELV

type TtagEMRSETTEXTCOLOR = TEMRSETBKCOLOR

type TtagEMRSETVIEWPORTEXTEX = TEMRSETVIEWPORTEXTEX

type TtagEMRSETVIEWPORTORGEX = TEMRSETVIEWPORTORGEX

type TtagEMRSETWORLDTRANSFORM = TEMRSETWORLDTRANSFORM

type TtagEMRSTRETCHBLT = TEMRSTRETCHBLT

type TtagEMRSTRETCHDIBITS = TEMRSTRETCHDIBITS

type TtagEMRTEXT = TEMRTEXT

type TtagEMRTRANSPARENTBLT = TEMRTRANSPARENTBLT

type TtagENHMETAHEADER = TENHMETAHEADER

type TtagENHMETARECORD = TENHMETARECORD

type TtagENUMLOGFONTA = TENUMLOGFONTA

type TtagENUMLOGFONTEXA = TENUMLOGFONTEXA

type TtagENUMLOGFONTEXDVA = TENUMLOGFONTEXDVA

type TtagENUMLOGFONTEXDVW = TENUMLOGFONTEXDVW

type TtagENUMLOGFONTEXW = TENUMLOGFONTEXW

type TtagENUMLOGFONTW = TENUMLOGFONTW

type TtagENUMTEXTMETRICA = TENUMTEXTMETRICA

type TtagENUMTEXTMETRICW = TENUMTEXTMETRICW

type TtagENUMUILANG = TENUMUILANG

type TtagEVENTMSG = TEVENTMSG

type TtagEXCEPINFO = TEXCEPINFO

type TtagEXTLOGFONTA = TEXTLOGFONTA

type TtagEXTLOGFONTW = TEXTLOGFONTW

type TtagEXTLOGPEN = TEXTLOGPEN

type TtagEXTLOGPEN32 = TEXTLOGPEN32

type TtagFILTERKEYS = TFILTERKEYS

type TtagFINDREPLACEA = TFINDREPLACEA

type TtagFINDREPLACEW = TFINDREPLACEW

type TtagFONTSIGNATURE = TFONTSIGNATURE

type TtagFORMATETC = TFORMATETC

type TtagFUNCDESC = TFUNCDESC

type TtagGCP_RESULTSA = TGCP_RESULTSA

type TtagGCP_RESULTSW = TGCP_RESULTSW

type TtagGESTURECONFIG = TGESTURECONFIG

type TtagGESTUREINFO = TGESTUREINFO

type TtagGESTURENOTIFYSTRUCT = TGESTURENOTIFYSTRUCT

type TtagGLYPHSET = TGLYPHSET

type TtagGUITHREADINFO = TGUITHREADINFO

type TtagHANDLETABLE = THANDLETABLE

type TtagHARDWAREHOOKSTRUCT = THARDWAREHOOKSTRUCT

type TtagHARDWAREINPUT = THARDWAREINPUT

type TtagHELPINFO = THELPINFO

type TtagHELPWININFOA = THELPWININFOA

type TtagHELPWININFOW = THELPWININFOW

type TtagHIGHCONTRASTA = THIGHCONTRASTA

type TtagHIGHCONTRASTW = THIGHCONTRASTW

type TtagHSZPAIR = THSZPAIR

type TtagHW_PROFILE_INFOA = THW_PROFILE_INFOA

type TtagHW_PROFILE_INFOW = THW_PROFILE_INFOW

type TtagICEXYZTRIPLE = TCIEXYZTRIPLE

type TtagICONMETRICSA = TICONMETRICSA

type TtagICONMETRICSW = TICONMETRICSW

type TtagIDLDESC = TIDLDESC

type TtagIMECHARPOSITION = TIMECHARPOSITION

type TtagIMEMENUITEMINFOA = TIMEMENUITEMINFOA

type TtagIMEMENUITEMINFOW = TIMEMENUITEMINFOW

type TtagINPUT = TINPUT

type TtagINPUT_INJECTION_VALUE = TINPUT_INJECTION_VALUE

type TtagINPUT_MESSAGE_SOURCE = TINPUT_MESSAGE_SOURCE

type TtagINPUT_TRANSFORM = TINPUT_TRANSFORM

type TtagINTERFACEDATA = TINTERFACEDATA

type TtagINTERFACEINFO = TINTERFACEINFO

type TtagI_RpcProxyCallbackInterface = TI_RpcProxyCallbackInterface

type TtagJOYCAPS2A = TJOYCAPS2A

type TtagJOYCAPS2W = TJOYCAPS2W

type TtagJOYCAPSA = TJOYCAPSA

type TtagJOYCAPSW = TJOYCAPSW

type TtagKBDLLHOOKSTRUCT = TKBDLLHOOKSTRUCT

type TtagKERNINGPAIR = TKERNINGPAIR

type TtagKEYBDINPUT = TKEYBDINPUT

type TtagLASTINPUTINFO = TLASTINPUTINFO

type TtagLAYERPLANEDESCRIPTOR = TLAYERPLANEDESCRIPTOR

type TtagLC_ID = TLC_ID

type TtagLOCALESIGNATURE = TLOCALESIGNATURE

type TtagLOGBRUSH = TLOGBRUSH

type TtagLOGBRUSH32 = TLOGBRUSH32

type TtagLOGCOLORSPACEA = TLOGCOLORSPACEA

type TtagLOGCOLORSPACEW = TLOGCOLORSPACEW

type TtagLOGFONTA = TLOGFONTA

type TtagLOGFONTW = TLOGFONTW

type TtagLOGPALETTE = TLOGPALETTE

type TtagLOGPEN = TLOGPEN

type TtagMCI_ANIM_OPEN_PARMSA = TMCI_ANIM_OPEN_PARMSA

type TtagMCI_ANIM_OPEN_PARMSW = TMCI_ANIM_OPEN_PARMSW

type TtagMCI_ANIM_PLAY_PARMS = TMCI_ANIM_PLAY_PARMS

type TtagMCI_ANIM_RECT_PARMS = TMCI_ANIM_RECT_PARMS

type TtagMCI_ANIM_STEP_PARMS = TMCI_ANIM_STEP_PARMS

type TtagMCI_ANIM_UPDATE_PARMS = TMCI_ANIM_UPDATE_PARMS

type TtagMCI_ANIM_WINDOW_PARMSA = TMCI_ANIM_WINDOW_PARMSA

type TtagMCI_ANIM_WINDOW_PARMSW = TMCI_ANIM_WINDOW_PARMSW

type TtagMCI_BREAK_PARMS = TMCI_BREAK_PARMS

type TtagMCI_GENERIC_PARMS = TMCI_GENERIC_PARMS

type TtagMCI_GETDEVCAPS_PARMS = TMCI_GETDEVCAPS_PARMS

type TtagMCI_INFO_PARMSA = TMCI_INFO_PARMSA

type TtagMCI_INFO_PARMSW = TMCI_INFO_PARMSW

type TtagMCI_LOAD_PARMSA = TMCI_LOAD_PARMSA

type TtagMCI_LOAD_PARMSW = TMCI_LOAD_PARMSW

type TtagMCI_OPEN_PARMSA = TMCI_OPEN_PARMSA

type TtagMCI_OPEN_PARMSW = TMCI_OPEN_PARMSW

type TtagMCI_OVLY_LOAD_PARMSA = TMCI_OVLY_LOAD_PARMSA

type TtagMCI_OVLY_LOAD_PARMSW = TMCI_OVLY_LOAD_PARMSW

type TtagMCI_OVLY_OPEN_PARMSA = TMCI_OVLY_OPEN_PARMSA

type TtagMCI_OVLY_OPEN_PARMSW = TMCI_OVLY_OPEN_PARMSW

type TtagMCI_OVLY_RECT_PARMS = TMCI_OVLY_RECT_PARMS

type TtagMCI_OVLY_SAVE_PARMSA = TMCI_OVLY_SAVE_PARMSA

type TtagMCI_OVLY_SAVE_PARMSW = TMCI_OVLY_SAVE_PARMSW

type TtagMCI_OVLY_WINDOW_PARMSA = TMCI_OVLY_WINDOW_PARMSA

type TtagMCI_OVLY_WINDOW_PARMSW = TMCI_OVLY_WINDOW_PARMSW

type TtagMCI_PLAY_PARMS = TMCI_PLAY_PARMS

type TtagMCI_RECORD_PARMS = TMCI_RECORD_PARMS

type TtagMCI_SAVE_PARMSA = TMCI_SAVE_PARMSA

type TtagMCI_SAVE_PARMSW = TMCI_SAVE_PARMSW

type TtagMCI_SEEK_PARMS = TMCI_SEEK_PARMS

type TtagMCI_SEQ_SET_PARMS = TMCI_SEQ_SET_PARMS

type TtagMCI_SET_PARMS = TMCI_SET_PARMS

type TtagMCI_STATUS_PARMS = TMCI_STATUS_PARMS

type TtagMCI_SYSINFO_PARMSA = TMCI_SYSINFO_PARMSA

type TtagMCI_SYSINFO_PARMSW = TMCI_SYSINFO_PARMSW

type TtagMCI_VD_ESCAPE_PARMSA = TMCI_VD_ESCAPE_PARMSA

type TtagMCI_VD_ESCAPE_PARMSW = TMCI_VD_ESCAPE_PARMSW

type TtagMCI_VD_PLAY_PARMS = TMCI_VD_PLAY_PARMS

type TtagMCI_VD_STEP_PARMS = TMCI_VD_STEP_PARMS

type TtagMCI_WAVE_DELETE_PARMS = TMCI_WAVE_DELETE_PARMS

type TtagMCI_WAVE_OPEN_PARMSA = TMCI_WAVE_OPEN_PARMSA

type TtagMCI_WAVE_OPEN_PARMSW = TMCI_WAVE_OPEN_PARMSW

type TtagMCI_WAVE_SET_PARMS = TMCI_WAVE_SET_PARMS

type TtagMDICREATESTRUCTA = TMDICREATESTRUCTA

type TtagMDICREATESTRUCTW = TMDICREATESTRUCTW

type TtagMDINEXTMENU = TMDINEXTMENU

type TtagMEASUREITEMSTRUCT = TMEASUREITEMSTRUCT

type TtagMENUBARINFO = TMENUBARINFO

type TtagMENUGETOBJECTINFO = TMENUGETOBJECTINFO

type TtagMENUINFO = TMENUINFO

type TtagMENUITEMINFOA = TMENUITEMINFOA

type TtagMENUITEMINFOW = TMENUITEMINFOW

type TtagMETAFILEPICT = TMETAFILEPICT

type TtagMETAHEADER = TMETAHEADER

type TtagMETARECORD = TMETARECORD

type TtagMETHODDATA = TMETHODDATA

type TtagMIDIINCAPS2A = TMIDIINCAPS2A

type TtagMIDIINCAPS2W = TMIDIINCAPS2W

type TtagMIDIINCAPSA = TMIDIINCAPSA

type TtagMIDIINCAPSW = TMIDIINCAPSW

type TtagMIDIOUTCAPS2A = TMIDIOUTCAPS2A

type TtagMIDIOUTCAPS2W = TMIDIOUTCAPS2W

type TtagMIDIOUTCAPSA = TMIDIOUTCAPSA

type TtagMIDIOUTCAPSW = TMIDIOUTCAPSW

type TtagMINIMIZEDMETRICS = TMINIMIZEDMETRICS

type TtagMINMAXINFO = TMINMAXINFO

type TtagMIXERCAPS2A = TMIXERCAPS2A

type TtagMIXERCAPS2W = TMIXERCAPS2W

type TtagMIXERCAPSA = TMIXERCAPSA

type TtagMIXERCAPSW = TMIXERCAPSW

type TtagMIXERCONTROLA = TMIXERCONTROLA

type TtagMIXERCONTROLDETAILS_LISTTEXTA = TMIXERCONTROLDETAILS_LISTTEXTA

type TtagMIXERCONTROLDETAILS_LISTTEXTW = TMIXERCONTROLDETAILS_LISTTEXTW

type TtagMIXERCONTROLW = TMIXERCONTROLW

type TtagMIXERLINEA = TMIXERLINEA

type TtagMIXERLINECONTROLSA = TMIXERLINECONTROLSA

type TtagMIXERLINECONTROLSW = TMIXERLINECONTROLSW

type TtagMIXERLINEW = TMIXERLINEW

type TtagMONCBSTRUCT = TMONCBSTRUCT

type TtagMONCONVSTRUCT = TMONCONVSTRUCT

type TtagMONERRSTRUCT = TMONERRSTRUCT

type TtagMONHSZSTRUCTA = TMONHSZSTRUCTA

type TtagMONHSZSTRUCTW = TMONHSZSTRUCTW

type TtagMONITORINFO = TMONITORINFO

type TtagMONITORINFOEXA = TMONITORINFOEXA

type TtagMONITORINFOEXW = TMONITORINFOEXW

type TtagMONLINKSTRUCT = TMONLINKSTRUCT

type TtagMONMSGSTRUCT = TMONMSGSTRUCT

type TtagMOUSEHOOKSTRUCT = TMOUSEHOOKSTRUCT

type TtagMOUSEHOOKSTRUCTEX = TMOUSEHOOKSTRUCTEX

type TtagMOUSEINPUT = TMOUSEINPUT

type TtagMOUSEKEYS = TMOUSEKEYS

type TtagMOUSEMOVEPOINT = TMOUSEMOVEPOINT

type TtagMSG = TMSG

type TtagMSGBOXPARAMSA = TMSGBOXPARAMSA

type TtagMSGBOXPARAMSW = TMSGBOXPARAMSW

type TtagMSLLHOOKSTRUCT = TMSLLHOOKSTRUCT

type TtagMULTIKEYHELPA = TMULTIKEYHELPA

type TtagMULTIKEYHELPW = TMULTIKEYHELPW

type TtagMULTI_QI = TMULTI_QI

type TtagNCCALCSIZE_PARAMS = TNCCALCSIZE_PARAMS

type TtagNC_ADDRESS = TNC_ADDRESS

type TtagNEWTEXTMETRICA = TNEWTEXTMETRICA

type TtagNEWTEXTMETRICEXA = TNEWTEXTMETRICEXA

type TtagNEWTEXTMETRICEXW = TNEWTEXTMETRICEXW

type TtagNEWTEXTMETRICW = TNEWTEXTMETRICW

type TtagNMHDR = TNMHDR

type TtagNONCLIENTMETRICSA = TNONCLIENTMETRICSA

type TtagNONCLIENTMETRICSW = TNONCLIENTMETRICSW

type TtagOBJECTDESCRIPTOR = TOBJECTDESCRIPTOR

type TtagOFNA = TOPENFILENAMEA

type TtagOFNW = TOPENFILENAMEW

type TtagOFN_NT4A = TOPENFILENAME_NT4A

type TtagOFN_NT4W = TOPENFILENAME_NT4W

type TtagOIFI = TOLEINPLACEFRAMEINFO

type TtagOLEVERB = TOLEVERB

type TtagOleMenuGroupWidths = TOLEMENUGROUPWIDTHS

type TtagPAINTSTRUCT = TPAINTSTRUCT

type TtagPALETTEENTRY = TPALETTEENTRY

type TtagPANOSE = TPANOSE

type TtagPARAMDATA = TPARAMDATA

type TtagPARAMDESC = TPARAMDESC

type TtagPARAMDESCEX = TPARAMDESCEX

type TtagPDA = TPRINTDLGA

type TtagPDEXA = TPRINTDLGEXA

type TtagPDEXW = TPRINTDLGEXW

type TtagPDW = TPRINTDLGW

type TtagPELARRAY = TPELARRAY

type TtagPIXELFORMATDESCRIPTOR = TPIXELFORMATDESCRIPTOR

type TtagPOINT = TPOINT

type TtagPOINTER_DEVICE_CURSOR_INFO = TPOINTER_DEVICE_CURSOR_INFO

type TtagPOINTER_DEVICE_INFO = TPOINTER_DEVICE_INFO

type TtagPOINTER_DEVICE_PROPERTY = TPOINTER_DEVICE_PROPERTY

type TtagPOINTER_INFO = TPOINTER_INFO

type TtagPOINTER_PEN_INFO = TPOINTER_PEN_INFO

type TtagPOINTER_TOUCH_INFO = TPOINTER_TOUCH_INFO

type TtagPOINTER_TYPE_INFO = TPOINTER_TYPE_INFO

type TtagPOINTFX = TPOINTFX

type TtagPOINTS = TPOINTS

type TtagPOLYTEXTA = TPOLYTEXTA

type TtagPOLYTEXTW = TPOLYTEXTW

type TtagPRINTPAGERANGE = TPRINTPAGERANGE

type TtagPROPSPEC = TPROPSPEC

type TtagPROPVARIANT = TPROPVARIANT

type TtagPSDA = TPAGESETUPDLGA

type TtagPSDW = TPAGESETUPDLGW

type TtagQUERYCONTEXT = TQUERYCONTEXT

type TtagRAWHID = TRAWHID

type TtagRAWINPUT = TRAWINPUT

type TtagRAWINPUTDEVICE = TRAWINPUTDEVICE

type TtagRAWINPUTDEVICELIST = TRAWINPUTDEVICELIST

type TtagRAWINPUTHEADER = TRAWINPUTHEADER

type TtagRAWKEYBOARD = TRAWKEYBOARD

type TtagRAWMOUSE = TRAWMOUSE

type TtagRECONVERTSTRING = TRECONVERTSTRING

type TtagRECT = TRECT

type TtagREGISTERWORDA = TREGISTERWORDA

type TtagREGISTERWORDW = TREGISTERWORDW

type TtagRGBQUAD = TRGBQUAD

type TtagRGBTRIPLE = TRGBTRIPLE

type TtagRID_DEVICE_INFO = TRID_DEVICE_INFO

type TtagRID_DEVICE_INFO_HID = TRID_DEVICE_INFO_HID

type TtagRID_DEVICE_INFO_KEYBOARD = TRID_DEVICE_INFO_KEYBOARD

type TtagRID_DEVICE_INFO_MOUSE = TRID_DEVICE_INFO_MOUSE

type TtagRPCOLEMESSAGE = TRPCOLEMESSAGE

type TtagRPC_CALL_ATTRIBUTES_V1_A = TRPC_CALL_ATTRIBUTES_V1_A

type TtagRPC_CALL_ATTRIBUTES_V1_W = TRPC_CALL_ATTRIBUTES_V1_W

type TtagRPC_CALL_ATTRIBUTES_V2A = TRPC_CALL_ATTRIBUTES_V2_A

type TtagRPC_CALL_ATTRIBUTES_V2W = TRPC_CALL_ATTRIBUTES_V2_W

type TtagRPC_CALL_LOCAL_ADDRESS_V1_A = TRPC_CALL_LOCAL_ADDRESS_V1_A

type TtagRPC_CALL_LOCAL_ADDRESS_V1_W = TRPC_CALL_LOCAL_ADDRESS_V1_W

type TtagRPC_EE_INFO_PARAM = TRPC_EE_INFO_PARAM

type TtagRPC_ERROR_ENUM_HANDLE = TRPC_ERROR_ENUM_HANDLE

type TtagRPC_EXTENDED_ERROR_INFO = TRPC_EXTENDED_ERROR_INFO

type TtagRemBRUSH = TRemHBRUSH

type TtagRemFORMATETC = TRemFORMATETC

type TtagRemHBITMAP = TRemHBITMAP

type TtagRemHENHMETAFILE = TRemHENHMETAFILE

type TtagRemHGLOBAL = TRemHGLOBAL

type TtagRemHMETAFILEPICT = TRemHMETAFILEPICT

type TtagRemHPALETTE = TRemHPALETTE

type TtagRemSNB = TRemSNB

type TtagRemSTGMEDIUM = TRemSTGMEDIUM

type TtagSAFEARRAY = TSAFEARRAY

type TtagSAFEARRAYBOUND = TSAFEARRAYBOUND

type TtagSCROLLBARINFO = TSCROLLBARINFO

type TtagSCROLLINFO = TSCROLLINFO

type TtagSERIALIZEDPROPERTYVALUE = TSERIALIZEDPROPERTYVALUE

type TtagSERIALKEYSA = TSERIALKEYSA

type TtagSERIALKEYSW = TSERIALKEYSW

type TtagSIZE = TSIZE

type TtagSOLE_AUTHENTICATION_INFO = TSOLE_AUTHENTICATION_INFO

type TtagSOLE_AUTHENTICATION_LIST = TSOLE_AUTHENTICATION_LIST

type TtagSOLE_AUTHENTICATION_SERVICE = TSOLE_AUTHENTICATION_SERVICE

type TtagSOUNDSENTRYA = TSOUNDSENTRYA

type TtagSOUNDSENTRYW = TSOUNDSENTRYW

type TtagSTATDATA = TSTATDATA

type TtagSTATPROPSETSTG = TSTATPROPSETSTG

type TtagSTATPROPSTG = TSTATPROPSTG

type TtagSTATSTG = TSTATSTG

type TtagSTGMEDIUM = TuSTGMEDIUM

type TtagSTGOPTIONS = TSTGOPTIONS

type TtagSTICKYKEYS = TSTICKYKEYS

type TtagSTYLEBUFA = TSTYLEBUFA

type TtagSTYLEBUFW = TSTYLEBUFW

type TtagSTYLESTRUCT = TSTYLESTRUCT

type TtagServerInformation = TServerInformation

type TtagStorageLayout = TStorageLayout

type TtagTEXTMETRICA = TTEXTMETRICA

type TtagTEXTMETRICW = TTEXTMETRICW

type TtagTITLEBARINFO = TTITLEBARINFO

type TtagTITLEBARINFOEX = TTITLEBARINFOEX

type TtagTLIBATTR = TTLIBATTR

type TtagTOGGLEKEYS = TTOGGLEKEYS

type TtagTOUCHINPUT = TTOUCHINPUT

type TtagTOUCH_HIT_TESTING_INPUT = TTOUCH_HIT_TESTING_INPUT

type TtagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = TTOUCH_HIT_TESTING_PROXIMITY_EVALUATION

type TtagTPMPARAMS = TTPMPARAMS

type TtagTRACKMOUSEEVENT = TTRACKMOUSEEVENT

type TtagTTPOLYCURVE = TTTPOLYCURVE

type TtagTTPOLYGONHEADER = TTTPOLYGONHEADER

type TtagTYPEATTR = TTYPEATTR

type TtagTYPEDESC = TTYPEDESC

type TtagTouchPredictionParameters = TTOUCHPREDICTIONPARAMETERS

type TtagUPDATELAYEREDWINDOWINFO = TUPDATELAYEREDWINDOWINFO

type TtagUSAGE_PROPERTIES = TUSAGE_PROPERTIES

type TtagUSEROBJECTFLAGS = TUSEROBJECTFLAGS

type TtagVARDESC = TVARDESC

type TtagVARIANT = TVARIANT

type TtagVS_FIXEDFILEINFO = TVS_FIXEDFILEINFO

type TtagVersionedStream = TVERSIONEDSTREAM

type TtagWAVEINCAPS2A = TWAVEINCAPS2A

type TtagWAVEINCAPS2W = TWAVEINCAPS2W

type TtagWAVEINCAPSA = TWAVEINCAPSA

type TtagWAVEINCAPSW = TWAVEINCAPSW

type TtagWAVEOUTCAPS2A = TWAVEOUTCAPS2A

type TtagWAVEOUTCAPS2W = TWAVEOUTCAPS2W

type TtagWAVEOUTCAPSA = TWAVEOUTCAPSA

type TtagWAVEOUTCAPSW = TWAVEOUTCAPSW

type TtagWCRANGE = TWCRANGE

type TtagWINDOWINFO = TWINDOWINFO

type TtagWINDOWPLACEMENT = TWINDOWPLACEMENT

type TtagWINDOWPOS = TWINDOWPOS

type TtagWNDCLASSA = TWNDCLASSA

type TtagWNDCLASSEXA = TWNDCLASSEXA

type TtagWNDCLASSEXW = TWNDCLASSEXW

type TtagWNDCLASSW = TWNDCLASSW

type TtagWTSSESSION_NOTIFICATION = TWTSSESSION_NOTIFICATION

type TtagXFORM = TXFORM

type Tthreadlocaleinfostruct = struct {
	Frefcount      int32
	Flc_codepage   uint32
	Flc_collate_cp uint32
	Flc_handle     [6]uint32
	Flc_id         [6]TLC_ID
	Flc_category   [6]struct {
		Flocale    uintptr
		Fwlocale   uintptr
		Frefcount  uintptr
		Fwrefcount uintptr
	}
	Flc_clike            int32
	Fmb_cur_max          int32
	Flconv_intl_refcount uintptr
	Flconv_num_refcount  uintptr
	Flconv_mon_refcount  uintptr
	Flconv               uintptr
	Fctype1_refcount     uintptr
	Fctype1              uintptr
	Fpctype              uintptr
	Fpclmap              uintptr
	Fpcumap              uintptr
	Flc_time_curr        uintptr
}

type Tthreadlocinfo = struct {
	Frefcount      int32
	Flc_codepage   uint32
	Flc_collate_cp uint32
	Flc_handle     [6]uint32
	Flc_id         [6]TLC_ID
	Flc_category   [6]struct {
		Flocale    uintptr
		Fwlocale   uintptr
		Frefcount  uintptr
		Fwrefcount uintptr
	}
	Flc_clike            int32
	Fmb_cur_max          int32
	Flconv_intl_refcount uintptr
	Flconv_num_refcount  uintptr
	Flconv_mon_refcount  uintptr
	Flconv               uintptr
	Fctype1_refcount     uintptr
	Fctype1              uintptr
	Fpctype              uintptr
	Fpclmap              uintptr
	Fpcumap              uintptr
	Flc_time_curr        uintptr
}

type Ttimeb = struct {
	Ftime     Ttime_t
	Fmillitm  uint16
	Ftimezone int16
	Fdstflag  int16
}

type Ttimecaps_tag = TTIMECAPS

type Ttimeval = struct {
	Ftv_sec  int32
	Ftv_usec int32
}

type Ttm = struct {
	Ftm_sec   int32
	Ftm_min   int32
	Ftm_hour  int32
	Ftm_mday  int32
	Ftm_mon   int32
	Ftm_year  int32
	Ftm_wday  int32
	Ftm_yday  int32
	Ftm_isdst int32
}

type TuCLSSPEC = struct {
	Ftyspec       TDWORD
	Ftagged_union t__WIDL_wtypes_generated_name_0000000A
}

type Tu_int64 = uint64

type TuserBITMAP = struct {
	FbmType       TLONG
	FbmWidth      TLONG
	FbmHeight     TLONG
	FbmWidthBytes TLONG
	FbmPlanes     TWORD
	FbmBitsPixel  TWORD
	FcbSize       TULONG
	FpBuffer      [1]Tbyte
}

type TuserCLIPFORMAT = struct {
	FfContext TLONG
	Fu        t__WIDL_wtypes_generated_name_00000001
}

type TuserFLAG_STGMEDIUM = struct {
	FContextFlags   TLONG
	FfPassOwnership TLONG
	FStgmed         TuserSTGMEDIUM
}

type TuserSTGMEDIUM = struct {
	F__ccgo0_0      T_STGMEDIUM_UNION
	FpUnkForRelease uintptr
}

type Tval_context = struct {
	Fvaluelen      int32
	Fvalue_context TLPVOID
	Fval_buff_ptr  TLPVOID
}

type Tvalue_entA = TVALENTA

type Tvalue_entW = TVALENTW

type Twaveformat_tag = TWAVEFORMAT

type Twavehdr_tag = TWAVEHDR

type Twchar_t = uint16

type Twctype_t = uint16

// C documentation
//
//	/* Forward references to structures used for WAL */
type TwinShm = struct {
	FpShmNode    uintptr
	FsharedMask  Tu16
	FexclMask    Tu16
	FhShm        THANDLE
	FbReadonly   int32
	FpWinShmNext uintptr
}

/* A connection to shared-memory */
type TwinShmNode = struct {
	Fmutex                uintptr
	FzFilename            uintptr
	FhSharedShm           THANDLE
	FbUseSharedLockHandle int32
	FisUnlocked           int32
	FisReadonly           int32
	FszRegion             int32
	FnRegion              int32
	FaRegion              uintptr
	FlastErrno            TDWORD
	FpWinShmList          uintptr
	FpNext                uintptr
}

// C documentation
//
//	/*
//	** The winVfsAppData structure is used for the pAppData member for all of the
//	** Win32 VFS variants.
//	*/
type TwinVfsAppData = struct {
	FpMethod  uintptr
	FpAppData uintptr
	FbNoLock  TBOOL
}

// C documentation
//
//	/*
//	** Many system calls are accessed through pointer-to-functions so that
//	** they may be overridden at runtime to facilitate fault injection during
//	** testing and sandboxing.  The following array holds the names and pointers
//	** to all overrideable system calls.
//	*/
type Twin_syscall = struct {
	FzName    uintptr
	FpCurrent Tsqlite3_syscall_ptr
	FpDefault Tsqlite3_syscall_ptr
}

type Twint_t = uint16

type TwireASYNC_STGMEDIUM = uintptr

type TwireBRECORD = uintptr

type TwireBSTR = uintptr

type TwireCLIPFORMAT = uintptr

type TwireFLAG_STGMEDIUM = uintptr

type TwireHACCEL = uintptr

type TwireHBITMAP = uintptr

type TwireHBRUSH = uintptr

type TwireHDC = uintptr

type TwireHENHMETAFILE = uintptr

type TwireHFONT = uintptr

type TwireHGLOBAL = uintptr

type TwireHICON = uintptr

type TwireHMENU = uintptr

type TwireHMETAFILE = uintptr

type TwireHMETAFILEPICT = uintptr

type TwireHMONITOR = uintptr

type TwireHPALETTE = uintptr

type TwireHRGN = uintptr

type TwireHWND = uintptr

type TwirePSAFEARRAY = uintptr

type TwireSAFEARRAY = uintptr

type TwireSNB = uintptr

type TwireSTGMEDIUM = uintptr

type TwireVARIANT = uintptr

const UAS_EXACTLEGACY = 4096

type UCHAR = TUCHAR

const UCLEANUI = 67108864

type UCSCHAR = TUCSCHAR

const UCSCHAR_INVALID_CHARACTER = 4294967295

type UDATE = TUDATE

const UDIRTYUI = 134217728

type UHALF_PTR = TUHALF_PTR

const UILANGUAGE_ENUMPROC = 0

type UILANGUAGE_ENUMPROCA = TUILANGUAGE_ENUMPROCA

type UILANGUAGE_ENUMPROCW = TUILANGUAGE_ENUMPROCW

type UINT = TUINT

type UINT16 = TUINT16

type UINT32 = TUINT32

type UINT64 = TUINT64

type UINT8 = TUINT8

type UINT_PTR = TUINT_PTR

const UISF_ACTIVE = 4

const UISF_HIDEACCEL = 2

const UISF_HIDEFOCUS = 1

const UIS_CLEAR = 2

const UIS_INITIALIZE = 3

const UIS_SET = 1

const UI_CAP_2700 = 1

const UI_CAP_ROT90 = 2

const UI_CAP_ROTANY = 4

type ULARGE_INTEGER = TULARGE_INTEGER

type ULONG = TULONG

type ULONG32 = TULONG32

type ULONG64 = TULONG64

type ULONGLONG = TULONGLONG

type ULONG_PTR = TULONG_PTR

const ULW_ALPHA = 2

const ULW_COLORKEY = 1

const ULW_EX_NORESIZE = 8

const ULW_OPAQUE = 4

type UMS_CREATE_THREAD_ATTRIBUTES = TUMS_CREATE_THREAD_ATTRIBUTES

const UNDEFINE_ALTERNATE = 13

const UNDEFINE_PRIMARY = 12

const UNICODE_NOCHAR = 65535

const UNICODE_STRING_MAX_CHARS = 32767

const UNIQUE_NAME = 0

type UNIVERSAL_NAME_INFO = TUNIVERSAL_NAME_INFO

type UNIVERSAL_NAME_INFOA = TUNIVERSAL_NAME_INFOA

type UNIVERSAL_NAME_INFOW = TUNIVERSAL_NAME_INFOW

const UNIVERSAL_NAME_INFO_LEVEL = 1

const UNLOAD_DLL_DEBUG_EVENT = 7

type UNLOAD_DLL_DEBUG_INFO = TUNLOAD_DLL_DEBUG_INFO

const UNLOCK_ELEMENT = 1

const UNPROTECTED_DACL_SECURITY_INFORMATION = 536870912

const UNPROTECTED_SACL_SECURITY_INFORMATION = 268435456

const UNRECOVERED_READS_VALID = 8

const UNRECOVERED_WRITES_VALID = 2

const UOI_FLAGS = 1

const UOI_HEAPSIZE = 5

const UOI_IO = 6

const UOI_NAME = 2

const UOI_TIMERPROC_EXCEPTION_SUPPRESSION = 7

const UOI_TYPE = 3

const UOI_USER_SID = 4

type UPDATELAYEREDWINDOWINFO = TUPDATELAYEREDWINDOWINFO

const UPDFCACHE_IFBLANK = 16

const UPDFCACHE_IFBLANKORONSAVECACHE = 18

const UPDFCACHE_NODATACACHE = 1

const UPDFCACHE_NORMALCACHE = 8

const UPDFCACHE_ONLYIFBLANK = 2147483648

const UPDFCACHE_ONSAVECACHE = 2

const UPDFCACHE_ONSTOPCACHE = 4

const UPOINTER_32 = 0

type UP_BYTE_BLOB = TUP_BYTE_BLOB

type UP_DWORD_BLOB = TUP_DWORD_BLOB

type UP_FLAGGED_BYTE_BLOB = TUP_FLAGGED_BYTE_BLOB

type UP_FLAGGED_WORD_BLOB = TUP_FLAGGED_WORD_BLOB

type UP_WORD_BLOB = TUP_WORD_BLOB

const URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY = 4612

const URLACTION_ACTIVEX_CURR_MAX = 4619

const URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION = 4618

const URLACTION_ACTIVEX_MAX = 5119

const URLACTION_ACTIVEX_MIN = 4608

const URLACTION_ACTIVEX_NO_WEBOC_SCRIPT = 4614

const URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY = 4610

const URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST = 4619

const URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY = 4609

const URLACTION_ACTIVEX_OVERRIDE_OPTIN = 4616

const URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION = 4615

const URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY = 4611

const URLACTION_ACTIVEX_RUN = 4608

const URLACTION_ACTIVEX_SCRIPTLET_RUN = 4617

const URLACTION_ACTIVEX_TREATASUNTRUSTED = 4613

const URLACTION_ALLOW_ACTIVEX_FILTERING = 9986

const URLACTION_ALLOW_APEVALUATION = 8961

const URLACTION_ALLOW_AUDIO_VIDEO = 9985

const URLACTION_ALLOW_AUDIO_VIDEO_PLUGINS = 9988

const URLACTION_ALLOW_CROSSDOMAIN_APPCACHE_MANIFEST = 9994

const URLACTION_ALLOW_CROSSDOMAIN_DROP_ACROSS_WINDOWS = 9993

const URLACTION_ALLOW_CROSSDOMAIN_DROP_WITHIN_WINDOW = 9992

const URLACTION_ALLOW_RENDER_LEGACY_DXTFILTERS = 9995

const URLACTION_ALLOW_RESTRICTEDPROTOCOLS = 8960

const URLACTION_ALLOW_STRUCTURED_STORAGE_SNIFFING = 9987

const URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE = 5128

const URLACTION_ALLOW_XHR_EVALUATION = 8962

const URLACTION_ALLOW_ZONE_ELEVATION_OPT_OUT_ADDITION = 9990

const URLACTION_ALLOW_ZONE_ELEVATION_VIA_OPT_OUT = 9989

const URLACTION_AUTHENTICATE_CLIENT = 6657

const URLACTION_AUTOMATIC_ACTIVEX_UI = 8705

const URLACTION_AUTOMATIC_DOWNLOAD_UI = 8704

const URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN = 8704

const URLACTION_BEHAVIOR_MIN = 8192

const URLACTION_BEHAVIOR_RUN = 8192

const URLACTION_CHANNEL_SOFTDIST_MAX = 7935

const URLACTION_CHANNEL_SOFTDIST_MIN = 7680

const URLACTION_CHANNEL_SOFTDIST_PERMISSIONS = 7685

const URLACTION_CLIENT_CERT_PROMPT = 6660

const URLACTION_COOKIES = 6658

const URLACTION_COOKIES_ENABLED = 6672

const URLACTION_COOKIES_SESSION = 6659

const URLACTION_COOKIES_SESSION_THIRD_PARTY = 6662

const URLACTION_COOKIES_THIRD_PARTY = 6661

const URLACTION_CREDENTIALS_USE = 6656

const URLACTION_CROSS_DOMAIN_DATA = 5126

const URLACTION_DOTNET_USERCONTROLS = 8197

const URLACTION_DOWNLOAD_CURR_MAX = 4100

const URLACTION_DOWNLOAD_MAX = 4607

const URLACTION_DOWNLOAD_MIN = 4096

const URLACTION_DOWNLOAD_SIGNED_ACTIVEX = 4097

const URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX = 4100

const URLACTION_FEATURE_BLOCK_INPUT_PROMPTS = 8453

const URLACTION_FEATURE_CROSSDOMAIN_FOCUS_CHANGE = 8455

const URLACTION_FEATURE_DATA_BINDING = 8454

const URLACTION_FEATURE_FORCE_ADDR_AND_STATUS = 8452

const URLACTION_FEATURE_MIME_SNIFFING = 8448

const URLACTION_FEATURE_MIN = 8448

const URLACTION_FEATURE_SCRIPT_STATUS_BAR = 8451

const URLACTION_FEATURE_WINDOW_RESTRICTIONS = 8450

const URLACTION_FEATURE_ZONE_ELEVATION = 8449

const URLACTION_HTML_ALLOW_CROSS_DOMAIN_CANVAS = 5645

const URLACTION_HTML_ALLOW_CROSS_DOMAIN_TEXTTRACK = 5648

const URLACTION_HTML_ALLOW_CROSS_DOMAIN_WEBWORKER = 5647

const URLACTION_HTML_ALLOW_INDEXEDDB = 5649

const URLACTION_HTML_ALLOW_INJECTED_DYNAMIC_HTML = 5643

const URLACTION_HTML_ALLOW_WINDOW_CLOSE = 5646

const URLACTION_HTML_FONT_DOWNLOAD = 5636

const URLACTION_HTML_INCLUDE_FILE_PATH = 5642

const URLACTION_HTML_JAVA_RUN = 5637

const URLACTION_HTML_MAX = 6143

const URLACTION_HTML_META_REFRESH = 5640

const URLACTION_HTML_MIN = 5632

const URLACTION_HTML_MIXED_CONTENT = 5641

const URLACTION_HTML_REQUIRE_UTF8_DOCUMENT_CODEPAGE = 5644

const URLACTION_HTML_SUBFRAME_NAVIGATE = 5639

const URLACTION_HTML_SUBMIT_FORMS = 5633

const URLACTION_HTML_SUBMIT_FORMS_FROM = 5634

const URLACTION_HTML_SUBMIT_FORMS_TO = 5635

const URLACTION_HTML_USERDATA_SAVE = 5638

const URLACTION_INFODELIVERY_CURR_MAX = 7430

const URLACTION_INFODELIVERY_MAX = 7679

const URLACTION_INFODELIVERY_MIN = 7424

const URLACTION_INFODELIVERY_NO_ADDING_CHANNELS = 7424

const URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS = 7427

const URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING = 7430

const URLACTION_INFODELIVERY_NO_EDITING_CHANNELS = 7425

const URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS = 7428

const URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS = 7426

const URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS = 7429

const URLACTION_INPRIVATE_BLOCKING = 9984

const URLACTION_JAVA_CURR_MAX = 7168

const URLACTION_JAVA_MAX = 7423

const URLACTION_JAVA_MIN = 7168

const URLACTION_JAVA_PERMISSIONS = 7168

const URLACTION_LOOSE_XAML = 9218

const URLACTION_LOWRIGHTS = 9472

const URLACTION_MIN = 4096

const URLACTION_NETWORK_CURR_MAX = 6672

const URLACTION_NETWORK_MAX = 7167

const URLACTION_NETWORK_MIN = 6656

const URLACTION_PLUGGABLE_PROTOCOL_XHR = 5131

const URLACTION_SCRIPT_CURR_MAX = 5131

const URLACTION_SCRIPT_JAVA_USE = 5122

const URLACTION_SCRIPT_MAX = 5631

const URLACTION_SCRIPT_MIN = 5120

const URLACTION_SCRIPT_NAVIGATE = 5130

const URLACTION_SCRIPT_OVERRIDE_SAFETY = 5121

const URLACTION_SCRIPT_PASTE = 5127

const URLACTION_SCRIPT_RUN = 5120

const URLACTION_SCRIPT_SAFE_ACTIVEX = 5125

const URLACTION_SCRIPT_XSSFILTER = 5129

const URLACTION_SHELL_ALLOW_CROSS_SITE_SHARE = 6161

const URLACTION_SHELL_CURR_MAX = 6161

const URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY = 6155

const URLACTION_SHELL_EXECUTE_HIGHRISK = 6150

const URLACTION_SHELL_EXECUTE_LOWRISK = 6152

const URLACTION_SHELL_EXECUTE_MODRISK = 6151

const URLACTION_SHELL_EXTENSIONSECURITY = 6156

const URLACTION_SHELL_FILE_DOWNLOAD = 6147

const URLACTION_SHELL_INSTALL_DTITEMS = 6144

const URLACTION_SHELL_MAX = 6655

const URLACTION_SHELL_MIN = 6144

const URLACTION_SHELL_MOVE_OR_COPY = 6146

const URLACTION_SHELL_POPUPMGR = 6153

const URLACTION_SHELL_PREVIEW = 6159

const URLACTION_SHELL_REMOTEQUERY = 6158

const URLACTION_SHELL_RTF_OBJECTS_LOAD = 6154

const URLACTION_SHELL_SECURE_DRAGSOURCE = 6157

const URLACTION_SHELL_SHARE = 6160

const URLACTION_SHELL_SHELLEXECUTE = 6150

const URLACTION_SHELL_VERB = 6148

const URLACTION_SHELL_WEBVIEW_VERB = 6149

const URLACTION_WINDOWS_BROWSER_APPLICATIONS = 9216

const URLACTION_WINFX_SETUP = 9728

const URLACTION_XPS_DOCUMENTS = 9217

const URLDownloadToCacheFile = 0

const URLDownloadToFile = 0

const URLMON_OPTION_URL_ENCODING = 268435460

const URLMON_OPTION_USERAGENT = 268435457

const URLMON_OPTION_USERAGENT_REFRESH = 268435458

const URLMON_OPTION_USE_BINDSTRINGCREDS = 268435464

const URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS = 268435472

const URLOSTRM_GETNEWESTVERSION = 3

const URLOSTRM_USECACHEDCOPY = 2

const URLOSTRM_USECACHEDCOPY_ONLY = 1

const URLOpenBlockingStream = 0

const URLOpenPullStream = 0

const URLOpenStream = 0

const URLPOLICY_ACTIVEX_CHECK_LIST = 65536

const URLPOLICY_ALLOW = 0

const URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE = 65536

const URLPOLICY_AUTHENTICATE_CLEARTEXT_OK = 0

const URLPOLICY_AUTHENTICATE_MUTUAL_ONLY = 196608

const URLPOLICY_BEHAVIOR_CHECK_LIST = 65536

const URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL = 196608

const URLPOLICY_CHANNEL_SOFTDIST_PRECACHE = 131072

const URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT = 65536

const URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY = 196608

const URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT = 131072

const URLPOLICY_CREDENTIALS_MUST_PROMPT_USER = 65536

const URLPOLICY_CREDENTIALS_SILENT_LOGON_OK = 0

const URLPOLICY_DISALLOW = 3

const URLPOLICY_DONTCHECKDLGBOX = 256

const URLPOLICY_JAVA_CUSTOM = 8388608

const URLPOLICY_JAVA_HIGH = 65536

const URLPOLICY_JAVA_LOW = 196608

const URLPOLICY_JAVA_MEDIUM = 131072

const URLPOLICY_JAVA_PROHIBIT = 0

const URLPOLICY_LOG_ON_ALLOW = 64

const URLPOLICY_LOG_ON_DISALLOW = 128

const URLPOLICY_MASK_PERMISSIONS = 15

const URLPOLICY_NOTIFY_ON_ALLOW = 16

const URLPOLICY_NOTIFY_ON_DISALLOW = 32

const URLPOLICY_QUERY = 1

type URLTEMPLATE = TURLTEMPLATE

type URLZONE = TURLZONE

type URLZONEREG = TURLZONEREG

const URLZONE_ESC_FLAG = 256

type URL_ENCODING = TURL_ENCODING

const URL_MK_LEGACY = 0

const URL_MK_NO_CANONICALIZE = 2

const URL_MK_UNIFORM = 1

const URL_OID_GET_OBJECT_URL_FUNC = "UrlDllGetObjectUrl"

const USAGE_MATCH_TYPE_AND = 0

const USAGE_MATCH_TYPE_OR = 1

type USAGE_PROPERTIES = TUSAGE_PROPERTIES

type USERCLASSTYPE = TUSERCLASSTYPE

type USEROBJECTFLAGS = TUSEROBJECTFLAGS

type USER_ACTIVITY_PRESENCE = TUSER_ACTIVITY_PRESENCE

const USER_CALL_IS_ASYNC = 256

const USER_CALL_NEW_CORRELATION_DESC = 512

const USER_DEFAULT_SCREEN_DPI = 96

type USER_MARSHAL_CB = TUSER_MARSHAL_CB

const USER_MARSHAL_CB_SIGNATURE = 85

type USER_MARSHAL_CB_TYPE = TUSER_MARSHAL_CB_TYPE

const USER_MARSHAL_FC_BYTE = 1

const USER_MARSHAL_FC_CHAR = 2

const USER_MARSHAL_FC_DOUBLE = 12

const USER_MARSHAL_FC_FLOAT = 10

const USER_MARSHAL_FC_HYPER = 11

const USER_MARSHAL_FC_LONG = 8

const USER_MARSHAL_FC_SHORT = 6

const USER_MARSHAL_FC_SMALL = 3

const USER_MARSHAL_FC_ULONG = 9

const USER_MARSHAL_FC_USHORT = 7

const USER_MARSHAL_FC_USMALL = 4

const USER_MARSHAL_FC_WCHAR = 5

type USER_MARSHAL_FREEING_ROUTINE = TUSER_MARSHAL_FREEING_ROUTINE

type USER_MARSHAL_MARSHALLING_ROUTINE = TUSER_MARSHAL_MARSHALLING_ROUTINE

type USER_MARSHAL_ROUTINE_QUADRUPLE = TUSER_MARSHAL_ROUTINE_QUADRUPLE

type USER_MARSHAL_SIZING_ROUTINE = TUSER_MARSHAL_SIZING_ROUTINE

type USER_MARSHAL_UNMARSHALLING_ROUTINE = TUSER_MARSHAL_UNMARSHALLING_ROUTINE

const USER_TIMER_MAXIMUM = 2147483647

const USER_TIMER_MINIMUM = 10

const USE___UUIDOF = 0

type USHORT = TUSHORT

type USN = TUSN

const USN_DELETE_FLAG_DELETE = 1

const USN_DELETE_FLAG_NOTIFY = 2

const USN_DELETE_VALID_FLAGS = 3

type USN_JOURNAL_DATA = TUSN_JOURNAL_DATA

const USN_PAGE_SIZE = 4096

const USN_REASON_BASIC_INFO_CHANGE = 32768

const USN_REASON_CLOSE = 2147483648

const USN_REASON_COMPRESSION_CHANGE = 131072

const USN_REASON_DATA_EXTEND = 2

const USN_REASON_DATA_OVERWRITE = 1

const USN_REASON_DATA_TRUNCATION = 4

const USN_REASON_EA_CHANGE = 1024

const USN_REASON_ENCRYPTION_CHANGE = 262144

const USN_REASON_FILE_CREATE = 256

const USN_REASON_FILE_DELETE = 512

const USN_REASON_HARD_LINK_CHANGE = 65536

const USN_REASON_INDEXABLE_CHANGE = 16384

const USN_REASON_NAMED_DATA_EXTEND = 32

const USN_REASON_NAMED_DATA_OVERWRITE = 16

const USN_REASON_NAMED_DATA_TRUNCATION = 64

const USN_REASON_OBJECT_ID_CHANGE = 524288

const USN_REASON_RENAME_NEW_NAME = 8192

const USN_REASON_RENAME_OLD_NAME = 4096

const USN_REASON_REPARSE_POINT_CHANGE = 1048576

const USN_REASON_SECURITY_CHANGE = 2048

const USN_REASON_STREAM_CHANGE = 2097152

const USN_REASON_TRANSACTED_CHANGE = 4194304

type USN_RECORD = TUSN_RECORD

const USN_SOURCE_AUXILIARY_DATA = 2

const USN_SOURCE_DATA_MANAGEMENT = 1

const USN_SOURCE_REPLICATION_MANAGEMENT = 4

type UUID = TUUID

type UUID_VECTOR = TUUID_VECTOR

type UWORD = TUWORD

const UnregisterClass = 0

const UpdateICMRegKey = 0

const UpdateResource = 0

const UploadPrinterDriverPackage = 0

const UriBuilder_USE_ORIGINAL_FLAGS = 1

const Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME = 4

const Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME = 2

const Uri_CREATE_ALLOW_RELATIVE = 1

const Uri_CREATE_CANONICALIZE = 256

const Uri_CREATE_CANONICALIZE_ABSOLUTE = 131072

const Uri_CREATE_CRACK_UNKNOWN_SCHEMES = 512

const Uri_CREATE_DECODE_EXTRA_INFO = 64

const Uri_CREATE_FILE_USE_DOS_PATH = 32

const Uri_CREATE_IE_SETTINGS = 8192

const Uri_CREATE_NOFRAG = 8

const Uri_CREATE_NORMALIZE_INTL_CHARACTERS = 65536

const Uri_CREATE_NO_CANONICALIZE = 16

const Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES = 1024

const Uri_CREATE_NO_DECODE_EXTRA_INFO = 128

const Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS = 32768

const Uri_CREATE_NO_IE_SETTINGS = 16384

const Uri_CREATE_NO_PRE_PROCESS_HTML_URI = 4096

const Uri_CREATE_PRE_PROCESS_HTML_URI = 2048

const Uri_DISPLAY_IDN_HOST = 4

const Uri_DISPLAY_NO_FRAGMENT = 1

const Uri_DISPLAY_NO_PUNYCODE = 8

const Uri_ENCODING_HOST_IS_IDN = 4

const Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP = 16

const Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 = 8

const Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP = 64

const Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 = 32

const Uri_ENCODING_RFC = 41

const Uri_ENCODING_USER_INFO_AND_PATH_IS_CP = 2

const Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 = 1

const Uri_HAS_ABSOLUTE_URI = 1

const Uri_HAS_AUTHORITY = 1

const Uri_HAS_DISPLAY_URI = 1

const Uri_HAS_DOMAIN = 1

const Uri_HAS_EXTENSION = 1

const Uri_HAS_FRAGMENT = 1

const Uri_HAS_HOST = 1

const Uri_HAS_HOST_TYPE = 1

const Uri_HAS_PASSWORD = 1

const Uri_HAS_PATH = 1

const Uri_HAS_PATH_AND_QUERY = 1

const Uri_HAS_PORT = 1

const Uri_HAS_QUERY = 1

const Uri_HAS_RAW_URI = 1

const Uri_HAS_SCHEME = 1

const Uri_HAS_SCHEME_NAME = 1

const Uri_HAS_USER_INFO = 1

const Uri_HAS_USER_NAME = 1

const Uri_HAS_ZONE = 1

type Uri_HOST_TYPE = TUri_HOST_TYPE

type Uri_PROPERTY = TUri_PROPERTY

const Uri_PUNYCODE_IDN_HOST = 2

const UuidFromString = 0

const UuidToString = 0

type VALENT = TVALENT

type VALENTA = TVALENTA

type VALENTW = TVALENTW

const VALID_INHERIT_FLAGS = 31

const VALID_NTFT = 192

const VALID_SYMBOLIC_LINK_FLAGS = 1

const VARCMP_EQ = 1

const VARCMP_GT = 2

const VARCMP_LT = 0

const VARCMP_NULL = 3

type VARDESC = TVARDESC

type VARFLAGS = TVARFLAGS

const VARIABLE_PITCH = 2

type VARIANT = TVARIANT

type VARIANTARG = TVARIANTARG

const VARIANT_ALPHABOOL = 2

type VARIANT_BOOL = TVARIANT_BOOL

const VARIANT_CALENDAR_GREGORIAN = 64

const VARIANT_CALENDAR_HIJRI = 8

const VARIANT_CALENDAR_THAI = 32

const VARIANT_LOCALBOOL = 16

const VARIANT_NOUSEROVERRIDE = 4

const VARIANT_NOVALUEPROP = 1

const VARIANT_TRUE = -1

const VARIANT_USE_NLS = 128

type VARKIND = TVARKIND

type VARTYPE = TVARTYPE

const VENDOR_ID_LENGTH = 8

type VERIFY_INFORMATION = TVERIFY_INFORMATION

type VERSIONEDSTREAM = TVERSIONEDSTREAM

const VERTRES = 10

const VERTSIZE = 6

const VER_AND = 6

const VER_BUILDNUMBER = 4

const VER_CONDITION_MASK = 7

const VER_EQUAL = 1

const VER_GREATER = 2

const VER_GREATER_EQUAL = 3

const VER_LESS = 4

const VER_LESS_EQUAL = 5

const VER_MAJORVERSION = 2

const VER_MINORVERSION = 1

const VER_NT_DOMAIN_CONTROLLER = 2

const VER_NT_SERVER = 3

const VER_NT_WORKSTATION = 1

const VER_NUM_BITS_PER_CONDITION_MASK = 3

const VER_OR = 7

const VER_PLATFORMID = 8

const VER_PLATFORM_WIN32_NT = 2

const VER_PLATFORM_WIN32_WINDOWS = 1

const VER_PLATFORM_WIN32s = 0

const VER_PRODUCT_TYPE = 128

const VER_SERVER_NT = 2147483648

const VER_SERVICEPACKMAJOR = 32

const VER_SERVICEPACKMINOR = 16

const VER_SUITENAME = 64

const VER_SUITE_BACKOFFICE = 4

const VER_SUITE_BLADE = 1024

const VER_SUITE_COMMUNICATIONS = 8

const VER_SUITE_COMPUTE_SERVER = 16384

const VER_SUITE_DATACENTER = 128

const VER_SUITE_EMBEDDEDNT = 64

const VER_SUITE_EMBEDDED_RESTRICTED = 2048

const VER_SUITE_ENTERPRISE = 2

const VER_SUITE_PERSONAL = 512

const VER_SUITE_SECURITY_APPLIANCE = 4096

const VER_SUITE_SINGLEUSERTS = 256

const VER_SUITE_SMALLBUSINESS = 1

const VER_SUITE_SMALLBUSINESS_RESTRICTED = 32

const VER_SUITE_STORAGE_SERVER = 8192

const VER_SUITE_TERMINAL = 16

const VER_SUITE_WH_SERVER = 32768

const VER_WORKSTATION_NT = 1073741824

const VFFF_ISSHAREDFILE = 1

const VFF_BUFFTOOSMALL = 4

const VFF_CURNEDEST = 1

const VFF_FILEINUSE = 2

const VFT2_DRV_COMM = 10

const VFT2_DRV_DISPLAY = 4

const VFT2_DRV_INPUTMETHOD = 11

const VFT2_DRV_INSTALLABLE = 8

const VFT2_DRV_KEYBOARD = 2

const VFT2_DRV_LANGUAGE = 3

const VFT2_DRV_MOUSE = 5

const VFT2_DRV_NETWORK = 6

const VFT2_DRV_PRINTER = 1

const VFT2_DRV_SOUND = 9

const VFT2_DRV_SYSTEM = 7

const VFT2_DRV_VERSIONED_PRINTER = 12

const VFT2_FONT_RASTER = 1

const VFT2_FONT_TRUETYPE = 3

const VFT2_FONT_VECTOR = 2

const VFT2_UNKNOWN = 0

const VFT_APP = 1

const VFT_DLL = 2

const VFT_DRV = 3

const VFT_FONT = 4

const VFT_STATIC_LIB = 7

const VFT_UNKNOWN = 0

const VFT_VXD = 5

type VIDEOPARAMETERS = TVIDEOPARAMETERS

const VIETNAMESE_CHARSET = 163

const VIEW_E_FIRST = 2147746112

const VIEW_E_LAST = 2147746127

const VIEW_S_FIRST = 262464

const VIEW_S_LAST = 262479

const VIFF_DONTDELETEOLD = 2

const VIFF_FORCEINSTALL = 1

const VIF_ACCESSVIOLATION = 512

const VIF_BUFFTOOSMALL = 262144

const VIF_CANNOTCREATE = 2048

const VIF_CANNOTDELETE = 4096

const VIF_CANNOTDELETECUR = 16384

const VIF_CANNOTLOADCABINET = 1048576

const VIF_CANNOTLOADLZ32 = 524288

const VIF_CANNOTREADDST = 131072

const VIF_CANNOTREADSRC = 65536

const VIF_CANNOTRENAME = 8192

const VIF_DIFFCODEPG = 16

const VIF_DIFFLANG = 8

const VIF_DIFFTYPE = 32

const VIF_FILEINUSE = 128

const VIF_MISMATCH = 2

const VIF_OUTOFMEMORY = 32768

const VIF_OUTOFSPACE = 256

const VIF_SHARINGVIOLATION = 1024

const VIF_SRCOLD = 4

const VIF_TEMPFILE = 1

const VIF_WRITEPROT = 64

const VIRTDISKAPI = "DECLSPEC_IMPORT"

type VIRTUAL_DISK_ACCESS_MASK = TVIRTUAL_DISK_ACCESS_MASK

type VIRTUAL_DISK_PROGRESS = TVIRTUAL_DISK_PROGRESS

type VIRTUAL_STORAGE_TYPE = TVIRTUAL_STORAGE_TYPE

const VIRTUAL_STORAGE_TYPE_DEVICE_ISO = 1

const VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN = 0

const VIRTUAL_STORAGE_TYPE_DEVICE_VHD = 2

const VIRTUAL_STORAGE_TYPE_DEVICE_VHDX = 3

const VK_ACCEPT = 30

const VK_ADD = 107

const VK_APPS = 93

const VK_ATTN = 246

const VK_BACK = 8

const VK_BROWSER_BACK = 166

const VK_BROWSER_FAVORITES = 171

const VK_BROWSER_FORWARD = 167

const VK_BROWSER_HOME = 172

const VK_BROWSER_REFRESH = 168

const VK_BROWSER_SEARCH = 170

const VK_BROWSER_STOP = 169

const VK_CANCEL = 3

const VK_CAPITAL = 20

const VK_CLEAR = 12

const VK_CONTROL = 17

const VK_CONVERT = 28

const VK_CRSEL = 247

const VK_DECIMAL = 110

const VK_DELETE = 46

const VK_DIVIDE = 111

const VK_DOWN = 40

const VK_END = 35

const VK_EREOF = 249

const VK_ESCAPE = 27

const VK_EXECUTE = 43

const VK_EXSEL = 248

const VK_F1 = 112

const VK_F10 = 121

const VK_F11 = 122

const VK_F12 = 123

const VK_F13 = 124

const VK_F14 = 125

const VK_F15 = 126

const VK_F16 = 127

const VK_F17 = 128

const VK_F18 = 129

const VK_F19 = 130

const VK_F2 = 113

const VK_F20 = 131

const VK_F21 = 132

const VK_F22 = 133

const VK_F23 = 134

const VK_F24 = 135

const VK_F3 = 114

const VK_F4 = 115

const VK_F5 = 116

const VK_F6 = 117

const VK_F7 = 118

const VK_F8 = 119

const VK_F9 = 120

const VK_FINAL = 24

const VK_GAMEPAD_A = 195

const VK_GAMEPAD_B = 196

const VK_GAMEPAD_DPAD_DOWN = 204

const VK_GAMEPAD_DPAD_LEFT = 205

const VK_GAMEPAD_DPAD_RIGHT = 206

const VK_GAMEPAD_DPAD_UP = 203

const VK_GAMEPAD_LEFT_SHOULDER = 200

const VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON = 209

const VK_GAMEPAD_LEFT_THUMBSTICK_DOWN = 212

const VK_GAMEPAD_LEFT_THUMBSTICK_LEFT = 214

const VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT = 213

const VK_GAMEPAD_LEFT_THUMBSTICK_UP = 211

const VK_GAMEPAD_LEFT_TRIGGER = 201

const VK_GAMEPAD_MENU = 207

const VK_GAMEPAD_RIGHT_SHOULDER = 199

const VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON = 210

const VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN = 216

const VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT = 218

const VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT = 217

const VK_GAMEPAD_RIGHT_THUMBSTICK_UP = 215

const VK_GAMEPAD_RIGHT_TRIGGER = 202

const VK_GAMEPAD_VIEW = 208

const VK_GAMEPAD_X = 197

const VK_GAMEPAD_Y = 198

const VK_HANGEUL = 21

const VK_HANGUL = 21

const VK_HANJA = 25

const VK_HELP = 47

const VK_HOME = 36

const VK_ICO_00 = 228

const VK_ICO_CLEAR = 230

const VK_ICO_HELP = 227

const VK_IME_OFF = 26

const VK_IME_ON = 22

const VK_INSERT = 45

const VK_JUNJA = 23

const VK_KANA = 21

const VK_KANJI = 25

const VK_LAUNCH_APP1 = 182

const VK_LAUNCH_APP2 = 183

const VK_LAUNCH_MAIL = 180

const VK_LAUNCH_MEDIA_SELECT = 181

const VK_LBUTTON = 1

const VK_LCONTROL = 162

const VK_LEFT = 37

const VK_LMENU = 164

const VK_LSHIFT = 160

const VK_LWIN = 91

const VK_MBUTTON = 4

const VK_MEDIA_NEXT_TRACK = 176

const VK_MEDIA_PLAY_PAUSE = 179

const VK_MEDIA_PREV_TRACK = 177

const VK_MEDIA_STOP = 178

const VK_MENU = 18

const VK_MODECHANGE = 31

const VK_MULTIPLY = 106

const VK_NAVIGATION_ACCEPT = 142

const VK_NAVIGATION_CANCEL = 143

const VK_NAVIGATION_DOWN = 139

const VK_NAVIGATION_LEFT = 140

const VK_NAVIGATION_MENU = 137

const VK_NAVIGATION_RIGHT = 141

const VK_NAVIGATION_UP = 138

const VK_NAVIGATION_VIEW = 136

const VK_NEXT = 34

const VK_NONAME = 252

const VK_NONCONVERT = 29

const VK_NUMLOCK = 144

const VK_NUMPAD0 = 96

const VK_NUMPAD1 = 97

const VK_NUMPAD2 = 98

const VK_NUMPAD3 = 99

const VK_NUMPAD4 = 100

const VK_NUMPAD5 = 101

const VK_NUMPAD6 = 102

const VK_NUMPAD7 = 103

const VK_NUMPAD8 = 104

const VK_NUMPAD9 = 105

const VK_OEM_1 = 186

const VK_OEM_102 = 226

const VK_OEM_2 = 191

const VK_OEM_3 = 192

const VK_OEM_4 = 219

const VK_OEM_5 = 220

const VK_OEM_6 = 221

const VK_OEM_7 = 222

const VK_OEM_8 = 223

const VK_OEM_ATTN = 240

const VK_OEM_AUTO = 243

const VK_OEM_AX = 225

const VK_OEM_BACKTAB = 245

const VK_OEM_CLEAR = 254

const VK_OEM_COMMA = 188

const VK_OEM_COPY = 242

const VK_OEM_CUSEL = 239

const VK_OEM_ENLW = 244

const VK_OEM_FINISH = 241

const VK_OEM_FJ_JISHO = 146

const VK_OEM_FJ_LOYA = 149

const VK_OEM_FJ_MASSHOU = 147

const VK_OEM_FJ_ROYA = 150

const VK_OEM_FJ_TOUROKU = 148

const VK_OEM_JUMP = 234

const VK_OEM_MINUS = 189

const VK_OEM_NEC_EQUAL = 146

const VK_OEM_PA1 = 235

const VK_OEM_PA2 = 236

const VK_OEM_PA3 = 237

const VK_OEM_PERIOD = 190

const VK_OEM_PLUS = 187

const VK_OEM_RESET = 233

const VK_OEM_WSCTRL = 238

const VK_PA1 = 253

const VK_PACKET = 231

const VK_PAUSE = 19

const VK_PLAY = 250

const VK_PRINT = 42

const VK_PRIOR = 33

const VK_PROCESSKEY = 229

const VK_RBUTTON = 2

const VK_RCONTROL = 163

const VK_RETURN = 13

const VK_RIGHT = 39

const VK_RMENU = 165

const VK_RSHIFT = 161

const VK_RWIN = 92

const VK_SCROLL = 145

const VK_SELECT = 41

const VK_SEPARATOR = 108

const VK_SHIFT = 16

const VK_SLEEP = 95

const VK_SNAPSHOT = 44

const VK_SPACE = 32

const VK_SUBTRACT = 109

const VK_TAB = 9

const VK_UP = 38

const VK_VOLUME_DOWN = 174

const VK_VOLUME_MUTE = 173

const VK_VOLUME_UP = 175

const VK_XBUTTON1 = 5

const VK_XBUTTON2 = 6

const VK_ZOOM = 251

const VOID = 0

type VOLUME_BITMAP_BUFFER = TVOLUME_BITMAP_BUFFER

type VOLUME_DISK_EXTENTS = TVOLUME_DISK_EXTENTS

type VOLUME_GET_GPT_ATTRIBUTES_INFORMATION = TVOLUME_GET_GPT_ATTRIBUTES_INFORMATION

const VOLUME_IS_DIRTY = 1

const VOLUME_NAME_DOS = 0

const VOLUME_NAME_GUID = 1

const VOLUME_NAME_NONE = 4

const VOLUME_NAME_NT = 2

const VOLUME_SESSION_OPEN = 4

const VOLUME_UPGRADE_SCHEDULED = 2

const VOS_DOS = 65536

const VOS_DOS_WINDOWS16 = 65537

const VOS_DOS_WINDOWS32 = 65540

const VOS_NT = 262144

const VOS_NT_WINDOWS32 = 262148

const VOS_OS216 = 131072

const VOS_OS216_PM16 = 131074

const VOS_OS232 = 196608

const VOS_OS232_PM32 = 196611

const VOS_UNKNOWN = 0

const VOS_WINCE = 327680

const VOS__BASE = 0

const VOS__PM16 = 2

const VOS__PM32 = 3

const VOS__WINDOWS16 = 1

const VOS__WINDOWS32 = 4

const VP_COMMAND_GET = 1

const VP_COMMAND_SET = 2

const VP_CP_CMD_ACTIVATE = 1

const VP_CP_CMD_CHANGE = 4

const VP_CP_CMD_DEACTIVATE = 2

const VP_CP_TYPE_APS_TRIGGER = 1

const VP_CP_TYPE_MACROVISION = 2

const VP_FLAGS_BRIGHTNESS = 64

const VP_FLAGS_CONTRAST = 128

const VP_FLAGS_COPYPROTECT = 256

const VP_FLAGS_FLICKER = 4

const VP_FLAGS_MAX_UNSCALED = 16

const VP_FLAGS_OVERSCAN = 8

const VP_FLAGS_POSITION = 32

const VP_FLAGS_TV_MODE = 1

const VP_FLAGS_TV_STANDARD = 2

const VP_MODE_TV_PLAYBACK = 2

const VP_MODE_WIN_GRAPHICS = 1

const VP_TV_STANDARD_NTSC_433 = 65536

const VP_TV_STANDARD_NTSC_M = 1

const VP_TV_STANDARD_NTSC_M_J = 2

const VP_TV_STANDARD_PAL_60 = 262144

const VP_TV_STANDARD_PAL_B = 4

const VP_TV_STANDARD_PAL_D = 8

const VP_TV_STANDARD_PAL_G = 131072

const VP_TV_STANDARD_PAL_H = 16

const VP_TV_STANDARD_PAL_I = 32

const VP_TV_STANDARD_PAL_M = 64

const VP_TV_STANDARD_PAL_N = 128

const VP_TV_STANDARD_SECAM_B = 256

const VP_TV_STANDARD_SECAM_D = 512

const VP_TV_STANDARD_SECAM_G = 1024

const VP_TV_STANDARD_SECAM_H = 2048

const VP_TV_STANDARD_SECAM_K = 4096

const VP_TV_STANDARD_SECAM_K1 = 8192

const VP_TV_STANDARD_SECAM_L = 16384

const VP_TV_STANDARD_SECAM_L1 = 524288

const VP_TV_STANDARD_WIN_VGA = 32768

const VREFRESH = 116

const VRL_CLASS_CONSISTENCY = 1

const VRL_CUSTOM_CLASS_BEGIN = 256

const VRL_ENABLE_KERNEL_BREAKS = 2147483648

const VRL_PREDEFINED_CLASS_BEGIN = 1

const VS_ALLOW_LATIN = 1

const VS_FFI_FILEFLAGSMASK = 63

const VS_FFI_SIGNATURE = 4277077181

const VS_FFI_STRUCVERSION = 65536

const VS_FF_DEBUG = 1

const VS_FF_INFOINFERRED = 16

const VS_FF_PATCHED = 4

const VS_FF_PRERELEASE = 2

const VS_FF_PRIVATEBUILD = 8

const VS_FF_SPECIALBUILD = 32

const VS_FILE_INFO = "RT_VERSION"

type VS_FIXEDFILEINFO = TVS_FIXEDFILEINFO

const VS_USER_DEFINED = 100

const VS_VERSION_INFO = 1

const VTA_BASELINE = 24

const VTA_BOTTOM = 2

const VTA_CENTER = 6

const VTA_LEFT = 8

const VTA_RIGHT = 0

const VTA_TOP = 0

const VTBIT_CY = 1

const VTBIT_DECIMAL = 1

const VTBIT_I1 = 1

const VTBIT_I2 = 1

const VTBIT_I4 = 1

const VTBIT_I8 = 1

const VTBIT_R4 = 1

const VTBIT_R8 = 1

const VTBIT_UI1 = 1

const VTBIT_UI2 = 1

const VTBIT_UI4 = 1

const VTBIT_UI8 = 1

const VTDATEGRE_MAX = 2958465

const VTDATEGRE_MIN = -657434

const VT_HARDTYPE = 0

const VarBoolFromInt = 0

const VarBoolFromUint = 0

const VarBstrFromInt = 0

const VarBstrFromUint = 0

const VarCyFromInt = 0

const VarCyFromUint = 0

const VarDateFromInt = 0

const VarDateFromUint = 0

const VarDecFromInt = 0

const VarDecFromUint = 0

const VarI1FromInt = 0

const VarI1FromUint = 0

const VarI2FromInt = 0

const VarI2FromUint = 0

const VarI4FromInt = 0

const VarI4FromUint = 0

const VarI8FromInt = 0

const VarI8FromUint = 0

const VarIntFromBool = 0

const VarIntFromCy = 0

const VarIntFromDate = 0

const VarIntFromDec = 0

const VarIntFromDisp = 0

const VarIntFromI1 = 0

const VarIntFromI2 = 0

const VarIntFromI4 = 0

const VarIntFromI8 = 0

const VarIntFromR4 = 0

const VarIntFromR8 = 0

const VarIntFromStr = 0

const VarIntFromUI1 = 0

const VarIntFromUI2 = 0

const VarIntFromUI4 = 0

const VarIntFromUI8 = 0

const VarIntFromUint = 0

const VarR4FromInt = 0

const VarR4FromUint = 0

const VarR8FromInt = 0

const VarR8FromUint = 0

const VarUI1FromInt = 0

const VarUI1FromUint = 0

const VarUI2FromInt = 0

const VarUI2FromUint = 0

const VarUI4FromInt = 0

const VarUI4FromUint = 0

const VarUintFromBool = 0

const VarUintFromCy = 0

const VarUintFromDate = 0

const VarUintFromDec = 0

const VarUintFromDisp = 0

const VarUintFromI1 = 0

const VarUintFromI2 = 0

const VarUintFromI4 = 0

const VarUintFromI8 = 0

const VarUintFromInt = 0

const VarUintFromR4 = 0

const VarUintFromR8 = 0

const VarUintFromStr = 0

const VarUintFromUI1 = 0

const VarUintFromUI2 = 0

const VarUintFromUI4 = 0

const VarUintFromUI8 = 0

const VerFindFile = 0

const VerInstallFile = 0

const VerLanguageName = 0

const VerQueryValue = 0

const VerifyVersionInfo = 0

const VkKeyScan = 0

const VkKeyScanEx = 0

const VolumeClassGuid = 0

type WAITORTIMERCALLBACK = TWAITORTIMERCALLBACK

type WAITORTIMERCALLBACKFUNC = TWAITORTIMERCALLBACKFUNC

const WAIT_CHILD = 0

const WAIT_GRANDCHILD = 1

const WAIT_IO_COMPLETION = "STATUS_USER_APC"

const WAIT_TIMEOUT = 258

const WARNING_IPSEC_MM_POLICY_PRUNED = 13024

const WARNING_IPSEC_QM_POLICY_PRUNED = 13025

const WAVECAPS_LRVOLUME = 8

const WAVECAPS_PITCH = 1

const WAVECAPS_PLAYBACKRATE = 2

const WAVECAPS_SAMPLEACCURATE = 32

const WAVECAPS_SYNC = 16

const WAVECAPS_VOLUME = 4

type WAVEFORMAT = TWAVEFORMAT

type WAVEFORMATEX = TWAVEFORMATEX

type WAVEHDR = TWAVEHDR

type WAVEINCAPS = TWAVEINCAPS

type WAVEINCAPS2 = TWAVEINCAPS2

type WAVEINCAPS2A = TWAVEINCAPS2A

type WAVEINCAPS2W = TWAVEINCAPS2W

type WAVEINCAPSA = TWAVEINCAPSA

type WAVEINCAPSW = TWAVEINCAPSW

type WAVEOUTCAPS = TWAVEOUTCAPS

type WAVEOUTCAPS2 = TWAVEOUTCAPS2

type WAVEOUTCAPS2A = TWAVEOUTCAPS2A

type WAVEOUTCAPS2W = TWAVEOUTCAPS2W

type WAVEOUTCAPSA = TWAVEOUTCAPSA

type WAVEOUTCAPSW = TWAVEOUTCAPSW

const WAVERR_BADFORMAT = 32

const WAVERR_BASE = 32

const WAVERR_LASTERROR = 35

const WAVERR_STILLPLAYING = 33

const WAVERR_SYNC = 35

const WAVERR_UNPREPARED = 34

const WAVE_ALLOWSYNC = 2

const WAVE_FORMAT_1M08 = 1

const WAVE_FORMAT_1M16 = 4

const WAVE_FORMAT_1S08 = 2

const WAVE_FORMAT_1S16 = 8

const WAVE_FORMAT_2M08 = 16

const WAVE_FORMAT_2M16 = 64

const WAVE_FORMAT_2S08 = 32

const WAVE_FORMAT_2S16 = 128

const WAVE_FORMAT_44M08 = 256

const WAVE_FORMAT_44M16 = 1024

const WAVE_FORMAT_44S08 = 512

const WAVE_FORMAT_44S16 = 2048

const WAVE_FORMAT_48M08 = 4096

const WAVE_FORMAT_48M16 = 16384

const WAVE_FORMAT_48S08 = 8192

const WAVE_FORMAT_48S16 = 32768

const WAVE_FORMAT_4M08 = 256

const WAVE_FORMAT_4M16 = 1024

const WAVE_FORMAT_4S08 = 512

const WAVE_FORMAT_4S16 = 2048

const WAVE_FORMAT_96M08 = 65536

const WAVE_FORMAT_96M16 = 262144

const WAVE_FORMAT_96S08 = 131072

const WAVE_FORMAT_96S16 = 524288

const WAVE_FORMAT_DIRECT = 8

const WAVE_FORMAT_DIRECT_QUERY = 9

const WAVE_FORMAT_PCM = 1

const WAVE_FORMAT_QUERY = 1

const WAVE_INVALIDFORMAT = 0

const WAVE_MAPPED = 4

const WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE = 16

const WAVE_MAPPER = -1

const WA_ACTIVE = 1

const WA_CLICKACTIVE = 2

const WA_INACTIVE = 0

const WB_ISDELIMITER = 2

const WB_LEFT = 0

const WB_RIGHT = 1

type WCHAR = TWCHAR

const WCHAR_MAX = 65535

type WCRANGE = TWCRANGE

const WC_COMPOSITECHECK = 512

const WC_DEFAULTCHAR = 64

const WC_DISCARDNS = 16

const WC_ERR_INVALID_CHARS = 128

const WC_NETADDRESS = "msctls_netaddress"

const WC_NO_BEST_FIT_CHARS = 1024

const WC_SEPCHARS = 32

const WDA_EXCLUDEFROMCAPTURE = 17

const WDA_MONITOR = 1

const WDA_NONE = 0

const WDK_NTDDI_VERSION = 167772171

const WDT_INPROC64_CALL = 1349805143

const WDT_INPROC_CALL = 1215587415

const WDT_REMOTE_CALL = 1383359575

type WELL_KNOWN_SID_TYPE = TWELL_KNOWN_SID_TYPE

type WGLSWAP = TWGLSWAP

const WGL_FONT_LINES = 0

const WGL_FONT_POLYGONS = 1

const WGL_SWAPMULTIPLE_MAX = 16

const WGL_SWAP_MAIN_PLANE = 1

const WGL_SWAP_OVERLAY1 = 2

const WGL_SWAP_OVERLAY10 = 1024

const WGL_SWAP_OVERLAY11 = 2048

const WGL_SWAP_OVERLAY12 = 4096

const WGL_SWAP_OVERLAY13 = 8192

const WGL_SWAP_OVERLAY14 = 16384

const WGL_SWAP_OVERLAY15 = 32768

const WGL_SWAP_OVERLAY2 = 4

const WGL_SWAP_OVERLAY3 = 8

const WGL_SWAP_OVERLAY4 = 16

const WGL_SWAP_OVERLAY5 = 32

const WGL_SWAP_OVERLAY6 = 64

const WGL_SWAP_OVERLAY7 = 128

const WGL_SWAP_OVERLAY8 = 256

const WGL_SWAP_OVERLAY9 = 512

const WGL_SWAP_UNDERLAY1 = 65536

const WGL_SWAP_UNDERLAY10 = 33554432

const WGL_SWAP_UNDERLAY11 = 67108864

const WGL_SWAP_UNDERLAY12 = 134217728

const WGL_SWAP_UNDERLAY13 = 268435456

const WGL_SWAP_UNDERLAY14 = 536870912

const WGL_SWAP_UNDERLAY15 = 1073741824

const WGL_SWAP_UNDERLAY2 = 131072

const WGL_SWAP_UNDERLAY3 = 262144

const WGL_SWAP_UNDERLAY4 = 524288

const WGL_SWAP_UNDERLAY5 = 1048576

const WGL_SWAP_UNDERLAY6 = 2097152

const WGL_SWAP_UNDERLAY7 = 4194304

const WGL_SWAP_UNDERLAY8 = 8388608

const WGL_SWAP_UNDERLAY9 = 16777216

const WHDR_BEGINLOOP = 4

const WHDR_DONE = 1

const WHDR_ENDLOOP = 8

const WHDR_INQUEUE = 16

const WHDR_PREPARED = 2

const WHEEL_DELTA = 120

const WHEEL_PAGESCROLL = 4294967295

const WHITEONBLACK = 2

const WHITE_BRUSH = 0

const WHITE_PEN = 6

const WH_CALLWNDPROC = 4

const WH_CALLWNDPROCRET = 12

const WH_CBT = 5

const WH_DEBUG = 9

const WH_FOREGROUNDIDLE = 11

const WH_GETMESSAGE = 3

const WH_HARDWARE = 8

const WH_JOURNALPLAYBACK = 1

const WH_JOURNALRECORD = 0

const WH_KEYBOARD = 2

const WH_KEYBOARD_LL = 13

const WH_MAX = 14

const WH_MAXHOOK = 14

const WH_MIN = -1

const WH_MINHOOK = -1

const WH_MOUSE = 7

const WH_MOUSE_LL = 14

const WH_MSGFILTER = -1

const WH_SHELL = 10

const WH_SYSMSGFILTER = 6

const WIM_CLOSE = 959

const WIM_DATA = 960

const WIM_OPEN = 958

const WIN31_CLASS = "NULL"

const WIN32 = 1

type WIN32_FILE_ATTRIBUTE_DATA = TWIN32_FILE_ATTRIBUTE_DATA

type WIN32_FIND_DATA = TWIN32_FIND_DATA

type WIN32_FIND_DATAA = TWIN32_FIND_DATAA

type WIN32_FIND_DATAW = TWIN32_FIND_DATAW

type WIN32_FIND_STREAM_DATA = TWIN32_FIND_STREAM_DATA

type WIN32_MEMORY_RANGE_ENTRY = TWIN32_MEMORY_RANGE_ENTRY

type WIN32_STREAM_ID = TWIN32_STREAM_ID

const WINABLEAPI = "DECLSPEC_IMPORT"

const WINADVAPI = "DECLSPEC_IMPORT"

const WINAPIV = "__cdecl"

const WINAPI_FAMILY = 3

const WINAPI_FAMILY_APP = 2

const WINAPI_FAMILY_DESKTOP_APP = 3

const WINAPI_PARTITION_APP = 2

const WINAPI_PARTITION_DESKTOP = 1

const WINBASEAPI = "DECLSPEC_IMPORT"

type WINBOOL = TWINBOOL

const WINCFGMGR32API = "DECLSPEC_IMPORT"

const WINCOMMCTRLAPI = "DECLSPEC_IMPORT"

const WINCOMMDLGAPI = "DECLSPEC_IMPORT"

const WINCRYPT32API = "WINIMPM"

const WINCRYPT32STRINGAPI = "WINIMPM"

const WINDEVQUERYAPI = "DECLSPEC_IMPORT"

const WINDING = 2

type WINDOWINFO = TWINDOWINFO

type WINDOWPLACEMENT = TWINDOWPLACEMENT

type WINDOWPOS = TWINDOWPOS

const WINDOW_BUFFER_SIZE_EVENT = 4

type WINDOW_BUFFER_SIZE_RECORD = TWINDOW_BUFFER_SIZE_RECORD

type WINEVENTPROC = TWINEVENTPROC

const WINEVENT_INCONTEXT = 4

const WINEVENT_OUTOFCONTEXT = 0

const WINEVENT_SKIPOWNPROCESS = 2

const WINEVENT_SKIPOWNTHREAD = 1

const WINFILE_PERSIST_WAL = 4

const WINFILE_PSOW = 16

const WINFILE_RDONLY = 2

const WINGDIAPI = "DECLSPEC_IMPORT"

const WINIMPM = "DECLSPEC_IMPORT"

const WININETINFO_OPTION_LOCK_HANDLE = 65534

const WINMMAPI = "DECLSPEC_IMPORT"

const WINNORMALIZEAPI = "DECLSPEC_IMPORT"

const WINNT = 1

const WINPATHCCHAPI = "WINBASEAPI"

const WINPERF_LOG_DEBUG = 2

const WINPERF_LOG_NONE = 0

const WINPERF_LOG_USER = 1

const WINPERF_LOG_VERBOSE = 3

const WINSHELLAPI = "DECLSPEC_IMPORT"

const WINSPOOLAPI = "DECLSPEC_IMPORT"

type WINSTAENUMPROC = TWINSTAENUMPROC

type WINSTAENUMPROCA = TWINSTAENUMPROCA

type WINSTAENUMPROCW = TWINSTAENUMPROCW

const WINSTA_ACCESSCLIPBOARD = 4

const WINSTA_ACCESSGLOBALATOMS = 32

const WINSTA_ALL_ACCESS = 895

const WINSTA_CREATEDESKTOP = 8

const WINSTA_ENUMDESKTOPS = 1

const WINSTA_ENUMERATE = 256

const WINSTA_EXITWINDOWS = 64

const WINSTA_READATTRIBUTES = 2

const WINSTA_READSCREEN = 512

const WINSTA_WRITEATTRIBUTES = 16

const WINSTORAGEAPI = "DECLSPEC_IMPORT"

const WINSWDEVICEAPI = "DECLSPEC_IMPORT"

const WINT_MAX = 65535

const WINUSERAPI = "DECLSPEC_IMPORT"

const WINVER = 2560

const WIN_SHM_BASE = 120

const WIN_SHM_DMS = 128

const WIZ_BODYCX = 184

const WIZ_BODYX = 92

const WIZ_CXBMP = 80

const WIZ_CXDLG = 276

const WIZ_CYDLG = 140

const WMSZ_BOTTOM = 6

const WMSZ_BOTTOMLEFT = 7

const WMSZ_BOTTOMRIGHT = 8

const WMSZ_LEFT = 1

const WMSZ_RIGHT = 2

const WMSZ_TOP = 3

const WMSZ_TOPLEFT = 4

const WMSZ_TOPRIGHT = 5

const WM_ACTIVATE = 6

const WM_ACTIVATEAPP = 28

const WM_AFXFIRST = 864

const WM_AFXLAST = 895

const WM_APP = 32768

const WM_APPCOMMAND = 793

const WM_ASKCBFORMATNAME = 780

const WM_CANCELJOURNAL = 75

const WM_CANCELMODE = 31

const WM_CAPTURECHANGED = 533

const WM_CHANGECBCHAIN = 781

const WM_CHANGEUISTATE = 295

const WM_CHAR = 258

const WM_CHARTOITEM = 47

const WM_CHILDACTIVATE = 34

const WM_CHOOSEFONT_GETLOGFONT = 1025

const WM_CHOOSEFONT_SETFLAGS = 1126

const WM_CHOOSEFONT_SETLOGFONT = 1125

const WM_CLEAR = 771

const WM_CLIPBOARDUPDATE = 797

const WM_CLOSE = 16

const WM_COMMAND = 273

const WM_COMMNOTIFY = 68

const WM_COMPACTING = 65

const WM_COMPAREITEM = 57

const WM_CONTEXTMENU = 123

const WM_COPY = 769

const WM_COPYDATA = 74

const WM_CREATE = 1

const WM_CTLCOLORBTN = 309

const WM_CTLCOLORDLG = 310

const WM_CTLCOLOREDIT = 307

const WM_CTLCOLORLISTBOX = 308

const WM_CTLCOLORMSGBOX = 306

const WM_CTLCOLORSCROLLBAR = 311

const WM_CTLCOLORSTATIC = 312

const WM_CUT = 768

const WM_DDE_ACK = 996

const WM_DDE_ADVISE = 994

const WM_DDE_DATA = 997

const WM_DDE_EXECUTE = 1000

const WM_DDE_FIRST = 992

const WM_DDE_INITIATE = 992

const WM_DDE_LAST = 1000

const WM_DDE_POKE = 999

const WM_DDE_REQUEST = 998

const WM_DDE_TERMINATE = 993

const WM_DDE_UNADVISE = 995

const WM_DEADCHAR = 259

const WM_DELETEITEM = 45

const WM_DESTROY = 2

const WM_DESTROYCLIPBOARD = 775

const WM_DEVICECHANGE = 537

const WM_DEVMODECHANGE = 27

const WM_DISPLAYCHANGE = 126

const WM_DPICHANGED = 736

const WM_DPICHANGED_AFTERPARENT = 739

const WM_DPICHANGED_BEFOREPARENT = 738

const WM_DRAWCLIPBOARD = 776

const WM_DRAWITEM = 43

const WM_DROPFILES = 563

const WM_DWMCOLORIZATIONCOLORCHANGED = 800

const WM_DWMCOMPOSITIONCHANGED = 798

const WM_DWMNCRENDERINGCHANGED = 799

const WM_DWMSENDICONICLIVEPREVIEWBITMAP = 806

const WM_DWMSENDICONICTHUMBNAIL = 803

const WM_DWMWINDOWMAXIMIZEDCHANGE = 801

const WM_ENABLE = 10

const WM_ENDSESSION = 22

const WM_ENTERIDLE = 289

const WM_ENTERMENULOOP = 529

const WM_ENTERSIZEMOVE = 561

const WM_ERASEBKGND = 20

const WM_EXITMENULOOP = 530

const WM_EXITSIZEMOVE = 562

const WM_FONTCHANGE = 29

const WM_GESTURE = 281

const WM_GESTURENOTIFY = 282

const WM_GETDLGCODE = 135

const WM_GETDPISCALEDSIZE = 740

const WM_GETFONT = 49

const WM_GETHOTKEY = 51

const WM_GETICON = 127

const WM_GETMINMAXINFO = 36

const WM_GETOBJECT = 61

const WM_GETTEXT = 13

const WM_GETTEXTLENGTH = 14

const WM_GETTITLEBARINFOEX = 831

const WM_HANDHELDFIRST = 856

const WM_HANDHELDLAST = 863

const WM_HELP = 83

const WM_HOTKEY = 786

const WM_HSCROLL = 276

const WM_HSCROLLCLIPBOARD = 782

const WM_ICONERASEBKGND = 39

const WM_IME_CHAR = 646

const WM_IME_COMPOSITION = 271

const WM_IME_COMPOSITIONFULL = 644

const WM_IME_CONTROL = 643

const WM_IME_ENDCOMPOSITION = 270

const WM_IME_KEYDOWN = 656

const WM_IME_KEYLAST = 271

const WM_IME_KEYUP = 657

const WM_IME_NOTIFY = 642

const WM_IME_REQUEST = 648

const WM_IME_SELECT = 645

const WM_IME_SETCONTEXT = 641

const WM_IME_STARTCOMPOSITION = 269

const WM_INITDIALOG = 272

const WM_INITMENU = 278

const WM_INITMENUPOPUP = 279

const WM_INPUT = 255

const WM_INPUTLANGCHANGE = 81

const WM_INPUTLANGCHANGEREQUEST = 80

const WM_INPUT_DEVICE_CHANGE = 254

const WM_KEYDOWN = 256

const WM_KEYFIRST = 256

const WM_KEYLAST = 265

const WM_KEYUP = 257

const WM_KILLFOCUS = 8

const WM_LBUTTONDBLCLK = 515

const WM_LBUTTONDOWN = 513

const WM_LBUTTONUP = 514

const WM_MBUTTONDBLCLK = 521

const WM_MBUTTONDOWN = 519

const WM_MBUTTONUP = 520

const WM_MDIACTIVATE = 546

const WM_MDICASCADE = 551

const WM_MDICREATE = 544

const WM_MDIDESTROY = 545

const WM_MDIGETACTIVE = 553

const WM_MDIICONARRANGE = 552

const WM_MDIMAXIMIZE = 549

const WM_MDINEXT = 548

const WM_MDIREFRESHMENU = 564

const WM_MDIRESTORE = 547

const WM_MDISETMENU = 560

const WM_MDITILE = 550

const WM_MEASUREITEM = 44

const WM_MENUCHAR = 288

const WM_MENUCOMMAND = 294

const WM_MENUDRAG = 291

const WM_MENUGETOBJECT = 292

const WM_MENURBUTTONUP = 290

const WM_MENUSELECT = 287

const WM_MOUSEACTIVATE = 33

const WM_MOUSEFIRST = 512

const WM_MOUSEHOVER = 673

const WM_MOUSEHWHEEL = 526

const WM_MOUSELAST = 526

const WM_MOUSELEAVE = 675

const WM_MOUSEMOVE = 512

const WM_MOUSEWHEEL = 522

const WM_MOVE = 3

const WM_MOVING = 534

const WM_NCACTIVATE = 134

const WM_NCCALCSIZE = 131

const WM_NCCREATE = 129

const WM_NCDESTROY = 130

const WM_NCHITTEST = 132

const WM_NCLBUTTONDBLCLK = 163

const WM_NCLBUTTONDOWN = 161

const WM_NCLBUTTONUP = 162

const WM_NCMBUTTONDBLCLK = 169

const WM_NCMBUTTONDOWN = 167

const WM_NCMBUTTONUP = 168

const WM_NCMOUSEHOVER = 672

const WM_NCMOUSELEAVE = 674

const WM_NCMOUSEMOVE = 160

const WM_NCPAINT = 133

const WM_NCPOINTERDOWN = 578

const WM_NCPOINTERUP = 579

const WM_NCPOINTERUPDATE = 577

const WM_NCRBUTTONDBLCLK = 166

const WM_NCRBUTTONDOWN = 164

const WM_NCRBUTTONUP = 165

const WM_NCXBUTTONDBLCLK = 173

const WM_NCXBUTTONDOWN = 171

const WM_NCXBUTTONUP = 172

const WM_NEXTDLGCTL = 40

const WM_NEXTMENU = 531

const WM_NOTIFY = 78

const WM_NOTIFYFORMAT = 85

const WM_NULL = 0

const WM_PAINT = 15

const WM_PAINTCLIPBOARD = 777

const WM_PAINTICON = 38

const WM_PALETTECHANGED = 785

const WM_PALETTEISCHANGING = 784

const WM_PARENTNOTIFY = 528

const WM_PASTE = 770

const WM_PENWINFIRST = 896

const WM_PENWINLAST = 911

const WM_POINTERACTIVATE = 587

const WM_POINTERCAPTURECHANGED = 588

const WM_POINTERDEVICECHANGE = 568

const WM_POINTERDEVICEINRANGE = 569

const WM_POINTERDEVICEOUTOFRANGE = 570

const WM_POINTERDOWN = 582

const WM_POINTERENTER = 585

const WM_POINTERHWHEEL = 591

const WM_POINTERLEAVE = 586

const WM_POINTERROUTEDAWAY = 594

const WM_POINTERROUTEDRELEASED = 595

const WM_POINTERROUTEDTO = 593

const WM_POINTERUP = 583

const WM_POINTERUPDATE = 581

const WM_POINTERWHEEL = 590

const WM_POWER = 72

const WM_POWERBROADCAST = 536

const WM_PRINT = 791

const WM_PRINTCLIENT = 792

const WM_PSD_ENVSTAMPRECT = 1029

const WM_PSD_FULLPAGERECT = 1025

const WM_PSD_GREEKTEXTRECT = 1028

const WM_PSD_MARGINRECT = 1027

const WM_PSD_MINMARGINRECT = 1026

const WM_PSD_PAGESETUPDLG = 1024

const WM_PSD_YAFULLPAGERECT = 1030

const WM_QUERYDRAGICON = 55

const WM_QUERYENDSESSION = 17

const WM_QUERYNEWPALETTE = 783

const WM_QUERYOPEN = 19

const WM_QUERYUISTATE = 297

const WM_QUEUESYNC = 35

const WM_QUIT = 18

const WM_RBUTTONDBLCLK = 518

const WM_RBUTTONDOWN = 516

const WM_RBUTTONUP = 517

const WM_RENDERALLFORMATS = 774

const WM_RENDERFORMAT = 773

const WM_SETCURSOR = 32

const WM_SETFOCUS = 7

const WM_SETFONT = 48

const WM_SETHOTKEY = 50

const WM_SETICON = 128

const WM_SETREDRAW = 11

const WM_SETTEXT = 12

const WM_SETTINGCHANGE = 26

const WM_SHOWWINDOW = 24

const WM_SIZE = 5

const WM_SIZECLIPBOARD = 779

const WM_SIZING = 532

const WM_SPOOLERSTATUS = 42

const WM_STYLECHANGED = 125

const WM_STYLECHANGING = 124

const WM_SYNCPAINT = 136

const WM_SYSCHAR = 262

const WM_SYSCOLORCHANGE = 21

const WM_SYSCOMMAND = 274

const WM_SYSDEADCHAR = 263

const WM_SYSKEYDOWN = 260

const WM_SYSKEYUP = 261

const WM_TABLET_FIRST = 704

const WM_TABLET_LAST = 735

const WM_TCARD = 82

const WM_THEMECHANGED = 794

const WM_TIMECHANGE = 30

const WM_TIMER = 275

const WM_TOUCH = 576

const WM_TOUCHHITTESTING = 589

const WM_UNDO = 772

const WM_UNICHAR = 265

const WM_UNINITMENUPOPUP = 293

const WM_UPDATEUISTATE = 296

const WM_USER = 1024

const WM_USERCHANGED = 84

const WM_VKEYTOITEM = 46

const WM_VSCROLL = 277

const WM_VSCROLLCLIPBOARD = 778

const WM_WINDOWPOSCHANGED = 71

const WM_WINDOWPOSCHANGING = 70

const WM_WININICHANGE = 26

const WM_WTSSESSION_CHANGE = 689

const WM_XBUTTONDBLCLK = 525

const WM_XBUTTONDOWN = 523

const WM_XBUTTONUP = 524

const WNCON_DYNAMIC = 8

const WNCON_FORNETCARD = 1

const WNCON_NOTROUTED = 2

const WNCON_SLOWLINK = 4

type WNDCLASS = TWNDCLASS

type WNDCLASSA = TWNDCLASSA

type WNDCLASSEX = TWNDCLASSEX

type WNDCLASSEXA = TWNDCLASSEXA

type WNDCLASSEXW = TWNDCLASSEXW

type WNDCLASSW = TWNDCLASSW

type WNDENUMPROC = TWNDENUMPROC

type WNDPROC = TWNDPROC

const WNFMT_ABBREVIATED = 2

const WNFMT_CONNECTION = 32

const WNFMT_INENUM = 16

const WNFMT_MULTILINE = 1

const WNNC_CRED_MANAGER = 4294901760

const WNNC_NET_10NET = 327680

const WNNC_NET_3IN1 = 2555904

const WNNC_NET_9TILES = 589824

const WNNC_NET_APPLETALK = 1245184

const WNNC_NET_AS400 = 720896

const WNNC_NET_AVID = 1703936

const WNNC_NET_AVID1 = 3801088

const WNNC_NET_BMC = 1572864

const WNNC_NET_BWNFS = 1048576

const WNNC_NET_CLEARCASE = 1441792

const WNNC_NET_COGENT = 1114112

const WNNC_NET_CSC = 2490368

const WNNC_NET_DAV = 3014656

const WNNC_NET_DCE = 1638400

const WNNC_NET_DECORB = 2097152

const WNNC_NET_DFS = 3866624

const WNNC_NET_DISTINCT = 2293760

const WNNC_NET_DOCUSPACE = 1769472

const WNNC_NET_DRIVEONWEB = 4063232

const WNNC_NET_EXIFS = 2949120

const WNNC_NET_EXTENDNET = 2686976

const WNNC_NET_FARALLON = 1179648

const WNNC_NET_FJ_REDIR = 2228224

const WNNC_NET_FOXBAT = 2818048

const WNNC_NET_FRONTIER = 1507328

const WNNC_NET_FTP_NFS = 786432

const WNNC_NET_GOOGLE = 4390912

const WNNC_NET_HOB_NFS = 3276800

const WNNC_NET_IBMAL = 3407872

const WNNC_NET_INTERGRAPH = 1310720

const WNNC_NET_KNOWARE = 3080192

const WNNC_NET_KWNP = 3932160

const WNNC_NET_LANMAN = 131072

const WNNC_NET_LANSTEP = 524288

const WNNC_NET_LANTASTIC = 655360

const WNNC_NET_LIFENET = 917504

const WNNC_NET_LOCK = 3473408

const WNNC_NET_LOCUS = 393216

const WNNC_NET_MANGOSOFT = 1835008

const WNNC_NET_MASFAX = 3211264

const WNNC_NET_MFILES = 4259840

const WNNC_NET_MSNET = 65536

const WNNC_NET_MS_NFS = 4325376

const WNNC_NET_NDFS = 4456448

const WNNC_NET_NETWARE = 196608

const WNNC_NET_OBJECT_DIRE = 3145728

const WNNC_NET_OPENAFS = 3735552

const WNNC_NET_PATHWORKS = 851968

const WNNC_NET_POWERLAN = 983040

const WNNC_NET_PROTSTOR = 2162688

const WNNC_NET_QUINCY = 3670016

const WNNC_NET_RDR2SAMPLE = 2424832

const WNNC_NET_RIVERFRONT1 = 1966080

const WNNC_NET_RIVERFRONT2 = 2031616

const WNNC_NET_RSFX = 4194304

const WNNC_NET_SERNET = 1900544

const WNNC_NET_SHIVA = 3342336

const WNNC_NET_SMB = 131072

const WNNC_NET_SRT = 3604480

const WNNC_NET_STAC = 2752512

const WNNC_NET_SUN_PC_NFS = 458752

const WNNC_NET_SYMFONET = 1376256

const WNNC_NET_TERMSRV = 3538944

const WNNC_NET_TWINS = 2359296

const WNNC_NET_VINES = 262144

const WNNC_NET_VMWARE = 4128768

const WNNC_NET_YAHOO = 2883584

const WNNC_NET_ZENWORKS = 3997696

const WN_ACCESS_DENIED = 5

const WN_ALREADY_CONNECTED = 85

const WN_BAD_DEV_TYPE = 66

const WN_BAD_HANDLE = 6

const WN_BAD_LEVEL = 124

const WN_BAD_LOCALNAME = 1200

const WN_BAD_NETNAME = 67

const WN_BAD_PASSWORD = 86

const WN_BAD_POINTER = 487

const WN_BAD_PROFILE = 1206

const WN_BAD_PROVIDER = 1204

const WN_BAD_USER = 2202

const WN_BAD_VALUE = 87

const WN_CANCEL = 1223

const WN_CANNOT_OPEN_PROFILE = 1205

const WN_CONNECTED_OTHER_PASSWORD = 2108

const WN_CONNECTED_OTHER_PASSWORD_DEFAULT = 2109

const WN_CONNECTION_CLOSED = 1201

const WN_DEVICE_ALREADY_REMEMBERED = 1202

const WN_DEVICE_ERROR = 31

const WN_DEVICE_IN_USE = 2404

const WN_EXTENDED_ERROR = 1208

const WN_FUNCTION_BUSY = 170

const WN_MORE_DATA = 234

const WN_NET_ERROR = 59

const WN_NOT_AUTHENTICATED = 1244

const WN_NOT_CONNECTED = 2250

const WN_NOT_CONTAINER = 1207

const WN_NOT_INITIALIZING = 1247

const WN_NOT_LOGGED_ON = 1245

const WN_NOT_SUPPORTED = 50

const WN_NOT_VALIDATED = 1311

const WN_NO_ERROR = 0

const WN_NO_MORE_DEVICES = 1248

const WN_NO_MORE_ENTRIES = 259

const WN_NO_NETWORK = 1222

const WN_NO_NET_OR_BAD_PATH = 1203

const WN_OPEN_FILES = 2401

const WN_OUT_OF_MEMORY = 8

const WN_RETRY = 1237

const WN_SUCCESS = 0

const WN_WINDOWS_ERROR = 59

const WNetAddConnection = 0

const WNetAddConnection2 = 0

const WNetAddConnection3 = 0

const WNetCancelConnection = 0

const WNetCancelConnection2 = 0

const WNetConnectionDialog1 = 0

const WNetDisconnectDialog1 = 0

const WNetEnumResource = 0

const WNetGetConnection = 0

const WNetGetLastError = 0

const WNetGetNetworkInformation = 0

const WNetGetProviderName = 0

const WNetGetResourceInformation = 0

const WNetGetResourceParent = 0

const WNetGetUniversalName = 0

const WNetGetUser = 0

const WNetOpenEnum = 0

const WNetRestoreConnection = 0

const WNetUseConnection = 0

const WOF_CURRENT_VERSION = 1

type WOF_EXTERNAL_INFO = TWOF_EXTERNAL_INFO

const WOF_PROVIDER_FILE = 2

const WOM_CLOSE = 956

const WOM_DONE = 957

const WOM_OPEN = 955

type WORD = TWORD

type WORD_BLOB = TWORD_BLOB

type WORD_SIZEDARR = TWORD_SIZEDARR

type WORKERCALLBACKFUNC = TWORKERCALLBACKFUNC

type WOW64_CONTEXT = TWOW64_CONTEXT

const WOW64_CONTEXT_ALL = 65599

const WOW64_CONTEXT_CONTROL = 65537

const WOW64_CONTEXT_DEBUG_REGISTERS = 65552

const WOW64_CONTEXT_EXCEPTION_ACTIVE = 134217728

const WOW64_CONTEXT_EXCEPTION_REPORTING = 2147483648

const WOW64_CONTEXT_EXCEPTION_REQUEST = 1073741824

const WOW64_CONTEXT_EXTENDED_REGISTERS = 65568

const WOW64_CONTEXT_FLOATING_POINT = 65544

const WOW64_CONTEXT_FULL = 65543

const WOW64_CONTEXT_INTEGER = 65538

const WOW64_CONTEXT_SEGMENTS = 65540

const WOW64_CONTEXT_SERVICE_ACTIVE = 268435456

const WOW64_CONTEXT_XSTATE = 65600

const WOW64_CONTEXT_i386 = 65536

const WOW64_CONTEXT_i486 = 65536

type WOW64_DESCRIPTOR_TABLE_ENTRY = TWOW64_DESCRIPTOR_TABLE_ENTRY

type WOW64_FLOATING_SAVE_AREA = TWOW64_FLOATING_SAVE_AREA

type WOW64_LDT_ENTRY = TWOW64_LDT_ENTRY

const WOW64_MAXIMUM_SUPPORTED_EXTENSION = 512

const WOW64_SIZE_OF_80387_REGISTERS = 80

type WPARAM = TWPARAM

const WPF_ASYNCWINDOWPLACEMENT = 4

const WPF_RESTORETOMAXIMIZED = 2

const WPF_SETMINPOSITION = 1

type WRITE_CACHE_CHANGE = TWRITE_CACHE_CHANGE

type WRITE_CACHE_ENABLE = TWRITE_CACHE_ENABLE

type WRITE_CACHE_TYPE = TWRITE_CACHE_TYPE

const WRITE_COMPRESSION_INFO_VALID = 16

const WRITE_DAC = 262144

const WRITE_OWNER = 524288

const WRITE_RESTRICTED = 8

type WRITE_THROUGH = TWRITE_THROUGH

const WRITE_WATCH_FLAG_RESET = 1

const WSABASEERR = 10000

type WSADATA = TWSADATA

const WSADESCRIPTION_LEN = 256

type WSAData = TWSAData

const WSAEACCES = 10013

const WSAEADDRINUSE = 10048

const WSAEADDRNOTAVAIL = 10049

const WSAEAFNOSUPPORT = 10047

const WSAEALREADY = 10037

const WSAEBADF = 10009

const WSAECANCELLED = 10103

const WSAECONNABORTED = 10053

const WSAECONNREFUSED = 10061

const WSAECONNRESET = 10054

const WSAEDESTADDRREQ = 10039

const WSAEDISCON = 10101

const WSAEDQUOT = 10069

const WSAEFAULT = 10014

const WSAEHOSTDOWN = 10064

const WSAEHOSTUNREACH = 10065

const WSAEINPROGRESS = 10036

const WSAEINTR = 10004

const WSAEINVAL = 10022

const WSAEINVALIDPROCTABLE = 10104

const WSAEINVALIDPROVIDER = 10105

const WSAEISCONN = 10056

const WSAELOOP = 10062

const WSAEMFILE = 10024

const WSAEMSGSIZE = 10040

const WSAENAMETOOLONG = 10063

const WSAENETDOWN = 10050

const WSAENETRESET = 10052

const WSAENETUNREACH = 10051

const WSAENOBUFS = 10055

const WSAENOMORE = 10102

const WSAENOPROTOOPT = 10042

const WSAENOTCONN = 10057

const WSAENOTEMPTY = 10066

const WSAENOTSOCK = 10038

const WSAEOPNOTSUPP = 10045

const WSAEPFNOSUPPORT = 10046

const WSAEPROCLIM = 10067

const WSAEPROTONOSUPPORT = 10043

const WSAEPROTOTYPE = 10041

const WSAEPROVIDERFAILEDINIT = 10106

const WSAEREFUSED = 10112

const WSAEREMOTE = 10071

const WSAESHUTDOWN = 10058

const WSAESOCKTNOSUPPORT = 10044

const WSAESTALE = 10070

const WSAETIMEDOUT = 10060

const WSAETOOMANYREFS = 10059

const WSAEUSERS = 10068

const WSAEWOULDBLOCK = 10035

const WSAHOST_NOT_FOUND = 11001

const WSANOTINITIALISED = 10093

const WSANO_ADDRESS = 11004

const WSANO_DATA = 11004

const WSANO_RECOVERY = 11003

const WSASERVICE_NOT_FOUND = 10108

const WSASYSCALLFAILURE = 10107

const WSASYSNOTREADY = 10091

const WSASYS_STATUS_LEN = 128

const WSATRY_AGAIN = 11002

const WSATYPE_NOT_FOUND = 10109

const WSAVERNOTSUPPORTED = 10092

const WSA_E_CANCELLED = 10111

const WSA_E_NO_MORE = 10110

const WSA_QOS_ADMISSION_FAILURE = 11010

const WSA_QOS_BAD_OBJECT = 11013

const WSA_QOS_BAD_STYLE = 11012

const WSA_QOS_EFILTERCOUNT = 11021

const WSA_QOS_EFILTERSTYLE = 11019

const WSA_QOS_EFILTERTYPE = 11020

const WSA_QOS_EFLOWCOUNT = 11023

const WSA_QOS_EFLOWDESC = 11026

const WSA_QOS_EFLOWSPEC = 11017

const WSA_QOS_EOBJLENGTH = 11022

const WSA_QOS_EPOLICYOBJ = 11025

const WSA_QOS_EPROVSPECBUF = 11018

const WSA_QOS_EPSFILTERSPEC = 11028

const WSA_QOS_EPSFLOWSPEC = 11027

const WSA_QOS_ESDMODEOBJ = 11029

const WSA_QOS_ESERVICETYPE = 11016

const WSA_QOS_ESHAPERATEOBJ = 11030

const WSA_QOS_EUNKNOWNPSOBJ = 11024

const WSA_QOS_EUNKOWNPSOBJ = 11024

const WSA_QOS_GENERIC_ERROR = 11015

const WSA_QOS_NO_RECEIVERS = 11008

const WSA_QOS_NO_SENDERS = 11007

const WSA_QOS_POLICY_FAILURE = 11011

const WSA_QOS_RECEIVERS = 11005

const WSA_QOS_REQUEST_CONFIRMED = 11009

const WSA_QOS_RESERVED_PETYPE = 11031

const WSA_QOS_SENDERS = 11006

const WSA_QOS_TRAFFIC_CTRL_ERROR = 11014

const WSF_VISIBLE = 1

const WS_ACTIVECAPTION = 1

const WS_BORDER = 8388608

const WS_CAPTION = 12582912

const WS_CHILD = 1073741824

const WS_CHILDWINDOW = 1073741824

const WS_CLIPCHILDREN = 33554432

const WS_CLIPSIBLINGS = 67108864

const WS_DISABLED = 134217728

const WS_DLGFRAME = 4194304

const WS_EX_ACCEPTFILES = 16

const WS_EX_APPWINDOW = 262144

const WS_EX_CLIENTEDGE = 512

const WS_EX_COMPOSITED = 33554432

const WS_EX_CONTEXTHELP = 1024

const WS_EX_CONTROLPARENT = 65536

const WS_EX_DLGMODALFRAME = 1

const WS_EX_LAYERED = 524288

const WS_EX_LAYOUTRTL = 4194304

const WS_EX_LEFT = 0

const WS_EX_LEFTSCROLLBAR = 16384

const WS_EX_LTRREADING = 0

const WS_EX_MDICHILD = 64

const WS_EX_NOACTIVATE = 134217728

const WS_EX_NOINHERITLAYOUT = 1048576

const WS_EX_NOPARENTNOTIFY = 4

const WS_EX_NOREDIRECTIONBITMAP = 2097152

const WS_EX_OVERLAPPEDWINDOW = 768

const WS_EX_PALETTEWINDOW = 392

const WS_EX_RIGHT = 4096

const WS_EX_RIGHTSCROLLBAR = 0

const WS_EX_RTLREADING = 8192

const WS_EX_STATICEDGE = 131072

const WS_EX_TOOLWINDOW = 128

const WS_EX_TOPMOST = 8

const WS_EX_TRANSPARENT = 32

const WS_EX_WINDOWEDGE = 256

const WS_GROUP = 131072

const WS_HSCROLL = 1048576

const WS_ICONIC = 536870912

const WS_MAXIMIZE = 16777216

const WS_MAXIMIZEBOX = 65536

const WS_MINIMIZE = 536870912

const WS_MINIMIZEBOX = 131072

const WS_OVERLAPPED = 0

const WS_OVERLAPPEDWINDOW = 13565952

const WS_POPUP = 2147483648

const WS_POPUPWINDOW = 2156396544

const WS_SIZEBOX = 262144

const WS_SYSMENU = 524288

const WS_TABSTOP = 65536

const WS_THICKFRAME = 262144

const WS_TILED = 0

const WS_TILEDWINDOW = 13565952

const WS_VISIBLE = 268435456

const WS_VSCROLL = 2097152

type WTSSESSION_NOTIFICATION = TWTSSESSION_NOTIFICATION

const WTS_CONSOLE_CONNECT = 1

const WTS_CONSOLE_DISCONNECT = 2

const WTS_REMOTE_CONNECT = 3

const WTS_REMOTE_DISCONNECT = 4

const WTS_SESSION_CREATE = 10

const WTS_SESSION_LOCK = 7

const WTS_SESSION_LOGOFF = 6

const WTS_SESSION_LOGON = 5

const WTS_SESSION_REMOTE_CONTROL = 9

const WTS_SESSION_TERMINATE = 11

const WTS_SESSION_UNLOCK = 8

const WT_EXECUTEDEFAULT = 0

const WT_EXECUTEDELETEWAIT = 8

const WT_EXECUTEINIOTHREAD = 1

const WT_EXECUTEINLONGTHREAD = 16

const WT_EXECUTEINPERSISTENTIOTHREAD = 64

const WT_EXECUTEINPERSISTENTTHREAD = 128

const WT_EXECUTEINTIMERTHREAD = 32

const WT_EXECUTEINUITHREAD = 2

const WT_EXECUTEINWAITTHREAD = 4

const WT_EXECUTELONGFUNCTION = 16

const WT_EXECUTEONLYONCE = 8

const WT_TRANSFER_IMPERSONATION = 256

const WVR_ALIGNBOTTOM = 64

const WVR_ALIGNLEFT = 32

const WVR_ALIGNRIGHT = 128

const WVR_ALIGNTOP = 16

const WVR_HREDRAW = 256

const WVR_REDRAW = 768

const WVR_VALIDRECTS = 1024

const WVR_VREDRAW = 512

const WaitNamedPipe = 0

const WinHelp = 0

const WriteConsole = 0

const WriteConsoleInput = 0

const WriteConsoleOutput = 0

const WriteConsoleOutputCharacter = 0

const WriteOnceDiskClassGuid = 0

const WritePrivateProfileSection = 0

const WritePrivateProfileString = 0

const WritePrivateProfileStruct = 0

const WriteProfileSection = 0

const WriteProfileString = 0

const X3_BTYPE_QP_INST_VAL_POS_X = 0

const X3_BTYPE_QP_INST_WORD_POS_X = 23

const X3_BTYPE_QP_INST_WORD_X = 2

const X3_BTYPE_QP_SIZE_X = 9

const X3_D_WH_INST_WORD_POS_X = 24

const X3_D_WH_INST_WORD_X = 3

const X3_D_WH_SIGN_VAL_POS_X = 0

const X3_D_WH_SIZE_X = 3

const X3_EMPTY_INST_VAL_POS_X = 0

const X3_EMPTY_INST_WORD_POS_X = 14

const X3_EMPTY_INST_WORD_X = 1

const X3_EMPTY_SIZE_X = 2

const X3_IMM20_INST_WORD_POS_X = 4

const X3_IMM20_INST_WORD_X = 3

const X3_IMM20_SIGN_VAL_POS_X = 0

const X3_IMM20_SIZE_X = 20

const X3_IMM39_1_INST_WORD_POS_X = 0

const X3_IMM39_1_INST_WORD_X = 2

const X3_IMM39_1_SIGN_VAL_POS_X = 36

const X3_IMM39_1_SIZE_X = 23

const X3_IMM39_2_INST_WORD_POS_X = 16

const X3_IMM39_2_INST_WORD_X = 1

const X3_IMM39_2_SIGN_VAL_POS_X = 20

const X3_IMM39_2_SIZE_X = 16

const X3_I_INST_WORD_POS_X = 27

const X3_I_INST_WORD_X = 3

const X3_I_SIGN_VAL_POS_X = 59

const X3_I_SIZE_X = 1

const X3_OPCODE_INST_WORD_POS_X = 28

const X3_OPCODE_INST_WORD_X = 3

const X3_OPCODE_SIGN_VAL_POS_X = 0

const X3_OPCODE_SIZE_X = 4

const X3_P_INST_WORD_POS_X = 0

const X3_P_INST_WORD_X = 3

const X3_P_SIGN_VAL_POS_X = 0

const X3_P_SIZE_X = 4

const X3_TMPLT_INST_WORD_POS_X = 0

const X3_TMPLT_INST_WORD_X = 0

const X3_TMPLT_SIGN_VAL_POS_X = 0

const X3_TMPLT_SIZE_X = 4

const X509_ANY_STRING = "X509_NAME_VALUE"

const X509_ASN_ENCODING = 1

const X509_CRL_REASON_CODE = "X509_ENUMERATED"

const X509_DH_PUBLICKEY = "X509_MULTI_BYTE_UINT"

const X509_DSS_PUBLICKEY = "X509_MULTI_BYTE_UINT"

const X509_NDR_ENCODING = 2

const X509_SUBJECT_INFO_ACCESS = "X509_AUTHORITY_INFO_ACCESS"

const X509_UNICODE_ANY_STRING = "X509_UNICODE_NAME_VALUE"

const XACT_E_FIRST = 2147799040

const XACT_E_LAST = 2147799081

const XACT_S_FIRST = 315392

const XACT_S_LAST = 315408

const XBUTTON1 = 1

const XBUTTON2 = 2

const XCLASS_BOOL = 4096

const XCLASS_DATA = 8192

const XCLASS_FLAGS = 16384

const XCLASS_MASK = 64512

const XCLASS_NOTIFICATION = 32768

type XFORM = TXFORM

type XLAT_SIDE = TXLAT_SIDE

type XMIT_HELPER_ROUTINE = TXMIT_HELPER_ROUTINE

type XMIT_ROUTINE_QUINTUPLE = TXMIT_ROUTINE_QUINTUPLE

type XMLDOMDocumentEvents = TXMLDOMDocumentEvents

type XMLDOMDocumentEventsVtbl = TXMLDOMDocumentEventsVtbl

type XMLELEM_TYPE = TXMLELEM_TYPE

type XML_ERROR = TXML_ERROR

type XSAVE_AREA = TXSAVE_AREA

type XSAVE_AREA_HEADER = TXSAVE_AREA_HEADER

type XSAVE_FORMAT = TXSAVE_FORMAT

const XSTATE_AMX_TILE_CONFIG = 17

const XSTATE_AMX_TILE_DATA = 18

const XSTATE_AVX = 2

const XSTATE_AVX512_KMASK = 5

const XSTATE_AVX512_ZMM = 7

const XSTATE_AVX512_ZMM_H = 6

const XSTATE_CET_S = 12

const XSTATE_CET_U = 11

type XSTATE_CONFIGURATION = TXSTATE_CONFIGURATION

type XSTATE_CONTEXT = TXSTATE_CONTEXT

type XSTATE_FEATURE = TXSTATE_FEATURE

const XSTATE_GSSE = 2

const XSTATE_IPT = 8

const XSTATE_LEGACY_FLOATING_POINT = 0

const XSTATE_LEGACY_SSE = 1

const XSTATE_LWP = 62

const XSTATE_MASK_AMX_TILE_CONFIG = 131072

const XSTATE_MASK_AMX_TILE_DATA = 262144

const XSTATE_MASK_AVX = 4

const XSTATE_MASK_AVX512 = 224

const XSTATE_MASK_CET_S = 4096

const XSTATE_MASK_CET_U = 2048

const XSTATE_MASK_GSSE = 4

const XSTATE_MASK_IPT = 256

const XSTATE_MASK_LARGE_FEATURES = 262144

const XSTATE_MASK_LEGACY = 3

const XSTATE_MASK_LEGACY_FLOATING_POINT = 1

const XSTATE_MASK_LEGACY_SSE = 2

const XSTATE_MASK_LWP = 4611686018427387904

const XSTATE_MASK_MPX = 24

const XSTATE_MASK_PASID = 1024

const XSTATE_MASK_PERSISTENT = 4611686018427387920

const XSTATE_MASK_USER_VISIBLE_SUPERVISOR = 2048

const XSTATE_MPX_BNDCSR = 4

const XSTATE_MPX_BNDREGS = 3

const XSTATE_PASID = 10

const XST_ADVACKRCVD = 13

const XST_ADVDATAACKRCVD = 16

const XST_ADVDATASENT = 15

const XST_ADVSENT = 11

const XST_CONNECTED = 2

const XST_DATARCVD = 6

const XST_EXECACKRCVD = 10

const XST_EXECSENT = 9

const XST_INCOMPLETE = 1

const XST_INIT1 = 3

const XST_INIT2 = 4

const XST_NULL = 0

const XST_POKEACKRCVD = 8

const XST_POKESENT = 7

const XST_REQSENT = 5

const XST_UNADVACKRCVD = 14

const XST_UNADVSENT = 12

const XTYPF_ACKREQ = 8

const XTYPF_NOBLOCK = 2

const XTYPF_NODATA = 4

const XTYP_ADVDATA = 16400

const XTYP_ADVREQ = 8226

const XTYP_ADVSTART = 4144

const XTYP_ADVSTOP = 32832

const XTYP_CONNECT = 4194

const XTYP_CONNECT_CONFIRM = 32882

const XTYP_DISCONNECT = 32962

const XTYP_ERROR = 32770

const XTYP_EXECUTE = 16464

const XTYP_MASK = 240

const XTYP_MONITOR = 33010

const XTYP_POKE = 16528

const XTYP_REGISTER = 32930

const XTYP_REQUEST = 8368

const XTYP_SHIFT = 4

const XTYP_UNREGISTER = 32978

const XTYP_WILDCONNECT = 8418

const XTYP_XACT_COMPLETE = 32896

const XcvData = 0

// C documentation
//
//	/*
//	** Allocate or return the aggregate context for a user function.  A new
//	** context is allocated on the first call.  Subsequent calls return the
//	** same context that was returned on prior calls.
//	*/
func Xsqlite3_aggregate_context(tls *libc.TLS, p uintptr, nByte int32) (r uintptr) {
	if int32((*TMem)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(p)).FpMem)).Fflags)&int32(MEM_Agg) == 0 {
		return _createAggContext(tls, p, nByte)
	} else {
		return (*TMem)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(p)).FpMem)).Fz
	}
	return r
}

// C documentation
//
//	/*
//	** Return the total number of pages in the source database as of the most
//	** recent call to sqlite3_backup_step().
//	*/
func Xsqlite3_backup_pagecount(tls *libc.TLS, p uintptr) (r int32) {
	return int32((*Tsqlite3_backup)(unsafe.Pointer(p)).FnPagecount)
}

// C documentation
//
//	/*
//	** Return the number of pages still to be backed up as of the most recent
//	** call to sqlite3_backup_step().
//	*/
func Xsqlite3_backup_remaining(tls *libc.TLS, p uintptr) (r int32) {
	return int32((*Tsqlite3_backup)(unsafe.Pointer(p)).FnRemaining)
}

func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) {
	return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_xDel, uint8(0))
}

func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) {
	var p uintptr
	var rc int32
	_, _ = p, rc
	p = pStmt
	rc = _vdbeUnbind(tls, p, uint32(i-libc.Int32FromInt32(1)))
	if rc == SQLITE_OK {
		/* tag-20240917-01 */
		Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
	}
	return rc
}

func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) {
	return _bindText(tls, pStmt, i, zData, int64(uint64(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE))
}

func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) {
	if int32(enc) != int32(SQLITE_UTF8) && int32(enc) != int32(SQLITE_UTF8_ZT) {
		if int32(enc) == int32(SQLITE_UTF16) {
			enc = uint8(SQLITE_UTF16LE)
		}
		nData = nData & ^libc.Uint64FromInt32(1)
	}
	return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_xDel, enc)
}

func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) {
	var rc int32
	var v1 float64
	_, _ = rc, v1
	switch Xsqlite3_value_type(tls, pValue) {
	case int32(SQLITE_INTEGER):
		rc = Xsqlite3_bind_int64(tls, pStmt, i, *(*Ti64)(unsafe.Pointer(pValue)))
	case int32(SQLITE_FLOAT):
		if int32((*Tsqlite3_value)(unsafe.Pointer(pValue)).Fflags)&int32(MEM_Real) != 0 {
			v1 = *(*float64)(unsafe.Pointer(pValue))
		} else {
			v1 = float64(*(*Ti64)(unsafe.Pointer(pValue)))
		}
		rc = Xsqlite3_bind_double(tls, pStmt, i, v1)
	case int32(SQLITE_BLOB):
		if int32((*Tsqlite3_value)(unsafe.Pointer(pValue)).Fflags)&int32(MEM_Zero) != 0 {
			rc = Xsqlite3_bind_zeroblob(tls, pStmt, i, *(*int32)(unsafe.Pointer(&(*Tsqlite3_value)(unsafe.Pointer(pValue)).Fu)))
		} else {
			rc = Xsqlite3_bind_blob(tls, pStmt, i, (*Tsqlite3_value)(unsafe.Pointer(pValue)).Fz, (*Tsqlite3_value)(unsafe.Pointer(pValue)).Fn, uintptr(-libc.Int32FromInt32(1)))
		}
	case int32(SQLITE_TEXT):
		rc = _bindText(tls, pStmt, i, (*Tsqlite3_value)(unsafe.Pointer(pValue)).Fz, int64((*Tsqlite3_value)(unsafe.Pointer(pValue)).Fn), uintptr(-libc.Int32FromInt32(1)), (*Tsqlite3_value)(unsafe.Pointer(pValue)).Fenc)
	default:
		rc = Xsqlite3_bind_null(tls, pStmt, i)
		break
	}
	return rc
}

// C documentation
//
//	/*
//	** Move an existing blob handle to point to a different row of the same
//	** database table.
//	**
//	** If an error occurs, or if the specified row does not exist or does not
//	** contain a blob or text value, then an error code is returned and the
//	** database handle error code and message set. If this happens, then all
//	** subsequent calls to sqlite3_blob_xxx() functions (except blob_close())
//	** immediately return SQLITE_ABORT.
//	*/
func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var db, p, v1 uintptr
	var rc int32
	var _ /* zErr at bp+0 */ uintptr
	_, _, _, _ = db, p, rc, v1
	p = pBlob
	if p == uintptr(0) {
		return _sqlite3MisuseError(tls, int32(106500))
	}
	db = (*TIncrblob)(unsafe.Pointer(p)).Fdb
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	if (*TIncrblob)(unsafe.Pointer(p)).FpStmt == uintptr(0) {
		/* If there is no statement handle, then the blob-handle has
		 ** already been invalidated. Return SQLITE_ABORT in this case.
		 */
		rc = int32(SQLITE_ABORT)
	} else {
		(*TVdbe)(unsafe.Pointer((*TIncrblob)(unsafe.Pointer(p)).FpStmt)).Frc = SQLITE_OK
		rc = _blobSeekToRow(tls, p, iRow, bp)
		if rc != SQLITE_OK {
			if **(**uintptr)(__ccgo_up(bp)) != 0 {
				v1 = __ccgo_ts + 4729
			} else {
				v1 = libc.UintptrFromInt32(0)
			}
			_sqlite3ErrorWithMsg(tls, db, rc, v1, libc.VaList(bp+16, **(**uintptr)(__ccgo_up(bp))))
			_sqlite3DbFree(tls, db, **(**uintptr)(__ccgo_up(bp)))
		}
	}
	rc = _sqlite3ApiExit(tls, db, rc)
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return rc
}

/************** End of vdbeblob.c ********************************************/
/************** Begin file vdbesort.c ****************************************/
/*
** 2011-07-09
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains code for the VdbeSorter object, used in concert with
** a VdbeCursor to sort large numbers of keys for CREATE INDEX statements
** or by SELECT statements with ORDER BY clauses that cannot be satisfied
** using indexes and without LIMIT clauses.
**
** The VdbeSorter object implements a multi-threaded external merge sort
** algorithm that is efficient even if the number of elements being sorted
** exceeds the available memory.
**
** Here is the (internal, non-API) interface between this module and the
** rest of the SQLite system:
**
**    sqlite3VdbeSorterInit()       Create a new VdbeSorter object.
**
**    sqlite3VdbeSorterWrite()      Add a single new row to the VdbeSorter
**                                  object.  The row is a binary blob in the
**                                  OP_MakeRecord format that contains both
**                                  the ORDER BY key columns and result columns
**                                  in the case of a SELECT w/ ORDER BY, or
**                                  the complete record for an index entry
**                                  in the case of a CREATE INDEX.
**
**    sqlite3VdbeSorterRewind()     Sort all content previously added.
**                                  Position the read cursor on the
**                                  first sorted element.
**
**    sqlite3VdbeSorterNext()       Advance the read cursor to the next sorted
**                                  element.
**
**    sqlite3VdbeSorterRowkey()     Return the complete binary blob for the
**                                  row currently under the read cursor.
**
**    sqlite3VdbeSorterCompare()    Compare the binary blob for the row
**                                  currently under the read cursor against
**                                  another binary blob X and report if
**                                  X is strictly less than the read cursor.
**                                  Used to enforce uniqueness in a
**                                  CREATE UNIQUE INDEX statement.
**
**    sqlite3VdbeSorterClose()      Close the VdbeSorter object and reclaim
**                                  all resources.
**
**    sqlite3VdbeSorterReset()      Refurbish the VdbeSorter for reuse.  This
**                                  is like Close() followed by Init() only
**                                  much faster.
**
** The interfaces above must be called in a particular order.  Write() can
** only occur in between Init()/Reset() and Rewind().  Next(), Rowkey(), and
** Compare() can only occur in between Rewind() and Close()/Reset(). i.e.
**
**   Init()
**   for each record: Write()
**   Rewind()
**     Rowkey()/Compare()
**   Next()
**   Close()
**
** Algorithm:
**
** Records passed to the sorter via calls to Write() are initially held
** unsorted in main memory. Assuming the amount of memory used never exceeds
** a threshold, when Rewind() is called the set of records is sorted using
** an in-memory merge sort. In this case, no temporary files are required
** and subsequent calls to Rowkey(), Next() and Compare() read records
** directly from main memory.
**
** If the amount of space used to store records in main memory exceeds the
** threshold, then the set of records currently in memory are sorted and
** written to a temporary file in "Packed Memory Array" (PMA) format.
** A PMA created at this point is known as a "level-0 PMA". Higher levels
** of PMAs may be created by merging existing PMAs together - for example
** merging two or more level-0 PMAs together creates a level-1 PMA.
**
** The threshold for the amount of main memory to use before flushing
** records to a PMA is roughly the same as the limit configured for the
** page-cache of the main database. Specifically, the threshold is set to
** the value returned by "PRAGMA main.page_size" multiplied by
** that returned by "PRAGMA main.cache_size", in bytes.
**
** If the sorter is running in single-threaded mode, then all PMAs generated
** are appended to a single temporary file. Or, if the sorter is running in
** multi-threaded mode then up to (N+1) temporary files may be opened, where
** N is the configured number of worker threads. In this case, instead of
** sorting the records and writing the PMA to a temporary file itself, the
** calling thread usually launches a worker thread to do so. Except, if
** there are already N worker threads running, the main thread does the work
** itself.
**
** The sorter is running in multi-threaded mode if (a) the library was built
** with pre-processor symbol SQLITE_MAX_WORKER_THREADS set to a value greater
** than zero, and (b) worker threads have been enabled at runtime by calling
** "PRAGMA threads=N" with some value of N greater than 0.
**
** When Rewind() is called, any data remaining in memory is flushed to a
** final PMA. So at this point the data is stored in some number of sorted
** PMAs within temporary files on disk.
**
** If there are fewer than SORTER_MAX_MERGE_COUNT PMAs in total and the
** sorter is running in single-threaded mode, then these PMAs are merged
** incrementally as keys are retrieved from the sorter by the VDBE.  The
** MergeEngine object, described in further detail below, performs this
** merge.
**
** Or, if running in multi-threaded mode, then a background thread is
** launched to merge the existing PMAs. Once the background thread has
** merged T bytes of data into a single sorted PMA, the main thread
** begins reading keys from that PMA while the background thread proceeds
** with merging the next T bytes of data. And so on.
**
** Parameter T is set to half the value of the memory threshold used
** by Write() above to determine when to create a new PMA.
**
** If there are more than SORTER_MAX_MERGE_COUNT PMAs in total when
** Rewind() is called, then a hierarchy of incremental-merges is used.
** First, T bytes of data from the first SORTER_MAX_MERGE_COUNT PMAs on
** disk are merged together. Then T bytes of data from the second set, and
** so on, such that no operation ever merges more than SORTER_MAX_MERGE_COUNT
** PMAs at a time. This done is to improve locality.
**
** If running in multi-threaded mode and there are more than
** SORTER_MAX_MERGE_COUNT PMAs on disk when Rewind() is called, then more
** than one background thread may be created. Specifically, there may be
** one background thread for each temporary file on disk, and one background
** thread to merge the output of each of the others to a single PMA for
** the main thread to read from.
 */
/* #include "sqliteInt.h" */
/* #include "vdbeInt.h" */

/*
** If SQLITE_DEBUG_SORTER_THREADS is defined, this module outputs various
** messages to stderr that may be helpful in understanding the performance
** characteristics of the sorter in multi-threaded mode.
 */

/*
** Hard-coded maximum amount of data to accumulate in memory before flushing
** to a level 0 PMA. The purpose of this limit is to prevent various integer
** overflows. 512MiB.
 */

// C documentation
//
//	/*
//	** Return the number of columns in the result set for the statement pStmt.
//	*/
func Xsqlite3_column_count(tls *libc.TLS, pStmt uintptr) (r int32) {
	var pVm uintptr
	_ = pVm
	pVm = pStmt
	if pVm == uintptr(0) {
		return 0
	}
	return int32((*TVdbe)(unsafe.Pointer(pVm)).FnResColumn)
}

// C documentation
//
//	/*
//	** Return TRUE if the given SQL string ends in a semicolon.
//	**
//	** Special handling is require for CREATE TRIGGER statements.
//	** Whenever the CREATE TRIGGER keywords are seen, the statement
//	** must end with ";END;".
//	**
//	** This implementation uses a state machine with 8 states:
//	**
//	**   (0) INVALID   We have not yet seen a non-whitespace character.
//	**
//	**   (1) START     At the beginning or end of an SQL statement.  This routine
//	**                 returns 1 if it ends in the START state and 0 if it ends
//	**                 in any other state.
//	**
//	**   (2) NORMAL    We are in the middle of statement which ends with a single
//	**                 semicolon.
//	**
//	**   (3) EXPLAIN   The keyword EXPLAIN has been seen at the beginning of
//	**                 a statement.
//	**
//	**   (4) CREATE    The keyword CREATE has been seen at the beginning of a
//	**                 statement, possibly preceded by EXPLAIN and/or followed by
//	**                 TEMP or TEMPORARY
//	**
//	**   (5) TRIGGER   We are in the middle of a trigger definition that must be
//	**                 ended by a semicolon, the keyword END, and another semicolon.
//	**
//	**   (6) SEMI      We've seen the first semicolon in the ";END;" that occurs at
//	**                 the end of a trigger definition.
//	**
//	**   (7) END       We've seen the ";END" of the ";END;" that occurs at the end
//	**                 of a trigger definition.
//	**
//	** Transitions between states above are determined by tokens extracted
//	** from the input.  The following tokens are significant:
//	**
//	**   (0) tkSEMI      A semicolon.
//	**   (1) tkWS        Whitespace.
//	**   (2) tkOTHER     Any other SQL token.
//	**   (3) tkEXPLAIN   The "explain" keyword.
//	**   (4) tkCREATE    The "create" keyword.
//	**   (5) tkTEMP      The "temp" or "temporary" keyword.
//	**   (6) tkTRIGGER   The "trigger" keyword.
//	**   (7) tkEND       The "end" keyword.
//	**
//	** Whitespace never causes a state transition and is always ignored.
//	** This means that a SQL string of all whitespace is invalid.
//	**
//	** If we compile with SQLITE_OMIT_TRIGGER, all of the computation needed
//	** to recognize the end of a trigger can be omitted.  All we have to do
//	** is look for a semicolon that is not part of an string or comment.
//	*/
func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) {
	var c, nId int32
	var state, token Tu8
	_, _, _, _ = c, nId, state, token
	state = uint8(0) /* Value of the next token */
	for **(**int8)(__ccgo_up(zSql)) != 0 {
		switch int32(**(**int8)(__ccgo_up(zSql))) {
		case int32(';'): /* A semicolon */
			token = uint8(tkSEMI)
		case int32(' '):
			fallthrough
		case int32('\r'):
			fallthrough
		case int32('\t'):
			fallthrough
		case int32('\n'):
			fallthrough
		case int32('\f'): /* White space is ignored */
			token = uint8(tkWS)
		case int32('/'): /* C-style comments */
			if int32(**(**int8)(__ccgo_up(zSql + 1))) != int32('*') {
				token = uint8(tkOTHER)
				break
			}
			zSql = zSql + uintptr(2)
			for **(**int8)(__ccgo_up(zSql)) != 0 && (int32(**(**int8)(__ccgo_up(zSql))) != int32('*') || int32(**(**int8)(__ccgo_up(zSql + 1))) != int32('/')) {
				zSql = zSql + 1
			}
			if int32(**(**int8)(__ccgo_up(zSql))) == 0 {
				return 0
			}
			zSql = zSql + 1
			token = uint8(tkWS)
		case int32('-'): /* SQL-style comments from "--" to end of line */
			if int32(**(**int8)(__ccgo_up(zSql + 1))) != int32('-') {
				token = uint8(tkOTHER)
				break
			}
			for **(**int8)(__ccgo_up(zSql)) != 0 && int32(**(**int8)(__ccgo_up(zSql))) != int32('\n') {
				zSql = zSql + 1
			}
			if int32(**(**int8)(__ccgo_up(zSql))) == 0 {
				return libc.BoolInt32(int32(state) == int32(1))
			}
			token = uint8(tkWS)
		case int32('['): /* Microsoft-style identifiers in [...] */
			zSql = zSql + 1
			for **(**int8)(__ccgo_up(zSql)) != 0 && int32(**(**int8)(__ccgo_up(zSql))) != int32(']') {
				zSql = zSql + 1
			}
			if int32(**(**int8)(__ccgo_up(zSql))) == 0 {
				return 0
			}
			token = uint8(tkOTHER)
		case int32('`'): /* Grave-accent quoted symbols used by MySQL */
			fallthrough
		case int32('"'): /* single- and double-quoted strings */
			fallthrough
		case int32('\''):
			c = int32(**(**int8)(__ccgo_up(zSql)))
			zSql = zSql + 1
			for **(**int8)(__ccgo_up(zSql)) != 0 && int32(**(**int8)(__ccgo_up(zSql))) != c {
				zSql = zSql + 1
			}
			if int32(**(**int8)(__ccgo_up(zSql))) == 0 {
				return 0
			}
			token = uint8(tkOTHER)
		default:
			if int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zSql)))])&int32(0x46) != 0 {
				nId = int32(1)
				for {
					if !(int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zSql + uintptr(nId))))])&int32(0x46) != 0) {
						break
					}
					goto _1
				_1:
					;
					nId = nId + 1
				}
				switch int32(**(**int8)(__ccgo_up(zSql))) {
				case int32('c'):
					fallthrough
				case int32('C'):
					if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+26487, int32(6)) == 0 {
						token = uint8(tkCREATE)
					} else {
						token = uint8(tkOTHER)
					}
				case int32('t'):
					fallthrough
				case int32('T'):
					if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23116, int32(7)) == 0 {
						token = uint8(tkTRIGGER)
					} else {
						if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+26494, int32(4)) == 0 {
							token = uint8(tkTEMP)
						} else {
							if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+26499, int32(9)) == 0 {
								token = uint8(tkTEMP)
							} else {
								token = uint8(tkOTHER)
							}
						}
					}
				case int32('e'):
					fallthrough
				case int32('E'):
					if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+26509, int32(3)) == 0 {
						token = uint8(tkEND)
					} else {
						if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+26513, int32(7)) == 0 {
							token = uint8(tkEXPLAIN)
						} else {
							token = uint8(tkOTHER)
						}
					}
				default:
					token = uint8(tkOTHER)
					break
				}
				zSql = zSql + uintptr(nId-int32(1))
			} else {
				/* Operators and special symbols */
				token = uint8(tkOTHER)
			}
			break
		}
		state = **(**Tu8)(__ccgo_up(uintptr(unsafe.Pointer(&_trans)) + uintptr(state)*8 + uintptr(token)))
		zSql = zSql + 1
	}
	return libc.BoolInt32(int32(state) == int32(1))
}

// C documentation
//
//	/*
//	** Register a new collation sequence with the database handle db.
//	*/
func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) {
	var rc int32
	var zName8 uintptr
	_, _ = rc, zName8
	rc = SQLITE_OK
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	zName8 = _sqlite3Utf16to8(tls, db, zName, -int32(1), uint8(SQLITE_UTF16LE))
	if zName8 != 0 {
		rc = _createCollation(tls, db, zName8, uint8(enc), pCtx, __ccgo_fp_xCompare, uintptr(0))
		_sqlite3DbFree(tls, db, zName8)
	}
	rc = _sqlite3ApiExit(tls, db, rc)
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return rc
}

// C documentation
//
//	/*
//	** Register a new collation sequence with the database handle db.
//	*/
func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) {
	var rc int32
	_ = rc
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	rc = _createCollation(tls, db, zName, uint8(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel)
	rc = _sqlite3ApiExit(tls, db, rc)
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return rc
}

// C documentation
//
//	/*
//	** Return the number of values available from the current row of the
//	** currently executing statement pStmt.
//	*/
func Xsqlite3_data_count(tls *libc.TLS, pStmt uintptr) (r int32) {
	var pVm uintptr
	_ = pVm
	pVm = pStmt
	if pVm == uintptr(0) || (*TVdbe)(unsafe.Pointer(pVm)).FpResultRow == uintptr(0) {
		return 0
	}
	return int32((*TVdbe)(unsafe.Pointer(pVm)).FnResColumn)
}

// C documentation
//
//	/*
//	** Enable or disable the extended result codes.
//	*/
func Xsqlite3_extended_result_codes(tls *libc.TLS, db uintptr, onoff int32) (r int32) {
	var v1 uint32
	_ = v1
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	if onoff != 0 {
		v1 = uint32(0xffffffff)
	} else {
		v1 = uint32(0xff)
	}
	(*Tsqlite3)(unsafe.Pointer(db)).FerrMask = int32(v1)
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Test to see whether or not the database connection is in autocommit
//	** mode.  Return TRUE if it is and FALSE if not.  Autocommit mode is on
//	** by default.  Autocommit is disabled by a BEGIN statement and reenabled
//	** by the next COMMIT or ROLLBACK.
//	*/
func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) {
	var iRet int32
	_ = iRet
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	iRet = int32((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit)
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return iRet
}

func Xsqlite3_keyword_name(tls *libc.TLS, i int32, pzName uintptr, pnName uintptr) (r int32) {
	if i < 0 || i >= int32(SQLITE_N_KEYWORD) {
		return int32(SQLITE_ERROR)
	}
	i = i + 1
	**(**uintptr)(__ccgo_up(pzName)) = uintptr(unsafe.Pointer(&_zKWText)) + uintptr(_aKWOffset[i])
	**(**int32)(__ccgo_up(pnName)) = int32(_aKWLen[i])
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** This version of the memory allocation is for use by the application.
//	** First make sure the memory subsystem is initialized, then do the
//	** allocation.
//	*/
func Xsqlite3_malloc(tls *libc.TLS, n int32) (r uintptr) {
	var v1 uintptr
	_ = v1
	if Xsqlite3_initialize(tls) != 0 {
		return uintptr(0)
	}
	if n <= 0 {
		v1 = uintptr(0)
	} else {
		v1 = _sqlite3Malloc(tls, uint64(n))
	}
	return v1
}

func Xsqlite3_msize(tls *libc.TLS, p uintptr) (r Tsqlite3_uint64) {
	var v1 int32
	_ = v1
	if p != 0 {
		v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxSize})))(tls, p)
	} else {
		v1 = 0
	}
	return uint64(v1)
}

// C documentation
//
//	/*
//	** Open a new database handle.
//	*/
func Xsqlite3_open(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) {
	return _openDatabase(tls, zFilename, ppDb, uint32(libc.Int32FromInt32(SQLITE_OPEN_READWRITE)|libc.Int32FromInt32(SQLITE_OPEN_CREATE)), uintptr(0))
}

// C documentation
//
//	/*
//	** Open a new database handle.
//	*/
func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) {
	var pVal, zFilename8 uintptr
	var rc int32
	var v1 Tu8
	_, _, _, _ = pVal, rc, zFilename8, v1
	**(**uintptr)(__ccgo_up(ppDb)) = uintptr(0)
	rc = Xsqlite3_initialize(tls)
	if rc != 0 {
		return rc
	}
	if zFilename == uintptr(0) {
		zFilename = __ccgo_ts + 27505
	}
	pVal = _sqlite3ValueNew(tls, uintptr(0))
	_sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0))
	zFilename8 = _sqlite3ValueText(tls, pVal, uint8(SQLITE_UTF8))
	if zFilename8 != 0 {
		rc = _openDatabase(tls, zFilename8, ppDb, uint32(libc.Int32FromInt32(SQLITE_OPEN_READWRITE)|libc.Int32FromInt32(SQLITE_OPEN_CREATE)), uintptr(0))
		if rc == SQLITE_OK && !(int32((*TSchema)(unsafe.Pointer((**(**TDb)(__ccgo_up((*Tsqlite3)(unsafe.Pointer(**(**uintptr)(__ccgo_up(ppDb)))).FaDb))).FpSchema)).FschemaFlags)&libc.Int32FromInt32(DB_SchemaLoaded) == libc.Int32FromInt32(DB_SchemaLoaded)) {
			v1 = libc.Uint8FromInt32(SQLITE_UTF16LE)
			(*Tsqlite3)(unsafe.Pointer(**(**uintptr)(__ccgo_up(ppDb)))).Fenc = v1
			(*TSchema)(unsafe.Pointer((**(**TDb)(__ccgo_up((*Tsqlite3)(unsafe.Pointer(**(**uintptr)(__ccgo_up(ppDb)))).FaDb))).FpSchema)).Fenc = v1
		}
	} else {
		rc = int32(SQLITE_NOMEM)
	}
	_sqlite3ValueFree(tls, pVal)
	return rc & int32(0xff)
}

func Xsqlite3_open_v2(tls *libc.TLS, filename uintptr, ppDb uintptr, flags int32, zVfs uintptr) (r int32) {
	return _openDatabase(tls, filename, ppDb, uint32(flags), zVfs)
}

func Xsqlite3_os_end(tls *libc.TLS) (r int32) {
	_winBigLock = uintptr(0)
	return SQLITE_OK
}

/************** End of os_win.c **********************************************/
/************** Begin file memdb.c *******************************************/
/*
** 2016-09-07
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
******************************************************************************
**
** This file implements an in-memory VFS. A database is held as a contiguous
** block of memory.
**
** This file also implements interface sqlite3_serialize() and
** sqlite3_deserialize().
 */
/* #include "sqliteInt.h" */

// C documentation
//
//	/*
//	** Declare that a function has been overloaded by a virtual table.
//	**
//	** If the function already exists as a regular global function, then
//	** this routine is a no-op.  If the function does not exist, then create
//	** a new one that always throws a run-time error.
//	**
//	** When virtual tables intend to provide an overloaded function, they
//	** should call this routine to make sure the global function exists.
//	** A global function must exist in order for name resolution to work
//	** properly.
//	*/
func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg int32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var zCopy uintptr
	_, _ = rc, zCopy
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	rc = libc.BoolInt32(_sqlite3FindFunction(tls, db, zName, nArg, uint8(SQLITE_UTF8), uint8(0)) != uintptr(0))
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	if rc != 0 {
		return SQLITE_OK
	}
	zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+4729, libc.VaList(bp+8, zName))
	if zCopy == uintptr(0) {
		return int32(SQLITE_NOMEM)
	}
	return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free))
}

// C documentation
//
//	/*
//	** This function is called from within a pre-update callback to retrieve
//	** the number of columns in the row being updated, deleted or inserted.
//	*/
func Xsqlite3_preupdate_count(tls *libc.TLS, db uintptr) (r int32) {
	var p uintptr
	var v1 int32
	_, _ = p, v1
	p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate
	if p != 0 {
		v1 = int32((*TKeyInfo)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpKeyinfo)).FnKeyField)
	} else {
		v1 = 0
	}
	return v1
}

// C documentation
//
//	/*
//	** This routine sets the progress callback for an Sqlite database to the
//	** given callback function with the given argument. The progress callback will
//	** be invoked every nOps opcodes.
//	*/
func Xsqlite3_progress_handler(tls *libc.TLS, db uintptr, nOps int32, __ccgo_fp_xProgress uintptr, pArg uintptr) {
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	if nOps > 0 {
		(*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress
		(*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(nOps)
		(*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg
	} else {
		(*Tsqlite3)(unsafe.Pointer(db)).FxProgress = uintptr(0)
		(*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(0)
		(*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = uintptr(0)
	}
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
}

// C documentation
//
//	/*
//	** The public interface to sqlite3Realloc.  Make sure that the memory
//	** subsystem is initialized prior to invoking sqliteRealloc.
//	*/
func Xsqlite3_realloc(tls *libc.TLS, pOld uintptr, n int32) (r uintptr) {
	if Xsqlite3_initialize(tls) != 0 {
		return uintptr(0)
	}
	if n < 0 {
		n = 0
	} /* IMP: R-26507-47431 */
	return _sqlite3Realloc(tls, pOld, uint64(n))
}

func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) {
	if n > uint64(0x7fffffff) {
		_invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx)
	} else {
		_setResultStrOrError(tls, pCtx, z, int32(n), uint8(0), __ccgo_fp_xDel)
	}
}

func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) {
	var v1 int32
	_ = v1
	if errCode != 0 {
		v1 = errCode
	} else {
		v1 = -int32(1)
	}
	(*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = v1
	if int32((*TMem)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut)).Fflags)&int32(MEM_Null) != 0 {
		_setResultStrOrError(tls, pCtx, _sqlite3ErrStr(tls, errCode), -int32(1), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0))
	}
}

// C documentation
//
//	/* Force an SQLITE_TOOBIG error. */
func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) {
	(*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG)
	_sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+6807, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0))
}

func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) {
	_setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel)
}

func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) {
	_setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel)
}

func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) {
	_setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel)
}

func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) {
	if int32(enc) != int32(SQLITE_UTF8) && int32(enc) != int32(SQLITE_UTF8_ZT) {
		if int32(enc) == int32(SQLITE_UTF16) {
			enc = uint8(SQLITE_UTF16LE)
		}
		n = n & ^libc.Uint64FromInt32(1)
	}
	if n > uint64(0x7fffffff) {
		_invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx)
	} else {
		_setResultStrOrError(tls, pCtx, z, int32(n), enc, __ccgo_fp_xDel)
		_sqlite3VdbeMemZeroTerminateIfAble(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut)
	}
}

func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) {
	var pOut uintptr
	_ = pOut
	pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut
	_sqlite3VdbeMemCopy(tls, pOut, pValue)
	_sqlite3VdbeChangeEncoding(tls, pOut, int32((*Tsqlite3_context)(unsafe.Pointer(pCtx)).Fenc))
	if _sqlite3VdbeMemTooBig(tls, pOut) != 0 {
		Xsqlite3_result_error_toobig(tls, pCtx)
	}
}

func Xsqlite3_result_zeroblob(tls *libc.TLS, pCtx uintptr, n int32) {
	var v1 int32
	_ = v1
	if n > 0 {
		v1 = n
	} else {
		v1 = 0
	}
	Xsqlite3_result_zeroblob64(tls, pCtx, uint64(v1))
}

// C documentation
//
//	/*
//	** Set the error code and error message associated with the database handle.
//	**
//	** This routine is intended to be called by outside extensions (ex: the
//	** Session extension). Internal logic should invoke sqlite3Error() or
//	** sqlite3ErrorWithMsg() directly.
//	*/
func Xsqlite3_set_errmsg(tls *libc.TLS, db uintptr, errcode int32, zMsg uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	_ = rc
	rc = SQLITE_OK
	if !(_sqlite3SafetyCheckOk(tls, db) != 0) {
		return _sqlite3MisuseError(tls, int32(190121))
	}
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	if zMsg != 0 {
		_sqlite3ErrorWithMsg(tls, db, errcode, __ccgo_ts+4729, libc.VaList(bp+8, zMsg))
	} else {
		_sqlite3Error(tls, db, errcode)
	}
	rc = _sqlite3ApiExit(tls, db, rc)
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return rc
}

// C documentation
//
//	/************** End of stmt.c ************************************************/
//	/* Return the source-id for this library */
func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) {
	return __ccgo_ts + 43776
}

// C documentation
//
//	/*
//	** Return true if the prepared statement is in need of being reset.
//	*/
func Xsqlite3_stmt_busy(tls *libc.TLS, pStmt uintptr) (r int32) {
	var v uintptr
	_ = v
	v = pStmt
	return libc.BoolInt32(v != uintptr(0) && int32((*TVdbe)(unsafe.Pointer(v)).FeVdbeState) == int32(VDBE_RUN_STATE))
}

// C documentation
//
//	/* Return any error code associated with p */
func Xsqlite3_str_errcode(tls *libc.TLS, p uintptr) (r int32) {
	var v1 int32
	_ = v1
	if p != 0 {
		v1 = int32((*Tsqlite3_str)(unsafe.Pointer(p)).FaccError)
	} else {
		v1 = int32(SQLITE_NOMEM)
	}
	return v1
}

// C documentation
//
//	/* Return the current length of p in bytes */
func Xsqlite3_str_length(tls *libc.TLS, p uintptr) (r int32) {
	var v1 uint32
	_ = v1
	if p != 0 {
		v1 = (*Tsqlite3_str)(unsafe.Pointer(p)).FnChar
	} else {
		v1 = uint32(0)
	}
	return int32(v1)
}

// C documentation
//
//	/* Truncate the text of the string to be no more than N bytes. */
func Xsqlite3_str_truncate(tls *libc.TLS, p uintptr, N int32) {
	if p != uintptr(0) && N >= 0 && uint32(N) < (*Tsqlite3_str)(unsafe.Pointer(p)).FnChar {
		(*Tsqlite3_str)(unsafe.Pointer(p)).FnChar = uint32(N)
		**(**int8)(__ccgo_up((*Tsqlite3_str)(unsafe.Pointer(p)).FzText + uintptr((*Tsqlite3_str)(unsafe.Pointer(p)).FnChar))) = 0
	}
}

func Xsqlite3_strnicmp(tls *libc.TLS, zLeft uintptr, zRight uintptr, N int32) (r int32) {
	var a, b uintptr
	var v1 int32
	_, _, _ = a, b, v1
	if zLeft == uintptr(0) {
		if zRight != 0 {
			v1 = -int32(1)
		} else {
			v1 = 0
		}
		return v1
	} else {
		if zRight == uintptr(0) {
			return int32(1)
		}
	}
	a = zLeft
	b = zRight
	for {
		v1 = N
		N = N - 1
		if !(v1 > 0 && int32(**(**uint8)(__ccgo_up(a))) != 0 && int32(_sqlite3UpperToLower[**(**uint8)(__ccgo_up(a))]) == int32(_sqlite3UpperToLower[**(**uint8)(__ccgo_up(b))])) {
			break
		}
		a = a + 1
		b = b + 1
	}
	if N < 0 {
		v1 = 0
	} else {
		v1 = int32(_sqlite3UpperToLower[**(**uint8)(__ccgo_up(a))]) - int32(_sqlite3UpperToLower[**(**uint8)(__ccgo_up(b))])
	}
	return v1
}

// C documentation
//
//	/*
//	** If the following global variable points to a string which is the
//	** name of a directory, then that directory will be used to store
//	** temporary files.
//	**
//	** See also the "PRAGMA temp_store_directory" SQL command.
//	*/
var Xsqlite3_temp_directory uintptr

/* for backward compatibility */

/* Use GCC builtins */

/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */

/*
** Make sure we can call this stuff from C++.
 */

/*
** Facilitate override of interface linkage and calling conventions.
** Be aware that these macros may not be used within this particular
** translation of the amalgamation and its associated header file.
**
** The SQLITE_EXTERN and SQLITE_API macros are used to instruct the
** compiler that the target identifier should have external linkage.
**
** The SQLITE_CDECL macro is used to set the calling convention for
** public functions that accept a variable number of arguments.
**
** The SQLITE_APICALL macro is used to set the calling convention for
** public functions that accept a fixed number of arguments.
**
** The SQLITE_STDCALL macro is no longer used and is now deprecated.
**
** The SQLITE_CALLBACK macro is used to set the calling convention for
** function pointers.
**
** The SQLITE_SYSAPI macro is used to set the calling convention for
** functions provided by the operating system.
**
** Currently, the SQLITE_CDECL, SQLITE_APICALL, SQLITE_CALLBACK, and
** SQLITE_SYSAPI macros are used only when building for environments
** that require non-default calling conventions.
 */

/*
** These no-op macros are used in front of interfaces to mark those
** interfaces as either deprecated or experimental.  New applications
** should not use deprecated interfaces - they are supported for backwards
** compatibility only.  Application writers should be aware that
** experimental interfaces are subject to change in point releases.
**
** These macros used to resolve to various kinds of compiler magic that
** would generate warning messages when they were used.  But that
** compiler magic ended up generating such a flurry of bug reports
** that we have taken it all out and gone back to using simple
** noop macros.
 */

/*
** Ensure these symbols were not defined by some previous header file.
 */

/*
** CAPI3REF: Compile-Time Library Version Numbers
**
** ^(The [SQLITE_VERSION] C preprocessor macro in the sqlite3.h header
** evaluates to a string literal that is the SQLite version in the
** format "X.Y.Z" where X is the major version number (always 3 for
** SQLite3) and Y is the minor version number and Z is the release number.)^
** ^(The [SQLITE_VERSION_NUMBER] C preprocessor macro resolves to an integer
** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z are the same
** numbers used in [SQLITE_VERSION].)^
** The SQLITE_VERSION_NUMBER for any given release of SQLite will also
** be larger than the release from which it is derived.  Either Y will
** be held constant and Z will be incremented or else Y will be incremented
** and Z will be reset to zero.
**
** Since [version 3.6.18] ([dateof:3.6.18]),
** SQLite source code has been stored in the
** <a href="http://fossil-scm.org/">Fossil configuration management
** system</a>.  ^The SQLITE_SOURCE_ID macro evaluates to
** a string which identifies a particular check-in of SQLite
** within its configuration management system.  ^The SQLITE_SOURCE_ID
** string contains the date and time of the check-in (UTC) and a SHA1
** or SHA3-256 hash of the entire source tree.  If the source code has
** been edited in any way since it was last checked in, then the last
** four hexadecimal digits of the hash may be modified.
**
** See also: [sqlite3_libversion()],
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
 */

// C documentation
//
//	/*
//	** Register an unlock-notify callback.
//	**
//	** This is called after connection "db" has attempted some operation
//	** but has received an SQLITE_LOCKED error because another connection
//	** (call it pOther) in the same process was busy using the same shared
//	** cache.  pOther is found by looking at db->pBlockingConnection.
//	**
//	** If there is no blocking connection, the callback is invoked immediately,
//	** before this routine returns.
//	**
//	** If pOther is already blocked on db, then report SQLITE_LOCKED, to indicate
//	** a deadlock.
//	**
//	** Otherwise, make arrangements to invoke xNotify when pOther drops
//	** its locks.
//	**
//	** Each call to this routine overrides any prior callbacks registered
//	** on the same "db".  If xNotify==0 then any prior callbacks are immediately
//	** cancelled.
//	*/
func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	*(*uintptr)(unsafe.Pointer(bp)) = _pArg
	var p, v2 uintptr
	var rc int32
	_, _, _ = p, rc, v2
	rc = SQLITE_OK
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	_enterMutex(tls)
	if __ccgo_fp_xNotify == uintptr(0) {
		_removeFromBlockedList(tls, db)
		(*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0)
		(*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0)
		(*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = uintptr(0)
		(*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = uintptr(0)
	} else {
		if uintptr(0) == (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection {
			/* The blocking transaction has been concluded. Or there never was a
			 ** blocking transaction. In either case, invoke the notify callback
			 ** immediately.
			 */
			(*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1))
		} else {
			p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection
			for {
				if !(p != 0 && p != db) {
					break
				}
				goto _1
			_1:
				;
				p = (*Tsqlite3)(unsafe.Pointer(p)).FpUnlockConnection
			}
			if p != 0 {
				rc = int32(SQLITE_LOCKED) /* Deadlock detected. */
			} else {
				(*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection
				(*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify
				(*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = **(**uintptr)(__ccgo_up(bp))
				_removeFromBlockedList(tls, db)
				_addToBlockedList(tls, db)
			}
		}
	}
	_leaveMutex(tls)
	if rc != 0 {
		v2 = __ccgo_ts + 27613
	} else {
		v2 = uintptr(0)
	}
	_sqlite3ErrorWithMsg(tls, db, rc, v2, 0)
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return rc
}

// C documentation
//
//	/*
//	** Return a boolean value for a query parameter.
//	*/
func Xsqlite3_uri_boolean(tls *libc.TLS, zFilename uintptr, zParam uintptr, bDflt int32) (r int32) {
	var z uintptr
	var v1 int32
	_, _ = z, v1
	z = Xsqlite3_uri_parameter(tls, zFilename, zParam)
	bDflt = libc.BoolInt32(bDflt != 0)
	if z != 0 {
		v1 = int32(_sqlite3GetBoolean(tls, z, uint8(bDflt)))
	} else {
		v1 = bDflt
	}
	return v1
}

func Xsqlite3_value_encoding(tls *libc.TLS, pVal uintptr) (r int32) {
	return int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc)
}

// C documentation
//
//	/* Return true if a parameter value originated from an sqlite3_bind() */
func Xsqlite3_value_frombind(tls *libc.TLS, pVal uintptr) (r int32) {
	return libc.BoolInt32(int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_FromBind) != 0)
}

// C documentation
//
//	/* Return true if a parameter to xUpdate represents an unchanged column */
func Xsqlite3_value_nochange(tls *libc.TLS, pVal uintptr) (r int32) {
	return libc.BoolInt32(int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Null)|libc.Int32FromInt32(MEM_Zero)) == libc.Int32FromInt32(MEM_Null)|libc.Int32FromInt32(MEM_Zero))
}

func Xsqlite3_value_subtype(tls *libc.TLS, pVal uintptr) (r uint32) {
	var pMem uintptr
	var v1 int32
	_, _ = pMem, v1
	pMem = pVal
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Subtype) != 0 {
		v1 = int32((*TMem)(unsafe.Pointer(pMem)).FeSubtype)
	} else {
		v1 = 0
	}
	return uint32(v1)
}

// C documentation
//
//	/* EVIDENCE-OF: R-12793-43283 Every value in SQLite has one of five
//	** fundamental datatypes: 64-bit signed integer 64-bit IEEE floating
//	** point number string BLOB NULL
//	*/
func Xsqlite3_value_type(tls *libc.TLS, pVal uintptr) (r int32) {
	return int32(_aType[int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_AffMask)])
}

// C documentation
//
//	/*
//	** Call from within the xCreate() or xConnect() methods to provide
//	** the SQLite core with additional information about the behavior
//	** of the virtual table being implemented.
//	*/
func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r int32) {
	var ap Tva_list
	var p uintptr
	var rc int32
	_, _, _ = ap, p, rc
	rc = SQLITE_OK
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx
	if !(p != 0) {
		rc = _sqlite3MisuseError(tls, int32(163230))
	} else {
		ap = va
		switch op {
		case int32(SQLITE_VTAB_CONSTRAINT_SUPPORT):
			(*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbConstraint = uint8(libc.VaInt32(&ap))
		case int32(SQLITE_VTAB_INNOCUOUS):
			(*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FeVtabRisk = uint8(SQLITE_VTABRISK_Low)
		case int32(SQLITE_VTAB_DIRECTONLY):
			(*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FeVtabRisk = uint8(SQLITE_VTABRISK_High)
		case int32(SQLITE_VTAB_USES_ALL_SCHEMAS):
			(*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1)
		default:
			rc = _sqlite3MisuseError(tls, int32(163252))
			break
		}
		_ = ap
	}
	if rc != SQLITE_OK {
		_sqlite3Error(tls, db, rc)
	}
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return rc
}

/************** End of vtab.c ************************************************/
/************** Begin file wherecode.c ***************************************/
/*
** 2015-06-06
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** This module contains C code that generates VDBE code used to process
** the WHERE clause of SQL statements.
**
** This file was split off from where.c on 2015-06-06 in order to reduce the
** size of where.c and make it easier to edit.  This file contains the routines
** that actually generate the bulk of the WHERE loop code.  The original where.c
** file retains the code that does query planning and analysis.
 */
/* #include "sqliteInt.h" */
/************** Include whereInt.h in the middle of wherecode.c **************/
/************** Begin file whereInt.h ****************************************/
/*
** 2013-11-12
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
**
** This file contains structure and macro definitions for the query
** planner logic in "where.c".  These definitions are broken out into
** a separate source file for easier editing.
 */

// C documentation
//
//	/*
//	** Return the ON CONFLICT resolution mode in effect for the virtual
//	** table update operation currently in progress.
//	**
//	** The results of this routine are undefined unless it is called from
//	** within an xUpdate method.
//	*/
func Xsqlite3_vtab_on_conflict(tls *libc.TLS, db uintptr) (r int32) {
	return int32(_aMap[int32((*Tsqlite3)(unsafe.Pointer(db)).FvtabOnConflict)-int32(1)])
}

// C documentation
//
//	/*
//	** This function determines if the machine is running a version of Windows
//	** based on the NT kernel.
//	*/
func Xsqlite3_win32_is_nt(tls *libc.TLS) (r int32) {
	/*
	 ** NOTE: All sub-platforms where the GetVersionEx[AW] functions are
	 **       deprecated are always assumed to be based on the NT kernel.
	 */
	return int32(1)
}

// C documentation
//
//	/*
//	** This is a public wrapper for the winMbcsToUtf8() function.
//	*/
func Xsqlite3_win32_mbcs_to_utf8(tls *libc.TLS, zText uintptr) (r uintptr) {
	if Xsqlite3_initialize(tls) != 0 {
		return uintptr(0)
	}
	return _winMbcsToUtf8(tls, zText, (*(*func(*libc.TLS) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls))
}

// C documentation
//
//	/*
//	** This is a public wrapper for the winMbcsToUtf8() function.
//	*/
func Xsqlite3_win32_mbcs_to_utf8_v2(tls *libc.TLS, zText uintptr, useAnsi int32) (r uintptr) {
	if Xsqlite3_initialize(tls) != 0 {
		return uintptr(0)
	}
	return _winMbcsToUtf8(tls, zText, useAnsi)
}

// C documentation
//
//	/*
//	** This function sets the data directory or the temporary directory based on
//	** the provided arguments.  The type argument must be 1 in order to set the
//	** data directory or 2 in order to set the temporary directory.  The zValue
//	** argument is the name of the directory to use.  The return value will be
//	** SQLITE_OK if successful.
//	*/
func Xsqlite3_win32_set_directory(tls *libc.TLS, type1 uint32, zValue uintptr) (r int32) {
	return Xsqlite3_win32_set_directory16(tls, type1, zValue)
}

// C documentation
//
//	/*
//	** This function is the same as sqlite3_win32_set_directory (below); however,
//	** it accepts a UTF-16 string.
//	*/
func Xsqlite3_win32_set_directory16(tls *libc.TLS, type1 uint32, zValue uintptr) (r int32) {
	var rc int32
	var zUtf8 uintptr
	_, _ = rc, zUtf8
	zUtf8 = uintptr(0)
	if zValue != 0 {
		zUtf8 = Xsqlite3_win32_unicode_to_utf8(tls, zValue)
		if zUtf8 == uintptr(0) {
			return int32(SQLITE_NOMEM)
		}
	}
	rc = Xsqlite3_win32_set_directory8(tls, type1, zUtf8)
	if zUtf8 != 0 {
		Xsqlite3_free(tls, zUtf8)
	}
	return rc
}

// C documentation
//
//	/*
//	** This function is the same as sqlite3_win32_set_directory (below); however,
//	** it accepts a UTF-8 string.
//	*/
func Xsqlite3_win32_set_directory8(tls *libc.TLS, type1 uint32, zValue uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var ppDirectory, zCopy uintptr
	var rc int32
	_, _, _ = ppDirectory, rc, zCopy
	ppDirectory = uintptr(0)
	rc = Xsqlite3_initialize(tls)
	if rc != 0 {
		return rc
	}
	Xsqlite3_mutex_enter(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1)))
	if type1 == uint32(SQLITE_WIN32_DATA_DIRECTORY_TYPE) {
		ppDirectory = uintptr(unsafe.Pointer(&Xsqlite3_data_directory))
	} else {
		if type1 == uint32(SQLITE_WIN32_TEMP_DIRECTORY_TYPE) {
			ppDirectory = uintptr(unsafe.Pointer(&Xsqlite3_temp_directory))
		}
	}
	if ppDirectory != 0 {
		zCopy = uintptr(0)
		if zValue != 0 && **(**int8)(__ccgo_up(zValue)) != 0 {
			zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+4729, libc.VaList(bp+8, zValue))
			if zCopy == uintptr(0) {
				rc = int32(SQLITE_NOMEM)
				goto set_directory8_done
			}
		}
		Xsqlite3_free(tls, **(**uintptr)(__ccgo_up(ppDirectory)))
		**(**uintptr)(__ccgo_up(ppDirectory)) = zCopy
		rc = SQLITE_OK
	} else {
		rc = int32(SQLITE_ERROR)
	}
	goto set_directory8_done
set_directory8_done:
	;
	Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1)))
	return rc
}

func Xsqlite3_win32_sleep(tls *libc.TLS, milliseconds TDWORD) {
	(*(*func(*libc.TLS, TDWORD))(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(55)].FpCurrent})))(tls, milliseconds)
}

// C documentation
//
//	/*
//	** This is a public wrapper for the winUnicodeToUtf8() function.
//	*/
func Xsqlite3_win32_unicode_to_utf8(tls *libc.TLS, zWideText TLPCWSTR) (r uintptr) {
	if Xsqlite3_initialize(tls) != 0 {
		return uintptr(0)
	}
	return _winUnicodeToUtf8(tls, zWideText)
}

// C documentation
//
//	/*
//	** This is a public wrapper for the winUtf8ToMbcs() function.
//	*/
func Xsqlite3_win32_utf8_to_mbcs(tls *libc.TLS, zText uintptr) (r uintptr) {
	if Xsqlite3_initialize(tls) != 0 {
		return uintptr(0)
	}
	return _winUtf8ToMbcs(tls, zText, (*(*func(*libc.TLS) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls))
}

// C documentation
//
//	/*
//	** This is a public wrapper for the winUtf8ToMbcs() function.
//	*/
func Xsqlite3_win32_utf8_to_mbcs_v2(tls *libc.TLS, zText uintptr, useAnsi int32) (r uintptr) {
	if Xsqlite3_initialize(tls) != 0 {
		return uintptr(0)
	}
	return _winUtf8ToMbcs(tls, zText, useAnsi)
}

// C documentation
//
//	/*
//	** This is a public wrapper for the winUtf8ToUnicode() function.
//	*/
func Xsqlite3_win32_utf8_to_unicode(tls *libc.TLS, zText uintptr) (r TLPWSTR) {
	if Xsqlite3_initialize(tls) != 0 {
		return uintptr(0)
	}
	return _winUtf8ToUnicode(tls, zText)
}

// C documentation
//
//	/*
//	** Provide a database schema to the changegroup object.
//	*/
func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	_ = rc
	rc = SQLITE_OK
	if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList != 0 || (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 {
		/* Cannot add a schema after one or more calls to sqlite3changegroup_add(),
		 ** or after sqlite3changegroup_schema() has already been called. */
		rc = int32(SQLITE_MISUSE)
	} else {
		(*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+4729, libc.VaList(bp+8, zDb))
		if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) {
			rc = int32(SQLITE_NOMEM)
		} else {
			(*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb = db
		}
	}
	return rc
}

func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) {
	var pDb, zBegin, v1 uintptr
	var rc int32
	_, _, _, _ = pDb, rc, zBegin, v1
	rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc
	if rc == int32(SQLITE_DONE) {
		return SQLITE_OK
	}
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) {
		if rc == SQLITE_OK {
			rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+17340, uintptr(0), uintptr(0), uintptr(0))
		}
	}
	/* Sync the db file */
	if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) {
		pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
		rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL))
	}
	(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc
	_rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage)
	rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) {
		if rc == SQLITE_OK {
			rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+17340, uintptr(0), uintptr(0), uintptr(0))
		}
		if rc == SQLITE_OK {
			if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
				v1 = __ccgo_ts + 17325
			} else {
				v1 = __ccgo_ts + 35873
			}
			zBegin = v1
			rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0))
		}
		if rc == SQLITE_OK {
			rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+35873, uintptr(0), uintptr(0), uintptr(0))
		}
	}
	(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc
	return rc
}

type YIELDPROC = TYIELDPROC

const YieldProcessor = 0

type ZAFLAGS = TZAFLAGS

const ZAWPROXYAPI = "DECLSPEC_IMPORT"

const ZERO_PADDING = 3

type ZONEATTRIBUTES = TZONEATTRIBUTES

const ZeroMemory = 0

type _ABC = T_ABC

type _ABCFLOAT = T_ABCFLOAT

const _ABL_5_WO = 64

type _ACCESS_ALLOWED_ACE = T_ACCESS_ALLOWED_ACE

type _ACCESS_ALLOWED_CALLBACK_ACE = T_ACCESS_ALLOWED_CALLBACK_ACE

type _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = T_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE

type _ACCESS_ALLOWED_OBJECT_ACE = T_ACCESS_ALLOWED_OBJECT_ACE

type _ACCESS_DENIED_ACE = T_ACCESS_DENIED_ACE

type _ACCESS_DENIED_CALLBACK_ACE = T_ACCESS_DENIED_CALLBACK_ACE

type _ACCESS_DENIED_CALLBACK_OBJECT_ACE = T_ACCESS_DENIED_CALLBACK_OBJECT_ACE

type _ACCESS_DENIED_OBJECT_ACE = T_ACCESS_DENIED_OBJECT_ACE

type _ACCESS_REASONS = T_ACCESS_REASONS

type _ACE_HEADER = T_ACE_HEADER

type _ACL = T_ACL

type _ACL_REVISION_INFORMATION = T_ACL_REVISION_INFORMATION

type _ACL_SIZE_INFORMATION = T_ACL_SIZE_INFORMATION

const _ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION = 2

const _ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS = 1

const _ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0

const _ACTCTX_RUN_LEVEL_AS_INVOKER = 1

const _ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE = 2

const _ACTCTX_RUN_LEVEL_NUMBERS = 4

const _ACTCTX_RUN_LEVEL_REQUIRE_ADMIN = 3

const _ACTCTX_RUN_LEVEL_UNSPECIFIED = 0

type _ACTION_HEADER = T_ACTION_HEADER

type _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = T_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION

type _ACTIVATION_CONTEXT_BASIC_INFORMATION = T_ACTIVATION_CONTEXT_BASIC_INFORMATION

type _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = T_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION

type _ACTIVATION_CONTEXT_DETAILED_INFORMATION = T_ACTIVATION_CONTEXT_DETAILED_INFORMATION

type _ACTIVATION_CONTEXT_QUERY_INDEX = T_ACTIVATION_CONTEXT_QUERY_INDEX

type _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = T_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION

type _ADAPTER_STATUS = T_ADAPTER_STATUS

type _ADDJOB_INFO_1A = T_ADDJOB_INFO_1A

type _ADDJOB_INFO_1W = T_ADDJOB_INFO_1W

type _ADMINISTRATOR_POWER_POLICY = T_ADMINISTRATOR_POWER_POLICY

const _ADR_1 = 90

const _ADR_2 = 91

const _ADVFCACHE_FORCEBUILTIN = 16

const _ADVFCACHE_NOHANDLER = 8

const _ADVFCACHE_ONSAVE = 32

const _ADVF_DATAONSTOP = 64

const _ADVF_NODATA = 1

const _ADVF_ONLYONCE = 4

const _ADVF_PRIMEFIRST = 2

const _AIT1_8mm = 38

const _AIT_8mm = 89

const _ALLOCA_S_HEAP_MARKER = 56797

const _ALLOCA_S_STACK_MARKER = 52428

const _ALLOCA_S_THRESHOLD = 1024

const _ALPHA = 259

const _AME_8mm = 37

const _ANONYMOUS_STRUCT = 0

const _ANONYMOUS_UNION = 0

type _APPLICATIONLAUNCH_SETTING_VALUE = T_APPLICATIONLAUNCH_SETTING_VALUE

const _APPLY_SNAPSHOT_VHDSET_FLAG_NONE = 0

const _APPLY_SNAPSHOT_VHDSET_FLAG_WRITEABLE = 1

type _APPLY_SNAPSHOT_VHDSET_PARAMETERS = T_APPLY_SNAPSHOT_VHDSET_PARAMETERS

const _APPLY_SNAPSHOT_VHDSET_VERSION_1 = 1

const _APPLY_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED = 0

type _APP_MEMORY_INFORMATION = T_APP_MEMORY_INFORMATION

const _APTTYPEQUALIFIER_APPLICATION_STA = 6

const _APTTYPEQUALIFIER_IMPLICIT_MTA = 1

const _APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4

const _APTTYPEQUALIFIER_NA_ON_MAINSTA = 5

const _APTTYPEQUALIFIER_NA_ON_MTA = 2

const _APTTYPEQUALIFIER_NA_ON_STA = 3

const _APTTYPEQUALIFIER_NONE = 0

const _APTTYPE_CURRENT = -1

const _APTTYPE_MAINSTA = 3

const _APTTYPE_MTA = 1

const _APTTYPE_NA = 2

const _APTTYPE_STA = 0

const _ARGMAX = 100

const _AR_DISABLED = 1

const _AR_DOCKED = 64

const _AR_ENABLED = 0

const _AR_LAPTOP = 128

const _AR_MULTIMON = 8

const _AR_NOSENSOR = 16

const _AR_NOT_SUPPORTED = 32

const _AR_REMOTESESSION = 4

const _AR_SUPPRESSED = 2

const _ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION = 0

type _ASSEMBLY_FILE_DETAILED_INFORMATION = T_ASSEMBLY_FILE_DETAILED_INFORMATION

type _ASSOCCLASS = int32

const _ASSOCCLASS_APP_KEY = 5

const _ASSOCCLASS_APP_STR = 6

const _ASSOCCLASS_CLSID_KEY = 3

const _ASSOCCLASS_CLSID_STR = 4

const _ASSOCCLASS_FIXED_PROGID_STR = 10

const _ASSOCCLASS_FOLDER = 8

const _ASSOCCLASS_PROGID_KEY = 1

const _ASSOCCLASS_PROGID_STR = 2

const _ASSOCCLASS_PROTOCOL_STR = 11

const _ASSOCCLASS_SHELL_KEY = 0

const _ASSOCCLASS_STAR = 9

const _ASSOCCLASS_SYSTEM_STR = 7

const _ATTACH_VIRTUAL_DISK_FLAG_NONE = 0

const _ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER = 2

const _ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = 8

const _ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = 4

const _ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY = 1

type _ATTACH_VIRTUAL_DISK_PARAMETERS = T_ATTACH_VIRTUAL_DISK_PARAMETERS

const _ATTACH_VIRTUAL_DISK_VERSION_1 = 1

const _ATTACH_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0

const _AUTHENTICATEF_BASIC = 2

const _AUTHENTICATEF_HTTP = 4

const _AUTHENTICATEF_PROXY = 1

type _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA = T_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA

type _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS = T_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS

type _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA = T_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA

const _AVATAR_F2 = 78

const _AccessReasonAllowedAce = 65536

const _AccessReasonAllowedParentAce = 196608

const _AccessReasonDeniedAce = 131072

const _AccessReasonDeniedParentAce = 262144

const _AccessReasonEmptyDacl = 6291456

const _AccessReasonFromPrivilege = 2097152

const _AccessReasonIntegrityLevel = 3145728

const _AccessReasonMissingPrivilege = 1048576

const _AccessReasonNoGrant = 8388608

const _AccessReasonNoSD = 7340032

const _AccessReasonNone = 0

const _AccessReasonNotGrantedByCape = 327680

const _AccessReasonNotGrantedByParentCape = 393216

const _AccessReasonNotGrantedToAppContainer = 458752

const _AccessReasonNullDacl = 5242880

const _AccessReasonOwnership = 4194304

const _AclRevisionInformation = 1

const _AclSizeInformation = 2

const _ActivationContextBasicInformation = 1

const _ActivationContextDetailedInformation = 2

const _ActivationContextManifestResourceName = 7

const _AdapterType = 4

const _AdministratorPowerPolicy = 9

const _AllElements = 0

type _AppBarData = T_AppBarData

const _ApplyLowPowerScenarioSettings = 79

const _AssemblyDetailedInformationInActivationContext = 3

const _AssemblyDetailedInformationInActivationContxt = 3

const _AtaDataTypeIdentify = 1

const _AtaDataTypeLogPage = 2

const _AtaDataTypeUnknown = 0

const _AuditEventDirectoryServiceAccess = 1

const _AuditEventObjectAccess = 0

const _AutoLoad = 2

type _BCRYPT_ALGORITHM_IDENTIFIER = T_BCRYPT_ALGORITHM_IDENTIFIER

type _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = T_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO

type _BCRYPT_DH_KEY_BLOB = T_BCRYPT_DH_KEY_BLOB

type _BCRYPT_DH_PARAMETER_HEADER = T_BCRYPT_DH_PARAMETER_HEADER

type _BCRYPT_DSA_KEY_BLOB = T_BCRYPT_DSA_KEY_BLOB

type _BCRYPT_DSA_KEY_BLOB_V2 = T_BCRYPT_DSA_KEY_BLOB_V2

type _BCRYPT_DSA_PARAMETER_HEADER = T_BCRYPT_DSA_PARAMETER_HEADER

type _BCRYPT_DSA_PARAMETER_HEADER_V2 = T_BCRYPT_DSA_PARAMETER_HEADER_V2

type _BCRYPT_ECCKEY_BLOB = T_BCRYPT_ECCKEY_BLOB

type _BCRYPT_ECC_CURVE_NAMES = T_BCRYPT_ECC_CURVE_NAMES

const _BCRYPT_HASH_OPERATION_FINISH_HASH = 2

const _BCRYPT_HASH_OPERATION_HASH_DATA = 1

type _BCRYPT_INTERFACE_VERSION = T_BCRYPT_INTERFACE_VERSION

type _BCRYPT_KEY_BLOB = T_BCRYPT_KEY_BLOB

type _BCRYPT_KEY_DATA_BLOB_HEADER = T_BCRYPT_KEY_DATA_BLOB_HEADER

type _BCRYPT_MULTI_HASH_OPERATION = T_BCRYPT_MULTI_HASH_OPERATION

type _BCRYPT_MULTI_OBJECT_LENGTH_STRUCT = T_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT

type _BCRYPT_OAEP_PADDING_INFO = T_BCRYPT_OAEP_PADDING_INFO

type _BCRYPT_OID = T_BCRYPT_OID

type _BCRYPT_OID_LIST = T_BCRYPT_OID_LIST

const _BCRYPT_OPERATION_TYPE_HASH = 1

type _BCRYPT_PKCS1_PADDING_INFO = T_BCRYPT_PKCS1_PADDING_INFO

type _BCRYPT_PROVIDER_NAME = T_BCRYPT_PROVIDER_NAME

type _BCRYPT_PSS_PADDING_INFO = T_BCRYPT_PSS_PADDING_INFO

type _BCRYPT_RSAKEY_BLOB = T_BCRYPT_RSAKEY_BLOB

type _BCryptBuffer = T_BCryptBuffer

type _BCryptBufferDesc = T_BCryptBufferDesc

const _BIDI_BLOB = 7

const _BIDI_BOOL = 3

type _BIDI_DATA = T_BIDI_DATA

const _BIDI_ENUM = 6

const _BIDI_FLOAT = 2

const _BIDI_INT = 1

const _BIDI_NULL = 0

type _BIDI_REQUEST_CONTAINER = T_BIDI_REQUEST_CONTAINER

type _BIDI_REQUEST_DATA = T_BIDI_REQUEST_DATA

type _BIDI_RESPONSE_CONTAINER = T_BIDI_RESPONSE_CONTAINER

type _BIDI_RESPONSE_DATA = T_BIDI_RESPONSE_DATA

const _BIDI_STRING = 4

const _BIDI_TEXT = 5

type _BINARY_CONTAINER = T_BINARY_CONTAINER

const _BINDF2_ALLOW_PROXY_CRED_PROMPT = 256

const _BINDF2_DISABLEAUTOCOOKIEHANDLING = 2

const _BINDF2_DISABLEBASICOVERHTTP = 1

const _BINDF2_DISABLE_HTTP_REDIRECT_CACHING = 64

const _BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID = 8

const _BINDF2_KEEP_CALLBACK_MODULE_LOADED = 128

const _BINDF2_READ_DATA_GREATER_THAN_4GB = 4

const _BINDF2_RESERVED_1 = 2147483648

const _BINDF2_RESERVED_2 = 1073741824

const _BINDF2_RESERVED_3 = 536870912

const _BINDF2_RESERVED_4 = 268435456

const _BINDF2_RESERVED_5 = 134217728

const _BINDF2_RESERVED_6 = 67108864

const _BINDF2_RESERVED_7 = 33554432

const _BINDF2_RESERVED_8 = 16777216

const _BINDF2_RESERVED_9 = 8388608

const _BINDF2_RESERVED_A = 4194304

const _BINDF2_RESERVED_B = 2097152

const _BINDF2_RESERVED_C = 1048576

const _BINDF2_RESERVED_D = 524288

const _BINDF2_RESERVED_E = 262144

const _BINDF2_RESERVED_F = 131072

const _BINDF2_SETDOWNLOADMODE = 32

const _BINDF_ASYNCHRONOUS = 1

const _BINDF_ASYNCSTORAGE = 2

const _BINDF_DIRECT_READ = 131072

const _BINDF_ENFORCERESTRICTED = 8388608

const _BINDF_FORMS_SUBMIT = 262144

const _BINDF_FREE_THREADED = 65536

const _BINDF_FROMURLMON = 1048576

const _BINDF_FWD_BACK = 2097152

const _BINDF_GETCLASSOBJECT = 16384

const _BINDF_GETFROMCACHE_IF_NET_FAIL = 524288

const _BINDF_GETNEWESTVERSION = 16

const _BINDF_HYPERLINK = 1024

const _BINDF_IGNORESECURITYPROBLEM = 256

const _BINDF_NEEDFILE = 64

const _BINDF_NOPROGRESSIVERENDERING = 4

const _BINDF_NOWRITECACHE = 32

const _BINDF_NO_UI = 2048

const _BINDF_OFFLINEOPERATION = 8

const _BINDF_PRAGMA_NO_CACHE = 8192

const _BINDF_PREFERDEFAULTHANDLER = 4194304

const _BINDF_PULLDATA = 128

const _BINDF_RESERVED_1 = 32768

const _BINDF_RESERVED_2 = 2147483648

const _BINDF_RESERVED_3 = 16777216

const _BINDF_RESERVED_4 = 33554432

const _BINDF_RESERVED_5 = 67108864

const _BINDF_RESERVED_6 = 134217728

const _BINDF_RESERVED_7 = 1073741824

const _BINDF_RESERVED_8 = 536870912

const _BINDF_RESYNCHRONIZE = 512

const _BINDF_SILENTOPERATION = 4096

const _BINDHANDLETYPES_APPCACHE = 0

const _BINDHANDLETYPES_COUNT = 2

const _BINDHANDLETYPES_DEPENDENCY = 1

const _BINDINFOF_URLENCODEDEXTRAINFO = 2

const _BINDINFOF_URLENCODESTGMEDDATA = 1

const _BINDINFO_OPTIONS_ALLOWCONNECTDATA = 536870912

const _BINDINFO_OPTIONS_BINDTOOBJECT = 1048576

const _BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = 1073741824

const _BINDINFO_OPTIONS_DISABLE_UTF8 = 262144

const _BINDINFO_OPTIONS_ENABLE_UTF8 = 131072

const _BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 16777216

const _BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 4194304

const _BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE = 33554432

const _BINDINFO_OPTIONS_SECURITYOPTOUT = 2097152

const _BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = -2147483648

const _BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 8388608

const _BINDINFO_OPTIONS_USE_IE_ENCODING = 524288

const _BINDINFO_OPTIONS_WININETFLAG = 65536

const _BINDINFO_WPC_DOWNLOADBLOCKED = 134217728

const _BINDINFO_WPC_LOGGING_ENABLED = 268435456

const _BINDSPEED_IMMEDIATE = 3

const _BINDSPEED_INDEFINITE = 1

const _BINDSPEED_MODERATE = 2

const _BINDSTATUS_64BIT_PROGRESS = 56

const _BINDSTATUS_ACCEPTRANGES = 33

const _BINDSTATUS_BEGINDOWNLOADCOMPONENTS = 7

const _BINDSTATUS_BEGINDOWNLOADDATA = 4

const _BINDSTATUS_BEGINSYNCOPERATION = 15

const _BINDSTATUS_BEGINUPLOADDATA = 17

const _BINDSTATUS_CACHECONTROL = 48

const _BINDSTATUS_CACHEFILENAMEAVAILABLE = 14

const _BINDSTATUS_CLASSIDAVAILABLE = 12

const _BINDSTATUS_CLASSINSTALLLOCATION = 23

const _BINDSTATUS_CLSIDCANINSTANTIATE = 28

const _BINDSTATUS_COMPACT_POLICY_RECEIVED = 35

const _BINDSTATUS_CONNECTING = 2

const _BINDSTATUS_CONTENTDISPOSITIONATTACH = 26

const _BINDSTATUS_CONTENTDISPOSITIONFILENAME = 49

const _BINDSTATUS_COOKIE_SENT = 34

const _BINDSTATUS_COOKIE_STATE_ACCEPT = 38

const _BINDSTATUS_COOKIE_STATE_DOWNGRADE = 42

const _BINDSTATUS_COOKIE_STATE_LEASH = 41

const _BINDSTATUS_COOKIE_STATE_PROMPT = 40

const _BINDSTATUS_COOKIE_STATE_REJECT = 39

const _BINDSTATUS_COOKIE_STATE_UNKNOWN = 37

const _BINDSTATUS_COOKIE_SUPPRESSED = 36

const _BINDSTATUS_DECODING = 24

const _BINDSTATUS_DIRECTBIND = 30

const _BINDSTATUS_DISPLAYNAMEAVAILABLE = 52

const _BINDSTATUS_DOWNLOADINGDATA = 5

const _BINDSTATUS_ENCODING = 21

const _BINDSTATUS_ENDDOWNLOADCOMPONENTS = 9

const _BINDSTATUS_ENDDOWNLOADDATA = 6

const _BINDSTATUS_ENDSYNCOPERATION = 16

const _BINDSTATUS_ENDUPLOADDATA = 19

const _BINDSTATUS_FILTERREPORTMIMETYPE = 27

const _BINDSTATUS_FINDINGRESOURCE = 1

const _BINDSTATUS_INSTALLINGCOMPONENTS = 8

const _BINDSTATUS_IUNKNOWNAVAILABLE = 29

const _BINDSTATUS_LAST = 56

const _BINDSTATUS_LAST_PRIVATE = 66

const _BINDSTATUS_LOADINGMIMEHANDLER = 25

const _BINDSTATUS_MIMETEXTPLAINMISMATCH = 50

const _BINDSTATUS_MIMETYPEAVAILABLE = 13

const _BINDSTATUS_P3P_HEADER = 44

const _BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = 46

const _BINDSTATUS_POLICY_HREF = 43

const _BINDSTATUS_PROTOCOLCLASSID = 20

const _BINDSTATUS_PROXYDETECTING = 32

const _BINDSTATUS_PUBLISHERAVAILABLE = 51

const _BINDSTATUS_RAWMIMETYPE = 31

const _BINDSTATUS_REDIRECTING = 3

const _BINDSTATUS_RESERVED_0 = 57

const _BINDSTATUS_RESERVED_1 = 58

const _BINDSTATUS_RESERVED_2 = 59

const _BINDSTATUS_RESERVED_3 = 60

const _BINDSTATUS_RESERVED_4 = 61

const _BINDSTATUS_RESERVED_5 = 62

const _BINDSTATUS_RESERVED_6 = 63

const _BINDSTATUS_RESERVED_7 = 64

const _BINDSTATUS_RESERVED_8 = 65

const _BINDSTATUS_RESERVED_9 = 66

const _BINDSTATUS_SENDINGREQUEST = 11

const _BINDSTATUS_SERVER_MIMETYPEAVAILABLE = 54

const _BINDSTATUS_SESSION_COOKIES_ALLOWED = 47

const _BINDSTATUS_SESSION_COOKIE_RECEIVED = 45

const _BINDSTATUS_SNIFFED_CLASSIDAVAILABLE = 55

const _BINDSTATUS_SSLUX_NAVBLOCKED = 53

const _BINDSTATUS_UPLOADINGDATA = 18

const _BINDSTATUS_USINGCACHEDCOPY = 10

const _BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = 22

const _BINDSTRING_ACCEPT_ENCODINGS = 11

const _BINDSTRING_ACCEPT_MIMES = 2

const _BINDSTRING_DOWNLOADPATH = 19

const _BINDSTRING_EXTRA_URL = 3

const _BINDSTRING_FLAG_BIND_TO_OBJECT = 16

const _BINDSTRING_HEADERS = 1

const _BINDSTRING_IID = 15

const _BINDSTRING_INITIAL_FILENAME = 21

const _BINDSTRING_LANGUAGE = 4

const _BINDSTRING_OS = 9

const _BINDSTRING_PASSWORD = 6

const _BINDSTRING_POST_COOKIE = 12

const _BINDSTRING_POST_DATA_MIME = 13

const _BINDSTRING_PROXY_PASSWORD = 23

const _BINDSTRING_PROXY_USERNAME = 22

const _BINDSTRING_PTR_BIND_CONTEXT = 17

const _BINDSTRING_ROOTDOC_URL = 20

const _BINDSTRING_UA_COLOR = 8

const _BINDSTRING_UA_PIXELS = 7

const _BINDSTRING_URL = 14

const _BINDSTRING_USERNAME = 5

const _BINDSTRING_USER_AGENT = 10

const _BINDSTRING_XDR_ORIGIN = 18

const _BINDVERB_CUSTOM = 3

const _BINDVERB_GET = 0

const _BINDVERB_POST = 1

const _BINDVERB_PUT = 2

const _BINDVERB_RESERVED1 = 4

const _BIND_JUSTTESTEXISTENCE = 2

const _BIND_MAYBOTHERUSER = 1

type _BIN_COUNT = T_BIN_COUNT

type _BIN_RANGE = T_BIN_RANGE

type _BIN_RESULTS = T_BIN_RESULTS

const _BLANK = 64

type _BLENDFUNCTION = T_BLENDFUNCTION

type _BOOT_AREA_INFO = T_BOOT_AREA_INFO

const _BSCF_64BITLENGTHDOWNLOAD = 64

const _BSCF_AVAILABLEDATASIZEUNKNOWN = 16

const _BSCF_DATAFULLYAVAILABLE = 8

const _BSCF_FIRSTDATANOTIFICATION = 1

const _BSCF_INTERMEDIATEDATANOTIFICATION = 2

const _BSCF_LASTDATANOTIFICATION = 4

const _BSCF_SKIPDRAINDATAFORFILEURLS = 32

type _BYTE_BLOB = T_BYTE_BLOB

type _BYTE_SIZEDARR = T_BYTE_SIZEDARR

type _BY_HANDLE_FILE_INFORMATION = T_BY_HANDLE_FILE_INFORMATION

const _BootLoad = 0

const _BusType1394 = 4

const _BusTypeAta = 3

const _BusTypeAtapi = 2

const _BusTypeFibre = 6

const _BusTypeFileBackedVirtual = 15

const _BusTypeMax = 20

const _BusTypeMaxReserved = 127

const _BusTypeMmc = 13

const _BusTypeNvme = 17

const _BusTypeRAID = 8

const _BusTypeSCM = 18

const _BusTypeSas = 10

const _BusTypeSata = 11

const _BusTypeScsi = 1

const _BusTypeSd = 12

const _BusTypeSpaces = 16

const _BusTypeSsa = 5

const _BusTypeUfs = 19

const _BusTypeUnknown = 0

const _BusTypeUsb = 7

const _BusTypeVirtual = 14

const _BusTypeiScsi = 9

type _CACHE_DESCRIPTOR = T_CACHE_DESCRIPTOR

type _CACHE_RELATIONSHIP = T_CACHE_RELATIONSHIP

const _CALLTYPE_ASYNC = 3

const _CALLTYPE_ASYNC_CALLPENDING = 5

const _CALLTYPE_NESTED = 2

const _CALLTYPE_TOPLEVEL = 1

const _CALLTYPE_TOPLEVEL_CALLPENDING = 4

const _CALL_REPORTFAULT = 2

const _CC_CDECL = 1

const _CC_FASTCALL = 0

const _CC_FPFASTCALL = 5

const _CC_MACPASCAL = 3

const _CC_MAX = 9

const _CC_MPWCDECL = 7

const _CC_MPWPASCAL = 8

const _CC_MSCPASCAL = 2

const _CC_PASCAL = 2

const _CC_STDCALL = 4

const _CC_SYSCALL = 6

const _CD_R = 52

const _CD_ROM = 51

const _CD_RW = 53

type _CERTIFICATE_BLOB = T_CERTIFICATE_BLOB

type _CERT_ACCESS_DESCRIPTION = T_CERT_ACCESS_DESCRIPTION

type _CERT_ALT_NAME_ENTRY = T_CERT_ALT_NAME_ENTRY

type _CERT_ALT_NAME_INFO = T_CERT_ALT_NAME_INFO

type _CERT_AUTHORITY_INFO_ACCESS = T_CERT_AUTHORITY_INFO_ACCESS

type _CERT_AUTHORITY_KEY_ID2_INFO = T_CERT_AUTHORITY_KEY_ID2_INFO

type _CERT_AUTHORITY_KEY_ID_INFO = T_CERT_AUTHORITY_KEY_ID_INFO

type _CERT_BASIC_CONSTRAINTS2_INFO = T_CERT_BASIC_CONSTRAINTS2_INFO

type _CERT_BASIC_CONSTRAINTS_INFO = T_CERT_BASIC_CONSTRAINTS_INFO

type _CERT_BIOMETRIC_DATA = T_CERT_BIOMETRIC_DATA

type _CERT_BIOMETRIC_EXT_INFO = T_CERT_BIOMETRIC_EXT_INFO

type _CERT_CHAIN = T_CERT_CHAIN

type _CERT_CHAIN_CONTEXT = T_CERT_CHAIN_CONTEXT

type _CERT_CHAIN_ELEMENT = T_CERT_CHAIN_ELEMENT

type _CERT_CHAIN_ENGINE_CONFIG = T_CERT_CHAIN_ENGINE_CONFIG

type _CERT_CHAIN_FIND_BY_ISSUER_PARA = T_CERT_CHAIN_FIND_BY_ISSUER_PARA

type _CERT_CHAIN_PARA = T_CERT_CHAIN_PARA

type _CERT_CHAIN_POLICY_PARA = T_CERT_CHAIN_POLICY_PARA

type _CERT_CHAIN_POLICY_STATUS = T_CERT_CHAIN_POLICY_STATUS

type _CERT_CONTEXT = T_CERT_CONTEXT

type _CERT_CREATE_CONTEXT_PARA = T_CERT_CREATE_CONTEXT_PARA

type _CERT_CRL_CONTEXT_PAIR = T_CERT_CRL_CONTEXT_PAIR

type _CERT_DH_PARAMETERS = T_CERT_DH_PARAMETERS

type _CERT_DSS_PARAMETERS = T_CERT_DSS_PARAMETERS

type _CERT_ECC_SIGNATURE = T_CERT_ECC_SIGNATURE

type _CERT_EXTENSION = T_CERT_EXTENSION

type _CERT_EXTENSIONS = T_CERT_EXTENSIONS

type _CERT_FORTEZZA_DATA_PROP = T_CERT_FORTEZZA_DATA_PROP

type _CERT_GENERAL_SUBTREE = T_CERT_GENERAL_SUBTREE

type _CERT_HASHED_URL = T_CERT_HASHED_URL

type _CERT_ID = T_CERT_ID

type _CERT_INFO = T_CERT_INFO

type _CERT_ISSUER_SERIAL_NUMBER = T_CERT_ISSUER_SERIAL_NUMBER

type _CERT_KEYGEN_REQUEST_INFO = T_CERT_KEYGEN_REQUEST_INFO

type _CERT_KEY_ATTRIBUTES_INFO = T_CERT_KEY_ATTRIBUTES_INFO

type _CERT_KEY_CONTEXT = T_CERT_KEY_CONTEXT

type _CERT_KEY_USAGE_RESTRICTION_INFO = T_CERT_KEY_USAGE_RESTRICTION_INFO

type _CERT_LDAP_STORE_OPENED_PARA = T_CERT_LDAP_STORE_OPENED_PARA

type _CERT_LOGOTYPE_AUDIO = T_CERT_LOGOTYPE_AUDIO

type _CERT_LOGOTYPE_AUDIO_INFO = T_CERT_LOGOTYPE_AUDIO_INFO

type _CERT_LOGOTYPE_DATA = T_CERT_LOGOTYPE_DATA

type _CERT_LOGOTYPE_DETAILS = T_CERT_LOGOTYPE_DETAILS

type _CERT_LOGOTYPE_EXT_INFO = T_CERT_LOGOTYPE_EXT_INFO

type _CERT_LOGOTYPE_IMAGE = T_CERT_LOGOTYPE_IMAGE

type _CERT_LOGOTYPE_IMAGE_INFO = T_CERT_LOGOTYPE_IMAGE_INFO

type _CERT_LOGOTYPE_INFO = T_CERT_LOGOTYPE_INFO

type _CERT_LOGOTYPE_REFERENCE = T_CERT_LOGOTYPE_REFERENCE

type _CERT_NAME_CONSTRAINTS_INFO = T_CERT_NAME_CONSTRAINTS_INFO

type _CERT_NAME_INFO = T_CERT_NAME_INFO

type _CERT_NAME_VALUE = T_CERT_NAME_VALUE

type _CERT_OR_CRL_BLOB = T_CERT_OR_CRL_BLOB

type _CERT_OR_CRL_BUNDLE = T_CERT_OR_CRL_BUNDLE

type _CERT_OTHER_LOGOTYPE_INFO = T_CERT_OTHER_LOGOTYPE_INFO

type _CERT_OTHER_NAME = T_CERT_OTHER_NAME

type _CERT_PAIR = T_CERT_PAIR

type _CERT_PHYSICAL_STORE_INFO = T_CERT_PHYSICAL_STORE_INFO

type _CERT_POLICIES_INFO = T_CERT_POLICIES_INFO

type _CERT_POLICY95_QUALIFIER1 = T_CERT_POLICY95_QUALIFIER1

type _CERT_POLICY_CONSTRAINTS_INFO = T_CERT_POLICY_CONSTRAINTS_INFO

type _CERT_POLICY_ID = T_CERT_POLICY_ID

type _CERT_POLICY_INFO = T_CERT_POLICY_INFO

type _CERT_POLICY_MAPPING = T_CERT_POLICY_MAPPING

type _CERT_POLICY_MAPPINGS_INFO = T_CERT_POLICY_MAPPINGS_INFO

type _CERT_POLICY_QUALIFIER_INFO = T_CERT_POLICY_QUALIFIER_INFO

type _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE = T_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE

type _CERT_POLICY_QUALIFIER_USER_NOTICE = T_CERT_POLICY_QUALIFIER_USER_NOTICE

type _CERT_PRIVATE_KEY_VALIDITY = T_CERT_PRIVATE_KEY_VALIDITY

type _CERT_PUBLIC_KEY_INFO = T_CERT_PUBLIC_KEY_INFO

type _CERT_QC_STATEMENT = T_CERT_QC_STATEMENT

type _CERT_QC_STATEMENTS_EXT_INFO = T_CERT_QC_STATEMENTS_EXT_INFO

type _CERT_RDN = T_CERT_RDN

type _CERT_RDN_ATTR = T_CERT_RDN_ATTR

type _CERT_REGISTRY_STORE_CLIENT_GPT_PARA = T_CERT_REGISTRY_STORE_CLIENT_GPT_PARA

type _CERT_REGISTRY_STORE_ROAMING_PARA = T_CERT_REGISTRY_STORE_ROAMING_PARA

type _CERT_REQUEST_INFO = T_CERT_REQUEST_INFO

type _CERT_REVOCATION_CHAIN_PARA = T_CERT_REVOCATION_CHAIN_PARA

type _CERT_REVOCATION_CRL_INFO = T_CERT_REVOCATION_CRL_INFO

type _CERT_REVOCATION_INFO = T_CERT_REVOCATION_INFO

type _CERT_REVOCATION_PARA = T_CERT_REVOCATION_PARA

type _CERT_REVOCATION_STATUS = T_CERT_REVOCATION_STATUS

type _CERT_SELECT_CHAIN_PARA = T_CERT_SELECT_CHAIN_PARA

type _CERT_SELECT_CRITERIA = T_CERT_SELECT_CRITERIA

type _CERT_SERVER_OCSP_RESPONSE_CONTEXT = T_CERT_SERVER_OCSP_RESPONSE_CONTEXT

type _CERT_SERVER_OCSP_RESPONSE_OPEN_PARA = T_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA

type _CERT_SIGNED_CONTENT_INFO = T_CERT_SIGNED_CONTENT_INFO

type _CERT_SIMPLE_CHAIN = T_CERT_SIMPLE_CHAIN

type _CERT_STORE_PROV_FIND_INFO = T_CERT_STORE_PROV_FIND_INFO

type _CERT_STORE_PROV_INFO = T_CERT_STORE_PROV_INFO

type _CERT_STRONG_SIGN_PARA = T_CERT_STRONG_SIGN_PARA

type _CERT_STRONG_SIGN_SERIALIZED_INFO = T_CERT_STRONG_SIGN_SERIALIZED_INFO

type _CERT_SUPPORTED_ALGORITHM_INFO = T_CERT_SUPPORTED_ALGORITHM_INFO

type _CERT_SYSTEM_STORE_INFO = T_CERT_SYSTEM_STORE_INFO

type _CERT_SYSTEM_STORE_RELOCATE_PARA = T_CERT_SYSTEM_STORE_RELOCATE_PARA

type _CERT_TEMPLATE_EXT = T_CERT_TEMPLATE_EXT

type _CERT_TPM_SPECIFICATION_INFO = T_CERT_TPM_SPECIFICATION_INFO

type _CERT_TRUST_LIST_INFO = T_CERT_TRUST_LIST_INFO

type _CERT_TRUST_STATUS = T_CERT_TRUST_STATUS

type _CERT_USAGE_MATCH = T_CERT_USAGE_MATCH

type _CERT_X942_DH_PARAMETERS = T_CERT_X942_DH_PARAMETERS

type _CERT_X942_DH_VALIDATION_PARAMS = T_CERT_X942_DH_VALIDATION_PARAMS

type _CFG_CALL_TARGET_INFO = T_CFG_CALL_TARGET_INFO

const _CHANGEKIND_ADDMEMBER = 0

const _CHANGEKIND_CHANGEFAILED = 6

const _CHANGEKIND_DELETEMEMBER = 1

const _CHANGEKIND_GENERAL = 4

const _CHANGEKIND_INVALIDATE = 5

const _CHANGEKIND_MAX = 7

const _CHANGEKIND_SETDOCUMENTATION = 3

const _CHANGEKIND_SETNAMES = 2

type _CHANGER_ELEMENT = T_CHANGER_ELEMENT

type _CHANGER_ELEMENT_LIST = T_CHANGER_ELEMENT_LIST

type _CHANGER_ELEMENT_STATUS = T_CHANGER_ELEMENT_STATUS

type _CHANGER_ELEMENT_STATUS_EX = T_CHANGER_ELEMENT_STATUS_EX

type _CHANGER_EXCHANGE_MEDIUM = T_CHANGER_EXCHANGE_MEDIUM

type _CHANGER_INITIALIZE_ELEMENT_STATUS = T_CHANGER_INITIALIZE_ELEMENT_STATUS

type _CHANGER_MOVE_MEDIUM = T_CHANGER_MOVE_MEDIUM

type _CHANGER_PRODUCT_DATA = T_CHANGER_PRODUCT_DATA

type _CHANGER_READ_ELEMENT_STATUS = T_CHANGER_READ_ELEMENT_STATUS

type _CHANGER_SEND_VOLUME_TAG_INFORMATION = T_CHANGER_SEND_VOLUME_TAG_INFORMATION

type _CHANGER_SET_ACCESS = T_CHANGER_SET_ACCESS

type _CHANGER_SET_POSITION = T_CHANGER_SET_POSITION

type _CHAR_INFO = T_CHAR_INFO

const _CIP_ACCESS_DENIED = 1

const _CIP_DISK_FULL = 0

const _CIP_EXE_SELF_REGISTERATION_TIMEOUT = 6

const _CIP_NAME_CONFLICT = 4

const _CIP_NEED_REBOOT = 8

const _CIP_NEED_REBOOT_UI_PERMISSION = 9

const _CIP_NEWER_VERSION_EXISTS = 2

const _CIP_OLDER_VERSION_EXISTS = 3

const _CIP_TRUST_VERIFICATION_COMPONENT_MISSING = 5

const _CIP_UNSAFE_TO_ABORT = 7

type _CLAIM_SECURITY_ATTRIBUTES_INFORMATION = T_CLAIM_SECURITY_ATTRIBUTES_INFORMATION

type _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = T_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE

type _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = T_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE

type _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = T_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1

type _CLAIM_SECURITY_ATTRIBUTE_V1 = T_CLAIM_SECURITY_ATTRIBUTE_V1

const _CLASSIDPROP = 2

type _CLASS_MEDIA_CHANGE_CONTEXT = T_CLASS_MEDIA_CHANGE_CONTEXT

const _CLEANER_CARTRIDGE = 50

type _CLIENT_CALL_RETURN = T_CLIENT_CALL_RETURN

const _CLSCTX_ACTIVATE_32_BIT_SERVER = 262144

const _CLSCTX_ACTIVATE_64_BIT_SERVER = 524288

const _CLSCTX_ACTIVATE_AAA_AS_IU = 8388608

const _CLSCTX_APPCONTAINER = 4194304

const _CLSCTX_DISABLE_AAA = 32768

const _CLSCTX_ENABLE_AAA = 65536

const _CLSCTX_ENABLE_CLOAKING = 1048576

const _CLSCTX_ENABLE_CODE_DOWNLOAD = 8192

const _CLSCTX_FROM_DEFAULT_CONTEXT = 131072

const _CLSCTX_INPROC_HANDLER = 2

const _CLSCTX_INPROC_HANDLER16 = 32

const _CLSCTX_INPROC_SERVER = 1

const _CLSCTX_INPROC_SERVER16 = 8

const _CLSCTX_LOCAL_SERVER = 4

const _CLSCTX_NO_CODE_DOWNLOAD = 1024

const _CLSCTX_NO_CUSTOM_MARSHAL = 4096

const _CLSCTX_NO_FAILURE_LOG = 16384

const _CLSCTX_PS_DLL = -2147483648

const _CLSCTX_REMOTE_SERVER = 16

const _CLSCTX_RESERVED1 = 64

const _CLSCTX_RESERVED2 = 128

const _CLSCTX_RESERVED3 = 256

const _CLSCTX_RESERVED4 = 512

const _CLSCTX_RESERVED5 = 2048

type _CMC_ADD_ATTRIBUTES_INFO = T_CMC_ADD_ATTRIBUTES_INFO

type _CMC_ADD_EXTENSIONS_INFO = T_CMC_ADD_EXTENSIONS_INFO

type _CMC_DATA_INFO = T_CMC_DATA_INFO

type _CMC_PEND_INFO = T_CMC_PEND_INFO

type _CMC_RESPONSE_INFO = T_CMC_RESPONSE_INFO

type _CMC_STATUS_INFO = T_CMC_STATUS_INFO

type _CMC_TAGGED_ATTRIBUTE = T_CMC_TAGGED_ATTRIBUTE

type _CMC_TAGGED_CERT_REQUEST = T_CMC_TAGGED_CERT_REQUEST

type _CMC_TAGGED_CONTENT_INFO = T_CMC_TAGGED_CONTENT_INFO

type _CMC_TAGGED_OTHER_MSG = T_CMC_TAGGED_OTHER_MSG

type _CMC_TAGGED_REQUEST = T_CMC_TAGGED_REQUEST

type _CMSG_CMS_RECIPIENT_INFO = T_CMSG_CMS_RECIPIENT_INFO

type _CMSG_CMS_SIGNER_INFO = T_CMSG_CMS_SIGNER_INFO

type _CMSG_CNG_CONTENT_DECRYPT_INFO = T_CMSG_CNG_CONTENT_DECRYPT_INFO

type _CMSG_CONTENT_ENCRYPT_INFO = T_CMSG_CONTENT_ENCRYPT_INFO

type _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = T_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA

type _CMSG_CTRL_DECRYPT_PARA = T_CMSG_CTRL_DECRYPT_PARA

type _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = T_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA

type _CMSG_CTRL_KEY_AGREE_DECRYPT_PARA = T_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA

type _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA = T_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA

type _CMSG_CTRL_MAIL_LIST_DECRYPT_PARA = T_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA

type _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = T_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA

type _CMSG_ENCRYPTED_ENCODE_INFO = T_CMSG_ENCRYPTED_ENCODE_INFO

type _CMSG_ENVELOPED_ENCODE_INFO = T_CMSG_ENVELOPED_ENCODE_INFO

type _CMSG_HASHED_ENCODE_INFO = T_CMSG_HASHED_ENCODE_INFO

type _CMSG_KEY_AGREE_ENCRYPT_INFO = T_CMSG_KEY_AGREE_ENCRYPT_INFO

type _CMSG_KEY_AGREE_KEY_ENCRYPT_INFO = T_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO

type _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = T_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO

type _CMSG_KEY_AGREE_RECIPIENT_INFO = T_CMSG_KEY_AGREE_RECIPIENT_INFO

type _CMSG_KEY_TRANS_ENCRYPT_INFO = T_CMSG_KEY_TRANS_ENCRYPT_INFO

type _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = T_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO

type _CMSG_KEY_TRANS_RECIPIENT_INFO = T_CMSG_KEY_TRANS_RECIPIENT_INFO

type _CMSG_MAIL_LIST_ENCRYPT_INFO = T_CMSG_MAIL_LIST_ENCRYPT_INFO

type _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = T_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO

type _CMSG_MAIL_LIST_RECIPIENT_INFO = T_CMSG_MAIL_LIST_RECIPIENT_INFO

type _CMSG_RC2_AUX_INFO = T_CMSG_RC2_AUX_INFO

type _CMSG_RC4_AUX_INFO = T_CMSG_RC4_AUX_INFO

type _CMSG_RECIPIENT_ENCODE_INFO = T_CMSG_RECIPIENT_ENCODE_INFO

type _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = T_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

type _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO = T_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO

type _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = T_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO

type _CMSG_SIGNED_ENCODE_INFO = T_CMSG_SIGNED_ENCODE_INFO

type _CMSG_SIGNER_ENCODE_INFO = T_CMSG_SIGNER_ENCODE_INFO

type _CMSG_SIGNER_INFO = T_CMSG_SIGNER_INFO

type _CMSG_SP3_COMPATIBLE_AUX_INFO = T_CMSG_SP3_COMPATIBLE_AUX_INFO

type _CMSG_STREAM_INFO = T_CMSG_STREAM_INFO

type _CMS_DH_KEY_INFO = T_CMS_DH_KEY_INFO

type _CMS_KEY_INFO = T_CMS_KEY_INFO

type _COAUTHIDENTITY = T_COAUTHIDENTITY

type _COAUTHINFO = T_COAUTHINFO

const _COINITBASE_MULTITHREADED = 0

const _COINIT_APARTMENTTHREADED = 2

const _COINIT_DISABLE_OLE1DDE = 4

const _COINIT_MULTITHREADED = 0

const _COINIT_SPEED_OVER_MEMORY = 8

const _COMBND_RESERVED1 = 4

const _COMBND_RPCTIMEOUT = 1

const _COMBND_SERVER_LOCALITY = 2

const _COMGLB_APPID = 2

const _COMGLB_EXCEPTION_DONOT_HANDLE = 1

const _COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2

const _COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1

const _COMGLB_EXCEPTION_HANDLE = 0

const _COMGLB_EXCEPTION_HANDLING = 1

const _COMGLB_FAST_RUNDOWN = 8

const _COMGLB_RESERVED1 = 16

const _COMGLB_RESERVED2 = 32

const _COMGLB_RESERVED3 = 64

const _COMGLB_RO_SETTINGS = 4

const _COMGLB_RPC_THREADPOOL_SETTING = 3

const _COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0

const _COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1

const _COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 1

const _COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 4

const _COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 2

const _COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 128

const _COMGLB_UNMARSHALING_POLICY = 5

const _COMGLB_UNMARSHALING_POLICY_HYBRID = 2

const _COMGLB_UNMARSHALING_POLICY_NORMAL = 0

const _COMGLB_UNMARSHALING_POLICY_STRONG = 1

const _COMIMAGE_FLAGS_32BITREQUIRED = 2

const _COMIMAGE_FLAGS_ILONLY = 1

const _COMIMAGE_FLAGS_IL_LIBRARY = 4

const _COMIMAGE_FLAGS_STRONGNAMESIGNED = 8

const _COMIMAGE_FLAGS_TRACKDEBUGDATA = 65536

type _COMMCONFIG = T_COMMCONFIG

type _COMMPROP = T_COMMPROP

type _COMMTIMEOUTS = T_COMMTIMEOUTS

type _COMM_FAULT_OFFSETS = T_COMM_FAULT_OFFSETS

const _COMPACT_VIRTUAL_DISK_FLAG_NONE = 0

type _COMPACT_VIRTUAL_DISK_PARAMETERS = T_COMPACT_VIRTUAL_DISK_PARAMETERS

const _COMPACT_VIRTUAL_DISK_VERSION_1 = 1

const _COMPACT_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0

const _COMPARE_STRING = 1

type _COMPATIBILITY_CONTEXT_ELEMENT = T_COMPATIBILITY_CONTEXT_ELEMENT

type _COMPONENT_FILTER = T_COMPONENT_FILTER

type _COMSTAT = T_COMSTAT

type _CONNECTDLGSTRUCTA = T_CONNECTDLGSTRUCTA

type _CONNECTDLGSTRUCTW = T_CONNECTDLGSTRUCTW

type _CONSOLE_CURSOR_INFO = T_CONSOLE_CURSOR_INFO

type _CONSOLE_FONT_INFO = T_CONSOLE_FONT_INFO

type _CONSOLE_FONT_INFOEX = T_CONSOLE_FONT_INFOEX

type _CONSOLE_HISTORY_INFO = T_CONSOLE_HISTORY_INFO

type _CONSOLE_READCONSOLE_CONTROL = T_CONSOLE_READCONSOLE_CONTROL

type _CONSOLE_SCREEN_BUFFER_INFO = T_CONSOLE_SCREEN_BUFFER_INFO

type _CONSOLE_SCREEN_BUFFER_INFOEX = T_CONSOLE_SCREEN_BUFFER_INFOEX

type _CONSOLE_SELECTION_INFO = T_CONSOLE_SELECTION_INFO

type _CONTEXT = T_CONTEXT

const _CONTROL = 32

type _COORD = T_COORD

const _COPYFILE2_CALLBACK_CHUNK_FINISHED = 2

const _COPYFILE2_CALLBACK_CHUNK_STARTED = 1

const _COPYFILE2_CALLBACK_ERROR = 6

const _COPYFILE2_CALLBACK_MAX = 7

const _COPYFILE2_CALLBACK_NONE = 0

const _COPYFILE2_CALLBACK_POLL_CONTINUE = 5

const _COPYFILE2_CALLBACK_STREAM_FINISHED = 4

const _COPYFILE2_CALLBACK_STREAM_STARTED = 3

const _COPYFILE2_PHASE_MAX = 7

const _COPYFILE2_PHASE_NAMEGRAFT_COPY = 6

const _COPYFILE2_PHASE_NONE = 0

const _COPYFILE2_PHASE_PREPARE_DEST = 2

const _COPYFILE2_PHASE_PREPARE_SOURCE = 1

const _COPYFILE2_PHASE_READ_SOURCE = 3

const _COPYFILE2_PHASE_SERVER_COPY = 5

const _COPYFILE2_PHASE_WRITE_DESTINATION = 4

const _COPYFILE2_PROGRESS_CANCEL = 1

const _COPYFILE2_PROGRESS_CONTINUE = 0

const _COPYFILE2_PROGRESS_PAUSE = 4

const _COPYFILE2_PROGRESS_QUIET = 3

const _COPYFILE2_PROGRESS_STOP = 2

type _CORE_PRINTER_DRIVERA = T_CORE_PRINTER_DRIVERA

type _CORE_PRINTER_DRIVERW = T_CORE_PRINTER_DRIVERW

const _COR_DELETED_NAME_LENGTH = 8

const _COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 255

const _COR_VERSION_MAJOR = 2

const _COR_VERSION_MAJOR_V2 = 2

const _COR_VERSION_MINOR = 0

const _COR_VTABLEGAP_NAME_LENGTH = 8

const _COR_VTABLE_32BIT = 1

const _COR_VTABLE_64BIT = 2

const _COR_VTABLE_CALL_MOST_DERIVED = 16

const _COR_VTABLE_FROM_UNMANAGED = 4

type _COSERVERINFO = T_COSERVERINFO

const _COWAIT_ALERTABLE = 2

const _COWAIT_DEFAULT = 0

const _COWAIT_DISPATCH_CALLS = 8

const _COWAIT_DISPATCH_WINDOW_MESSAGES = 16

const _COWAIT_INPUTAVAILABLE = 4

const _COWAIT_WAITALL = 1

type _CO_MARSHALING_CONTEXT_ATTRIBUTES = int32

const _CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0

type _CPS_URLS = T_CPS_URLS

type _CREATEFILE2_EXTENDED_PARAMETERS = T_CREATEFILE2_EXTENDED_PARAMETERS

type _CREATE_DISK = T_CREATE_DISK

type _CREATE_DISK_GPT = T_CREATE_DISK_GPT

type _CREATE_DISK_MBR = T_CREATE_DISK_MBR

type _CREATE_PROCESS_DEBUG_INFO = T_CREATE_PROCESS_DEBUG_INFO

type _CREATE_THREAD_DEBUG_INFO = T_CREATE_THREAD_DEBUG_INFO

const _CREATE_VIRTUAL_DISK_FLAG_DO_NOT_COPY_METADATA_FROM_PARENT = 4

const _CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION = 1

const _CREATE_VIRTUAL_DISK_FLAG_NONE = 0

const _CREATE_VIRTUAL_DISK_FLAG_PREVENT_WRITES_TO_SOURCE_DISK = 2

type _CREATE_VIRTUAL_DISK_PARAMETERS = T_CREATE_VIRTUAL_DISK_PARAMETERS

const _CREATE_VIRTUAL_DISK_VERSION_1 = 1

const _CREATE_VIRTUAL_DISK_VERSION_2 = 2

const _CREATE_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0

type _CRL_CONTEXT = T_CRL_CONTEXT

type _CRL_DIST_POINT = T_CRL_DIST_POINT

type _CRL_DIST_POINTS_INFO = T_CRL_DIST_POINTS_INFO

type _CRL_DIST_POINT_NAME = T_CRL_DIST_POINT_NAME

type _CRL_ENTRY = T_CRL_ENTRY

type _CRL_FIND_ISSUED_FOR_PARA = T_CRL_FIND_ISSUED_FOR_PARA

type _CRL_INFO = T_CRL_INFO

type _CRL_ISSUING_DIST_POINT = T_CRL_ISSUING_DIST_POINT

type _CRL_REVOCATION_INFO = T_CRL_REVOCATION_INFO

type _CROSS_CERT_DIST_POINTS_INFO = T_CROSS_CERT_DIST_POINTS_INFO

const _CRTIMP2 = "_CRTIMP"

const _CRTIMP_ALTERNATIVE = "_CRTIMP"

const _CRTIMP_NOIA64 = "_CRTIMP"

const _CRTIMP_PURE = "_CRTIMP"

type _CRT_DOUBLE = T_CRT_DOUBLE

type _CRT_FLOAT = T_CRT_FLOAT

const _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS = 4

const _CRT_INTERNAL_LOCAL_SCANF_OPTIONS = 2

const _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY = 8

const _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS = 16

const _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION = 1

const _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS = 4

const _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR = 2

const _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY = 4

const _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS = 2

const _CRT_INTERNAL_SCANF_SECURECRT = 1

const _CRT_SECURE_CPP_NOTHROW = 0

type _CRYPTNET_URL_CACHE_FLUSH_INFO = T_CRYPTNET_URL_CACHE_FLUSH_INFO

type _CRYPTNET_URL_CACHE_PRE_FETCH_INFO = T_CRYPTNET_URL_CACHE_PRE_FETCH_INFO

type _CRYPTNET_URL_CACHE_RESPONSE_INFO = T_CRYPTNET_URL_CACHE_RESPONSE_INFO

type _CRYPTOAPI_BLOB = T_CRYPTOAPI_BLOB

type _CRYPTPROTECT_PROMPTSTRUCT = T_CRYPTPROTECT_PROMPTSTRUCT

type _CRYPT_3DES_KEY_STATE = T_CRYPT_3DES_KEY_STATE

type _CRYPT_AES_128_KEY_STATE = T_CRYPT_AES_128_KEY_STATE

type _CRYPT_AES_256_KEY_STATE = T_CRYPT_AES_256_KEY_STATE

type _CRYPT_ALGORITHM_IDENTIFIER = T_CRYPT_ALGORITHM_IDENTIFIER

type _CRYPT_ASYNC_RETRIEVAL_COMPLETION = T_CRYPT_ASYNC_RETRIEVAL_COMPLETION

type _CRYPT_ATTRIBUTE = T_CRYPT_ATTRIBUTE

type _CRYPT_ATTRIBUTES = T_CRYPT_ATTRIBUTES

type _CRYPT_ATTRIBUTE_TYPE_VALUE = T_CRYPT_ATTRIBUTE_TYPE_VALUE

type _CRYPT_BIT_BLOB = T_CRYPT_BIT_BLOB

type _CRYPT_BLOB_ARRAY = T_CRYPT_BLOB_ARRAY

type _CRYPT_CONTENT_INFO = T_CRYPT_CONTENT_INFO

type _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = T_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY

type _CRYPT_CONTEXTS = T_CRYPT_CONTEXTS

type _CRYPT_CONTEXT_CONFIG = T_CRYPT_CONTEXT_CONFIG

type _CRYPT_CONTEXT_FUNCTIONS = T_CRYPT_CONTEXT_FUNCTIONS

type _CRYPT_CONTEXT_FUNCTION_CONFIG = T_CRYPT_CONTEXT_FUNCTION_CONFIG

type _CRYPT_CONTEXT_FUNCTION_PROVIDERS = T_CRYPT_CONTEXT_FUNCTION_PROVIDERS

type _CRYPT_CREDENTIALS = T_CRYPT_CREDENTIALS

type _CRYPT_CSP_PROVIDER = T_CRYPT_CSP_PROVIDER

type _CRYPT_DECODE_PARA = T_CRYPT_DECODE_PARA

type _CRYPT_DECRYPT_MESSAGE_PARA = T_CRYPT_DECRYPT_MESSAGE_PARA

type _CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA = T_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA

type _CRYPT_DES_KEY_STATE = T_CRYPT_DES_KEY_STATE

type _CRYPT_ECC_CMS_SHARED_INFO = T_CRYPT_ECC_CMS_SHARED_INFO

type _CRYPT_ECC_PRIVATE_KEY_INFO = T_CRYPT_ECC_PRIVATE_KEY_INFO

type _CRYPT_ENCODE_PARA = T_CRYPT_ENCODE_PARA

type _CRYPT_ENCRYPTED_PRIVATE_KEY_INFO = T_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO

type _CRYPT_ENCRYPT_MESSAGE_PARA = T_CRYPT_ENCRYPT_MESSAGE_PARA

type _CRYPT_ENROLLMENT_NAME_VALUE_PAIR = T_CRYPT_ENROLLMENT_NAME_VALUE_PAIR

type _CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO = T_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO

type _CRYPT_HASH_INFO = T_CRYPT_HASH_INFO

type _CRYPT_HASH_MESSAGE_PARA = T_CRYPT_HASH_MESSAGE_PARA

type _CRYPT_IMAGE_REF = T_CRYPT_IMAGE_REF

type _CRYPT_IMAGE_REG = T_CRYPT_IMAGE_REG

type _CRYPT_INTERFACE_REG = T_CRYPT_INTERFACE_REG

type _CRYPT_KEY_PROV_INFO = T_CRYPT_KEY_PROV_INFO

type _CRYPT_KEY_PROV_PARAM = T_CRYPT_KEY_PROV_PARAM

type _CRYPT_KEY_SIGN_MESSAGE_PARA = T_CRYPT_KEY_SIGN_MESSAGE_PARA

type _CRYPT_KEY_VERIFY_MESSAGE_PARA = T_CRYPT_KEY_VERIFY_MESSAGE_PARA

type _CRYPT_MASK_GEN_ALGORITHM = T_CRYPT_MASK_GEN_ALGORITHM

type _CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE = T_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE

type _CRYPT_OBJID_TABLE = T_CRYPT_OBJID_TABLE

type _CRYPT_OID_FUNC_ENTRY = T_CRYPT_OID_FUNC_ENTRY

type _CRYPT_OID_INFO = T_CRYPT_OID_INFO

type _CRYPT_PASSWORD_CREDENTIALSA = T_CRYPT_PASSWORD_CREDENTIALSA

type _CRYPT_PASSWORD_CREDENTIALSW = T_CRYPT_PASSWORD_CREDENTIALSW

type _CRYPT_PKCS12_PBE_PARAMS = T_CRYPT_PKCS12_PBE_PARAMS

type _CRYPT_PKCS8_EXPORT_PARAMS = T_CRYPT_PKCS8_EXPORT_PARAMS

type _CRYPT_PKCS8_IMPORT_PARAMS = T_CRYPT_PKCS8_IMPORT_PARAMS

type _CRYPT_PRIVATE_KEY_INFO = T_CRYPT_PRIVATE_KEY_INFO

type _CRYPT_PROPERTY_REF = T_CRYPT_PROPERTY_REF

type _CRYPT_PROVIDERS = T_CRYPT_PROVIDERS

type _CRYPT_PROVIDER_REF = T_CRYPT_PROVIDER_REF

type _CRYPT_PROVIDER_REFS = T_CRYPT_PROVIDER_REFS

type _CRYPT_PROVIDER_REG = T_CRYPT_PROVIDER_REG

type _CRYPT_PSOURCE_ALGORITHM = T_CRYPT_PSOURCE_ALGORITHM

type _CRYPT_RC2_CBC_PARAMETERS = T_CRYPT_RC2_CBC_PARAMETERS

type _CRYPT_RC4_KEY_STATE = T_CRYPT_RC4_KEY_STATE

type _CRYPT_RETRIEVE_AUX_INFO = T_CRYPT_RETRIEVE_AUX_INFO

type _CRYPT_RSAES_OAEP_PARAMETERS = T_CRYPT_RSAES_OAEP_PARAMETERS

type _CRYPT_RSA_SSA_PSS_PARAMETERS = T_CRYPT_RSA_SSA_PSS_PARAMETERS

type _CRYPT_SEQUENCE_OF_ANY = T_CRYPT_SEQUENCE_OF_ANY

type _CRYPT_SIGN_MESSAGE_PARA = T_CRYPT_SIGN_MESSAGE_PARA

type _CRYPT_SMART_CARD_ROOT_INFO = T_CRYPT_SMART_CARD_ROOT_INFO

type _CRYPT_SMIME_CAPABILITIES = T_CRYPT_SMIME_CAPABILITIES

type _CRYPT_SMIME_CAPABILITY = T_CRYPT_SMIME_CAPABILITY

type _CRYPT_TIMESTAMP_ACCURACY = T_CRYPT_TIMESTAMP_ACCURACY

type _CRYPT_TIMESTAMP_CONTEXT = T_CRYPT_TIMESTAMP_CONTEXT

type _CRYPT_TIMESTAMP_INFO = T_CRYPT_TIMESTAMP_INFO

type _CRYPT_TIMESTAMP_PARA = T_CRYPT_TIMESTAMP_PARA

type _CRYPT_TIMESTAMP_REQUEST = T_CRYPT_TIMESTAMP_REQUEST

type _CRYPT_TIMESTAMP_RESPONSE = T_CRYPT_TIMESTAMP_RESPONSE

type _CRYPT_TIME_STAMP_REQUEST_INFO = T_CRYPT_TIME_STAMP_REQUEST_INFO

type _CRYPT_URL_ARRAY = T_CRYPT_URL_ARRAY

type _CRYPT_URL_INFO = T_CRYPT_URL_INFO

type _CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO = T_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO

type _CRYPT_VERIFY_MESSAGE_PARA = T_CRYPT_VERIFY_MESSAGE_PARA

type _CRYPT_X942_OTHER_INFO = T_CRYPT_X942_OTHER_INFO

type _CSV_NAMESPACE_INFO = T_CSV_NAMESPACE_INFO

type _CTL_ANY_SUBJECT_INFO = T_CTL_ANY_SUBJECT_INFO

type _CTL_CONTEXT = T_CTL_CONTEXT

type _CTL_ENTRY = T_CTL_ENTRY

type _CTL_FIND_SUBJECT_PARA = T_CTL_FIND_SUBJECT_PARA

type _CTL_FIND_USAGE_PARA = T_CTL_FIND_USAGE_PARA

type _CTL_INFO = T_CTL_INFO

type _CTL_USAGE = T_CTL_USAGE

type _CTL_USAGE_MATCH = T_CTL_USAGE_MATCH

type _CTL_VERIFY_USAGE_PARA = T_CTL_VERIFY_USAGE_PARA

type _CTL_VERIFY_USAGE_STATUS = T_CTL_VERIFY_USAGE_STATUS

const _CVTBUFSIZE = 349

const _CWMO_DEFAULT = 0

const _CWMO_DISPATCH_CALLS = 1

const _CWMO_DISPATCH_WINDOW_MESSAGES = 2

type _CWMO_FLAGS = int32

const _CYGNET_12_WO = 69

const _CacheData = 2

const _CacheInstruction = 1

const _CacheTrace = 3

const _CacheUnified = 0

type _CertKeyType = int32

const _ChangerDoor = 5

const _ChangerDrive = 4

const _ChangerIEPort = 3

const _ChangerKeypad = 6

const _ChangerMaxElement = 7

const _ChangerSlot = 2

const _ChangerTransport = 1

const _Check_return_ = "__checkReturn"

const _CompatibilityInformationInActivationContext = 6

const _ComputerNameDnsDomain = 2

const _ComputerNameDnsFullyQualified = 3

const _ComputerNameDnsHostname = 1

const _ComputerNameMax = 8

const _ComputerNameNetBIOS = 0

const _ComputerNamePhysicalDnsDomain = 6

const _ComputerNamePhysicalDnsFullyQualified = 7

const _ComputerNamePhysicalDnsHostname = 5

const _ComputerNamePhysicalNetBIOS = 4

const _CriticalError = 3

const _CsDeviceNotification = 74

const _DATADIR_GET = 1

const _DATADIR_SET = 2

type _DATATYPES_INFO_1A = T_DATATYPES_INFO_1A

type _DATATYPES_INFO_1W = T_DATATYPES_INFO_1W

type _DCB = T_DCB

const _DCDC_DEFAULT = 0

const _DCDC_DISABLE_FONT_UPDATE = 1

const _DCDC_DISABLE_RELAYOUT = 2

const _DCOM_CALL_CANCELED = 2

const _DCOM_CALL_COMPLETE = 1

const _DCOM_NONE = 0

const _DDC_DEFAULT = 0

const _DDC_DISABLE_ALL = 1

const _DDC_DISABLE_CONTROL_RELAYOUT = 4

const _DDC_DISABLE_RESIZE = 2

const _DDS_4mm = 32

type _DEBUG_EVENT = T_DEBUG_EVENT

type _DECRYPTION_STATUS_BUFFER = T_DECRYPTION_STATUS_BUFFER

const _DEFAULT_COMPARTMENT_ID = 1

const _DELETE_SNAPSHOT_VHDSET_FLAG_NONE = 0

const _DELETE_SNAPSHOT_VHDSET_FLAG_PERSIST_RCT = 1

type _DELETE_SNAPSHOT_VHDSET_PARAMETERS = T_DELETE_SNAPSHOT_VHDSET_PARAMETERS

const _DELETE_SNAPSHOT_VHDSET_VERSION_1 = 1

const _DELETE_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED = 0

const _DEPENDENT_DISK_FLAG_FULLY_ALLOCATED = 2

const _DEPENDENT_DISK_FLAG_MULT_BACKING_FILES = 1

const _DEPENDENT_DISK_FLAG_NONE = 0

const _DEPENDENT_DISK_FLAG_NO_DRIVE_LETTER = 128

const _DEPENDENT_DISK_FLAG_NO_HOST_DISK = 512

const _DEPENDENT_DISK_FLAG_PARENT = 256

const _DEPENDENT_DISK_FLAG_PERMANENT_LIFETIME = 1024

const _DEPENDENT_DISK_FLAG_READ_ONLY = 4

const _DEPENDENT_DISK_FLAG_REMOTE = 8

const _DEPENDENT_DISK_FLAG_REMOVABLE = 64

const _DEPENDENT_DISK_FLAG_SYSTEM_VOLUME = 16

const _DEPENDENT_DISK_FLAG_SYSTEM_VOLUME_PARENT = 32

const _DEPPolicyAlwaysOff = 0

const _DEPPolicyAlwaysOn = 1

const _DEPPolicyOptIn = 2

const _DEPPolicyOptOut = 3

const _DEPTotalPolicyCount = 4

const _DESCKIND_FUNCDESC = 1

const _DESCKIND_IMPLICITAPPOBJ = 4

const _DESCKIND_MAX = 5

const _DESCKIND_NONE = 0

const _DESCKIND_TYPECOMP = 3

const _DESCKIND_VARDESC = 2

const _DETACH_VIRTUAL_DISK_FLAG_NONE = 0

type _DEVICE_COPY_OFFLOAD_DESCRIPTOR = T_DEVICE_COPY_OFFLOAD_DESCRIPTOR

type _DEVICE_DATA_SET_RANGE = T_DEVICE_DATA_SET_RANGE

type _DEVICE_DSM_NOTIFICATION_PARAMETERS = T_DEVICE_DSM_NOTIFICATION_PARAMETERS

type _DEVICE_LB_PROVISIONING_DESCRIPTOR = T_DEVICE_LB_PROVISIONING_DESCRIPTOR

type _DEVICE_MANAGE_DATA_SET_ATTRIBUTES = T_DEVICE_MANAGE_DATA_SET_ATTRIBUTES

type _DEVICE_MEDIA_INFO = T_DEVICE_MEDIA_INFO

type _DEVICE_POWER_DESCRIPTOR = T_DEVICE_POWER_DESCRIPTOR

type _DEVICE_SEEK_PENALTY_DESCRIPTOR = T_DEVICE_SEEK_PENALTY_DESCRIPTOR

type _DEVICE_TRIM_DESCRIPTOR = T_DEVICE_TRIM_DESCRIPTOR

type _DEVICE_WRITE_AGGREGATION_DESCRIPTOR = T_DEVICE_WRITE_AGGREGATION_DESCRIPTOR

type _DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = int32

type _DIALOG_DPI_CHANGE_BEHAVIORS = int32

const _DIGIT = 4

const _DISCARDCACHE_NOSAVE = 1

const _DISCARDCACHE_SAVEIFDIRTY = 0

type _DISCDLGSTRUCTA = T_DISCDLGSTRUCTA

type _DISCDLGSTRUCTW = T_DISCDLGSTRUCTW

type _DISK_CACHE_INFORMATION = T_DISK_CACHE_INFORMATION

type _DISK_CONTROLLER_NUMBER = T_DISK_CONTROLLER_NUMBER

type _DISK_DETECTION_INFO = T_DISK_DETECTION_INFO

type _DISK_EXTENT = T_DISK_EXTENT

type _DISK_EX_INT13_INFO = T_DISK_EX_INT13_INFO

type _DISK_GEOMETRY = T_DISK_GEOMETRY

type _DISK_GEOMETRY_EX = T_DISK_GEOMETRY_EX

type _DISK_GROW_PARTITION = T_DISK_GROW_PARTITION

type _DISK_HISTOGRAM = T_DISK_HISTOGRAM

type _DISK_INT13_INFO = T_DISK_INT13_INFO

type _DISK_LOGGING = T_DISK_LOGGING

type _DISK_PARTITION_INFO = T_DISK_PARTITION_INFO

type _DISK_PERFORMANCE = T_DISK_PERFORMANCE

type _DISK_RECORD = T_DISK_RECORD

const _DISPLAYCONFIG_COLOR_ENCODING_FORCE_UINT32 = 4294967295

const _DISPLAYCONFIG_COLOR_ENCODING_INTENSITY = 4

const _DISPLAYCONFIG_COLOR_ENCODING_RGB = 0

const _DISPLAYCONFIG_COLOR_ENCODING_YCBCR420 = 3

const _DISPLAYCONFIG_COLOR_ENCODING_YCBCR422 = 2

const _DISPLAYCONFIG_COLOR_ENCODING_YCBCR444 = 1

const _DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 4294967295

const _DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = 4

const _DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO = 9

const _DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL = 11

const _DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1

const _DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION = 7

const _DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE = 6

const _DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = 2

const _DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = 3

const _DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE = 10

const _DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION = 8

const _DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = 5

type _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO = T_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO

const _DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE = 3

const _DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 4294967295

const _DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1

const _DISPLAYCONFIG_MODE_INFO_TYPE_TARGET = 2

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO = 3

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO = 2

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = -1

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL = 17

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED = 16

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = -2147483648

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST = 15

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO = 1

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13

const _DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12

const _DISPLAYCONFIG_PIXELFORMAT_16BPP = 2

const _DISPLAYCONFIG_PIXELFORMAT_24BPP = 3

const _DISPLAYCONFIG_PIXELFORMAT_32BPP = 4

const _DISPLAYCONFIG_PIXELFORMAT_8BPP = 1

const _DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 4294967295

const _DISPLAYCONFIG_PIXELFORMAT_NONGDI = 5

const _DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 4294967295

const _DISPLAYCONFIG_ROTATION_IDENTITY = 1

const _DISPLAYCONFIG_ROTATION_ROTATE180 = 3

const _DISPLAYCONFIG_ROTATION_ROTATE270 = 4

const _DISPLAYCONFIG_ROTATION_ROTATE90 = 2

const _DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4

const _DISPLAYCONFIG_SCALING_CENTERED = 2

const _DISPLAYCONFIG_SCALING_CUSTOM = 5

const _DISPLAYCONFIG_SCALING_FORCE_UINT32 = 4294967295

const _DISPLAYCONFIG_SCALING_IDENTITY = 1

const _DISPLAYCONFIG_SCALING_PREFERRED = 128

const _DISPLAYCONFIG_SCALING_STRETCHED = 3

const _DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 4294967295

const _DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2

const _DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3

const _DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = 2

const _DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1

const _DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0

type _DISPLAYCONFIG_SDR_WHITE_LEVEL = T_DISPLAYCONFIG_SDR_WHITE_LEVEL

type _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE = T_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE

const _DISPLAYCONFIG_TOPOLOGY_CLONE = 2

const _DISPLAYCONFIG_TOPOLOGY_EXTEND = 4

const _DISPLAYCONFIG_TOPOLOGY_EXTERNAL = 8

const _DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 4294967295

const _DISPLAYCONFIG_TOPOLOGY_INTERNAL = 1

type _DISPLAY_DEVICEA = T_DISPLAY_DEVICEA

type _DISPLAY_DEVICEW = T_DISPLAY_DEVICEW

const _DLT = 39

const _DMI = 48

type _DOCINFOA = T_DOCINFOA

type _DOCINFOW = T_DOCINFOW

type _DOC_INFO_1A = T_DOC_INFO_1A

type _DOC_INFO_1W = T_DOC_INFO_1W

type _DOC_INFO_2A = T_DOC_INFO_2A

type _DOC_INFO_2W = T_DOC_INFO_2W

type _DOC_INFO_3A = T_DOC_INFO_3A

type _DOC_INFO_3W = T_DOC_INFO_3W

const _DOMAIN = 1

type _DPI_AWARENESS = int32

const _DPI_AWARENESS_INVALID = -1

const _DPI_AWARENESS_PER_MONITOR_AWARE = 2

const _DPI_AWARENESS_SYSTEM_AWARE = 1

const _DPI_AWARENESS_UNAWARE = 0

type _DPI_HOSTING_BEHAVIOR = int32

const _DPI_HOSTING_BEHAVIOR_DEFAULT = 0

const _DPI_HOSTING_BEHAVIOR_INVALID = -1

const _DPI_HOSTING_BEHAVIOR_MIXED = 1

type _DRAGINFOA = T_DRAGINFOA

type _DRAGINFOW = T_DRAGINFOW

type _DRAWPATRECT = T_DRAWPATRECT

type _DRIVERSTATUS = T_DRIVERSTATUS

type _DRIVER_INFO_1A = T_DRIVER_INFO_1A

type _DRIVER_INFO_1W = T_DRIVER_INFO_1W

type _DRIVER_INFO_2A = T_DRIVER_INFO_2A

type _DRIVER_INFO_2W = T_DRIVER_INFO_2W

type _DRIVER_INFO_3A = T_DRIVER_INFO_3A

type _DRIVER_INFO_3W = T_DRIVER_INFO_3W

type _DRIVER_INFO_4A = T_DRIVER_INFO_4A

type _DRIVER_INFO_4W = T_DRIVER_INFO_4W

type _DRIVER_INFO_5A = T_DRIVER_INFO_5A

type _DRIVER_INFO_5W = T_DRIVER_INFO_5W

type _DRIVER_INFO_6A = T_DRIVER_INFO_6A

type _DRIVER_INFO_6W = T_DRIVER_INFO_6W

type _DRIVER_INFO_8A = T_DRIVER_INFO_8A

type _DRIVER_INFO_8W = T_DRIVER_INFO_8W

type _DRIVE_LAYOUT_INFORMATION = T_DRIVE_LAYOUT_INFORMATION

type _DRIVE_LAYOUT_INFORMATION_EX = T_DRIVE_LAYOUT_INFORMATION_EX

type _DRIVE_LAYOUT_INFORMATION_GPT = T_DRIVE_LAYOUT_INFORMATION_GPT

type _DRIVE_LAYOUT_INFORMATION_MBR = T_DRIVE_LAYOUT_INFORMATION_MBR

const _DSA_FIPS186_2 = 0

const _DSA_FIPS186_3 = 1

const _DSA_HASH_ALGORITHM_SHA1 = 0

const _DSA_HASH_ALGORITHM_SHA256 = 1

const _DSA_HASH_ALGORITHM_SHA512 = 2

type _DSSSEED = T_DSSSEED

const _DST_L = 82

const _DST_M = 81

const _DST_S = 80

const _DVASPECT_CONTENT = 1

const _DVASPECT_DOCPRINT = 8

const _DVASPECT_ICON = 4

const _DVASPECT_THUMBNAIL = 2

const _DVD_R = 55

const _DVD_RAM = 88

const _DVD_ROM = 54

const _DVD_RW = 56

const _DV_6mm = 47

type _DWORD_BLOB = T_DWORD_BLOB

const _DemandLoad = 3

const _DetectExInt13 = 2

const _DetectInt13 = 1

const _DetectNone = 0

const _DeviceProblemCHMError = 2

const _DeviceProblemCHMMoveError = 6

const _DeviceProblemCHMZeroError = 7

const _DeviceProblemCalibrationError = 4

const _DeviceProblemCartridgeEjectError = 11

const _DeviceProblemCartridgeInsertError = 8

const _DeviceProblemDoorOpen = 3

const _DeviceProblemDriveError = 13

const _DeviceProblemGripperError = 12

const _DeviceProblemHardware = 1

const _DeviceProblemNone = 0

const _DeviceProblemPositionError = 9

const _DeviceProblemSensorError = 10

const _DeviceProblemTargetFailure = 5

const _DisableLoad = 4

const _DisplayBurst = 77

const _DriverType = 1

type _EFS_HASH_BLOB = T_EFS_HASH_BLOB

type _EFS_KEY_INFO = T_EFS_KEY_INFO

type _EFS_RPC_BLOB = T_EFS_RPC_BLOB

type _ENCRYPTED_DATA_INFO = T_ENCRYPTED_DATA_INFO

type _ENCRYPTION_BUFFER = T_ENCRYPTION_BUFFER

type _ENCRYPTION_CERTIFICATE = T_ENCRYPTION_CERTIFICATE

type _ENCRYPTION_CERTIFICATE_HASH = T_ENCRYPTION_CERTIFICATE_HASH

type _ENCRYPTION_CERTIFICATE_HASH_LIST = T_ENCRYPTION_CERTIFICATE_HASH_LIST

type _ENCRYPTION_CERTIFICATE_LIST = T_ENCRYPTION_CERTIFICATE_LIST

type _ENLISTMENT_BASIC_INFORMATION = T_ENLISTMENT_BASIC_INFORMATION

type _ENLISTMENT_CRM_INFORMATION = T_ENLISTMENT_CRM_INFORMATION

type _ENUM_SERVICE_STATUSA = T_ENUM_SERVICE_STATUSA

type _ENUM_SERVICE_STATUSW = T_ENUM_SERVICE_STATUSW

type _ENUM_SERVICE_STATUS_PROCESSA = T_ENUM_SERVICE_STATUS_PROCESSA

type _ENUM_SERVICE_STATUS_PROCESSW = T_ENUM_SERVICE_STATUS_PROCESSW

const _EOAC_ACCESS_CONTROL = 4

const _EOAC_ANY_AUTHORITY = 128

const _EOAC_APPID = 8

const _EOAC_AUTO_IMPERSONATE = 1024

const _EOAC_DEFAULT = 2048

const _EOAC_DISABLE_AAA = 4096

const _EOAC_DYNAMIC = 16

const _EOAC_DYNAMIC_CLOAKING = 64

const _EOAC_MAKE_FULLSIC = 256

const _EOAC_MUTUAL_AUTH = 1

const _EOAC_NONE = 0

const _EOAC_NO_CUSTOM_MARSHAL = 8192

const _EOAC_REQUIRE_FULLSIC = 512

const _EOAC_SECURE_REFS = 2

const _EOAC_STATIC_CLOAKING = 32

type _EVENTLOGRECORD = T_EVENTLOGRECORD

type _EVENTLOG_FULL_INFORMATION = T_EVENTLOG_FULL_INFORMATION

type _EVENTSFORLOGFILE = T_EVENTSFORLOGFILE

type _EV_EXTRA_CERT_CHAIN_POLICY_PARA = T_EV_EXTRA_CERT_CHAIN_POLICY_PARA

type _EV_EXTRA_CERT_CHAIN_POLICY_STATUS = T_EV_EXTRA_CERT_CHAIN_POLICY_STATUS

type _EXCEPTION_DEBUG_INFO = T_EXCEPTION_DEBUG_INFO

type _EXCEPTION_POINTERS = T_EXCEPTION_POINTERS

type _EXCEPTION_RECORD = T_EXCEPTION_RECORD

type _EXCEPTION_RECORD32 = T_EXCEPTION_RECORD32

type _EXCEPTION_RECORD64 = T_EXCEPTION_RECORD64

type _EXCEPTION_REGISTRATION_RECORD = T_EXCEPTION_REGISTRATION_RECORD

type _EXFAT_STATISTICS = T_EXFAT_STATISTICS

type _EXIT_PROCESS_DEBUG_INFO = T_EXIT_PROCESS_DEBUG_INFO

type _EXIT_THREAD_DEBUG_INFO = T_EXIT_THREAD_DEBUG_INFO

const _EXPAND_VIRTUAL_DISK_FLAG_NONE = 0

type _EXPAND_VIRTUAL_DISK_PARAMETERS = T_EXPAND_VIRTUAL_DISK_PARAMETERS

const _EXPAND_VIRTUAL_DISK_VERSION_1 = 1

const _EXPAND_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0

const _EXTCONN_CALLABLE = 4

const _EXTCONN_STRONG = 1

const _EXTCONN_WEAK = 2

type _EXTENDED_ENCRYPTED_DATA_INFO = T_EXTENDED_ENCRYPTED_DATA_INFO

const _EnlistmentBasicInformation = 0

const _EnlistmentCrmInformation = 2

const _EnlistmentRecoveryInformation = 1

const _EqualPriority = 0

const _ExitLatencySamplingPercentage = 78

const _ExtendedFileIdType = 2

const _F3_120M_512 = 13

const _F3_128Mb_512 = 20

const _F3_1Pt23_1024 = 18

const _F3_1Pt2_512 = 17

const _F3_1Pt44_512 = 2

const _F3_200Mb_512 = 23

const _F3_20Pt8_512 = 4

const _F3_230Mb_512 = 21

const _F3_240M_512 = 24

const _F3_2Pt88_512 = 3

const _F3_32M_512 = 25

const _F3_640_512 = 14

const _F3_720_512 = 5

const _F5_160_512 = 10

const _F5_180_512 = 9

const _F5_1Pt23_1024 = 19

const _F5_1Pt2_512 = 1

const _F5_320_1024 = 8

const _F5_320_512 = 7

const _F5_360_512 = 6

const _F5_640_512 = 15

const _F5_720_512 = 16

const _F8_256_128 = 22

type _FAT_STATISTICS = T_FAT_STATISTICS

const _FEATURE_ADDON_MANAGEMENT = 13

const _FEATURE_BEHAVIORS = 6

const _FEATURE_BLOCK_INPUT_PROMPTS = 27

const _FEATURE_DISABLE_LEGACY_COMPRESSION = 22

const _FEATURE_DISABLE_MK_PROTOCOL = 7

const _FEATURE_DISABLE_NAVIGATION_SOUNDS = 21

const _FEATURE_DISABLE_TELNET_PROTOCOL = 25

const _FEATURE_ENTRY_COUNT = 28

const _FEATURE_FEEDS = 26

const _FEATURE_FORCE_ADDR_AND_STATUS = 23

const _FEATURE_GET_URL_DOM_FILEPATH_UNENCODED = 18

const _FEATURE_HTTP_USERNAME_PASSWORD_DISABLE = 15

const _FEATURE_LOCALMACHINE_LOCKDOWN = 8

const _FEATURE_MIME_HANDLING = 2

const _FEATURE_MIME_SNIFFING = 3

const _FEATURE_OBJECT_CACHING = 0

const _FEATURE_PROTOCOL_LOCKDOWN = 14

const _FEATURE_RESTRICT_ACTIVEXINSTALL = 10

const _FEATURE_RESTRICT_FILEDOWNLOAD = 12

const _FEATURE_SAFE_BINDTOOBJECT = 16

const _FEATURE_SECURITYBAND = 9

const _FEATURE_SSLUX = 20

const _FEATURE_TABBED_BROWSING = 19

const _FEATURE_UNC_SAVEDFILECHECK = 17

const _FEATURE_VALIDATE_NAVIGATE_URL = 11

const _FEATURE_WEBOC_POPUPMANAGEMENT = 5

const _FEATURE_WINDOW_RESTRICTIONS = 4

const _FEATURE_XMLHTTP = 24

const _FEATURE_ZONE_ELEVATION = 1

const _FEEDBACK_GESTURE_PRESSANDTAP = 11

const _FEEDBACK_MAX = 4294967295

const _FEEDBACK_PEN_BARRELVISUALIZATION = 2

const _FEEDBACK_PEN_DOUBLETAP = 4

const _FEEDBACK_PEN_PRESSANDHOLD = 5

const _FEEDBACK_PEN_RIGHTTAP = 6

const _FEEDBACK_PEN_TAP = 3

const _FEEDBACK_TOUCH_CONTACTVISUALIZATION = 1

const _FEEDBACK_TOUCH_DOUBLETAP = 8

const _FEEDBACK_TOUCH_PRESSANDHOLD = 9

const _FEEDBACK_TOUCH_RIGHTTAP = 10

const _FEEDBACK_TOUCH_TAP = 7

type _FILEMUIINFO = T_FILEMUIINFO

type _FILESYSTEM_STATISTICS = T_FILESYSTEM_STATISTICS

type _FILETIME = T_FILETIME

type _FILE_ALIGNMENT_INFO = T_FILE_ALIGNMENT_INFO

type _FILE_ALLOCATED_RANGE_BUFFER = T_FILE_ALLOCATED_RANGE_BUFFER

type _FILE_ALLOCATION_INFO = T_FILE_ALLOCATION_INFO

type _FILE_ATTRIBUTE_TAG_INFO = T_FILE_ATTRIBUTE_TAG_INFO

type _FILE_BASIC_INFO = T_FILE_BASIC_INFO

type _FILE_CASE_SENSITIVE_INFO = T_FILE_CASE_SENSITIVE_INFO

type _FILE_COMPRESSION_INFO = T_FILE_COMPRESSION_INFO

type _FILE_DISPOSITION_INFO = T_FILE_DISPOSITION_INFO

type _FILE_DISPOSITION_INFO_EX = T_FILE_DISPOSITION_INFO_EX

type _FILE_END_OF_FILE_INFO = T_FILE_END_OF_FILE_INFO

type _FILE_FS_PERSISTENT_VOLUME_INFORMATION = T_FILE_FS_PERSISTENT_VOLUME_INFORMATION

type _FILE_FULL_DIR_INFO = T_FILE_FULL_DIR_INFO

type _FILE_ID_BOTH_DIR_INFO = T_FILE_ID_BOTH_DIR_INFO

type _FILE_ID_EXTD_DIR_INFO = T_FILE_ID_EXTD_DIR_INFO

type _FILE_ID_INFO = T_FILE_ID_INFO

type _FILE_IO_PRIORITY_HINT_INFO = T_FILE_IO_PRIORITY_HINT_INFO

type _FILE_MAKE_COMPATIBLE_BUFFER = T_FILE_MAKE_COMPATIBLE_BUFFER

type _FILE_NAME_INFO = T_FILE_NAME_INFO

type _FILE_NOTIFY_INFORMATION = T_FILE_NOTIFY_INFORMATION

type _FILE_OBJECTID_BUFFER = T_FILE_OBJECTID_BUFFER

type _FILE_PREFETCH = T_FILE_PREFETCH

type _FILE_PREFETCH_EX = T_FILE_PREFETCH_EX

type _FILE_PROVIDER_EXTERNAL_INFO_V0 = T_FILE_PROVIDER_EXTERNAL_INFO_V0

type _FILE_PROVIDER_EXTERNAL_INFO_V1 = T_FILE_PROVIDER_EXTERNAL_INFO_V1

type _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER = T_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER

type _FILE_QUERY_SPARING_BUFFER = T_FILE_QUERY_SPARING_BUFFER

type _FILE_REMOTE_PROTOCOL_INFO = T_FILE_REMOTE_PROTOCOL_INFO

type _FILE_RENAME_INFO = T_FILE_RENAME_INFO

type _FILE_SEGMENT_ELEMENT = T_FILE_SEGMENT_ELEMENT

type _FILE_SET_DEFECT_MGMT_BUFFER = T_FILE_SET_DEFECT_MGMT_BUFFER

type _FILE_SET_SPARSE_BUFFER = T_FILE_SET_SPARSE_BUFFER

type _FILE_STANDARD_INFO = T_FILE_STANDARD_INFO

type _FILE_STORAGE_INFO = T_FILE_STORAGE_INFO

type _FILE_STREAM_INFO = T_FILE_STREAM_INFO

type _FILE_SYSTEM_RECOGNITION_INFORMATION = T_FILE_SYSTEM_RECOGNITION_INFORMATION

type _FILE_SYSTEM_RECOGNITION_STRUCTURE = T_FILE_SYSTEM_RECOGNITION_STRUCTURE

type _FILE_TYPE_NOTIFICATION_INPUT = T_FILE_TYPE_NOTIFICATION_INPUT

type _FILE_ZERO_DATA_INFORMATION = T_FILE_ZERO_DATA_INFORMATION

type _FIND_NAME_BUFFER = T_FIND_NAME_BUFFER

type _FIND_NAME_HEADER = T_FIND_NAME_HEADER

type _FIXED = T_FIXED

type _FLAGGED_BYTE_BLOB = T_FLAGGED_BYTE_BLOB

type _FLAGGED_WORD_BLOB = T_FLAGGED_WORD_BLOB

type _FLAG_STGMEDIUM = T_FLAG_STGMEDIUM

type _FLOAT128 = T_FLOAT128

type _FOCUS_EVENT_RECORD = T_FOCUS_EVENT_RECORD

const _FORCENAMELESSUNION = 1

type _FORMAT_EX_PARAMETERS = T_FORMAT_EX_PARAMETERS

type _FORMAT_PARAMETERS = T_FORMAT_PARAMETERS

type _FORM_INFO_1A = T_FORM_INFO_1A

type _FORM_INFO_1W = T_FORM_INFO_1W

type _FORM_INFO_2A = T_FORM_INFO_2A

type _FORM_INFO_2W = T_FORM_INFO_2W

const _FPCLASS_ND = 16

const _FPCLASS_NINF = 4

const _FPCLASS_NN = 8

const _FPCLASS_NZ = 32

const _FPCLASS_PD = 128

const _FPCLASS_PINF = 512

const _FPCLASS_PN = 256

const _FPCLASS_PZ = 64

const _FPCLASS_QNAN = 2

const _FPCLASS_SNAN = 1

type _FPO_DATA = T_FPO_DATA

const _FREEENTRY = 0

type _FSCTL_QUERY_FAT_BPB_BUFFER = T_FSCTL_QUERY_FAT_BPB_BUFFER

type _FULL_PTR_TO_REFID_ELEMENT = T_FULL_PTR_TO_REFID_ELEMENT

type _FULL_PTR_XLAT_TABLES = T_FULL_PTR_XLAT_TABLES

const _FUNCFLAG_FBINDABLE = 4

const _FUNCFLAG_FDEFAULTBIND = 32

const _FUNCFLAG_FDEFAULTCOLLELEM = 256

const _FUNCFLAG_FDISPLAYBIND = 16

const _FUNCFLAG_FHIDDEN = 64

const _FUNCFLAG_FIMMEDIATEBIND = 4096

const _FUNCFLAG_FNONBROWSABLE = 1024

const _FUNCFLAG_FREPLACEABLE = 2048

const _FUNCFLAG_FREQUESTEDIT = 8

const _FUNCFLAG_FRESTRICTED = 1

const _FUNCFLAG_FSOURCE = 2

const _FUNCFLAG_FUIDEFAULT = 512

const _FUNCFLAG_FUSESGETLASTERROR = 128

const _FUNC_DISPATCH = 4

const _FUNC_NONVIRTUAL = 2

const _FUNC_PUREVIRTUAL = 1

const _FUNC_STATIC = 3

const _FUNC_VIRTUAL = 0

const _FileAlignmentInfo = 17

const _FileAllocationInfo = 5

const _FileAttributeTagInfo = 9

const _FileBasicInfo = 0

const _FileCaseSensitiveInfo = 21

const _FileCompressionInfo = 8

const _FileDispositionInfo = 4

const _FileEndOfFileInfo = 6

const _FileFullDirectoryInfo = 14

const _FileFullDirectoryRestartInfo = 15

const _FileIdBothDirectoryInfo = 10

const _FileIdBothDirectoryRestartInfo = 11

const _FileIdExtdDirectoryInfo = 19

const _FileIdExtdDirectoryRestartInfo = 20

const _FileIdInfo = 18

const _FileIdType = 0

const _FileInformationInAssemblyOfAssemblyInActivationContext = 4

const _FileInformationInAssemblyOfAssemblyInActivationContxt = 4

const _FileIoPriorityHintInfo = 12

const _FileNameInfo = 2

const _FileNormalizedNameInfo = 22

const _FileRemoteProtocolInfo = 13

const _FileRenameInfo = 3

const _FileStandardInfo = 1

const _FileStorageInfo = 16

const _FileStreamInfo = 7

const _FileSystemType = 2

const _FindExInfoBasic = 1

const _FindExInfoMaxInfoLevel = 2

const _FindExInfoStandard = 0

const _FindExSearchLimitToDevices = 2

const _FindExSearchLimitToDirectories = 1

const _FindExSearchMaxSearchOp = 3

const _FindExSearchNameMatch = 0

const _FindStreamInfoMaxInfoLevel = 1

const _FindStreamInfoStandard = 0

const _FirmwareTableInformationRegistered = 69

const _FirmwareTypeBios = 1

const _FirmwareTypeMax = 3

const _FirmwareTypeUefi = 2

const _FirmwareTypeUnknown = 0

const _FixedMedia = 12

const _ForcedShutdown = 1

type _GDI_NONREMOTE = T_GDI_NONREMOTE

type _GDI_OBJECT = T_GDI_OBJECT

type _GENERIC_BINDING_ROUTINE_PAIR = T_GENERIC_BINDING_ROUTINE_PAIR

type _GENERIC_MAPPING = T_GENERIC_MAPPING

const _GEOCLASS_ALL = 0

const _GEOCLASS_NATION = 16

const _GEOCLASS_REGION = 14

const _GEO_CURRENCYCODE = 15

const _GEO_CURRENCYSYMBOL = 16

const _GEO_DIALINGCODE = 14

const _GEO_FRIENDLYNAME = 8

const _GEO_ISO2 = 4

const _GEO_ISO3 = 5

const _GEO_ISO_UN_NUMBER = 12

const _GEO_LATITUDE = 2

const _GEO_LCID = 7

const _GEO_LONGITUDE = 3

const _GEO_NATION = 1

const _GEO_OFFICIALLANGUAGES = 11

const _GEO_OFFICIALNAME = 9

const _GEO_PARENT = 13

const _GEO_RFC1766 = 6

const _GEO_TIMEZONES = 10

type _GETVERSIONINPARAMS = T_GETVERSIONINPARAMS

type _GET_CHANGER_PARAMETERS = T_GET_CHANGER_PARAMETERS

type _GET_LENGTH_INFORMATION = T_GET_LENGTH_INFORMATION

type _GET_MEDIA_TYPES = T_GET_MEDIA_TYPES

const _GET_STORAGE_DEPENDENCY_FLAG_DISK_HANDLE = 2

const _GET_STORAGE_DEPENDENCY_FLAG_HOST_VOLUMES = 1

const _GET_STORAGE_DEPENDENCY_FLAG_NONE = 0

type _GET_VIRTUAL_DISK_INFO = T_GET_VIRTUAL_DISK_INFO

const _GET_VIRTUAL_DISK_INFO_CHANGE_TRACKING_STATE = 15

const _GET_VIRTUAL_DISK_INFO_FRAGMENTATION = 12

const _GET_VIRTUAL_DISK_INFO_IDENTIFIER = 2

const _GET_VIRTUAL_DISK_INFO_IS_4K_ALIGNED = 8

const _GET_VIRTUAL_DISK_INFO_IS_LOADED = 13

const _GET_VIRTUAL_DISK_INFO_PARENT_IDENTIFIER = 4

const _GET_VIRTUAL_DISK_INFO_PARENT_LOCATION = 3

const _GET_VIRTUAL_DISK_INFO_PARENT_TIMESTAMP = 5

const _GET_VIRTUAL_DISK_INFO_PHYSICAL_DISK = 9

const _GET_VIRTUAL_DISK_INFO_PROVIDER_SUBTYPE = 7

const _GET_VIRTUAL_DISK_INFO_SIZE = 1

const _GET_VIRTUAL_DISK_INFO_SMALLEST_SAFE_VIRTUAL_SIZE = 11

const _GET_VIRTUAL_DISK_INFO_UNSPECIFIED = 0

const _GET_VIRTUAL_DISK_INFO_VHD_PHYSICAL_SECTOR_SIZE = 10

const _GET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID = 14

const _GET_VIRTUAL_DISK_INFO_VIRTUAL_STORAGE_TYPE = 6

type _GLYPHMETRICS = T_GLYPHMETRICS

type _GLYPHMETRICSFLOAT = T_GLYPHMETRICSFLOAT

type _GRADIENT_RECT = T_GRADIENT_RECT

type _GRADIENT_TRIANGLE = T_GRADIENT_TRIANGLE

type _GROUP_AFFINITY = T_GROUP_AFFINITY

type _GROUP_RELATIONSHIP = T_GROUP_RELATIONSHIP

type _GUID = T_GUID

const _GetFileExInfoStandard = 0

const _GetFileExMaxInfoLevel = 1

const _GetPowerRequestList = 45

const _GetPowerSettingValue = 59

const _GroupPark = 48

type _HARDWARE_COUNTER_DATA = T_HARDWARE_COUNTER_DATA

const _HEAPBADBEGIN = -3

const _HEAPBADNODE = -4

const _HEAPBADPTR = -6

const _HEAPEMPTY = -1

const _HEAPEND = -5

type _HEAPINFO = T_HEAPINFO

const _HEAPOK = -2

type _HEAP_SUMMARY = T_HEAP_SUMMARY

const _HEX = 128

type _HISTOGRAM_BUCKET = T_HISTOGRAM_BUCKET

const _HITACHI_12_WO = 68

type _HMAC_Info = T_HMAC_Info

type _HTTPSPolicyCallbackData = T_HTTPSPolicyCallbackData

const _HUGE = 0

type _HYPER_SIZEDARR = T_HYPER_SIZEDARR

const _HeapCompatibilityInformation = 0

const _HeapEnableTerminationOnCorruption = 1

const _HighMemoryResourceNotification = 1

const _I16_MAX = 32767

const _I16_MIN = -32768

const _I32_MAX = 2147483647

const _I32_MIN = -2147483648

const _I64_MAX = 9223372036854775807

const _I64_MIN = -9223372036854775808

const _I8_MAX = 127

const _I8_MIN = -128

const _IBM_3480 = 41

const _IBM_3490E = 42

const _IBM_Magstar_3590 = 43

const _IBM_Magstar_MP = 44

type _ICONINFO = T_ICONINFO

type _ICONINFOEXA = T_ICONINFOEXA

type _ICONINFOEXW = T_ICONINFOEXW

type _IDEREGS = T_IDEREGS

const _IDL_CS_IN_PLACE_CONVERT = 1

const _IDL_CS_NEW_BUFFER_CONVERT = 2

const _IDL_CS_NO_CONVERT = 0

type _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = T_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY

type _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = T_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY

type _IMAGE_ARCHIVE_MEMBER_HEADER = T_IMAGE_ARCHIVE_MEMBER_HEADER

type _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = T_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY

type _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY = T_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY

type _IMAGE_AUX_SYMBOL = T_IMAGE_AUX_SYMBOL

type _IMAGE_AUX_SYMBOL_EX = T_IMAGE_AUX_SYMBOL_EX

type _IMAGE_AUX_SYMBOL_TYPE = int32

const _IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1

type _IMAGE_BASE_RELOCATION = T_IMAGE_BASE_RELOCATION

type _IMAGE_BOUND_FORWARDER_REF = T_IMAGE_BOUND_FORWARDER_REF

type _IMAGE_BOUND_IMPORT_DESCRIPTOR = T_IMAGE_BOUND_IMPORT_DESCRIPTOR

type _IMAGE_CE_RUNTIME_FUNCTION_ENTRY = T_IMAGE_CE_RUNTIME_FUNCTION_ENTRY

type _IMAGE_COFF_SYMBOLS_HEADER = T_IMAGE_COFF_SYMBOLS_HEADER

const _IMAGE_COR_EATJ_THUNK_SIZE = 32

const _IMAGE_COR_MIH_BASICBLOCK = 8

const _IMAGE_COR_MIH_EHRVA = 2

const _IMAGE_COR_MIH_METHODRVA = 1

type _IMAGE_DATA_DIRECTORY = T_IMAGE_DATA_DIRECTORY

type _IMAGE_DEBUG_DIRECTORY = T_IMAGE_DEBUG_DIRECTORY

type _IMAGE_DEBUG_MISC = T_IMAGE_DEBUG_MISC

type _IMAGE_DELAYLOAD_DESCRIPTOR = T_IMAGE_DELAYLOAD_DESCRIPTOR

type _IMAGE_DOS_HEADER = T_IMAGE_DOS_HEADER

type _IMAGE_EXPORT_DIRECTORY = T_IMAGE_EXPORT_DIRECTORY

type _IMAGE_FILE_HEADER = T_IMAGE_FILE_HEADER

type _IMAGE_FUNCTION_ENTRY = T_IMAGE_FUNCTION_ENTRY

type _IMAGE_FUNCTION_ENTRY64 = T_IMAGE_FUNCTION_ENTRY64

type _IMAGE_IMPORT_BY_NAME = T_IMAGE_IMPORT_BY_NAME

type _IMAGE_IMPORT_DESCRIPTOR = T_IMAGE_IMPORT_DESCRIPTOR

type _IMAGE_LINENUMBER = T_IMAGE_LINENUMBER

type _IMAGE_NT_HEADERS = T_IMAGE_NT_HEADERS

type _IMAGE_NT_HEADERS64 = T_IMAGE_NT_HEADERS64

type _IMAGE_OPTIONAL_HEADER = T_IMAGE_OPTIONAL_HEADER

type _IMAGE_OPTIONAL_HEADER64 = T_IMAGE_OPTIONAL_HEADER64

type _IMAGE_OS2_HEADER = T_IMAGE_OS2_HEADER

type _IMAGE_RELOCATION = T_IMAGE_RELOCATION

type _IMAGE_RESOURCE_DATA_ENTRY = T_IMAGE_RESOURCE_DATA_ENTRY

type _IMAGE_RESOURCE_DIRECTORY = T_IMAGE_RESOURCE_DIRECTORY

type _IMAGE_RESOURCE_DIRECTORY_ENTRY = T_IMAGE_RESOURCE_DIRECTORY_ENTRY

type _IMAGE_RESOURCE_DIRECTORY_STRING = T_IMAGE_RESOURCE_DIRECTORY_STRING

type _IMAGE_RESOURCE_DIR_STRING_U = T_IMAGE_RESOURCE_DIR_STRING_U

type _IMAGE_ROM_HEADERS = T_IMAGE_ROM_HEADERS

type _IMAGE_ROM_OPTIONAL_HEADER = T_IMAGE_ROM_OPTIONAL_HEADER

type _IMAGE_RUNTIME_FUNCTION_ENTRY = T_IMAGE_RUNTIME_FUNCTION_ENTRY

type _IMAGE_SECTION_HEADER = T_IMAGE_SECTION_HEADER

type _IMAGE_SEPARATE_DEBUG_HEADER = T_IMAGE_SEPARATE_DEBUG_HEADER

type _IMAGE_SYMBOL = T_IMAGE_SYMBOL

type _IMAGE_SYMBOL_EX = T_IMAGE_SYMBOL_EX

type _IMAGE_THUNK_DATA32 = T_IMAGE_THUNK_DATA32

type _IMAGE_THUNK_DATA64 = T_IMAGE_THUNK_DATA64

type _IMAGE_TLS_DIRECTORY32 = T_IMAGE_TLS_DIRECTORY32

type _IMAGE_TLS_DIRECTORY64 = T_IMAGE_TLS_DIRECTORY64

type _IMAGE_VXD_HEADER = T_IMAGE_VXD_HEADER

const _IMDT_KEYBOARD = 1

const _IMDT_MOUSE = 2

const _IMDT_PEN = 8

const _IMDT_TOUCH = 4

const _IMDT_TOUCHPAD = 16

const _IMDT_UNAVAILABLE = 0

const _IMO_HARDWARE = 1

const _IMO_INJECTED = 2

const _IMO_SYSTEM = 4

const _IMO_UNAVAILABLE = 0

const _IMPORT_OBJECT_CODE = 0

const _IMPORT_OBJECT_CONST = 2

const _IMPORT_OBJECT_DATA = 1

const _IMPORT_OBJECT_NAME = 1

const _IMPORT_OBJECT_NAME_NO_PREFIX = 2

type _IMPORT_OBJECT_NAME_TYPE = int32

const _IMPORT_OBJECT_NAME_UNDECORATE = 3

const _IMPORT_OBJECT_ORDINAL = 0

type _IMPORT_OBJECT_TYPE = int32

const _INC_CRT_UNICODE_MACROS = 2

type _INPUT_RECORD = T_INPUT_RECORD

const _INTEGRAL_MAX_BITS = 64

const _INVOKE_FUNC = 1

const _INVOKE_PROPERTYGET = 2

const _INVOKE_PROPERTYPUT = 4

const _INVOKE_PROPERTYPUTREF = 8

const _IOB_ENTRIES = 20

const _IOEOF = 16

const _IOERR = 32

const _IOLBF = 64

const _IOMEGA_JAZ = 74

const _IOMEGA_ZIP = 73

const _IOMYBUF = 8

const _IONBF = 4

const _IOREAD = 1

const _IORW = 128

const _IOSTRG = 64

const _IOWRT = 2

type _IO_COUNTERS = T_IO_COUNTERS

const _IdleResiliency = 60

const _IdleShutdown = 0

const _IgnoreError = 0

type _ImageArchitectureEntry = T_ImageArchitectureEntry

type _ImageArchitectureHeader = T_ImageArchitectureHeader

const _IoPriorityHintLow = 1

const _IoPriorityHintNormal = 2

const _IoPriorityHintVeryLow = 0

type _JIT_DEBUG_INFO = T_JIT_DEBUG_INFO

type _JOBOBJECT_ASSOCIATE_COMPLETION_PORT = T_JOBOBJECT_ASSOCIATE_COMPLETION_PORT

type _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION = T_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION

type _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = T_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION

type _JOBOBJECT_BASIC_LIMIT_INFORMATION = T_JOBOBJECT_BASIC_LIMIT_INFORMATION

type _JOBOBJECT_BASIC_PROCESS_ID_LIST = T_JOBOBJECT_BASIC_PROCESS_ID_LIST

type _JOBOBJECT_BASIC_UI_RESTRICTIONS = T_JOBOBJECT_BASIC_UI_RESTRICTIONS

type _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION = T_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION

type _JOBOBJECT_END_OF_JOB_TIME_INFORMATION = T_JOBOBJECT_END_OF_JOB_TIME_INFORMATION

type _JOBOBJECT_EXTENDED_LIMIT_INFORMATION = T_JOBOBJECT_EXTENDED_LIMIT_INFORMATION

type _JOBOBJECT_JOBSET_INFORMATION = T_JOBOBJECT_JOBSET_INFORMATION

type _JOBOBJECT_LIMIT_VIOLATION_INFORMATION = T_JOBOBJECT_LIMIT_VIOLATION_INFORMATION

type _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = T_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

type _JOBOBJECT_SECURITY_LIMIT_INFORMATION = T_JOBOBJECT_SECURITY_LIMIT_INFORMATION

type _JOB_INFO_1A = T_JOB_INFO_1A

type _JOB_INFO_1W = T_JOB_INFO_1W

type _JOB_INFO_2A = T_JOB_INFO_2A

type _JOB_INFO_2W = T_JOB_INFO_2W

type _JOB_INFO_3 = T_JOB_INFO_3

type _JOB_SET_ARRAY = T_JOB_SET_ARRAY

const _JobObjectAssociateCompletionPortInformation = 7

const _JobObjectBasicAccountingInformation = 1

const _JobObjectBasicAndIoAccountingInformation = 8

const _JobObjectBasicLimitInformation = 2

const _JobObjectBasicProcessIdList = 3

const _JobObjectBasicUIRestrictions = 4

const _JobObjectCompletionCounter = 17

const _JobObjectCompletionFilter = 16

const _JobObjectCpuRateControlInformation = 15

const _JobObjectEndOfJobTimeInformation = 6

const _JobObjectExtendedLimitInformation = 9

const _JobObjectGroupInformation = 11

const _JobObjectGroupInformationEx = 14

const _JobObjectJobSetInformation = 10

const _JobObjectLimitViolationInformation = 13

const _JobObjectNotificationLimitInformation = 12

const _JobObjectReserved1Information = 18

const _JobObjectReserved2Information = 19

const _JobObjectReserved3Information = 20

const _JobObjectReserved4Information = 21

const _JobObjectReserved5Information = 22

const _JobObjectReserved6Information = 23

const _JobObjectReserved7Information = 24

const _JobObjectReserved8Information = 25

const _JobObjectSecurityLimitInformation = 5

type _KCRM_MARSHAL_HEADER = T_KCRM_MARSHAL_HEADER

type _KCRM_PROTOCOL_BLOB = T_KCRM_PROTOCOL_BLOB

type _KCRM_TRANSACTION_BLOB = T_KCRM_TRANSACTION_BLOB

type _KEY_EVENT_RECORD = T_KEY_EVENT_RECORD

type _KEY_TYPE_SUBTYPE = T_KEY_TYPE_SUBTYPE

const _KODAK_14_WO = 70

type _KTMOBJECT_CURSOR = T_KTMOBJECT_CURSOR

const _KTMOBJECT_ENLISTMENT = 3

const _KTMOBJECT_INVALID = 4

const _KTMOBJECT_RESOURCE_MANAGER = 2

const _KTMOBJECT_TRANSACTION = 0

const _KTMOBJECT_TRANSACTION_MANAGER = 1

const _KeepPrefetchedData = 1

const _KeepReadData = 2

const _KernelEnabled = 2

const _KeyTypeHardware = 6

const _KeyTypeOther = 0

const _KeyTypePassport = 3

const _KeyTypePassportRemote = 4

const _KeyTypePassportSmartCard = 5

const _KeyTypePhysicalSmartCard = 2

const _KeyTypeSelfSigned = 8

const _KeyTypeSoftware = 7

const _KeyTypeVirtualSmartCard = 1

type _LANA_ENUM = T_LANA_ENUM

type _LARGE_INTEGER = T_LARGE_INTEGER

type _LDBL12 = T_LDBL12

type _LDOUBLE = T_LDOUBLE

type _LDT_ENTRY = T_LDT_ENTRY

const _LEADBYTE = 32768

const _LIBFLAG_FCONTROL = 2

const _LIBFLAG_FHASDISKIMAGE = 8

const _LIBFLAG_FHIDDEN = 4

const _LIBFLAG_FRESTRICTED = 1

type _LIST_ENTRY = T_LIST_ENTRY

type _LOAD_DLL_DEBUG_INFO = T_LOAD_DLL_DEBUG_INFO

const _LOCK_EXCLUSIVE = 2

const _LOCK_ONLYONCE = 4

const _LOCK_WRITE = 1

type _LONGDOUBLE = T_LONGDOUBLE

type _LONG_SIZEDARR = T_LONG_SIZEDARR

type _LOOKUP_STREAM_FROM_CLUSTER_ENTRY = T_LOOKUP_STREAM_FROM_CLUSTER_ENTRY

type _LOOKUP_STREAM_FROM_CLUSTER_INPUT = T_LOOKUP_STREAM_FROM_CLUSTER_INPUT

type _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT = T_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT

const _LOWER = 2

const _LTO_Accelis = 87

const _LTO_Ultrium = 86

const _LT_DONT_CARE = 0

const _LT_LOWEST_LATENCY = 1

type _LUID = T_LUID

type _LUID_AND_ATTRIBUTES = T_LUID_AND_ATTRIBUTES

const _LastResumePerformance = 76

const _LastSleepTime = 15

const _LastWakeTime = 14

const _LibraryApplication = 1

const _LogicalProcessorIdling = 56

const _LowMemoryResourceNotification = 0

type _M128A = T_M128A

type _MALLOC_FREE_STRUCT = T_MALLOC_FREE_STRUCT

type _MAT2 = T_MAT2

const _MAX_CLASS_NAME = 1024

const _MAX_DIR = 256

const _MAX_DRIVE = 3

const _MAX_ENV = 32767

const _MAX_EXT = 256

const _MAX_FNAME = 256

const _MAX_PACKAGE_NAME = 1024

const _MAX_PATH = 260

const _MAX_WAIT_MALLOC_CRT = 60000

const _MAX_ZONE_DESCRIPTION = 200

const _MAX_ZONE_PATH = 260

const _MCRTIMP = "_CRTIMP"

const _MEMCTX_MACSYSTEM = 3

const _MEMCTX_SAME = -2

const _MEMCTX_SHARED = 2

const _MEMCTX_TASK = 1

const _MEMCTX_UNKNOWN = -1

type _MEMORYSTATUS = T_MEMORYSTATUS

type _MEMORYSTATUSEX = T_MEMORYSTATUSEX

type _MEMORY_BASIC_INFORMATION = T_MEMORY_BASIC_INFORMATION

type _MEMORY_BASIC_INFORMATION32 = T_MEMORY_BASIC_INFORMATION32

type _MEMORY_BASIC_INFORMATION64 = T_MEMORY_BASIC_INFORMATION64

type _MEMORY_PRIORITY_INFORMATION = T_MEMORY_PRIORITY_INFORMATION

type _MEM_ADDRESS_REQUIREMENTS = T_MEM_ADDRESS_REQUIREMENTS

type _MEM_EXTENDED_PARAMETER_TYPE = int32

type _MEM_SECTION_EXTENDED_PARAMETER_TYPE = int32

type _MENU_EVENT_RECORD = T_MENU_EVENT_RECORD

const _MERGE_VIRTUAL_DISK_FLAG_NONE = 0

type _MERGE_VIRTUAL_DISK_PARAMETERS = T_MERGE_VIRTUAL_DISK_PARAMETERS

const _MERGE_VIRTUAL_DISK_VERSION_1 = 1

const _MERGE_VIRTUAL_DISK_VERSION_2 = 2

const _MERGE_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0

type _MESSAGE_RESOURCE_BLOCK = T_MESSAGE_RESOURCE_BLOCK

type _MESSAGE_RESOURCE_DATA = T_MESSAGE_RESOURCE_DATA

type _MESSAGE_RESOURCE_ENTRY = T_MESSAGE_RESOURCE_ENTRY

type _MIDL_FORMAT_STRING = T_MIDL_FORMAT_STRING

type _MIDL_SERVER_INFO_ = T_MIDL_SERVER_INFO_

type _MIDL_STUBLESS_PROXY_INFO = T_MIDL_STUBLESS_PROXY_INFO

type _MIDL_STUB_DESC = T_MIDL_STUB_DESC

type _MIDL_STUB_MESSAGE = T_MIDL_STUB_MESSAGE

type _MIDL_SYNTAX_INFO = T_MIDL_SYNTAX_INFO

const _MIMETYPEPROP = 0

const _MIRROR_VIRTUAL_DISK_FLAG_EXISTING_FILE = 1

const _MIRROR_VIRTUAL_DISK_FLAG_NONE = 0

type _MIRROR_VIRTUAL_DISK_PARAMETERS = T_MIRROR_VIRTUAL_DISK_PARAMETERS

const _MIRROR_VIRTUAL_DISK_VERSION_1 = 1

const _MIRROR_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0

const _MKRREDUCE_ALL = 0

const _MKRREDUCE_ONE = 196608

const _MKRREDUCE_THROUGHUSER = 65536

const _MKRREDUCE_TOUSER = 131072

const _MKSYS_ANTIMONIKER = 3

const _MKSYS_CLASSMONIKER = 7

const _MKSYS_FILEMONIKER = 2

const _MKSYS_GENERICCOMPOSITE = 1

const _MKSYS_ITEMMONIKER = 4

const _MKSYS_LUAMONIKER = 10

const _MKSYS_NONE = 0

const _MKSYS_OBJREFMONIKER = 8

const _MKSYS_POINTERMONIKER = 5

const _MKSYS_SESSIONMONIKER = 9

type _MMCKINFO = T_MMCKINFO

type _MMIOINFO = T_MMIOINFO

type _MODEMDEVCAPS = T_MODEMDEVCAPS

type _MODEMSETTINGS = T_MODEMSETTINGS

const _MODIFY_VHDSET_DEFAULT_SNAPSHOT_PATH = 3

const _MODIFY_VHDSET_FLAG_NONE = 0

type _MODIFY_VHDSET_PARAMETERS = T_MODIFY_VHDSET_PARAMETERS

const _MODIFY_VHDSET_REMOVE_SNAPSHOT = 2

const _MODIFY_VHDSET_SNAPSHOT_PATH = 1

const _MODIFY_VHDSET_UNSPECIFIED = 0

type _MONITOR_INFO_1A = T_MONITOR_INFO_1A

type _MONITOR_INFO_1W = T_MONITOR_INFO_1W

type _MONITOR_INFO_2A = T_MONITOR_INFO_2A

type _MONITOR_INFO_2W = T_MONITOR_INFO_2W

type _MOUSE_EVENT_RECORD = T_MOUSE_EVENT_RECORD

type _MOVE_FILE_RECORD_DATA = T_MOVE_FILE_RECORD_DATA

const _MO_3_RW = 57

const _MO_5_LIMDOW = 60

const _MO_5_RW = 59

const _MO_5_WO = 58

const _MO_NFR_525 = 71

const _MP2_8mm = 79

const _MP_8mm = 36

const _MRTIMP2 = "_CRTIMP"

const _MSHCTX_CROSSCTX = 4

const _MSHCTX_DIFFERENTMACHINE = 2

const _MSHCTX_INPROC = 3

const _MSHCTX_LOCAL = 0

const _MSHCTX_NOSHAREDMEM = 1

const _MSHLFLAGS_NOPING = 4

const _MSHLFLAGS_NORMAL = 0

const _MSHLFLAGS_RESERVED1 = 8

const _MSHLFLAGS_RESERVED2 = 16

const _MSHLFLAGS_RESERVED3 = 32

const _MSHLFLAGS_RESERVED4 = 64

const _MSHLFLAGS_TABLESTRONG = 1

const _MSHLFLAGS_TABLEWEAK = 2

const _MandatoryLevelCount = 6

const _MandatoryLevelHigh = 3

const _MandatoryLevelLow = 1

const _MandatoryLevelMedium = 2

const _MandatoryLevelSecureProcess = 5

const _MandatoryLevelSystem = 4

const _MandatoryLevelUntrusted = 0

const _MaxActivationContextInfoClass = 8

const _MaxHardwareCounterType = 1

const _MaxJobObjectInfoClass = 26

const _MaxProcessMitigationPolicy = 17

const _MaxTokenInfoClass = 41

const _MaximumFileIdType = 3

const _MaximumFileInfoByHandleClass = 23

const _MaximumIoPriorityHintType = 3

const _MemExtendedParameterAddressRequirements = 1

const _MemExtendedParameterAttributeFlags = 5

const _MemExtendedParameterInvalidType = 0

const _MemExtendedParameterMax = 6

const _MemExtendedParameterNumaNode = 2

const _MemExtendedParameterPartitionHandle = 3

const _MemExtendedParameterUserPhysicalHandle = 4

const _MemSectionExtendedParameterInvalidType = 0

const _MemSectionExtendedParameterMax = 3

const _MemSectionExtendedParameterNumaNode = 2

const _MemSectionExtendedParameterUserPhysicalFlags = 1

const _MiniQic = 33

const _MonitorCapabilities = 40

const _MonitorInvocation = 68

const _MonitorRequestReasonAcDcDisplayBurst = 5

const _MonitorRequestReasonFullWake = 9

const _MonitorRequestReasonIdleTimeout = 12

const _MonitorRequestReasonMax = 14

const _MonitorRequestReasonPoSetSystemState = 7

const _MonitorRequestReasonPolicyChange = 13

const _MonitorRequestReasonPowerButton = 1

const _MonitorRequestReasonRemoteConnection = 2

const _MonitorRequestReasonScMonitorpower = 3

const _MonitorRequestReasonScreenOffRequest = 11

const _MonitorRequestReasonSessionUnlock = 10

const _MonitorRequestReasonSetThreadExecutionState = 8

const _MonitorRequestReasonUnknown = 0

const _MonitorRequestReasonUserDisplayBurst = 6

const _MonitorRequestReasonUserInput = 4

type _NAME_BUFFER = T_NAME_BUFFER

const _NATIVE_TYPE_MAX_CB = 1

type _NCB = T_NCB

type _NCRYPT_CIPHER_PADDING_INFO = T_NCRYPT_CIPHER_PADDING_INFO

type _NCRYPT_KEY_BLOB_HEADER = T_NCRYPT_KEY_BLOB_HEADER

const _NCTP = 40

type _NCryptAlgorithmName = T_NCryptAlgorithmName

type _NDR_CS_ROUTINES = T_NDR_CS_ROUTINES

type _NDR_CS_SIZE_CONVERT_ROUTINES = T_NDR_CS_SIZE_CONVERT_ROUTINES

type _NDR_SCONTEXT = T_NDR_SCONTEXT

type _NDR_USER_MARSHAL_INFO = T_NDR_USER_MARSHAL_INFO

type _NDR_USER_MARSHAL_INFO_LEVEL1 = T_NDR_USER_MARSHAL_INFO_LEVEL1

type _NETCONNECTINFOSTRUCT = T_NETCONNECTINFOSTRUCT

type _NETINFOSTRUCT = T_NETINFOSTRUCT

type _NETRESOURCEA = T_NETRESOURCEA

type _NETRESOURCEW = T_NETRESOURCEW

const _NFILE = 512

const _NIKON_12_RW = 72

const _NLSCMPERROR = 2147483647

const _NODE_ATTRIBUTE = 2

const _NODE_CDATA_SECTION = 4

const _NODE_COMMENT = 8

const _NODE_DOCUMENT = 9

const _NODE_DOCUMENT_FRAGMENT = 11

const _NODE_DOCUMENT_TYPE = 10

const _NODE_ELEMENT = 1

const _NODE_ENTITY = 6

const _NODE_ENTITY_REFERENCE = 5

const _NODE_INVALID = 0

const _NODE_NOTATION = 12

const _NODE_PROCESSING_INSTRUCTION = 7

const _NODE_TEXT = 3

type _NON_PAGED_DEBUG_INFO = T_NON_PAGED_DEBUG_INFO

type _NOTIFYICONDATAA = T_NOTIFYICONDATAA

type _NOTIFYICONDATAW = T_NOTIFYICONDATAW

type _NOTIFYICONIDENTIFIER = T_NOTIFYICONIDENTIFIER

const _NSTREAM_ = 512

type _NTFS_STATISTICS = T_NTFS_STATISTICS

type _NT_TIB = T_NT_TIB

type _NT_TIB32 = T_NT_TIB32

type _NT_TIB64 = T_NT_TIB64

type _NUMA_NODE_RELATIONSHIP = T_NUMA_NODE_RELATIONSHIP

const _NVMeDataTypeFeature = 3

const _NVMeDataTypeIdentify = 1

const _NVMeDataTypeLogPage = 2

const _NVMeDataTypeUnknown = 0

const _NormalError = 1

const _NormalizationC = 1

const _NormalizationD = 2

const _NormalizationKC = 5

const _NormalizationKD = 6

const _NormalizationOther = 0

const _NotifyUserModeLegacyPowerEvent = 47

const _NotifyUserPowerSetting = 26

type _OBJECTID = T_OBJECTID

type _OBJECT_TYPE_LIST = T_OBJECT_TYPE_LIST

type _OCSP_BASIC_RESPONSE_ENTRY = T_OCSP_BASIC_RESPONSE_ENTRY

type _OCSP_BASIC_RESPONSE_INFO = T_OCSP_BASIC_RESPONSE_INFO

type _OCSP_BASIC_REVOKED_INFO = T_OCSP_BASIC_REVOKED_INFO

type _OCSP_BASIC_SIGNED_RESPONSE_INFO = T_OCSP_BASIC_SIGNED_RESPONSE_INFO

type _OCSP_CERT_ID = T_OCSP_CERT_ID

type _OCSP_REQUEST_ENTRY = T_OCSP_REQUEST_ENTRY

type _OCSP_REQUEST_INFO = T_OCSP_REQUEST_INFO

type _OCSP_RESPONSE_INFO = T_OCSP_RESPONSE_INFO

type _OCSP_SIGNATURE_INFO = T_OCSP_SIGNATURE_INFO

type _OCSP_SIGNED_REQUEST_INFO = T_OCSP_SIGNED_REQUEST_INFO

type _OFNOTIFYA = T_OFNOTIFYA

type _OFNOTIFYEXA = T_OFNOTIFYEXA

type _OFNOTIFYEXW = T_OFNOTIFYEXW

type _OFNOTIFYW = T_OFNOTIFYW

type _OFSTRUCT = T_OFSTRUCT

const _OIBDG_APARTMENTTHREADED = 256

const _OIBDG_DATAONLY = 4096

const _OLD_P_OVERLAY = 2

const _OLECLOSE_NOSAVE = 1

const _OLECLOSE_PROMPTSAVE = 2

const _OLECLOSE_SAVEIFDIRTY = 0

const _OLECONTF_EMBEDDINGS = 1

const _OLECONTF_LINKS = 2

const _OLECONTF_ONLYIFRUNNING = 16

const _OLECONTF_ONLYUSER = 8

const _OLECONTF_OTHERS = 4

const _OLEGETMONIKER_FORCEASSIGN = 2

const _OLEGETMONIKER_ONLYIFTHERE = 1

const _OLEGETMONIKER_TEMPFORUSER = 4

const _OLEGETMONIKER_UNASSIGN = 3

const _OLELINKBIND_EVENIFCLASSDIFF = 1

const _OLEMISC_ACTIVATEWHENVISIBLE = 256

const _OLEMISC_ACTSLIKEBUTTON = 4096

const _OLEMISC_ACTSLIKELABEL = 8192

const _OLEMISC_ALIGNABLE = 32768

const _OLEMISC_ALWAYSRUN = 2048

const _OLEMISC_CANLINKBYOLE1 = 32

const _OLEMISC_CANTLINKINSIDE = 16

const _OLEMISC_IGNOREACTIVATEWHENVISIBLE = 524288

const _OLEMISC_IMEMODE = 262144

const _OLEMISC_INSERTNOTREPLACE = 4

const _OLEMISC_INSIDEOUT = 128

const _OLEMISC_INVISIBLEATRUNTIME = 1024

const _OLEMISC_ISLINKOBJECT = 64

const _OLEMISC_NOUIACTIVATE = 16384

const _OLEMISC_ONLYICONIC = 2

const _OLEMISC_RECOMPOSEONRESIZE = 1

const _OLEMISC_RENDERINGISDEVICEINDEPENDENT = 512

const _OLEMISC_SETCLIENTSITEFIRST = 131072

const _OLEMISC_SIMPLEFRAME = 65536

const _OLEMISC_STATIC = 8

const _OLEMISC_SUPPORTSMULTILEVELUNDO = 2097152

const _OLEMISC_WANTSTOMENUMERGE = 1048576

const _OLERENDER_ASIS = 3

const _OLERENDER_DRAW = 1

const _OLERENDER_FORMAT = 2

const _OLERENDER_NONE = 0

type _OLESTREAM = T_OLESTREAM

type _OLESTREAMVTBL = T_OLESTREAMVTBL

const _OLEUPDATE_ALWAYS = 1

const _OLEUPDATE_ONCALL = 3

const _OLEVERBATTRIB_NEVERDIRTIES = 1

const _OLEVERBATTRIB_ONCONTAINERMENU = 2

const _OLEWHICHMK_CONTAINER = 1

const _OLEWHICHMK_OBJFULL = 3

const _OLEWHICHMK_OBJREL = 2

type _OPEN_PRINTER_PROPS_INFOA = T_OPEN_PRINTER_PROPS_INFOA

type _OPEN_PRINTER_PROPS_INFOW = T_OPEN_PRINTER_PROPS_INFOW

const _OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE = 2

const _OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE = 4

const _OPEN_VIRTUAL_DISK_FLAG_CACHED_IO = 8

const _OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN = 16

const _OPEN_VIRTUAL_DISK_FLAG_NONE = 0

const _OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS = 1

type _OPEN_VIRTUAL_DISK_PARAMETERS = T_OPEN_VIRTUAL_DISK_PARAMETERS

const _OPEN_VIRTUAL_DISK_VERSION_1 = 1

const _OPEN_VIRTUAL_DISK_VERSION_2 = 2

const _OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0

type _OPERATION_END_PARAMETERS = T_OPERATION_END_PARAMETERS

type _OPERATION_START_PARAMETERS = T_OPERATION_START_PARAMETERS

type _ORIENTATION_PREFERENCE = int32

const _ORIENTATION_PREFERENCE_LANDSCAPE = 1

const _ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 4

const _ORIENTATION_PREFERENCE_NONE = 0

const _ORIENTATION_PREFERENCE_PORTRAIT = 2

const _ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 8

type _OSVERSIONINFOA = T_OSVERSIONINFOA

type _OSVERSIONINFOEXA = T_OSVERSIONINFOEXA

type _OSVERSIONINFOEXW = T_OSVERSIONINFOEXW

type _OSVERSIONINFOW = T_OSVERSIONINFOW

type _OUTLINETEXTMETRICA = T_OUTLINETEXTMETRICA

type _OUTLINETEXTMETRICW = T_OUTLINETEXTMETRICW

type _OUTPUT_DEBUG_STRING_INFO = T_OUTPUT_DEBUG_STRING_INFO

const _OUT_TO_DEFAULT = 0

const _OUT_TO_MSGBOX = 2

const _OUT_TO_STDERR = 1

const _OVERFLOW = 3

type _OVERLAPPED = T_OVERLAPPED

type _OVERLAPPED_ENTRY = T_OVERLAPPED_ENTRY

const _ObjectIdType = 1

type _PACKEDEVENTINFO = T_PACKEDEVENTINFO

const _PARSE_ANCHOR = 6

const _PARSE_CANONICALIZE = 1

const _PARSE_DECODE_IS_ESCAPE = 8

const _PARSE_DOCUMENT = 5

const _PARSE_DOMAIN = 15

const _PARSE_ENCODE_IS_UNESCAPE = 7

const _PARSE_ESCAPE = 18

const _PARSE_FRIENDLY = 2

const _PARSE_LOCATION = 16

const _PARSE_MIME = 11

const _PARSE_PATH_FROM_URL = 9

const _PARSE_ROOTDOCUMENT = 4

const _PARSE_SCHEMA = 13

const _PARSE_SECURITY_DOMAIN = 17

const _PARSE_SECURITY_URL = 3

const _PARSE_SERVER = 12

const _PARSE_SITE = 14

const _PARSE_UNESCAPE = 19

const _PARSE_URL_FROM_PATH = 10

type _PARTITION_INFORMATION = T_PARTITION_INFORMATION

type _PARTITION_INFORMATION_EX = T_PARTITION_INFORMATION_EX

type _PARTITION_INFORMATION_GPT = T_PARTITION_INFORMATION_GPT

type _PARTITION_INFORMATION_MBR = T_PARTITION_INFORMATION_MBR

const _PARTITION_STYLE_GPT = 1

const _PARTITION_STYLE_MBR = 0

const _PARTITION_STYLE_RAW = 2

type _PATHNAME_BUFFER = T_PATHNAME_BUFFER

const _PC_5_RW = 62

const _PC_5_WO = 61

const _PD_5_RW = 63

const _PD_FORCE_SWITCH = 65536

const _PENDINGMSG_CANCELCALL = 0

const _PENDINGMSG_WAITDEFPROCESS = 2

const _PENDINGMSG_WAITNOPROCESS = 1

const _PENDINGTYPE_NESTED = 2

const _PENDINGTYPE_TOPLEVEL = 1

type _PERFORMANCE_DATA = T_PERFORMANCE_DATA

type _PERF_BIN = T_PERF_BIN

type _PERF_COUNTER_BLOCK = T_PERF_COUNTER_BLOCK

type _PERF_COUNTER_DEFINITION = T_PERF_COUNTER_DEFINITION

type _PERF_DATA_BLOCK = T_PERF_DATA_BLOCK

type _PERF_INSTANCE_DEFINITION = T_PERF_INSTANCE_DEFINITION

type _PERF_OBJECT_TYPE = T_PERF_OBJECT_TYPE

type _PERSISTENT_RESERVE_COMMAND = T_PERSISTENT_RESERVE_COMMAND

const _PHILIPS_12_WO = 67

type _PHNDLR = T_PHNDLR

const _PIDMSI_STATUS_DRAFT = 3

const _PIDMSI_STATUS_EDIT = 5

const _PIDMSI_STATUS_FINAL = 8

const _PIDMSI_STATUS_INPROGRESS = 4

const _PIDMSI_STATUS_NEW = 1

const _PIDMSI_STATUS_NORMAL = 0

const _PIDMSI_STATUS_OTHER = 32767

const _PIDMSI_STATUS_PRELIM = 2

const _PIDMSI_STATUS_PROOF = 7

const _PIDMSI_STATUS_REVIEW = 6

type _PIDMSI_STATUS_VALUE = int32

type _PIFV = T_PIFV

type _PIMAGE_RUNTIME_FUNCTION_ENTRY = T_PIMAGE_RUNTIME_FUNCTION_ENTRY

const _PINNACLE_APEX_5_RW = 65

const _PI_APARTMENTTHREADED = 256

const _PI_CLASSINSTALL = 512

const _PI_CLSIDLOOKUP = 32

const _PI_DATAPROGRESS = 64

const _PI_FILTER_MODE = 2

const _PI_FORCE_ASYNC = 4

const _PI_LOADAPPDIRECT = 16384

const _PI_MIMEVERIFICATION = 16

const _PI_NOMIMEHANDLER = 32768

const _PI_PARSE_URL = 1

const _PI_PASSONBINDCTX = 8192

const _PI_PREFERDEFAULTHANDLER = 131072

const _PI_SYNCHRONOUS = 128

const _PI_USE_WORKERTHREAD = 8

type _PKCS12_PBES2_EXPORT_PARAMS = T_PKCS12_PBES2_EXPORT_PARAMS

type _PLEX_READ_DATA_REQUEST = T_PLEX_READ_DATA_REQUEST

const _PLOSS = 6

const _PMCCounter = 0

const _PMETypeFailFastOnCommitFailure = 0

const _PMETypeMax = 1

const _POINTER_CHANGE_FIFTHBUTTON_DOWN = 9

const _POINTER_CHANGE_FIFTHBUTTON_UP = 10

const _POINTER_CHANGE_FIRSTBUTTON_DOWN = 1

const _POINTER_CHANGE_FIRSTBUTTON_UP = 2

const _POINTER_CHANGE_FOURTHBUTTON_DOWN = 7

const _POINTER_CHANGE_FOURTHBUTTON_UP = 8

const _POINTER_CHANGE_NONE = 0

const _POINTER_CHANGE_SECONDBUTTON_DOWN = 3

const _POINTER_CHANGE_SECONDBUTTON_UP = 4

const _POINTER_CHANGE_THIRDBUTTON_DOWN = 5

const _POINTER_CHANGE_THIRDBUTTON_UP = 6

const _POINTER_DEVICE_CURSOR_TYPE_ERASER = 2

const _POINTER_DEVICE_CURSOR_TYPE_MAX = 4294967295

const _POINTER_DEVICE_CURSOR_TYPE_TIP = 1

const _POINTER_DEVICE_CURSOR_TYPE_UNKNOWN = 0

const _POINTER_DEVICE_TYPE_EXTERNAL_PEN = 2

const _POINTER_DEVICE_TYPE_INTEGRATED_PEN = 1

const _POINTER_DEVICE_TYPE_MAX = 4294967295

const _POINTER_DEVICE_TYPE_TOUCH = 3

const _POINTER_DEVICE_TYPE_TOUCH_PAD = 4

const _POINTER_FEEDBACK_DEFAULT = 1

const _POINTER_FEEDBACK_INDIRECT = 2

const _POINTER_FEEDBACK_NONE = 3

type _POINTFLOAT = T_POINTFLOAT

type _POINTL = T_POINTL

const _POPUPLEVELPROP = 4

type _PORT_INFO_1A = T_PORT_INFO_1A

type _PORT_INFO_1W = T_PORT_INFO_1W

type _PORT_INFO_2A = T_PORT_INFO_2A

type _PORT_INFO_2W = T_PORT_INFO_2W

type _PORT_INFO_3A = T_PORT_INFO_3A

type _PORT_INFO_3W = T_PORT_INFO_3W

type _POWER_IDLE_RESILIENCY = T_POWER_IDLE_RESILIENCY

type _POWER_MONITOR_INVOCATION = T_POWER_MONITOR_INVOCATION

type _POWER_PLATFORM_INFORMATION = T_POWER_PLATFORM_INFORMATION

type _POWER_SESSION_CONNECT = T_POWER_SESSION_CONNECT

type _POWER_SESSION_RIT_STATE = T_POWER_SESSION_RIT_STATE

type _POWER_SESSION_TIMEOUTS = T_POWER_SESSION_TIMEOUTS

type _POWER_SESSION_WINLOGON = T_POWER_SESSION_WINLOGON

type _POWER_USER_PRESENCE = T_POWER_USER_PRESENCE

type _PREVENT_MEDIA_REMOVAL = T_PREVENT_MEDIA_REMOVAL

type _PRINTER_CONNECTION_INFO_1 = T_PRINTER_CONNECTION_INFO_1

type _PRINTER_DEFAULTSA = T_PRINTER_DEFAULTSA

type _PRINTER_DEFAULTSW = T_PRINTER_DEFAULTSW

type _PRINTER_ENUM_VALUESA = T_PRINTER_ENUM_VALUESA

type _PRINTER_ENUM_VALUESW = T_PRINTER_ENUM_VALUESW

type _PRINTER_INFO_1A = T_PRINTER_INFO_1A

type _PRINTER_INFO_1W = T_PRINTER_INFO_1W

type _PRINTER_INFO_2A = T_PRINTER_INFO_2A

type _PRINTER_INFO_2W = T_PRINTER_INFO_2W

type _PRINTER_INFO_3 = T_PRINTER_INFO_3

type _PRINTER_INFO_4A = T_PRINTER_INFO_4A

type _PRINTER_INFO_4W = T_PRINTER_INFO_4W

type _PRINTER_INFO_5A = T_PRINTER_INFO_5A

type _PRINTER_INFO_5W = T_PRINTER_INFO_5W

type _PRINTER_INFO_6 = T_PRINTER_INFO_6

type _PRINTER_INFO_7A = T_PRINTER_INFO_7A

type _PRINTER_INFO_7W = T_PRINTER_INFO_7W

type _PRINTER_INFO_8A = T_PRINTER_INFO_8A

type _PRINTER_INFO_8W = T_PRINTER_INFO_8W

type _PRINTER_INFO_9A = T_PRINTER_INFO_9A

type _PRINTER_INFO_9W = T_PRINTER_INFO_9W

type _PRINTER_NOTIFY_INFO = T_PRINTER_NOTIFY_INFO

type _PRINTER_NOTIFY_INFO_DATA = T_PRINTER_NOTIFY_INFO_DATA

type _PRINTER_NOTIFY_OPTIONS = T_PRINTER_NOTIFY_OPTIONS

type _PRINTER_NOTIFY_OPTIONS_TYPE = T_PRINTER_NOTIFY_OPTIONS_TYPE

type _PRINTER_OPTIONS = T_PRINTER_OPTIONS

const _PRINTER_OPTION_CACHE = 1

const _PRINTER_OPTION_CLIENT_CHANGE = 2

const _PRINTER_OPTION_NO_CACHE = 0

type _PRINTPROCESSOR_CAPS_1 = T_PRINTPROCESSOR_CAPS_1

type _PRINTPROCESSOR_CAPS_2 = T_PRINTPROCESSOR_CAPS_2

type _PRINTPROCESSOR_INFO_1A = T_PRINTPROCESSOR_INFO_1A

type _PRINTPROCESSOR_INFO_1W = T_PRINTPROCESSOR_INFO_1W

type _PRIVILEGE_SET = T_PRIVILEGE_SET

type _PRIVKEYVER3 = T_PRIVKEYVER3

type _PROCESSOR_GROUP_INFO = T_PROCESSOR_GROUP_INFO

type _PROCESSOR_NUMBER = T_PROCESSOR_NUMBER

type _PROCESSOR_POWER_POLICY = T_PROCESSOR_POWER_POLICY

type _PROCESSOR_POWER_POLICY_INFO = T_PROCESSOR_POWER_POLICY_INFO

type _PROCESSOR_RELATIONSHIP = T_PROCESSOR_RELATIONSHIP

type _PROCESS_DYNAMIC_EH_CONTINUATION_TARGET = T_PROCESS_DYNAMIC_EH_CONTINUATION_TARGET

type _PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION = T_PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION

type _PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE = T_PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE

type _PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION = T_PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION

type _PROCESS_HEAP_ENTRY = T_PROCESS_HEAP_ENTRY

type _PROCESS_INFORMATION = T_PROCESS_INFORMATION

type _PROCESS_LEAP_SECOND_INFO = T_PROCESS_LEAP_SECOND_INFO

type _PROCESS_MACHINE_INFORMATION = T_PROCESS_MACHINE_INFORMATION

type _PROCESS_MEMORY_EXHAUSTION_INFO = T_PROCESS_MEMORY_EXHAUSTION_INFO

type _PROCESS_MITIGATION_ASLR_POLICY = T_PROCESS_MITIGATION_ASLR_POLICY

type _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = T_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY

type _PROCESS_MITIGATION_CHILD_PROCESS_POLICY = T_PROCESS_MITIGATION_CHILD_PROCESS_POLICY

type _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = T_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY

type _PROCESS_MITIGATION_DEP_POLICY = T_PROCESS_MITIGATION_DEP_POLICY

type _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = T_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY

type _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = T_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY

type _PROCESS_MITIGATION_FONT_DISABLE_POLICY = T_PROCESS_MITIGATION_FONT_DISABLE_POLICY

type _PROCESS_MITIGATION_IMAGE_LOAD_POLICY = T_PROCESS_MITIGATION_IMAGE_LOAD_POLICY

type _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY = T_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY

type _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY = T_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY

type _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY = T_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY

type _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = T_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY

type _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = T_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY

type _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY = T_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY

type _PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY = T_PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY

type _PROCESS_POWER_THROTTLING_STATE = T_PROCESS_POWER_THROTTLING_STATE

type _PROPSHEETHEADERA = T_PROPSHEETHEADERA

type _PROPSHEETHEADERW = T_PROPSHEETHEADERW

type _PROPSHEETPAGEA = T_PROPSHEETPAGEA

type _PROPSHEETPAGEA_V1 = T_PROPSHEETPAGEA_V1

type _PROPSHEETPAGEA_V2 = T_PROPSHEETPAGEA_V2

const _PROPSHEETPAGEA_V3 = 0

type _PROPSHEETPAGEW = T_PROPSHEETPAGEW

type _PROPSHEETPAGEW_V1 = T_PROPSHEETPAGEW_V1

type _PROPSHEETPAGEW_V2 = T_PROPSHEETPAGEW_V2

const _PROPSHEETPAGEW_V3 = 0

const _PROTOCOL_ADDRESS_CHANGE = 3

const _PROTOCOL_LOADED = 2

const _PROTOCOL_NOT_LOADED = 1

type _PROVIDOR_INFO_1A = T_PROVIDOR_INFO_1A

type _PROVIDOR_INFO_1W = T_PROVIDOR_INFO_1W

type _PROVIDOR_INFO_2A = T_PROVIDOR_INFO_2A

type _PROVIDOR_INFO_2W = T_PROVIDOR_INFO_2W

type _PROV_ENUMALGS = T_PROV_ENUMALGS

type _PROV_ENUMALGS_EX = T_PROV_ENUMALGS_EX

const _PROXY_CALCSIZE = 0

const _PROXY_GETBUFFER = 1

const _PROXY_MARSHAL = 2

const _PROXY_SENDRECEIVE = 3

const _PROXY_UNMARSHAL = 4

type _PSFEATURE_CUSTPAPER = T_PSFEATURE_CUSTPAPER

type _PSFEATURE_OUTPUT = T_PSFEATURE_OUTPUT

type _PSHNOTIFY = T_PSHNOTIFY

type _PSINJECTDATA = T_PSINJECTDATA

const _PSU_DEFAULT = 1

const _PSU_SECURITY_URL_ONLY = 2

const _PT_MOUSE = 4

const _PT_PEN = 3

const _PT_POINTER = 1

const _PT_TOUCH = 2

const _PT_TOUCHPAD = 5

const _PUAFOUT_DEFAULT = 0

const _PUAFOUT_ISLOCKZONEPOLICY = 1

const _PUAF_ACCEPT_WILDCARD_SCHEME = 128

const _PUAF_CHECK_TIFS = 16

const _PUAF_DEFAULT = 0

const _PUAF_DEFAULTZONEPOL = 262144

const _PUAF_DONTCHECKBOXINDIALOG = 32

const _PUAF_DONT_USE_CACHE = 4096

const _PUAF_DRAGPROTOCOLCHECK = 2097152

const _PUAF_ENFORCERESTRICTED = 256

const _PUAF_FORCEUI_FOREGROUND = 8

const _PUAF_ISFILE = 2

const _PUAF_LMZ_LOCKED = 131072

const _PUAF_LMZ_UNLOCKED = 65536

const _PUAF_NOSAVEDFILECHECK = 512

const _PUAF_NOUI = 1

const _PUAF_NOUIIFLOCKED = 1048576

const _PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 524288

const _PUAF_REQUIRESAVEDFILECHECK = 1024

const _PUAF_RESERVED1 = 8192

const _PUAF_RESERVED2 = 16384

const _PUAF_TRUSTED = 64

const _PUAF_WARN_IF_DENIED = 4

type _PUBKEY = T_PUBKEY

type _PUBKEYVER3 = T_PUBKEYVER3

type _PUBLICKEYSTRUC = T_PUBLICKEYSTRUC

const _PUNCT = 16

type _PVFI = T_PVFI

type _PVFV = T_PVFV

const _P_DETACH = 4

const _P_NOWAIT = 1

const _P_NOWAITO = 3

const _P_OVERLAY = 2

const _P_WAIT = 0

const _P_tmpdir = "\\\\"

const _PdcInvocation = 67

const _PlatformInformation = 66

const _PlatformRole = 75

const _PlatformRoleAppliancePC = 6

const _PlatformRoleDesktop = 1

const _PlatformRoleEnterpriseServer = 4

const _PlatformRoleMaximum = 9

const _PlatformRoleMobile = 2

const _PlatformRolePerformanceServer = 7

const _PlatformRoleSOHOServer = 5

const _PlatformRoleSlate = 8

const _PlatformRoleUnspecified = 0

const _PlatformRoleWorkstation = 3

const _PlmPowerRequestCreate = 72

const _PoAc = 0

const _PoConditionMaximum = 3

const _PoDc = 1

const _PoHot = 2

const _PowerActionHibernate = 3

const _PowerActionNone = 0

const _PowerActionReserved = 1

const _PowerActionShutdown = 4

const _PowerActionShutdownOff = 6

const _PowerActionShutdownReset = 5

const _PowerActionSleep = 2

const _PowerActionWarmEject = 7

const _PowerDeviceD0 = 1

const _PowerDeviceD1 = 2

const _PowerDeviceD2 = 3

const _PowerDeviceD3 = 4

const _PowerDeviceMaximum = 5

const _PowerDeviceUnspecified = 0

const _PowerInformationLevelMaximum = 80

const _PowerInformationLevelUnused0 = 27

const _PowerMonitorDim = 2

const _PowerMonitorOff = 0

const _PowerMonitorOn = 1

const _PowerRequestAction = 44

const _PowerRequestAwayModeRequired = 2

const _PowerRequestCreate = 43

const _PowerRequestDisplayRequired = 0

const _PowerRequestExecutionRequired = 3

const _PowerRequestSystemRequired = 1

const _PowerSettingNotificationName = 58

const _PowerShutdownNotification = 39

const _PowerSystemHibernate = 5

const _PowerSystemMaximum = 7

const _PowerSystemShutdown = 6

const _PowerSystemSleeping1 = 2

const _PowerSystemSleeping2 = 3

const _PowerSystemSleeping3 = 4

const _PowerSystemUnspecified = 0

const _PowerSystemWorking = 1

const _PowerUserInactive = 2

const _PowerUserInvalid = 3

const _PowerUserMaximum = 3

const _PowerUserNotPresent = 1

const _PowerUserPresent = 0

const _ProcThreadAttributeAllApplicationPackagesPolicy = 15

const _ProcThreadAttributeChildProcessPolicy = 14

const _ProcThreadAttributeGroupAffinity = 3

const _ProcThreadAttributeHandleList = 2

const _ProcThreadAttributeIdealProcessor = 5

const _ProcThreadAttributeJobList = 13

const _ProcThreadAttributeMitigationPolicy = 7

const _ProcThreadAttributeParentProcess = 0

const _ProcThreadAttributePreferredNode = 4

const _ProcThreadAttributeProtectionLevel = 11

const _ProcThreadAttributeSecurityCapabilities = 9

const _ProcThreadAttributeUmsThread = 6

const _ProcThreadAttributeWin32kFilter = 16

const _ProcessASLRPolicy = 1

const _ProcessAppMemoryInfo = 2

const _ProcessChildProcessPolicy = 13

const _ProcessControlFlowGuardPolicy = 7

const _ProcessDEPPolicy = 0

const _ProcessDynamicCodePolicy = 2

const _ProcessExtensionPointDisablePolicy = 6

const _ProcessFontDisablePolicy = 9

const _ProcessImageLoadPolicy = 10

const _ProcessInPrivateInfo = 3

const _ProcessInformationClassMax = 10

const _ProcessLeapSecondInfo = 8

const _ProcessMachineTypeInfo = 9

const _ProcessMemoryExhaustionInfo = 1

const _ProcessMemoryPriority = 0

const _ProcessMitigationOptionsMask = 5

const _ProcessPayloadRestrictionPolicy = 12

const _ProcessPowerThrottling = 4

const _ProcessProtectionLevelInfo = 7

const _ProcessRedirectionTrustPolicy = 16

const _ProcessReservedValue1 = 5

const _ProcessSideChannelIsolationPolicy = 14

const _ProcessSignaturePolicy = 8

const _ProcessStrictHandleCheckPolicy = 3

const _ProcessSystemCallDisablePolicy = 4

const _ProcessSystemCallFilterPolicy = 11

const _ProcessTelemetryCoverageInfo = 6

const _ProcessUserShadowStackPolicy = 15

const _ProcessorCap = 34

const _ProcessorIdleDomains = 49

const _ProcessorIdleStates = 33

const _ProcessorIdleStatesHv = 52

const _ProcessorInformation = 11

const _ProcessorInformationEx = 46

const _ProcessorLoad = 38

const _ProcessorPerfCapHv = 54

const _ProcessorPerfStates = 32

const _ProcessorPerfStatesHv = 53

const _ProcessorPowerPolicyAc = 18

const _ProcessorPowerPolicyCurrent = 22

const _ProcessorPowerPolicyDc = 19

const _ProcessorSetIdle = 55

const _ProcessorStateHandler = 7

const _ProcessorStateHandler2 = 13

const _PropertyExistsQuery = 1

const _PropertyExistsSet = 1

const _PropertyMaskQuery = 2

const _PropertyQueryMaxDefined = 3

const _PropertySetMaxDefined = 2

const _PropertyStandardQuery = 0

const _PropertyStandardSet = 0

const _ProtocolTypeAta = 2

const _ProtocolTypeMaxReserved = 127

const _ProtocolTypeNvme = 3

const _ProtocolTypeProprietary = 126

const _ProtocolTypeScsi = 1

const _ProtocolTypeSd = 4

const _ProtocolTypeUfs = 5

const _ProtocolTypeUnknown = 0

const _QIC = 35

const _QUERY_CAN_NAVIGATE = 7

const _QUERY_CHANGES_VIRTUAL_DISK_FLAG_NONE = 0

type _QUERY_CHANGES_VIRTUAL_DISK_RANGE = T_QUERY_CHANGES_VIRTUAL_DISK_RANGE

const _QUERY_CONTENT_ENCODING = 3

const _QUERY_CONTENT_TYPE = 4

const _QUERY_EXPIRATION_DATE = 1

const _QUERY_IS_CACHED = 9

const _QUERY_IS_CACHED_AND_USABLE_OFFLINE = 16

const _QUERY_IS_CACHED_OR_MAPPED = 11

const _QUERY_IS_INSTALLEDENTRY = 10

const _QUERY_IS_SAFE = 14

const _QUERY_IS_SECURE = 13

const _QUERY_RECOMBINE = 6

const _QUERY_REFRESH = 5

type _QUERY_SERVICE_CONFIGA = T_QUERY_SERVICE_CONFIGA

type _QUERY_SERVICE_CONFIGW = T_QUERY_SERVICE_CONFIGW

type _QUERY_SERVICE_LOCK_STATUSA = T_QUERY_SERVICE_LOCK_STATUSA

type _QUERY_SERVICE_LOCK_STATUSW = T_QUERY_SERVICE_LOCK_STATUSW

const _QUERY_TIME_OF_LAST_CHANGE = 2

const _QUERY_USES_CACHE = 12

const _QUERY_USES_HISTORYFOLDER = 15

const _QUERY_USES_NETWORK = 8

const _QUNS_ACCEPTS_NOTIFICATIONS = 5

const _QUNS_APP = 7

const _QUNS_BUSY = 2

const _QUNS_NOT_PRESENT = 1

const _QUNS_PRESENTATION_MODE = 4

const _QUNS_QUIET_TIME = 6

const _QUNS_RUNNING_D3D_FULL_SCREEN = 3

type _QUOTA_LIMITS = T_QUOTA_LIMITS

type _QUOTA_LIMITS_EX = T_QUOTA_LIMITS_EX

type _RASTERIZER_STATUS = T_RASTERIZER_STATUS

type _RATE_QUOTA_LIMIT = T_RATE_QUOTA_LIMIT

type _RDR_CALLOUT_STATE = T_RDR_CALLOUT_STATE

type _READ_ELEMENT_ADDRESS_INFO = T_READ_ELEMENT_ADDRESS_INFO

type _REASON_CONTEXT = T_REASON_CONTEXT

type _REASSIGN_BLOCKS = T_REASSIGN_BLOCKS

type _REASSIGN_BLOCKS_EX = T_REASSIGN_BLOCKS_EX

type _RECTL = T_RECTL

type _REDIRECTION_DESCRIPTOR = T_REDIRECTION_DESCRIPTOR

type _REDIRECTION_FUNCTION_DESCRIPTOR = T_REDIRECTION_FUNCTION_DESCRIPTOR

const _REGCLS_MULTIPLEUSE = 1

const _REGCLS_MULTI_SEPARATE = 2

const _REGCLS_SINGLEUSE = 0

const _REGCLS_SURROGATE = 8

const _REGCLS_SUSPENDED = 4

const _REGKIND_DEFAULT = 0

const _REGKIND_NONE = 2

const _REGKIND_REGISTER = 1

type _REMOTE_NAME_INFOA = T_REMOTE_NAME_INFOA

type _REMOTE_NAME_INFOW = T_REMOTE_NAME_INFOW

type _REMSECURITY_ATTRIBUTES = T_REMSECURITY_ATTRIBUTES

type _REPARSE_GUID_DATA_BUFFER = T_REPARSE_GUID_DATA_BUFFER

const _REPORT_ERRMODE = 3

type _REQUEST_OPLOCK_INPUT_BUFFER = T_REQUEST_OPLOCK_INPUT_BUFFER

type _REQUEST_OPLOCK_OUTPUT_BUFFER = T_REQUEST_OPLOCK_OUTPUT_BUFFER

type _REQUEST_RAW_ENCRYPTED_DATA = T_REQUEST_RAW_ENCRYPTED_DATA

const _RESIZE_VIRTUAL_DISK_FLAG_ALLOW_UNSAFE_VIRTUAL_SIZE = 1

const _RESIZE_VIRTUAL_DISK_FLAG_NONE = 0

const _RESIZE_VIRTUAL_DISK_FLAG_RESIZE_TO_SMALLEST_SAFE_VIRTUAL_SIZE = 2

type _RESIZE_VIRTUAL_DISK_PARAMETERS = T_RESIZE_VIRTUAL_DISK_PARAMETERS

const _RESIZE_VIRTUAL_DISK_VERSION_1 = 1

const _RESIZE_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0

type _RESOURCEMANAGER_BASIC_INFORMATION = T_RESOURCEMANAGER_BASIC_INFORMATION

type _RESOURCEMANAGER_COMPLETION_INFORMATION = T_RESOURCEMANAGER_COMPLETION_INFORMATION

type _RESUME_PERFORMANCE = T_RESUME_PERFORMANCE

type _RETRIEVAL_POINTER_BASE = T_RETRIEVAL_POINTER_BASE

type _RGNDATA = T_RGNDATA

type _RGNDATAHEADER = T_RGNDATAHEADER

type _RIP_INFO = T_RIP_INFO

type _ROOT_INFO_LUID = T_ROOT_INFO_LUID

const _RPCHTTP_RS_ACCESS_1 = 2

const _RPCHTTP_RS_ACCESS_2 = 4

const _RPCHTTP_RS_INTERFACE = 5

const _RPCHTTP_RS_REDIRECT = 1

const _RPCHTTP_RS_SESSION = 3

type _RPC_ADDRESS_CHANGE_TYPE = int32

type _RPC_ASYNC_NOTIFICATION_INFO = T_RPC_ASYNC_NOTIFICATION_INFO

type _RPC_ASYNC_STATE = T_RPC_ASYNC_STATE

type _RPC_BINDING_HANDLE_OPTIONS_V1 = T_RPC_BINDING_HANDLE_OPTIONS_V1

type _RPC_BINDING_HANDLE_TEMPLATE = T_RPC_BINDING_HANDLE_TEMPLATE

type _RPC_BINDING_VECTOR = T_RPC_BINDING_VECTOR

type _RPC_CLIENT_INTERFACE = T_RPC_CLIENT_INTERFACE

type _RPC_C_OPT_METADATA_DESCRIPTOR = T_RPC_C_OPT_METADATA_DESCRIPTOR

const _RPC_HTTP_TRANSPORT_CREDENTIALS = 0

type _RPC_HTTP_TRANSPORT_CREDENTIALS_A = T_RPC_HTTP_TRANSPORT_CREDENTIALS_A

type _RPC_HTTP_TRANSPORT_CREDENTIALS_W = T_RPC_HTTP_TRANSPORT_CREDENTIALS_W

type _RPC_IF_ID = T_RPC_IF_ID

type _RPC_MESSAGE = T_RPC_MESSAGE

type _RPC_POLICY = T_RPC_POLICY

type _RPC_PROTSEQ_ENDPOINT = T_RPC_PROTSEQ_ENDPOINT

type _RPC_PROTSEQ_VECTORA = T_RPC_PROTSEQ_VECTORA

type _RPC_PROTSEQ_VECTORW = T_RPC_PROTSEQ_VECTORW

type _RPC_SECURITY_QOS = T_RPC_SECURITY_QOS

const _RPC_SECURITY_QOS_V2 = 0

type _RPC_SECURITY_QOS_V2_A = T_RPC_SECURITY_QOS_V2_A

type _RPC_SECURITY_QOS_V2_W = T_RPC_SECURITY_QOS_V2_W

const _RPC_SECURITY_QOS_V3 = 0

type _RPC_SECURITY_QOS_V3_A = T_RPC_SECURITY_QOS_V3_A

type _RPC_SECURITY_QOS_V3_W = T_RPC_SECURITY_QOS_V3_W

type _RPC_SERVER_INTERFACE = T_RPC_SERVER_INTERFACE

type _RPC_SYNTAX_IDENTIFIER = T_RPC_SYNTAX_IDENTIFIER

type _RPC_TRANSFER_SYNTAX = T_RPC_TRANSFER_SYNTAX

type _RPC_VERSION = T_RPC_VERSION

type _RSAPUBKEY = T_RSAPUBKEY

type _RTL_BARRIER = T_RTL_BARRIER

type _RTL_CONDITION_VARIABLE = T_RTL_CONDITION_VARIABLE

type _RTL_CRITICAL_SECTION = T_RTL_CRITICAL_SECTION

type _RTL_CRITICAL_SECTION_DEBUG = T_RTL_CRITICAL_SECTION_DEBUG

type _RTL_RUN_ONCE = T_RTL_RUN_ONCE

const _RTL_RUN_ONCE_DEF = 1

type _RTL_SRWLOCK = T_RTL_SRWLOCK

type _RTL_VERIFIER_DLL_DESCRIPTOR = T_RTL_VERIFIER_DLL_DESCRIPTOR

type _RTL_VERIFIER_PROVIDER_DESCRIPTOR = T_RTL_VERIFIER_PROVIDER_DESCRIPTOR

type _RTL_VERIFIER_THUNK_DESCRIPTOR = T_RTL_VERIFIER_THUNK_DESCRIPTOR

const _ReadBarrier = 0

const _RecognizerType = 8

const _RelationAll = 65535

const _RelationCache = 2

const _RelationGroup = 4

const _RelationNumaNode = 1

const _RelationProcessorCore = 0

const _RelationProcessorPackage = 3

type _RemotableHandle = T_RemotableHandle

const _RemovableMedia = 11

type _ReplacesCorHdrNumericDefines = int32

const _RequestLocation = 1

const _RequestSize = 0

const _ResourceManagerBasicInformation = 0

const _ResourceManagerCompletionInformation = 1

const _RpcCallComplete = 0

const _RpcNotificationCallCancel = 2

const _RpcNotificationCallNone = 0

const _RpcNotificationClientDisconnect = 1

const _RpcNotificationTypeApc = 2

const _RpcNotificationTypeCallback = 5

const _RpcNotificationTypeEvent = 1

const _RpcNotificationTypeHwnd = 4

const _RpcNotificationTypeIoc = 3

const _RpcNotificationTypeNone = 0

const _RpcReceiveComplete = 2

const _RpcSendComplete = 1

const _RunlevelInformationInActivationContext = 5

const _SAIT = 93

type _SCARD_ATRMASK = T_SCARD_ATRMASK

type _SCARD_IO_REQUEST = T_SCARD_IO_REQUEST

type _SCHANNEL_ALG = T_SCHANNEL_ALG

type _SCONTEXT_QUEUE = T_SCONTEXT_QUEUE

type _SCOPE_TABLE_AMD64 = T_SCOPE_TABLE_AMD64

type _SCRUB_DATA_INPUT = T_SCRUB_DATA_INPUT

type _SCRUB_DATA_OUTPUT = T_SCRUB_DATA_OUTPUT

type _SC_ACTION = T_SC_ACTION

const _SC_ACTION_NONE = 0

const _SC_ACTION_REBOOT = 2

const _SC_ACTION_RESTART = 1

const _SC_ACTION_RUN_COMMAND = 3

const _SC_ENUM_PROCESS_INFO = 0

const _SC_STATUS_PROCESS_INFO = 0

const _SD_ACCESSPERMISSIONS = 1

const _SD_ACCESSRESTRICTIONS = 3

type _SD_CHANGE_MACHINE_SID_INPUT = T_SD_CHANGE_MACHINE_SID_INPUT

type _SD_CHANGE_MACHINE_SID_OUTPUT = T_SD_CHANGE_MACHINE_SID_OUTPUT

const _SD_LAUNCHPERMISSIONS = 0

const _SD_LAUNCHRESTRICTIONS = 2

const _SECURECRT_FILL_BUFFER_PATTERN = 253

type _SECURITY_ATTRIBUTES = T_SECURITY_ATTRIBUTES

type _SECURITY_CAPABILITIES = T_SECURITY_CAPABILITIES

type _SECURITY_DESCRIPTOR = T_SECURITY_DESCRIPTOR

type _SECURITY_DESCRIPTOR_RELATIVE = T_SECURITY_DESCRIPTOR_RELATIVE

type _SECURITY_QUALITY_OF_SERVICE = T_SECURITY_QUALITY_OF_SERVICE

const _SEC_WINNT_AUTH_IDENTITY = 0

type _SEC_WINNT_AUTH_IDENTITY_A = T_SEC_WINNT_AUTH_IDENTITY_A

type _SEC_WINNT_AUTH_IDENTITY_W = T_SEC_WINNT_AUTH_IDENTITY_W

type _SENDCMDINPARAMS = T_SENDCMDINPARAMS

type _SENDCMDOUTPARAMS = T_SENDCMDOUTPARAMS

const _SERVERCALL_ISHANDLED = 0

const _SERVERCALL_REJECTED = 1

const _SERVERCALL_RETRYLATER = 2

const _SERVER_LOCALITY_MACHINE_LOCAL = 1

const _SERVER_LOCALITY_PROCESS_LOCAL = 0

const _SERVER_LOCALITY_REMOTE = 2

type _SERVICE_CONTROL_STATUS_REASON_PARAMSA = T_SERVICE_CONTROL_STATUS_REASON_PARAMSA

type _SERVICE_CONTROL_STATUS_REASON_PARAMSW = T_SERVICE_CONTROL_STATUS_REASON_PARAMSW

type _SERVICE_DELAYED_AUTO_START_INFO = T_SERVICE_DELAYED_AUTO_START_INFO

type _SERVICE_DESCRIPTIONA = T_SERVICE_DESCRIPTIONA

type _SERVICE_DESCRIPTIONW = T_SERVICE_DESCRIPTIONW

type _SERVICE_FAILURE_ACTIONSA = T_SERVICE_FAILURE_ACTIONSA

type _SERVICE_FAILURE_ACTIONSW = T_SERVICE_FAILURE_ACTIONSW

type _SERVICE_FAILURE_ACTIONS_FLAG = T_SERVICE_FAILURE_ACTIONS_FLAG

type _SERVICE_NOTIFYA = T_SERVICE_NOTIFYA

type _SERVICE_NOTIFYW = T_SERVICE_NOTIFYW

type _SERVICE_PRESHUTDOWN_INFO = T_SERVICE_PRESHUTDOWN_INFO

type _SERVICE_REQUIRED_PRIVILEGES_INFOA = T_SERVICE_REQUIRED_PRIVILEGES_INFOA

type _SERVICE_REQUIRED_PRIVILEGES_INFOW = T_SERVICE_REQUIRED_PRIVILEGES_INFOW

type _SERVICE_SID_INFO = T_SERVICE_SID_INFO

type _SERVICE_STATUS = T_SERVICE_STATUS

type _SERVICE_STATUS_PROCESS = T_SERVICE_STATUS_PROCESS

type _SERVICE_TABLE_ENTRYA = T_SERVICE_TABLE_ENTRYA

type _SERVICE_TABLE_ENTRYW = T_SERVICE_TABLE_ENTRYW

type _SESSION_BUFFER = T_SESSION_BUFFER

type _SESSION_HEADER = T_SESSION_HEADER

type _SET_PARTITION_INFORMATION = T_SET_PARTITION_INFORMATION

type _SET_PARTITION_INFORMATION_EX = T_SET_PARTITION_INFORMATION_EX

type _SET_VIRTUAL_DISK_INFO = T_SET_VIRTUAL_DISK_INFO

const _SET_VIRTUAL_DISK_INFO_CHANGE_TRACKING_STATE = 6

const _SET_VIRTUAL_DISK_INFO_IDENTIFIER = 2

const _SET_VIRTUAL_DISK_INFO_PARENT_LOCATOR = 7

const _SET_VIRTUAL_DISK_INFO_PARENT_PATH = 1

const _SET_VIRTUAL_DISK_INFO_PARENT_PATH_WITH_DEPTH = 3

const _SET_VIRTUAL_DISK_INFO_PHYSICAL_SECTOR_SIZE = 4

const _SET_VIRTUAL_DISK_INFO_UNSPECIFIED = 0

const _SET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID = 5

type _SE_ACCESS_REPLY = T_SE_ACCESS_REPLY

type _SE_ACCESS_REQUEST = T_SE_ACCESS_REQUEST

type _SE_IMPERSONATION_STATE = T_SE_IMPERSONATION_STATE

type _SE_SECURITY_DESCRIPTOR = T_SE_SECURITY_DESCRIPTOR

const _SF_BSTR = 8

const _SF_DISPATCH = 9

const _SF_ERROR = 10

const _SF_HAVEIID = 32781

const _SF_I1 = 16

const _SF_I2 = 2

const _SF_I4 = 3

const _SF_I8 = 20

const _SF_RECORD = 36

const _SF_UNKNOWN = 13

const _SF_VARIANT = 12

type _SHCREATEPROCESSINFOW = T_SHCREATEPROCESSINFOW

type _SHELLEXECUTEINFOA = T_SHELLEXECUTEINFOA

type _SHELLEXECUTEINFOW = T_SHELLEXECUTEINFOW

type _SHFILEINFOA = T_SHFILEINFOA

type _SHFILEINFOW = T_SHFILEINFOW

type _SHFILEOPSTRUCTA = T_SHFILEOPSTRUCTA

type _SHFILEOPSTRUCTW = T_SHFILEOPSTRUCTW

type _SHNAMEMAPPINGA = T_SHNAMEMAPPINGA

type _SHNAMEMAPPINGW = T_SHNAMEMAPPINGW

type _SHORT_SIZEDARR = T_SHORT_SIZEDARR

type _SHQUERYRBINFO = T_SHQUERYRBINFO

type _SHRINK_VOLUME_INFORMATION = T_SHRINK_VOLUME_INFORMATION

type _SHSTOCKICONID = int32

type _SHSTOCKICONINFO = T_SHSTOCKICONINFO

type _SID = T_SID

type _SID_AND_ATTRIBUTES = T_SID_AND_ATTRIBUTES

type _SID_AND_ATTRIBUTES_HASH = T_SID_AND_ATTRIBUTES_HASH

type _SID_IDENTIFIER_AUTHORITY = T_SID_IDENTIFIER_AUTHORITY

const _SIID_APPLICATION = 2

const _SIID_AUDIOFILES = 71

const _SIID_AUTOLIST = 49

const _SIID_CLUSTEREDDRIVE = 140

const _SIID_DELETE = 84

const _SIID_DESKTOPPC = 94

const _SIID_DEVICEAUDIOPLAYER = 102

const _SIID_DEVICECAMERA = 100

const _SIID_DEVICECELLPHONE = 99

const _SIID_DEVICEVIDEOCAMERA = 101

const _SIID_DOCASSOC = 1

const _SIID_DOCNOASSOC = 0

const _SIID_DRIVE35 = 6

const _SIID_DRIVE525 = 5

const _SIID_DRIVEBD = 133

const _SIID_DRIVECD = 11

const _SIID_DRIVEDVD = 59

const _SIID_DRIVEFIXED = 8

const _SIID_DRIVEHDDVD = 132

const _SIID_DRIVENET = 9

const _SIID_DRIVENETDISABLED = 10

const _SIID_DRIVERAM = 12

const _SIID_DRIVEREMOVE = 7

const _SIID_DRIVEUNKNOWN = 58

const _SIID_ERROR = 80

const _SIID_FIND = 22

const _SIID_FOLDER = 3

const _SIID_FOLDERBACK = 75

const _SIID_FOLDERFRONT = 76

const _SIID_FOLDEROPEN = 4

const _SIID_HELP = 23

const _SIID_IMAGEFILES = 72

const _SIID_INFO = 79

const _SIID_INTERNET = 104

const _SIID_KEY = 81

const _SIID_LINK = 29

const _SIID_LOCK = 47

const _SIID_MAX_ICONS = 175

const _SIID_MEDIAAUDIODVD = 85

const _SIID_MEDIABDR = 138

const _SIID_MEDIABDRE = 139

const _SIID_MEDIABDROM = 137

const _SIID_MEDIABLANKCD = 69

const _SIID_MEDIABLURAY = 90

const _SIID_MEDIACDAUDIO = 40

const _SIID_MEDIACDAUDIOPLUS = 65

const _SIID_MEDIACDBURN = 68

const _SIID_MEDIACDR = 67

const _SIID_MEDIACDROM = 70

const _SIID_MEDIACDRW = 66

const _SIID_MEDIACOMPACTFLASH = 98

const _SIID_MEDIADVD = 60

const _SIID_MEDIADVDPLUSR = 92

const _SIID_MEDIADVDPLUSRW = 93

const _SIID_MEDIADVDR = 63

const _SIID_MEDIADVDRAM = 61

const _SIID_MEDIADVDROM = 64

const _SIID_MEDIADVDRW = 62

const _SIID_MEDIAENHANCEDCD = 87

const _SIID_MEDIAENHANCEDDVD = 88

const _SIID_MEDIAHDDVD = 89

const _SIID_MEDIAHDDVDR = 135

const _SIID_MEDIAHDDVDRAM = 136

const _SIID_MEDIAHDDVDROM = 134

const _SIID_MEDIAMOVIEDVD = 86

const _SIID_MEDIASMARTMEDIA = 97

const _SIID_MEDIASVCD = 56

const _SIID_MEDIAVCD = 91

const _SIID_MIXEDFILES = 74

const _SIID_MOBILEPC = 95

const _SIID_MYNETWORK = 17

const _SIID_NETWORKCONNECT = 103

const _SIID_PRINTER = 16

const _SIID_PRINTERFAX = 52

const _SIID_PRINTERFAXNET = 53

const _SIID_PRINTERFILE = 54

const _SIID_PRINTERNET = 50

const _SIID_RECYCLER = 31

const _SIID_RECYCLERFULL = 32

const _SIID_RENAME = 83

const _SIID_SERVER = 15

const _SIID_SERVERSHARE = 51

const _SIID_SETTINGS = 106

const _SIID_SHARE = 28

const _SIID_SHIELD = 77

const _SIID_SLOWFILE = 30

const _SIID_SOFTWARE = 82

const _SIID_STACK = 55

const _SIID_STUFFEDFOLDER = 57

const _SIID_USERS = 96

const _SIID_VIDEOFILES = 73

const _SIID_WARNING = 78

const _SIID_WORLD = 13

const _SIID_ZIPFILE = 105

const _SING = 2

type _SINGLE_LIST_ENTRY = T_SINGLE_LIST_ENTRY

type _SI_COPYFILE = T_SI_COPYFILE

type _SLIST_HEADER = T_SLIST_HEADER

type _SMALL_RECT = T_SMALL_RECT

const _SMEXF_HANDLER = 2

const _SMEXF_SERVER = 1

const _SONY_12_WO = 66

const _SONY_D2 = 49

const _SONY_DTF = 46

const _SPACE = 8

type _SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS = T_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS

type _SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA = T_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA

type _SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA = T_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA

type _SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS = T_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS

type _STARTUPINFOA = T_STARTUPINFOA

type _STARTUPINFOEXA = T_STARTUPINFOEXA

type _STARTUPINFOEXW = T_STARTUPINFOEXW

type _STARTUPINFOW = T_STARTUPINFOW

const _STATFLAG_DEFAULT = 0

const _STATFLAG_NONAME = 1

const _STATFLAG_NOOPEN = 2

const _STGC_CONSOLIDATE = 8

const _STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4

const _STGC_DEFAULT = 0

const _STGC_ONLYIFCURRENT = 2

const _STGC_OVERWRITE = 1

type _STGMEDIUM_UNION = T_STGMEDIUM_UNION

const _STGMOVE_COPY = 1

const _STGMOVE_MOVE = 0

const _STGMOVE_SHALLOWCOPY = 2

const _STGTY_LOCKBYTES = 3

const _STGTY_PROPERTY = 4

const _STGTY_STORAGE = 1

const _STGTY_STREAM = 2

const _STK_9840 = 85

const _STK_9940 = 92

const _STK_DATA_D3 = 45

type _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = T_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR

type _STORAGE_ADAPTER_DESCRIPTOR = T_STORAGE_ADAPTER_DESCRIPTOR

type _STORAGE_ALLOCATE_BC_STREAM_INPUT = T_STORAGE_ALLOCATE_BC_STREAM_INPUT

type _STORAGE_ALLOCATE_BC_STREAM_OUTPUT = T_STORAGE_ALLOCATE_BC_STREAM_OUTPUT

type _STORAGE_BUS_RESET_REQUEST = T_STORAGE_BUS_RESET_REQUEST

type _STORAGE_CRYPTO_CAPABILITY = T_STORAGE_CRYPTO_CAPABILITY

type _STORAGE_CRYPTO_DESCRIPTOR = T_STORAGE_CRYPTO_DESCRIPTOR

type _STORAGE_DEPENDENCY_INFO = T_STORAGE_DEPENDENCY_INFO

type _STORAGE_DEPENDENCY_INFO_TYPE_1 = T_STORAGE_DEPENDENCY_INFO_TYPE_1

type _STORAGE_DEPENDENCY_INFO_TYPE_2 = T_STORAGE_DEPENDENCY_INFO_TYPE_2

const _STORAGE_DEPENDENCY_INFO_VERSION_1 = 1

const _STORAGE_DEPENDENCY_INFO_VERSION_2 = 2

const _STORAGE_DEPENDENCY_INFO_VERSION_UNSPECIFIED = 0

type _STORAGE_DESCRIPTOR_HEADER = T_STORAGE_DESCRIPTOR_HEADER

type _STORAGE_DEVICE_DESCRIPTOR = T_STORAGE_DEVICE_DESCRIPTOR

type _STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = T_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR

type _STORAGE_DEVICE_ID_DESCRIPTOR = T_STORAGE_DEVICE_ID_DESCRIPTOR

type _STORAGE_DEVICE_NUMBER = T_STORAGE_DEVICE_NUMBER

type _STORAGE_DEVICE_NUMBERS = T_STORAGE_DEVICE_NUMBERS

type _STORAGE_DEVICE_NUMBER_EX = T_STORAGE_DEVICE_NUMBER_EX

type _STORAGE_DEVICE_RESILIENCY_DESCRIPTOR = T_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR

type _STORAGE_DEVICE_TIERING_DESCRIPTOR = T_STORAGE_DEVICE_TIERING_DESCRIPTOR

type _STORAGE_FAILURE_PREDICTION_CONFIG = T_STORAGE_FAILURE_PREDICTION_CONFIG

type _STORAGE_GET_BC_PROPERTIES_OUTPUT = T_STORAGE_GET_BC_PROPERTIES_OUTPUT

type _STORAGE_HOTPLUG_INFO = T_STORAGE_HOTPLUG_INFO

type _STORAGE_IDENTIFIER = T_STORAGE_IDENTIFIER

type _STORAGE_LB_PROVISIONING_MAP_RESOURCES = T_STORAGE_LB_PROVISIONING_MAP_RESOURCES

type _STORAGE_MEDIA_SERIAL_NUMBER_DATA = T_STORAGE_MEDIA_SERIAL_NUMBER_DATA

type _STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = T_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR

type _STORAGE_MINIPORT_DESCRIPTOR = T_STORAGE_MINIPORT_DESCRIPTOR

type _STORAGE_PREDICT_FAILURE = T_STORAGE_PREDICT_FAILURE

type _STORAGE_PRIORITY_HINT_SUPPORT = T_STORAGE_PRIORITY_HINT_SUPPORT

type _STORAGE_PROPERTY_QUERY = T_STORAGE_PROPERTY_QUERY

type _STORAGE_PROPERTY_SET = T_STORAGE_PROPERTY_SET

type _STORAGE_PROTOCOL_DATA_DESCRIPTOR = T_STORAGE_PROTOCOL_DATA_DESCRIPTOR

type _STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = T_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT

type _STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = T_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE

type _STORAGE_PROTOCOL_SPECIFIC_DATA = T_STORAGE_PROTOCOL_SPECIFIC_DATA

type _STORAGE_PROTOCOL_SPECIFIC_DATA_EXT = T_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT

type _STORAGE_READ_CAPACITY = T_STORAGE_READ_CAPACITY

type _STORAGE_RPMB_DESCRIPTOR = T_STORAGE_RPMB_DESCRIPTOR

type _STORAGE_TIER = T_STORAGE_TIER

type _STORAGE_WRITE_CACHE_PROPERTY = T_STORAGE_WRITE_CACHE_PROPERTY

const _STRALIGN_USE_SECURE_CRT = 0

const _STREAM_SEEK_CUR = 1

const _STREAM_SEEK_END = 2

const _STREAM_SEEK_SET = 0

const _STUB_CALL_SERVER = 1

const _STUB_CALL_SERVER_NO_HRESULT = 3

const _STUB_MARSHAL = 2

const _STUB_UNMARSHAL = 0

type _SUPPORTED_OS_INFO = T_SUPPORTED_OS_INFO

const _SYQUEST_EZ135 = 75

const _SYQUEST_EZFLYER = 76

const _SYQUEST_SYJET = 77

type _SYSGEOCLASS = int32

type _SYSGEOTYPE = int32

type _SYSNLS_FUNCTION = int32

type _SYSTEMTIME = T_SYSTEMTIME

type _SYSTEM_ALARM_ACE = T_SYSTEM_ALARM_ACE

type _SYSTEM_ALARM_CALLBACK_ACE = T_SYSTEM_ALARM_CALLBACK_ACE

type _SYSTEM_ALARM_CALLBACK_OBJECT_ACE = T_SYSTEM_ALARM_CALLBACK_OBJECT_ACE

type _SYSTEM_ALARM_OBJECT_ACE = T_SYSTEM_ALARM_OBJECT_ACE

type _SYSTEM_AUDIT_ACE = T_SYSTEM_AUDIT_ACE

type _SYSTEM_AUDIT_CALLBACK_ACE = T_SYSTEM_AUDIT_CALLBACK_ACE

type _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = T_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE

type _SYSTEM_AUDIT_OBJECT_ACE = T_SYSTEM_AUDIT_OBJECT_ACE

type _SYSTEM_INFO = T_SYSTEM_INFO

type _SYSTEM_LOGICAL_PROCESSOR_INFORMATION = T_SYSTEM_LOGICAL_PROCESSOR_INFORMATION

type _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = T_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

type _SYSTEM_MANDATORY_LABEL_ACE = T_SYSTEM_MANDATORY_LABEL_ACE

type _SYSTEM_POWER_POLICY = T_SYSTEM_POWER_POLICY

type _SYSTEM_POWER_STATUS = T_SYSTEM_POWER_STATUS

type _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = T_SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION

type _SYSTEM_RESOURCE_ATTRIBUTE_ACE = T_SYSTEM_RESOURCE_ATTRIBUTE_ACE

type _SYSTEM_SCOPED_POLICY_ID_ACE = T_SYSTEM_SCOPED_POLICY_ID_ACE

type _SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION = T_SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION

const _SYS_MAC = 2

const _SYS_OPEN = 20

const _SYS_WIN16 = 0

const _SYS_WIN32 = 1

const _SYS_WIN64 = 3

const _SZM_CREATE = 0

const _SZM_DELETE = 1

const _ScreenOff = 73

const _SeLearningModeInvalidType = 0

const _SeLearningModeMax = 2

const _SeLearningModeSettings = 1

const _SecurityAnonymous = 0

const _SecurityDelegation = 3

const _SecurityIdentification = 1

const _SecurityImpersonation = 2

const _ServerApplication = 0

const _SessionConnectNotification = 62

const _SessionDisplayState = 42

const _SessionLockState = 64

const _SessionPowerCleanup = 63

const _SessionPowerInit = 41

const _SessionRITState = 61

const _SetPowerSettingValue = 25

const _SetShutdownSelectedTime = 70

const _SevereError = 2

const _ShrinkAbort = 3

const _ShrinkCommit = 2

const _ShrinkPrepare = 1

const _SidTypeAlias = 4

const _SidTypeComputer = 9

const _SidTypeDeletedAccount = 6

const _SidTypeDomain = 3

const _SidTypeGroup = 2

const _SidTypeInvalid = 7

const _SidTypeLabel = 10

const _SidTypeLogonSession = 11

const _SidTypeUnknown = 8

const _SidTypeUser = 1

const _SidTypeWellKnownGroup = 5

const _StorageAccessAlignmentProperty = 6

const _StorageAdapterCryptoProperty = 17

const _StorageAdapterPhysicalTopologyProperty = 53

const _StorageAdapterProperty = 1

const _StorageAdapterProtocolSpecificProperty = 49

const _StorageAdapterRpmbProperty = 16

const _StorageAdapterSerialNumberProperty = 57

const _StorageAdapterTemperatureProperty = 51

const _StorageCryptoAlgorithmAESECB = 3

const _StorageCryptoAlgorithmBitlockerAESCBC = 2

const _StorageCryptoAlgorithmESSIVAESCBC = 4

const _StorageCryptoAlgorithmMax = 5

const _StorageCryptoAlgorithmUnknown = 0

const _StorageCryptoAlgorithmXTSAES = 1

const _StorageCryptoKeySize128Bits = 1

const _StorageCryptoKeySize192Bits = 2

const _StorageCryptoKeySize256Bits = 3

const _StorageCryptoKeySize512Bits = 4

const _StorageCryptoKeySizeUnknown = 0

const _StorageDeviceAttributesProperty = 55

const _StorageDeviceCopyOffloadProperty = 13

const _StorageDeviceDeviceTelemetryProperty = 10

const _StorageDeviceEnduranceProperty = 62

const _StorageDeviceIdProperty = 2

const _StorageDeviceIoCapabilityProperty = 48

const _StorageDeviceLBProvisioningProperty = 11

const _StorageDeviceLedStateProperty = 63

const _StorageDeviceLocationProperty = 58

const _StorageDeviceManagementStatus = 56

const _StorageDeviceMediumProductType = 15

const _StorageDeviceNumaProperty = 59

const _StorageDevicePhysicalTopologyProperty = 54

const _StorageDevicePowerProperty = 12

const _StorageDeviceProperty = 0

const _StorageDeviceProtocolSpecificProperty = 50

const _StorageDeviceResiliencyProperty = 14

const _StorageDeviceSeekPenaltyProperty = 7

const _StorageDeviceSelfEncryptionProperty = 64

const _StorageDeviceTemperatureProperty = 52

const _StorageDeviceTrimProperty = 8

const _StorageDeviceUniqueIdProperty = 3

const _StorageDeviceUnsafeShutdownCount = 61

const _StorageDeviceWriteAggregationProperty = 9

const _StorageDeviceWriteCacheProperty = 4

const _StorageDeviceZonedDeviceProperty = 60

const _StorageFruIdProperty = 65

const _StorageIdAssocDevice = 0

const _StorageIdAssocPort = 1

const _StorageIdAssocTarget = 2

const _StorageIdCodeSetAscii = 2

const _StorageIdCodeSetBinary = 1

const _StorageIdCodeSetReserved = 0

const _StorageIdCodeSetUtf8 = 3

const _StorageIdNAAFormatIEEEERegisteredExtended = 5

const _StorageIdNAAFormatIEEEExtended = 2

const _StorageIdNAAFormatIEEERegistered = 3

const _StorageIdTypeEUI64 = 2

const _StorageIdTypeFCPHName = 3

const _StorageIdTypeLogicalUnitGroup = 6

const _StorageIdTypeMD5LogicalUnitIdentifier = 7

const _StorageIdTypePortRelative = 4

const _StorageIdTypeScsiNameString = 8

const _StorageIdTypeTargetPortGroup = 5

const _StorageIdTypeVendorId = 1

const _StorageIdTypeVendorSpecific = 0

const _StorageMiniportProperty = 5

const _StoragePortCodeSetATAport = 4

const _StoragePortCodeSetReserved = 0

const _StoragePortCodeSetSBP2port = 6

const _StoragePortCodeSetSCSIport = 2

const _StoragePortCodeSetSDport = 7

const _StoragePortCodeSetSpaceport = 3

const _StoragePortCodeSetStorport = 1

const _StoragePortCodeSetUSBport = 5

const _StorageRpmbFrameTypeMax = 2

const _StorageRpmbFrameTypeStandard = 1

const _StorageRpmbFrameTypeUnknown = 0

const _StorageTierClassCapacity = 1

const _StorageTierClassMax = 3

const _StorageTierClassPerformance = 2

const _StorageTierClassUnspecified = 0

const _StorageTierMediaTypeDisk = 1

const _StorageTierMediaTypeMax = 5

const _StorageTierMediaTypeScm = 4

const _StorageTierMediaTypeSsd = 2

const _StorageTierMediaTypeUnspecified = 0

const _SuspendResumeInvocation = 71

const _SystemBatteryState = 5

const _SystemExecutionState = 16

const _SystemHiberFileInformation = 36

const _SystemHiberFileSize = 51

const _SystemHiberbootState = 65

const _SystemLoad = 1

const _SystemMonitorHiberBootPowerOff = 28

const _SystemPowerCapabilities = 4

const _SystemPowerInformation = 12

const _SystemPowerLoggingEntry = 24

const _SystemPowerPolicyAc = 0

const _SystemPowerPolicyCurrent = 8

const _SystemPowerPolicyDc = 1

const _SystemPowerStateHandler = 6

const _SystemPowerStateLogging = 23

const _SystemPowerStateNotifyHandler = 17

const _SystemReserveHiberFile = 10

const _SystemVideoState = 29

const _SystemWakeSource = 35

const _TAKE_SNAPSHOT_VHDSET_FLAG_NONE = 0

type _TAKE_SNAPSHOT_VHDSET_PARAMETERS = T_TAKE_SNAPSHOT_VHDSET_PARAMETERS

const _TAKE_SNAPSHOT_VHDSET_VERSION_1 = 1

const _TAKE_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED = 0

type _TAPE_CREATE_PARTITION = T_TAPE_CREATE_PARTITION

type _TAPE_ERASE = T_TAPE_ERASE

type _TAPE_GET_DRIVE_PARAMETERS = T_TAPE_GET_DRIVE_PARAMETERS

type _TAPE_GET_MEDIA_PARAMETERS = T_TAPE_GET_MEDIA_PARAMETERS

type _TAPE_GET_POSITION = T_TAPE_GET_POSITION

type _TAPE_GET_STATISTICS = T_TAPE_GET_STATISTICS

type _TAPE_PREPARE = T_TAPE_PREPARE

type _TAPE_SET_DRIVE_PARAMETERS = T_TAPE_SET_DRIVE_PARAMETERS

type _TAPE_SET_MEDIA_PARAMETERS = T_TAPE_SET_MEDIA_PARAMETERS

type _TAPE_SET_POSITION = T_TAPE_SET_POSITION

type _TAPE_STATISTICS = T_TAPE_STATISTICS

type _TAPE_WMI_OPERATIONS = T_TAPE_WMI_OPERATIONS

type _TAPE_WRITE_MARKS = T_TAPE_WRITE_MARKS

const _THDTYPE_BLOCKMESSAGES = 0

const _THDTYPE_PROCESSMESSAGES = 1

type _TIME_DYNAMIC_ZONE_INFORMATION = T_TIME_DYNAMIC_ZONE_INFORMATION

type _TIME_ZONE_INFORMATION = T_TIME_ZONE_INFORMATION

const _TKIND_ALIAS = 6

const _TKIND_COCLASS = 5

const _TKIND_DISPATCH = 4

const _TKIND_ENUM = 0

const _TKIND_INTERFACE = 3

const _TKIND_MAX = 8

const _TKIND_MODULE = 2

const _TKIND_RECORD = 1

const _TKIND_UNION = 7

const _TLOSS = 5

type _TOKEN_ACCESS_INFORMATION = T_TOKEN_ACCESS_INFORMATION

type _TOKEN_APPCONTAINER_INFORMATION = T_TOKEN_APPCONTAINER_INFORMATION

type _TOKEN_AUDIT_POLICY = T_TOKEN_AUDIT_POLICY

type _TOKEN_CONTROL = T_TOKEN_CONTROL

type _TOKEN_DEFAULT_DACL = T_TOKEN_DEFAULT_DACL

type _TOKEN_DEVICE_CLAIMS = T_TOKEN_DEVICE_CLAIMS

type _TOKEN_ELEVATION = T_TOKEN_ELEVATION

type _TOKEN_GROUPS = T_TOKEN_GROUPS

type _TOKEN_GROUPS_AND_PRIVILEGES = T_TOKEN_GROUPS_AND_PRIVILEGES

type _TOKEN_LINKED_TOKEN = T_TOKEN_LINKED_TOKEN

type _TOKEN_MANDATORY_LABEL = T_TOKEN_MANDATORY_LABEL

type _TOKEN_MANDATORY_POLICY = T_TOKEN_MANDATORY_POLICY

type _TOKEN_ORIGIN = T_TOKEN_ORIGIN

type _TOKEN_OWNER = T_TOKEN_OWNER

type _TOKEN_PRIMARY_GROUP = T_TOKEN_PRIMARY_GROUP

type _TOKEN_PRIVILEGES = T_TOKEN_PRIVILEGES

type _TOKEN_SOURCE = T_TOKEN_SOURCE

type _TOKEN_STATISTICS = T_TOKEN_STATISTICS

type _TOKEN_USER = T_TOKEN_USER

type _TOKEN_USER_CLAIMS = T_TOKEN_USER_CLAIMS

type _TP_CALLBACK_ENVIRON_V3 = T_TP_CALLBACK_ENVIRON_V3

const _TP_CALLBACK_PRIORITY_COUNT = 3

const _TP_CALLBACK_PRIORITY_HIGH = 0

const _TP_CALLBACK_PRIORITY_INVALID = 3

const _TP_CALLBACK_PRIORITY_LOW = 2

const _TP_CALLBACK_PRIORITY_NORMAL = 1

type _TP_POOL_STACK_INFORMATION = T_TP_POOL_STACK_INFORMATION

type _TRANSACTIONMANAGER_BASIC_INFORMATION = T_TRANSACTIONMANAGER_BASIC_INFORMATION

type _TRANSACTIONMANAGER_LOGPATH_INFORMATION = T_TRANSACTIONMANAGER_LOGPATH_INFORMATION

type _TRANSACTIONMANAGER_LOG_INFORMATION = T_TRANSACTIONMANAGER_LOG_INFORMATION

type _TRANSACTIONMANAGER_OLDEST_INFORMATION = T_TRANSACTIONMANAGER_OLDEST_INFORMATION

type _TRANSACTIONMANAGER_RECOVERY_INFORMATION = T_TRANSACTIONMANAGER_RECOVERY_INFORMATION

type _TRANSACTION_BASIC_INFORMATION = T_TRANSACTION_BASIC_INFORMATION

type _TRANSACTION_BIND_INFORMATION = T_TRANSACTION_BIND_INFORMATION

type _TRANSACTION_ENLISTMENTS_INFORMATION = T_TRANSACTION_ENLISTMENTS_INFORMATION

type _TRANSACTION_ENLISTMENT_PAIR = T_TRANSACTION_ENLISTMENT_PAIR

type _TRANSACTION_LIST_ENTRY = T_TRANSACTION_LIST_ENTRY

type _TRANSACTION_LIST_INFORMATION = T_TRANSACTION_LIST_INFORMATION

type _TRANSACTION_NOTIFICATION = T_TRANSACTION_NOTIFICATION

type _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = T_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT

type _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = T_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT

type _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = T_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT

type _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = T_TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT

type _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = T_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT

type _TRANSACTION_PROPERTIES_INFORMATION = T_TRANSACTION_PROPERTIES_INFORMATION

type _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = T_TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION

type _TRANSMIT_FILE_BUFFERS = T_TRANSMIT_FILE_BUFFERS

type _TRIVERTEX = T_TRIVERTEX

const _TRUNCATE = -1

const _TRUSTEDDOWNLOADPROP = 3

const _TWO_DIGIT_EXPONENT = 1

type _TXFS_CREATE_MINIVERSION_INFO = T_TXFS_CREATE_MINIVERSION_INFO

type _TXFS_GET_METADATA_INFO_OUT = T_TXFS_GET_METADATA_INFO_OUT

type _TXFS_GET_TRANSACTED_VERSION = T_TXFS_GET_TRANSACTED_VERSION

type _TXFS_LIST_TRANSACTIONS = T_TXFS_LIST_TRANSACTIONS

type _TXFS_LIST_TRANSACTIONS_ENTRY = T_TXFS_LIST_TRANSACTIONS_ENTRY

type _TXFS_LIST_TRANSACTION_LOCKED_FILES = T_TXFS_LIST_TRANSACTION_LOCKED_FILES

type _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY = T_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY

type _TXFS_MODIFY_RM = T_TXFS_MODIFY_RM

type _TXFS_QUERY_RM_INFORMATION = T_TXFS_QUERY_RM_INFORMATION

type _TXFS_READ_BACKUP_INFORMATION_OUT = T_TXFS_READ_BACKUP_INFORMATION_OUT

type _TXFS_ROLLFORWARD_REDO_INFORMATION = T_TXFS_ROLLFORWARD_REDO_INFORMATION

type _TXFS_SAVEPOINT_INFORMATION = T_TXFS_SAVEPOINT_INFORMATION

type _TXFS_START_RM_INFORMATION = T_TXFS_START_RM_INFORMATION

type _TXFS_TRANSACTION_ACTIVE_INFO = T_TXFS_TRANSACTION_ACTIVE_INFO

type _TXFS_WRITE_BACKUP_INFORMATION = T_TXFS_WRITE_BACKUP_INFORMATION

const _TYMED_ENHMF = 64

const _TYMED_FILE = 2

const _TYMED_GDI = 16

const _TYMED_HGLOBAL = 1

const _TYMED_ISTORAGE = 8

const _TYMED_ISTREAM = 4

const _TYMED_MFPICT = 32

const _TYMED_NULL = 0

const _TYPEFLAG_FAGGREGATABLE = 1024

const _TYPEFLAG_FAPPOBJECT = 1

const _TYPEFLAG_FCANCREATE = 2

const _TYPEFLAG_FCONTROL = 32

const _TYPEFLAG_FDISPATCHABLE = 4096

const _TYPEFLAG_FDUAL = 64

const _TYPEFLAG_FHIDDEN = 16

const _TYPEFLAG_FLICENSED = 4

const _TYPEFLAG_FNONEXTENSIBLE = 128

const _TYPEFLAG_FOLEAUTOMATION = 256

const _TYPEFLAG_FPREDECLID = 8

const _TYPEFLAG_FPROXY = 16384

const _TYPEFLAG_FREPLACEABLE = 2048

const _TYPEFLAG_FRESTRICTED = 512

const _TYPEFLAG_FREVERSEBIND = 8192

const _TYSPEC_CLSID = 0

const _TYSPEC_FILEEXT = 1

const _TYSPEC_FILENAME = 3

const _TYSPEC_MIMETYPE = 2

const _TYSPEC_OBJECTID = 6

const _TYSPEC_PACKAGENAME = 5

const _TYSPEC_PROGID = 4

const _TapeDriveCleanDriveNow = 11

const _TapeDriveHardwareError = 7

const _TapeDriveMediaLifeExpired = 12

const _TapeDriveProblemNone = 0

const _TapeDriveReadError = 5

const _TapeDriveReadWarning = 3

const _TapeDriveReadWriteError = 2

const _TapeDriveReadWriteWarning = 1

const _TapeDriveScsiConnectionError = 9

const _TapeDriveSnappedTape = 13

const _TapeDriveTimetoClean = 10

const _TapeDriveUnsupportedMedia = 8

const _TapeDriveWriteError = 6

const _TapeDriveWriteWarning = 4

const _ThreadAbsoluteCpuPriority = 1

const _ThreadDynamicCodePolicy = 2

const _ThreadInformationClassMax = 4

const _ThreadMemoryPriority = 0

const _ThreadPowerThrottling = 3

const _TokenAccessInformation = 22

const _TokenAppContainerNumber = 32

const _TokenAppContainerSid = 31

const _TokenAuditPolicy = 16

const _TokenCapabilities = 30

const _TokenDefaultDacl = 6

const _TokenDeviceClaimAttributes = 34

const _TokenDeviceGroups = 37

const _TokenElevation = 20

const _TokenElevationType = 18

const _TokenElevationTypeDefault = 1

const _TokenElevationTypeFull = 2

const _TokenElevationTypeLimited = 3

const _TokenGroups = 2

const _TokenGroupsAndPrivileges = 13

const _TokenHasRestrictions = 21

const _TokenImpersonation = 2

const _TokenImpersonationLevel = 9

const _TokenIntegrityLevel = 25

const _TokenIsAppContainer = 29

const _TokenIsRestricted = 40

const _TokenLinkedToken = 19

const _TokenLogonSid = 28

const _TokenMandatoryPolicy = 27

const _TokenOrigin = 17

const _TokenOwner = 4

const _TokenPrimary = 1

const _TokenPrimaryGroup = 5

const _TokenPrivileges = 3

const _TokenRestrictedDeviceClaimAttributes = 36

const _TokenRestrictedDeviceGroups = 38

const _TokenRestrictedSids = 11

const _TokenRestrictedUserClaimAttributes = 35

const _TokenSandBoxInert = 15

const _TokenSecurityAttributes = 39

const _TokenSessionId = 12

const _TokenSessionReference = 14

const _TokenSource = 7

const _TokenStatistics = 10

const _TokenType = 8

const _TokenUIAccess = 26

const _TokenUser = 1

const _TokenUserClaimAttributes = 33

const _TokenVirtualizationAllowed = 23

const _TokenVirtualizationEnabled = 24

const _ToleranceHigh = 3

const _ToleranceIntervalLong = 3

const _ToleranceIntervalMedium = 2

const _ToleranceIntervalShort = 1

const _ToleranceLow = 1

const _ToleranceMedium = 2

const _TraceApplicationPowerMessage = 30

const _TraceApplicationPowerMessageEnd = 31

const _TraceServicePowerMessage = 37

const _TransactionBasicInformation = 0

const _TransactionBindInformation = 4

const _TransactionDTCPrivateInformation = 5

const _TransactionEnlistmentInformation = 2

const _TransactionManagerBasicInformation = 0

const _TransactionManagerLogInformation = 1

const _TransactionManagerLogPathInformation = 2

const _TransactionManagerOldestTransactionInformation = 5

const _TransactionManagerOnlineProbeInformation = 3

const _TransactionManagerRecoveryInformation = 4

const _TransactionOutcomeAborted = 3

const _TransactionOutcomeCommitted = 2

const _TransactionOutcomeUndetermined = 1

const _TransactionPropertiesInformation = 1

const _TransactionStateCommittedNotify = 3

const _TransactionStateIndoubt = 2

const _TransactionStateNormal = 1

const _TransactionSuperiorEnlistmentInformation = 3

const _Travan = 34

const _UI16_MAX = 65535

const _UI32_MAX = 4294967295

const _UI64_MAX = 18446744073709551615

const _UI8_MAX = 255

type _ULARGE_INTEGER = T_ULARGE_INTEGER

type _UMS_CREATE_THREAD_ATTRIBUTES = T_UMS_CREATE_THREAD_ATTRIBUTES

const _UNDERFLOW = 4

type _UNIVERSAL_NAME_INFOA = T_UNIVERSAL_NAME_INFOA

type _UNIVERSAL_NAME_INFOW = T_UNIVERSAL_NAME_INFOW

type _UNLOAD_DLL_DEBUG_INFO = T_UNLOAD_DLL_DEBUG_INFO

const _UNSPECIFIED_COMPARTMENT_ID = 0

const _UPPER = 1

const _URLTEMPLATE_CUSTOM = 0

const _URLTEMPLATE_HIGH = 73728

const _URLTEMPLATE_LOW = 65536

const _URLTEMPLATE_MEDHIGH = 70912

const _URLTEMPLATE_MEDIUM = 69632

const _URLTEMPLATE_MEDLOW = 66816

const _URLTEMPLATE_PREDEFINED_MAX = 131072

const _URLTEMPLATE_PREDEFINED_MIN = 65536

const _URLZONEREG_DEFAULT = 0

const _URLZONEREG_HKCU = 2

const _URLZONEREG_HKLM = 1

const _URLZONE_INTERNET = 3

const _URLZONE_INTRANET = 1

const _URLZONE_INVALID = -1

const _URLZONE_LOCAL_MACHINE = 0

const _URLZONE_PREDEFINED_MAX = 999

const _URLZONE_PREDEFINED_MIN = 0

const _URLZONE_TRUSTED = 2

const _URLZONE_UNTRUSTED = 4

const _URLZONE_USER_MAX = 10000

const _URLZONE_USER_MIN = 1000

const _URL_ENCODING_DISABLE_UTF8 = 536870912

const _URL_ENCODING_ENABLE_UTF8 = 268435456

const _URL_ENCODING_NONE = 0

const _USEDENTRY = 1

const _USERCLASSTYPE_APPNAME = 3

const _USERCLASSTYPE_FULL = 1

const _USERCLASSTYPE_SHORT = 2

type _USER_MARSHAL_CB = T_USER_MARSHAL_CB

const _USER_MARSHAL_CB_BUFFER_SIZE = 0

const _USER_MARSHAL_CB_FREE = 3

const _USER_MARSHAL_CB_MARSHALL = 1

const _USER_MARSHAL_CB_UNMARSHALL = 2

type _USER_MARSHAL_ROUTINE_QUADRUPLE = T_USER_MARSHAL_ROUTINE_QUADRUPLE

const _USE_SRC_URL = 1

type _UUID_VECTOR = T_UUID_VECTOR

const _UfsDataTypeMax = 6

const _UfsDataTypeQueryAttribute = 2

const _UfsDataTypeQueryDescriptor = 1

const _UfsDataTypeQueryDmeAttribute = 4

const _UfsDataTypeQueryDmePeerAttribute = 5

const _UfsDataTypeQueryFlag = 3

const _UfsDataTypeUnknown = 0

const _UmsSchedulerStartup = 0

const _UmsSchedulerThreadBlocked = 1

const _UmsSchedulerThreadYield = 2

const _UmsThreadAffinity = 3

const _UmsThreadInvalidInfoClass = 0

const _UmsThreadIsSuspended = 5

const _UmsThreadIsTerminated = 6

const _UmsThreadMaxInfoClass = 7

const _UmsThreadPriority = 2

const _UmsThreadTeb = 4

const _UmsThreadUserContext = 1

const _Unknown = 0

const _Uri_HOST_DNS = 1

const _Uri_HOST_IDN = 4

const _Uri_HOST_IPV4 = 2

const _Uri_HOST_IPV6 = 3

const _Uri_HOST_UNKNOWN = 0

const _Uri_PROPERTY_ABSOLUTE_URI = 0

const _Uri_PROPERTY_AUTHORITY = 1

const _Uri_PROPERTY_DISPLAY_URI = 2

const _Uri_PROPERTY_DOMAIN = 3

const _Uri_PROPERTY_DWORD_LAST = 18

const _Uri_PROPERTY_DWORD_START = 15

const _Uri_PROPERTY_EXTENSION = 4

const _Uri_PROPERTY_FRAGMENT = 5

const _Uri_PROPERTY_HOST = 6

const _Uri_PROPERTY_HOST_TYPE = 15

const _Uri_PROPERTY_PASSWORD = 7

const _Uri_PROPERTY_PATH = 8

const _Uri_PROPERTY_PATH_AND_QUERY = 9

const _Uri_PROPERTY_PORT = 16

const _Uri_PROPERTY_QUERY = 10

const _Uri_PROPERTY_RAW_URI = 11

const _Uri_PROPERTY_SCHEME = 17

const _Uri_PROPERTY_SCHEME_NAME = 12

const _Uri_PROPERTY_STRING_LAST = 14

const _Uri_PROPERTY_STRING_START = 0

const _Uri_PROPERTY_USER_INFO = 13

const _Uri_PROPERTY_USER_NAME = 14

const _Uri_PROPERTY_ZONE = 18

const _UserEnabled = 1

const _UserNotPresent = 0

const _UserPresence = 57

const _UserPresent = 1

const _UserUnknown = 255

type _VARENUM = int32

const _VARFLAG_FBINDABLE = 4

const _VARFLAG_FDEFAULTBIND = 32

const _VARFLAG_FDEFAULTCOLLELEM = 256

const _VARFLAG_FDISPLAYBIND = 16

const _VARFLAG_FHIDDEN = 64

const _VARFLAG_FIMMEDIATEBIND = 4096

const _VARFLAG_FNONBROWSABLE = 1024

const _VARFLAG_FREADONLY = 1

const _VARFLAG_FREPLACEABLE = 2048

const _VARFLAG_FREQUESTEDIT = 8

const _VARFLAG_FRESTRICTED = 128

const _VARFLAG_FSOURCE = 2

const _VARFLAG_FUIDEFAULT = 512

const _VAR_CONST = 2

const _VAR_DISPATCH = 3

const _VAR_PERINSTANCE = 0

const _VAR_STATIC = 1

type _VERIFY_INFORMATION = T_VERIFY_INFORMATION

type _VIDEOPARAMETERS = T_VIDEOPARAMETERS

const _VIRTUAL_DISK_ACCESS_ALL = 4128768

const _VIRTUAL_DISK_ACCESS_ATTACH_RO = 65536

const _VIRTUAL_DISK_ACCESS_ATTACH_RW = 131072

const _VIRTUAL_DISK_ACCESS_CREATE = 1048576

const _VIRTUAL_DISK_ACCESS_DETACH = 262144

const _VIRTUAL_DISK_ACCESS_GET_INFO = 524288

const _VIRTUAL_DISK_ACCESS_METAOPS = 2097152

const _VIRTUAL_DISK_ACCESS_NONE = 0

const _VIRTUAL_DISK_ACCESS_READ = 851968

const _VIRTUAL_DISK_ACCESS_WRITABLE = 3276800

type _VIRTUAL_DISK_PROGRESS = T_VIRTUAL_DISK_PROGRESS

type _VIRTUAL_STORAGE_TYPE = T_VIRTUAL_STORAGE_TYPE

type _VOLUME_DISK_EXTENTS = T_VOLUME_DISK_EXTENTS

type _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION = T_VOLUME_GET_GPT_ATTRIBUTES_INFORMATION

const _VT_ARRAY = 8192

const _VT_BLOB = 65

const _VT_BLOB_OBJECT = 70

const _VT_BOOL = 11

const _VT_BSTR = 8

const _VT_BSTR_BLOB = 4095

const _VT_BYREF = 16384

const _VT_CARRAY = 28

const _VT_CF = 71

const _VT_CLSID = 72

const _VT_CY = 6

const _VT_DATE = 7

const _VT_DECIMAL = 14

const _VT_DISPATCH = 9

const _VT_EMPTY = 0

const _VT_ERROR = 10

const _VT_FILETIME = 64

const _VT_HRESULT = 25

const _VT_I1 = 16

const _VT_I2 = 2

const _VT_I4 = 3

const _VT_I8 = 20

const _VT_ILLEGAL = 65535

const _VT_ILLEGALMASKED = 4095

const _VT_INT = 22

const _VT_INT_PTR = 37

const _VT_LPSTR = 30

const _VT_LPWSTR = 31

const _VT_NULL = 1

const _VT_PTR = 26

const _VT_R4 = 4

const _VT_R8 = 5

const _VT_RECORD = 36

const _VT_RESERVED = 32768

const _VT_SAFEARRAY = 27

const _VT_STORAGE = 67

const _VT_STORED_OBJECT = 69

const _VT_STREAM = 66

const _VT_STREAMED_OBJECT = 68

const _VT_TYPEMASK = 4095

const _VT_UI1 = 17

const _VT_UI2 = 18

const _VT_UI4 = 19

const _VT_UI8 = 21

const _VT_UINT = 23

const _VT_UINT_PTR = 38

const _VT_UNKNOWN = 13

const _VT_USERDEFINED = 29

const _VT_VARIANT = 12

const _VT_VECTOR = 4096

const _VT_VERSIONED_STREAM = 73

const _VT_VOID = 24

const _VXATape = 94

const _VXATape_1 = 83

const _VXATape_2 = 84

const _VerifyProcessorPowerPolicyAc = 20

const _VerifyProcessorPowerPolicyDc = 21

const _VerifySystemPolicyAc = 2

const _VerifySystemPolicyDc = 3

const _VmOfferPriorityBelowNormal = 3

const _VmOfferPriorityLow = 2

const _VmOfferPriorityNormal = 4

const _VmOfferPriorityVeryLow = 1

const _WAIT_CHILD = 0

const _WAIT_GRANDCHILD = 1

const _WConst_return = 0

type _WGLSWAP = T_WGLSWAP

const _WIN32 = 1

type _WIN32_FILE_ATTRIBUTE_DATA = T_WIN32_FILE_ATTRIBUTE_DATA

type _WIN32_FIND_DATAA = T_WIN32_FIND_DATAA

type _WIN32_FIND_DATAW = T_WIN32_FIND_DATAW

type _WIN32_FIND_STREAM_DATA = T_WIN32_FIND_STREAM_DATA

const _WIN32_IE = 2560

const _WIN32_IE_IE100 = 2560

const _WIN32_IE_IE110 = 2560

const _WIN32_IE_IE20 = 512

const _WIN32_IE_IE30 = 768

const _WIN32_IE_IE302 = 770

const _WIN32_IE_IE40 = 1024

const _WIN32_IE_IE401 = 1025

const _WIN32_IE_IE50 = 1280

const _WIN32_IE_IE501 = 1281

const _WIN32_IE_IE55 = 1360

const _WIN32_IE_IE60 = 1536

const _WIN32_IE_IE60SP1 = 1537

const _WIN32_IE_IE60SP2 = 1539

const _WIN32_IE_IE70 = 1792

const _WIN32_IE_IE80 = 2048

const _WIN32_IE_IE90 = 2304

const _WIN32_IE_LONGHORN = 1792

const _WIN32_IE_NT4 = 512

const _WIN32_IE_NT4SP1 = 512

const _WIN32_IE_NT4SP2 = 512

const _WIN32_IE_NT4SP3 = 770

const _WIN32_IE_NT4SP4 = 1025

const _WIN32_IE_NT4SP5 = 1025

const _WIN32_IE_NT4SP6 = 1280

const _WIN32_IE_WIN10 = 2560

const _WIN32_IE_WIN2K = 1281

const _WIN32_IE_WIN2KSP1 = 1281

const _WIN32_IE_WIN2KSP2 = 1281

const _WIN32_IE_WIN2KSP3 = 1281

const _WIN32_IE_WIN2KSP4 = 1281

const _WIN32_IE_WIN6 = 1792

const _WIN32_IE_WIN7 = 2048

const _WIN32_IE_WIN8 = 2560

const _WIN32_IE_WIN98 = 1025

const _WIN32_IE_WIN98SE = 1280

const _WIN32_IE_WINBLUE = 2560

const _WIN32_IE_WINME = 1360

const _WIN32_IE_WINTHRESHOLD = 2560

const _WIN32_IE_WS03 = 1538

const _WIN32_IE_WS03SP1 = 1539

const _WIN32_IE_XP = 1536

const _WIN32_IE_XPSP1 = 1537

const _WIN32_IE_XPSP2 = 1539

type _WIN32_MEMORY_RANGE_ENTRY = T_WIN32_MEMORY_RANGE_ENTRY

type _WIN32_STREAM_ID = T_WIN32_STREAM_ID

const _WIN32_WINNT = 2560

const _WIN32_WINNT_LONGHORN = 1536

const _WIN32_WINNT_NT4 = 1024

const _WIN32_WINNT_VISTA = 1536

const _WIN32_WINNT_WIN10 = 2560

const _WIN32_WINNT_WIN2K = 1280

const _WIN32_WINNT_WIN6 = 1536

const _WIN32_WINNT_WIN7 = 1537

const _WIN32_WINNT_WIN8 = 1538

const _WIN32_WINNT_WINBLUE = 1539

const _WIN32_WINNT_WINTHRESHOLD = 2560

const _WIN32_WINNT_WINXP = 1281

const _WIN32_WINNT_WS03 = 1282

const _WIN32_WINNT_WS08 = 1536

type _WINDOW_BUFFER_SIZE_RECORD = T_WINDOW_BUFFER_SIZE_RECORD

type _WOF_EXTERNAL_INFO = T_WOF_EXTERNAL_INFO

type _WORD_BLOB = T_WORD_BLOB

type _WOW64_CONTEXT = T_WOW64_CONTEXT

type _WOW64_DESCRIPTOR_TABLE_ENTRY = T_WOW64_DESCRIPTOR_TABLE_ENTRY

type _WOW64_FLOATING_SAVE_AREA = T_WOW64_FLOATING_SAVE_AREA

type _WOW64_LDT_ENTRY = T_WOW64_LDT_ENTRY

const _WRITE_ABORT_MSG = 1

const _WakeTimerList = 50

const _Win32ServiceOwnProcess = 16

const _Win32ServiceShareProcess = 32

const _WinAccountAdministratorSid = 38

const _WinAccountCertAdminsSid = 46

const _WinAccountCloneableControllersSid = 100

const _WinAccountComputersSid = 44

const _WinAccountControllersSid = 45

const _WinAccountDefaultSystemManagedSid = 110

const _WinAccountDomainAdminsSid = 41

const _WinAccountDomainGuestsSid = 43

const _WinAccountDomainUsersSid = 42

const _WinAccountEnterpriseAdminsSid = 48

const _WinAccountEnterpriseKeyAdminsSid = 114

const _WinAccountGuestSid = 39

const _WinAccountKeyAdminsSid = 113

const _WinAccountKrbtgtSid = 40

const _WinAccountPolicyAdminsSid = 49

const _WinAccountProtectedUsersSid = 107

const _WinAccountRasAndIasServersSid = 50

const _WinAccountReadonlyControllersSid = 75

const _WinAccountSchemaAdminsSid = 47

const _WinAnonymousSid = 13

const _WinApplicationPackageAuthoritySid = 83

const _WinAuthenticatedUserSid = 17

const _WinAuthenticationAuthorityAssertedSid = 103

const _WinAuthenticationKeyPropertyAttestationSid = 117

const _WinAuthenticationKeyPropertyMFASid = 116

const _WinAuthenticationKeyTrustSid = 115

const _WinAuthenticationServiceAssertedSid = 104

const _WinBatchSid = 10

const _WinBuiltinAccessControlAssistanceOperatorsSid = 101

const _WinBuiltinAccountOperatorsSid = 30

const _WinBuiltinAdministratorsSid = 26

const _WinBuiltinAnyPackageSid = 84

const _WinBuiltinAuthorizationAccessSid = 59

const _WinBuiltinBackupOperatorsSid = 33

const _WinBuiltinCertSvcDComAccessGroup = 78

const _WinBuiltinCryptoOperatorsSid = 64

const _WinBuiltinDCOMUsersSid = 61

const _WinBuiltinDefaultSystemManagedGroupSid = 111

const _WinBuiltinDomainSid = 25

const _WinBuiltinEventLogReadersGroup = 76

const _WinBuiltinGuestsSid = 28

const _WinBuiltinHyperVAdminsSid = 99

const _WinBuiltinIUsersSid = 62

const _WinBuiltinIncomingForestTrustBuildersSid = 56

const _WinBuiltinNetworkConfigurationOperatorsSid = 37

const _WinBuiltinPerfLoggingUsersSid = 58

const _WinBuiltinPerfMonitoringUsersSid = 57

const _WinBuiltinPowerUsersSid = 29

const _WinBuiltinPreWindows2000CompatibleAccessSid = 35

const _WinBuiltinPrintOperatorsSid = 32

const _WinBuiltinRDSEndpointServersSid = 96

const _WinBuiltinRDSManagementServersSid = 97

const _WinBuiltinRDSRemoteAccessServersSid = 95

const _WinBuiltinRemoteDesktopUsersSid = 36

const _WinBuiltinRemoteManagementUsersSid = 102

const _WinBuiltinReplicatorSid = 34

const _WinBuiltinStorageReplicaAdminsSid = 112

const _WinBuiltinSystemOperatorsSid = 31

const _WinBuiltinTerminalServerLicenseServersSid = 60

const _WinBuiltinUsersSid = 27

const _WinCacheablePrincipalsGroupSid = 72

const _WinCapabilityAppointmentsSid = 108

const _WinCapabilityContactsSid = 109

const _WinCapabilityDocumentsLibrarySid = 91

const _WinCapabilityEnterpriseAuthenticationSid = 93

const _WinCapabilityInternetClientServerSid = 86

const _WinCapabilityInternetClientSid = 85

const _WinCapabilityMusicLibrarySid = 90

const _WinCapabilityPicturesLibrarySid = 88

const _WinCapabilityPrivateNetworkClientServerSid = 87

const _WinCapabilityRemovableStorageSid = 94

const _WinCapabilitySharedUserCertificatesSid = 92

const _WinCapabilityVideosLibrarySid = 89

const _WinConsoleLogonSid = 81

const _WinCreatorGroupServerSid = 6

const _WinCreatorGroupSid = 4

const _WinCreatorOwnerRightsSid = 71

const _WinCreatorOwnerServerSid = 5

const _WinCreatorOwnerSid = 3

const _WinDialupSid = 8

const _WinDigestAuthenticationSid = 52

const _WinEnterpriseControllersSid = 15

const _WinEnterpriseReadonlyControllersSid = 74

const _WinHighLabelSid = 68

const _WinIUserSid = 63

const _WinInteractiveSid = 11

const _WinLocalAccountAndAdministratorSid = 106

const _WinLocalAccountSid = 105

const _WinLocalLogonSid = 80

const _WinLocalServiceSid = 23

const _WinLocalSid = 2

const _WinLocalSystemSid = 22

const _WinLogonIdsSid = 21

const _WinLowLabelSid = 66

const _WinMediumLabelSid = 67

const _WinMediumPlusLabelSid = 79

const _WinNTLMAuthenticationSid = 51

const _WinNetworkServiceSid = 24

const _WinNetworkSid = 9

const _WinNewEnterpriseReadonlyControllersSid = 77

const _WinNonCacheablePrincipalsGroupSid = 73

const _WinNtAuthoritySid = 7

const _WinNullSid = 0

const _WinOtherOrganizationSid = 55

const _WinProxySid = 14

const _WinRemoteLogonIdSid = 20

const _WinRestrictedCodeSid = 18

const _WinSChannelAuthenticationSid = 53

const _WinSelfSid = 16

const _WinServiceSid = 12

const _WinSystemLabelSid = 69

const _WinTerminalServerSid = 19

const _WinThisOrganizationCertificateSid = 82

const _WinThisOrganizationSid = 54

const _WinUntrustedLabelSid = 65

const _WinUserModeDriversSid = 98

const _WinWorldSid = 1

const _WinWriteRestrictedCodeSid = 70

const _Wow64Container = 4

const _WriteBarrier = 0

const _WriteCacheChangeUnknown = 0

const _WriteCacheChangeable = 2

const _WriteCacheDisabled = 1

const _WriteCacheEnableUnknown = 0

const _WriteCacheEnabled = 2

const _WriteCacheNotChangeable = 1

const _WriteCacheTypeNone = 1

const _WriteCacheTypeUnknown = 0

const _WriteCacheTypeWriteBack = 2

const _WriteCacheTypeWriteThrough = 3

const _WriteThroughNotSupported = 1

const _WriteThroughSupported = 2

const _WriteThroughUnknown = 0

type _XCPT_ACTION = T_XCPT_ACTION

const _XLAT_CLIENT = 2

const _XLAT_SERVER = 1

type _XMIT_ROUTINE_QUINTUPLE = T_XMIT_ROUTINE_QUINTUPLE

const _XMLELEMTYPE_COMMENT = 2

const _XMLELEMTYPE_DOCUMENT = 3

const _XMLELEMTYPE_DTD = 4

const _XMLELEMTYPE_ELEMENT = 0

const _XMLELEMTYPE_OTHER = 6

const _XMLELEMTYPE_PI = 5

const _XMLELEMTYPE_TEXT = 1

type _XSAVE_AREA = T_XSAVE_AREA

type _XSAVE_AREA_HEADER = T_XSAVE_AREA_HEADER

type _XSAVE_FORMAT = T_XSAVE_FORMAT

type _XSTATE_CONFIGURATION = T_XSTATE_CONFIGURATION

type _XSTATE_CONTEXT = T_XSTATE_CONTEXT

type _XSTATE_FEATURE = T_XSTATE_FEATURE

const _ZAFLAGS_ADD_SITES = 2

const _ZAFLAGS_CUSTOM_EDIT = 1

const _ZAFLAGS_DETECT_INTRANET = 256

const _ZAFLAGS_INCLUDE_INTRANET_SITES = 16

const _ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 8

const _ZAFLAGS_NO_CACHE = 262144

const _ZAFLAGS_NO_UI = 32

const _ZAFLAGS_REQUIRE_VERIFICATION = 4

const _ZAFLAGS_SUPPORTS_VERIFICATION = 64

const _ZAFLAGS_UNC_AS_INTRANET = 128

const _ZAFLAGS_USE_LOCKED_ZONES = 65536

const _ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = 131072

type _ZONEATTRIBUTES = T_ZONEATTRIBUTES

type __ACCESS_REASON_TYPE = int32

type __ACL_INFORMATION_CLASS = int32

type __ACTIVATION_CONTEXT_INFO_CLASS = int32

type __APPLY_SNAPSHOT_VHDSET_FLAG = int32

type __APPLY_SNAPSHOT_VHDSET_VERSION = int32

type __APTTYPE = int32

type __APTTYPEQUALIFIER = int32

type __ATTACH_VIRTUAL_DISK_FLAG = int32

type __ATTACH_VIRTUAL_DISK_VERSION = int32

type __AUDIT_EVENT_TYPE = int32

type __BIN_TYPES = int32

const __C89_NAMELESS = 0

type __CHANGER_DEVICE_PROBLEM_TYPE = int32

const __CLRCALL_OR_CDECL = "__cdecl"

type __CM_ERROR_CONTROL_TYPE = int32

type __CM_SERVICE_LOAD_TYPE = int32

type __CM_SERVICE_NODE_TYPE = int32

type __COMPACT_VIRTUAL_DISK_FLAG = int32

type __COMPACT_VIRTUAL_DISK_VERSION = int32

type __COMPUTER_NAME_FORMAT = int32

type __COPYFILE2_COPY_PHASE = int32

type __COPYFILE2_MESSAGE_ACTION = int32

type __COPYFILE2_MESSAGE_TYPE = int32

type __CREATE_VIRTUAL_DISK_FLAG = int32

type __CREATE_VIRTUAL_DISK_VERSION = int32

const __CRTDECL = "__cdecl"

type __DELETE_SNAPSHOT_VHDSET_FLAG = int32

type __DELETE_SNAPSHOT_VHDSET_VERSION = int32

type __DEPENDENT_DISK_FLAG = int32

type __DEP_SYSTEM_POLICY_TYPE = int32

type __DETACH_VIRTUAL_DISK_FLAG = int32

type __DETECTION_TYPE = int32

type __DEVICE_POWER_STATE = int32

type __DISPLAYCONFIG_COLOR_ENCODING = uint32

type __ELEMENT_TYPE = int32

type __ENLISTMENT_INFORMATION_CLASS = int32

type __EXPAND_VIRTUAL_DISK_FLAG = int32

type __EXPAND_VIRTUAL_DISK_VERSION = int32

type __FILE_ID_TYPE = int32

type __FILE_INFO_BY_HANDLE_CLASS = int32

type __FINDEX_INFO_LEVELS = int32

type __FINDEX_SEARCH_OPS = int32

type __FIRMWARE_TYPE = int32

type __GET_FILEEX_INFO_LEVELS = int32

type __GET_STORAGE_DEPENDENCY_FLAG = int32

type __GET_VIRTUAL_DISK_INFO_VERSION = int32

const __GNUC_MINOR__ = 0

const __GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-16LE"

const __GNU_EXTENSION = 0

const __GOT_SECURE_LIB__ = 200411

const __GXX_MERGED_TYPEINFO_NAMES = 0

type __HARDWARE_COUNTER_TYPE = int32

type __HEAP_INFORMATION_CLASS = int32

type __IDL_CS_CONVERT = int32

type __JOBOBJECTINFOCLASS = int32

type __JOBOBJECT_RATE_CONTROL_TOLERANCE = int32

type __JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = int32

type __KTMOBJECT_TYPE = int32

type __LOGICAL_PROCESSOR_RELATIONSHIP = int32

const __LONG32 = 0

type __MACHINE_ATTRIBUTES = int32

type __MANDATORY_LEVEL = int32

type __MEDIA_TYPE = int32

type __MEMORY_RESOURCE_NOTIFICATION_TYPE = int32

type __MERGE_VIRTUAL_DISK_FLAG = int32

type __MERGE_VIRTUAL_DISK_VERSION = int32

const __MIDL_CONST = 0

const __MINGW32_MAJOR_VERSION = 3

const __MINGW32_MINOR_VERSION = 11

const __MINGW32__ = 1

const __MINGW64_VERSION_BUGFIX = 0

const __MINGW64_VERSION_MAJOR = 10

const __MINGW64_VERSION_MINOR = 0

const __MINGW64_VERSION_RC = 0

const __MINGW64_VERSION_STATE = "alpha"

const __MINGW_ATTRIB_DEPRECATED_MSVC2005 = 0

const __MINGW_ATTRIB_DEPRECATED_SEC_WARN = 0

const __MINGW_DEBUGBREAK_IMPL = 1

const __MINGW_FORTIFY_LEVEL = 0

const __MINGW_FORTIFY_VA_ARG = 0

const __MINGW_FPCLASS_DEFINED = 1

const __MINGW_GCC_VERSION = 120000

const __MINGW_HAVE_ANSI_C99_PRINTF = 1

const __MINGW_HAVE_ANSI_C99_SCANF = 1

const __MINGW_HAVE_WIDE_C99_PRINTF = 1

const __MINGW_HAVE_WIDE_C99_SCANF = 1

const __MINGW_MSVC2005_DEPREC_STR = "This POSIX function is deprecated beginning in Visual C++ 2005, use _CRT_NONSTDC_NO_DEPRECATE to disable deprecation"

const __MINGW_PROCNAMEEXT_AW = "A"

const __MINGW_SEC_WARN_STR = "This function or variable may be unsafe, use _CRT_SECURE_NO_WARNINGS to disable deprecation"

type __MIRROR_VIRTUAL_DISK_FLAG = int32

type __MIRROR_VIRTUAL_DISK_VERSION = int32

type __MODIFY_VHDSET_FLAG = int32

type __MODIFY_VHDSET_VERSION = int32

type __MONITOR_DISPLAY_STATE = int32

const __MSVCRT_VERSION__ = 1792

const __MSVCRT__ = 1

type __NORM_FORM = int32

type __OFFER_PRIORITY = int32

type __OPEN_VIRTUAL_DISK_FLAG = int32

type __OPEN_VIRTUAL_DISK_VERSION = int32

type __PARTITION_STYLE = int32

const __PCTYPE_FUNC = 0

type __POWER_PLATFORM_ROLE = int32

type __POWER_REQUEST_TYPE = int32

type __PRIORITY_HINT = int32

type __PROCESSOR_CACHE_TYPE = int32

type __PROCESS_INFORMATION_CLASS = int32

type __PROCESS_MEMORY_EXHAUSTION_TYPE = int32

type __PROCESS_MITIGATION_POLICY = int32

type __PROC_THREAD_ATTRIBUTE_NUM = int32

type __QUERY_CHANGES_VIRTUAL_DISK_FLAG = int32

const __REQUIRED_RPCNDR_H_VERSION__ = 475

type __RESIZE_VIRTUAL_DISK_FLAG = int32

type __RESIZE_VIRTUAL_DISK_VERSION = int32

type __RESOURCEMANAGER_INFORMATION_CLASS = int32

const __RPCNDR_H_VERSION__ = 475

const __RPCSAL_H_VERSION__ = 100

type __RPC_ASYNC_EVENT = int32

type __RPC_HTTP_REDIRECTOR_STAGE = int32

type __RPC_NOTIFICATIONS = int32

type __RPC_NOTIFICATION_TYPES = int32

type __RTL_UMS_SCHEDULER_REASON = int32

type __RTL_UMS_THREAD_INFO_CLASS = int32

type __RpcCallClientLocality = int32

type __RpcCallType = int32

type __RpcLocalAddressFormat = int32

type __SC_ACTION_TYPE = int32

type __SC_ENUM_TYPE = int32

type __SC_STATUS_TYPE = int32

type __SECURITY_IMPERSONATION_LEVEL = int32

type __SET_VIRTUAL_DISK_INFO_VERSION = int32

type __SE_LEARNING_MODE_DATA_TYPE = int32

type __SHRINK_VOLUME_REQUEST_TYPES = int32

type __SID_NAME_USE = int32

const __SIZEOF_WCHAR_T__ = 2

const __SIZEOF_WINT_T__ = 2

const __STDC_SECURE_LIB__ = 200411

const __STDC_WANT_SECURE_LIB__ = 0

type __STORAGE_ASSOCIATION_TYPE = int32

type __STORAGE_BUS_TYPE = int32

type __STORAGE_CRYPTO_ALGORITHM_ID = int32

type __STORAGE_CRYPTO_KEY_SIZE = int32

type __STORAGE_DEPENDENCY_INFO_VERSION = int32

type __STORAGE_IDENTIFIER_CODE_SET = int32

type __STORAGE_IDENTIFIER_TYPE = int32

type __STORAGE_ID_NAA_FORMAT = int32

type __STORAGE_MEDIA_TYPE = int32

type __STORAGE_PORT_CODE_SET = int32

type __STORAGE_PROPERTY_ID = int32

type __STORAGE_PROTOCOL_ATA_DATA_TYPE = int32

type __STORAGE_PROTOCOL_NVME_DATA_TYPE = int32

type __STORAGE_PROTOCOL_TYPE = int32

type __STORAGE_PROTOCOL_UFS_DATA_TYPE = int32

type __STORAGE_QUERY_TYPE = int32

type __STORAGE_RPMB_FRAME_TYPE = int32

type __STORAGE_SET_TYPE = int32

type __STORAGE_TIER_CLASS = int32

type __STORAGE_TIER_MEDIA_TYPE = int32

type __STREAM_INFO_LEVELS = int32

type __SYSTEM_POWER_STATE = int32

type __TAKE_SNAPSHOT_VHDSET_FLAG = int32

type __TAKE_SNAPSHOT_VHDSET_VERSION = int32

type __TAPE_DRIVE_PROBLEM_TYPE = int32

type __THDTYPE = int32

type __THREAD_INFORMATION_CLASS = int32

type __TOKEN_ELEVATION_TYPE = int32

type __TOKEN_INFORMATION_CLASS = int32

type __TOKEN_TYPE = int32

type __TP_CALLBACK_PRIORITY = int32

type __TRANSACTIONMANAGER_INFORMATION_CLASS = int32

type __TRANSACTION_INFORMATION_CLASS = int32

type __TRANSACTION_OUTCOME = int32

type __TRANSACTION_STATE = int32

const __UA_WCSLEN = 0

type __URLZONEREG = int32

type __USER_ACTIVITY_PRESENCE = int32

type __USER_MARSHAL_CB_TYPE = int32

const __USE_MINGW_ANSI_STDIO = 1

const __USE_MINGW_STRTOX = 1

const __VERSION__ = "12-win32"

type __VIRTUAL_DISK_ACCESS_MASK = int32

const __WCHAR_MAX__ = 65535

const __WCHAR_WIDTH__ = 16

const __WIN32 = 1

const __WIN32__ = 1

const __WINNT = 1

const __WINNT__ = 1

const __WINT_MAX__ = 65535

const __WINT_WIDTH__ = 16

type __WRITE_CACHE_CHANGE = int32

type __WRITE_CACHE_ENABLE = int32

type __WRITE_CACHE_TYPE = int32

type __WRITE_THROUGH = int32

type ___WIDL_urlmon_generated_name_0000000F = int32

type ___WIDL_urlmon_generated_name_00000010 = int32

type ___WIDL_urlmon_generated_name_00000011 = int32

type ___WIDL_urlmon_generated_name_00000012 = uint32

type ___WIDL_urlmon_generated_name_00000013 = int32

type ___WIDL_urlmon_generated_name_00000014 = int32

type ___WIDL_urlmon_generated_name_00000015 = int32

type ___WIDL_urlmon_generated_name_00000016 = uint32

type ___WIDL_urlmon_generated_name_00000017 = int32

type ___WIDL_urlmon_generated_name_00000018 = int32

type ___WIDL_urlmon_generated_name_00000019 = int32

type ___WIDL_urlmon_generated_name_0000001A = int32

type ___WIDL_urlmon_generated_name_0000001B = int32

type ___WIDL_urlmon_generated_name_0000001C = int32

type ___WIDL_urlmon_generated_name_0000001D = int32

type ___WIDL_urlmon_generated_name_0000001E = int32

type ___WIDL_urlmon_generated_name_0000001F = int32

const __argc = 0

const __argv = 0

const __builtin_vsnprintf = 0

const __builtin_vsprintf = 0

var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12-win32\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00DISABLE_INTRINSIC\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBPAGE_VTAB\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=1000\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00OMIT_SEH\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00unistr('\x000123456789abcdef\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00IfEmpty\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00Or\x00And\x00IdxLT\x00IdxGE\x00IFindKey\x00RowSetRead\x00RowSetTest\x00Program\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00FkIfZero\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00ReopenIdx\x00OpenRead\x00BitNot\x00OpenWrite\x00OpenDup\x00String8\x00OpenAutoindex\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00Real\x00DropIndex\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00AreFileApisANSI\x00CharLowerW\x00CharUpperW\x00CloseHandle\x00CreateFileA\x00CreateFileW\x00CreateFileMappingA\x00CreateFileMappingW\x00CreateMutexW\x00DeleteFileA\x00DeleteFileW\x00FileTimeToLocalFileTime\x00FileTimeToSystemTime\x00FlushFileBuffers\x00FormatMessageA\x00FormatMessageW\x00FreeLibrary\x00GetCurrentProcessId\x00GetDiskFreeSpaceA\x00GetDiskFreeSpaceW\x00GetFileAttributesA\x00GetFileAttributesW\x00GetFileAttributesExW\x00GetFileSize\x00GetFullPathNameA\x00GetFullPathNameW\x00GetLastError\x00GetProcAddressA\x00GetSystemInfo\x00GetSystemTime\x00GetSystemTimeAsFileTime\x00GetTempPathA\x00GetTempPathW\x00GetTickCount\x00GetVersionExA\x00GetVersionExW\x00HeapAlloc\x00HeapCreate\x00HeapDestroy\x00HeapFree\x00HeapReAlloc\x00HeapSize\x00HeapValidate\x00HeapCompact\x00LoadLibraryA\x00LoadLibraryW\x00LocalFree\x00LockFile\x00LockFileEx\x00MapViewOfFile\x00MultiByteToWideChar\x00QueryPerformanceCounter\x00ReadFile\x00SetEndOfFile\x00SetFilePointer\x00Sleep\x00SystemTimeToFileTime\x00UnlockFile\x00UnlockFileEx\x00UnmapViewOfFile\x00WideCharToMultiByte\x00WriteFile\x00WaitForSingleObject\x00WaitForSingleObjectEx\x00GetNativeSystemInfo\x00OutputDebugStringA\x00OutputDebugStringW\x00GetProcessHeap\x00InterlockedCompareExchange\x00UuidCreate\x00UuidCreateSequential\x00FlushViewOfFile\x00CreateEvent\x00CancelIo\x00GetModuleHandleW\x00getenv\x00getcwd\x00readlink\x00lstat\x00__errno\x00cygwin_conv_path\x00%s\x00OsError 0x%lx (%lu)\x00os_win.c:%d: (%lu) %s(%s) - %s\x00delayed %dms for lock/sharing conflict at line %d\x00winSeekFile\x00winClose\x00winRead\x00winWrite1\x00winWrite2\x00winTruncate1\x00winTruncate2\x00winSync1\x00winSync2\x00winFileSize\x00winUnlockReadLock\x00winUnlock\x00%s-shm\x00readonly_shm\x00winShmMap1\x00winShmMap2\x00winShmMap3\x00winUnmapfile1\x00winUnmapfile2\x00winMapfile1\x00winMapfile2\x00etilqs_\x00winGetTempname1\x00winGetTempname2\x00winGetTempname3\x00winGetTempname4\x00winGetTempname5\x00exclusive\x00winOpen\x00psow\x00winDelete\x00winAccess\x00%s%c%s\x00winFullPathname1\x00winFullPathname2\x00winFullPathname3\x00winFullPathname4\x00win32\x00win32-longpath\x00win32-none\x00win32-longpath-none\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00-mj\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@  \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00.0\x00%!.*g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00subrtnsig:%d,%s\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00%!.15g\x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00/* %s */ \x00/* unknown trigger */ \x00statement aborts at %d: %s; [%s%s]\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open table with generated columns: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00more than %d aggregate terms\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X'      AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND   sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END  FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00rename columns of\x00drop column from\x00edit constraints of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X'  AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00constraint may not be dropped: %s\x00no such constraint: %s\x00%.*s%s%s\x00%.*s, %s%s\x00%.*s %s%s\x00no such column: %s\x00%Q\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_constraint(sql, %s) WHERE type='table' AND tbl_name=%Q COLLATE nocase\x00%.*s\x00SELECT sqlite_fail('constraint failed', %d) FROM %Q.%Q AS x WHERE x.%.*s IS NULL\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_add_constraint(sqlite_drop_constraint(sql, %d), %.*Q, %d) WHERE type='table' AND tbl_name=%Q COLLATE nocase\x00SELECT sqlite_fail('constraint %q already exists', %d) FROM \"%w\".sqlite_master WHERE type='table' AND tbl_name=%Q COLLATE nocase AND sqlite_find_constraint(sql, %Q)\x00SELECT sqlite_fail('constraint failed', %d) FROM %Q.%Q WHERE (%.*s) IS NOT TRUE\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_add_constraint(sql, %.*Q, -1) WHERE type='table' AND tbl_name=%Q COLLATE nocase\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_drop_constraint\x00sqlite_fail\x00sqlite_add_constraint\x00sqlite_find_constraint\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00json\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n  \x00,\n  \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00stat\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00expressions\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.17g\x00%#Q\x00invalid Unicode escape\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00unistr\x00quote\x00unistr_quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00if\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00dll\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_store_directory\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00index %s stores an imprecise floating-point value for row \x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00noop\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00drop constraint\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x001\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00CREATE BLOOM FILTER\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00VIEWs and/or subqueries nested too deep\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00table-function argument\x00ON clause\x00%s references tables to its right\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00triggers nested too deep\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00vacuum_%016llx\x00ATTACH %Q AS %s\x00output file already exists\x00reserve\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00<expr>\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00 EXISTS\x00%s %S%s\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX \x000x%x:%s\x00%d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00internal query planner error\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00near \"%T\": syntax error\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00Recursion limit\x00unknown table option: %.*s\x00set list\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00access\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x00JSON nested too deep\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u000b\x00\\u00\x00\\u0000\x00,\n\x00: \x00*]\x00not an array element: %Q\x00JSON path too deep\x00bad JSON path: %Q\x00@\x00[\x00#\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00insert\x00set\x00array_insert\x00    \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00}\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00jsonb\x00json_array\x00jsonb_array\x00json_array_insert\x00jsonb_array_insert\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00jsonb_each\x00jsonb_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node'   RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid'  RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00<polyline points=\x00%c%g,%g\x00 %g,%g'\x00 %s\x00></polyline>\x00Too many columns for a geopoly table\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL  %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE'   FROM main.sqlite_schema   WHERE type='index' AND tbl_name = ?\x00SELECT  (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage  FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN   SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN   SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN   SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN   SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q)  \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence'  ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00CREATE TABLE x(pgno INTEGER PRIMARY KEY, data BLOB, schema HIDDEN)\x00read-only\x00cannot delete\x00cannot insert\x00no such schema\x00bad page number\x00bad page value\x00failed to open transaction\x00sqlite_dbpage\x00SELECT 0, 'tbl',  '', 0, '', 1, 0     UNION ALL SELECT 1, 'idx',  '', 0, '', 2, 0     UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS (  SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00PRAGMA table_list = %Q\x00SELECT %s FROM %Q WHERE (%s) IS (%s)\x00INSERT INTO %Q(%s) VALUES(%s)\x00SAVEPOINT update_op\x00ROLLBACK TO update_op\x00RELEASE update_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00undefined\x00invalid change: %s value in PK of old.* record\x00invalid change: defined value in PK of new.* record\x00un\x00invalid change: column %d - old.* value is %sdefined but new.* is %sdefined\x00invalid change: column %d is undefined\x00invalid change: null value in PK\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00, NULL\x00, T.l%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00contentless_unindexed=1 requires a contentless table\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00insttoken\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00fts5: corruption found reading blob %lld from table \"%s\"\x00fts5: corruption on page %d, segment %d, table \"%s\"\x00fts5: corruption in table \"%s\"\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00fts5: corrupt structure record for table \"%s\"\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00fts5: checksum mismatch for table \"%s\"\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2026-06-26 20:14:12 d4c0e51e4aeb96955b99185ab9cde75c339e2c29c3f3f12428d364a10d782c62\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00fts5_locale\x00fts5_insttoken\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00%z%s?%d\x00%z,?%d\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00, l%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00DELETE FROM %Q.'%q_content';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00porter\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00trigram\x00ascii\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002026-06-26 20:14:12 d4c0e51e4aeb96955b99185ab9cde75c339e2c29c3f3f12428d364a10d782c62\x00"

const __checkReturn = "__inner_checkReturn"

const __clockid_t_defined = 1

const __int16 = 0

const __int32 = 0

const __int8 = 0

const __mb_cur_max = 0

const __mingw_bos_ovr = "__mingw_ovr"

const __mingw_choose_expr = 0

const __setusermatherr = 0

type __tagINTERNETFEATURELIST = int32

type __tagOIBDG_FLAGS = int32

type __tagPARSEACTION = int32

type __tagPI_FLAGS = int32

type __tagPSUACTION = int32

type __tagQUERYOPTION = int32

const __wargv = 0

var _aAgg = [1]struct {
	FxStep  uintptr
	FxFinal uintptr
	FzName  uintptr
}{
	0: {
		FzName: __ccgo_ts + 31439,
	},
}

var _aAlterTableFuncs = [9]TFuncDef{
	0: {
		FnArg:      int16(9),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 13868,
	},
	1: {
		FnArg:      int16(7),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 13889,
	},
	2: {
		FnArg:      int16(7),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 13909,
	},
	3: {
		FnArg:      int16(3),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 13928,
	},
	4: {
		FnArg:      int16(2),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 13947,
	},
	5: {
		FnArg:      int16(2),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 13970,
	},
	6: {
		FnArg:      int16(2),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 13993,
	},
	7: {
		FnArg:      int16(3),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 14005,
	},
	8: {
		FnArg:      int16(2),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FzName:     __ccgo_ts + 14027,
	},
}

var _aCacheMode = [3]struct {
	Fz    uintptr
	Fmode int32
}{
	0: {
		Fz:    __ccgo_ts + 27402,
		Fmode: int32(SQLITE_OPEN_SHAREDCACHE),
	},
	1: {
		Fz:    __ccgo_ts + 27409,
		Fmode: int32(SQLITE_OPEN_PRIVATECACHE),
	},
	2: {},
}

var _aDateTimeFuncs = [10]TFuncDef{
	0: {
		FnArg:      int16(-int32(1)),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)),
		FzName:     __ccgo_ts + 1298,
	},
	1: {
		FnArg:      int16(-int32(1)),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)),
		FzName:     __ccgo_ts + 1318,
	},
	2: {
		FnArg:      int16(-int32(1)),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)),
		FzName:     __ccgo_ts + 1526,
	},
	3: {
		FnArg:      int16(-int32(1)),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)),
		FzName:     __ccgo_ts + 1531,
	},
	4: {
		FnArg:      int16(-int32(1)),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)),
		FzName:     __ccgo_ts + 1536,
	},
	5: {
		FnArg:      int16(-int32(1)),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)),
		FzName:     __ccgo_ts + 1545,
	},
	6: {
		FnArg:      int16(2),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)),
		FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)),
		FzName:     __ccgo_ts + 1554,
	},
	7: {
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)),
		FzName:     __ccgo_ts + 1563,
	},
	8: {
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)),
		FzName:     __ccgo_ts + 1576,
	},
	9: {
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)),
		FzName:     __ccgo_ts + 1594,
	},
}

/* EVIDENCE-OF: R-14606-31564 Value is a BLOB that is (N-12)/2 bytes in
 ** length.
 ** EVIDENCE-OF: R-28401-00140 Value is a string in the text encoding and
 ** (N-13)/2 bytes in length. */
var _aFlag = [2]Tu16{
	0: uint16(libc.Int32FromInt32(MEM_Blob) | libc.Int32FromInt32(MEM_Ephem)),
	1: uint16(libc.Int32FromInt32(MEM_Str) | libc.Int32FromInt32(MEM_Ephem)),
}

/* If the column value is a string, we need a persistent value, not
 ** a MEM_Ephem value.  This branch is a fast short-cut that is equivalent
 ** to calling sqlite3VdbeSerialGet() and sqlite3VdbeDeephemeralize().
 */
var _aFlag1 = [2]Tu16{
	0: uint16(MEM_Blob),
	1: uint16(libc.Int32FromInt32(MEM_Str) | libc.Int32FromInt32(MEM_Term)),
}

var _aFunc = [12]struct {
	FxFunc uintptr
	FnArg  int8
	FbPure uint8
	FzName uintptr
}{
	0: {
		FnArg:  int8(1),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31296,
	},
	1: {
		FnArg:  int8(1),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31309,
	},
	2: {
		FnArg:  int8(1),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31322,
	},
	3: {
		FnArg:  int8(-int32(1)),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31335,
	},
	4: {
		FnArg:  int8(2),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31281,
	},
	5: {
		FnArg:  int8(3),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31347,
	},
	6: {
		FnArg:  int8(2),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31265,
	},
	7: {
		FnArg:  int8(1),
		FzName: __ccgo_ts + 31370,
	},
	8: {
		FnArg:  int8(1),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31384,
	},
	9: {
		FnArg:  int8(7),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31397,
	},
	10: {
		FnArg:  int8(4),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31411,
	},
	11: {
		FnArg:  int8(1),
		FbPure: uint8(1),
		FzName: __ccgo_ts + 31427,
	},
}

var _aKeyword = [7]struct {
	Fi     Tu8
	FnChar Tu8
	Fcode  Tu8
}{
	0: {
		FnChar: uint8(7),
		Fcode:  uint8(JT_NATURAL),
	},
	1: {
		Fi:     uint8(6),
		FnChar: uint8(4),
		Fcode:  uint8(libc.Int32FromInt32(JT_LEFT) | libc.Int32FromInt32(JT_OUTER)),
	},
	2: {
		Fi:     uint8(10),
		FnChar: uint8(5),
		Fcode:  uint8(JT_OUTER),
	},
	3: {
		Fi:     uint8(14),
		FnChar: uint8(5),
		Fcode:  uint8(libc.Int32FromInt32(JT_RIGHT) | libc.Int32FromInt32(JT_OUTER)),
	},
	4: {
		Fi:     uint8(19),
		FnChar: uint8(4),
		Fcode:  uint8(libc.Int32FromInt32(JT_LEFT) | libc.Int32FromInt32(JT_RIGHT) | libc.Int32FromInt32(JT_OUTER)),
	},
	5: {
		Fi:     uint8(23),
		FnChar: uint8(5),
		Fcode:  uint8(JT_INNER),
	},
	6: {
		Fi:     uint8(28),
		FnChar: uint8(5),
		Fcode:  uint8(libc.Int32FromInt32(JT_INNER) | libc.Int32FromInt32(JT_CROSS)),
	},
}

var _aMsg = [29]uintptr{
	0:  __ccgo_ts + 26589,
	1:  __ccgo_ts + 26602,
	3:  __ccgo_ts + 26618,
	4:  __ccgo_ts + 26643,
	5:  __ccgo_ts + 26657,
	6:  __ccgo_ts + 26676,
	7:  __ccgo_ts + 1681,
	8:  __ccgo_ts + 26701,
	9:  __ccgo_ts + 26738,
	10: __ccgo_ts + 26750,
	11: __ccgo_ts + 26765,
	12: __ccgo_ts + 26798,
	13: __ccgo_ts + 26816,
	14: __ccgo_ts + 26841,
	15: __ccgo_ts + 26870,
	17: __ccgo_ts + 7456,
	18: __ccgo_ts + 6807,
	19: __ccgo_ts + 26887,
	20: __ccgo_ts + 26905,
	21: __ccgo_ts + 26923,
	23: __ccgo_ts + 26957,
	25: __ccgo_ts + 26978,
	26: __ccgo_ts + 27004,
	27: __ccgo_ts + 27027,
	28: __ccgo_ts + 27048,
}

// C documentation
//
//	/*
//	** Extra floating-point literals to allow in JSON.
//	*/
var _aNanInfName = [5]TNanInfName{
	0: {
		Fc1:     int8('i'),
		Fc2:     int8('I'),
		Fn:      int8(3),
		FeType:  int8(JSONB_FLOAT),
		FnRepl:  int8(7),
		FzMatch: __ccgo_ts + 27714,
		FzRepl:  __ccgo_ts + 27718,
	},
	1: {
		Fc1:     int8('i'),
		Fc2:     int8('I'),
		Fn:      int8(8),
		FeType:  int8(JSONB_FLOAT),
		FnRepl:  int8(7),
		FzMatch: __ccgo_ts + 27726,
		FzRepl:  __ccgo_ts + 27718,
	},
	2: {
		Fc1:     int8('n'),
		Fc2:     int8('N'),
		Fn:      int8(3),
		FnRepl:  int8(4),
		FzMatch: __ccgo_ts + 1702,
		FzRepl:  __ccgo_ts + 1697,
	},
	3: {
		Fc1:     int8('q'),
		Fc2:     int8('Q'),
		Fn:      int8(4),
		FnRepl:  int8(4),
		FzMatch: __ccgo_ts + 27735,
		FzRepl:  __ccgo_ts + 1697,
	},
	4: {
		Fc1:     int8('s'),
		Fc2:     int8('S'),
		Fn:      int8(4),
		FnRepl:  int8(4),
		FzMatch: __ccgo_ts + 27740,
		FzRepl:  __ccgo_ts + 1697,
	},
}

var _aOp = [4]struct {
	FzOp uintptr
	FeOp uint8
}{
	0: {
		FzOp: __ccgo_ts + 19035,
		FeOp: uint8(SQLITE_INDEX_CONSTRAINT_MATCH),
	},
	1: {
		FzOp: __ccgo_ts + 18368,
		FeOp: uint8(SQLITE_INDEX_CONSTRAINT_GLOB),
	},
	2: {
		FzOp: __ccgo_ts + 17827,
		FeOp: uint8(SQLITE_INDEX_CONSTRAINT_LIKE),
	},
	3: {
		FzOp: __ccgo_ts + 25168,
		FeOp: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP),
	},
}

var _aOpenMode = [5]struct {
	Fz    uintptr
	Fmode int32
}{
	0: {
		Fz:    __ccgo_ts + 27422,
		Fmode: int32(SQLITE_OPEN_READONLY),
	},
	1: {
		Fz:    __ccgo_ts + 27425,
		Fmode: int32(SQLITE_OPEN_READWRITE),
	},
	2: {
		Fz:    __ccgo_ts + 27428,
		Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE),
	},
	3: {
		Fz:    __ccgo_ts + 20267,
		Fmode: int32(SQLITE_OPEN_MEMORY),
	},
	4: {},
}

var _aPragmaName = [67]TPragmaName{
	0: {
		FzName:    __ccgo_ts + 19255,
		FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT),
		FmPragFlg: uint8(PragFlg_Result0),
	},
	1: {
		FzName:    __ccgo_ts + 19270,
		FePragTyp: uint8(PragTyp_HEADER_VALUE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)),
		FiArg:     uint64(BTREE_APPLICATION_ID),
	},
	2: {
		FzName:    __ccgo_ts + 19285,
		FePragTyp: uint8(PragTyp_AUTO_VACUUM),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)),
	},
	3: {
		FzName:    __ccgo_ts + 19297,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_AutoIndex),
	},
	4: {
		FzName:      __ccgo_ts + 19313,
		FePragTyp:   uint8(PragTyp_BUSY_TIMEOUT),
		FmPragFlg:   uint8(PragFlg_Result0),
		FiPragCName: uint8(56),
		FnPragCName: uint8(1),
	},
	5: {
		FzName:    __ccgo_ts + 19236,
		FePragTyp: uint8(PragTyp_CACHE_SIZE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)),
	},
	6: {
		FzName:    __ccgo_ts + 19326,
		FePragTyp: uint8(PragTyp_CACHE_SPILL),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)),
	},
	7: {
		FzName:    __ccgo_ts + 19338,
		FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE),
		FmPragFlg: uint8(PragFlg_NoColumns),
	},
	8: {
		FzName:    __ccgo_ts + 19358,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_CellSizeCk),
	},
	9: {
		FzName:    __ccgo_ts + 19374,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_CkptFullFSync),
	},
	10: {
		FzName:      __ccgo_ts + 19395,
		FePragTyp:   uint8(PragTyp_COLLATION_LIST),
		FmPragFlg:   uint8(PragFlg_Result0),
		FiPragCName: uint8(33),
		FnPragCName: uint8(2),
	},
	11: {
		FzName:    __ccgo_ts + 19410,
		FePragTyp: uint8(PragTyp_COMPILE_OPTIONS),
		FmPragFlg: uint8(PragFlg_Result0),
	},
	12: {
		FzName:    __ccgo_ts + 19426,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32),
	},
	13: {
		FzName:    __ccgo_ts + 19440,
		FePragTyp: uint8(PragTyp_DATA_STORE_DIRECTORY),
		FmPragFlg: uint8(PragFlg_NoColumns1),
	},
	14: {
		FzName:    __ccgo_ts + 19461,
		FePragTyp: uint8(PragTyp_HEADER_VALUE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)),
		FiArg:     uint64(BTREE_DATA_VERSION),
	},
	15: {
		FzName:      __ccgo_ts + 19474,
		FePragTyp:   uint8(PragTyp_DATABASE_LIST),
		FmPragFlg:   uint8(PragFlg_Result0),
		FiPragCName: uint8(50),
		FnPragCName: uint8(3),
	},
	16: {
		FzName:      __ccgo_ts + 19488,
		FePragTyp:   uint8(PragTyp_DEFAULT_CACHE_SIZE),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiPragCName: uint8(55),
		FnPragCName: uint8(1),
	},
	17: {
		FzName:    __ccgo_ts + 19507,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_DeferFKs),
	},
	18: {
		FzName:    __ccgo_ts + 19526,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_NullCallback),
	},
	19: {
		FzName:    __ccgo_ts + 19549,
		FePragTyp: uint8(PragTyp_ENCODING),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
	},
	20: {
		FzName:      __ccgo_ts + 19558,
		FePragTyp:   uint8(PragTyp_FOREIGN_KEY_CHECK),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
		FiPragCName: uint8(43),
		FnPragCName: uint8(4),
	},
	21: {
		FzName:      __ccgo_ts + 19576,
		FePragTyp:   uint8(PragTyp_FOREIGN_KEY_LIST),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
		FnPragCName: uint8(8),
	},
	22: {
		FzName:    __ccgo_ts + 19593,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_ForeignKeys),
	},
	23: {
		FzName:    __ccgo_ts + 19606,
		FePragTyp: uint8(PragTyp_HEADER_VALUE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)),
	},
	24: {
		FzName:    __ccgo_ts + 19621,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_FullColNames),
	},
	25: {
		FzName:    __ccgo_ts + 19639,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_FullFSync),
	},
	26: {
		FzName:      __ccgo_ts + 19649,
		FePragTyp:   uint8(PragTyp_FUNCTION_LIST),
		FmPragFlg:   uint8(PragFlg_Result0),
		FiPragCName: uint8(15),
		FnPragCName: uint8(6),
	},
	27: {
		FzName:    __ccgo_ts + 19663,
		FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT),
		FmPragFlg: uint8(PragFlg_Result0),
	},
	28: {
		FzName:    __ccgo_ts + 19679,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_IgnoreChecks),
	},
	29: {
		FzName:    __ccgo_ts + 19704,
		FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)),
	},
	30: {
		FzName:      __ccgo_ts + 19723,
		FePragTyp:   uint8(PragTyp_INDEX_INFO),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
		FiPragCName: uint8(27),
		FnPragCName: uint8(3),
	},
	31: {
		FzName:      __ccgo_ts + 19734,
		FePragTyp:   uint8(PragTyp_INDEX_LIST),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
		FiPragCName: uint8(33),
		FnPragCName: uint8(5),
	},
	32: {
		FzName:      __ccgo_ts + 19745,
		FePragTyp:   uint8(PragTyp_INDEX_INFO),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
		FiPragCName: uint8(27),
		FnPragCName: uint8(6),
		FiArg:       uint64(1),
	},
	33: {
		FzName:    __ccgo_ts + 19757,
		FePragTyp: uint8(PragTyp_INTEGRITY_CHECK),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
	},
	34: {
		FzName:    __ccgo_ts + 19773,
		FePragTyp: uint8(PragTyp_JOURNAL_MODE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)),
	},
	35: {
		FzName:    __ccgo_ts + 19786,
		FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)),
	},
	36: {
		FzName:    __ccgo_ts + 19805,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_LegacyAlter),
	},
	37: {
		FzName:    __ccgo_ts + 19824,
		FePragTyp: uint8(PragTyp_LOCKING_MODE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)),
	},
	38: {
		FzName:    __ccgo_ts + 19837,
		FePragTyp: uint8(PragTyp_PAGE_COUNT),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)),
	},
	39: {
		FzName:    __ccgo_ts + 19852,
		FePragTyp: uint8(PragTyp_MMAP_SIZE),
	},
	40: {
		FzName:      __ccgo_ts + 19862,
		FePragTyp:   uint8(PragTyp_MODULE_LIST),
		FmPragFlg:   uint8(PragFlg_Result0),
		FiPragCName: uint8(9),
		FnPragCName: uint8(1),
	},
	41: {
		FzName:    __ccgo_ts + 19874,
		FePragTyp: uint8(PragTyp_OPTIMIZE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)),
	},
	42: {
		FzName:    __ccgo_ts + 19883,
		FePragTyp: uint8(PragTyp_PAGE_COUNT),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)),
	},
	43: {
		FzName:    __ccgo_ts + 19894,
		FePragTyp: uint8(PragTyp_PAGE_SIZE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)),
	},
	44: {
		FzName:      __ccgo_ts + 19904,
		FePragTyp:   uint8(PragTyp_PRAGMA_LIST),
		FmPragFlg:   uint8(PragFlg_Result0),
		FiPragCName: uint8(9),
		FnPragCName: uint8(1),
	},
	45: {
		FzName:    __ccgo_ts + 19916,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_QueryOnly),
	},
	46: {
		FzName:    __ccgo_ts + 19927,
		FePragTyp: uint8(PragTyp_INTEGRITY_CHECK),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
	},
	47: {
		FzName:    __ccgo_ts + 19939,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32),
	},
	48: {
		FzName:    __ccgo_ts + 19956,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_RecTriggers),
	},
	49: {
		FzName:    __ccgo_ts + 19975,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_ReverseOrder),
	},
	50: {
		FzName:    __ccgo_ts + 20001,
		FePragTyp: uint8(PragTyp_HEADER_VALUE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)),
		FiArg:     uint64(BTREE_SCHEMA_VERSION),
	},
	51: {
		FzName:    __ccgo_ts + 20016,
		FePragTyp: uint8(PragTyp_SECURE_DELETE),
		FmPragFlg: uint8(PragFlg_Result0),
	},
	52: {
		FzName:    __ccgo_ts + 20030,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_ShortColNames),
	},
	53: {
		FzName:    __ccgo_ts + 20049,
		FePragTyp: uint8(PragTyp_SHRINK_MEMORY),
		FmPragFlg: uint8(PragFlg_NoColumns),
	},
	54: {
		FzName:    __ccgo_ts + 20063,
		FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT),
		FmPragFlg: uint8(PragFlg_Result0),
	},
	55: {
		FzName:    __ccgo_ts + 20079,
		FePragTyp: uint8(PragTyp_SYNCHRONOUS),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)),
	},
	56: {
		FzName:      __ccgo_ts + 20091,
		FePragTyp:   uint8(PragTyp_TABLE_INFO),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
		FiPragCName: uint8(8),
		FnPragCName: uint8(6),
	},
	57: {
		FzName:      __ccgo_ts + 20102,
		FePragTyp:   uint8(PragTyp_TABLE_LIST),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)),
		FiPragCName: uint8(21),
		FnPragCName: uint8(6),
	},
	58: {
		FzName:      __ccgo_ts + 20113,
		FePragTyp:   uint8(PragTyp_TABLE_INFO),
		FmPragFlg:   uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)),
		FiPragCName: uint8(8),
		FnPragCName: uint8(7),
		FiArg:       uint64(1),
	},
	59: {
		FzName:    __ccgo_ts + 20125,
		FePragTyp: uint8(PragTyp_TEMP_STORE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
	},
	60: {
		FzName:    __ccgo_ts + 20136,
		FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY),
		FmPragFlg: uint8(PragFlg_NoColumns1),
	},
	61: {
		FzName:    __ccgo_ts + 20157,
		FePragTyp: uint8(PragTyp_THREADS),
		FmPragFlg: uint8(PragFlg_Result0),
	},
	62: {
		FzName:    __ccgo_ts + 20165,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(SQLITE_TrustedSchema),
	},
	63: {
		FzName:    __ccgo_ts + 20180,
		FePragTyp: uint8(PragTyp_HEADER_VALUE),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)),
		FiArg:     uint64(BTREE_USER_VERSION),
	},
	64: {
		FzName:    __ccgo_ts + 20193,
		FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT),
	},
	65: {
		FzName:      __ccgo_ts + 20212,
		FePragTyp:   uint8(PragTyp_WAL_CHECKPOINT),
		FmPragFlg:   uint8(PragFlg_NeedSchema),
		FiPragCName: uint8(47),
		FnPragCName: uint8(3),
	},
	66: {
		FzName:    __ccgo_ts + 20227,
		FePragTyp: uint8(PragTyp_FLAG),
		FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)),
		FiArg:     uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)),
	},
}

/* Number of pragmas: 68 on by default, 78 total. */

/************** End of pragma.h **********************************************/
/************** Continuing where we left off in pragma.c *********************/

/*
** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands
** will be run with an analysis_limit set to the lessor of the value of
** the following macro or to the actual analysis_limit if it is non-zero,
** in order to prevent PRAGMA optimize from running for too long.
**
** The value of 2000 is chosen empirically so that the worst-case run-time
** for PRAGMA optimize does not exceed 100 milliseconds against a variety
** of test databases on a RaspberryPI-4 compiled using -Os and without
** -DSQLITE_DEBUG.  Of course, your mileage may vary.  For the purpose of
** this paragraph, "worst-case" means that ANALYZE ends up being
** run on every table in the database.  The worst case typically only
** happens if PRAGMA optimize is run on a database file for which ANALYZE
** has not been previously run and the 0x10000 flag is included so that
** all tables are analyzed.  The usual case for PRAGMA optimize is that
** no ANALYZE commands will be run at all, or if any ANALYZE happens it
** will be against a single table, so that expected timing for PRAGMA
** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000
** flag or less than 100 microseconds without the 0x10000 flag.
**
** An analysis limit of 2000 is almost always sufficient for the query
** planner to fully characterize an index.  The additional accuracy from
** a larger analysis is not usually helpful.
 */

// C documentation
//
//	/*
//	** Many system calls are accessed through pointer-to-functions so that
//	** they may be overridden at runtime to facilitate fault injection during
//	** testing and sandboxing.  The following array holds the names and pointers
//	** to all overrideable system calls.
//	*/
var _aSyscall = [81]Twin_syscall{
	0: {
		FzName: __ccgo_ts + 3549,
	},
	1: {
		FzName: __ccgo_ts + 3565,
	},
	2: {
		FzName: __ccgo_ts + 3576,
	},
	3: {
		FzName: __ccgo_ts + 3587,
	},
	4: {
		FzName: __ccgo_ts + 3599,
	},
	5: {
		FzName: __ccgo_ts + 3611,
	},
	6: {
		FzName: __ccgo_ts + 3623,
	},
	7: {
		FzName: __ccgo_ts + 3642,
	},
	8: {
		FzName: __ccgo_ts + 3661,
	},
	9: {
		FzName: __ccgo_ts + 3674,
	},
	10: {
		FzName: __ccgo_ts + 3686,
	},
	11: {
		FzName: __ccgo_ts + 3698,
	},
	12: {
		FzName: __ccgo_ts + 3722,
	},
	13: {
		FzName: __ccgo_ts + 3743,
	},
	14: {
		FzName: __ccgo_ts + 3760,
	},
	15: {
		FzName: __ccgo_ts + 3775,
	},
	16: {
		FzName: __ccgo_ts + 3790,
	},
	17: {
		FzName: __ccgo_ts + 3802,
	},
	18: {
		FzName: __ccgo_ts + 3822,
	},
	19: {
		FzName: __ccgo_ts + 3840,
	},
	20: {
		FzName: __ccgo_ts + 3858,
	},
	21: {
		FzName: __ccgo_ts + 3877,
	},
	22: {
		FzName: __ccgo_ts + 3896,
	},
	23: {
		FzName: __ccgo_ts + 3917,
	},
	24: {
		FzName: __ccgo_ts + 3929,
	},
	25: {
		FzName: __ccgo_ts + 3946,
	},
	26: {
		FzName: __ccgo_ts + 3963,
	},
	27: {
		FzName: __ccgo_ts + 3976,
	},
	28: {
		FzName: __ccgo_ts + 3992,
	},
	29: {
		FzName: __ccgo_ts + 4006,
	},
	30: {
		FzName: __ccgo_ts + 4020,
	},
	31: {
		FzName: __ccgo_ts + 4044,
	},
	32: {
		FzName: __ccgo_ts + 4057,
	},
	33: {
		FzName: __ccgo_ts + 4070,
	},
	34: {
		FzName: __ccgo_ts + 4083,
	},
	35: {
		FzName: __ccgo_ts + 4097,
	},
	36: {
		FzName: __ccgo_ts + 4111,
	},
	37: {
		FzName: __ccgo_ts + 4121,
	},
	38: {
		FzName: __ccgo_ts + 4132,
	},
	39: {
		FzName: __ccgo_ts + 4144,
	},
	40: {
		FzName: __ccgo_ts + 4153,
	},
	41: {
		FzName: __ccgo_ts + 4165,
	},
	42: {
		FzName: __ccgo_ts + 4174,
	},
	43: {
		FzName: __ccgo_ts + 4187,
	},
	44: {
		FzName: __ccgo_ts + 4199,
	},
	45: {
		FzName: __ccgo_ts + 4212,
	},
	46: {
		FzName: __ccgo_ts + 4225,
	},
	47: {
		FzName: __ccgo_ts + 4235,
	},
	48: {
		FzName: __ccgo_ts + 4244,
	},
	49: {
		FzName: __ccgo_ts + 4255,
	},
	50: {
		FzName: __ccgo_ts + 4269,
	},
	51: {
		FzName: __ccgo_ts + 4289,
	},
	52: {
		FzName: __ccgo_ts + 4313,
	},
	53: {
		FzName: __ccgo_ts + 4322,
	},
	54: {
		FzName: __ccgo_ts + 4335,
	},
	55: {
		FzName: __ccgo_ts + 4350,
	},
	56: {
		FzName: __ccgo_ts + 4356,
	},
	57: {
		FzName: __ccgo_ts + 4377,
	},
	58: {
		FzName: __ccgo_ts + 4388,
	},
	59: {
		FzName: __ccgo_ts + 4401,
	},
	60: {
		FzName: __ccgo_ts + 4417,
	},
	61: {
		FzName: __ccgo_ts + 4437,
	},
	62: {
		FzName: __ccgo_ts + 4447,
	},
	63: {
		FzName: __ccgo_ts + 4467,
	},
	64: {
		FzName: __ccgo_ts + 4489,
	},
	65: {
		FzName: __ccgo_ts + 4509,
	},
	66: {
		FzName: __ccgo_ts + 4528,
	},
	67: {
		FzName: __ccgo_ts + 4547,
	},
	68: {
		FzName: __ccgo_ts + 4562,
	},
	69: {
		FzName: __ccgo_ts + 4589,
	},
	70: {
		FzName: __ccgo_ts + 4600,
	},
	71: {
		FzName: __ccgo_ts + 4621,
	},
	72: {
		FzName: __ccgo_ts + 4637,
	},
	73: {
		FzName: __ccgo_ts + 4649,
	},
	74: {
		FzName: __ccgo_ts + 4658,
	},
	75: {
		FzName: __ccgo_ts + 4675,
	},
	76: {
		FzName: __ccgo_ts + 4682,
	},
	77: {
		FzName: __ccgo_ts + 4689,
	},
	78: {
		FzName: __ccgo_ts + 4698,
	},
	79: {
		FzName: __ccgo_ts + 4704,
	},
	80: {
		FzName: __ccgo_ts + 4712,
	},
}

var _aTable = [3]struct {
	FzName uintptr
	FzCols uintptr
}{
	0: {
		FzName: __ccgo_ts + 14050,
		FzCols: __ccgo_ts + 14063,
	},
	1: {
		FzName: __ccgo_ts + 14076,
		FzCols: __ccgo_ts + 14089,
	},
	2: {
		FzName: __ccgo_ts + 14117,
	},
}

/*
** Recommended number of samples for sqlite_stat4
 */

var _aWindowFuncs = [15]TFuncDef{
	0: {
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_row_numberName)),
	},
	1: {
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_dense_rankName)),
	},
	2: {
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_rankName)),
	},
	3: {
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_percent_rankName)),
	},
	4: {
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_cume_distName)),
	},
	5: {
		FnArg:      int16(1),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_ntileName)),
	},
	6: {
		FnArg:      int16(1),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_last_valueName)),
	},
	7: {
		FnArg:      int16(2),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_nth_valueName)),
	},
	8: {
		FnArg:      int16(1),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_first_valueName)),
	},
	9: {
		FnArg:      int16(1),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_leadName)),
	},
	10: {
		FnArg:      int16(2),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_leadName)),
	},
	11: {
		FnArg:      int16(3),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_leadName)),
	},
	12: {
		FnArg:      int16(1),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_lagName)),
	},
	13: {
		FnArg:      int16(2),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_lagName)),
	},
	14: {
		FnArg:      int16(3),
		FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_WINDOW) | libc.Int32FromInt32(0)),
		FzName:     uintptr(unsafe.Pointer(&_lagName)),
	},
}

// C documentation
//
//	/*
//	** Implementation of the abs() function.
//	**
//	** IMP: R-23979-26855 The abs(X) function returns the absolute value of
//	** the numeric argument X.
//	*/
func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	var iVal Ti64
	var rVal float64
	_, _ = iVal, rVal
	_ = argc
	switch Xsqlite3_value_type(tls, **(**uintptr)(__ccgo_up(argv))) {
	case int32(SQLITE_INTEGER):
		iVal = Xsqlite3_value_int64(tls, **(**uintptr)(__ccgo_up(argv)))
		if iVal < 0 {
			if iVal == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32)) {
				/* IMP: R-31676-45509 If X is the integer -9223372036854775808
				 ** then abs(X) throws an integer overflow error since there is no
				 ** equivalent positive 64-bit two complement value. */
				Xsqlite3_result_error(tls, context, __ccgo_ts+17680, -int32(1))
				return
			}
			iVal = -iVal
		}
		Xsqlite3_result_int64(tls, context, iVal)
	case int32(SQLITE_NULL):
		/* IMP: R-37434-19929 Abs(X) returns NULL if X is NULL. */
		Xsqlite3_result_null(tls, context)
	default:
		/* Because sqlite3_value_double() returns 0.0 if the argument is not
		 ** something that can be converted into a number, we have:
		 ** IMP: R-01992-00519 Abs(X) returns 0.0 if X is a string or blob
		 ** that cannot be converted to a numeric value.
		 */
		rVal = Xsqlite3_value_double(tls, **(**uintptr)(__ccgo_up(argv)))
		if rVal < libc.Float64FromInt32(0) {
			rVal = -rVal
		}
		Xsqlite3_result_double(tls, context, rVal)
		break
	}
}

// C documentation
//
//	/*
//	** This variant of sqlite3BtreePayload() works even if the cursor has not
//	** in the CURSOR_VALID state.  It is only used by the sqlite3_blob_read()
//	** interface.
//	*/
func _accessPayloadChecked(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uintptr) (r int32) {
	var rc, v1 int32
	_, _ = rc, v1
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) == int32(CURSOR_INVALID) {
		return int32(SQLITE_ABORT)
	}
	rc = _btreeRestoreCursorPosition(tls, pCur)
	if rc != 0 {
		v1 = rc
	} else {
		v1 = _accessPayload(tls, pCur, offset, amt, pBuf, 0)
	}
	return v1
}

const _acmdln = 0

// C documentation
//
//	/*
//	** Return a human-readable name for a constraint resolution action.
//	*/
func _actionName(tls *libc.TLS, action Tu8) (r uintptr) {
	var zName uintptr
	_ = zName
	switch int32(action) {
	case int32(OE_SetNull):
		zName = __ccgo_ts + 20336
	case int32(OE_SetDflt):
		zName = __ccgo_ts + 20345
	case int32(OE_Cascade):
		zName = __ccgo_ts + 20357
	case int32(OE_Restrict):
		zName = __ccgo_ts + 20365
	default:
		zName = __ccgo_ts + 20374
		break
	}
	return zName
}

// C documentation
//
//	/*
//	** This routine takes the module argument that has been accumulating
//	** in pParse->zArg[] and appends it to the list of arguments on the
//	** virtual table currently under construction in pParse->pTable.
//	*/
func _addArgumentToVtab(tls *libc.TLS, pParse uintptr) {
	var db, z uintptr
	var n int32
	_, _, _ = db, n, z
	if (*TParse)(unsafe.Pointer(pParse)).FsArg.Fz != 0 && (*TParse)(unsafe.Pointer(pParse)).FpNewTable != 0 {
		z = (*TParse)(unsafe.Pointer(pParse)).FsArg.Fz
		n = int32((*TParse)(unsafe.Pointer(pParse)).FsArg.Fn)
		db = (*TParse)(unsafe.Pointer(pParse)).Fdb
		_addModuleArgument(tls, pParse, (*TParse)(unsafe.Pointer(pParse)).FpNewTable, _sqlite3DbStrNDup(tls, db, z, uint64(n)))
	}
}

// C documentation
//
//	/*
//	** Buffer pCons, which is nCons bytes in size, contains the text of a
//	** NOT NULL or CHECK constraint that will be inserted into a CREATE TABLE
//	** statement. If successful, this function returns the size of the buffer in
//	** bytes not including any trailing whitespace or "--" style comments. Or,
//	** if an OOM occurs, it returns 0 and sets db->mallocFailed to true.
//	**
//	** C-style comments at the end are preserved.  "--" style comments are
//	** removed because the comment terminator might be \000, and we are about
//	** to insert the pCons[] text into the middle of a larger string, and that
//	** will have the effect of removing the comment terminator and messing up
//	** the syntax.
//	*/
func _alterRtrimConstraint(tls *libc.TLS, db uintptr, pCons uintptr, nCons int32) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var iEnd, iOff, nToken int32
	var zTmp uintptr
	var _ /* t at bp+0 */ int32
	_, _, _, _ = iEnd, iOff, nToken, zTmp
	zTmp = _sqlite3MPrintf(tls, db, __ccgo_ts+13263, libc.VaList(bp+16, nCons, pCons))
	iOff = 0
	iEnd = 0
	if zTmp == uintptr(0) {
		return 0
	}
	for int32(1) != 0 {
		**(**int32)(__ccgo_up(bp)) = 0
		nToken = int32(_sqlite3GetToken(tls, zTmp+uintptr(iOff), bp))
		if **(**int32)(__ccgo_up(bp)) == int32(TK_ILLEGAL) {
			break
		}
		if **(**int32)(__ccgo_up(bp)) != int32(TK_SPACE) && (**(**int32)(__ccgo_up(bp)) != int32(TK_COMMENT) || int32(**(**Tu8)(__ccgo_up(zTmp + uintptr(iOff)))) != int32('-')) {
			iEnd = iOff + nToken
		}
		iOff = iOff + nToken
	}
	_sqlite3DbFree(tls, db, zTmp)
	return iEnd
}

// C documentation
//
//	/*
//	** Return SQLITE_CORRUPT if any cursor other than pCur is currently valid
//	** on the same B-tree as pCur.
//	**
//	** This can occur if a database is corrupt with two or more SQL tables
//	** pointing to the same b-tree.  If an insert occurs on one SQL table
//	** and causes a BEFORE TRIGGER to do a secondary insert on the other SQL
//	** table linked to the same b-tree.  If the secondary insert causes a
//	** rebalance, that can change content out from under the cursor on the
//	** first SQL table, violating invariants on the first insert.
//	*/
func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) {
	var pOther uintptr
	_ = pOther
	pOther = (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FpCursor
	for {
		if !(pOther != 0) {
			break
		}
		if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage {
			return _sqlite3CorruptError(tls, int32(82340))
		}
		goto _1
	_1:
		;
		pOther = (*TBtCursor)(unsafe.Pointer(pOther)).FpNext
	}
	return SQLITE_OK
}

var _attach_func = TFuncDef{
	FnArg:      int16(3),
	FfuncFlags: uint32(SQLITE_UTF8),
	FzName:     __ccgo_ts + 14742,
}

var _az = [3]uintptr{
	0: __ccgo_ts + 17325,
	1: __ccgo_ts + 17347,
	2: __ccgo_ts + 17331,
}

var _azAlterType = [4]uintptr{
	0: __ccgo_ts + 21211,
	1: __ccgo_ts + 21218,
	2: __ccgo_ts + 21230,
	3: __ccgo_ts + 21241,
}

var _azEnc = [4]uintptr{
	1: __ccgo_ts + 20416,
	2: __ccgo_ts + 20421,
	3: __ccgo_ts + 20429,
}

/* Shared library endings to try if zFile cannot be loaded as written */
var _azEndings = [1]uintptr{
	0: __ccgo_ts + 18806,
}

var _azErr = [5]uintptr{
	0: __ccgo_ts + 25854,
	1: __ccgo_ts + 25907,
	2: __ccgo_ts + 25409,
	3: __ccgo_ts + 25958,
	4: __ccgo_ts + 26010,
}

// C documentation
//
//	/*
//	** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN.
//	*/
var _azExplainColNames8 = [12]uintptr{
	0:  __ccgo_ts + 6830,
	1:  __ccgo_ts + 6835,
	2:  __ccgo_ts + 6842,
	3:  __ccgo_ts + 6845,
	4:  __ccgo_ts + 6848,
	5:  __ccgo_ts + 6851,
	6:  __ccgo_ts + 6854,
	7:  __ccgo_ts + 6857,
	8:  __ccgo_ts + 6865,
	9:  __ccgo_ts + 6868,
	10: __ccgo_ts + 6875,
	11: __ccgo_ts + 6883,
}

var _azFormat = [2]uintptr{
	0: __ccgo_ts + 30225,
	1: __ccgo_ts + 30236,
}

var _azInsType = [3]uintptr{
	0: __ccgo_ts + 28005,
	1: __ccgo_ts + 28012,
	2: __ccgo_ts + 28016,
}

var _azModeName = [6]uintptr{
	0: __ccgo_ts + 20384,
	1: __ccgo_ts + 20391,
	2: __ccgo_ts + 20399,
	3: __ccgo_ts + 20403,
	4: __ccgo_ts + 20267,
	5: __ccgo_ts + 20412,
}

var _azModule = [4]uintptr{
	0: __ccgo_ts + 28603,
	1: __ccgo_ts + 28613,
	2: __ccgo_ts + 28623,
	3: __ccgo_ts + 28634,
}

/* In SQLite core */

/* #include <stddef.h> */

/*
** If building separately, we will need some setup that is normally
** found in sqliteInt.h
 */

/* Macro to check for 4-byte alignment.  Only used inside of assert() */

/* #include <string.h> */
/* #include <stdio.h> */
/* #include <assert.h> */
/* #include <stdlib.h> */

/*  The following macro is used to suppress compiler warnings.
 */

var _azName = [192]uintptr{
	0:   __ccgo_ts + 1921,
	1:   __ccgo_ts + 1931,
	2:   __ccgo_ts + 1942,
	3:   __ccgo_ts + 1954,
	4:   __ccgo_ts + 1965,
	5:   __ccgo_ts + 1977,
	6:   __ccgo_ts + 1984,
	7:   __ccgo_ts + 1992,
	8:   __ccgo_ts + 2000,
	9:   __ccgo_ts + 2005,
	10:  __ccgo_ts + 2010,
	11:  __ccgo_ts + 2016,
	12:  __ccgo_ts + 2030,
	13:  __ccgo_ts + 2036,
	14:  __ccgo_ts + 2046,
	15:  __ccgo_ts + 2051,
	16:  __ccgo_ts + 2056,
	17:  __ccgo_ts + 2059,
	18:  __ccgo_ts + 2065,
	19:  __ccgo_ts + 2072,
	20:  __ccgo_ts + 2076,
	21:  __ccgo_ts + 2086,
	22:  __ccgo_ts + 2093,
	23:  __ccgo_ts + 2100,
	24:  __ccgo_ts + 2107,
	25:  __ccgo_ts + 2114,
	26:  __ccgo_ts + 2124,
	27:  __ccgo_ts + 2133,
	28:  __ccgo_ts + 2144,
	29:  __ccgo_ts + 2153,
	30:  __ccgo_ts + 2159,
	31:  __ccgo_ts + 2169,
	32:  __ccgo_ts + 2179,
	33:  __ccgo_ts + 2184,
	34:  __ccgo_ts + 2198,
	35:  __ccgo_ts + 2209,
	36:  __ccgo_ts + 2214,
	37:  __ccgo_ts + 2221,
	38:  __ccgo_ts + 2229,
	39:  __ccgo_ts + 2240,
	40:  __ccgo_ts + 2245,
	41:  __ccgo_ts + 2250,
	42:  __ccgo_ts + 2256,
	43:  __ccgo_ts + 2262,
	44:  __ccgo_ts + 2265,
	45:  __ccgo_ts + 2269,
	46:  __ccgo_ts + 2275,
	47:  __ccgo_ts + 2281,
	48:  __ccgo_ts + 2290,
	49:  __ccgo_ts + 2301,
	50:  __ccgo_ts + 2312,
	51:  __ccgo_ts + 2320,
	52:  __ccgo_ts + 2327,
	53:  __ccgo_ts + 2335,
	54:  __ccgo_ts + 2338,
	55:  __ccgo_ts + 2341,
	56:  __ccgo_ts + 2344,
	57:  __ccgo_ts + 2347,
	58:  __ccgo_ts + 2350,
	59:  __ccgo_ts + 2353,
	60:  __ccgo_ts + 2360,
	61:  __ccgo_ts + 2369,
	62:  __ccgo_ts + 2375,
	63:  __ccgo_ts + 2385,
	64:  __ccgo_ts + 2398,
	65:  __ccgo_ts + 2409,
	66:  __ccgo_ts + 2415,
	67:  __ccgo_ts + 2422,
	68:  __ccgo_ts + 2431,
	69:  __ccgo_ts + 2440,
	70:  __ccgo_ts + 2447,
	71:  __ccgo_ts + 2460,
	72:  __ccgo_ts + 2471,
	73:  __ccgo_ts + 2476,
	74:  __ccgo_ts + 2484,
	75:  __ccgo_ts + 2490,
	76:  __ccgo_ts + 2497,
	77:  __ccgo_ts + 2509,
	78:  __ccgo_ts + 2514,
	79:  __ccgo_ts + 2523,
	80:  __ccgo_ts + 2528,
	81:  __ccgo_ts + 2537,
	82:  __ccgo_ts + 2542,
	83:  __ccgo_ts + 2547,
	84:  __ccgo_ts + 2553,
	85:  __ccgo_ts + 2561,
	86:  __ccgo_ts + 2569,
	87:  __ccgo_ts + 2579,
	88:  __ccgo_ts + 2587,
	89:  __ccgo_ts + 2594,
	90:  __ccgo_ts + 2607,
	91:  __ccgo_ts + 2612,
	92:  __ccgo_ts + 2624,
	93:  __ccgo_ts + 2632,
	94:  __ccgo_ts + 2639,
	95:  __ccgo_ts + 2650,
	96:  __ccgo_ts + 2657,
	97:  __ccgo_ts + 2664,
	98:  __ccgo_ts + 2674,
	99:  __ccgo_ts + 2683,
	100: __ccgo_ts + 2694,
	101: __ccgo_ts + 2700,
	102: __ccgo_ts + 2711,
	103: __ccgo_ts + 2721,
	104: __ccgo_ts + 2728,
	105: __ccgo_ts + 2734,
	106: __ccgo_ts + 2744,
	107: __ccgo_ts + 2755,
	108: __ccgo_ts + 2759,
	109: __ccgo_ts + 2768,
	110: __ccgo_ts + 2777,
	111: __ccgo_ts + 2784,
	112: __ccgo_ts + 2794,
	113: __ccgo_ts + 2801,
	114: __ccgo_ts + 2811,
	115: __ccgo_ts + 2820,
	116: __ccgo_ts + 2827,
	117: __ccgo_ts + 2837,
	118: __ccgo_ts + 2845,
	119: __ccgo_ts + 2853,
	120: __ccgo_ts + 2867,
	121: __ccgo_ts + 2881,
	122: __ccgo_ts + 2892,
	123: __ccgo_ts + 2905,
	124: __ccgo_ts + 2916,
	125: __ccgo_ts + 2922,
	126: __ccgo_ts + 2934,
	127: __ccgo_ts + 2943,
	128: __ccgo_ts + 2951,
	129: __ccgo_ts + 2960,
	130: __ccgo_ts + 2969,
	131: __ccgo_ts + 2976,
	132: __ccgo_ts + 2984,
	133: __ccgo_ts + 2991,
	134: __ccgo_ts + 3002,
	135: __ccgo_ts + 3016,
	136: __ccgo_ts + 3027,
	137: __ccgo_ts + 3035,
	138: __ccgo_ts + 3041,
	139: __ccgo_ts + 3049,
	140: __ccgo_ts + 3057,
	141: __ccgo_ts + 3067,
	142: __ccgo_ts + 3080,
	143: __ccgo_ts + 3090,
	144: __ccgo_ts + 3103,
	145: __ccgo_ts + 3112,
	146: __ccgo_ts + 3123,
	147: __ccgo_ts + 3131,
	148: __ccgo_ts + 3137,
	149: __ccgo_ts + 3149,
	150: __ccgo_ts + 3161,
	151: __ccgo_ts + 3169,
	152: __ccgo_ts + 3181,
	153: __ccgo_ts + 3194,
	154: __ccgo_ts + 3204,
	155: __ccgo_ts + 3209,
	156: __ccgo_ts + 3219,
	157: __ccgo_ts + 3231,
	158: __ccgo_ts + 3243,
	159: __ccgo_ts + 3253,
	160: __ccgo_ts + 3259,
	161: __ccgo_ts + 3269,
	162: __ccgo_ts + 3276,
	163: __ccgo_ts + 3288,
	164: __ccgo_ts + 3299,
	165: __ccgo_ts + 3307,
	166: __ccgo_ts + 3316,
	167: __ccgo_ts + 3325,
	168: __ccgo_ts + 3334,
	169: __ccgo_ts + 3341,
	170: __ccgo_ts + 3352,
	171: __ccgo_ts + 3365,
	172: __ccgo_ts + 3375,
	173: __ccgo_ts + 3382,
	174: __ccgo_ts + 3390,
	175: __ccgo_ts + 3399,
	176: __ccgo_ts + 3405,
	177: __ccgo_ts + 3412,
	178: __ccgo_ts + 3420,
	179: __ccgo_ts + 3428,
	180: __ccgo_ts + 3436,
	181: __ccgo_ts + 3446,
	182: __ccgo_ts + 3455,
	183: __ccgo_ts + 3466,
	184: __ccgo_ts + 3477,
	185: __ccgo_ts + 3488,
	186: __ccgo_ts + 3498,
	187: __ccgo_ts + 3504,
	188: __ccgo_ts + 3515,
	189: __ccgo_ts + 3526,
	190: __ccgo_ts + 3531,
	191: __ccgo_ts + 3539,
}

/************** End of opcodes.c *********************************************/
/************** Begin file os_kv.c *******************************************/
/*
** 2022-09-06
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
******************************************************************************
**
** This file contains an experimental VFS layer that operates on a
** Key/Value storage engine where both keys and values must be pure
** text.
 */
/* #include <sqliteInt.h> */

/************** End of os_kv.c ***********************************************/
/************** Begin file os_unix.c *****************************************/
/*
** 2004 May 22
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
******************************************************************************
**
** This file contains the VFS implementation for unix-like operating systems
** include Linux, MacOSX, *BSD, QNX, VxWorks, AIX, HPUX, and others.
**
** There are actually several different VFS implementations in this file.
** The differences are in the way that file locking is done.  The default
** implementation uses Posix Advisory Locks.  Alternative implementations
** use flock(), dot-files, various proprietary locking schemas, or simply
** skip locking all together.
**
** This source file is organized into divisions where the logic for various
** subfunctions is contained within the appropriate division.  PLEASE
** KEEP THE STRUCTURE OF THIS FILE INTACT.  New code should be placed
** in the correct division and should be clearly labelled.
**
** The layout of divisions is as follows:
**
**   *  General-purpose declarations and utility functions.
**   *  Unique file ID logic used by VxWorks.
**   *  Various locking primitive implementations (all except proxy locking):
**      + for Posix Advisory Locks
**      + for no-op locks
**      + for dot-file locks
**      + for flock() locking
**      + for named semaphore locks (VxWorks only)
**      + for AFP filesystem locks (MacOSX only)
**   *  sqlite3_file methods not associated with locking.
**   *  Definitions of sqlite3_io_methods objects for all locking
**      methods plus "finder" functions for each locking method.
**   *  sqlite3_vfs method implementations.
**   *  Locking primitives for the proxy uber-locking-method. (MacOSX only)
**   *  Definitions of sqlite3_vfs objects for all locking methods
**      plus implementations of sqlite3_os_init() and sqlite3_os_end().
 */
/* #include "sqliteInt.h" */

/************** End of os_unix.c *********************************************/
/************** Begin file os_win.c ******************************************/
/*
** 2004 May 22
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
******************************************************************************
**
** This file contains code that is specific to Windows.
 */
/* #include "sqliteInt.h" */

/*
** Include code that is common to all os_*.c files
 */
/* #include "os_common.h" */

/*
** Include the header file for the Windows VFS.
 */
/* #include "os_win.h" */

/*
** Compiling and using WAL mode requires several APIs that are only
** available in Windows platforms based on the NT kernel.
 */

/*
** Are most of the Win32 ANSI APIs available (i.e. with certain exceptions
** based on the sub-platform)?
 */

/*
** Are most of the Win32 Unicode APIs available (i.e. with certain exceptions
** based on the sub-platform)?
 */

/*
** Make sure at least one set of Win32 APIs is available.
 */

/*
** Define the required Windows SDK version constants if they are not
** already available.
 */

/*
** Check to see if the GetVersionEx[AW] functions are deprecated on the
** target system.  GetVersionEx was first deprecated in Win8.1.
 */

/*
** Check to see if the CreateFileMappingA function is supported on the
** target system.  It is unavailable when using "mincore.lib" on Win10.
** When compiling for Windows 10, always assume "mincore.lib" is in use.
 */

/*
** This constant should already be defined (in the "WinDef.h" SDK file).
 */

/*
** Maximum pathname length (in chars) for Win32.  This should normally be
** MAX_PATH.
 */

/*
** This constant should already be defined (in the "WinNT.h" SDK file).
 */

/*
** Maximum pathname length (in chars) for WinNT.  This should normally be
** UNICODE_STRING_MAX_CHARS.
 */

/*
** Maximum pathname length (in bytes) for Win32.  The MAX_PATH macro is in
** characters, so we allocate 4 bytes per character assuming worst-case of
** 4-bytes-per-character for UTF8.
 */

/*
** Maximum pathname length (in bytes) for WinNT.  This should normally be
** UNICODE_STRING_MAX_CHARS * sizeof(WCHAR).
 */

/*
** Maximum error message length (in chars) for WinRT.
 */

/*
** Returns non-zero if the character should be treated as a directory
** separator.
 */

/*
** This macro is used when a local variable is set to a value that is
** [sometimes] not used by the code (e.g. via conditional compilation).
 */

/*
** Returns the character that should be used as the directory separator.
 */

/*
** Do we need to manually define the Win32 file mapping APIs for use with WAL
** mode or memory mapped files (e.g. these APIs are available in the Windows
** CE SDK; however, they are not present in the header file)?
 */

/*
** Some Microsoft compilers lack this definition.
 */

var _azName1 = [3]uintptr{
	0: __ccgo_ts + 29036,
	1: __ccgo_ts + 6868,
	2: __ccgo_ts + 19186,
}

var _azName2 = [5]uintptr{
	0: __ccgo_ts + 41837,
	1: __ccgo_ts + 38828,
	2: __ccgo_ts + 28645,
	3: __ccgo_ts + 39523,
	4: __ccgo_ts + 14261,
}

var _azOne = [1]uintptr{
	0: __ccgo_ts + 12758,
}

var _azSql = [8]uintptr{
	0: __ccgo_ts + 29041,
	1: __ccgo_ts + 29094,
	2: __ccgo_ts + 29139,
	3: __ccgo_ts + 29191,
	4: __ccgo_ts + 29245,
	5: __ccgo_ts + 29290,
	6: __ccgo_ts + 29348,
	7: __ccgo_ts + 29403,
}

var _azType = [4]uintptr{
	0: __ccgo_ts + 7039,
	1: __ccgo_ts + 7048,
	2: __ccgo_ts + 7055,
	3: __ccgo_ts + 7061,
}

var _azType1 = [6]uintptr{
	0: __ccgo_ts + 1711,
	1: __ccgo_ts + 15591,
	2: __ccgo_ts + 15597,
	3: __ccgo_ts + 15602,
	4: __ccgo_ts + 15607,
	5: __ccgo_ts + 15597,
}

var _azType2 = [5]uintptr{
	0: __ccgo_ts + 7709,
	1: __ccgo_ts + 7704,
	2: __ccgo_ts + 9704,
	3: __ccgo_ts + 9699,
	4: __ccgo_ts + 1697,
}

var _azTypes = [5]uintptr{
	0: __ccgo_ts + 1181,
	1: __ccgo_ts + 1193,
	2: __ccgo_ts + 1198,
	3: __ccgo_ts + 1176,
	4: __ccgo_ts + 1712,
}

type _beginthread_proc_type = T_beginthread_proc_type

type _beginthreadex_proc_type = T_beginthreadex_proc_type

// C documentation
//
//	/*
//	** Return the P5 value that should be used for a binary comparison
//	** opcode (OP_Eq, OP_Ge etc.) used to compare pExpr1 and pExpr2.
//	*/
func _binaryCompareP5(tls *libc.TLS, pExpr1 uintptr, pExpr2 uintptr, jumpIfNull int32) (r Tu8) {
	var aff Tu8
	_ = aff
	aff = uint8(_sqlite3ExprAffinity(tls, pExpr2))
	aff = uint8(int32(uint8(_sqlite3CompareAffinity(tls, pExpr1, int8(aff)))) | int32(uint8(jumpIfNull)))
	return aff
}

// C documentation
//
//	/*
//	** Perform a read or write operation on a blob
//	*/
func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset int32, __ccgo_fp_xCall uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var db, p, v uintptr
	var iKey Tsqlite3_int64
	var rc int32
	var _ /* bDiff at bp+0 */ int32
	_, _, _, _, _ = db, iKey, p, rc, v
	rc = SQLITE_OK
	p = pBlob
	if p == uintptr(0) {
		return _sqlite3MisuseError(tls, int32(106385))
	}
	db = (*TIncrblob)(unsafe.Pointer(p)).Fdb
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	v = (*TIncrblob)(unsafe.Pointer(p)).FpStmt
	if n < 0 || iOffset < 0 || int64(iOffset)+int64(n) > int64((*TIncrblob)(unsafe.Pointer(p)).FnByte) {
		/* Request is out of range. Return a transient error. */
		rc = int32(SQLITE_ERROR)
	} else {
		if v == uintptr(0) {
			/* If there is no statement handle, then the blob-handle has
			 ** already been invalidated. Return SQLITE_ABORT in this case.
			 */
			rc = int32(SQLITE_ABORT)
		} else {
			/* Call either BtreeData() or BtreePutData(). If SQLITE_ABORT is
			 ** returned, clean-up the statement handle.
			 */
			_sqlite3BtreeEnterCursor(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr)
			if __ccgo_fp_xCall == __ccgo_fp(_sqlite3BtreePutData) && (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 {
				/* If a pre-update hook is registered and this is a write cursor,
				 ** invoke it here.
				 **
				 ** TODO: The preupdate-hook is passed SQLITE_DELETE, even though this
				 ** operation should really be an SQLITE_UPDATE. This is probably
				 ** incorrect, but is convenient because at this point the new.* values
				 ** are not easily obtainable. And for the sessions module, an
				 ** SQLITE_UPDATE where the PK columns do not change is handled in the
				 ** same way as an SQLITE_DELETE (the SQLITE_DELETE code is actually
				 ** slightly more efficient). Since you cannot write to a PK column
				 ** using the incremental-blob API, this works. For the sessions module
				 ** anyhow.
				 */
				if _sqlite3BtreeCursorIsValidNN(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr) == 0 {
					/* If the cursor is not currently valid, try to reseek it. This
					 ** always either fails or finds the correct row - the cursor will
					 ** have been marked permanently CURSOR_INVALID if the open row has
					 ** been deleted.  */
					**(**int32)(__ccgo_up(bp)) = 0
					rc = _sqlite3BtreeCursorRestore(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr, bp)
				}
				if _sqlite3BtreeCursorIsValidNN(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr) != 0 {
					iKey = _sqlite3BtreeIntegerKey(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr)
					_sqlite3VdbePreUpdateHook(tls, v, **(**uintptr)(__ccgo_up((*TVdbe)(unsafe.Pointer(v)).FapCsr)), int32(SQLITE_DELETE), (*TIncrblob)(unsafe.Pointer(p)).FzDb, (*TIncrblob)(unsafe.Pointer(p)).FpTab, iKey, -int32(1), int32((*TIncrblob)(unsafe.Pointer(p)).FiCol))
				}
			}
			if rc == SQLITE_OK {
				rc = (*(*func(*libc.TLS, uintptr, Tu32, Tu32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCall})))(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr, uint32(iOffset+(*TIncrblob)(unsafe.Pointer(p)).FiOffset), uint32(n), z)
			}
			_sqlite3BtreeLeaveCursor(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr)
			if rc == int32(SQLITE_ABORT) {
				_sqlite3VdbeFinalize(tls, v)
				(*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0)
			} else {
				(*TVdbe)(unsafe.Pointer(v)).Frc = rc
			}
		}
	}
	_sqlite3Error(tls, db, rc)
	rc = _sqlite3ApiExit(tls, db, rc)
	Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	return rc
}

// C documentation
//
//	/* This is a helper function to impliesNotNullRow().  In this routine,
//	** set pWalker->eCode to one only if *both* of the input expressions
//	** separately have the implies-not-null-row property.
//	*/
func _bothImplyNotNullRow(tls *libc.TLS, pWalker uintptr, pE1 uintptr, pE2 uintptr) {
	if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 {
		_sqlite3WalkExpr(tls, pWalker, pE1)
		if (*TWalker)(unsafe.Pointer(pWalker)).FeCode != 0 {
			(*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0)
			_sqlite3WalkExpr(tls, pWalker, pE2)
		}
	}
}

// C documentation
//
//	/*
//	** Do additional sanity check after btreeInitPage() if
//	** PRAGMA cell_size_check=ON
//	*/
func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) {
	var cellOffset, i, iCellFirst, iCellLast, pc, sz, usableSize int32
	var data uintptr
	_, _, _, _, _, _, _, _ = cellOffset, data, i, iCellFirst, iCellLast, pc, sz, usableSize /* Start of cell content area */
	iCellFirst = int32((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) + int32(2)*int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell)
	usableSize = int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)
	iCellLast = usableSize - int32(4)
	data = (*TMemPage)(unsafe.Pointer(pPage)).FaData
	cellOffset = int32((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset)
	if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) {
		iCellLast = iCellLast - 1
	}
	i = 0
	for {
		if !(i < int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell)) {
			break
		}
		pc = int32(**(**Tu8)(__ccgo_up(data + uintptr(cellOffset+i*int32(2)))))<<int32(8) | int32(**(**Tu8)(__ccgo_up(data + uintptr(cellOffset+i*int32(2)) + 1)))
		if pc < iCellFirst || pc > iCellLast {
			return _sqlite3CorruptError(tls, int32(75424))
		}
		sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc)))
		if pc+sz > usableSize {
			return _sqlite3CorruptError(tls, int32(75429))
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Compute the amount of freespace on the page.  In other words, fill
//	** in the pPage->nFree field.
//	*/
func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) {
	var data uintptr
	var hdr Tu8
	var iCellFirst, iCellLast, nFree, pc, top, usableSize int32
	var next, size Tu32
	_, _, _, _, _, _, _, _, _, _ = data, hdr, iCellFirst, iCellLast, nFree, next, pc, size, top, usableSize /* Last possible cell or freeblock offset */
	usableSize = int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)
	hdr = (*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset
	data = (*TMemPage)(unsafe.Pointer(pPage)).FaData
	/* EVIDENCE-OF: R-58015-48175 The two-byte integer at offset 5 designates
	 ** the start of the cell content area. A zero value for this integer is
	 ** interpreted as 65536. */
	top = (int32(**(**Tu8)(__ccgo_up(data + uintptr(int32(hdr)+int32(5)))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up(data + uintptr(int32(hdr)+int32(5)) + 1)))-int32(1))&int32(0xffff) + int32(1)
	iCellFirst = int32(hdr) + int32(8) + int32((*TMemPage)(unsafe.Pointer(pPage)).FchildPtrSize) + int32(2)*int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell)
	iCellLast = usableSize - int32(4)
	/* Compute the total free space on the page
	 ** EVIDENCE-OF: R-23588-34450 The two-byte integer at offset 1 gives the
	 ** start of the first freeblock on the page, or is zero if there are no
	 ** freeblocks. */
	pc = int32(**(**Tu8)(__ccgo_up(data + uintptr(int32(hdr)+int32(1)))))<<int32(8) | int32(**(**Tu8)(__ccgo_up(data + uintptr(int32(hdr)+int32(1)) + 1)))
	nFree = int32(**(**Tu8)(__ccgo_up(data + uintptr(int32(hdr)+int32(7))))) + top /* Init nFree to non-freeblock free space */
	if pc > 0 {
		if pc < top {
			/* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will
			 ** always be at least one cell before the first freeblock.
			 */
			return _sqlite3CorruptError(tls, int32(75358))
		}
		for int32(1) != 0 {
			if pc > iCellLast {
				/* Freeblock off the end of the page */
				return _sqlite3CorruptError(tls, int32(75363))
			}
			next = uint32(int32(**(**Tu8)(__ccgo_up(data + uintptr(pc))))<<libc.Int32FromInt32(8) | int32(**(**Tu8)(__ccgo_up(data + uintptr(pc) + 1))))
			size = uint32(int32(**(**Tu8)(__ccgo_up(data + uintptr(pc+int32(2)))))<<libc.Int32FromInt32(8) | int32(**(**Tu8)(__ccgo_up(data + uintptr(pc+int32(2)) + 1))))
			if size < uint32(4) {
				/* Minimum freeblock size is 4 */
				return _sqlite3CorruptError(tls, int32(75369))
			}
			nFree = int32(uint32(nFree) + size)
			if next < uint32(pc)+size+uint32(4) {
				break
			}
			pc = int32(next)
		}
		if next > uint32(0) {
			/* Freeblock not in ascending order */
			return _sqlite3CorruptError(tls, int32(75377))
		}
		if uint32(pc)+size > uint32(usableSize) {
			/* Last freeblock extends past page end */
			return _sqlite3CorruptError(tls, int32(75381))
		}
	}
	/* At this point, nFree contains the sum of the offset to the start
	 ** of the cell-content area plus the number of free bytes within
	 ** the cell-content area. If this is greater than the usable-size
	 ** of the page, then the page must be corrupted. This check also
	 ** serves to verify that the offset to the start of the cell-content
	 ** area, according to the page header, lies within the page.
	 */
	if nFree > usableSize || nFree < iCellFirst {
		return _sqlite3CorruptError(tls, int32(75393))
	}
	(*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst))
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** This function is called from both BtreeCommitPhaseTwo() and BtreeRollback()
//	** at the conclusion of a transaction.
//	*/
func _btreeEndTransaction(tls *libc.TLS, p uintptr) {
	var db, pBt uintptr
	_, _ = db, pBt
	pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
	db = (*TBtree)(unsafe.Pointer(p)).Fdb
	(*TBtShared)(unsafe.Pointer(pBt)).FbDoTruncate = uint8(0)
	if int32((*TBtree)(unsafe.Pointer(p)).FinTrans) > TRANS_NONE && (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) {
		/* If there are other active statements that belong to this database
		 ** handle, downgrade to a read-only transaction. The other statements
		 ** may still be reading from the database.  */
		_downgradeAllSharedCacheTableLocks(tls, p)
		(*TBtree)(unsafe.Pointer(p)).FinTrans = uint8(TRANS_READ)
	} else {
		/* If the handle had any kind of transaction open, decrement the
		 ** transaction count of the shared btree. If the transaction count
		 ** reaches 0, set the shared state to TRANS_NONE. The unlockBtreeIfUnused()
		 ** call below will unlock the pager.  */
		if int32((*TBtree)(unsafe.Pointer(p)).FinTrans) != TRANS_NONE {
			_clearAllSharedCacheTableLocks(tls, p)
			(*TBtShared)(unsafe.Pointer(pBt)).FnTransaction = (*TBtShared)(unsafe.Pointer(pBt)).FnTransaction - 1
			if 0 == (*TBtShared)(unsafe.Pointer(pBt)).FnTransaction {
				(*TBtShared)(unsafe.Pointer(pBt)).FinTransaction = uint8(TRANS_NONE)
			}
		}
		/* Set the current transaction state to TRANS_NONE and unlock the
		 ** pager if this call closed the only read or write transaction.  */
		(*TBtree)(unsafe.Pointer(p)).FinTrans = uint8(TRANS_NONE)
		_unlockBtreeIfUnused(tls, pBt)
	}
}

// C documentation
//
//	/*
//	** Initialize the auxiliary information for a disk block.
//	**
//	** Return SQLITE_OK on success.  If we see that the page does
//	** not contain a well-formed database page, then return
//	** SQLITE_CORRUPT.  Note that a return of SQLITE_OK does not
//	** guarantee that the page is well-formed.  It only shows that
//	** we failed to detect any corruption.
//	*/
func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) {
	var data, pBt uintptr
	_, _ = data, pBt /* The main btree structure */
	pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt
	data = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)
	/* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating
	 ** the b-tree page type. */
	if _decodeFlags(tls, pPage, int32(**(**Tu8)(__ccgo_up(data)))) != 0 {
		return _sqlite3CorruptError(tls, int32(75461))
	}
	(*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1))
	(*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0)
	(*TMemPage)(unsafe.Pointer(pPage)).FcellOffset = uint16(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset) + libc.Int32FromInt32(8) + int32((*TMemPage)(unsafe.Pointer(pPage)).FchildPtrSize))
	(*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx = data + uintptr((*TMemPage)(unsafe.Pointer(pPage)).FchildPtrSize) + uintptr(8)
	(*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr((*TBtShared)(unsafe.Pointer(pBt)).FpageSize)
	(*TMemPage)(unsafe.Pointer(pPage)).FaDataOfst = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr((*TMemPage)(unsafe.Pointer(pPage)).FchildPtrSize)
	/* EVIDENCE-OF: R-37002-32774 The two-byte integer at offset 3 gives the
	 ** number of cells on the page. */
	(*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(**(**Tu8)(__ccgo_up(data + 3)))<<libc.Int32FromInt32(8) | int32(**(**Tu8)(__ccgo_up(data + 3 + 1))))
	if uint32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) > ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) {
		/* To many cells for a single page.  The page must be corrupt */
		return _sqlite3CorruptError(tls, int32(75475))
	}
	/* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only
	 ** possible for a root page of a table that contains no rows) then the
	 ** offset to the cell content area will equal the page size minus the
	 ** bytes of reserved space. */
	(*TMemPage)(unsafe.Pointer(pPage)).FnFree = -int32(1) /* Indicate that this value is yet uncomputed */
	(*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(1)
	if (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags&uint64(SQLITE_CellSizeCk) != 0 {
		return _btreeCellSizeCheck(tls, pPage)
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** In this version of BtreeMoveto, pKey is a packed index record
//	** such as is generated by the OP_MakeRecord opcode.  Unpack the
//	** record and then call sqlite3BtreeIndexMoveto() to do the work.
//	*/
func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int32, pRes uintptr) (r int32) {
	var pIdxKey, pKeyInfo uintptr
	var rc int32
	_, _, _ = pIdxKey, pKeyInfo, rc /* Unpacked index key */
	if pKey != 0 {
		pKeyInfo = (*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo
		pIdxKey = _sqlite3VdbeAllocUnpackedRecord(tls, pKeyInfo)
		if pIdxKey == uintptr(0) {
			return int32(SQLITE_NOMEM)
		}
		_sqlite3VdbeRecordUnpack(tls, int32(nKey), pKey, pIdxKey)
		if int32((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || int32((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) {
			rc = _sqlite3CorruptError(tls, int32(74103))
		} else {
			rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes)
		}
		_sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey)
	} else {
		pIdxKey = uintptr(0)
		rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes)
	}
	return rc
}

// C documentation
//
//	/*
//	** Overwrite the cell that cursor pCur is pointing to with fresh content
//	** contained in pX.
//	*/
func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) {
	var nTotal int32
	var pPage uintptr
	_, _ = nTotal, pPage
	nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */
	pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage                                                  /* Page being written */
	if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) {
		return _sqlite3CorruptError(tls, int32(82592))
	}
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal {
		/* The entire cell is local */
		return _btreeOverwriteContent(tls, pPage, (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload, pX, 0, int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal))
	} else {
		/* The cell contains overflow content */
		return _btreeOverwriteOverflowCell(tls, pCur, pX)
	}
	return r
}

// C documentation
//
//	/*
//	** Overwrite the cell that cursor pCur is pointing to with fresh content
//	** contained in pX.  In this variant, pCur is pointing to an overflow
//	** cell.
//	*/
func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iOffset, nTotal, rc int32
	var ovflPageSize Tu32
	var ovflPgno TPgno
	var pBt uintptr
	var _ /* pPage at bp+0 */ uintptr
	_, _, _, _, _, _ = iOffset, nTotal, ovflPageSize, ovflPgno, pBt, rc                                /* Next byte of pX->pData to write */
	nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Return code */
	**(**uintptr)(__ccgo_up(bp)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage                           /* Size to write on overflow page */
	/* pCur is an overflow cell */
	/* Overwrite the local portion first */
	rc = _btreeOverwriteContent(tls, **(**uintptr)(__ccgo_up(bp)), (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload, pX, 0, int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal))
	if rc != 0 {
		return rc
	}
	/* Now overwrite the overflow pages */
	iOffset = int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal)
	ovflPgno = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr(iOffset))
	pBt = (*TMemPage)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FpBt
	ovflPageSize = (*TBtShared)(unsafe.Pointer(pBt)).FusableSize - uint32(4)
	for cond := true; cond; cond = iOffset < nTotal {
		rc = _btreeGetPage(tls, pBt, ovflPgno, bp, 0)
		if rc != 0 {
			return rc
		}
		if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FisInit != 0 {
			rc = _sqlite3CorruptError(tls, int32(82564))
		} else {
			if uint32(iOffset)+ovflPageSize < uint32(nTotal) {
				ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FaData)
			} else {
				ovflPageSize = uint32(nTotal - iOffset)
			}
			rc = _btreeOverwriteContent(tls, **(**uintptr)(__ccgo_up(bp)), (*TMemPage)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FaData+uintptr(4), pX, iOffset, int32(ovflPageSize))
		}
		_sqlite3PagerUnref(tls, (*TMemPage)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FpDbPage)
		if rc != 0 {
			return rc
		}
		iOffset = int32(uint32(iOffset) + ovflPageSize)
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Convert a DbPage obtained from the pager into a MemPage used by
//	** the btree layer.
//	*/
func _btreePageFromDbPage(tls *libc.TLS, pDbPage uintptr, pgno TPgno, pBt uintptr) (r uintptr) {
	var pPage uintptr
	var v1 int32
	_, _ = pPage, v1
	pPage = _sqlite3PagerGetExtra(tls, pDbPage)
	if pgno != (*TMemPage)(unsafe.Pointer(pPage)).Fpgno {
		(*TMemPage)(unsafe.Pointer(pPage)).FaData = _sqlite3PagerGetData(tls, pDbPage)
		(*TMemPage)(unsafe.Pointer(pPage)).FpDbPage = pDbPage
		(*TMemPage)(unsafe.Pointer(pPage)).FpBt = pBt
		(*TMemPage)(unsafe.Pointer(pPage)).Fpgno = pgno
		if pgno == uint32(1) {
			v1 = int32(100)
		} else {
			v1 = 0
		}
		(*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset = uint8(v1)
	}
	return pPage
}

func _btreeParseCell(tls *libc.TLS, pPage uintptr, iCell int32, pInfo uintptr) {
	(*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCell))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCell) + 1))))), pInfo)
}

// C documentation
//
//	/*
//	** The following routines are implementations of the MemPage.xParseCell()
//	** method.
//	**
//	** Parse a cell content block and fill in the CellInfo structure.
//	**
//	** btreeParseCellPtr()        =>   table btree leaf nodes
//	** btreeParseCellNoPayload()  =>   table btree internal nodes
//	** btreeParseCellPtrIndex()   =>   index btree nodes
//	**
//	** There is also a wrapper function btreeParseCell() that works for
//	** all MemPage types and that references the cell by index rather than
//	** by pointer.
//	*/
func _btreeParseCellPtrNoPayload(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintptr) {
	_ = pPage
	(*TCellInfo)(unsafe.Pointer(pInfo)).FnSize = uint16(int32(4) + int32(_sqlite3GetVarint(tls, pCell+4, pInfo)))
	(*TCellInfo)(unsafe.Pointer(pInfo)).FnPayload = uint32(0)
	(*TCellInfo)(unsafe.Pointer(pInfo)).FnLocal = uint16(0)
	(*TCellInfo)(unsafe.Pointer(pInfo)).FpPayload = uintptr(0)
	return
}

// C documentation
//
//	/*
//	** Given a record with nPayload bytes of payload stored within btree
//	** page pPage, return the number of bytes of payload stored locally.
//	*/
func _btreePayloadToLocal(tls *libc.TLS, pPage uintptr, nPayload Ti64) (r int32) {
	var maxLocal, minLocal, surplus, v1 int32
	_, _, _, _ = maxLocal, minLocal, surplus, v1 /* Maximum amount of payload held locally */
	maxLocal = int32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal)
	if nPayload <= int64(maxLocal) {
		return int32(nPayload)
	} else { /* Overflow payload available for local storage */
		minLocal = int32((*TMemPage)(unsafe.Pointer(pPage)).FminLocal)
		surplus = int32(int64(minLocal) + (nPayload-int64(minLocal))%int64((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-libc.Uint32FromInt32(4)))
		if surplus <= maxLocal {
			v1 = surplus
		} else {
			v1 = minLocal
		}
		return v1
	}
	return r
}

// C documentation
//
//	/*
//	** Step the cursor to the back to the previous entry in the database.
//	** Return values:
//	**
//	**     SQLITE_OK     success
//	**     SQLITE_DONE   the cursor is already on the first element of the table
//	**     otherwise     some kind of error occurred
//	**
//	** The main entry point is sqlite3BtreePrevious().  That routine is optimized
//	** for the common case of merely decrementing the cell counter BtCursor.aiIdx
//	** to the previous cell on the current page.  The (slower) btreePrevious()
//	** helper routine is called when it is necessary to move to a different page
//	** or to restore the cursor.
//	**
//	** If bit 0x01 of the F argument to sqlite3BtreePrevious(C,F) is 1, then
//	** the cursor corresponds to an SQL index and this routine could have been
//	** skipped if the SQL index had been a unique index.  The F argument is a
//	** hint to the implement.  The native SQLite btree implementation does not
//	** use this hint, but COMDB2 does.
//	*/
func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) {
	var idx, rc, v1 int32
	var pPage uintptr
	_, _, _, _ = idx, pPage, rc, v1
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
		if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) >= int32(CURSOR_REQUIRESEEK) {
			v1 = _btreeRestoreCursorPosition(tls, pCur)
		} else {
			v1 = SQLITE_OK
		}
		rc = v1
		if rc != SQLITE_OK {
			return rc
		}
		if int32(CURSOR_INVALID) == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) {
			return int32(SQLITE_DONE)
		}
		if int32(CURSOR_SKIPNEXT) == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) {
			(*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID)
			if (*TBtCursor)(unsafe.Pointer(pCur)).FskipNext < 0 {
				return SQLITE_OK
			}
		}
	}
	pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage
	if _sqlite3FaultSim(tls, int32(412)) != 0 {
		(*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0)
	}
	if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) {
		return _sqlite3CorruptError(tls, int32(79674))
	}
	if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) {
		idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix)
		rc = _moveToChild(tls, pCur, _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*idx))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*idx) + 1)))))))
		if rc != 0 {
			return rc
		}
		rc = _moveToRightmost(tls, pCur)
	} else {
		for int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) == 0 {
			if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) == 0 {
				(*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_INVALID)
				return int32(SQLITE_DONE)
			}
			_moveToParent(tls, pCur)
		}
		(*TBtCursor)(unsafe.Pointer(pCur)).Fix = (*TBtCursor)(unsafe.Pointer(pCur)).Fix - 1
		pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage
		if (*TMemPage)(unsafe.Pointer(pPage)).FintKey != 0 && !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) {
			rc = _sqlite3BtreePrevious(tls, pCur, 0)
		} else {
			rc = SQLITE_OK
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Restore the cursor to the position it was in (or as close to as possible)
//	** when saveCursorPosition() was called. Note that this call deletes the
//	** saved position info stored by saveCursorPosition(), so there can be
//	** at most one effective restoreCursorPosition() call after each
//	** saveCursorPosition().
//	*/
func _btreeRestoreCursorPosition(tls *libc.TLS, pCur uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* skipNext at bp+0 */ int32
	_ = rc
	**(**int32)(__ccgo_up(bp)) = 0
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) == int32(CURSOR_FAULT) {
		return (*TBtCursor)(unsafe.Pointer(pCur)).FskipNext
	}
	(*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_INVALID)
	if _sqlite3FaultSim(tls, int32(410)) != 0 {
		rc = int32(SQLITE_IOERR)
	} else {
		rc = _btreeMoveto(tls, pCur, (*TBtCursor)(unsafe.Pointer(pCur)).FpKey, (*TBtCursor)(unsafe.Pointer(pCur)).FnKey, 0, bp)
	}
	if rc == SQLITE_OK {
		Xsqlite3_free(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpKey)
		(*TBtCursor)(unsafe.Pointer(pCur)).FpKey = uintptr(0)
		if **(**int32)(__ccgo_up(bp)) != 0 {
			(*TBtCursor)(unsafe.Pointer(pCur)).FskipNext = **(**int32)(__ccgo_up(bp))
		}
		if (*TBtCursor)(unsafe.Pointer(pCur)).FskipNext != 0 && int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID {
			(*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_SKIPNEXT)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Set the pBt->nPage field correctly, according to the current
//	** state of the database.  Assume pBt->pPage1 is valid.
//	*/
func _btreeSetNPage(tls *libc.TLS, pBt uintptr, pPage1 uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* nPage at bp+0 */ int32
	**(**int32)(__ccgo_up(bp)) = int32(_sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+28))
	if **(**int32)(__ccgo_up(bp)) == 0 {
		_sqlite3PagerPagecount(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, bp)
	}
	(*TBtShared)(unsafe.Pointer(pBt)).FnPage = uint32(**(**int32)(__ccgo_up(bp)))
}

// C documentation
//
//	/*
//	** Implementation of the octet_length() function
//	*/
func _bytelengthFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	var m Ti64
	var v1 int32
	_, _ = m, v1
	_ = argc
	switch Xsqlite3_value_type(tls, **(**uintptr)(__ccgo_up(argv))) {
	case int32(SQLITE_BLOB):
		Xsqlite3_result_int(tls, context, Xsqlite3_value_bytes(tls, **(**uintptr)(__ccgo_up(argv))))
	case int32(SQLITE_INTEGER):
		fallthrough
	case int32(SQLITE_FLOAT):
		if int32((*Tsqlite3)(unsafe.Pointer(Xsqlite3_context_db_handle(tls, context))).Fenc) <= int32(SQLITE_UTF8) {
			v1 = int32(1)
		} else {
			v1 = int32(2)
		}
		m = int64(v1)
		Xsqlite3_result_int64(tls, context, int64(Xsqlite3_value_bytes(tls, **(**uintptr)(__ccgo_up(argv))))*m)
	case int32(SQLITE_TEXT):
		if Xsqlite3_value_encoding(tls, **(**uintptr)(__ccgo_up(argv))) <= int32(SQLITE_UTF8) {
			Xsqlite3_result_int(tls, context, Xsqlite3_value_bytes(tls, **(**uintptr)(__ccgo_up(argv))))
		} else {
			Xsqlite3_result_int(tls, context, Xsqlite3_value_bytes16(tls, **(**uintptr)(__ccgo_up(argv))))
		}
	default:
		Xsqlite3_result_null(tls, context)
		break
	}
}

// C documentation
//
//	/*
//	** Invoke the 'collation needed' callback to request a collation sequence
//	** in the encoding enc of name zName, length nName.
//	*/
func _callCollNeeded(tls *libc.TLS, db uintptr, enc int32, zName uintptr) {
	var pTmp, zExternal, zExternal1 uintptr
	_, _, _ = pTmp, zExternal, zExternal1
	if (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded != 0 {
		zExternal = _sqlite3DbStrDup(tls, db, zName)
		if !(zExternal != 0) {
			return
		}
		(*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg, db, enc, zExternal)
		_sqlite3DbFree(tls, db, zExternal)
	}
	if (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 != 0 {
		pTmp = _sqlite3ValueNew(tls, db)
		_sqlite3ValueSetStr(tls, pTmp, -int32(1), zName, uint8(SQLITE_UTF8), libc.UintptrFromInt32(0))
		zExternal1 = _sqlite3ValueText(tls, pTmp, uint8(SQLITE_UTF16LE))
		if zExternal1 != 0 {
			(*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg, db, int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc), zExternal1)
		}
		_sqlite3ValueFree(tls, pTmp)
	}
}

// C documentation
//
//	/*
//	** Return the N-dimensional volume of the cell stored in *p.
//	*/
func _cellArea(tls *libc.TLS, pRtree uintptr, p uintptr) (r TRtreeDValue) {
	var area TRtreeDValue
	_ = area
	area = libc.Float64FromInt32(1)
	if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
		switch int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim) {
		case int32(5):
			area = float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + 9*4)) - *(*TRtreeValue)(unsafe.Pointer(p + 8 + 8*4)))
			fallthrough
		case int32(4):
			area = area * float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + 7*4))-*(*TRtreeValue)(unsafe.Pointer(p + 8 + 6*4)))
			fallthrough
		case int32(3):
			area = area * float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + 5*4))-*(*TRtreeValue)(unsafe.Pointer(p + 8 + 4*4)))
			fallthrough
		case int32(2):
			area = area * float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + 3*4))-*(*TRtreeValue)(unsafe.Pointer(p + 8 + 2*4)))
			fallthrough
		default:
			area = area * float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + 1*4))-*(*TRtreeValue)(unsafe.Pointer(p + 8)))
		}
	} else {
		switch int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim) {
		case int32(5):
			area = float64(int64(*(*int32)(unsafe.Pointer(p + 8 + 9*4))) - int64(*(*int32)(unsafe.Pointer(p + 8 + 8*4))))
			fallthrough
		case int32(4):
			area = area * float64(int64(*(*int32)(unsafe.Pointer(p + 8 + 7*4)))-int64(*(*int32)(unsafe.Pointer(p + 8 + 6*4))))
			fallthrough
		case int32(3):
			area = area * float64(int64(*(*int32)(unsafe.Pointer(p + 8 + 5*4)))-int64(*(*int32)(unsafe.Pointer(p + 8 + 4*4))))
			fallthrough
		case int32(2):
			area = area * float64(int64(*(*int32)(unsafe.Pointer(p + 8 + 3*4)))-int64(*(*int32)(unsafe.Pointer(p + 8 + 2*4))))
			fallthrough
		default:
			area = area * float64(int64(*(*int32)(unsafe.Pointer(p + 8 + 1*4)))-int64(*(*int32)(unsafe.Pointer(p + 8))))
		}
	}
	return area
}

// C documentation
//
//	/*
//	** Return true if the area covered by p2 is a subset of the area covered
//	** by p1. False otherwise.
//	*/
func _cellContains(tls *libc.TLS, pRtree uintptr, p1 uintptr, p2 uintptr) (r int32) {
	var a1, a11, a2, a21 uintptr
	var ii int32
	_, _, _, _, _ = a1, a11, a2, a21, ii
	if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == int32(RTREE_COORD_INT32) {
		ii = 0
		for {
			if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)) {
				break
			}
			a1 = p1 + 8 + uintptr(ii)*4
			a2 = p2 + 8 + uintptr(ii)*4
			if *(*int32)(unsafe.Pointer(a2)) < *(*int32)(unsafe.Pointer(a1)) || *(*int32)(unsafe.Pointer(a2 + 1*4)) > *(*int32)(unsafe.Pointer(a1 + 1*4)) {
				return 0
			}
			goto _1
		_1:
			;
			ii = ii + int32(2)
		}
	} else {
		ii = 0
		for {
			if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)) {
				break
			}
			a11 = p1 + 8 + uintptr(ii)*4
			a21 = p2 + 8 + uintptr(ii)*4
			if *(*TRtreeValue)(unsafe.Pointer(a21)) < *(*TRtreeValue)(unsafe.Pointer(a11)) || *(*TRtreeValue)(unsafe.Pointer(a21 + 1*4)) > *(*TRtreeValue)(unsafe.Pointer(a11 + 1*4)) {
				return 0
			}
			goto _2
		_2:
			;
			ii = ii + int32(2)
		}
	}
	return int32(1)
}

// C documentation
//
//	/*
//	** Return the margin length of cell p. The margin length is the sum
//	** of the objects size in each dimension.
//	*/
func _cellMargin(tls *libc.TLS, pRtree uintptr, p uintptr) (r TRtreeDValue) {
	var ii int32
	var margin TRtreeDValue
	var v1, v2 float64
	_, _, _, _ = ii, margin, v1, v2
	margin = libc.Float64FromInt32(0)
	ii = int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2) - int32(2)
	for cond := true; cond; cond = ii >= 0 {
		if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
			v1 = float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + uintptr(ii+int32(1))*4)))
		} else {
			v1 = float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(ii+int32(1))*4)))
		}
		if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
			v2 = float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + uintptr(ii)*4)))
		} else {
			v2 = float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(ii)*4)))
		}
		margin = margin + (v1 - v2)
		ii = ii - int32(2)
	}
	return margin
}

func _cellOverlap(tls *libc.TLS, pRtree uintptr, p uintptr, aCell uintptr, nCell int32) (r TRtreeDValue) {
	var ii, jj int32
	var o, overlap, x1, x2 TRtreeDValue
	var v3, v4, v5, v6, v7 float64
	_, _, _, _, _, _, _, _, _, _, _ = ii, jj, o, overlap, x1, x2, v3, v4, v5, v6, v7
	overlap = float64(0)
	ii = 0
	for {
		if !(ii < nCell) {
			break
		}
		o = libc.Float64FromInt32(1)
		jj = 0
		for {
			if !(jj < int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)) {
				break
			}
			if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
				v4 = float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + uintptr(jj)*4)))
			} else {
				v4 = float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(jj)*4)))
			}
			if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
				v5 = float64(*(*TRtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj)*4)))
			} else {
				v5 = float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj)*4)))
			}
			if v4 > v5 {
				if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
					v6 = float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + uintptr(jj)*4)))
				} else {
					v6 = float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(jj)*4)))
				}
				v3 = v6
			} else {
				if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
					v7 = float64(*(*TRtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj)*4)))
				} else {
					v7 = float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj)*4)))
				}
				v3 = v7
			}
			x1 = v3
			if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
				v4 = float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + uintptr(jj+int32(1))*4)))
			} else {
				v4 = float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(jj+int32(1))*4)))
			}
			if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
				v5 = float64(*(*TRtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj+int32(1))*4)))
			} else {
				v5 = float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj+int32(1))*4)))
			}
			if v4 < v5 {
				if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
					v6 = float64(*(*TRtreeValue)(unsafe.Pointer(p + 8 + uintptr(jj+int32(1))*4)))
				} else {
					v6 = float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(jj+int32(1))*4)))
				}
				v3 = v6
			} else {
				if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
					v7 = float64(*(*TRtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj+int32(1))*4)))
				} else {
					v7 = float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj+int32(1))*4)))
				}
				v3 = v7
			}
			x2 = v3
			if x2 < x1 {
				o = libc.Float64FromInt32(0)
				break
			} else {
				o = TRtreeDValue(o * (x2 - x1))
			}
			goto _2
		_2:
			;
			jj = jj + int32(2)
		}
		overlap = overlap + o
		goto _1
	_1:
		;
		ii = ii + 1
	}
	return overlap
}

// C documentation
//
//	/*
//	** Store the union of cells p1 and p2 in p1.
//	*/
func _cellUnion(tls *libc.TLS, pRtree uintptr, p1 uintptr, p2 uintptr) {
	var ii, v3 int32
	var v1 TRtreeValue
	_, _, _ = ii, v1, v3
	ii = 0
	if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
		for cond := true; cond; cond = ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2) {
			if *(*TRtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4)) < *(*TRtreeValue)(unsafe.Pointer(p2 + 8 + uintptr(ii)*4)) {
				v1 = *(*TRtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4))
			} else {
				v1 = *(*TRtreeValue)(unsafe.Pointer(p2 + 8 + uintptr(ii)*4))
			}
			*(*TRtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4)) = v1
			if *(*TRtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii+int32(1))*4)) > *(*TRtreeValue)(unsafe.Pointer(p2 + 8 + uintptr(ii+int32(1))*4)) {
				v1 = *(*TRtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii+int32(1))*4))
			} else {
				v1 = *(*TRtreeValue)(unsafe.Pointer(p2 + 8 + uintptr(ii+int32(1))*4))
			}
			*(*TRtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii+int32(1))*4)) = v1
			ii = ii + int32(2)
		}
	} else {
		for cond := true; cond; cond = ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2) {
			if *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4)) < *(*int32)(unsafe.Pointer(p2 + 8 + uintptr(ii)*4)) {
				v3 = *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4))
			} else {
				v3 = *(*int32)(unsafe.Pointer(p2 + 8 + uintptr(ii)*4))
			}
			*(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4)) = v3
			if *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii+int32(1))*4)) > *(*int32)(unsafe.Pointer(p2 + 8 + uintptr(ii+int32(1))*4)) {
				v3 = *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii+int32(1))*4))
			} else {
				v3 = *(*int32)(unsafe.Pointer(p2 + 8 + uintptr(ii+int32(1))*4))
			}
			*(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii+int32(1))*4)) = v3
			ii = ii + int32(2)
		}
	}
}

// C documentation
//
//	/*
//	** If the TEMP database is open, close it and mark the database schema
//	** as needing reloading.  This must be done when using the SQLITE_TEMP_STORE
//	** or DEFAULT_TEMP_STORE pragmas.
//	*/
func _changeTempStorage(tls *libc.TLS, pParse uintptr, zStorageType uintptr) (r int32) {
	var db uintptr
	var ts int32
	_, _ = db, ts
	ts = _getTempStore(tls, zStorageType)
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	if int32((*Tsqlite3)(unsafe.Pointer(db)).Ftemp_store) == ts {
		return SQLITE_OK
	}
	if _invalidateTempStorage(tls, pParse) != SQLITE_OK {
		return int32(SQLITE_ERROR)
	}
	(*Tsqlite3)(unsafe.Pointer(db)).Ftemp_store = uint8(ts)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Check the integrity of the freelist or of an overflow page list.
//	** Verify that the number of pages on the list is N.
//	*/
func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N Tu32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var expected, n Tu32
	var i, nErrAtStart int32
	var iFreePage TPgno
	var pOvflData, v2 uintptr
	var _ /* pOvflPage at bp+0 */ uintptr
	_, _, _, _, _, _, _ = expected, i, iFreePage, n, nErrAtStart, pOvflData, v2
	expected = N
	nErrAtStart = (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr
	for iPage != uint32(0) && (*TIntegrityCk)(unsafe.Pointer(pCheck)).FmxErr != 0 {
		if _checkRef(tls, pCheck, iPage) != 0 {
			break
		}
		N = N - 1
		if _sqlite3PagerGet(tls, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FpPager, iPage, bp, 0) != 0 {
			_checkAppendMsg(tls, pCheck, __ccgo_ts+5702, libc.VaList(bp+16, iPage))
			break
		}
		pOvflData = _sqlite3PagerGetData(tls, **(**uintptr)(__ccgo_up(bp)))
		if isFreeList != 0 {
			n = _sqlite3Get4byte(tls, pOvflData+4)
			if (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FautoVacuum != 0 {
				_checkPtrmap(tls, pCheck, iPage, uint8(PTRMAP_FREEPAGE), uint32(0))
			}
			if n > (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) {
				_checkAppendMsg(tls, pCheck, __ccgo_ts+5724, libc.VaList(bp+16, iPage))
				N = N - 1
			} else {
				i = 0
				for {
					if !(i < int32(n)) {
						break
					}
					iFreePage = _sqlite3Get4byte(tls, pOvflData+uintptr(int32(8)+i*int32(4)))
					if (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FautoVacuum != 0 {
						_checkPtrmap(tls, pCheck, iFreePage, uint8(PTRMAP_FREEPAGE), uint32(0))
					}
					_checkRef(tls, pCheck, iFreePage)
					goto _1
				_1:
					;
					i = i + 1
				}
				N = N - n
			}
		} else {
			/* If this database supports auto-vacuum and iPage is not the last
			 ** page in this overflow list, check that the pointer-map entry for
			 ** the following page matches iPage.
			 */
			if (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FautoVacuum != 0 && N > uint32(0) {
				i = int32(_sqlite3Get4byte(tls, pOvflData))
				_checkPtrmap(tls, pCheck, uint32(i), uint8(PTRMAP_OVERFLOW2), iPage)
			}
		}
		iPage = _sqlite3Get4byte(tls, pOvflData)
		_sqlite3PagerUnref(tls, **(**uintptr)(__ccgo_up(bp)))
	}
	if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr {
		if isFreeList != 0 {
			v2 = __ccgo_ts + 5763
		} else {
			v2 = __ccgo_ts + 5768
		}
		_checkAppendMsg(tls, pCheck, __ccgo_ts+5789, libc.VaList(bp+16, v2, expected-N, expected))
	}
}

// C documentation
//
//	/*
//	** Check that the entry in the pointer-map for page iChild maps to
//	** page iParent, pointer type ptrType. If not, append an error message
//	** to pCheck.
//	*/
func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParent TPgno) {
	bp := tls.Alloc(64)
	defer tls.Free(64)
	var rc int32
	var _ /* ePtrmapType at bp+0 */ Tu8
	var _ /* iPtrmapParent at bp+4 */ TPgno
	_ = rc
	rc = _ptrmapGet(tls, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt, iChild, bp, bp+4)
	if rc != SQLITE_OK {
		if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<<libc.Int32FromInt32(8) {
			_checkOom(tls, pCheck)
		}
		_checkAppendMsg(tls, pCheck, __ccgo_ts+5619, libc.VaList(bp+16, iChild))
		return
	}
	if int32(**(**Tu8)(__ccgo_up(bp))) != int32(eType) || **(**TPgno)(__ccgo_up(bp + 4)) != iParent {
		_checkAppendMsg(tls, pCheck, __ccgo_ts+5648, libc.VaList(bp+16, iChild, int32(eType), iParent, int32(**(**Tu8)(__ccgo_up(bp))), **(**TPgno)(__ccgo_up(bp + 4))))
	}
}

// C documentation
//
//	/*
//	** Check that there is no open read-transaction on the b-tree passed as the
//	** second argument. If there is not, return SQLITE_OK. Otherwise, if there
//	** is an open read-transaction, return SQLITE_ERROR and leave an error
//	** message in database handle db.
//	*/
func _checkReadTransaction(tls *libc.TLS, db uintptr, p uintptr) (r int32) {
	if _sqlite3BtreeTxnState(tls, p) != SQLITE_TXN_NONE {
		_sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+6362, 0)
		return int32(SQLITE_ERROR)
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Add 1 to the reference count for page iPage.  If this is the second
//	** reference to the page, add an error message to pCheck->zErrMsg.
//	** Return 1 if there are 2 or more references to the page and 0 if
//	** if this is the first reference to the page.
//	**
//	** Also check that the page number is in bounds.
//	*/
func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) {
		_checkAppendMsg(tls, pCheck, __ccgo_ts+5571, libc.VaList(bp+8, iPage))
		return int32(1)
	}
	if _getPageReferenced(tls, pCheck, iPage) != 0 {
		_checkAppendMsg(tls, pCheck, __ccgo_ts+5594, libc.VaList(bp+8, iPage))
		return int32(1)
	}
	_setPageReferenced(tls, pCheck, iPage)
	return 0
}

// C documentation
//
//	/*
//	** Generate code for a comparison operator.
//	*/
func _codeCompare(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintptr, opcode int32, in1 int32, in2 int32, dest int32, jumpIfNull int32, isCommuted int32) (r int32) {
	var addr, p5 int32
	var p4 uintptr
	_, _, _ = addr, p4, p5
	if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 {
		return 0
	}
	if isCommuted != 0 {
		p4 = _sqlite3BinaryCompareCollSeq(tls, pParse, pRight, pLeft)
	} else {
		p4 = _sqlite3BinaryCompareCollSeq(tls, pParse, pLeft, pRight)
	}
	p5 = int32(_binaryCompareP5(tls, pLeft, pRight, jumpIfNull))
	addr = _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, opcode, in2, dest, in1, p4, -int32(2))
	_sqlite3VdbeChangeP5(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, uint16(p5))
	return addr
}

// C documentation
//
//	/*
//	** Generate code for a single equality term of the WHERE clause.  An equality
//	** term can be either X=expr or X IN (...).   pTerm is the term to be
//	** coded.
//	**
//	** The current value for the constraint is left in a register, the index
//	** of which is returned.  An attempt is made store the result in iTarget but
//	** this is only guaranteed for TK_ISNULL and TK_IN constraints.  If the
//	** constraint is a TK_EQ or TK_IS, then the current value might be left in
//	** some other register and it is the caller's responsibility to compensate.
//	**
//	** For a constraint of the form X=expr, the expression is evaluated in
//	** straight-line code.  For constraints of the form X IN (...)
//	** this routine sets up a loop that will iterate over all values of X.
//	*/
func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uintptr, iEq int32, bRev int32, iTarget int32) (r int32) {
	var iReg int32
	var pX uintptr
	_, _ = iReg, pX
	pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr /* Register holding results */
	if int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_EQ) || int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_IS) {
		iReg = _sqlite3ExprCodeTarget(tls, pParse, (*TExpr)(unsafe.Pointer(pX)).FpRight, iTarget)
	} else {
		if int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_ISNULL) {
			iReg = iTarget
			_sqlite3VdbeAddOp2(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Null), 0, iReg)
		} else {
			iReg = iTarget
			_codeINTerm(tls, pParse, pTerm, pLevel, iEq, bRev, iTarget)
		}
	}
	/* As an optimization, try to disable the WHERE clause term that is
	 ** driving the index as it will always be true.  The correct answer is
	 ** obtained regardless, but we might get the answer with fewer CPU cycles
	 ** by omitting the term.
	 **
	 ** But do not disable the term unless we are certain that the term is
	 ** not a transitive constraint.  For an example of where that does not
	 ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04)
	 */
	if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 {
		_disableTerm(tls, pLevel, pTerm)
	}
	return iReg
}

// C documentation
//
//	/*
//	** Compare the 19-character string zNum against the text representation
//	** value 2^63:  9223372036854775808.  Return negative, zero, or positive
//	** if zNum is less than, equal to, or greater than the string.
//	** Note that zNum must contain exactly 19 characters.
//	**
//	** Unlike memcmp() this routine is guaranteed to return the difference
//	** in the values of the last digit if the only difference is in the
//	** last digit.  So, for example,
//	**
//	**      compare2pow63("9223372036854775800", 1)
//	**
//	** will return -8.
//	*/
func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) {
	var c, i int32
	var pow63 uintptr
	_, _, _ = c, i, pow63
	c = 0
	/* 012345678901234567 */
	pow63 = __ccgo_ts + 1822
	i = 0
	for {
		if !(c == 0 && i < int32(18)) {
			break
		}
		c = (int32(**(**int8)(__ccgo_up(zNum + uintptr(i*incr)))) - int32(**(**int8)(__ccgo_up(pow63 + uintptr(i))))) * int32(10)
		goto _1
	_1:
		;
		i = i + 1
	}
	if c == 0 {
		c = int32(**(**int8)(__ccgo_up(zNum + uintptr(int32(18)*incr)))) - int32('8')
	}
	return c
}

type _complex = T_complex

// C documentation
//
//	/*
//	** pMem currently only holds a string type (or maybe a BLOB that we can
//	** interpret as a string if we want to).  Compute its corresponding
//	** numeric type, if has one.  Set the pMem->u.r and pMem->u.i fields
//	** accordingly.
//	*/
func _computeNumericType(tls *libc.TLS, pMem uintptr) (r Tu16) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc, v1 int32
	var _ /* ix at bp+0 */ Tsqlite3_int64
	_, _ = rc, v1
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Zero) != 0 {
		v1 = _sqlite3VdbeMemExpandBlob(tls, pMem)
	} else {
		v1 = 0
	}
	if v1 != 0 {
		*(*Ti64)(unsafe.Pointer(pMem)) = 0
		return uint16(MEM_Int)
	}
	rc = _sqlite3MemRealValueRC(tls, pMem, pMem)
	if rc <= 0 {
		if rc&int32(2) == 0 && _sqlite3Atoi64(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, bp, (*TMem)(unsafe.Pointer(pMem)).Fn, (*TMem)(unsafe.Pointer(pMem)).Fenc) <= int32(1) {
			*(*Ti64)(unsafe.Pointer(pMem)) = **(**Tsqlite3_int64)(__ccgo_up(bp))
			return uint16(MEM_Int)
		} else {
			return uint16(MEM_Real)
		}
	} else {
		if rc&int32(2) == 0 && _sqlite3Atoi64(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, bp, (*TMem)(unsafe.Pointer(pMem)).Fn, (*TMem)(unsafe.Pointer(pMem)).Fenc) == 0 {
			*(*Ti64)(unsafe.Pointer(pMem)) = **(**Tsqlite3_int64)(__ccgo_up(bp))
			return uint16(MEM_Int)
		}
	}
	return uint16(MEM_Real)
}

// C documentation
//
//	/*
//	** The CONCAT(...) function.  Generate a string result that is the
//	** concatentation of all non-null arguments.
//	*/
func _concatFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	_concatFuncCore(tls, context, argc, argv, 0, __ccgo_ts+1711)
}

const _copysignl = 0

type _cpinfo = T_cpinfo

type _cpinfoexA = T_cpinfoexA

type _cpinfoexW = T_cpinfoexW

type _currencyfmtA = T_currencyfmtA

type _currencyfmtW = T_currencyfmtW

// C documentation
//
//	/*
//	** idxNum:
//	**
//	**     0     schema=main, full table scan
//	**     1     schema=main, pgno=?1
//	**     2     schema=?1, full table scan
//	**     3     schema=?1, pgno=?2
//	*/
func _dbpageBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) {
	var i, iPlan, v3 int32
	var p, p1 uintptr
	_, _, _, _, _ = i, iPlan, p, p1, v3
	iPlan = 0
	_ = tab
	/* If there is a schema= constraint, it must be honored.  Report a
	 ** ridiculously large estimated cost if the schema= constraint is
	 ** unavailable
	 */
	i = 0
	for {
		if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) {
			break
		}
		p = (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(i)*12
		if (*Tsqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn != int32(DBPAGE_COLUMN_SCHEMA) {
			goto _1
		}
		if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) {
			goto _1
		}
		if !((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fusable != 0) {
			/* No solution. */
			return int32(SQLITE_CONSTRAINT)
		}
		iPlan = int32(2)
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8))).FargvIndex = int32(1)
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8))).Fomit = uint8(1)
		break
		goto _1
	_1:
		;
		i = i + 1
	}
	/* If we reach this point, it means that either there is no schema=
	 ** constraint (in which case we use the "main" schema) or else the
	 ** schema constraint was accepted.  Lower the estimated cost accordingly
	 */
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(1e+06)
	/* Check for constraints against pgno */
	i = 0
	for {
		if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) {
			break
		}
		p1 = (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(i)*12
		if (*Tsqlite3_index_constraint)(unsafe.Pointer(p1)).Fusable != 0 && (*Tsqlite3_index_constraint)(unsafe.Pointer(p1)).FiColumn <= 0 && int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p1)).Fop) == int32(SQLITE_INDEX_CONSTRAINT_EQ) {
			(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1)
			(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxFlags = int32(SQLITE_INDEX_SCAN_UNIQUE)
			(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(1)
			if iPlan != 0 {
				v3 = int32(2)
			} else {
				v3 = int32(1)
			}
			(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8))).FargvIndex = v3
			(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8))).Fomit = uint8(1)
			iPlan = iPlan | int32(1)
			break
		}
		goto _2
	_2:
		;
		i = i + 1
	}
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = iPlan
	if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnOrderBy >= int32(1) && (**(**Tsqlite3_index_orderby)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaOrderBy))).FiColumn <= 0 && int32((**(**Tsqlite3_index_orderby)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaOrderBy))).Fdesc) == 0 {
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).ForderByConsumed = int32(1)
	}
	return SQLITE_OK
}

func _dbpageRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) {
	var pCsr uintptr
	_ = pCsr
	pCsr = pCursor
	**(**Tsqlite_int64)(__ccgo_up(pRowid)) = int64((*TDbpageCursor)(unsafe.Pointer(pCsr)).Fpgno)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Delete the cell at index iCell of node pNode. After removing the
//	** cell, adjust the r-tree data structure if required.
//	*/
func _deleteCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32, iHeight int32) (r int32) {
	var pParent uintptr
	var rc, v1 int32
	_, _, _ = pParent, rc, v1
	v1 = _fixLeafParent(tls, pRtree, pNode)
	rc = v1
	if SQLITE_OK != v1 {
		return rc
	}
	/* Remove the cell from the node. This call just moves bytes around
	 ** the in-memory node image, so it cannot fail.
	 */
	_nodeDeleteCell(tls, pRtree, pNode, iCell)
	/* If the node is not the tree root and now has less than the minimum
	 ** number of cells, remove it from the tree. Otherwise, update the
	 ** cell in the parent node so that it tightly contains the updated
	 ** node.
	 */
	pParent = (*TRtreeNode)(unsafe.Pointer(pNode)).FpParent
	if pParent != 0 {
		if _readInt16(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+2) < ((*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize-int32(4))/int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)/int32(3) {
			rc = _removeNode(tls, pRtree, pNode, iHeight)
		} else {
			rc = _fixBoundingBox(tls, pRtree, pNode)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Write VDBE code to erase table pTab and all associated indices on disk.
//	** Code to update the sqlite_schema tables and internal schema definitions
//	** in case a root-page belonging to another table is moved by the btree layer
//	** is also added (this can happen with an auto-vacuum database).
//	*/
func _destroyTable(tls *libc.TLS, pParse uintptr, pTab uintptr) {
	var iDb int32
	var iDestroyed, iIdx, iLargest, iTab TPgno
	var pIdx uintptr
	_, _, _, _, _, _ = iDb, iDestroyed, iIdx, iLargest, iTab, pIdx
	/* If the database may be auto-vacuum capable (if SQLITE_OMIT_AUTOVACUUM
	 ** is not defined), then it is important to call OP_Destroy on the
	 ** table and index root-pages in order, starting with the numerically
	 ** largest root-page number. This guarantees that none of the root-pages
	 ** to be destroyed is relocated by an earlier OP_Destroy. i.e. if the
	 ** following were coded:
	 **
	 ** OP_Destroy 4 0
	 ** ...
	 ** OP_Destroy 5 0
	 **
	 ** and root page 5 happened to be the largest root-page number in the
	 ** database, then root page 5 would be moved to page 4 by the
	 ** "OP_Destroy 4 0" opcode. The subsequent "OP_Destroy 5 0" would hit
	 ** a free-list page.
	 */
	iTab = (*TTable)(unsafe.Pointer(pTab)).Ftnum
	iDestroyed = uint32(0)
	for int32(1) != 0 {
		iLargest = uint32(0)
		if iDestroyed == uint32(0) || iTab < iDestroyed {
			iLargest = iTab
		}
		pIdx = (*TTable)(unsafe.Pointer(pTab)).FpIndex
		for {
			if !(pIdx != 0) {
				break
			}
			iIdx = (*TIndex)(unsafe.Pointer(pIdx)).Ftnum
			if (iDestroyed == uint32(0) || iIdx < iDestroyed) && iIdx > iLargest {
				iLargest = iIdx
			}
			goto _1
		_1:
			;
			pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext
		}
		if iLargest == uint32(0) {
			return
		} else {
			iDb = _sqlite3SchemaToIndex(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TTable)(unsafe.Pointer(pTab)).FpSchema)
			_destroyRootPage(tls, pParse, int32(iLargest), iDb)
			iDestroyed = iLargest
		}
	}
}

var _detach_func = TFuncDef{
	FnArg:      int16(1),
	FfuncFlags: uint32(SQLITE_UTF8),
	FzName:     __ccgo_ts + 14728,
}

type _dev_t = T_dev_t

type _devicemodeA = T_devicemodeA

type _devicemodeW = T_devicemodeW

func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) {
		_sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+25663, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8))))
	}
	return WRC_Continue
}

type _div_t = T_div_t

const _doserrno = 0

const _eeptAnsiString = 1

const _eeptBinary = 7

const _eeptLongVal = 3

const _eeptNone = 6

const _eeptPointerVal = 5

const _eeptShortVal = 4

const _eeptUnicodeString = 2

var _encnames = [4]uintptr{
	0: __ccgo_ts + 6476,
	1: __ccgo_ts + 6478,
	2: __ccgo_ts + 6480,
	3: __ccgo_ts + 6485,
}

var _encnames1 = [9]struct {
	FzName uintptr
	Fenc   Tu8
}{
	0: {
		FzName: __ccgo_ts + 21026,
		Fenc:   uint8(SQLITE_UTF8),
	},
	1: {
		FzName: __ccgo_ts + 21031,
		Fenc:   uint8(SQLITE_UTF8),
	},
	2: {
		FzName: __ccgo_ts + 21037,
		Fenc:   uint8(SQLITE_UTF16LE),
	},
	3: {
		FzName: __ccgo_ts + 21046,
		Fenc:   uint8(SQLITE_UTF16BE),
	},
	4: {
		FzName: __ccgo_ts + 21055,
		Fenc:   uint8(SQLITE_UTF16LE),
	},
	5: {
		FzName: __ccgo_ts + 21063,
		Fenc:   uint8(SQLITE_UTF16BE),
	},
	6: {
		FzName: __ccgo_ts + 21071,
	},
	7: {
		FzName: __ccgo_ts + 21078,
	},
	8: {},
}

const _environ = 0

// C documentation
//
//	/*
//	** Estimate the logarithm of the input value to base 2.
//	*/
func _estLog(tls *libc.TLS, N TLogEst) (r TLogEst) {
	var v1 int32
	_ = v1
	if int32(N) <= int32(10) {
		v1 = 0
	} else {
		v1 = int32(_sqlite3LogEst(tls, uint64(N))) - int32(33)
	}
	return int16(v1)
}

type _exception = T_exception

// C documentation
//
//	/*
//	** This routine is a helper for explainIndexRange() below
//	**
//	** pStr holds the text of an expression that we are building up one term
//	** at a time.  This routine adds a new term to the end of the expression.
//	** Terms are separated by AND so add the "AND" text for second and subsequent
//	** terms only.
//	*/
func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, iTerm int32, bAnd int32, zOp uintptr) {
	var i int32
	_ = i
	if bAnd != 0 {
		Xsqlite3_str_append(tls, pStr, __ccgo_ts+24859, int32(5))
	}
	if nTerm > int32(1) {
		Xsqlite3_str_append(tls, pStr, __ccgo_ts+24865, int32(1))
	}
	i = 0
	for {
		if !(i < nTerm) {
			break
		}
		if i != 0 {
			Xsqlite3_str_append(tls, pStr, __ccgo_ts+15563, int32(1))
		}
		Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i))
		goto _1
	_1:
		;
		i = i + 1
	}
	if nTerm > int32(1) {
		Xsqlite3_str_append(tls, pStr, __ccgo_ts+6474, int32(1))
	}
	Xsqlite3_str_append(tls, pStr, zOp, int32(1))
	if nTerm > int32(1) {
		Xsqlite3_str_append(tls, pStr, __ccgo_ts+24865, int32(1))
	}
	i = 0
	for {
		if !(i < nTerm) {
			break
		}
		if i != 0 {
			Xsqlite3_str_append(tls, pStr, __ccgo_ts+15563, int32(1))
		}
		Xsqlite3_str_append(tls, pStr, __ccgo_ts+6476, int32(1))
		goto _2
	_2:
		;
		i = i + 1
	}
	if nTerm > int32(1) {
		Xsqlite3_str_append(tls, pStr, __ccgo_ts+6474, int32(1))
	}
}

// C documentation
//
//	/*
//	** Argument pLevel describes a strategy for scanning table pTab. This
//	** function appends text to pStr that describes the subset of table
//	** rows scanned by the strategy in the form of an SQL expression.
//	**
//	** For example, if the query:
//	**
//	**   SELECT * FROM t1 WHERE a=1 AND b>2;
//	**
//	** is run and there is an index on (a, b), then this function returns a
//	** string similar to:
//	**
//	**   "a=? AND b>?"
//	*/
func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var i, j int32
	var nEq, nSkip Tu16
	var pIndex, z, v2 uintptr
	_, _, _, _, _, _, _ = i, j, nEq, nSkip, pIndex, z, v2
	pIndex = (*(*struct {
		FnEq          Tu16
		FnBtm         Tu16
		FnTop         Tu16
		FnDistinctCol Tu16
		FpIndex       uintptr
		FpOrderBy     uintptr
	})(unsafe.Pointer(pLoop + 24))).FpIndex
	nEq = (*(*struct {
		FnEq          Tu16
		FnBtm         Tu16
		FnTop         Tu16
		FnDistinctCol Tu16
		FpIndex       uintptr
		FpOrderBy     uintptr
	})(unsafe.Pointer(pLoop + 24))).FnEq
	nSkip = (*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip
	if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) {
		return
	}
	Xsqlite3_str_append(tls, pStr, __ccgo_ts+24867, int32(2))
	i = 0
	for {
		if !(i < int32(nEq)) {
			break
		}
		z = _explainIndexColumnName(tls, pIndex, i)
		if i != 0 {
			Xsqlite3_str_append(tls, pStr, __ccgo_ts+24859, int32(5))
		}
		if i >= int32(nSkip) {
			v2 = __ccgo_ts + 24870
		} else {
			v2 = __ccgo_ts + 24875
		}
		Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z))
		goto _1
	_1:
		;
		i = i + 1
	}
	j = i
	if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 {
		_explainAppendTerm(tls, pStr, pIndex, int32((*(*struct {
			FnEq          Tu16
			FnBtm         Tu16
			FnTop         Tu16
			FnDistinctCol Tu16
			FpIndex       uintptr
			FpOrderBy     uintptr
		})(unsafe.Pointer(pLoop + 24))).FnBtm), j, i, __ccgo_ts+24883)
		i = int32(1)
	}
	if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 {
		_explainAppendTerm(tls, pStr, pIndex, int32((*(*struct {
			FnEq          Tu16
			FnBtm         Tu16
			FnTop         Tu16
			FnDistinctCol Tu16
			FpIndex       uintptr
			FpOrderBy     uintptr
		})(unsafe.Pointer(pLoop + 24))).FnTop), j, i, __ccgo_ts+24885)
	}
	Xsqlite3_str_append(tls, pStr, __ccgo_ts+6474, int32(1))
}

// C documentation
//
//	/*
//	** Unless an "EXPLAIN QUERY PLAN" command is being processed, this function
//	** is a no-op. Otherwise, it adds a single row of output to the EQP result,
//	** where the caption is of the form:
//	**
//	**   "USE TEMP B-TREE FOR xxx"
//	**
//	** where xxx is one of "DISTINCT", "ORDER BY" or "GROUP BY". Exactly which
//	** is determined by the zUsage argument.
//	*/
func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	_sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+21752, libc.VaList(bp+8, zUsage))
}

/*
** Assign expression b to lvalue a. A second, no-op, version of this macro
** is provided when SQLITE_OMIT_EXPLAIN is defined. This allows the code
** in sqlite3Select() to assign values to structure member variables that
** only exist if SQLITE_OMIT_EXPLAIN is not defined without polluting the
** code with #ifndef directives.
 */

// C documentation
//
//	/*
//	** If expression pExpr is of type TK_SELECT, generate code to evaluate
//	** it. Return the register in which the result is stored (or, if the
//	** sub-select returns more than one column, the first in an array
//	** of registers in which the result is stored).
//	**
//	** If pExpr is not a TK_SELECT expression, return 0.
//	*/
func _exprCodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) {
	var reg int32
	_ = reg
	reg = 0
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_SELECT) {
		reg = _sqlite3CodeSubselect(tls, pParse, pExpr)
	}
	return reg
}

// C documentation
//
//	/*
//	** Generate code that evaluates an AND or OR operator leaving a
//	** boolean result in a register.  pExpr is the AND/OR expression.
//	** Store the result in the "target" register.  Use short-circuit
//	** evaluation to avoid computing both operands, if possible.
//	**
//	** The code generated might require the use of a temporary register.
//	** If it does, then write the number of that temporary register
//	** into *pTmpReg.  If not, leave *pTmpReg unchanged.
//	*/
func _exprCodeTargetAndOr(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32, pTmpReg uintptr) (r int32) {
	var addrSkip, op, r1, r2, regSS, skipOp, v1 int32
	var pAlt, v uintptr
	_, _, _, _, _, _, _, _, _ = addrSkip, op, pAlt, r1, r2, regSS, skipOp, v, v1 /* Branch instruction that skips one of the operands */
	regSS = 0                                                                    /* statement being coded */
	op = int32((*TExpr)(unsafe.Pointer(pExpr)).Fop)
	v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
	pAlt = _sqlite3ExprSimplifiedAndOr(tls, pExpr)
	if pAlt != pExpr {
		r1 = _sqlite3ExprCodeTarget(tls, pParse, pAlt, target)
		_sqlite3VdbeAddOp3(tls, v, int32(OP_And), r1, r1, target)
		return target
	}
	if op == int32(TK_AND) {
		v1 = int32(OP_IfNot)
	} else {
		v1 = int32(OP_If)
	}
	skipOp = v1
	if _exprEvalRhsFirst(tls, pExpr) != 0 {
		/* Compute the right operand first.  Skip the computation of the left
		 ** operand if the right operand fully determines the result */
		v1 = _sqlite3ExprCodeTarget(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, target)
		regSS = v1
		r2 = v1
		addrSkip = _sqlite3VdbeAddOp1(tls, v, skipOp, r2)
		r1 = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, pTmpReg)
	} else {
		/* Compute the left operand first */
		r1 = _sqlite3ExprCodeTarget(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target)
		if (*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pExpr)).FpRight)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) {
			/* Skip over the computation of the right operand if the right
			 ** operand is a subquery and the left operand completely determines
			 ** the result */
			regSS = r1
			addrSkip = _sqlite3VdbeAddOp1(tls, v, skipOp, r1)
		} else {
			v1 = libc.Int32FromInt32(0)
			regSS = v1
			addrSkip = v1
		}
		r2 = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, pTmpReg)
	}
	_sqlite3VdbeAddOp3(tls, v, op, r2, r1, target)
	if addrSkip != 0 {
		_sqlite3VdbeAddOp2(tls, v, int32(OP_Goto), 0, _sqlite3VdbeCurrentAddr(tls, v)+int32(2))
		_sqlite3VdbeJumpHere(tls, v, addrSkip)
		_sqlite3VdbeAddOp3(tls, v, int32(OP_Or), regSS, regSS, target)
	}
	return target
}

// C documentation
//
//	/*
//	** Commute a comparison operator.  Expressions of the form "X op Y"
//	** are converted into "Y op X".
//	*/
func _exprCommute(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r Tu16) {
	var t uintptr
	_ = t
	if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == int32(TK_VECTOR) || int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pExpr)).FpRight)).Fop) == int32(TK_VECTOR) || _sqlite3BinaryCompareCollSeq(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) != _sqlite3BinaryCompareCollSeq(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft) {
		**(**Tu32)(__ccgo_up(pExpr + 4)) ^= uint32(EP_Commuted)
	}
	t = (*TExpr)(unsafe.Pointer(pExpr)).FpRight
	(*TExpr)(unsafe.Pointer(pExpr)).FpRight = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft
	(*TExpr)(unsafe.Pointer(pExpr)).FpLeft = t
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) >= int32(TK_GT) {
		(*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) - int32(TK_GT) ^ int32(2) + int32(TK_GT))
	}
	return uint16(0)
}

// C documentation
//
//	/*
//	** Expression pVar is guaranteed to be an SQL variable. pExpr may be any
//	** type of expression.
//	**
//	** If pExpr is a simple SQL value - an integer, real, string, blob
//	** or NULL value - then the VDBE currently being prepared is configured
//	** to re-prepare each time a new value is bound to variable pVar.
//	**
//	** Additionally, if pExpr is a simple SQL value and the value is the
//	** same as that currently bound to variable pVar, non-zero is returned.
//	** Otherwise, if the values are not the same or if pExpr is not a simple
//	** SQL value, zero is returned.
//	**
//	** If the SQLITE_EnableQPSG flag is set on the database connection, then
//	** this routine always returns false.
//	*/
func _exprCompareVariable(tls *libc.TLS, pParse uintptr, pVar uintptr, pExpr uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iVar, res, v1 int32
	var pL uintptr
	var _ /* pR at bp+0 */ uintptr
	_, _, _, _ = iVar, pL, res, v1
	res = int32(2)
	**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_VARIABLE) && int32((*TExpr)(unsafe.Pointer(pVar)).FiColumn) == int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) {
		return 0
	}
	if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_EnableQPSG) != uint64(0) {
		return int32(2)
	}
	_sqlite3ValueFromExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, uint8(SQLITE_UTF8), uint8(SQLITE_AFF_BLOB), bp)
	if **(**uintptr)(__ccgo_up(bp)) != 0 {
		iVar = int32((*TExpr)(unsafe.Pointer(pVar)).FiColumn)
		_sqlite3VdbeSetVarmask(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, iVar)
		pL = _sqlite3VdbeGetBoundValue(tls, (*TParse)(unsafe.Pointer(pParse)).FpReprepare, iVar, uint8(SQLITE_AFF_BLOB))
		if pL != 0 {
			if Xsqlite3_value_type(tls, pL) == int32(SQLITE_TEXT) {
				Xsqlite3_value_text(tls, pL) /* Make sure the encoding is UTF-8 */
			}
			if _sqlite3MemCompare(tls, pL, **(**uintptr)(__ccgo_up(bp)), uintptr(0)) != 0 {
				v1 = int32(2)
			} else {
				v1 = 0
			}
			res = v1
		}
		_sqlite3ValueFree(tls, **(**uintptr)(__ccgo_up(bp)))
		_sqlite3ValueFree(tls, pL)
	}
	return res
}

// C documentation
//
//	/*
//	** Compute the two operands of a binary operator.
//	**
//	** If either operand contains a subquery, then the code strives to
//	** compute the operand containing the subquery second.  If the other
//	** operand evalutes to NULL, then a jump is made.  The address of the
//	** IsNull operand that does this jump is returned.  The caller can use
//	** this to optimize the computation so as to avoid doing the potentially
//	** expensive subquery.
//	**
//	** If no optimization opportunities exist, return 0.
//	*/
func _exprComputeOperands(tls *libc.TLS, pParse uintptr, pExpr uintptr, pR1 uintptr, pR2 uintptr, pFree1 uintptr, pFree2 uintptr) (r int32) {
	var addrIsNull, r1, r2 int32
	var v uintptr
	_, _, _, _ = addrIsNull, r1, r2, v
	v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
	/*
	 ** If the left operand contains a (possibly expensive) subquery and the
	 ** right operand does not and the right operation might be NULL,
	 ** then compute the right operand first and do an IsNull jump if the
	 ** right operand evalutes to NULL.
	 */
	if _exprEvalRhsFirst(tls, pExpr) != 0 && _sqlite3ExprCanBeNull(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) != 0 {
		r2 = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, pFree2)
		addrIsNull = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2)
	} else {
		r2 = 0 /* Silence a false-positive uninit-var warning in MSVC */
		addrIsNull = 0
	}
	r1 = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, pFree1)
	if addrIsNull == 0 {
		/*
		 ** If the right operand contains a subquery and the left operand does not
		 ** and the left operand might be NULL, then do an IsNull check
		 ** check on the left operand before computing the right operand.
		 */
		if (*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pExpr)).FpRight)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) && _sqlite3ExprCanBeNull(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft) != 0 {
			addrIsNull = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r1)
		}
		r2 = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, pFree2)
	}
	**(**int32)(__ccgo_up(pR1)) = r1
	**(**int32)(__ccgo_up(pR2)) = r2
	return addrIsNull
}

// C documentation
//
//	/*
//	** Return true if it might be advantageous to compute the right operand
//	** of expression pExpr first, before the left operand.
//	**
//	** Normally the left operand is computed before the right operand.  But if
//	** the left operand contains a subquery and the right does not, then it
//	** might be more efficient to compute the right operand first.
//	*/
func _exprEvalRhsFirst(tls *libc.TLS, pExpr uintptr) (r int32) {
	if (*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pExpr)).FpLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) && !((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pExpr)).FpRight)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != libc.Uint32FromInt32(0)) {
		return int32(1)
	} else {
		return 0
	}
	return r
}

// C documentation
//
//	/*
//	** Helper function for exprIsDeterministic().
//	*/
func _exprNodeIsDeterministic(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) {
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_ConstFunc)) != uint32(0)) == 0 {
		(*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0)
		return int32(WRC_Abort)
	}
	return WRC_Continue
}

// C documentation
//
//	/*
//	** Expression p should encode a floating point value between 1.0 and 0.0.
//	** Return 134,217,728 (2^27) times this value.  Or return -1 if p is not
//	** a floating point value between 1.0 and 0.0.
//	*/
func _exprProbability(tls *libc.TLS, p uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* r at bp+0 */ float64
	**(**float64)(__ccgo_up(bp)) = -libc.Float64FromFloat64(1)
	if int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_FLOAT) {
		return -int32(1)
	}
	_sqlite3AtoF(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp)
	if **(**float64)(__ccgo_up(bp)) > float64(1) {
		return -int32(1)
	}
	return int32(float64(**(**float64)(__ccgo_up(bp)) * libc.Float64FromFloat64(1.34217728e+08)))
}

// C documentation
//
//	/*
//	** The database opened by the first argument is an auto-vacuum database
//	** nOrig pages in size containing nFree free pages. Return the expected
//	** size of the database in pages following an auto-vacuum operation.
//	*/
func _finalDbSize(tls *libc.TLS, pBt uintptr, nOrig TPgno, nFree TPgno) (r TPgno) {
	var nEntry int32
	var nFin, nPtrmap TPgno
	_, _, _ = nEntry, nFin, nPtrmap /* Return value */
	nEntry = int32((*TBtShared)(unsafe.Pointer(pBt)).FusableSize / uint32(5))
	nPtrmap = (nFree - nOrig + _ptrmapPageno(tls, pBt, nOrig) + uint32(nEntry)) / uint32(nEntry)
	nFin = nOrig - nFree - nPtrmap
	if nOrig > uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) && nFin < uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) {
		nFin = nFin - 1
	}
	for _ptrmapPageno(tls, pBt, nFin) == nFin || nFin == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) {
		nFin = nFin - 1
	}
	return nFin
}

// C documentation
//
//	/*
//	** Find all terms of COLUMN=VALUE or VALUE=COLUMN in pExpr where VALUE
//	** is a constant expression and where the term must be true because it
//	** is part of the AND-connected terms of the expression.  For each term
//	** found, add it to the pConst structure.
//	*/
func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) {
	var pLeft, pRight uintptr
	_, _ = pLeft, pRight
	if pExpr == uintptr(0) {
		return
	}
	if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&(*TWhereConst)(unsafe.Pointer(pConst)).FmExcludeOn != uint32(0) {
		return
	}
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AND) {
		_findConstInWhere(tls, pConst, (*TExpr)(unsafe.Pointer(pExpr)).FpRight)
		_findConstInWhere(tls, pConst, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft)
		return
	}
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_EQ) {
		return
	}
	pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight
	pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft
	if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 {
		_constInsert(tls, pConst, pRight, pLeft, pExpr)
	}
	if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 {
		_constInsert(tls, pConst, pLeft, pRight, pExpr)
	}
}

// C documentation
//
//	/*
//	** This routine runs after codeDistinct().  It makes necessary
//	** adjustments to the OP_OpenEphemeral opcode that the codeDistinct()
//	** routine made use of.  This processing must be done separately since
//	** sometimes codeDistinct is called before the OP_OpenEphemeral is actually
//	** laid down.
//	**
//	** WHERE_DISTINCT_NOOP:
//	** WHERE_DISTINCT_UNORDERED:
//	**
//	**     No adjustments necessary.  This function is a no-op.
//	**
//	** WHERE_DISTINCT_UNIQUE:
//	**
//	**     The ephemeral table is not needed.  So change the
//	**     OP_OpenEphemeral opcode into an OP_Noop.
//	**
//	** WHERE_DISTINCT_ORDERED:
//	**
//	**     The ephemeral table is not needed.  But we do need register
//	**     iVal to be initialized to NULL.  So change the OP_OpenEphemeral
//	**     into an OP_Null on the iVal register.
//	*/
func _fixDistinctOpenEph(tls *libc.TLS, pParse uintptr, eTnctType int32, iVal int32, iOpenEphAddr int32) {
	var pOp, v uintptr
	_, _ = pOp, v
	if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && (eTnctType == int32(WHERE_DISTINCT_UNIQUE) || eTnctType == int32(WHERE_DISTINCT_ORDERED)) {
		v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
		_sqlite3VdbeChangeToNoop(tls, v, iOpenEphAddr)
		if int32((*TVdbeOp)(unsafe.Pointer(_sqlite3VdbeGetOp(tls, v, iOpenEphAddr+int32(1)))).Fopcode) == int32(OP_Explain) {
			_sqlite3VdbeChangeToNoop(tls, v, iOpenEphAddr+int32(1))
		}
		if eTnctType == int32(WHERE_DISTINCT_ORDERED) {
			/* Change the OP_OpenEphemeral to an OP_Null that sets the MEM_Cleared
			 ** bit on the first register of the previous value.  This will cause the
			 ** OP_Ne added in codeDistinct() to always fail on the first iteration of
			 ** the loop even if the first row is all NULLs.  */
			pOp = _sqlite3VdbeGetOp(tls, v, iOpenEphAddr)
			(*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode = uint8(OP_Null)
			(*TVdbeOp)(unsafe.Pointer(pOp)).Fp1 = int32(1)
			(*TVdbeOp)(unsafe.Pointer(pOp)).Fp2 = iVal
		}
	}
}

// C documentation
//
//	/*
//	** This function is called when a row is inserted into or deleted from the
//	** child table of foreign key constraint pFKey. If an SQL UPDATE is executed
//	** on the child table of pFKey, this function is invoked twice for each row
//	** affected - once to "delete" the old row, and then again to "insert" the
//	** new row.
//	**
//	** Each time it is called, this function generates VDBE code to locate the
//	** row in the parent table that corresponds to the row being inserted into
//	** or deleted from the child table. If the parent row can be found, no
//	** special action is taken. Otherwise, if the parent row can *not* be
//	** found in the parent table:
//	**
//	**   Operation | FK type   | Action taken
//	**   --------------------------------------------------------------------------
//	**   INSERT      immediate   Increment the "immediate constraint counter".
//	**
//	**   DELETE      immediate   Decrement the "immediate constraint counter".
//	**
//	**   INSERT      deferred    Increment the "deferred constraint counter".
//	**
//	**   DELETE      deferred    Decrement the "deferred constraint counter".
//	**
//	** These operations are identified in the comment at the top of this file
//	** (fkey.c) as "I.1" and "D.1".
//	*/
func _fkLookupParent(tls *libc.TLS, pParse uintptr, iDb int32, pTab uintptr, pIdx uintptr, pFKey uintptr, aiCol uintptr, regData int32, nIncr int32, isIgnore int32) {
	var i, iChild, iCur, iJump, iMustBeInt, iOk, iParent, iReg, nCol, regTemp, regTemp1 int32
	var v uintptr
	_, _, _, _, _, _, _, _, _, _, _, _ = i, iChild, iCur, iJump, iMustBeInt, iOk, iParent, iReg, nCol, regTemp, regTemp1, v /* Iterator variable */
	v = _sqlite3GetVdbe(tls, pParse)                                                                                        /* Vdbe to add code to */
	iCur = (*TParse)(unsafe.Pointer(pParse)).FnTab - int32(1)                                                               /* Cursor number to use */
	iOk = _sqlite3VdbeMakeLabel(tls, pParse)                                                                                /* jump here if parent key found */
	/* If nIncr is less than zero, then check at runtime if there are any
	 ** outstanding constraints to resolve. If there are not, there is no need
	 ** to check if deleting this row resolves any outstanding violations.
	 **
	 ** Check if any of the key columns in the child table row are NULL. If
	 ** any are, then the constraint is considered satisfied. No need to
	 ** search for a matching row in the parent table.  */
	if nIncr < 0 {
		_sqlite3VdbeAddOp2(tls, v, int32(OP_FkIfZero), int32((*TFKey)(unsafe.Pointer(pFKey)).FisDeferred), iOk)
	}
	i = 0
	for {
		if !(i < (*TFKey)(unsafe.Pointer(pFKey)).FnCol) {
			break
		}
		iReg = int32(_sqlite3TableColumnToStorage(tls, (*TFKey)(unsafe.Pointer(pFKey)).FpFrom, int16(**(**int32)(__ccgo_up(aiCol + uintptr(i)*4))))) + regData + int32(1)
		_sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), iReg, iOk)
		goto _1
	_1:
		;
		i = i + 1
	}
	if isIgnore == 0 {
		if pIdx == uintptr(0) { /* Address of MustBeInt instruction */
			regTemp = _sqlite3GetTempReg(tls, pParse)
			/* Invoke MustBeInt to coerce the child key value to an integer (i.e.
			 ** apply the affinity of the parent key). If this fails, then there
			 ** is no matching parent key. Before using MustBeInt, make a copy of
			 ** the value. Otherwise, the value inserted into the child key column
			 ** will have INTEGER affinity applied to it, which may not be correct.  */
			_sqlite3VdbeAddOp2(tls, v, int32(OP_SCopy), int32(_sqlite3TableColumnToStorage(tls, (*TFKey)(unsafe.Pointer(pFKey)).FpFrom, int16(**(**int32)(__ccgo_up(aiCol)))))+int32(1)+regData, regTemp)
			iMustBeInt = _sqlite3VdbeAddOp2(tls, v, int32(OP_MustBeInt), regTemp, 0)
			/* If the parent table is the same as the child table, and we are about
			 ** to increment the constraint-counter (i.e. this is an INSERT operation),
			 ** then check if the row being inserted matches itself. If so, do not
			 ** increment the constraint-counter.  */
			if pTab == (*TFKey)(unsafe.Pointer(pFKey)).FpFrom && nIncr == int32(1) {
				_sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), regData, iOk, regTemp)
				_sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL))
			}
			_sqlite3OpenTable(tls, pParse, iCur, iDb, pTab, int32(OP_OpenRead))
			_sqlite3VdbeAddOp3(tls, v, int32(OP_NotExists), iCur, 0, regTemp)
			_sqlite3VdbeGoto(tls, v, iOk)
			_sqlite3VdbeJumpHere(tls, v, _sqlite3VdbeCurrentAddr(tls, v)-int32(2))
			_sqlite3VdbeJumpHere(tls, v, iMustBeInt)
			_sqlite3ReleaseTempReg(tls, pParse, regTemp)
		} else {
			nCol = (*TFKey)(unsafe.Pointer(pFKey)).FnCol
			regTemp1 = _sqlite3GetTempRange(tls, pParse, nCol)
			_sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb)
			_sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx)
			i = 0
			for {
				if !(i < nCol) {
					break
				}
				_sqlite3VdbeAddOp2(tls, v, int32(OP_Copy), int32(_sqlite3TableColumnToStorage(tls, (*TFKey)(unsafe.Pointer(pFKey)).FpFrom, int16(**(**int32)(__ccgo_up(aiCol + uintptr(i)*4)))))+int32(1)+regData, regTemp1+i)
				goto _2
			_2:
				;
				i = i + 1
			}
			/* If the parent table is the same as the child table, and we are about
			 ** to increment the constraint-counter (i.e. this is an INSERT operation),
			 ** then check if the row being inserted matches itself. If so, do not
			 ** increment the constraint-counter.
			 **
			 ** If any of the parent-key values are NULL, then the row cannot match
			 ** itself. So set JUMPIFNULL to make sure we do the OP_Found if any
			 ** of the parent-key values are NULL (at this point it is known that
			 ** none of the child key values are).
			 */
			if pTab == (*TFKey)(unsafe.Pointer(pFKey)).FpFrom && nIncr == int32(1) {
				iJump = _sqlite3VdbeCurrentAddr(tls, v) + nCol + int32(1)
				i = 0
				for {
					if !(i < nCol) {
						break
					}
					iChild = int32(_sqlite3TableColumnToStorage(tls, (*TFKey)(unsafe.Pointer(pFKey)).FpFrom, int16(**(**int32)(__ccgo_up(aiCol + uintptr(i)*4))))) + int32(1) + regData
					iParent = int32(1) + regData
					iParent = iParent + int32(_sqlite3TableColumnToStorage(tls, (*TIndex)(unsafe.Pointer(pIdx)).FpTable, **(**Ti16)(__ccgo_up((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))))
					if int32(**(**Ti16)(__ccgo_up((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) {
						/* The parent key is a composite key that includes the IPK column */
						iParent = regData
					}
					_sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), iChild, iJump, iParent)
					_sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_JUMPIFNULL))
					goto _3
				_3:
					;
					i = i + 1
				}
				_sqlite3VdbeGoto(tls, v, iOk)
			}
			_sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), regTemp1, nCol, 0, _sqlite3IndexAffinityStr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pIdx), nCol)
			_sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iCur, iOk, regTemp1, nCol)
			_sqlite3ReleaseTempRange(tls, pParse, regTemp1, nCol)
		}
	}
	if !((*TFKey)(unsafe.Pointer(pFKey)).FisDeferred != 0) && !((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&libc.Uint64FromInt32(SQLITE_DeferFKs) != 0) && !((*TParse)(unsafe.Pointer(pParse)).FpToplevel != 0) && !((*TParse)(unsafe.Pointer(pParse)).FisMultiWrite != 0) {
		/* Special case: If this is an INSERT statement that will insert exactly
		 ** one row into the table, raise a constraint immediately instead of
		 ** incrementing a counter. This is necessary as the VM code is being
		 ** generated for will not open a statement transaction.  */
		_sqlite3HaltConstraint(tls, pParse, libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(3)<<libc.Int32FromInt32(8), int32(OE_Abort), uintptr(0), int8(-libc.Int32FromInt32(1)), uint8(P5_ConstraintFK))
	} else {
		if nIncr > 0 && int32((*TFKey)(unsafe.Pointer(pFKey)).FisDeferred) == 0 {
			_sqlite3MayAbort(tls, pParse)
		}
		_sqlite3VdbeAddOp2(tls, v, int32(OP_FkCounter), int32((*TFKey)(unsafe.Pointer(pFKey)).FisDeferred), nIncr)
	}
	_sqlite3VdbeResolveLabel(tls, v, iOk)
	_sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCur)
}

const _fmode = 0

const _ftime = 0

const _ftime_s = 0

func _fts5ApiPhraseNextColumn(tls *libc.TLS, pCtx uintptr, pIter uintptr, piCol uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var pConfig, pCsr uintptr
	var _ /* dummy at bp+4 */ int32
	var _ /* iIncr at bp+0 */ int32
	_, _ = pConfig, pCsr
	pCsr = pCtx
	pConfig = (*TFts5Table)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FpConfig
	if (*TFts5Config)(unsafe.Pointer(pConfig)).FeDetail == int32(FTS5_DETAIL_COLUMNS) {
		if (*TFts5PhraseIter)(unsafe.Pointer(pIter)).Fa >= (*TFts5PhraseIter)(unsafe.Pointer(pIter)).Fb {
			**(**int32)(__ccgo_up(piCol)) = -int32(1)
		} else {
			**(**uintptr)(__ccgo_up(pIter)) += uintptr(_sqlite3Fts5GetVarint32(tls, (*TFts5PhraseIter)(unsafe.Pointer(pIter)).Fa, bp))
			**(**int32)(__ccgo_up(piCol)) += **(**int32)(__ccgo_up(bp)) - int32(2)
		}
	} else {
		for int32(1) != 0 {
			if (*TFts5PhraseIter)(unsafe.Pointer(pIter)).Fa >= (*TFts5PhraseIter)(unsafe.Pointer(pIter)).Fb {
				**(**int32)(__ccgo_up(piCol)) = -int32(1)
				return
			}
			if int32(**(**uint8)(__ccgo_up((*TFts5PhraseIter)(unsafe.Pointer(pIter)).Fa))) == int32(0x01) {
				break
			}
			**(**uintptr)(__ccgo_up(pIter)) += uintptr(_sqlite3Fts5GetVarint32(tls, (*TFts5PhraseIter)(unsafe.Pointer(pIter)).Fa, bp+4))
		}
		**(**uintptr)(__ccgo_up(pIter)) += uintptr(int32(1) + _sqlite3Fts5GetVarint32(tls, (*TFts5PhraseIter)(unsafe.Pointer(pIter)).Fa+1, piCol))
	}
}

func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) {
	var i int32
	_ = i
	i = 0
	for {
		if !(**(**int8)(__ccgo_up(zArg + uintptr(i))) != 0) {
			break
		}
		if int32(**(**int8)(__ccgo_up(zArg + uintptr(i))))&int32(0x80) == 0 {
			**(**uint8)(__ccgo_up(p + uintptr(int32(**(**int8)(__ccgo_up(zArg + uintptr(i))))))) = uint8(bTokenChars)
		}
		goto _1
	_1:
		;
		i = i + 1
	}
}

// C documentation
//
//	/*
//	** Tokenize some text using the ascii tokenizer.
//	*/
func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) {
	bp := tls.Alloc(64)
	defer tls.Free(64)
	var a, p, pFold uintptr
	var ie, is, nByte, nFold, rc int32
	var _ /* aFold at bp+0 */ [64]int8
	_, _, _, _, _, _, _, _ = a, ie, is, nByte, nFold, p, pFold, rc
	p = pTokenizer
	rc = SQLITE_OK
	is = 0
	nFold = int32(64)
	pFold = bp
	a = p
	_ = iUnused
	for is < nText && rc == SQLITE_OK {
		/* Skip any leading divider characters. */
		for is < nText && (int32(**(**int8)(__ccgo_up(pText + uintptr(is))))&int32(0x80) == 0 && int32(**(**uint8)(__ccgo_up(a + uintptr(int32(**(**int8)(__ccgo_up(pText + uintptr(is)))))))) == 0) {
			is = is + 1
		}
		if is == nText {
			break
		}
		/* Count the token characters */
		ie = is + int32(1)
		for ie < nText && (int32(**(**int8)(__ccgo_up(pText + uintptr(ie))))&int32(0x80) != 0 || **(**uint8)(__ccgo_up(a + uintptr(int32(**(**int8)(__ccgo_up(pText + uintptr(ie))))))) != 0) {
			ie = ie + 1
		}
		/* Fold to lower case */
		nByte = ie - is
		if nByte > nFold {
			if pFold != bp {
				Xsqlite3_free(tls, pFold)
			}
			pFold = Xsqlite3_malloc64(tls, uint64(int64(nByte)*int64(2)))
			if pFold == uintptr(0) {
				rc = int32(SQLITE_NOMEM)
				break
			}
			nFold = nByte * int32(2)
		}
		_asciiFold(tls, pFold, pText+uintptr(is), nByte)
		/* Invoke the token callback */
		rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie)
		is = ie + int32(1)
	}
	if pFold != bp {
		Xsqlite3_free(tls, pFold)
	}
	if rc == int32(SQLITE_DONE) {
		rc = SQLITE_OK
	}
	return rc
}

/**************************************************************************
** Start of unicode61 tokenizer implementation.
 */

/*
** The following two macros - READ_UTF8 and WRITE_UTF8 - have been copied
** from the sqlite3 source file utf.c. If this file is compiled as part
** of the amalgamation, they are not required.
 */

func _fts5DlidxExtractFirstRowid(tls *libc.TLS, pBuf uintptr) (r Ti64) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iOff int32
	var _ /* iRowid at bp+0 */ Ti64
	_ = iOff
	iOff = int32(1) + int32(_sqlite3Fts5GetVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+1, bp))
	_sqlite3Fts5GetVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr(iOff), bp)
	return **(**Ti64)(__ccgo_up(bp))
}

func _fts5DoclistIterNext(tls *libc.TLS, pIter uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var p uintptr
	var _ /* iDelta at bp+0 */ Ti64
	var _ /* nPos at bp+8 */ int32
	_ = p
	p = (*TFts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist + uintptr((*TFts5DoclistIter)(unsafe.Pointer(pIter)).FnSize) + uintptr((*TFts5DoclistIter)(unsafe.Pointer(pIter)).FnPoslist)
	if p >= (*TFts5DoclistIter)(unsafe.Pointer(pIter)).FaEof {
		(*TFts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist = uintptr(0)
	} else {
		p = p + uintptr(_sqlite3Fts5GetVarint(tls, p, bp))
		**(**Ti64)(__ccgo_up(pIter + 8)) += **(**Ti64)(__ccgo_up(bp))
		/* Read position list size */
		if int32(**(**Tu8)(__ccgo_up(p)))&int32(0x80) != 0 {
			(*TFts5DoclistIter)(unsafe.Pointer(pIter)).FnSize = _sqlite3Fts5GetVarint32(tls, p, bp+8)
			(*TFts5DoclistIter)(unsafe.Pointer(pIter)).FnPoslist = **(**int32)(__ccgo_up(bp + 8)) >> int32(1)
		} else {
			(*TFts5DoclistIter)(unsafe.Pointer(pIter)).FnPoslist = int32(**(**Tu8)(__ccgo_up(p))) >> int32(1)
			(*TFts5DoclistIter)(unsafe.Pointer(pIter)).FnSize = int32(1)
		}
		(*TFts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist = p
		if (*TFts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist+uintptr((*TFts5DoclistIter)(unsafe.Pointer(pIter)).FnPoslist) > (*TFts5DoclistIter)(unsafe.Pointer(pIter)).FaEof {
			(*TFts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist = uintptr(0)
		}
	}
}

func _fts5ExprSynonymAdvanceto(tls *libc.TLS, pTerm uintptr, bDesc int32, piLast uintptr, pRc uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iLast, iRowid Ti64
	var p uintptr
	var rc int32
	var _ /* bEof at bp+0 */ int32
	_, _, _, _ = iLast, iRowid, p, rc
	rc = SQLITE_OK
	iLast = **(**Ti64)(__ccgo_up(piLast))
	**(**int32)(__ccgo_up(bp)) = 0
	p = pTerm
	for {
		if !(rc == SQLITE_OK && p != 0) {
			break
		}
		if int32((*TFts5IndexIter)(unsafe.Pointer((*TFts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FbEof) == 0 {
			iRowid = (*TFts5IndexIter)(unsafe.Pointer((*TFts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FiRowid
			if bDesc == 0 && iLast > iRowid || bDesc != 0 && iLast < iRowid {
				rc = _sqlite3Fts5IterNextFrom(tls, (*TFts5ExprTerm)(unsafe.Pointer(p)).FpIter, iLast)
			}
		}
		goto _1
	_1:
		;
		p = (*TFts5ExprTerm)(unsafe.Pointer(p)).FpSynonym
	}
	if rc != SQLITE_OK {
		**(**int32)(__ccgo_up(pRc)) = rc
		**(**int32)(__ccgo_up(bp)) = int32(1)
	} else {
		**(**Ti64)(__ccgo_up(piLast)) = _fts5ExprSynonymRowid(tls, pTerm, bDesc, bp)
	}
	return **(**int32)(__ccgo_up(bp))
}

// C documentation
//
//	/*
//	** Argument pTerm must be a synonym iterator. Return the current rowid
//	** that it points to.
//	*/
func _fts5ExprSynonymRowid(tls *libc.TLS, pTerm uintptr, bDesc int32, pbEof uintptr) (r Ti64) {
	var bRetValid int32
	var iRet, iRowid Ti64
	var p uintptr
	_, _, _, _ = bRetValid, iRet, iRowid, p
	iRet = 0
	bRetValid = 0
	p = pTerm
	for {
		if !(p != 0) {
			break
		}
		if 0 == int32((*TFts5IndexIter)(unsafe.Pointer((*TFts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FbEof) {
			iRowid = (*TFts5IndexIter)(unsafe.Pointer((*TFts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FiRowid
			if bRetValid == 0 || bDesc != libc.BoolInt32(iRowid < iRet) {
				iRet = iRowid
				bRetValid = int32(1)
			}
		}
		goto _1
	_1:
		;
		p = (*TFts5ExprTerm)(unsafe.Pointer(p)).FpSynonym
	}
	if pbEof != 0 && bRetValid == 0 {
		**(**int32)(__ccgo_up(pbEof)) = int32(1)
	}
	return iRet
}

// C documentation
//
//	/*
//	** Implementation of the fts5() function used by clients to obtain the
//	** API pointer.
//	*/
func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
	var pGlobal, ppApi uintptr
	_, _ = pGlobal, ppApi
	pGlobal = Xsqlite3_user_data(tls, pCtx)
	_ = nArg
	ppApi = Xsqlite3_value_pointer(tls, **(**uintptr)(__ccgo_up(apArg)), __ccgo_ts+41733)
	if ppApi != 0 {
		**(**uintptr)(__ccgo_up(ppApi)) = pGlobal
	}
}

// C documentation
//
//	/*
//	** Argument p points to a buffer containing a varint to be interpreted as a
//	** position list size field. Read the varint and return the number of bytes
//	** read. Before returning, set *pnSz to the number of bytes in the position
//	** list, and *pbDel to true if the delete flag is set, or false otherwise.
//	*/
func _fts5GetPoslistSize(tls *libc.TLS, p uintptr, pnSz uintptr, pbDel uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var n, v1 int32
	var _ /* nSz at bp+0 */ int32
	_, _ = n, v1
	n = 0
	v1 = n
	n = n + 1
	**(**int32)(__ccgo_up(bp)) = int32(**(**Tu8)(__ccgo_up(p + uintptr(v1))))
	if **(**int32)(__ccgo_up(bp))&int32(0x80) != 0 {
		n = n - 1
		n = n + _sqlite3Fts5GetVarint32(tls, p+uintptr(n), bp)
	}
	**(**int32)(__ccgo_up(pnSz)) = **(**int32)(__ccgo_up(bp)) / int32(2)
	**(**int32)(__ccgo_up(pbDel)) = **(**int32)(__ccgo_up(bp)) & int32(0x0001)
	return n
}

func _fts5GetU16(tls *libc.TLS, aIn uintptr) (r Tu16) {
	return uint16(int32(uint16(**(**Tu8)(__ccgo_up(aIn))))<<int32(8) + int32(**(**Tu8)(__ccgo_up(aIn + 1))))
}

func _fts5HashKey(tls *libc.TLS, nSlot int32, p uintptr, n int32) (r uint32) {
	var h uint32
	var i int32
	_, _ = h, i
	h = uint32(13)
	i = n - int32(1)
	for {
		if !(i >= 0) {
			break
		}
		h = h<<int32(3) ^ h ^ uint32(**(**Tu8)(__ccgo_up(p + uintptr(i))))
		goto _1
	_1:
		;
		i = i - 1
	}
	return h % uint32(nSlot)
}

func _fts5HashKey2(tls *libc.TLS, nSlot int32, b Tu8, p uintptr, n int32) (r uint32) {
	var h uint32
	var i int32
	_, _ = h, i
	h = uint32(13)
	i = n - int32(1)
	for {
		if !(i >= 0) {
			break
		}
		h = h<<int32(3) ^ h ^ uint32(**(**Tu8)(__ccgo_up(p + uintptr(i))))
		goto _1
	_1:
		;
		i = i - 1
	}
	h = h<<int32(3) ^ h ^ uint32(b)
	return h % uint32(nSlot)
}

// C documentation
//
//	/*
//	** Append text to the HighlightContext output string - p->zOut. Argument
//	** z points to a buffer containing n bytes of text to append. If n is
//	** negative, everything up until the first '\0' is appended to the output.
//	**
//	** If *pRc is set to any value other than SQLITE_OK when this function is
//	** called, it is a no-op. If an error (i.e. an OOM condition) is encountered,
//	** *pRc is set to an error code before returning.
//	*/
func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	if **(**int32)(__ccgo_up(pRc)) == SQLITE_OK && z != 0 {
		if n < 0 {
			n = int32(libc.Xstrlen(tls, z))
		}
		(*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+38386, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z))
		if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) {
			**(**int32)(__ccgo_up(pRc)) = int32(SQLITE_NOMEM)
		}
	}
}

// C documentation
//
//	/*
//	** A total of nLeaf leaf pages of data has just been flushed to a level-0
//	** segment. This function updates the write-counter accordingly and, if
//	** necessary, performs incremental merge work.
//	**
//	** If an error occurs, set the Fts5Index.rc error code. If an error has
//	** already occurred, this function is a no-op.
//	*/
func _fts5IndexAutomerge(tls *libc.TLS, p uintptr, ppStruct uintptr, nLeaf int32) {
	var nRem, nWork int32
	var nWrite Tu64
	var pStruct uintptr
	_, _, _, _ = nRem, nWork, nWrite, pStruct
	if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FnAutomerge > 0 && **(**uintptr)(__ccgo_up(ppStruct)) != uintptr(0) {
		pStruct = **(**uintptr)(__ccgo_up(ppStruct)) /* Number of leaf pages left to write */
		/* Update the write-counter. While doing so, set nWork. */
		nWrite = (*TFts5Structure)(unsafe.Pointer(pStruct)).FnWriteCounter
		nWork = int32((nWrite+uint64(nLeaf))/uint64((*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit) - nWrite/uint64((*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit))
		**(**Tu64)(__ccgo_up(pStruct + 8)) += uint64(nLeaf)
		nRem = (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit * nWork * (*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel
		_fts5IndexMerge(tls, p, ppStruct, nRem, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FnAutomerge)
	}
}

// C documentation
//
//	/*
//	** pIn is a UTF-8 encoded string, nIn bytes in size. Return the number of
//	** unicode characters in the string.
//	*/
func _fts5IndexCharlen(tls *libc.TLS, pIn uintptr, nIn int32) (r int32) {
	var i, nChar, v1 int32
	_, _, _ = i, nChar, v1
	nChar = 0
	i = 0
	for i < nIn {
		v1 = i
		i = i + 1
		if int32(uint8(**(**int8)(__ccgo_up(pIn + uintptr(v1))))) >= int32(0xc0) {
			for i < nIn && int32(**(**int8)(__ccgo_up(pIn + uintptr(i))))&int32(0xc0) == int32(0x80) {
				i = i + 1
			}
		}
		nChar = nChar + 1
	}
	return nChar
}

func _fts5IndexCorruptIdx(tls *libc.TLS, pIdx uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	(*TFts5Index)(unsafe.Pointer(pIdx)).Frc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
	_sqlite3Fts5ConfigErrmsg(tls, (*TFts5Index)(unsafe.Pointer(pIdx)).FpConfig, __ccgo_ts+40148, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(pIdx)).FpConfig)).FzName))
	return libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
}

/* Size (in bytes) of an Fts5DlidxIter object with up to N levels */

func _fts5IndexCorruptIter(tls *libc.TLS, pIdx uintptr, pIter uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	(*TFts5Index)(unsafe.Pointer(pIdx)).Frc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
	_sqlite3Fts5ConfigErrmsg(tls, (*TFts5Index)(unsafe.Pointer(pIdx)).FpConfig, __ccgo_ts+40096, libc.VaList(bp+8, (*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno, (*TFts5StructureSegment)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpSeg)).FiSegid, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(pIdx)).FpConfig)).FzName))
	return libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
}

func _fts5IndexCorruptRowid(tls *libc.TLS, pIdx uintptr, iRowid Ti64) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	(*TFts5Index)(unsafe.Pointer(pIdx)).Frc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
	_sqlite3Fts5ConfigErrmsg(tls, (*TFts5Index)(unsafe.Pointer(pIdx)).FpConfig, __ccgo_ts+40039, libc.VaList(bp+8, iRowid, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(pIdx)).FpConfig)).FzName))
	return libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
}

// C documentation
//
//	/*
//	** Check that:
//	**
//	**   1) All leaves of pSeg between iFirst and iLast (inclusive) exist and
//	**      contain zero terms.
//	**   2) All leaves of pSeg between iNoRowid and iLast (inclusive) exist and
//	**      contain zero rowids.
//	*/
func _fts5IndexIntegrityCheckEmpty(tls *libc.TLS, p uintptr, pSeg uintptr, iFirst int32, iNoRowid int32, iLast int32) {
	var i int32
	var pLeaf uintptr
	_, _ = i, pLeaf
	/* Now check that the iter.nEmpty leaves following the current leaf
	 ** (a) exist and (b) contain no terms. */
	i = iFirst
	for {
		if !((*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && i <= iLast) {
			break
		}
		pLeaf = _fts5DataRead(tls, p, int64((*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)<<(libc.Int32FromInt32(FTS5_DATA_PAGE_B)+libc.Int32FromInt32(FTS5_DATA_HEIGHT_B)+libc.Int32FromInt32(FTS5_DATA_DLI_B))+int64(libc.Int32FromInt32(0))<<(libc.Int32FromInt32(FTS5_DATA_PAGE_B)+libc.Int32FromInt32(FTS5_DATA_HEIGHT_B))+int64(libc.Int32FromInt32(0))<<libc.Int32FromInt32(FTS5_DATA_PAGE_B)+int64(i))
		if pLeaf != 0 {
			if !((*TFts5Data)(unsafe.Pointer(pLeaf)).FszLeaf >= (*TFts5Data)(unsafe.Pointer(pLeaf)).Fnn) || i >= iNoRowid && 0 != int32(_fts5GetU16(tls, (*TFts5Data)(unsafe.Pointer(pLeaf)).Fp)) {
				_fts5IndexCorruptRowid(tls, p, int64((*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)<<(libc.Int32FromInt32(FTS5_DATA_PAGE_B)+libc.Int32FromInt32(FTS5_DATA_HEIGHT_B)+libc.Int32FromInt32(FTS5_DATA_DLI_B))+int64(libc.Int32FromInt32(0))<<(libc.Int32FromInt32(FTS5_DATA_PAGE_B)+libc.Int32FromInt32(FTS5_DATA_HEIGHT_B))+int64(libc.Int32FromInt32(0))<<libc.Int32FromInt32(FTS5_DATA_PAGE_B)+int64(i))
			}
		}
		_fts5DataRelease(tls, pLeaf)
		goto _1
	_1:
		;
		i = i + 1
	}
}

func _fts5IndexPrepareStmt(tls *libc.TLS, p uintptr, ppStmt uintptr, zSql uintptr) (r int32) {
	var rc, v1 int32
	_, _ = rc, v1
	if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
		if zSql != 0 {
			rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).Fdb, zSql, -int32(1), uint32(libc.Int32FromInt32(SQLITE_PREPARE_PERSISTENT)|libc.Int32FromInt32(SQLITE_PREPARE_NO_VTAB)), ppStmt, uintptr(0))
			/* If this prepare() call fails with SQLITE_ERROR, then one of the
			 ** %_idx or %_data tables has been removed or modified. Call this
			 ** corruption.  */
			if rc == int32(SQLITE_ERROR) {
				v1 = int32(SQLITE_CORRUPT)
			} else {
				v1 = rc
			}
			(*TFts5Index)(unsafe.Pointer(p)).Frc = v1
		} else {
			(*TFts5Index)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM)
		}
	}
	Xsqlite3_free(tls, zSql)
	return (*TFts5Index)(unsafe.Pointer(p)).Frc
}

// C documentation
//
//	/*
//	** Buffer pPg contains a page of a tombstone hash table - one of nPg pages
//	** associated with the same segment. This function adds rowid iRowid to
//	** the hash table. The caller is required to guarantee that there is at
//	** least one free slot on the page.
//	**
//	** If parameter bForce is false and the hash table is deemed to be full
//	** (more than half of the slots are occupied), then non-zero is returned
//	** and iRowid not inserted. Or, if bForce is true or if the hash table page
//	** is not full, iRowid is inserted and zero returned.
//	*/
func _fts5IndexTombstoneAddToPage(tls *libc.TLS, pPg uintptr, bForce int32, nPg int32, iRowid Tu64) (r int32) {
	var aSlot, aSlot1 uintptr
	var iSlot, nCollide, nElem, nSlot, szKey, v1, v2, v3 int32
	_, _, _, _, _, _, _, _, _, _ = aSlot, aSlot1, iSlot, nCollide, nElem, nSlot, szKey, v1, v2, v3
	if int32(**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer(pPg)).Fp))) == int32(4) {
		v1 = int32(4)
	} else {
		v1 = int32(8)
	}
	szKey = v1
	if (*TFts5Data)(unsafe.Pointer(pPg)).Fnn > int32(16) {
		if int32(**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer(pPg)).Fp))) == int32(4) {
			v3 = int32(4)
		} else {
			v3 = int32(8)
		}
		v2 = ((*TFts5Data)(unsafe.Pointer(pPg)).Fnn - int32(8)) / v3
	} else {
		v2 = int32(1)
	}
	nSlot = v2
	nElem = int32(_fts5GetU32(tls, (*TFts5Data)(unsafe.Pointer(pPg)).Fp+4))
	iSlot = int32(iRowid / uint64(nPg) % uint64(nSlot))
	nCollide = nSlot
	if szKey == int32(4) && iRowid > uint64(0xFFFFFFFF) {
		return int32(2)
	}
	if iRowid == uint64(0) {
		**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer(pPg)).Fp + 1)) = uint8(0x01)
		return 0
	}
	if bForce == 0 && nElem >= nSlot/int32(2) {
		return int32(1)
	}
	_fts5PutU32(tls, (*TFts5Data)(unsafe.Pointer(pPg)).Fp+4, uint32(nElem+int32(1)))
	if szKey == int32(4) {
		aSlot = (*TFts5Data)(unsafe.Pointer(pPg)).Fp + 8
		for **(**Tu32)(__ccgo_up(aSlot + uintptr(iSlot)*4)) != 0 {
			iSlot = (iSlot + int32(1)) % nSlot
			v1 = nCollide
			nCollide = nCollide - 1
			if v1 == 0 {
				return 0
			}
		}
		_fts5PutU32(tls, aSlot+uintptr(iSlot)*4, uint32(iRowid))
	} else {
		aSlot1 = (*TFts5Data)(unsafe.Pointer(pPg)).Fp + 8
		for **(**Tu64)(__ccgo_up(aSlot1 + uintptr(iSlot)*8)) != 0 {
			iSlot = (iSlot + int32(1)) % nSlot
			v1 = nCollide
			nCollide = nCollide - 1
			if v1 == 0 {
				return 0
			}
		}
		_fts5PutU64(tls, aSlot1+uintptr(iSlot)*8, iRowid)
	}
	return 0
}

// C documentation
//
//	/*
//	** Query a single tombstone hash table for rowid iRowid. Return true if
//	** it is found or false otherwise. The tombstone hash table is one of
//	** nHashTable tables.
//	*/
func _fts5IndexTombstoneQuery(tls *libc.TLS, pHash uintptr, nHashTable int32, iRowid Tu64) (r int32) {
	var aSlot, aSlot1 uintptr
	var iSlot, nCollide, nSlot, szKey, v1, v2, v3 int32
	_, _, _, _, _, _, _, _, _ = aSlot, aSlot1, iSlot, nCollide, nSlot, szKey, v1, v2, v3
	if int32(**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer(pHash)).Fp))) == int32(4) {
		v1 = int32(4)
	} else {
		v1 = int32(8)
	}
	szKey = v1
	if (*TFts5Data)(unsafe.Pointer(pHash)).Fnn > int32(16) {
		if int32(**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer(pHash)).Fp))) == int32(4) {
			v3 = int32(4)
		} else {
			v3 = int32(8)
		}
		v2 = ((*TFts5Data)(unsafe.Pointer(pHash)).Fnn - int32(8)) / v3
	} else {
		v2 = int32(1)
	}
	nSlot = v2
	iSlot = int32(iRowid / uint64(nHashTable) % uint64(nSlot))
	nCollide = nSlot
	if iRowid == uint64(0) {
		return int32(**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer(pHash)).Fp + 1)))
	} else {
		if szKey == int32(4) {
			aSlot = (*TFts5Data)(unsafe.Pointer(pHash)).Fp + 8
			for **(**Tu32)(__ccgo_up(aSlot + uintptr(iSlot)*4)) != 0 {
				if uint64(_fts5GetU32(tls, aSlot+uintptr(iSlot)*4)) == iRowid {
					return int32(1)
				}
				v1 = nCollide
				nCollide = nCollide - 1
				if v1 == 0 {
					break
				}
				iSlot = (iSlot + int32(1)) % nSlot
			}
		} else {
			aSlot1 = (*TFts5Data)(unsafe.Pointer(pHash)).Fp + 8
			for **(**Tu64)(__ccgo_up(aSlot1 + uintptr(iSlot)*8)) != 0 {
				if _fts5GetU64(tls, aSlot1+uintptr(iSlot)*8) == iRowid {
					return int32(1)
				}
				v1 = nCollide
				nCollide = nCollide - 1
				if v1 == 0 {
					break
				}
				iSlot = (iSlot + int32(1)) % nSlot
			}
		}
	}
	return 0
}

// C documentation
//
//	/*
//	** Run an integrity check on the FTS5 data structures.  Return a string
//	** if anything is found amiss.  Return a NULL pointer if everything is
//	** OK.
//	*/
func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabname uintptr, isQuick int32, pzErr uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var pTab uintptr
	var rc, v1 int32
	_, _, _ = pTab, rc, v1
	pTab = pVtab
	_ = isQuick
	(*TFts5Config)(unsafe.Pointer((*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FpzErrmsg = pzErr
	rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0)
	if **(**uintptr)(__ccgo_up(pzErr)) == uintptr(0) && rc != SQLITE_OK {
		if rc&int32(0xff) == int32(SQLITE_CORRUPT) {
			**(**uintptr)(__ccgo_up(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+41844, libc.VaList(bp+8, zSchema, zTabname))
			if **(**uintptr)(__ccgo_up(pzErr)) != 0 {
				v1 = SQLITE_OK
			} else {
				v1 = int32(SQLITE_NOMEM)
			}
			rc = v1
		} else {
			**(**uintptr)(__ccgo_up(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+41890, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc)))
		}
	} else {
		if rc&int32(0xff) == int32(SQLITE_CORRUPT) {
			rc = SQLITE_OK
		}
	}
	_sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)
	(*TFts5Config)(unsafe.Pointer((*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FpzErrmsg = uintptr(0)
	return rc
}

func _fts5NextRowid(tls *libc.TLS, pBuf uintptr, piOff uintptr, piRowid uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var i int32
	var v1 uintptr
	var _ /* iVal at bp+0 */ Tu64
	_, _ = i, v1
	i = **(**int32)(__ccgo_up(piOff))
	if i >= (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn {
		**(**int32)(__ccgo_up(piOff)) = -int32(1)
	} else {
		**(**int32)(__ccgo_up(piOff)) = i + int32(_sqlite3Fts5GetVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr(i), bp))
		v1 = piRowid
		*(*Ti64)(unsafe.Pointer(v1)) = Ti64(uint64(*(*Ti64)(unsafe.Pointer(v1))) + **(**Tu64)(__ccgo_up(bp)))
	}
}

func _fts5ParseAlloc(tls *libc.TLS, t Tu64) (r uintptr) {
	return Xsqlite3_malloc64(tls, uint64(int64(t)))
}

// C documentation
//
//	/*
//	** Return the size of the prefix, in bytes, that buffer
//	** (pNew/<length-unknown>) shares with buffer (pOld/nOld).
//	**
//	** Buffer (pNew/<length-unknown>) is guaranteed to be greater
//	** than buffer (pOld/nOld).
//	*/
func _fts5PrefixCompress(tls *libc.TLS, nOld int32, pOld uintptr, pNew uintptr) (r int32) {
	var i int32
	_ = i
	i = 0
	for {
		if !(i < nOld) {
			break
		}
		if int32(**(**Tu8)(__ccgo_up(pOld + uintptr(i)))) != int32(**(**Tu8)(__ccgo_up(pNew + uintptr(i)))) {
			break
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	return i
}

func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt uintptr, va uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var ap Tva_list
	var rc int32
	var zSql uintptr
	var _ /* pRet at bp+0 */ uintptr
	_, _, _ = ap, rc, zSql
	**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
	ap = va
	zSql = Xsqlite3_vmprintf(tls, zFmt, ap)
	if zSql == uintptr(0) {
		rc = int32(SQLITE_NOMEM)
	} else {
		rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0))
		if rc != SQLITE_OK {
			_sqlite3Fts5ConfigErrmsg(tls, pConfig, __ccgo_ts+4729, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb)))
		}
		Xsqlite3_free(tls, zSql)
	}
	_ = ap
	**(**uintptr)(__ccgo_up(ppStmt)) = **(**uintptr)(__ccgo_up(bp))
	return rc
}

func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) {
	**(**Tu8)(__ccgo_up(aOut)) = uint8(int32(iVal) >> libc.Int32FromInt32(8))
	**(**Tu8)(__ccgo_up(aOut + 1)) = uint8(int32(iVal) & libc.Int32FromInt32(0xFF))
}

// C documentation
//
//	/*
//	** Fts5SegIter.iLeafOffset currently points to the first byte of a
//	** position-list size field. Read the value of the field and store it
//	** in the following variables:
//	**
//	**   Fts5SegIter.nPos
//	**   Fts5SegIter.bDel
//	**
//	** Leave Fts5SegIter.iLeafOffset pointing to the first byte of the
//	** position list content (if any).
//	*/
func _fts5SegIterLoadNPos(tls *libc.TLS, p uintptr, pIter uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iEod, iOff, v1 int32
	var _ /* nSz at bp+0 */ int32
	_, _, _ = iEod, iOff, v1
	if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
		iOff = int32((*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset) /* Offset to read at */
		if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) {
			if (*TFts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist < (*TFts5Data)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf {
				v1 = (*TFts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist
			} else {
				v1 = (*TFts5Data)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf
			}
			iEod = v1
			(*TFts5SegIter)(unsafe.Pointer(pIter)).FbDel = uint8(0)
			(*TFts5SegIter)(unsafe.Pointer(pIter)).FnPos = int32(1)
			if iOff < iEod && int32(**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp + uintptr(iOff)))) == 0 {
				(*TFts5SegIter)(unsafe.Pointer(pIter)).FbDel = uint8(1)
				iOff = iOff + 1
				if iOff < iEod && int32(**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp + uintptr(iOff)))) == 0 {
					(*TFts5SegIter)(unsafe.Pointer(pIter)).FnPos = int32(1)
					iOff = iOff + 1
				} else {
					(*TFts5SegIter)(unsafe.Pointer(pIter)).FnPos = 0
				}
			}
		} else {
			v1 = iOff
			iOff = iOff + 1
			**(**int32)(__ccgo_up(bp)) = int32(**(**Tu8)(__ccgo_up((*TFts5Data)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp + uintptr(v1))))
			if **(**int32)(__ccgo_up(bp))&int32(0x80) != 0 {
				iOff = iOff - 1
				iOff = iOff + _sqlite3Fts5GetVarint32(tls, (*TFts5Data)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp+uintptr(iOff), bp)
			}
			(*TFts5SegIter)(unsafe.Pointer(pIter)).FbDel = uint8(**(**int32)(__ccgo_up(bp)) & libc.Int32FromInt32(0x0001))
			(*TFts5SegIter)(unsafe.Pointer(pIter)).FnPos = **(**int32)(__ccgo_up(bp)) >> int32(1)
		}
		(*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = int64(iOff)
	}
}

// C documentation
//
//	/*
//	** Implementation of fts5_source_id() function.
//	*/
func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) {
	_ = nArg
	_ = apUnused
	Xsqlite3_result_text(tls, pCtx, __ccgo_ts+41746, -int32(1), uintptr(-libc.Int32FromInt32(1)))
}

// C documentation
//
//	/*
//	** This function is called to handle an FTS INSERT command. In other words,
//	** an INSERT statement of the form:
//	**
//	**     INSERT INTO fts(fts) VALUES($pCmd)
//	**     INSERT INTO fts(fts, rank) VALUES($pCmd, $pVal)
//	**
//	** Argument pVal is the value assigned to column "fts" by the INSERT
//	** statement. This function returns SQLITE_OK if successful, or an SQLite
//	** error code if an error occurs.
//	**
//	** The commands implemented by this function are documented in the "Special
//	** INSERT Directives" section of the documentation. It should be updated if
//	** more commands are added to this function.
//	*/
func _fts5SpecialInsert(tls *libc.TLS, pTab uintptr, zCmd uintptr, pVal uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var bLoadConfig, iArg, nMerge, rc int32
	var pConfig uintptr
	var _ /* bError at bp+0 */ int32
	_, _, _, _, _ = bLoadConfig, iArg, nMerge, pConfig, rc
	pConfig = (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
	rc = SQLITE_OK
	**(**int32)(__ccgo_up(bp)) = 0
	bLoadConfig = 0
	if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+41235, zCmd) {
		if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
			_fts5SetVtabError(tls, pTab, __ccgo_ts+41246, 0)
			rc = int32(SQLITE_ERROR)
		} else {
			rc = _sqlite3Fts5StorageDeleteAll(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
		}
		bLoadConfig = int32(1)
	} else {
		if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+41326, zCmd) {
			if _fts5IsContentless(tls, pTab, int32(1)) != 0 {
				_fts5SetVtabError(tls, pTab, __ccgo_ts+41334, 0)
				rc = int32(SQLITE_ERROR)
			} else {
				rc = _sqlite3Fts5StorageRebuild(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
			}
			bLoadConfig = int32(1)
		} else {
			if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+19874, zCmd) {
				rc = _sqlite3Fts5StorageOptimize(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
			} else {
				if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+41390, zCmd) {
					nMerge = Xsqlite3_value_int(tls, pVal)
					rc = _sqlite3Fts5StorageMerge(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, nMerge)
				} else {
					if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+41396, zCmd) {
						iArg = Xsqlite3_value_int(tls, pVal)
						rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iArg)
					} else {
						if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+41412, zCmd) {
							rc = _sqlite3Fts5FlushToDisk(tls, pTab)
						} else {
							rc = _sqlite3Fts5FlushToDisk(tls, pTab)
							if rc == SQLITE_OK {
								rc = _sqlite3Fts5IndexLoadConfig(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)
							}
							if rc == SQLITE_OK {
								rc = _sqlite3Fts5ConfigSetValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig, zCmd, pVal, bp)
							}
							if rc == SQLITE_OK {
								if **(**int32)(__ccgo_up(bp)) != 0 {
									rc = int32(SQLITE_ERROR)
								} else {
									rc = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, zCmd, pVal, 0)
								}
							}
						}
					}
				}
			}
		}
	}
	if rc == SQLITE_OK && bLoadConfig != 0 {
		(*TFts5Config)(unsafe.Pointer((*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FiCookie = (*TFts5Config)(unsafe.Pointer((*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FiCookie - 1
		rc = _sqlite3Fts5IndexLoadConfig(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)
	}
	return rc
}

// C documentation
//
//	/*
//	** Process a "special" query. A special query is identified as one with a
//	** MATCH expression that begins with a '*' character. The remainder of
//	** the text passed to the MATCH operator are used as  the special query
//	** parameters.
//	*/
func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var n, rc int32
	var z uintptr
	_, _, _ = n, rc, z
	rc = SQLITE_OK /* Return code */
	z = zQuery     /* Number of bytes in text at z */
	for int32(**(**int8)(__ccgo_up(z))) == int32(' ') {
		z = z + 1
	}
	n = 0
	for {
		if !(**(**int8)(__ccgo_up(z + uintptr(n))) != 0 && int32(**(**int8)(__ccgo_up(z + uintptr(n)))) != int32(' ')) {
			break
		}
		goto _1
	_1:
		;
		n = n + 1
	}
	(*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL)
	if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+41056, z, n) {
		(*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex))
	} else {
		if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+6865, z, n) {
			(*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId
		} else {
			/* An unrecognized directive. Return an error message. */
			(*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+41062, libc.VaList(bp+8, n, z))
			rc = int32(SQLITE_ERROR)
		}
	}
	return rc
}

func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) (r int32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var pConfig, zSql uintptr
	var rc int32
	var _ /* pCnt at bp+0 */ uintptr
	_, _, _ = pConfig, rc, zSql
	pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig
	zSql = Xsqlite3_mprintf(tls, __ccgo_ts+43039, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix))
	if zSql == uintptr(0) {
		rc = int32(SQLITE_NOMEM)
	} else {
		**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
		rc = Xsqlite3_prepare_v2(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), bp, uintptr(0))
		if rc == SQLITE_OK {
			if int32(SQLITE_ROW) == Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp))) {
				**(**Ti64)(__ccgo_up(pnRow)) = Xsqlite3_column_int64(tls, **(**uintptr)(__ccgo_up(bp)), 0)
			}
			rc = Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
		}
	}
	Xsqlite3_free(tls, zSql)
	return rc
}

func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail uintptr, zName uintptr) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	if **(**int32)(__ccgo_up(pRc)) == SQLITE_OK {
		**(**int32)(__ccgo_up(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+42683, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail))
	}
}

func _fts5UsePatternMatch(tls *libc.TLS, pConfig uintptr, p uintptr) (r int32) {
	if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FePattern == int32(FTS5_PATTERN_GLOB) && int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(FTS5_PATTERN_GLOB) {
		return int32(1)
	}
	if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FePattern == int32(FTS5_PATTERN_LIKE) && (int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(FTS5_PATTERN_LIKE) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(FTS5_PATTERN_GLOB)) {
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Return the value in pVal interpreted as utf-8 text. Except, if pVal
//	** contains a NULL value, return a pointer to a static string zero
//	** bytes in length instead of a NULL pointer.
//	*/
func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) {
	var zRet, v1 uintptr
	_, _ = zRet, v1
	zRet = Xsqlite3_value_text(tls, pVal)
	if zRet != 0 {
		v1 = zRet
	} else {
		v1 = __ccgo_ts + 1711
	}
	return v1
}

// C documentation
//
//	/*
//	** Implementation of the xBestIndex method.
//	**
//	** Only constraints of the form:
//	**
//	**     term <= ?
//	**     term == ?
//	**     term >= ?
//	**
//	** are interpreted. Less-than and less-than-or-equal are treated
//	** identically, as are greater-than and greater-than-or-equal.
//	*/
func _fts5VocabBestIndexMethod(tls *libc.TLS, pUnused uintptr, pInfo uintptr) (r int32) {
	var i, iTermEq, iTermGe, iTermLe, idxNum, nArg, v2 int32
	var p uintptr
	_, _, _, _, _, _, _, _ = i, iTermEq, iTermGe, iTermLe, idxNum, nArg, p, v2
	iTermEq = -int32(1)
	iTermGe = -int32(1)
	iTermLe = -int32(1)
	idxNum = int32((*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FcolUsed)
	nArg = 0
	_ = pUnused
	i = 0
	for {
		if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint) {
			break
		}
		p = (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraint + uintptr(i)*12
		if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fusable) == 0 {
			goto _1
		}
		if (*Tsqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn == 0 { /* term column */
			if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(SQLITE_INDEX_CONSTRAINT_EQ) {
				iTermEq = i
			}
			if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(SQLITE_INDEX_CONSTRAINT_LE) {
				iTermLe = i
			}
			if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(SQLITE_INDEX_CONSTRAINT_LT) {
				iTermLe = i
			}
			if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(SQLITE_INDEX_CONSTRAINT_GE) {
				iTermGe = i
			}
			if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(SQLITE_INDEX_CONSTRAINT_GT) {
				iTermGe = i
			}
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	if iTermEq >= 0 {
		idxNum = idxNum | int32(FTS5_VOCAB_TERM_EQ)
		nArg = nArg + 1
		v2 = nArg
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(iTermEq)*8))).FargvIndex = v2
		(*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = libc.Float64FromInt32(100)
	} else {
		(*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = libc.Float64FromInt32(1000000)
		if iTermGe >= 0 {
			idxNum = idxNum | int32(FTS5_VOCAB_TERM_GE)
			nArg = nArg + 1
			v2 = nArg
			(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(iTermGe)*8))).FargvIndex = v2
			(*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost / libc.Float64FromInt32(2)
		}
		if iTermLe >= 0 {
			idxNum = idxNum | int32(FTS5_VOCAB_TERM_LE)
			nArg = nArg + 1
			v2 = nArg
			(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(iTermLe)*8))).FargvIndex = v2
			(*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost / libc.Float64FromInt32(2)
		}
	}
	/* This virtual table always delivers results in ascending order of
	 ** the "term" column (column 0). So if the user has requested this
	 ** specifically - "ORDER BY term" or "ORDER BY term ASC" - set the
	 ** sqlite3_index_info.orderByConsumed flag to tell the core the results
	 ** are already in sorted order.  */
	if (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnOrderBy == int32(1) && (**(**Tsqlite3_index_orderby)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FaOrderBy))).FiColumn == 0 && int32((**(**Tsqlite3_index_orderby)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FaOrderBy))).Fdesc) == 0 {
		(*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).ForderByConsumed = int32(1)
	}
	(*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FidxNum = idxNum
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Translate a string containing an fts5vocab table type to an
//	** FTS5_VOCAB_XXX constant. If successful, set *peType to the output
//	** value and return SQLITE_OK. Otherwise, set *pzErr to an error message
//	** and return SQLITE_ERROR.
//	*/
func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var zCopy uintptr
	var _ /* rc at bp+0 */ int32
	_ = zCopy
	**(**int32)(__ccgo_up(bp)) = SQLITE_OK
	zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1))
	if **(**int32)(__ccgo_up(bp)) == SQLITE_OK {
		_sqlite3Fts5Dequote(tls, zCopy)
		if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+43456) == 0 {
			**(**int32)(__ccgo_up(peType)) = FTS5_VOCAB_COL
		} else {
			if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+43460) == 0 {
				**(**int32)(__ccgo_up(peType)) = int32(FTS5_VOCAB_ROW)
			} else {
				if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+43464) == 0 {
					**(**int32)(__ccgo_up(peType)) = int32(FTS5_VOCAB_INSTANCE)
				} else {
					**(**uintptr)(__ccgo_up(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+43473, libc.VaList(bp+16, zCopy))
					**(**int32)(__ccgo_up(bp)) = int32(SQLITE_ERROR)
				}
			}
		}
		Xsqlite3_free(tls, zCopy)
	}
	return **(**int32)(__ccgo_up(bp))
}

// C documentation
//
//	/*
//	** This function is called whenever processing of the doclist for the
//	** last term on leaf page (pWriter->iBtPage) is completed.
//	**
//	** The doclist-index for that term is currently stored in-memory within the
//	** Fts5SegWriter.aDlidx[] array. If it is large enough, this function
//	** writes it out to disk. Or, if it is too small to bother with, discards
//	** it.
//	**
//	** Fts5SegWriter.btterm currently contains the first term on page iBtPage.
//	*/
func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) {
	var bFlag int32
	var z, v1 uintptr
	_, _, _ = bFlag, z, v1
	if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage == 0 {
		return
	}
	bFlag = _fts5WriteFlushDlidx(tls, p, pWriter)
	if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
		if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 {
			v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp
		} else {
			v1 = __ccgo_ts + 1711
		}
		z = v1
		/* The following was already done in fts5WriteInit(): */
		/* sqlite3_bind_int(p->pIdxWriter, 1, pWriter->iSegid); */
		Xsqlite3_bind_blob(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter, int32(2), z, (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn, libc.UintptrFromInt32(0))
		Xsqlite3_bind_int64(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter, int32(3), int64(bFlag)+int64((*TFts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage)<<libc.Int32FromInt32(1))
		Xsqlite3_step(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter)
		(*TFts5Index)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter)
		Xsqlite3_bind_null(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter, int32(2))
	}
	(*TFts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage = 0
}

// C documentation
//
//	/*
//	** The following routine is called if the stack overflows.
//	*/
func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) {
	var pParse uintptr
	_ = pParse
	pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse
	for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack {
		_fts5yy_pop_parser_stack(tls, fts5yypParser)
	}
	/* Here code is inserted which will execute if the parser
	 ** stack every overflows */
	/******** Begin %stack_overflow code ******************************************/
	_sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+38327, 0)
	/******** End %stack_overflow code ********************************************/
	(*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */
}

/*
** Print tracing information for a SHIFT action
 */

// C documentation
//
//	/* The following function deletes the "minor type" or semantic value
//	** associated with a symbol.  The symbol can be either a terminal
//	** or nonterminal. "fts5yymajor" is the symbol code, and "fts5yypminor" is
//	** a pointer to the value to be deleted.  The code used to do the
//	** deletions is derived from the %destructor and/or %token_destructor
//	** directives of the input grammar.
//	*/
func _fts5yy_destructor(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor uint8, fts5yypminor uintptr) {
	var pParse uintptr
	_ = pParse
	pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse
	switch int32(fts5yymajor) {
	/* Here is inserted the actions which take place when a
	 ** terminal or non-terminal is destroyed.  This can happen
	 ** when the symbol is popped from the stack during a
	 ** reduce or during error processing or when a parser is
	 ** being destroyed before it is finished parsing.
	 **
	 ** Note: during a reduce, the only symbols destroyed are those
	 ** which appear on the RHS of the rule, but which are *not* used
	 ** inside the C code.
	 */
	/********* Begin destructor definitions ***************************************/
	case int32(16): /* input */
		_ = pParse
	case int32(17): /* expr */
		fallthrough
	case int32(18): /* cnearset */
		fallthrough
	case int32(19): /* exprlist */
		_sqlite3Fts5ParseNodeFree(tls, *(*uintptr)(unsafe.Pointer(fts5yypminor)))
	case int32(20): /* colset */
		fallthrough
	case int32(21): /* colsetlist */
		Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(fts5yypminor)))
	case int32(22): /* nearset */
		fallthrough
	case int32(23): /* nearphrases */
		_sqlite3Fts5ParseNearsetFree(tls, *(*uintptr)(unsafe.Pointer(fts5yypminor)))
	case int32(24): /* phrase */
		_sqlite3Fts5ParsePhraseFree(tls, *(*uintptr)(unsafe.Pointer(fts5yypminor)))
		break
		/********* End destructor definitions *****************************************/
		fallthrough
	default:
		break /* If no destructor action specified: do nothing */
	}
}

// C documentation
//
//	/*
//	** Find the appropriate action for a parser given the non-terminal
//	** look-ahead token iLookAhead.
//	*/
func _fts5yy_find_reduce_action(tls *libc.TLS, stateno uint8, iLookAhead uint8) (r uint8) {
	var i int32
	_ = i
	i = int32(_fts5yy_reduce_ofst[stateno])
	i = i + int32(iLookAhead)
	return _fts5yy_action[i]
}

// C documentation
//
//	/*
//	** Find the appropriate action for a parser given the terminal
//	** look-ahead token iLookAhead.
//	*/
func _fts5yy_find_shift_action(tls *libc.TLS, iLookAhead uint8, stateno uint8) (r uint8) {
	var i int32
	_ = i
	if int32(stateno) > int32(fts5YY_MAX_SHIFT) {
		return stateno
	}
	for cond := true; cond; cond = int32(1) != 0 {
		i = int32(_fts5yy_shift_ofst[stateno])
		i = i + int32(iLookAhead)
		if int32(_fts5yy_lookahead[i]) != int32(iLookAhead) {
			return _fts5yy_default[stateno]
		} else {
			return _fts5yy_action[i]
		}
	}
	return r
}

// C documentation
//
//	/*
//	** The following code executes when a syntax error first occurs.
//	*/
func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int32, fts5yyminor TFts5Token) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var pParse uintptr
	_ = pParse
	pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse
	/************ Begin %syntax_error code ****************************************/
	_ = fts5yymajor /* Silence a compiler warning */
	_sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+38355, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp))
	/************ End %syntax_error code ******************************************/
	(*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */
}

// C documentation
//
//	/*
//	** Insert all segments and events for polygon pPoly.
//	*/
func _geopolyAddSegments(tls *libc.TLS, p uintptr, pPoly uintptr, side uint8) {
	var i uint32
	var x uintptr
	_, _ = i, x
	i = uint32(0)
	for {
		if !(i < uint32((*TGeoPoly)(unsafe.Pointer(pPoly)).FnVertex)-uint32(1)) {
			break
		}
		x = pPoly + 8 + uintptr(i*uint32(2))*4
		_geopolyAddOneSegment(tls, p, **(**TGeoCoord)(__ccgo_up(x)), **(**TGeoCoord)(__ccgo_up(x + 1*4)), **(**TGeoCoord)(__ccgo_up(x + 2*4)), **(**TGeoCoord)(__ccgo_up(x + 3*4)), side, i)
		goto _1
	_1:
		;
		i = i + 1
	}
	x = pPoly + 8 + uintptr(i*uint32(2))*4
	_geopolyAddOneSegment(tls, p, **(**TGeoCoord)(__ccgo_up(x)), **(**TGeoCoord)(__ccgo_up(x + 1*4)), **(**TGeoCoord)(__ccgo_up(pPoly + 8)), **(**TGeoCoord)(__ccgo_up(pPoly + 8 + 1*4)), side, i)
}

// C documentation
//
//	/*
//	** Rtree virtual table module xBestIndex method. There are three
//	** table scan strategies to choose from (in order from most to
//	** least desirable):
//	**
//	**   idxNum     idxStr        Strategy
//	**   ------------------------------------------------
//	**     1        "rowid"       Direct lookup by rowid.
//	**     2        "rtree"       R-tree overlap query using geopoly_overlap()
//	**     3        "rtree"       R-tree within query using geopoly_within()
//	**     4        "fullscan"    full-table scan.
//	**   ------------------------------------------------
//	*/
func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) {
	var iFuncTerm, iRowidTerm, idxNum, ii int32
	var p uintptr
	_, _, _, _, _ = iFuncTerm, iRowidTerm, idxNum, ii, p
	iRowidTerm = -int32(1)
	iFuncTerm = -int32(1)
	idxNum = 0
	_ = tab
	ii = 0
	for {
		if !(ii < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) {
			break
		}
		p = (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(ii)*12
		if !((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fusable != 0) {
			goto _1
		}
		if (*Tsqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn < 0 && int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == int32(SQLITE_INDEX_CONSTRAINT_EQ) {
			iRowidTerm = ii
			break
		}
		if (*Tsqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn == 0 && int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) >= int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) {
			/* p->op==SQLITE_INDEX_CONSTRAINT_FUNCTION for geopoly_overlap()
			 ** p->op==(SQLITE_INDEX_CONTRAINT_FUNCTION+1) for geopoly_within().
			 ** See geopolyFindFunction() */
			iFuncTerm = ii
			idxNum = int32((*Tsqlite3_index_constraint)(unsafe.Pointer(p)).Fop) - int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + int32(2)
		}
		goto _1
	_1:
		;
		ii = ii + 1
	}
	if iRowidTerm >= 0 {
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1)
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 19186
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1)
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1)
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30)
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1)
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxFlags = int32(SQLITE_INDEX_SCAN_UNIQUE)
		return SQLITE_OK
	}
	if iFuncTerm >= 0 {
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 31210
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1)
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0)
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300)
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(10)
		return SQLITE_OK
	}
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4)
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 31216
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06)
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Report that geopoly_overlap() is an overloaded function suitable
//	** for use in xBestIndex.
//	*/
func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) {
	_ = pVtab
	_ = nArg
	if Xsqlite3_stricmp(tls, zName, __ccgo_ts+31265) == 0 {
		**(**uintptr)(__ccgo_up(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc)
		**(**uintptr)(__ccgo_up(ppArg)) = uintptr(0)
		return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION)
	}
	if Xsqlite3_stricmp(tls, zName, __ccgo_ts+31281) == 0 {
		**(**uintptr)(__ccgo_up(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc)
		**(**uintptr)(__ccgo_up(ppArg)) = uintptr(0)
		return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** SQL function:     geopoly_json(X)
//	**
//	** Interpret X as a polygon and render it as a JSON array
//	** of coordinates.  Or, if X is not a valid polygon, return NULL.
//	*/
func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var db, p, x uintptr
	var i int32
	_, _, _, _ = db, i, p, x
	p = _geopolyFuncParam(tls, context, **(**uintptr)(__ccgo_up(argv)), uintptr(0))
	_ = argc
	if p != 0 {
		db = Xsqlite3_context_db_handle(tls, context)
		x = Xsqlite3_str_new(tls, db)
		Xsqlite3_str_append(tls, x, __ccgo_ts+27911, int32(1))
		i = 0
		for {
			if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) {
				break
			}
			Xsqlite3_str_appendf(tls, x, __ccgo_ts+31074, libc.VaList(bp+8, float64(**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(i*int32(2))*4))), float64(**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(i*int32(2)+int32(1))*4)))))
			goto _1
		_1:
			;
			i = i + 1
		}
		Xsqlite3_str_appendf(tls, x, __ccgo_ts+31085, libc.VaList(bp+8, float64(**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4)))))
		Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free))
		Xsqlite3_free(tls, p)
	}
}

// C documentation
//
//	/* Parse out a number.  Write the value into *pVal if pVal!=0.
//	** return non-zero on success and zero if the next token is not a number.
//	*/
func _geopolyParseNumber(tls *libc.TLS, p uintptr, pVal uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var c int8
	var j, seenDP, seenE, v2 int32
	var z uintptr
	var _ /* r at bp+0 */ float64
	_, _, _, _, _, _ = c, j, seenDP, seenE, z, v2
	c = _geopolySkipSpace(tls, p)
	z = (*TGeoParse)(unsafe.Pointer(p)).Fz
	j = 0
	seenDP = 0
	seenE = 0
	if int32(c) == int32('-') {
		j = int32(1)
		c = int8(**(**uint8)(__ccgo_up(z + uintptr(j))))
	}
	if int32(c) == int32('0') && int32(**(**uint8)(__ccgo_up(z + uintptr(j+int32(1))))) >= int32('0') && int32(**(**uint8)(__ccgo_up(z + uintptr(j+int32(1))))) <= int32('9') {
		return 0
	}
	for {
		c = int8(**(**uint8)(__ccgo_up(z + uintptr(j))))
		if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x04) != 0 {
			goto _1
		}
		if int32(c) == int32('.') {
			if int32(**(**uint8)(__ccgo_up(z + uintptr(j-int32(1))))) == int32('-') {
				return 0
			}
			if seenDP != 0 {
				return 0
			}
			seenDP = int32(1)
			goto _1
		}
		if int32(c) == int32('e') || int32(c) == int32('E') {
			if int32(**(**uint8)(__ccgo_up(z + uintptr(j-int32(1))))) < int32('0') {
				return 0
			}
			if seenE != 0 {
				return -int32(1)
			}
			v2 = libc.Int32FromInt32(1)
			seenE = v2
			seenDP = v2
			c = int8(**(**uint8)(__ccgo_up(z + uintptr(j+int32(1)))))
			if int32(c) == int32('+') || int32(c) == int32('-') {
				j = j + 1
				c = int8(**(**uint8)(__ccgo_up(z + uintptr(j+int32(1)))))
			}
			if int32(c) < int32('0') || int32(c) > int32('9') {
				return 0
			}
			goto _1
		}
		break
		goto _1
	_1:
		;
		j = j + 1
	}
	if int32(**(**uint8)(__ccgo_up(z + uintptr(j-int32(1))))) < int32('0') {
		return 0
	}
	if pVal != 0 {
		_sqlite3AtoF(tls, (*TGeoParse)(unsafe.Pointer(p)).Fz, bp)
		**(**TGeoCoord)(__ccgo_up(pVal)) = float32(**(**float64)(__ccgo_up(bp)))
	}
	**(**uintptr)(__ccgo_up(p)) += uintptr(j)
	return int32(1)
}

// C documentation
//
//	/* Skip whitespace.  Return the next non-whitespace character. */
func _geopolySkipSpace(tls *libc.TLS, p uintptr) (r int8) {
	for _geopolyIsSpace[**(**uint8)(__ccgo_up((*TGeoParse)(unsafe.Pointer(p)).Fz))] != 0 {
		(*TGeoParse)(unsafe.Pointer(p)).Fz = (*TGeoParse)(unsafe.Pointer(p)).Fz + 1
	}
	return int8(**(**uint8)(__ccgo_up((*TGeoParse)(unsafe.Pointer(p)).Fz)))
}

// C documentation
//
//	/*
//	** Get a page from the pager and initialize it.
//	*/
func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bReadOnly int32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var pPage uintptr
	var rc int32
	var _ /* pDbPage at bp+0 */ uintptr
	_, _ = pPage, rc
	if pgno > _btreePagecount(tls, pBt) {
		**(**uintptr)(__ccgo_up(ppPage)) = uintptr(0)
		return _sqlite3CorruptError(tls, int32(75618))
	}
	rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly)
	if rc != 0 {
		**(**uintptr)(__ccgo_up(ppPage)) = uintptr(0)
		return rc
	}
	pPage = _sqlite3PagerGetExtra(tls, **(**uintptr)(__ccgo_up(bp)))
	if int32((*TMemPage)(unsafe.Pointer(pPage)).FisInit) == 0 {
		_btreePageFromDbPage(tls, **(**uintptr)(__ccgo_up(bp)), pgno, pBt)
		rc = _btreeInitPage(tls, pPage)
		if rc != SQLITE_OK {
			_releasePage(tls, pPage)
			**(**uintptr)(__ccgo_up(ppPage)) = uintptr(0)
			return rc
		}
	}
	**(**uintptr)(__ccgo_up(ppPage)) = pPage
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Interpret the given string as an auto-vacuum mode value.
//	**
//	** The following strings, "none", "full" and "incremental" are
//	** acceptable, as are their numeric equivalents: 0, 1 and 2 respectively.
//	*/
func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) {
	var i, v1 int32
	_, _ = i, v1
	if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+9725) {
		return BTREE_AUTOVACUUM_NONE
	}
	if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+20250) {
		return int32(BTREE_AUTOVACUUM_FULL)
	}
	if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+20255) {
		return int32(BTREE_AUTOVACUUM_INCR)
	}
	i = _sqlite3Atoi(tls, z)
	if i >= 0 && i <= int32(2) {
		v1 = i
	} else {
		v1 = 0
	}
	return int32(uint8(v1))
}

// C documentation
//
//	/*
//	** Convert zDate into one or more integers according to the conversion
//	** specifier zFormat.
//	**
//	** zFormat[] contains 4 characters for each integer converted, except for
//	** the last integer which is specified by three characters.  The meaning
//	** of a four-character format specifiers ABCD is:
//	**
//	**    A:   number of digits to convert.  Always "2" or "4".
//	**    B:   minimum value.  Always "0" or "1".
//	**    C:   maximum value, decoded as:
//	**           a:  12
//	**           b:  14
//	**           c:  24
//	**           d:  31
//	**           e:  59
//	**           f:  9999
//	**    D:   the separator character, or \000 to indicate this is the
//	**         last number to convert.
//	**
//	** Example:  To translate an ISO-8601 date YYYY-MM-DD, the format would
//	** be "40f-21a-20c".  The "40f-" indicates the 4-digit year followed by "-".
//	** The "21a-" indicates the 2-digit month followed by "-".  The "20c" indicates
//	** the 2-digit day which is the last integer in the set.
//	**
//	** The function returns the number of successful conversions.
//	*/
func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r int32) {
	var N, min, nextC, v1 int8
	var ap Tva_list
	var cnt, val int32
	var max Tu16
	_, _, _, _, _, _, _, _ = N, ap, cnt, max, min, nextC, val, v1
	cnt = 0
	ap = va
	for cond := true; cond; cond = nextC != 0 {
		N = int8(int32(**(**int8)(__ccgo_up(zFormat))) - int32('0'))
		min = int8(int32(**(**int8)(__ccgo_up(zFormat + 1))) - int32('0'))
		val = 0
		max = _aMx[int32(**(**int8)(__ccgo_up(zFormat + 2)))-int32('a')]
		nextC = **(**int8)(__ccgo_up(zFormat + 3))
		val = 0
		for {
			v1 = N
			N = N - 1
			if !(v1 != 0) {
				break
			}
			if !(int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zDate)))])&libc.Int32FromInt32(0x04) != 0) {
				goto end_getDigits
			}
			val = val*int32(10) + int32(**(**int8)(__ccgo_up(zDate))) - int32('0')
			zDate = zDate + 1
		}
		if val < int32(min) || val > int32(max) || int32(nextC) != 0 && int32(nextC) != int32(**(**int8)(__ccgo_up(zDate))) {
			goto end_getDigits
		}
		**(**int32)(__ccgo_up(libc.VaUintptr(&ap))) = val
		zDate = zDate + 1
		cnt = cnt + 1
		zFormat = zFormat + uintptr(4)
	}
	goto end_getDigits
end_getDigits:
	;
	_ = ap
	return cnt
}

// C documentation
//
//	/*
//	** For a single cell on a btree page, compute the number of bytes of
//	** content (payload) stored on that page.  That is to say, compute the
//	** number of bytes of content not found on overflow pages.
//	*/
func _getLocalPayload(tls *libc.TLS, nUsable int32, flags Tu8, nTotal int32) (r int32) {
	var nLocal, nMaxLocal, nMinLocal int32
	_, _, _ = nLocal, nMaxLocal, nMinLocal
	if int32(flags) == int32(0x0D) { /* Table leaf node */
		nMinLocal = (nUsable-int32(12))*int32(32)/int32(255) - int32(23)
		nMaxLocal = nUsable - int32(35)
	} else { /* Index interior and leaf nodes */
		nMinLocal = (nUsable-int32(12))*int32(32)/int32(255) - int32(23)
		nMaxLocal = (nUsable-int32(12))*int32(64)/int32(255) - int32(23)
	}
	nLocal = nMinLocal + (nTotal-nMinLocal)%(nUsable-int32(4))
	if nLocal > nMaxLocal {
		nLocal = nMinLocal
	}
	return nLocal
}

// C documentation
//
//	/*
//	** Interpret the given string as a locking mode value.
//	*/
func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) {
	if z != 0 {
		if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+5159) {
			return int32(PAGER_LOCKINGMODE_EXCLUSIVE)
		}
		if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+20243) {
			return PAGER_LOCKINGMODE_NORMAL
		}
	}
	return -int32(1)
}

// C documentation
//
//	/*
//	** Return non-zero if the bit in the IntegrityCk.aPgRef[] array that
//	** corresponds to page iPg is already set.
//	*/
func _getPageReferenced(tls *libc.TLS, pCheck uintptr, iPg TPgno) (r int32) {
	return int32(**(**Tu8)(__ccgo_up((*TIntegrityCk)(unsafe.Pointer(pCheck)).FaPgRef + uintptr(iPg/uint32(8))))) & (int32(1) << (iPg & uint32(0x07)))
}

// C documentation
//
//	/*
//	** Interpret the given string as a temp db location. Return 1 for file
//	** backed temporary databases, 2 for the Red-Black tree in memory database
//	** and 0 to use the compile-time default.
//	*/
func _getTempStore(tls *libc.TLS, z uintptr) (r int32) {
	if int32(**(**int8)(__ccgo_up(z))) >= int32('0') && int32(**(**int8)(__ccgo_up(z))) <= int32('2') {
		return int32(**(**int8)(__ccgo_up(z))) - int32('0')
	} else {
		if _sqlite3StrICmp(tls, z, __ccgo_ts+19215) == 0 {
			return int32(1)
		} else {
			if _sqlite3StrICmp(tls, z, __ccgo_ts+20267) == 0 {
				return int32(2)
			} else {
				return 0
			}
		}
	}
	return r
}

func _groupConcatValue(tls *libc.TLS, context uintptr) {
	var pAccum, pGCC, zText uintptr
	_, _, _ = pAccum, pGCC, zText
	pGCC = Xsqlite3_aggregate_context(tls, context, 0)
	if pGCC != 0 {
		pAccum = pGCC
		if int32((*TStrAccum)(unsafe.Pointer(pAccum)).FaccError) == int32(SQLITE_TOOBIG) {
			Xsqlite3_result_error_toobig(tls, context)
		} else {
			if int32((*TStrAccum)(unsafe.Pointer(pAccum)).FaccError) == int32(SQLITE_NOMEM) {
				Xsqlite3_result_error_nomem(tls, context)
			} else {
				if (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum > 0 && (*TStrAccum)(unsafe.Pointer(pAccum)).FnChar == uint32(0) {
					Xsqlite3_result_text(tls, context, __ccgo_ts+1711, int32(1), libc.UintptrFromInt32(0))
				} else {
					zText = Xsqlite3_str_value(tls, pAccum)
					Xsqlite3_result_text(tls, context, zText, int32((*TStrAccum)(unsafe.Pointer(pAccum)).FnChar), uintptr(-libc.Int32FromInt32(1)))
				}
			}
		}
	}
}

// C documentation
//
//	/*
//	** This function is called after transitioning from PAGER_UNLOCK to
//	** PAGER_SHARED state. It tests if there is a hot journal present in
//	** the file-system for the given pager. A hot journal is one that
//	** needs to be played back. According to this function, a hot-journal
//	** file exists if the following criteria are met:
//	**
//	**   * The journal file exists in the file system, and
//	**   * No process holds a RESERVED or greater lock on the database file, and
//	**   * The database file itself is greater than 0 bytes in size, and
//	**   * The first byte of the journal file exists and is not 0x00.
//	**
//	** If the current size of the database file is 0 but a journal file
//	** exists, that is probably an old journal left over from a prior
//	** database with the same name. In this case the journal file is
//	** just deleted using OsDelete, *pExists is set to 0 and SQLITE_OK
//	** is returned.
//	**
//	** This routine does not check if there is a super-journal filename
//	** at the end of the file. If there is, and that super-journal file
//	** does not exist, then the journal file is not really hot. In this
//	** case this routine will return a false-positive. The pager_playback()
//	** routine will discover that the journal file is not really hot and
//	** will not roll it back.
//	**
//	** If a hot-journal file is found to exist, *pExists is set to 1 and
//	** SQLITE_OK returned. If no hot-journal file is present, *pExists is
//	** set to 0 and SQLITE_OK returned. If an IO error occurs while trying
//	** to determine whether or not a hot-journal file exists, the IO error
//	** code is returned and the value of *pExists is undefined.
//	*/
func _hasHotJournal(tls *libc.TLS, pPager uintptr, pExists uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var jrnlOpen, rc int32
	var pVfs uintptr
	var _ /* exists at bp+0 */ int32
	var _ /* f at bp+12 */ int32
	var _ /* first at bp+16 */ Tu8
	var _ /* locked at bp+4 */ int32
	var _ /* nPage at bp+8 */ TPgno
	_, _, _ = jrnlOpen, pVfs, rc
	pVfs = (*TPager)(unsafe.Pointer(pPager)).FpVfs
	rc = SQLITE_OK                        /* Return code */
	**(**int32)(__ccgo_up(bp)) = int32(1) /* True if a journal file is present */
	jrnlOpen = libc.BoolInt32(!!((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != libc.UintptrFromInt32(0)))
	**(**int32)(__ccgo_up(pExists)) = 0
	if !(jrnlOpen != 0) {
		rc = _sqlite3OsAccess(tls, pVfs, (*TPager)(unsafe.Pointer(pPager)).FzJournal, SQLITE_ACCESS_EXISTS, bp)
	}
	if rc == SQLITE_OK && **(**int32)(__ccgo_up(bp)) != 0 {
		**(**int32)(__ccgo_up(bp + 4)) = 0 /* True if some process holds a RESERVED lock */
		/* Race condition here:  Another process might have been holding the
		 ** the RESERVED lock and have a journal open at the sqlite3OsAccess()
		 ** call above, but then delete the journal and drop the lock before
		 ** we get to the following sqlite3OsCheckReservedLock() call.  If that
		 ** is the case, this routine might think there is a hot journal when
		 ** in fact there is none.  This results in a false-positive which will
		 ** be dealt with by the playback routine.  Ticket #3883.
		 */
		rc = _sqlite3OsCheckReservedLock(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, bp+4)
		if rc == SQLITE_OK && !(**(**int32)(__ccgo_up(bp + 4)) != 0) { /* Number of pages in database file */
			rc = _pagerPagecount(tls, pPager, bp+8)
			if rc == SQLITE_OK {
				/* If the database is zero pages in size, that means that either (1) the
				 ** journal is a remnant from a prior database with the same name where
				 ** the database file but not the journal was deleted, or (2) the initial
				 ** transaction that populates a new database is being rolled back.
				 ** In either case, the journal file can be deleted.  However, take care
				 ** not to delete the journal file if it is already open due to
				 ** journal_mode=PERSIST.
				 */
				if **(**TPgno)(__ccgo_up(bp + 8)) == uint32(0) && !(jrnlOpen != 0) {
					_sqlite3BeginBenignMalloc(tls)
					if _pagerLockDb(tls, pPager, int32(RESERVED_LOCK)) == SQLITE_OK {
						_sqlite3OsDelete(tls, pVfs, (*TPager)(unsafe.Pointer(pPager)).FzJournal, 0)
						if !((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0) {
							_pagerUnlockDb(tls, pPager, int32(SHARED_LOCK))
						}
					}
					_sqlite3EndBenignMalloc(tls)
				} else {
					/* The journal file exists and no other connection has a reserved
					 ** or greater lock on the database file. Now check that there is
					 ** at least one non-zero bytes at the start of the journal file.
					 ** If there is, then we consider this journal to be hot. If not,
					 ** it can be ignored.
					 */
					if !(jrnlOpen != 0) {
						**(**int32)(__ccgo_up(bp + 12)) = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_MAIN_JOURNAL)
						rc = _sqlite3OsOpen(tls, pVfs, (*TPager)(unsafe.Pointer(pPager)).FzJournal, (*TPager)(unsafe.Pointer(pPager)).Fjfd, **(**int32)(__ccgo_up(bp + 12)), bp+12)
					}
					if rc == SQLITE_OK {
						**(**Tu8)(__ccgo_up(bp + 16)) = uint8(0)
						rc = _sqlite3OsRead(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, bp+16, int32(1), 0)
						if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<<libc.Int32FromInt32(8) {
							rc = SQLITE_OK
						}
						if !(jrnlOpen != 0) {
							_sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd)
						}
						**(**int32)(__ccgo_up(pExists)) = libc.BoolInt32(int32(**(**Tu8)(__ccgo_up(bp + 16))) != 0)
					} else {
						if rc == int32(SQLITE_CANTOPEN) {
							/* If we cannot open the rollback journal file in order to see if
							 ** it has a zero header, that might be due to an I/O error, or
							 ** it might be due to the race condition described above and in
							 ** ticket #3883.  Either way, assume that the journal is hot.
							 ** This might be a false positive.  But if it is, then the
							 ** automatic journal playback and recovery mechanism will deal
							 ** with it under an EXCLUSIVE lock where we do not need to
							 ** worry so much with race conditions.
							 */
							**(**int32)(__ccgo_up(pExists)) = int32(1)
							rc = SQLITE_OK
						}
					}
				}
			}
		}
	}
	return rc
}

type _heapinfo = T_heapinfo

/*
** Use a macro to replace memcpy() if compiled with SQLITE_INLINE_MEMCPY.
** This allows better measurements of where memcpy() is used when running
** cachegrind.  But this macro version of memcpy() is very slow so it
** should not be used in production.  This is a performance measurement
** hack only.
 */

/*
** If compiling for a processor that lacks floating point support,
** substitute integer for floating-point
 */

/*
** OMIT_TEMPDB is set to 1 if SQLITE_OMIT_TEMPDB is defined, or 0
** afterward. Having this macro allows us to cause the C compiler
** to omit code used by TEMP tables without messy #ifndef statements.
 */

/*
** The "file format" number is an integer that is incremented whenever
** the VDBE-level file format changes.  The following macros define the
** the default file format for new databases and the maximum file format
** that the library can read.
 */

/*
** Determine whether triggers are recursive by default.  This can be
** changed at run-time using a pragma.
 */

/*
** Provide a default value for SQLITE_TEMP_STORE in case it is not specified
** on the command-line
 */

/*
** If no value has been provided for SQLITE_MAX_WORKER_THREADS, or if
** SQLITE_TEMP_STORE is set to 3 (never use temporary files), set it
** to zero.
 */

/*
** The default initial allocation for the pagecache when using separate
** pagecaches for each database connection.  A positive number is the
** number of pages.  A negative number N translations means that a buffer
** of -1024*N bytes is allocated and used for as many pages as it will hold.
**
** The default value of "20" was chosen to minimize the run-time of the
** speedtest1 test program with options: --shrink-memory --reprepare
 */

/*
** Default value for the SQLITE_CONFIG_SORTERREF_SIZE option.
 */

/*
** The compile-time options SQLITE_MMAP_READWRITE and
** SQLITE_ENABLE_BATCH_ATOMIC_WRITE are not compatible with one another.
** You must choose one or the other (or neither) but not both.
 */

/*
** GCC does not define the offsetof() macro so we'll have to do it
** ourselves.
 */

/*
** sizeof64() is like sizeof(), but always returns a 64-bit value, even
** on 32-bit builds. This can help to avoid overflow by ensuring 64-bit
** arithmetic is used consistently in both 32-bit and 64-bit builds.
 */

/*
** Work around C99 "flex-array" syntax for pre-C99 compilers, so as
** to avoid complaints from -fsanitize=strict-bounds.
 */

/*
** Macros to compute minimum and maximum of two numbers.
 */

/*
** Swap two objects of type TYPE.
 */

/*
** Check to see if this machine uses EBCDIC.  (Yes, believe it or
** not, there are still machines out there that use EBCDIC.)
 */

const _hypotl = 0

// C documentation
//
//	/*
//	** The first parameter is a pointer to an output buffer. The second
//	** parameter is a pointer to an integer that contains the offset at
//	** which to write into the output buffer. This function copies the
//	** nul-terminated string pointed to by the third parameter, zSignedIdent,
//	** to the specified offset in the buffer and updates *pIdx to refer
//	** to the first byte after the last byte written before returning.
//	**
//	** If the string zSignedIdent consists entirely of alphanumeric
//	** characters, does not begin with a digit and is not an SQL keyword,
//	** then it is copied to the output buffer exactly as it is. Otherwise,
//	** it is quoted using double-quotes.
//	*/
func _identPut(tls *libc.TLS, z uintptr, pIdx uintptr, zSignedIdent uintptr) {
	var i, j, needQuote, v2 int32
	var zIdent uintptr
	_, _, _, _, _ = i, j, needQuote, zIdent, v2
	zIdent = zSignedIdent
	i = **(**int32)(__ccgo_up(pIdx))
	j = 0
	for {
		if !(**(**uint8)(__ccgo_up(zIdent + uintptr(j))) != 0) {
			break
		}
		if !(int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(zIdent + uintptr(j)))])&libc.Int32FromInt32(0x06) != 0) && int32(**(**uint8)(__ccgo_up(zIdent + uintptr(j)))) != int32('_') {
			break
		}
		goto _1
	_1:
		;
		j = j + 1
	}
	needQuote = libc.BoolInt32(int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(zIdent))])&int32(0x04) != 0 || _sqlite3KeywordCode(tls, zIdent, j) != int32(TK_ID) || int32(**(**uint8)(__ccgo_up(zIdent + uintptr(j)))) != 0 || j == 0)
	if needQuote != 0 {
		v2 = i
		i = i + 1
		**(**int8)(__ccgo_up(z + uintptr(v2))) = int8('"')
	}
	j = 0
	for {
		if !(**(**uint8)(__ccgo_up(zIdent + uintptr(j))) != 0) {
			break
		}
		v2 = i
		i = i + 1
		**(**int8)(__ccgo_up(z + uintptr(v2))) = int8(**(**uint8)(__ccgo_up(zIdent + uintptr(j))))
		if int32(**(**uint8)(__ccgo_up(zIdent + uintptr(j)))) == int32('"') {
			v2 = i
			i = i + 1
			**(**int8)(__ccgo_up(z + uintptr(v2))) = int8('"')
		}
		goto _3
	_3:
		;
		j = j + 1
	}
	if needQuote != 0 {
		v2 = i
		i = i + 1
		**(**int8)(__ccgo_up(z + uintptr(v2))) = int8('"')
	}
	**(**int8)(__ccgo_up(z + uintptr(i))) = 0
	**(**int32)(__ccgo_up(pIdx)) = i
}

// C documentation
//
//	/*
//	** Compare the "idx"-th cell on the page pPage against the key
//	** pointing to by pIdxKey using xRecordCompare.  Return negative or
//	** zero if the cell is less than or equal pIdxKey.  Return positive
//	** if unknown.
//	**
//	**    Return value negative:     Cell at pCur[idx] less than pIdxKey
//	**
//	**    Return value is zero:      Cell at pCur[idx] equals pIdxKey
//	**
//	**    Return value positive:     Nothing is known about the relationship
//	**                               of the cell at pCur[idx] and pIdxKey.
//	**
//	** This routine is part of an optimization.  It is always safe to return
//	** a positive value as that will cause the optimization to be skipped.
//	*/
func _indexCellCompare(tls *libc.TLS, pPage uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) {
	var c, nCell, v1 int32
	var pCell uintptr
	var v2 bool
	_, _, _, _, _ = c, nCell, pCell, v1, v2 /* Size of the pCell cell in bytes */
	pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaDataOfst + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*idx))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*idx) + 1)))))
	nCell = int32(**(**Tu8)(__ccgo_up(pCell)))
	if nCell <= int32((*TMemPage)(unsafe.Pointer(pPage)).Fmax1bytePayload) {
		/* This branch runs if the record-size field of the cell is a
		 ** single byte varint and the record fits entirely on the main
		 ** b-tree page.  */
		if pCell+uintptr(nCell) >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd {
			return int32(99)
		}
		c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey)
	} else {
		if v2 = !(int32(**(**Tu8)(__ccgo_up(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 {
			v1 = nCell&libc.Int32FromInt32(0x7f)<<libc.Int32FromInt32(7) + int32(**(**Tu8)(__ccgo_up(pCell + 1)))
			nCell = v1
		}
		if v2 && v1 <= int32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
			/* The record-size field is a 2 byte varint and the record
			 ** fits entirely on the main b-tree page.  */
			if pCell+uintptr(nCell) >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd {
				return int32(99)
			}
			c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+2, pIdxKey)
		} else {
			/* If the record extends into overflow pages, do not attempt
			 ** the optimization. */
			c = int32(99)
		}
	}
	return c
}

const _inline = 0

type _ino_t = T_ino_t

type _invalid_parameter_handler = T_invalid_parameter_handler

// C documentation
//
//	/*
//	** This function is called before modifying the contents of a table
//	** to invalidate any incrblob cursors that are open on the
//	** row or one of the rows being modified.
//	**
//	** If argument isClearTable is true, then the entire contents of the
//	** table is about to be deleted. In this case invalidate all incrblob
//	** cursors open on any row within the table with root-page pgnoRoot.
//	**
//	** Otherwise, if argument isClearTable is false, then the row with
//	** rowid iRow is being replaced or deleted. In this case invalidate
//	** only those incrblob cursors open on that specific row.
//	*/
func _invalidateIncrblobCursors(tls *libc.TLS, pBtree uintptr, pgnoRoot TPgno, iRow Ti64, isClearTable int32) {
	var p uintptr
	_ = p
	(*TBtree)(unsafe.Pointer(pBtree)).FhasIncrblobCur = uint8(0)
	p = (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(pBtree)).FpBt)).FpCursor
	for {
		if !(p != 0) {
			break
		}
		if int32((*TBtCursor)(unsafe.Pointer(p)).FcurFlags)&int32(BTCF_Incrblob) != 0 {
			(*TBtree)(unsafe.Pointer(pBtree)).FhasIncrblobCur = uint8(1)
			if (*TBtCursor)(unsafe.Pointer(p)).FpgnoRoot == pgnoRoot && (isClearTable != 0 || (*TBtCursor)(unsafe.Pointer(p)).Finfo.FnKey == iRow) {
				(*TBtCursor)(unsafe.Pointer(p)).FeState = uint8(CURSOR_INVALID)
			}
		}
		goto _1
	_1:
		;
		p = (*TBtCursor)(unsafe.Pointer(p)).FpNext
	}
}

// C documentation
//
//	/*
//	** Invoke the profile callback.  This routine is only called if we already
//	** know that the profile callback is defined and needs to be invoked.
//	*/
func _invokeProfileCallback(tls *libc.TLS, db uintptr, p uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* iElapse at bp+8 */ Tsqlite3_int64
	var _ /* iNow at bp+0 */ Tsqlite3_int64
	_sqlite3OsCurrentTimeInt64(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, bp)
	**(**Tsqlite3_int64)(__ccgo_up(bp + 8)) = (**(**Tsqlite3_int64)(__ccgo_up(bp)) - (*TVdbe)(unsafe.Pointer(p)).FstartTime) * int64(1000000)
	if (*Tsqlite3)(unsafe.Pointer(db)).FxProfile != 0 {
		(*(*func(*libc.TLS, uintptr, uintptr, Tu64))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxProfile})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg, (*TVdbe)(unsafe.Pointer(p)).FzSql, uint64(**(**Tsqlite3_int64)(__ccgo_up(bp + 8))))
	}
	if int32((*Tsqlite3)(unsafe.Pointer(db)).FmTrace)&int32(SQLITE_TRACE_PROFILE) != 0 {
		(*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_PROFILE), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, bp+8)
	}
	(*TVdbe)(unsafe.Pointer(p)).FstartTime = 0
}

/*
** The checkProfileCallback(DB,P) macro checks to see if a profile callback
** is needed, and it invokes the callback if it is needed.
 */

const _iob = 0

type _iobuf = T_iobuf

// C documentation
//
//	/*
//	** Parameter zName is the name of a table that is about to be altered
//	** (either with ALTER TABLE ... RENAME TO or ALTER TABLE ... ADD COLUMN).
//	** If the table is a system table, this function leaves an error message
//	** in pParse->zErr (system tables may not be altered) and returns non-zero.
//	**
//	** Or, if zName is not a system table, zero is returned.
//	*/
func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7973, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9860, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName))
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Return true if the pExpr term from the RETURNING clause argument
//	** list is of the form "*".  Raise an error if the terms if of the
//	** form "table.*".
//	*/
func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) {
	if int32((*TExpr)(unsafe.Pointer(pTerm)).Fop) == int32(TK_ASTERISK) {
		return int32(1)
	}
	if int32((*TExpr)(unsafe.Pointer(pTerm)).Fop) != int32(TK_DOT) {
		return 0
	}
	if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) {
		return 0
	}
	_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23756, 0)
	return int32(1)
}

// C documentation
//
//	/*
//	** Return true if pTerm is a virtual table LIMIT or OFFSET term.
//	*/
func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) {
	return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET))
}

// C documentation
//
//	/*
//	** Return true if z[] begins with N hexadecimal digits, and write
//	** a decoding of those digits into *pVal.  Or return false if any
//	** one of the first N characters in z[] is not a hexadecimal digit.
//	*/
func _isNHex(tls *libc.TLS, z uintptr, N int32, pVal uintptr) (r int32) {
	var i int32
	var v Tu32
	_, _ = i, v
	v = uint32(0)
	i = 0
	for {
		if !(i < N) {
			break
		}
		if !(int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(z + uintptr(i))))])&libc.Int32FromInt32(0x08) != 0) {
			return 0
		}
		v = v<<libc.Int32FromInt32(4) + uint32(_sqlite3HexToInt(tls, int32(**(**int8)(__ccgo_up(z + uintptr(i))))))
		goto _1
	_1:
		;
		i = i + 1
	}
	**(**Tu32)(__ccgo_up(pVal)) = v
	return int32(1)
}

// C documentation
//
//	/*
//	** Parameter pTab is the subject of an ALTER TABLE ... RENAME COLUMN
//	** command. This function checks if the table is a view or virtual
//	** table (columns of views or virtual tables may not be renamed). If so,
//	** it loads an error message into pParse and returns non-zero.
//	**
//	** Or, if pTab is not a view or virtual table, zero is returned.
//	*/
func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iOp int32) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var azMsg [3]uintptr
	var zType uintptr
	_, _ = azMsg, zType
	zType = uintptr(0)
	if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) {
		zType = __ccgo_ts + 12332
	}
	if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) {
		zType = __ccgo_ts + 12337
	}
	if zType != 0 {
		azMsg = [3]uintptr{
			0: __ccgo_ts + 12351,
			1: __ccgo_ts + 12369,
			2: __ccgo_ts + 12386,
		}
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12406, libc.VaList(bp+8, azMsg[iOp], zType, (*TTable)(unsafe.Pointer(pTab)).FzName))
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Return TRUE (non-zero) if zTab is a valid name for the schema table pTab.
//	*/
func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, zDb uintptr) (r int32) {
	var zLegacy uintptr
	_ = zLegacy
	if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+7973, int32(7)) != 0 {
		return 0
	}
	zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName
	if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+7981+7) == 0 {
		if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+8000+7) == 0 {
			return int32(1)
		}
		if zDb == uintptr(0) {
			return 0
		}
		if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7501+7) == 0 {
			return int32(1)
		}
		if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+8019+7) == 0 {
			return int32(1)
		}
	} else {
		if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+8019+7) == 0 {
			return int32(1)
		}
	}
	return 0
}

// C documentation
//
//	/*
//	** Return the offset of the sector boundary at or immediately
//	** following the value in pPager->journalOff, assuming a sector
//	** size of pPager->sectorSize bytes.
//	**
//	** i.e for a sector size of 512:
//	**
//	**   Pager.journalOff          Return value
//	**   ---------------------------------------
//	**   0                         0
//	**   512                       512
//	**   100                       512
//	**   2000                      2048
//	**
//	*/
func _journalHdrOffset(tls *libc.TLS, pPager uintptr) (r Ti64) {
	var c, offset Ti64
	_, _ = c, offset
	offset = 0
	c = (*TPager)(unsafe.Pointer(pPager)).FjournalOff
	if c != 0 {
		offset = ((c-int64(1))/int64((*TPager)(unsafe.Pointer(pPager)).FsectorSize) + int64(1)) * int64((*TPager)(unsafe.Pointer(pPager)).FsectorSize)
	}
	return offset
}

// C documentation
//
//	/*
//	** Return the number of bytes of JSON5 whitespace at the beginning of
//	** the input string z[].
//	**
//	** JSON5 whitespace consists of any of the following characters:
//	**
//	**    Unicode  UTF-8         Name
//	**    U+0009   09            horizontal tab
//	**    U+000a   0a            line feed
//	**    U+000b   0b            vertical tab
//	**    U+000c   0c            form feed
//	**    U+000d   0d            carriage return
//	**    U+0020   20            space
//	**    U+00a0   c2 a0         non-breaking space
//	**    U+1680   e1 9a 80      ogham space mark
//	**    U+2000   e2 80 80      en quad
//	**    U+2001   e2 80 81      em quad
//	**    U+2002   e2 80 82      en space
//	**    U+2003   e2 80 83      em space
//	**    U+2004   e2 80 84      three-per-em space
//	**    U+2005   e2 80 85      four-per-em space
//	**    U+2006   e2 80 86      six-per-em space
//	**    U+2007   e2 80 87      figure space
//	**    U+2008   e2 80 88      punctuation space
//	**    U+2009   e2 80 89      thin space
//	**    U+200a   e2 80 8a      hair space
//	**    U+2028   e2 80 a8      line separator
//	**    U+2029   e2 80 a9      paragraph separator
//	**    U+202f   e2 80 af      narrow no-break space (NNBSP)
//	**    U+205f   e2 81 9f      medium mathematical space (MMSP)
//	**    U+3000   e3 80 80      ideographical space
//	**    U+FEFF   ef bb bf      byte order mark
//	**
//	** In addition, comments between '/', '*' and '*', '/' and
//	** from '/', '/' to end-of-line are also considered to be whitespace.
//	*/
func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) {
	var c, v3 int8
	var c1 Tu8
	var j, j1, n int32
	var z uintptr
	_, _, _, _, _, _, _ = c, c1, j, j1, n, z, v3
	n = 0
	z = zIn
	for int32(1) != 0 {
		switch int32(**(**Tu8)(__ccgo_up(z + uintptr(n)))) {
		case int32(0x09):
			fallthrough
		case int32(0x0a):
			fallthrough
		case int32(0x0b):
			fallthrough
		case int32(0x0c):
			fallthrough
		case int32(0x0d):
			fallthrough
		case int32(0x20):
			n = n + 1
		case int32('/'):
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(1))))) == int32('*') && int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(2))))) != 0 {
				j = n + int32(3)
				for {
					if !(int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) != int32('/') || int32(**(**Tu8)(__ccgo_up(z + uintptr(j-int32(1))))) != int32('*')) {
						break
					}
					if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == 0 {
						goto whitespace_done
					}
					goto _1
				_1:
					;
					j = j + 1
				}
				n = j + int32(1)
				break
			} else {
				if int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(1))))) == int32('/') {
					j1 = n + int32(2)
					for {
						v3 = int8(**(**Tu8)(__ccgo_up(z + uintptr(j1))))
						c = v3
						if !(int32(v3) != 0) {
							break
						}
						if int32(c) == int32('\n') || int32(c) == int32('\r') {
							break
						}
						if int32(0xe2) == int32(uint8(c)) && int32(0x80) == int32(**(**Tu8)(__ccgo_up(z + uintptr(j1+int32(1))))) && (int32(0xa8) == int32(**(**Tu8)(__ccgo_up(z + uintptr(j1+int32(2))))) || int32(0xa9) == int32(**(**Tu8)(__ccgo_up(z + uintptr(j1+int32(2)))))) {
							j1 = j1 + int32(2)
							break
						}
						goto _2
					_2:
						;
						j1 = j1 + 1
					}
					n = j1
					if **(**Tu8)(__ccgo_up(z + uintptr(n))) != 0 {
						n = n + 1
					}
					break
				}
			}
			goto whitespace_done
		case int32(0xc2):
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(1))))) == int32(0xa0) {
				n = n + int32(2)
				break
			}
			goto whitespace_done
		case int32(0xe1):
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(1))))) == int32(0x9a) && int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(2))))) == int32(0x80) {
				n = n + int32(3)
				break
			}
			goto whitespace_done
		case int32(0xe2):
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(1))))) == int32(0x80) {
				c1 = **(**Tu8)(__ccgo_up(z + uintptr(n+int32(2))))
				if int32(c1) < int32(0x80) {
					goto whitespace_done
				}
				if int32(c1) <= int32(0x8a) || int32(c1) == int32(0xa8) || int32(c1) == int32(0xa9) || int32(c1) == int32(0xaf) {
					n = n + int32(3)
					break
				}
			} else {
				if int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(1))))) == int32(0x81) && int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(2))))) == int32(0x9f) {
					n = n + int32(3)
					break
				}
			}
			goto whitespace_done
		case int32(0xe3):
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(1))))) == int32(0x80) && int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(2))))) == int32(0x80) {
				n = n + int32(3)
				break
			}
			goto whitespace_done
		case int32(0xef):
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(1))))) == int32(0xbb) && int32(**(**Tu8)(__ccgo_up(z + uintptr(n+int32(2))))) == int32(0xbf) {
				n = n + int32(3)
				break
			}
			goto whitespace_done
		default:
			goto whitespace_done
		}
	}
	goto whitespace_done
whitespace_done:
	;
	return n
	return r
}

// C documentation
//
//	/* True if the string is all alphanumerics and underscores */
func _jsonAllAlphanum(tls *libc.TLS, z uintptr, n int32) (r int32) {
	var i int32
	_ = i
	i = 0
	for {
		if !(i < n && (int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(z + uintptr(i))))])&int32(0x06) != 0 || int32(**(**int8)(__ccgo_up(z + uintptr(i)))) == int32('_'))) {
			break
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	return libc.BoolInt32(i == n)
}

// C documentation
//
//	/*
//	** If pArg is a blob that seems like a JSONB blob, then initialize
//	** p to point to that JSONB and return TRUE.  If pArg does not seem like
//	** a JSONB blob, then return FALSE.
//	**
//	** For small BLOBs (having no more than 7 bytes of payload) a full
//	** validity check is done.  So for small BLOBs this routine only returns
//	** true if the value is guaranteed to be a valid JSONB.  For larger BLOBs
//	** (8 byte or more of payload) only the size of the outermost element is
//	** checked to verify that the BLOB is superficially valid JSONB.
//	**
//	** A full JSONB validation is done on smaller BLOBs because those BLOBs might
//	** also be text JSON that has been incorrectly cast into a BLOB.
//	** (See tag-20240123-a and https://sqlite.org/forum/forumpost/012136abd5)
//	** If the BLOB is 9 bytes are larger, then it is not possible for the
//	** superficial size check done here to pass if the input is really text
//	** JSON so we do not need to look deeper in that case.
//	**
//	** Why we only need to do full JSONB validation for smaller BLOBs:
//	**
//	** The first byte of valid JSON text must be one of: '{', '[', '"', ' ', '\n',
//	** '\r', '\t', '-', or a digit '0' through '9'.  Of these, only a subset
//	** can also be the first byte of JSONB:  '{', '[', and digits '3'
//	** through '9'.  In every one of those cases, the payload size is 7 bytes
//	** or less.  So if we do full JSONB validation for every BLOB where the
//	** payload is less than 7 bytes, we will never get a false positive for
//	** JSONB on an input that is really text JSON.
//	*/
func _jsonArgIsJsonb(tls *libc.TLS, pArg uintptr, p uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var c, v1 Tu8
	var n, v3 Tu32
	var v2, v4 bool
	var _ /* sz at bp+0 */ Tu32
	_, _, _, _, _, _ = c, n, v1, v2, v3, v4
	**(**Tu32)(__ccgo_up(bp)) = uint32(0)
	if Xsqlite3_value_type(tls, pArg) != int32(SQLITE_BLOB) {
		return 0
	}
	(*TJsonParse)(unsafe.Pointer(p)).FaBlob = Xsqlite3_value_blob(tls, pArg)
	(*TJsonParse)(unsafe.Pointer(p)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg))
	if v2 = (*TJsonParse)(unsafe.Pointer(p)).FnBlob > uint32(0) && (*TJsonParse)(unsafe.Pointer(p)).FaBlob != uintptr(0); v2 {
		v1 = **(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(p)).FaBlob))
		c = v1
	}
	if v4 = v2 && int32(v1)&int32(0x0f) <= int32(JSONB_OBJECT); v4 {
		v3 = _jsonbPayloadSize(tls, p, uint32(0), bp)
		n = v3
	}
	if v4 && v3 > uint32(0) && **(**Tu32)(__ccgo_up(bp))+n == (*TJsonParse)(unsafe.Pointer(p)).FnBlob && (int32(c)&int32(0x0f) > int32(JSONB_FALSE) || **(**Tu32)(__ccgo_up(bp)) == uint32(0)) && (**(**Tu32)(__ccgo_up(bp)) > uint32(7) || int32(c) != int32(0x7b) && int32(c) != int32(0x5b) && !(int32(_sqlite3CtypeMap[c])&libc.Int32FromInt32(0x04) != 0) || _jsonbValidityCheck(tls, p, uint32(0), (*TJsonParse)(unsafe.Pointer(p)).FnBlob, uint32(1)) == uint32(0)) {
		return int32(1)
	}
	(*TJsonParse)(unsafe.Pointer(p)).FaBlob = uintptr(0)
	(*TJsonParse)(unsafe.Pointer(p)).FnBlob = uint32(0)
	return 0
}

// C documentation
//
//	/*
//	** Generate a path error.
//	**
//	** The specifics of the error are determined by the rc argument.
//	**
//	**          rc                        error
//	**  -----------------       ----------------------
//	**  JSON_LOOKUP_ARRAY       "not an array"
//	**  JSON_LOOKUP_TOODEEP     "JSON nested too deep"
//	**  JSON_LOOKUP_ERROR       "malformed JSON"
//	**  otherwise...            "bad JSON path"
//	**
//	** If ctx is not NULL then push the error message into ctx and return NULL.
//	** If ctx is NULL, then return the text of the error message.
//	*/
func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr, rc int32) (r uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var zMsg uintptr
	_ = zMsg
	if rc == libc.Int32FromUint32(JSON_LOOKUP_NOTARRAY) {
		zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27847, libc.VaList(bp+8, zPath))
	} else {
		if rc == libc.Int32FromUint32(JSON_LOOKUP_ERROR) {
			zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27699, 0)
		} else {
			if rc == libc.Int32FromUint32(JSON_LOOKUP_TOODEEP) {
				zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27872, 0)
			} else {
				zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27891, libc.VaList(bp+8, zPath))
			}
		}
	}
	if ctx == uintptr(0) {
		return zMsg
	}
	if zMsg != 0 {
		Xsqlite3_result_error(tls, ctx, zMsg, -int32(1))
		Xsqlite3_free(tls, zMsg)
	} else {
		Xsqlite3_result_error_nomem(tls, ctx)
	}
	return uintptr(0)
}

// C documentation
//
//	/*
//	** Return the number of escaped newlines to be ignored.
//	** An escaped newline is a one of the following byte sequences:
//	**
//	**    0x5c 0x0a
//	**    0x5c 0x0d
//	**    0x5c 0x0d 0x0a
//	**    0x5c 0xe2 0x80 0xa8
//	**    0x5c 0xe2 0x80 0xa9
//	*/
func _jsonBytesToBypass(tls *libc.TLS, z uintptr, n Tu32) (r Tu32) {
	var i Tu32
	_ = i
	i = uint32(0)
	for i+uint32(1) < n {
		if int32(**(**int8)(__ccgo_up(z + uintptr(i)))) != int32('\\') {
			return i
		}
		if int32(**(**int8)(__ccgo_up(z + uintptr(i+uint32(1))))) == int32('\n') {
			i = i + uint32(2)
			continue
		}
		if int32(**(**int8)(__ccgo_up(z + uintptr(i+uint32(1))))) == int32('\r') {
			if i+uint32(2) < n && int32(**(**int8)(__ccgo_up(z + uintptr(i+uint32(2))))) == int32('\n') {
				i = i + uint32(3)
			} else {
				i = i + uint32(2)
			}
			continue
		}
		if int32(0xe2) == int32(uint8(**(**int8)(__ccgo_up(z + uintptr(i+uint32(1)))))) && i+uint32(3) < n && int32(0x80) == int32(uint8(**(**int8)(__ccgo_up(z + uintptr(i+uint32(2)))))) && (int32(0xa8) == int32(uint8(**(**int8)(__ccgo_up(z + uintptr(i+uint32(3)))))) || int32(0xa9) == int32(uint8(**(**int8)(__ccgo_up(z + uintptr(i+uint32(3))))))) {
			i = i + uint32(4)
			continue
		}
		break
	}
	return i
}

// C documentation
//
//	/*
//	** Parse a complete JSON string.  Return 0 on success or non-zero if there
//	** are any errors.  If an error occurs, free all memory held by pParse,
//	** but not pParse itself.
//	**
//	** pParse must be initialized to an empty parse object prior to calling
//	** this routine.
//	*/
func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int32) {
	var i int32
	var zJson uintptr
	_, _ = i, zJson
	zJson = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson
	i = _jsonTranslateTextToBlob(tls, pParse, uint32(0))
	if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
		i = -int32(1)
	}
	if i > 0 {
		for _jsonIsSpace[uint8(**(**int8)(__ccgo_up(zJson + uintptr(i))))] != 0 {
			i = i + 1
		}
		if **(**int8)(__ccgo_up(zJson + uintptr(i))) != 0 {
			i = i + _json5Whitespace(tls, zJson+uintptr(i))
			if **(**int8)(__ccgo_up(zJson + uintptr(i))) != 0 {
				if pCtx != 0 {
					Xsqlite3_result_error(tls, pCtx, __ccgo_ts+27699, -int32(1))
				}
				_jsonParseReset(tls, pParse)
				return int32(1)
			}
			(*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1)
		}
	}
	if i <= 0 {
		if pCtx != uintptr(0) {
			if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
				Xsqlite3_result_error_nomem(tls, pCtx)
			} else {
				Xsqlite3_result_error(tls, pCtx, __ccgo_ts+27699, -int32(1))
			}
		}
		_jsonParseReset(tls, pParse)
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/* The query strategy is to look for an equality constraint on the json
//	** column.  Without such a constraint, the table cannot operate.  idxNum is
//	** 1 if the constraint is found, 3 if the constraint and zRoot are found,
//	** and 0 otherwise.
//	*/
func _jsonEachBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) {
	var aIdx [2]int32
	var i, iCol, iMask, idxMask, unusableMask, v1 int32
	var pConstraint uintptr
	_, _, _, _, _, _, _, _ = aIdx, i, iCol, iMask, idxMask, pConstraint, unusableMask, v1 /* Index of constraints for JSON and ROOT */
	unusableMask = 0                                                                      /* Mask of unusable JSON and ROOT constraints */
	idxMask = 0
	/* This implementation assumes that JSON and ROOT are the last two
	 ** columns in the table */
	_ = tab
	v1 = -libc.Int32FromInt32(1)
	aIdx[int32(1)] = v1
	aIdx[0] = v1
	pConstraint = (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint
	i = 0
	for {
		if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) {
			break
		}
		if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32(JEACH_JSON) {
			goto _2
		}
		iCol = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32(JEACH_JSON)
		iMask = int32(1) << iCol
		if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 {
			unusableMask = unusableMask | iMask
		} else {
			if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) == int32(SQLITE_INDEX_CONSTRAINT_EQ) {
				aIdx[iCol] = i
				idxMask = idxMask | iMask
			}
		}
		goto _2
	_2:
		;
		i = i + 1
		pConstraint += 12
	}
	if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnOrderBy > 0 && (**(**Tsqlite3_index_orderby)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaOrderBy))).FiColumn < 0 && int32((**(**Tsqlite3_index_orderby)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaOrderBy))).Fdesc) == 0 {
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).ForderByConsumed = int32(1)
	}
	if unusableMask & ^idxMask != 0 {
		/* If there are any unusable constraints on JSON or ROOT, then reject
		 ** this entire plan */
		return int32(SQLITE_CONSTRAINT)
	}
	if aIdx[0] < 0 {
		/* No JSON input.  Leave estimatedCost at the huge value that it was
		 ** initialized to to discourage the query planner from selecting this
		 ** plan. */
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 0
	} else {
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(1)
		i = aIdx[0]
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8))).FargvIndex = int32(1)
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8))).Fomit = uint8(1)
		if aIdx[int32(1)] < 0 {
			(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) /* Only JSON supplied.  Plan 1 */
		} else {
			i = aIdx[int32(1)]
			(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8))).FargvIndex = int32(2)
			(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8))).Fomit = uint8(1)
			(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(3) /* Both JSON and ROOT are supplied.  Plan 3 */
		}
	}
	return SQLITE_OK
}

// C documentation
//
//	/* Return the current rowid value */
func _jsonEachRowid(tls *libc.TLS, cur uintptr, pRowid uintptr) (r int32) {
	var p uintptr
	_ = p
	p = cur
	**(**Tsqlite_int64)(__ccgo_up(pRowid)) = int64((*TJsonEachCursor)(unsafe.Pointer(p)).FiRowid)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Translate a single byte of Hex into an integer.
//	** This routine only gives a correct answer if h really is a valid hexadecimal
//	** character:  0..9a..fA..F.  But unlike sqlite3HexToInt(), it does not
//	** assert() if the digit is not hex.
//	*/
func _jsonHexToInt(tls *libc.TLS, h int32) (r Tu8) {
	h = h + int32(9)*(int32(1)&(h>>int32(6)))
	return uint8(h & libc.Int32FromInt32(0xf))
}

// C documentation
//
//	/*
//	** Convert a 4-byte hex string into an integer
//	*/
func _jsonHexToInt4(tls *libc.TLS, z uintptr) (r Tu32) {
	var v Tu32
	_ = v
	v = uint32(int32(_jsonHexToInt(tls, int32(**(**int8)(__ccgo_up(z)))))<<int32(12) + int32(_jsonHexToInt(tls, int32(**(**int8)(__ccgo_up(z + 1)))))<<int32(8) + int32(_jsonHexToInt(tls, int32(**(**int8)(__ccgo_up(z + 2)))))<<int32(4) + int32(_jsonHexToInt(tls, int32(**(**int8)(__ccgo_up(z + 3))))))
	return v
}

// C documentation
//
//	/*
//	** Return true if z[] begins with 2 (or more) hexadecimal digits
//	*/
func _jsonIs2Hex(tls *libc.TLS, z uintptr) (r int32) {
	return libc.BoolInt32(int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(z)))])&int32(0x08) != 0 && int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(z + 1)))])&int32(0x08) != 0)
}

// C documentation
//
//	/*
//	** Compare two object labels.  Return 1 if they are equal and
//	** 0 if they differ.
//	**
//	** In this version, we know that one or the other or both of the
//	** two comparands contains an escape sequence.
//	*/
func _jsonLabelCompareEscaped(tls *libc.TLS, zLeft uintptr, nLeft Tu32, rawLeft int32, zRight uintptr, nRight Tu32, rawRight int32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var n, n1 Tu32
	var sz, sz1 int32
	var _ /* cLeft at bp+0 */ Tu32
	var _ /* cRight at bp+4 */ Tu32
	_, _, _, _ = n, n1, sz, sz1
	for int32(1) != 0 {
		if nLeft == uint32(0) {
			**(**Tu32)(__ccgo_up(bp)) = uint32(0)
		} else {
			if rawLeft != 0 || int32(**(**int8)(__ccgo_up(zLeft))) != int32('\\') {
				**(**Tu32)(__ccgo_up(bp)) = uint32(**(**Tu8)(__ccgo_up(zLeft)))
				if **(**Tu32)(__ccgo_up(bp)) >= uint32(0xc0) {
					sz = _sqlite3Utf8ReadLimited(tls, zLeft, int32(nLeft), bp)
					zLeft = zLeft + uintptr(sz)
					nLeft = nLeft - uint32(sz)
				} else {
					zLeft = zLeft + 1
					nLeft = nLeft - 1
				}
			} else {
				n = _jsonUnescapeOneChar(tls, zLeft, nLeft, bp)
				zLeft = zLeft + uintptr(n)
				nLeft = nLeft - n
			}
		}
		if nRight == uint32(0) {
			**(**Tu32)(__ccgo_up(bp + 4)) = uint32(0)
		} else {
			if rawRight != 0 || int32(**(**int8)(__ccgo_up(zRight))) != int32('\\') {
				**(**Tu32)(__ccgo_up(bp + 4)) = uint32(**(**Tu8)(__ccgo_up(zRight)))
				if **(**Tu32)(__ccgo_up(bp + 4)) >= uint32(0xc0) {
					sz1 = _sqlite3Utf8ReadLimited(tls, zRight, int32(nRight), bp+4)
					zRight = zRight + uintptr(sz1)
					nRight = nRight - uint32(sz1)
				} else {
					zRight = zRight + 1
					nRight = nRight - 1
				}
			} else {
				n1 = _jsonUnescapeOneChar(tls, zRight, nRight, bp+4)
				zRight = zRight + uintptr(n1)
				nRight = nRight - n1
			}
		}
		if **(**Tu32)(__ccgo_up(bp)) != **(**Tu32)(__ccgo_up(bp + 4)) {
			return 0
		}
		if **(**Tu32)(__ccgo_up(bp)) == uint32(0) {
			return int32(1)
		}
	}
	return r
}

// C documentation
//
//	/*
//	** json_replace(JSON, PATH, VALUE, ...)
//	**
//	** Replace the value at PATH with VALUE.  If PATH does not already exist,
//	** this routine is a no-op.  If JSON or PATH is malformed, throw an error.
//	*/
func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
	if argc < int32(1) {
		return
	}
	if argc&int32(1) == 0 {
		_jsonWrongNumArgs(tls, ctx, __ccgo_ts+18290)
		return
	}
	_jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL))
}

// C documentation
//
//	/* Make sure there is a zero terminator on p->zBuf[]
//	**
//	** Return true on success.  Return false if an OOM prevents this
//	** from happening.
//	*/
func _jsonStringTerminate(tls *libc.TLS, p uintptr) (r int32) {
	_jsonAppendChar(tls, p, 0)
	_jsonStringTrimOneChar(tls, p)
	return libc.BoolInt32(int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0)
}

// C documentation
//
//	/* Remove a single character from the end of the string
//	*/
func _jsonStringTrimOneChar(tls *libc.TLS, p uintptr) {
	if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 {
		(*TJsonString)(unsafe.Pointer(p)).FnUsed = (*TJsonString)(unsafe.Pointer(p)).FnUsed - 1
	}
}

// C documentation
//
//	/*
//	** Input z[0..n] defines JSON escape sequence including the leading '\\'.
//	** Decode that escape sequence into a single character.  Write that
//	** character into *piOut.  Return the number of bytes in the escape sequence.
//	**
//	** If there is a syntax error of some kind (for example too few characters
//	** after the '\\' to complete the encoding) then *piOut is set to
//	** JSON_INVALID_CHAR.
//	*/
func _jsonUnescapeOneChar(tls *libc.TLS, z uintptr, n Tu32, piOut uintptr) (r Tu32) {
	var nSkip, v, vlo, v1 Tu32
	var sz, v3 int32
	var v2 bool
	_, _, _, _, _, _, _ = nSkip, sz, v, vlo, v1, v2, v3
	if n < uint32(2) {
		**(**Tu32)(__ccgo_up(piOut)) = uint32(JSON_INVALID_CHAR)
		return n
	}
	switch int32(uint8(**(**int8)(__ccgo_up(z + 1)))) {
	case int32('u'):
		if n < uint32(6) {
			**(**Tu32)(__ccgo_up(piOut)) = uint32(JSON_INVALID_CHAR)
			return n
		}
		v = _jsonHexToInt4(tls, z+2)
		if v2 = v&uint32(0xfc00) == uint32(0xd800) && n >= uint32(12) && int32(**(**int8)(__ccgo_up(z + 6))) == int32('\\') && int32(**(**int8)(__ccgo_up(z + 7))) == int32('u'); v2 {
			v1 = _jsonHexToInt4(tls, z+8)
			vlo = v1
		}
		if v2 && v1&uint32(0xfc00) == uint32(0xdc00) {
			**(**Tu32)(__ccgo_up(piOut)) = v&uint32(0x3ff)<<int32(10) + vlo&uint32(0x3ff) + uint32(0x10000)
			return uint32(12)
		} else {
			**(**Tu32)(__ccgo_up(piOut)) = v
			return uint32(6)
		}
		fallthrough
	case int32('b'):
		**(**Tu32)(__ccgo_up(piOut)) = uint32('\b')
		return uint32(2)
	case int32('f'):
		**(**Tu32)(__ccgo_up(piOut)) = uint32('\f')
		return uint32(2)
	case int32('n'):
		**(**Tu32)(__ccgo_up(piOut)) = uint32('\n')
		return uint32(2)
	case int32('r'):
		**(**Tu32)(__ccgo_up(piOut)) = uint32('\r')
		return uint32(2)
	case int32('t'):
		**(**Tu32)(__ccgo_up(piOut)) = uint32('\t')
		return uint32(2)
	case int32('v'):
		**(**Tu32)(__ccgo_up(piOut)) = uint32('\v')
		return uint32(2)
	case int32('0'):
		/* JSON5 requires that the \0 escape not be followed by a digit.
		 ** But SQLite did not enforce this restriction in versions 3.42.0
		 ** through 3.49.2.  That was a bug.  But some applications might have
		 ** come to depend on that bug.  Use the SQLITE_BUG_COMPATIBLE_20250510
		 ** option to restore the old buggy behavior. */
		/* Correct behavior */
		if n > uint32(2) && int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(z + 2)))])&int32(0x04) != 0 {
			v3 = int32(JSON_INVALID_CHAR)
		} else {
			v3 = 0
		}
		**(**Tu32)(__ccgo_up(piOut)) = uint32(v3)
		return uint32(2)
	case int32('\''):
		fallthrough
	case int32('"'):
		fallthrough
	case int32('/'):
		fallthrough
	case int32('\\'):
		**(**Tu32)(__ccgo_up(piOut)) = uint32(**(**int8)(__ccgo_up(z + 1)))
		return uint32(2)
	case int32('x'):
		if n < uint32(4) {
			**(**Tu32)(__ccgo_up(piOut)) = uint32(JSON_INVALID_CHAR)
			return n
		}
		**(**Tu32)(__ccgo_up(piOut)) = uint32(int32(_jsonHexToInt(tls, int32(**(**int8)(__ccgo_up(z + 2)))))<<int32(4) | int32(_jsonHexToInt(tls, int32(**(**int8)(__ccgo_up(z + 3))))))
		return uint32(4)
	case int32(0xe2):
		fallthrough
	case int32('\r'):
		fallthrough
	case int32('\n'):
		nSkip = _jsonBytesToBypass(tls, z, n)
		if nSkip == uint32(0) {
			**(**Tu32)(__ccgo_up(piOut)) = uint32(JSON_INVALID_CHAR)
			return n
		} else {
			if nSkip == n {
				**(**Tu32)(__ccgo_up(piOut)) = uint32(0)
				return n
			} else {
				if int32(**(**int8)(__ccgo_up(z + uintptr(nSkip)))) == int32('\\') {
					return nSkip + _jsonUnescapeOneChar(tls, z+uintptr(nSkip), n-nSkip, piOut)
				} else {
					sz = _sqlite3Utf8ReadLimited(tls, z+uintptr(nSkip), int32(n-nSkip), piOut)
					return nSkip + uint32(sz)
				}
			}
		}
		fallthrough
	default:
		**(**Tu32)(__ccgo_up(piOut)) = uint32(JSON_INVALID_CHAR)
		return uint32(2)
	}
	return r
}

// C documentation
//
//	/*
//	** Report the wrong number of arguments for json_insert(), json_replace()
//	** or json_set().
//	*/
func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var zMsg uintptr
	_ = zMsg
	zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27745, libc.VaList(bp+8, zFuncName))
	Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1))
	Xsqlite3_free(tls, zMsg)
}

/****************************************************************************
** Utility routines for dealing with the binary BLOB representation of JSON
****************************************************************************/

// C documentation
//
//	/* The byte at index i is a node type-code.  This routine
//	** determines the payload size for that node and writes that
//	** payload size in to *pSz.  It returns the offset from i to the
//	** beginning of the payload.  Return 0 on error.
//	*/
func _jsonbPayloadSize(tls *libc.TLS, pParse uintptr, i Tu32, pSz uintptr) (r Tu32) {
	var n, sz Tu32
	var x, v1 Tu8
	_, _, _, _ = n, sz, x, v1
	if i >= (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob {
		**(**Tu32)(__ccgo_up(pSz)) = uint32(0)
		return uint32(0)
	} else {
		v1 = uint8(int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) >> libc.Int32FromInt32(4))
		x = v1
		if int32(v1) <= int32(11) {
			sz = uint32(x)
			n = uint32(1)
		} else {
			if int32(x) == int32(12) {
				if i+uint32(1) >= (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob {
					**(**Tu32)(__ccgo_up(pSz)) = uint32(0)
					return uint32(0)
				}
				sz = uint32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(1)))))
				n = uint32(2)
			} else {
				if int32(x) == int32(13) {
					if i+uint32(2) >= (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob {
						**(**Tu32)(__ccgo_up(pSz)) = uint32(0)
						return uint32(0)
					}
					sz = uint32(int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(1)))))<<int32(8) + int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(2))))))
					n = uint32(3)
				} else {
					if int32(x) == int32(14) {
						if i+uint32(4) >= (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob {
							**(**Tu32)(__ccgo_up(pSz)) = uint32(0)
							return uint32(0)
						}
						sz = uint32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(1)))))<<libc.Int32FromInt32(24) + uint32(int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(2)))))<<libc.Int32FromInt32(16)) + uint32(int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(3)))))<<libc.Int32FromInt32(8)) + uint32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(4)))))
						n = uint32(5)
					} else {
						if i+uint32(8) >= (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob || int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(1))))) != 0 || int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(2))))) != 0 || int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(3))))) != 0 || int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(4))))) != 0 {
							**(**Tu32)(__ccgo_up(pSz)) = uint32(0)
							return uint32(0)
						}
						sz = uint32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(5)))))<<libc.Int32FromInt32(24) + uint32(int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(6)))))<<libc.Int32FromInt32(16)) + uint32(int32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(7)))))<<libc.Int32FromInt32(8)) + uint32(**(**Tu8)(__ccgo_up((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(8)))))
						n = uint32(9)
					}
				}
			}
		}
	}
	if int64(i)+int64(sz)+int64(n) > int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob) && int64(i)+int64(sz)+int64(n) > int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob-uint32((*TJsonParse)(unsafe.Pointer(pParse)).Fdelta)) {
		**(**Tu32)(__ccgo_up(pSz)) = uint32(0)
		return uint32(0)
	}
	**(**Tu32)(__ccgo_up(pSz)) = sz
	return n
}

// C documentation
//
//	/* Human-readable names for the JSONB values.  The index for each
//	** string must correspond to the JSONB_* integer above.
//	*/
var _jsonbType = [17]uintptr{
	0:  __ccgo_ts + 1697,
	1:  __ccgo_ts + 9395,
	2:  __ccgo_ts + 9400,
	3:  __ccgo_ts + 7709,
	4:  __ccgo_ts + 7709,
	5:  __ccgo_ts + 7704,
	6:  __ccgo_ts + 7704,
	7:  __ccgo_ts + 9704,
	8:  __ccgo_ts + 9704,
	9:  __ccgo_ts + 9704,
	10: __ccgo_ts + 9704,
	11: __ccgo_ts + 27636,
	12: __ccgo_ts + 27642,
	13: __ccgo_ts + 1711,
	14: __ccgo_ts + 1711,
	15: __ccgo_ts + 1711,
	16: __ccgo_ts + 1711,
}

// C documentation
//
//	/*
//	** Check a single element of the JSONB in pParse for validity.
//	**
//	** The element to be checked starts at offset i and must end at on the
//	** last byte before iEnd.
//	**
//	** Return 0 if everything is correct.  Return the 1-based byte offset of the
//	** error if a problem is detected.  (In other words, if the error is at offset
//	** 0, return 1).
//	*/
func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDepth Tu32) (r Tu32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var cnt, j, k, n, sub, sub1, szC Tu32
	var seen, x Tu8
	var z uintptr
	var v1 uint32
	var _ /* c at bp+4 */ Tu32
	var _ /* sz at bp+0 */ Tu32
	_, _, _, _, _, _, _, _, _, _, _ = cnt, j, k, n, seen, sub, sub1, szC, x, z, v1
	if iDepth > uint32(JSON_MAX_DEPTH) {
		return i + uint32(1)
	}
	**(**Tu32)(__ccgo_up(bp)) = uint32(0)
	n = _jsonbPayloadSize(tls, pParse, i, bp)
	if n == uint32(0) {
		return i + uint32(1)
	} /* Checked by caller */
	if i+n+**(**Tu32)(__ccgo_up(bp)) != iEnd {
		return i + uint32(1)
	} /* Checked by caller */
	z = (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob
	x = uint8(int32(**(**Tu8)(__ccgo_up(z + uintptr(i)))) & int32(0x0f))
	switch int32(x) {
	case JSONB_NULL:
		fallthrough
	case int32(JSONB_TRUE):
		fallthrough
	case int32(JSONB_FALSE):
		if n+**(**Tu32)(__ccgo_up(bp)) == uint32(1) {
			v1 = uint32(0)
		} else {
			v1 = i + uint32(1)
		}
		return v1
	case int32(JSONB_INT):
		if **(**Tu32)(__ccgo_up(bp)) < uint32(1) {
			return i + uint32(1)
		}
		j = i + n
		if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('-') {
			j = j + 1
			if **(**Tu32)(__ccgo_up(bp)) < uint32(2) {
				return i + uint32(1)
			}
		}
		k = i + n + **(**Tu32)(__ccgo_up(bp))
		for j < k {
			if int32(_sqlite3CtypeMap[**(**Tu8)(__ccgo_up(z + uintptr(j)))])&int32(0x04) != 0 {
				j = j + 1
			} else {
				return j + uint32(1)
			}
		}
		return uint32(0)
	case int32(JSONB_INT5):
		if **(**Tu32)(__ccgo_up(bp)) < uint32(3) {
			return i + uint32(1)
		}
		j = i + n
		if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('-') {
			if **(**Tu32)(__ccgo_up(bp)) < uint32(4) {
				return i + uint32(1)
			}
			j = j + 1
		}
		if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) != int32('0') {
			return i + uint32(1)
		}
		if int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))) != int32('x') && int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))) != int32('X') {
			return j + uint32(2)
		}
		j = j + uint32(2)
		k = i + n + **(**Tu32)(__ccgo_up(bp))
		for j < k {
			if int32(_sqlite3CtypeMap[**(**Tu8)(__ccgo_up(z + uintptr(j)))])&int32(0x08) != 0 {
				j = j + 1
			} else {
				return j + uint32(1)
			}
		}
		return uint32(0)
	case int32(JSONB_FLOAT):
		fallthrough
	case int32(JSONB_FLOAT5):
		seen = uint8(0) /* 0: initial.  1: '.' seen  2: 'e' seen */
		if **(**Tu32)(__ccgo_up(bp)) < uint32(2) {
			return i + uint32(1)
		}
		j = i + n
		k = j + **(**Tu32)(__ccgo_up(bp))
		if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('-') {
			j = j + 1
			if **(**Tu32)(__ccgo_up(bp)) < uint32(3) {
				return i + uint32(1)
			}
		}
		if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('.') {
			if int32(x) == int32(JSONB_FLOAT) {
				return j + uint32(1)
			}
			if !(int32(_sqlite3CtypeMap[**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))])&libc.Int32FromInt32(0x04) != 0) {
				return j + uint32(1)
			}
			j = j + uint32(2)
			seen = uint8(1)
		} else {
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('0') && int32(x) == int32(JSONB_FLOAT) {
				if j+uint32(3) > k {
					return j + uint32(1)
				}
				if int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))) != int32('.') && int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))) != int32('e') && int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))) != int32('E') {
					return j + uint32(1)
				}
				j = j + 1
			}
		}
		for {
			if !(j < k) {
				break
			}
			if int32(_sqlite3CtypeMap[**(**Tu8)(__ccgo_up(z + uintptr(j)))])&int32(0x04) != 0 {
				goto _2
			}
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('.') {
				if int32(seen) > 0 {
					return j + uint32(1)
				}
				if int32(x) == int32(JSONB_FLOAT) && (j == k-uint32(1) || !(int32(_sqlite3CtypeMap[**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))])&libc.Int32FromInt32(0x04) != 0)) {
					return j + uint32(1)
				}
				seen = uint8(1)
				goto _2
			}
			if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('e') || int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('E') {
				if int32(seen) == int32(2) {
					return j + uint32(1)
				}
				if j == k-uint32(1) {
					return j + uint32(1)
				}
				if int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))) == int32('+') || int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))) == int32('-') {
					j = j + 1
					if j == k-uint32(1) {
						return j + uint32(1)
					}
				}
				seen = uint8(2)
				goto _2
			}
			return j + uint32(1)
			goto _2
		_2:
			;
			j = j + 1
		}
		if int32(seen) == 0 {
			return i + uint32(1)
		}
		return uint32(0)
	case int32(JSONB_TEXT):
		j = i + n
		k = j + **(**Tu32)(__ccgo_up(bp))
		for j < k {
			if !(_jsonIsOk[**(**Tu8)(__ccgo_up(z + uintptr(j)))] != 0) && int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) != int32('\'') {
				return j + uint32(1)
			}
			j = j + 1
		}
		return uint32(0)
	case int32(JSONB_TEXTJ):
		fallthrough
	case int32(JSONB_TEXT5):
		j = i + n
		k = j + **(**Tu32)(__ccgo_up(bp))
		for j < k {
			if !(_jsonIsOk[**(**Tu8)(__ccgo_up(z + uintptr(j)))] != 0) && int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) != int32('\'') {
				if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) == int32('"') {
					if int32(x) == int32(JSONB_TEXTJ) {
						return j + uint32(1)
					}
				} else {
					if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) <= int32(0x1f) {
						/* Control characters in JSON5 string literals are ok */
						if int32(x) == int32(JSONB_TEXTJ) {
							return j + uint32(1)
						}
					} else {
						if int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k {
							return j + uint32(1)
						} else {
							if libc.Xstrchr(tls, __ccgo_ts+27788, int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1)))))) != uintptr(0) {
								j = j + 1
							} else {
								if int32(**(**Tu8)(__ccgo_up(z + uintptr(j+uint32(1))))) == int32('u') {
									if j+uint32(5) >= k {
										return j + uint32(1)
									}
									if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) {
										return j + uint32(1)
									}
									j = j + 1
								} else {
									if int32(x) != int32(JSONB_TEXT5) {
										return j + uint32(1)
									} else {
										**(**Tu32)(__ccgo_up(bp + 4)) = uint32(0)
										szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4)
										if **(**Tu32)(__ccgo_up(bp + 4)) == uint32(JSON_INVALID_CHAR) {
											return j + uint32(1)
										}
										j = j + (szC - uint32(1))
									}
								}
							}
						}
					}
				}
			}
			j = j + 1
		}
		return uint32(0)
	case int32(JSONB_TEXTRAW):
		return uint32(0)
	case int32(JSONB_ARRAY):
		j = i + n
		k = j + **(**Tu32)(__ccgo_up(bp))
		for j < k {
			**(**Tu32)(__ccgo_up(bp)) = uint32(0)
			n = _jsonbPayloadSize(tls, pParse, j, bp)
			if n == uint32(0) {
				return j + uint32(1)
			}
			if j+n+**(**Tu32)(__ccgo_up(bp)) > k {
				return j + uint32(1)
			}
			sub = _jsonbValidityCheck(tls, pParse, j, j+n+**(**Tu32)(__ccgo_up(bp)), iDepth+uint32(1))
			if sub != 0 {
				return sub
			}
			j = j + (n + **(**Tu32)(__ccgo_up(bp)))
		}
		return uint32(0)
	case int32(JSONB_OBJECT):
		cnt = uint32(0)
		j = i + n
		k = j + **(**Tu32)(__ccgo_up(bp))
		for j < k {
			**(**Tu32)(__ccgo_up(bp)) = uint32(0)
			n = _jsonbPayloadSize(tls, pParse, j, bp)
			if n == uint32(0) {
				return j + uint32(1)
			}
			if j+n+**(**Tu32)(__ccgo_up(bp)) > k {
				return j + uint32(1)
			}
			if cnt&uint32(1) == uint32(0) {
				x = uint8(int32(**(**Tu8)(__ccgo_up(z + uintptr(j)))) & int32(0x0f))
				if int32(x) < int32(JSONB_TEXT) || int32(x) > int32(JSONB_TEXTRAW) {
					return j + uint32(1)
				}
			}
			sub1 = _jsonbValidityCheck(tls, pParse, j, j+n+**(**Tu32)(__ccgo_up(bp)), iDepth+uint32(1))
			if sub1 != 0 {
				return sub1
			}
			cnt = cnt + 1
			j = j + (n + **(**Tu32)(__ccgo_up(bp)))
		}
		if cnt&uint32(1) != uint32(0) {
			return j + uint32(1)
		}
		return uint32(0)
	default:
		return i + uint32(1)
	}
	return r
}

const _kAddingDocumentSequence = 0

const _kAddingFixedDocument = 2

const _kAddingFixedPage = 4

const _kDocumentSequenceAdded = 1

const _kFixedDocumentAdded = 3

const _kFixedPageAdded = 5

const _kFontAdded = 7

const _kImageAdded = 8

const _kJobConsumption = 1

const _kJobProduction = 0

const _kResourceAdded = 6

const _kXpsDocumentCommitted = 9

// C documentation
//
//	/* Hash table decoded:
//	**   0: INSERT
//	**   1: IS
//	**   2: ROLLBACK TRIGGER
//	**   3: IMMEDIATE
//	**   4: PARTITION
//	**   5: TEMP
//	**   6:
//	**   7:
//	**   8: VALUES WITHOUT
//	**   9:
//	**  10: MATCH
//	**  11: NOTHING
//	**  12:
//	**  13: OF
//	**  14: TIES IGNORE
//	**  15: PLAN
//	**  16: INSTEAD INDEXED
//	**  17:
//	**  18: TRANSACTION RIGHT
//	**  19: WHEN
//	**  20: SET HAVING
//	**  21: MATERIALIZED IF
//	**  22: ROWS
//	**  23: SELECT
//	**  24:
//	**  25:
//	**  26: VACUUM SAVEPOINT
//	**  27:
//	**  28: LIKE UNION VIRTUAL REFERENCES
//	**  29: RESTRICT
//	**  30:
//	**  31: THEN REGEXP
//	**  32: TO
//	**  33:
//	**  34: BEFORE
//	**  35:
//	**  36:
//	**  37: FOLLOWING COLLATE CASCADE
//	**  38: CREATE
//	**  39:
//	**  40: CASE REINDEX
//	**  41: EACH
//	**  42:
//	**  43: QUERY
//	**  44: AND ADD
//	**  45: PRIMARY ANALYZE
//	**  46:
//	**  47: ROW ASC DETACH
//	**  48: CURRENT_TIME CURRENT_DATE
//	**  49:
//	**  50:
//	**  51: EXCLUSIVE TEMPORARY
//	**  52:
//	**  53: DEFERRED
//	**  54: DEFERRABLE
//	**  55:
//	**  56: DATABASE
//	**  57:
//	**  58: DELETE VIEW GENERATED
//	**  59: ATTACH
//	**  60: END
//	**  61: EXCLUDE
//	**  62: ESCAPE DESC
//	**  63: GLOB
//	**  64: WINDOW ELSE
//	**  65: COLUMN
//	**  66: FIRST
//	**  67:
//	**  68: GROUPS ALL
//	**  69: DISTINCT DROP KEY
//	**  70: BETWEEN
//	**  71: INITIALLY
//	**  72: BEGIN
//	**  73: FILTER CHECK ACTION
//	**  74: GROUP INDEX
//	**  75:
//	**  76: EXISTS DEFAULT
//	**  77:
//	**  78: FOR CURRENT_TIMESTAMP
//	**  79: EXCEPT
//	**  80:
//	**  81: CROSS
//	**  82:
//	**  83:
//	**  84:
//	**  85: CAST
//	**  86: FOREIGN AUTOINCREMENT
//	**  87: COMMIT
//	**  88: CURRENT AFTER ALTER
//	**  89: FULL FAIL CONFLICT
//	**  90: EXPLAIN
//	**  91: CONSTRAINT
//	**  92: FROM ALWAYS
//	**  93:
//	**  94: ABORT
//	**  95:
//	**  96: AS DO
//	**  97: REPLACE WITH RELEASE
//	**  98: BY RENAME
//	**  99: RANGE RAISE
//	** 100: OTHERS
//	** 101: USING NULLS
//	** 102: PRAGMA
//	** 103: JOIN ISNULL OFFSET
//	** 104: NOT
//	** 105: OR LAST LEFT
//	** 106: LIMIT
//	** 107:
//	** 108:
//	** 109: IN
//	** 110: INTO
//	** 111: OVER RECURSIVE
//	** 112: ORDER OUTER
//	** 113:
//	** 114: INTERSECT UNBOUNDED
//	** 115:
//	** 116:
//	** 117: RETURNING ON
//	** 118:
//	** 119: WHERE
//	** 120: NO INNER
//	** 121: NULL
//	** 122:
//	** 123: TABLE
//	** 124: NATURAL NOTNULL
//	** 125: PRECEDING
//	** 126: UPDATE UNIQUE
//	*/
//	/* Check to see if z[0..n-1] is a keyword. If it is, write the
//	** parser symbol code for that keyword into *pType.  Always
//	** return the integer n (the length of the token). */
func _keywordCode(tls *libc.TLS, z uintptr, n Ti64, pType uintptr) (r Ti64) {
	var i, j Ti64
	var zKW uintptr
	_, _, _ = i, j, zKW
	i = (int64(int32(_sqlite3UpperToLower[uint8(**(**int8)(__ccgo_up(z)))])*int32(4)^int32(_sqlite3UpperToLower[uint8(**(**int8)(__ccgo_up(z + uintptr(n-int64(1)))))])*int32(3)) ^ n*int64(1)) % int64(127)
	i = int64(int32(_aKWHash[i]))
	for {
		if !(i > 0) {
			break
		}
		if int64(_aKWLen[i]) != n {
			goto _1
		}
		zKW = uintptr(unsafe.Pointer(&_zKWText)) + uintptr(_aKWOffset[i])
		if int32(**(**int8)(__ccgo_up(z))) & ^libc.Int32FromInt32(0x20) != int32(**(**int8)(__ccgo_up(zKW))) {
			goto _1
		}
		if int32(**(**int8)(__ccgo_up(z + 1))) & ^libc.Int32FromInt32(0x20) != int32(**(**int8)(__ccgo_up(zKW + 1))) {
			goto _1
		}
		j = int64(2)
		for j < n && int32(**(**int8)(__ccgo_up(z + uintptr(j)))) & ^libc.Int32FromInt32(0x20) == int32(**(**int8)(__ccgo_up(zKW + uintptr(j)))) {
			j = j + 1
		}
		if j < n {
			goto _1
		}
		/* REINDEX */
		/* INDEXED */
		/* INDEX */
		/* DESC */
		/* ESCAPE */
		/* EACH */
		/* CHECK */
		/* KEY */
		/* BEFORE */
		/* FOREIGN */
		/* FOR */
		/* IGNORE */
		/* REGEXP */
		/* EXPLAIN */
		/* INSTEAD */
		/* ADD */
		/* DATABASE */
		/* AS */
		/* SELECT */
		/* TABLE */
		/* LEFT */
		/* THEN */
		/* END */
		/* DEFERRABLE */
		/* ELSE */
		/* EXCLUDE */
		/* DELETE */
		/* TEMPORARY */
		/* TEMP */
		/* OR */
		/* ISNULL */
		/* NULLS */
		/* SAVEPOINT */
		/* INTERSECT */
		/* TIES */
		/* NOTNULL */
		/* NOT */
		/* NO */
		/* NULL */
		/* LIKE */
		/* EXCEPT */
		/* TRANSACTION */
		/* ACTION */
		/* ON */
		/* NATURAL */
		/* ALTER */
		/* RAISE */
		/* EXCLUSIVE */
		/* EXISTS */
		/* CONSTRAINT */
		/* INTO */
		/* OFFSET */
		/* OF */
		/* SET */
		/* TRIGGER */
		/* RANGE */
		/* GENERATED */
		/* DETACH */
		/* HAVING */
		/* GLOB */
		/* BEGIN */
		/* INNER */
		/* REFERENCES */
		/* UNIQUE */
		/* QUERY */
		/* WITHOUT */
		/* WITH */
		/* OUTER */
		/* RELEASE */
		/* ATTACH */
		/* BETWEEN */
		/* NOTHING */
		/* GROUPS */
		/* GROUP */
		/* CASCADE */
		/* ASC */
		/* DEFAULT */
		/* CASE */
		/* COLLATE */
		/* CREATE */
		/* CURRENT_DATE */
		/* IMMEDIATE */
		/* JOIN */
		/* INSERT */
		/* MATCH */
		/* PLAN */
		/* ANALYZE */
		/* PRAGMA */
		/* MATERIALIZED */
		/* DEFERRED */
		/* DISTINCT */
		/* IS */
		/* UPDATE */
		/* VALUES */
		/* VIRTUAL */
		/* ALWAYS */
		/* WHEN */
		/* WHERE */
		/* RECURSIVE */
		/* ABORT */
		/* AFTER */
		/* RENAME */
		/* AND */
		/* DROP */
		/* PARTITION */
		/* AUTOINCREMENT */
		/* TO */
		/* IN */
		/* CAST */
		/* COLUMN */
		/* COMMIT */
		/* CONFLICT */
		/* CROSS */
		/* CURRENT_TIMESTAMP */
		/* CURRENT_TIME */
		/* CURRENT */
		/* PRECEDING */
		/* FAIL */
		/* LAST */
		/* FILTER */
		/* REPLACE */
		/* FIRST */
		/* FOLLOWING */
		/* FROM */
		/* FULL */
		/* LIMIT */
		/* IF */
		/* ORDER */
		/* RESTRICT */
		/* OTHERS */
		/* OVER */
		/* RETURNING */
		/* RIGHT */
		/* ROLLBACK */
		/* ROWS */
		/* ROW */
		/* UNBOUNDED */
		/* UNION */
		/* USING */
		/* VACUUM */
		/* VIEW */
		/* WINDOW */
		/* DO */
		/* BY */
		/* INITIALLY */
		/* ALL */
		/* PRIMARY */
		**(**int32)(__ccgo_up(pType)) = int32(_aKWCode[i])
		break
		goto _1
	_1:
		;
		i = int64(_aKWNext[i])
	}
	return n
}

type _ldiv_t = T_ldiv_t

// C documentation
//
//	/*
//	** Load content from the sqlite_stat4 table into
//	** the Index.aSample[] arrays of all indices.
//	*/
func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) {
	var pStat4, v1 uintptr
	var rc int32
	var v2 bool
	_, _, _, _ = pStat4, rc, v1, v2
	rc = SQLITE_OK
	if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 {
		v1 = _sqlite3FindTable(tls, db, __ccgo_ts+14076, zDb)
		pStat4 = v1
	}
	if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM {
		rc = _loadStatTbl(tls, db, __ccgo_ts+14302, __ccgo_ts+14371, zDb)
	}
	return rc
}

type _locale_t = T_locale_t

type _locale_tstruct = T_locale_tstruct

// C documentation
//
//	/*
//	** Log an error that is an API call on a connection pointer that should
//	** not have been used.  The "type" of connection pointer is given as the
//	** argument.  The zType is a word like "NULL" or "closed" or "invalid".
//	*/
func _logBadConnection(tls *libc.TLS, zType uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1859, libc.VaList(bp+8, zType))
}

func _lookasideMallocSize(tls *libc.TLS, db uintptr, p uintptr) (r int32) {
	var v1 int32
	_ = v1
	if p < (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle {
		v1 = int32((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue)
	} else {
		v1 = int32(LOOKASIDE_SMALL)
	}
	return v1
}

func _lowerFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	var i, n int32
	var z1, z2 uintptr
	_, _, _, _ = i, n, z1, z2
	_ = argc
	z2 = Xsqlite3_value_text(tls, **(**uintptr)(__ccgo_up(argv)))
	n = Xsqlite3_value_bytes(tls, **(**uintptr)(__ccgo_up(argv)))
	/* Verify that the call to _bytes() does not invalidate the _text() pointer */
	if z2 != 0 {
		z1 = _contextMalloc(tls, context, int64(n)+int64(1))
		if z1 != 0 {
			i = 0
			for {
				if !(i < n) {
					break
				}
				**(**int8)(__ccgo_up(z1 + uintptr(i))) = int8(_sqlite3UpperToLower[uint8(**(**int8)(__ccgo_up(z2 + uintptr(i))))])
				goto _1
			_1:
				;
				i = i + 1
			}
			Xsqlite3_result_text(tls, context, z1, n, __ccgo_fp(Xsqlite3_free))
		}
	}
}

/*
** Some functions like COALESCE() and IFNULL() and UNLIKELY() are implemented
** as VDBE code so that unused argument values do not have to be computed.
** However, we still need some kind of function implementation for this
** routines in the function table.  The noopFunc macro provides this.
** noopFunc will never be called so it doesn't matter what the implementation
** is.  We might as well use the "version()" function as a substitute.
 */

/* 2^32 - to avoid use of LL and warnings in gcc */
var _max32BitValue = libc.Int64FromInt32(2000000000) + libc.Int64FromInt32(2000000000) + libc.Int64FromInt32(294967296)

// C documentation
//
//	/*
//	** Try to enlarge the memory allocation to hold at least sz bytes
//	*/
func _memdbEnlarge(tls *libc.TLS, p uintptr, newSz Tsqlite3_int64) (r int32) {
	var pNew uintptr
	_ = pNew
	if (*TMemStore)(unsafe.Pointer(p)).FmFlags&uint32(SQLITE_DESERIALIZE_RESIZEABLE) == uint32(0) || (*TMemStore)(unsafe.Pointer(p)).FnMmap > 0 {
		return int32(SQLITE_FULL)
	}
	if newSz > (*TMemStore)(unsafe.Pointer(p)).FszMax {
		return int32(SQLITE_FULL)
	}
	newSz = newSz * int64(2)
	if newSz > (*TMemStore)(unsafe.Pointer(p)).FszMax {
		newSz = (*TMemStore)(unsafe.Pointer(p)).FszMax
	}
	pNew = _sqlite3Realloc(tls, (*TMemStore)(unsafe.Pointer(p)).FaData, uint64(newSz))
	if pNew == uintptr(0) {
		return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(12)<<libc.Int32FromInt32(8)
	}
	(*TMemStore)(unsafe.Pointer(p)).FaData = pNew
	(*TMemStore)(unsafe.Pointer(p)).FszAlloc = newSz
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** File control method. For custom operations on an memdb-file.
//	*/
func _memdbFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var iLimit Tsqlite3_int64
	var p uintptr
	var rc int32
	_, _, _ = iLimit, p, rc
	p = (*TMemFile)(unsafe.Pointer(pFile)).FpStore
	rc = int32(SQLITE_NOTFOUND)
	_memdbEnter(tls, p)
	if op == int32(SQLITE_FCNTL_VFSNAME) {
		**(**uintptr)(__ccgo_up(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+5335, libc.VaList(bp+8, (*TMemStore)(unsafe.Pointer(p)).FaData, (*TMemStore)(unsafe.Pointer(p)).Fsz))
		rc = SQLITE_OK
	}
	if op == int32(SQLITE_FCNTL_SIZE_LIMIT) {
		iLimit = **(**Tsqlite3_int64)(__ccgo_up(pArg))
		if iLimit < (*TMemStore)(unsafe.Pointer(p)).Fsz {
			if iLimit < 0 {
				iLimit = (*TMemStore)(unsafe.Pointer(p)).FszMax
			} else {
				iLimit = (*TMemStore)(unsafe.Pointer(p)).Fsz
			}
		}
		(*TMemStore)(unsafe.Pointer(p)).FszMax = iLimit
		**(**Tsqlite3_int64)(__ccgo_up(pArg)) = iLimit
		rc = SQLITE_OK
	}
	_memdbLeave(tls, p)
	return rc
}

// C documentation
//
//	/*
//	** Populate buffer zOut with the full canonical pathname corresponding
//	** to the pathname in zPath. zOut is guaranteed to point to a buffer
//	** of at least (INST_MAX_PATHNAME+1) bytes.
//	*/
func _memdbFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, zOut uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	_ = pVfs
	Xsqlite3_snprintf(tls, nOut, zOut, __ccgo_ts+4729, libc.VaList(bp+8, zPath))
	return SQLITE_OK
}

var _memdb_vfs = Tsqlite3_vfs{
	FiVersion:   int32(2),
	FmxPathname: int32(1024),
	FzName:      __ccgo_ts + 5329,
}

type _mode_t = T_mode_t

// C documentation
//
//	/*
//	** Somewhere on pPage is a pointer to page iFrom.  Modify this pointer so
//	** that it points to iTo. Parameter eType describes the type of pointer to
//	** be modified, as  follows:
//	**
//	** PTRMAP_BTREE:     pPage is a btree-page. The pointer points at a child
//	**                   page of pPage.
//	**
//	** PTRMAP_OVERFLOW1: pPage is a btree-page. The pointer points at an overflow
//	**                   page pointed to by one of the cells on pPage.
//	**
//	** PTRMAP_OVERFLOW2: pPage is an overflow-page. The pointer points at the next
//	**                   overflow page in the list.
//	*/
func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eType Tu8) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var i, nCell, rc, v1 int32
	var pCell uintptr
	var _ /* info at bp+0 */ TCellInfo
	_, _, _, _, _ = i, nCell, pCell, rc, v1
	if int32(eType) == int32(PTRMAP_OVERFLOW2) {
		/* The pointer is always the first 4 bytes of the page in this case.  */
		if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom {
			return _sqlite3CorruptError(tls, int32(77112))
		}
		_sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo)
	} else {
		if (*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0 {
			v1 = SQLITE_OK
		} else {
			v1 = _btreeInitPage(tls, pPage)
		}
		rc = v1
		if rc != 0 {
			return rc
		}
		nCell = int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell)
		i = 0
		for {
			if !(i < nCell) {
				break
			}
			pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*i))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*i) + 1)))))
			if int32(eType) == int32(PTRMAP_OVERFLOW1) {
				(*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp)
				if uint32((**(**TCellInfo)(__ccgo_up(bp))).FnLocal) < (**(**TCellInfo)(__ccgo_up(bp))).FnPayload {
					if pCell+uintptr((**(**TCellInfo)(__ccgo_up(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) {
						return _sqlite3CorruptError(tls, int32(77131))
					}
					if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((**(**TCellInfo)(__ccgo_up(bp))).FnSize)-uintptr(4)) {
						_sqlite3Put4byte(tls, pCell+uintptr((**(**TCellInfo)(__ccgo_up(bp))).FnSize)-uintptr(4), iTo)
						break
					}
				}
			} else {
				if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) {
					return _sqlite3CorruptError(tls, int32(77140))
				}
				if _sqlite3Get4byte(tls, pCell) == iFrom {
					_sqlite3Put4byte(tls, pCell, iTo)
					break
				}
			}
			goto _2
		_2:
			;
			i = i + 1
		}
		if i == nCell {
			if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom {
				return _sqlite3CorruptError(tls, int32(77152))
			}
			_sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo)
		}
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Move the cursor down to the left-most leaf entry beneath the
//	** entry to which it is currently pointing.
//	**
//	** The left-most leaf is the one with the smallest key - the first
//	** in ascending order.
//	*/
func _moveToLeftmost(tls *libc.TLS, pCur uintptr) (r int32) {
	var pPage, v1 uintptr
	var pgno TPgno
	var rc int32
	var v2 bool
	_, _, _, _, _ = pPage, pgno, rc, v1, v2
	rc = SQLITE_OK
	for {
		if v2 = rc == SQLITE_OK; v2 {
			v1 = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage
			pPage = v1
		}
		if !(v2 && !((*TMemPage)(unsafe.Pointer(v1)).Fleaf != 0)) {
			break
		}
		pgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix)))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix)) + 1))))))
		rc = _moveToChild(tls, pCur, pgno)
	}
	return rc
}

// C documentation
//
//	/*
//	** Move the cursor down to the right-most leaf entry beneath the
//	** page to which it is currently pointing.  Notice the difference
//	** between moveToLeftmost() and moveToRightmost().  moveToLeftmost()
//	** finds the left-most entry beneath the *entry* whereas moveToRightmost()
//	** finds the right-most entry beneath the *page*.
//	**
//	** The right-most entry is the one with the largest key - the last
//	** key in ascending order.
//	*/
func _moveToRightmost(tls *libc.TLS, pCur uintptr) (r int32) {
	var pPage, v1 uintptr
	var pgno TPgno
	var rc int32
	_, _, _, _ = pPage, pgno, rc, v1
	rc = SQLITE_OK
	pPage = uintptr(0)
	for {
		v1 = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage
		pPage = v1
		if !!((*TMemPage)(unsafe.Pointer(v1)).Fleaf != 0) {
			break
		}
		pgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)))
		(*TBtCursor)(unsafe.Pointer(pCur)).Fix = (*TMemPage)(unsafe.Pointer(pPage)).FnCell
		rc = _moveToChild(tls, pCur, pgno)
		if rc != 0 {
			return rc
		}
	}
	(*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) - int32(1))
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Handle the special case of a compound-select that originates from a
//	** VALUES clause.  By handling this as a special case, we avoid deep
//	** recursion, and thus do not need to enforce the SQLITE_LIMIT_COMPOUND_SELECT
//	** on a VALUES clause.
//	**
//	** Because the Select object originates from a VALUES clause:
//	**   (1) There is no LIMIT or OFFSET or else there is a LIMIT of exactly 1
//	**   (2) All terms are UNION ALL
//	**   (3) There is no ORDER BY clause
//	**
//	** The "LIMIT of exactly 1" case of condition (1) comes about when a VALUES
//	** clause occurs within scalar expression (ex: "SELECT (VALUES(1),(2),(3))").
//	** The sqlite3CodeSubselect will have added the LIMIT 1 clause in tht case.
//	** Since the limit is exactly 1, we only need to evaluate the left-most VALUES.
//	*/
func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var bShowAll, nRow, rc int32
	var v1 uintptr
	_, _, _, _ = bShowAll, nRow, rc, v1
	nRow = int32(1)
	rc = 0
	bShowAll = libc.BoolInt32((*TSelect)(unsafe.Pointer(p)).FpLimit == uintptr(0))
	for cond := true; cond; cond = int32(1) != 0 {
		if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 {
			return -int32(1)
		}
		if (*TSelect)(unsafe.Pointer(p)).FpPrior == uintptr(0) {
			break
		}
		p = (*TSelect)(unsafe.Pointer(p)).FpPrior
		nRow = nRow + bShowAll
	}
	if nRow == int32(1) {
		v1 = __ccgo_ts + 1711
	} else {
		v1 = __ccgo_ts + 22039
	}
	_sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22041, libc.VaList(bp+8, nRow, v1))
	for p != 0 {
		_selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1))
		if !(bShowAll != 0) {
			break
		}
		(*TSelect)(unsafe.Pointer(p)).FnSelectRow = int16(nRow)
		p = (*TSelect)(unsafe.Pointer(p)).FpNext
	}
	return rc
}

type _nlsversioninfo = T_nlsversioninfo

type _nlsversioninfoex = T_nlsversioninfoex

// C documentation
//
//	/*
//	** Deserialize cell iCell of node pNode. Populate the structure pointed
//	** to by pCell with the results.
//	*/
func _nodeGetCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32, pCell uintptr) {
	var ii int32
	var pCoord, pData uintptr
	_, _, _ = ii, pCoord, pData
	ii = 0
	(*TRtreeCell)(unsafe.Pointer(pCell)).FiRowid = _nodeGetRowid(tls, pRtree, pNode, iCell)
	pData = (*TRtreeNode)(unsafe.Pointer(pNode)).FzData + uintptr(libc.Int32FromInt32(12)+int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell)
	pCoord = pCell + 8
	for cond := true; cond; cond = ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2) {
		_readCoord(tls, pData, pCoord+uintptr(ii)*4)
		_readCoord(tls, pData+uintptr(4), pCoord+uintptr(ii+int32(1))*4)
		pData = pData + uintptr(8)
		ii = ii + int32(2)
	}
}

// C documentation
//
//	/*
//	** Return coordinate iCoord from cell iCell in node pNode.
//	*/
func _nodeGetCoord(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32, iCoord int32, pCoord uintptr) {
	_readCoord(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+uintptr(int32(12)+int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell+int32(4)*iCoord), pCoord)
}

// C documentation
//
//	/*
//	** Return the 64-bit integer value associated with cell iCell of
//	** node pNode. If pNode is a leaf node, this is a rowid. If it is
//	** an internal node, then the 64-bit integer is a child page number.
//	*/
func _nodeGetRowid(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32) (r Ti64) {
	return _readInt64(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+uintptr(int32(4)+int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell))
}

// C documentation
//
//	/*
//	** Given a node number iNode, return the corresponding key to use
//	** in the Rtree.aHash table.
//	*/
func _nodeHash(tls *libc.TLS, iNode Ti64) (r uint32) {
	return uint32(iNode) % uint32(HASHSIZE)
}

// C documentation
//
//	/*
//	** Insert the contents of cell pCell into node pNode. If the insert
//	** is successful, return SQLITE_OK.
//	**
//	** If there is not enough free space in pNode, return SQLITE_FULL.
//	*/
func _nodeInsertCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr) (r int32) {
	var nCell, nMaxCell int32
	_, _ = nCell, nMaxCell /* Maximum number of cells for pNode */
	nMaxCell = ((*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize - int32(4)) / int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)
	nCell = _readInt16(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+2)
	if nCell < nMaxCell {
		_nodeOverwriteCell(tls, pRtree, pNode, pCell, nCell)
		_writeInt16(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+2, nCell+int32(1))
		(*TRtreeNode)(unsafe.Pointer(pNode)).FisDirty = int32(1)
	}
	return libc.BoolInt32(nCell == nMaxCell)
}

// C documentation
//
//	/*
//	** Overwrite cell iCell of node pNode with the contents of pCell.
//	*/
func _nodeOverwriteCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iCell int32) {
	var ii int32
	var p uintptr
	_, _ = ii, p
	p = (*TRtreeNode)(unsafe.Pointer(pNode)).FzData + uintptr(int32(4)+int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell)
	p = p + uintptr(_writeInt64(tls, p, (*TRtreeCell)(unsafe.Pointer(pCell)).FiRowid))
	ii = 0
	for {
		if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)) {
			break
		}
		p = p + uintptr(_writeCoord(tls, p, pCell+8+uintptr(ii)*4))
		goto _1
	_1:
		;
		ii = ii + 1
	}
	(*TRtreeNode)(unsafe.Pointer(pNode)).FisDirty = int32(1)
}

// C documentation
//
//	/*
//	** Report an error that an expression is not valid for some set of
//	** pNC->ncFlags values determined by validMask.
//	**
//	** static void notValid(
//	**   Parse *pParse,       // Leave error message here
//	**   NameContext *pNC,    // The name context
//	**   const char *zMsg,    // Type of error
//	**   int validMask,       // Set of contexts for which prohibited
//	**   Expr *pExpr          // Invalidate this expression on error
//	** ){...}
//	**
//	** As an optimization, since the conditional is almost always false
//	** (because errors are rare), the conditional is moved outside of the
//	** function call using a macro.
//	*/
func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pExpr uintptr, pError uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var zIn uintptr
	_ = zIn
	zIn = __ccgo_ts + 8315
	if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 {
		zIn = __ccgo_ts + 8343
	} else {
		if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 {
			zIn = __ccgo_ts + 8361
		} else {
			if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 {
				zIn = __ccgo_ts + 8379
			}
		}
	}
	_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8397, libc.VaList(bp+8, zMsg, zIn))
	if pExpr != 0 {
		(*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL)
	}
	_sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError)
}

// C documentation
//
//	/*
//	** Implementation of ntile(). This assumes that the window frame has
//	** been coerced to:
//	**
//	**   ROWS CURRENT ROW AND UNBOUNDED FOLLOWING
//	*/
func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
	var p uintptr
	_ = p
	_ = nArg
	p = Xsqlite3_aggregate_context(tls, pCtx, int32(24))
	if p != 0 {
		if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 {
			(*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, **(**uintptr)(__ccgo_up(apArg)))
			if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 {
				Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25465, -int32(1))
			}
		}
		(*TNtileCtx)(unsafe.Pointer(p)).FnTotal = (*TNtileCtx)(unsafe.Pointer(p)).FnTotal + 1
	}
}

type _numberfmtA = T_numberfmtA

type _numberfmtW = T_numberfmtW

// C documentation
//
//	/*
//	** Return the numeric type for pMem, either MEM_Int or MEM_Real or both or
//	** none.
//	**
//	** Unlike applyNumericAffinity(), this routine does not modify pMem->flags.
//	** But it does set pMem->u.r and pMem->u.i appropriately.
//	*/
func _numericType(tls *libc.TLS, pMem uintptr) (r Tu16) {
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)|libc.Int32FromInt32(MEM_Null)) != 0 {
		return uint16(int32((*TMem)(unsafe.Pointer(pMem)).Fflags) & (libc.Int32FromInt32(MEM_Int) | libc.Int32FromInt32(MEM_Real) | libc.Int32FromInt32(MEM_IntReal) | libc.Int32FromInt32(MEM_Null)))
	}
	return _computeNumericType(tls, pMem)
	return uint16(0)
}

type _off64_t = T_off64_t

type _off_t = T_off_t

type _onexit_t = T_onexit_t

type _onexit_table_t = T_onexit_table_t

// C documentation
//
//	/*
//	** Ensure that the sub-journal file is open. If it is already open, this
//	** function is a no-op.
//	**
//	** SQLITE_OK is returned if everything goes according to plan. An
//	** SQLITE_IOERR_XXX error code is returned if a call to sqlite3OsOpen()
//	** fails.
//	*/
func _openSubJournal(tls *libc.TLS, pPager uintptr) (r int32) {
	var flags, nStmtSpill, rc int32
	_, _, _ = flags, nStmtSpill, rc
	rc = SQLITE_OK
	if !((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fsjfd)).FpMethods != libc.UintptrFromInt32(0)) {
		flags = libc.Int32FromInt32(SQLITE_OPEN_SUBJOURNAL) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE)
		nStmtSpill = _sqlite3Config.FnStmtSpill
		if int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) == int32(PAGER_JOURNALMODE_MEMORY) || (*TPager)(unsafe.Pointer(pPager)).FsubjInMemory != 0 {
			nStmtSpill = -int32(1)
		}
		rc = _sqlite3JournalOpen(tls, (*TPager)(unsafe.Pointer(pPager)).FpVfs, uintptr(0), (*TPager)(unsafe.Pointer(pPager)).Fsjfd, flags, nStmtSpill)
	}
	return rc
}

// C documentation
//
//	/*
//	** Translate from TK_xx operator to WO_xx bitmask.
//	*/
func _operatorMask(tls *libc.TLS, op int32) (r Tu16) {
	var c Tu16
	_ = c
	if op >= int32(TK_EQ) {
		c = uint16(libc.Int32FromInt32(WO_EQ) << (op - libc.Int32FromInt32(TK_EQ)))
	} else {
		if op == int32(TK_IN) {
			c = uint16(WO_IN)
		} else {
			if op == int32(TK_ISNULL) {
				c = uint16(WO_ISNULL)
			} else {
				c = uint16(WO_IS)
			}
		}
	}
	return c
}

const _osplatform = 0

const _osver = 0

// C documentation
//
//	/*
//	** Attempt to take an exclusive lock on the database file. If a PENDING lock
//	** is obtained instead, immediately release it.
//	*/
func _pagerExclusiveLock(tls *libc.TLS, pPager uintptr) (r int32) {
	var eOrigLock Tu8
	var rc int32
	_, _ = eOrigLock, rc /* Original lock */
	eOrigLock = (*TPager)(unsafe.Pointer(pPager)).FeLock
	rc = _pagerLockDb(tls, pPager, int32(EXCLUSIVE_LOCK))
	if rc != SQLITE_OK {
		/* If the attempt to grab the exclusive lock failed, release the
		 ** pending lock that may have been obtained instead.  */
		_pagerUnlockDb(tls, pPager, int32(eOrigLock))
	}
	return rc
}

// C documentation
//
//	/*
//	** The write transaction open on pPager is being committed (bCommit==1)
//	** or rolled back (bCommit==0).
//	**
//	** Return TRUE if and only if all dirty pages should be flushed to disk.
//	**
//	** Rules:
//	**
//	**   *  For non-TEMP databases, always sync to disk.  This is necessary
//	**      for transactions to be durable.
//	**
//	**   *  Sync TEMP database only on a COMMIT (not a ROLLBACK) when the backing
//	**      file has been created already (via a spill on pagerStress()) and
//	**      when the number of dirty pages in memory exceeds 25% of the total
//	**      cache size.
//	*/
func _pagerFlushOnCommit(tls *libc.TLS, pPager uintptr, bCommit int32) (r int32) {
	if int32((*TPager)(unsafe.Pointer(pPager)).FtempFile) == 0 {
		return int32(1)
	}
	if !(bCommit != 0) {
		return 0
	}
	if !((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != libc.UintptrFromInt32(0)) {
		return 0
	}
	return libc.BoolInt32(_sqlite3PCachePercentDirty(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache) >= int32(25))
}

// C documentation
//
//	/*
//	** Lock the database file to level eLock, which must be either SHARED_LOCK,
//	** RESERVED_LOCK or EXCLUSIVE_LOCK. If the caller is successful, set the
//	** Pager.eLock variable to the new locking state.
//	**
//	** Except, if Pager.eLock is set to UNKNOWN_LOCK when this function is
//	** called, do not modify it unless the new locking state is EXCLUSIVE_LOCK.
//	** See the comment above the #define of UNKNOWN_LOCK for an explanation
//	** of this.
//	*/
func _pagerLockDb(tls *libc.TLS, pPager uintptr, eLock int32) (r int32) {
	var rc, v1 int32
	_, _ = rc, v1
	rc = SQLITE_OK
	if int32((*TPager)(unsafe.Pointer(pPager)).FeLock) < eLock || int32((*TPager)(unsafe.Pointer(pPager)).FeLock) == libc.Int32FromInt32(EXCLUSIVE_LOCK)+libc.Int32FromInt32(1) {
		if (*TPager)(unsafe.Pointer(pPager)).FnoLock != 0 {
			v1 = SQLITE_OK
		} else {
			v1 = _sqlite3OsLock(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, eLock)
		}
		rc = v1
		if rc == SQLITE_OK && (int32((*TPager)(unsafe.Pointer(pPager)).FeLock) != libc.Int32FromInt32(EXCLUSIVE_LOCK)+libc.Int32FromInt32(1) || eLock == int32(EXCLUSIVE_LOCK)) {
			(*TPager)(unsafe.Pointer(pPager)).FeLock = uint8(eLock)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Check if the *-wal file that corresponds to the database opened by pPager
//	** exists if the database is not empty, or verify that the *-wal file does
//	** not exist (by deleting it) if the database file is empty.
//	**
//	** If the database is not empty and the *-wal file exists, open the pager
//	** in WAL mode.  If the database is empty or if no *-wal file exists and
//	** if no error occurs, make sure Pager.journalMode is not set to
//	** PAGER_JOURNALMODE_WAL.
//	**
//	** Return SQLITE_OK or an error code.
//	**
//	** The caller must hold a SHARED lock on the database file to call this
//	** function. Because an EXCLUSIVE lock on the db file is required to delete
//	** a WAL on a none-empty database, this ensures there is no race condition
//	** between the xAccess() below and an xDelete() being executed by some
//	** other connection.
//	*/
func _pagerOpenWalIfPresent(tls *libc.TLS, pPager uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* isWal at bp+0 */ int32
	var _ /* nPage at bp+4 */ TPgno
	_ = rc
	rc = SQLITE_OK
	if !((*TPager)(unsafe.Pointer(pPager)).FtempFile != 0) { /* True if WAL file exists */
		rc = _sqlite3OsAccess(tls, (*TPager)(unsafe.Pointer(pPager)).FpVfs, (*TPager)(unsafe.Pointer(pPager)).FzWal, SQLITE_ACCESS_EXISTS, bp)
		if rc == SQLITE_OK {
			if **(**int32)(__ccgo_up(bp)) != 0 { /* Size of the database file */
				rc = _pagerPagecount(tls, pPager, bp+4)
				if rc != 0 {
					return rc
				}
				if **(**TPgno)(__ccgo_up(bp + 4)) == uint32(0) {
					rc = _sqlite3OsDelete(tls, (*TPager)(unsafe.Pointer(pPager)).FpVfs, (*TPager)(unsafe.Pointer(pPager)).FzWal, 0)
				} else {
					rc = _sqlite3PagerOpenWal(tls, pPager, uintptr(0))
				}
			} else {
				if int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) == int32(PAGER_JOURNALMODE_WAL) {
					(*TPager)(unsafe.Pointer(pPager)).FjournalMode = uint8(PAGER_JOURNALMODE_DELETE)
				}
			}
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** This function is called as part of the transition from PAGER_OPEN
//	** to PAGER_READER state to determine the size of the database file
//	** in pages (assuming the page size currently stored in Pager.pageSize).
//	**
//	** If no error occurs, SQLITE_OK is returned and the size of the database
//	** in pages is stored in *pnPage. Otherwise, an error code (perhaps
//	** SQLITE_IOERR_FSTAT) is returned and *pnPage is left unmodified.
//	*/
func _pagerPagecount(tls *libc.TLS, pPager uintptr, pnPage uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var nPage TPgno
	var rc int32
	var _ /* n at bp+0 */ Ti64
	_, _ = nPage, rc /* Value to return via *pnPage */
	/* Query the WAL sub-system for the database size. The WalDbsize()
	 ** function returns zero if the WAL is not open (i.e. Pager.pWal==0), or
	 ** if the database size is not available. The database size is not
	 ** available from the WAL sub-system if the log file is empty or
	 ** contains no valid committed transactions.
	 */
	nPage = _sqlite3WalDbsize(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal)
	/* If the number of pages in the database is not available from the
	 ** WAL sub-system, determine the page count based on the size of
	 ** the database file.  If the size of the database file is not an
	 ** integer multiple of the page-size, round up the result.
	 */
	if nPage == uint32(0) && (*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) {
		**(**Ti64)(__ccgo_up(bp)) = 0 /* Size of db file in bytes */
		rc = _sqlite3OsFileSize(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, bp)
		if rc != SQLITE_OK {
			return rc
		}
		nPage = uint32((**(**Ti64)(__ccgo_up(bp)) + (*TPager)(unsafe.Pointer(pPager)).FpageSize - libc.Int64FromInt32(1)) / (*TPager)(unsafe.Pointer(pPager)).FpageSize)
	}
	/* If the current number of pages in the file is greater than the
	 ** configured maximum pager number, increase the allowed limit so
	 ** that the file can be read.
	 */
	if nPage > (*TPager)(unsafe.Pointer(pPager)).FmxPgno {
		(*TPager)(unsafe.Pointer(pPager)).FmxPgno = nPage
	}
	**(**TPgno)(__ccgo_up(pnPage)) = nPage
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Release a reference to page pPg. pPg must have been returned by an
//	** earlier call to pagerAcquireMapPage().
//	*/
func _pagerReleaseMapPage(tls *libc.TLS, pPg uintptr) {
	var pPager uintptr
	_ = pPager
	pPager = (*TPgHdr)(unsafe.Pointer(pPg)).FpPager
	(*TPager)(unsafe.Pointer(pPager)).FnMmapOut = (*TPager)(unsafe.Pointer(pPager)).FnMmapOut - 1
	(*TPgHdr)(unsafe.Pointer(pPg)).FpDirty = (*TPager)(unsafe.Pointer(pPager)).FpMmapFreelist
	(*TPager)(unsafe.Pointer(pPager)).FpMmapFreelist = pPg
	_sqlite3OsUnfetch(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int64((*TPgHdr)(unsafe.Pointer(pPg)).Fpgno-libc.Uint32FromInt32(1))*(*TPager)(unsafe.Pointer(pPager)).FpageSize, (*TPgHdr)(unsafe.Pointer(pPg)).FpData)
}

// C documentation
//
//	/*
//	** Execute a rollback if a transaction is active and unlock the
//	** database file.
//	**
//	** If the pager has already entered the ERROR state, do not attempt
//	** the rollback at this time. Instead, pager_unlock() is called. The
//	** call to pager_unlock() will discard all in-memory pages, unlock
//	** the database file and move the pager back to OPEN state. If this
//	** means that there is a hot-journal left in the file-system, the next
//	** connection to obtain a shared lock on the pager (which may be this one)
//	** will roll it back.
//	**
//	** If the pager has not already entered the ERROR state, but an IO or
//	** malloc error occurs during a rollback, then this will itself cause
//	** the pager to enter the ERROR state. Which will be cleared by the
//	** call to pager_unlock(), as described above.
//	*/
func _pagerUnlockAndRollback(tls *libc.TLS, pPager uintptr) {
	var eLock Tu8
	var errCode int32
	_, _ = eLock, errCode
	if int32((*TPager)(unsafe.Pointer(pPager)).FeState) != int32(PAGER_ERROR) && int32((*TPager)(unsafe.Pointer(pPager)).FeState) != PAGER_OPEN {
		if int32((*TPager)(unsafe.Pointer(pPager)).FeState) >= int32(PAGER_WRITER_LOCKED) {
			_sqlite3BeginBenignMalloc(tls)
			_sqlite3PagerRollback(tls, pPager)
			_sqlite3EndBenignMalloc(tls)
		} else {
			if !((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0) {
				_pager_end_transaction(tls, pPager, 0, 0)
			}
		}
	} else {
		if int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_ERROR) && int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) == int32(PAGER_JOURNALMODE_MEMORY) && (*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) {
			/* Special case for a ROLLBACK due to I/O error with an in-memory
			 ** journal:  We have to rollback immediately, before the journal is
			 ** closed, because once it is closed, all content is forgotten. */
			errCode = (*TPager)(unsafe.Pointer(pPager)).FerrCode
			eLock = (*TPager)(unsafe.Pointer(pPager)).FeLock
			(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_OPEN)
			(*TPager)(unsafe.Pointer(pPager)).FerrCode = SQLITE_OK
			(*TPager)(unsafe.Pointer(pPager)).FeLock = uint8(EXCLUSIVE_LOCK)
			_pager_playback(tls, pPager, int32(1))
			(*TPager)(unsafe.Pointer(pPager)).FerrCode = errCode
			(*TPager)(unsafe.Pointer(pPager)).FeLock = eLock
		}
	}
	_pager_unlock(tls, pPager)
}

// C documentation
//
//	/*
//	** Unlock the database file to level eLock, which must be either NO_LOCK
//	** or SHARED_LOCK. Regardless of whether or not the call to xUnlock()
//	** succeeds, set the Pager.eLock variable to match the (attempted) new lock.
//	**
//	** Except, if Pager.eLock is set to UNKNOWN_LOCK when this function is
//	** called, do not modify it. See the comment above the #define of
//	** UNKNOWN_LOCK for an explanation of this.
//	*/
func _pagerUnlockDb(tls *libc.TLS, pPager uintptr, eLock int32) (r int32) {
	var rc, v1 int32
	_, _ = rc, v1
	rc = SQLITE_OK
	if (*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) {
		if (*TPager)(unsafe.Pointer(pPager)).FnoLock != 0 {
			v1 = SQLITE_OK
		} else {
			v1 = _sqlite3OsUnlock(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, eLock)
		}
		rc = v1
		if int32((*TPager)(unsafe.Pointer(pPager)).FeLock) != libc.Int32FromInt32(EXCLUSIVE_LOCK)+libc.Int32FromInt32(1) {
			(*TPager)(unsafe.Pointer(pPager)).FeLock = uint8(eLock)
		}
	}
	(*TPager)(unsafe.Pointer(pPager)).FchangeCountDone = (*TPager)(unsafe.Pointer(pPager)).FtempFile /* ticket fb3b3024ea238d5c */
	return rc
}

// C documentation
//
//	/*
//	** This routine ends a transaction. A transaction is usually ended by
//	** either a COMMIT or a ROLLBACK operation. This routine may be called
//	** after rollback of a hot-journal, or if an error occurs while opening
//	** the journal file or writing the very first journal-header of a
//	** database transaction.
//	**
//	** This routine is never called in PAGER_ERROR state. If it is called
//	** in PAGER_NONE or PAGER_SHARED state and the lock held is less
//	** exclusive than a RESERVED lock, it is a no-op.
//	**
//	** Otherwise, any active savepoints are released.
//	**
//	** If the journal file is open, then it is "finalized". Once a journal
//	** file has been finalized it is not possible to use it to roll back a
//	** transaction. Nor will it be considered to be a hot-journal by this
//	** or any other database connection. Exactly how a journal is finalized
//	** depends on whether or not the pager is running in exclusive mode and
//	** the current journal-mode (Pager.journalMode value), as follows:
//	**
//	**   journalMode==MEMORY
//	**     Journal file descriptor is simply closed. This destroys an
//	**     in-memory journal.
//	**
//	**   journalMode==TRUNCATE
//	**     Journal file is truncated to zero bytes in size.
//	**
//	**   journalMode==PERSIST
//	**     The first 28 bytes of the journal file are zeroed. This invalidates
//	**     the first journal header in the file, and hence the entire journal
//	**     file. An invalid journal file cannot be rolled back.
//	**
//	**   journalMode==DELETE
//	**     The journal file is closed and deleted using sqlite3OsDelete().
//	**
//	**     If the pager is running in exclusive mode, this method of finalizing
//	**     the journal file is never used. Instead, if the journalMode is
//	**     DELETE and the pager is in exclusive mode, the method described under
//	**     journalMode==PERSIST is used instead.
//	**
//	** After the journal is finalized, the pager moves to PAGER_READER state.
//	** If running in non-exclusive rollback mode, the lock on the file is
//	** downgraded to a SHARED_LOCK.
//	**
//	** SQLITE_OK is returned if no error occurs. If an error occurs during
//	** any of the IO operations to finalize the journal file or unlock the
//	** database then the IO error code is returned to the user. If the
//	** operation to finalize the journal file fails, then the code still
//	** tries to unlock the database file if not in exclusive mode. If the
//	** unlock operation fails as well, then the first error code related
//	** to the first error encountered (the journal finalization one) is
//	** returned.
//	*/
func _pager_end_transaction(tls *libc.TLS, pPager uintptr, hasSuper int32, bCommit int32) (r int32) {
	var bDelete, rc, rc2, v1 int32
	_, _, _, _ = bDelete, rc, rc2, v1
	rc = SQLITE_OK  /* Error code from journal finalization operation */
	rc2 = SQLITE_OK /* Error code from db file unlock operation */
	/* Do nothing if the pager does not have an open write transaction
	 ** or at least a RESERVED lock. This function may be called when there
	 ** is no write-transaction active but a RESERVED or greater lock is
	 ** held under two circumstances:
	 **
	 **   1. After a successful hot-journal rollback, it is called with
	 **      eState==PAGER_NONE and eLock==EXCLUSIVE_LOCK.
	 **
	 **   2. If a connection with locking_mode=exclusive holding an EXCLUSIVE
	 **      lock switches back to locking_mode=normal and then executes a
	 **      read-transaction, this function is called with eState==PAGER_READER
	 **      and eLock==EXCLUSIVE_LOCK when the read-transaction is closed.
	 */
	if int32((*TPager)(unsafe.Pointer(pPager)).FeState) < int32(PAGER_WRITER_LOCKED) && int32((*TPager)(unsafe.Pointer(pPager)).FeLock) < int32(RESERVED_LOCK) {
		return SQLITE_OK
	}
	_releaseAllSavepoints(tls, pPager)
	if (*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) {
		/* Finalize the journal file. */
		if _sqlite3JournalIsInMemory(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) != 0 {
			/* assert( pPager->journalMode==PAGER_JOURNALMODE_MEMORY ); */
			_sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd)
		} else {
			if int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) == int32(PAGER_JOURNALMODE_TRUNCATE) {
				if (*TPager)(unsafe.Pointer(pPager)).FjournalOff == 0 {
					rc = SQLITE_OK
				} else {
					rc = _sqlite3OsTruncate(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, 0)
					if rc == SQLITE_OK && (*TPager)(unsafe.Pointer(pPager)).FfullSync != 0 {
						/* Make sure the new file size is written into the inode right away.
						 ** Otherwise the journal might resurrect following a power loss and
						 ** cause the last transaction to roll back.  See
						 ** https://bugzilla.mozilla.org/show_bug.cgi?id=1072773
						 */
						rc = _sqlite3OsSync(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, int32((*TPager)(unsafe.Pointer(pPager)).FsyncFlags))
					}
				}
				(*TPager)(unsafe.Pointer(pPager)).FjournalOff = 0
			} else {
				if int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) == int32(PAGER_JOURNALMODE_PERSIST) || (*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0 && int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) < int32(PAGER_JOURNALMODE_WAL) {
					rc = _zeroJournalHdr(tls, pPager, libc.BoolInt32(hasSuper != 0 || (*TPager)(unsafe.Pointer(pPager)).FtempFile != 0))
					(*TPager)(unsafe.Pointer(pPager)).FjournalOff = 0
				} else {
					/* This branch may be executed with Pager.journalMode==MEMORY if
					 ** a hot-journal was just rolled back. In this case the journal
					 ** file should be closed and deleted. If this connection writes to
					 ** the database file, it will do so using an in-memory journal.
					 */
					bDelete = libc.BoolInt32(!((*TPager)(unsafe.Pointer(pPager)).FtempFile != 0))
					_sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd)
					if bDelete != 0 {
						rc = _sqlite3OsDelete(tls, (*TPager)(unsafe.Pointer(pPager)).FpVfs, (*TPager)(unsafe.Pointer(pPager)).FzJournal, int32((*TPager)(unsafe.Pointer(pPager)).FextraSync))
					}
				}
			}
		}
	}
	_sqlite3BitvecDestroy(tls, (*TPager)(unsafe.Pointer(pPager)).FpInJournal)
	(*TPager)(unsafe.Pointer(pPager)).FpInJournal = uintptr(0)
	(*TPager)(unsafe.Pointer(pPager)).FnRec = 0
	if rc == SQLITE_OK {
		if (*TPager)(unsafe.Pointer(pPager)).FmemDb != 0 || _pagerFlushOnCommit(tls, pPager, bCommit) != 0 {
			_sqlite3PcacheCleanAll(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache)
		} else {
			_sqlite3PcacheClearWritable(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache)
		}
		_sqlite3PcacheTruncate(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, (*TPager)(unsafe.Pointer(pPager)).FdbSize)
	}
	if (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
		/* Drop the WAL write-lock, if any. Also, if the connection was in
		 ** locking_mode=exclusive mode but is no longer, drop the EXCLUSIVE
		 ** lock held on the database file.
		 */
		rc2 = _sqlite3WalEndWriteTransaction(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal)
	} else {
		if rc == SQLITE_OK && bCommit != 0 && (*TPager)(unsafe.Pointer(pPager)).FdbFileSize > (*TPager)(unsafe.Pointer(pPager)).FdbSize {
			/* This branch is taken when committing a transaction in rollback-journal
			 ** mode if the database file on disk is larger than the database image.
			 ** At this point the journal has been finalized and the transaction
			 ** successfully committed, but the EXCLUSIVE lock is still held on the
			 ** file. So it is safe to truncate the database file to its minimum
			 ** required size.  */
			rc = _pager_truncate(tls, pPager, (*TPager)(unsafe.Pointer(pPager)).FdbSize)
		}
	}
	if rc == SQLITE_OK && bCommit != 0 {
		rc = _sqlite3OsFileControl(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_COMMIT_PHASETWO), uintptr(0))
		if rc == int32(SQLITE_NOTFOUND) {
			rc = SQLITE_OK
		}
	}
	if !((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0) && (!((*TPager)(unsafe.Pointer(pPager)).FpWal != libc.UintptrFromInt32(0)) || _sqlite3WalExclusiveMode(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, 0) != 0) {
		rc2 = _pagerUnlockDb(tls, pPager, int32(SHARED_LOCK))
	}
	(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_READER)
	(*TPager)(unsafe.Pointer(pPager)).FsetSuper = uint8(0)
	if rc == SQLITE_OK {
		v1 = rc2
	} else {
		v1 = rc
	}
	return v1
}

// C documentation
//
//	/*
//	** This function is called at the start of every write transaction.
//	** There must already be a RESERVED or EXCLUSIVE lock on the database
//	** file when this routine is called.
//	**
//	** Open the journal file for pager pPager and write a journal header
//	** to the start of it. If there are active savepoints, open the sub-journal
//	** as well. This function is only used when the journal file is being
//	** opened to write a rollback log for a transaction. It is not used
//	** when opening a hot journal file to roll it back.
//	**
//	** If the journal file is already open (as it may be in exclusive mode),
//	** then this function just writes a journal header to the start of the
//	** already open file.
//	**
//	** Whether or not the journal file is opened by this function, the
//	** Pager.pInJournal bitvec structure is allocated.
//	**
//	** Return SQLITE_OK if everything is successful. Otherwise, return
//	** SQLITE_NOMEM if the attempt to allocate Pager.pInJournal fails, or
//	** an IO error code if opening or writing the journal file fails.
//	*/
func _pager_open_journal(tls *libc.TLS, pPager uintptr) (r int32) {
	var flags, nSpill, rc int32
	var pVfs uintptr
	_, _, _, _ = flags, nSpill, pVfs, rc
	rc = SQLITE_OK                                 /* Return code */
	pVfs = (*TPager)(unsafe.Pointer(pPager)).FpVfs /* Local cache of vfs pointer */
	/* If already in the error state, this function is a no-op.  But on
	 ** the other hand, this routine is never called if we are already in
	 ** an error state. */
	if (*TPager)(unsafe.Pointer(pPager)).FerrCode != 0 {
		return (*TPager)(unsafe.Pointer(pPager)).FerrCode
	}
	if !((*TPager)(unsafe.Pointer(pPager)).FpWal != libc.UintptrFromInt32(0)) && int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) != int32(PAGER_JOURNALMODE_OFF) {
		(*TPager)(unsafe.Pointer(pPager)).FpInJournal = _sqlite3BitvecCreate(tls, (*TPager)(unsafe.Pointer(pPager)).FdbSize)
		if (*TPager)(unsafe.Pointer(pPager)).FpInJournal == uintptr(0) {
			return int32(SQLITE_NOMEM)
		}
		/* Open the journal file if it is not already open. */
		if !((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != libc.UintptrFromInt32(0)) {
			if int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) == int32(PAGER_JOURNALMODE_MEMORY) {
				_sqlite3MemJournalOpen(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd)
			} else {
				flags = libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)
				if (*TPager)(unsafe.Pointer(pPager)).FtempFile != 0 {
					flags = flags | (libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) | libc.Int32FromInt32(SQLITE_OPEN_TEMP_JOURNAL))
					flags = flags | int32(SQLITE_OPEN_EXCLUSIVE)
					nSpill = _sqlite3Config.FnStmtSpill
				} else {
					flags = flags | int32(SQLITE_OPEN_MAIN_JOURNAL)
					nSpill = _jrnlBufferSize(tls, pPager)
				}
				/* Verify that the database still has the same name as it did when
				 ** it was originally opened. */
				rc = _databaseIsUnmoved(tls, pPager)
				if rc == SQLITE_OK {
					rc = _sqlite3JournalOpen(tls, pVfs, (*TPager)(unsafe.Pointer(pPager)).FzJournal, (*TPager)(unsafe.Pointer(pPager)).Fjfd, flags, nSpill)
				}
			}
		}
		/* Write the first journal header to the journal file and open
		 ** the sub-journal if necessary.
		 */
		if rc == SQLITE_OK {
			/* TODO: Check if all of these are really required. */
			(*TPager)(unsafe.Pointer(pPager)).FnRec = 0
			(*TPager)(unsafe.Pointer(pPager)).FjournalOff = 0
			(*TPager)(unsafe.Pointer(pPager)).FsetSuper = uint8(0)
			(*TPager)(unsafe.Pointer(pPager)).FjournalHdr = 0
			rc = _writeJournalHdr(tls, pPager)
		}
	}
	if rc != SQLITE_OK {
		_sqlite3BitvecDestroy(tls, (*TPager)(unsafe.Pointer(pPager)).FpInJournal)
		(*TPager)(unsafe.Pointer(pPager)).FpInJournal = uintptr(0)
		(*TPager)(unsafe.Pointer(pPager)).FjournalOff = 0
	} else {
		(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_WRITER_CACHEMOD)
	}
	return rc
}

// C documentation
//
//	/*
//	** This function is a no-op if the pager is in exclusive mode and not
//	** in the ERROR state. Otherwise, it switches the pager to PAGER_OPEN
//	** state.
//	**
//	** If the pager is not in exclusive-access mode, the database file is
//	** completely unlocked. If the file is unlocked and the file-system does
//	** not exhibit the UNDELETABLE_WHEN_OPEN property, the journal file is
//	** closed (if it is open).
//	**
//	** If the pager is in ERROR state when this function is called, the
//	** contents of the pager cache are discarded before switching back to
//	** the OPEN state. Regardless of whether the pager is in exclusive-mode
//	** or not, any journal file left in the file-system will be treated
//	** as a hot-journal and rolled back the next time a read-transaction
//	** is opened (by this or by any other connection).
//	*/
func _pager_unlock(tls *libc.TLS, pPager uintptr) {
	var iDc, rc, v1 int32
	_, _, _ = iDc, rc, v1
	_sqlite3BitvecDestroy(tls, (*TPager)(unsafe.Pointer(pPager)).FpInJournal)
	(*TPager)(unsafe.Pointer(pPager)).FpInJournal = uintptr(0)
	_releaseAllSavepoints(tls, pPager)
	if (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
		if int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_ERROR) {
			/* If an IO error occurs in wal.c while attempting to wrap the wal file,
			 ** then the Wal object may be holding a write-lock but no read-lock.
			 ** This call ensures that the write-lock is dropped as well. We cannot
			 ** have sqlite3WalEndReadTransaction() drop the write-lock, as it once
			 ** did, because this would break "BEGIN EXCLUSIVE" handling for
			 ** SQLITE_ENABLE_SETLK_TIMEOUT builds.  */
			_sqlite3WalEndWriteTransaction(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal)
		}
		_sqlite3WalEndReadTransaction(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal)
		(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_OPEN)
	} else {
		if !((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0) {
			if (*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) {
				v1 = _sqlite3OsDeviceCharacteristics(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)
			} else {
				v1 = 0
			} /* Error code returned by pagerUnlockDb() */
			iDc = v1
			/* If the operating system support deletion of open files, then
			 ** close the journal file when dropping the database lock.  Otherwise
			 ** another connection with journal_mode=delete might delete the file
			 ** out from under us.
			 */
			if 0 == iDc&int32(SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN) || int32(1) != int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode)&int32(5) {
				_sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd)
			}
			/* If the pager is in the ERROR state and the call to unlock the database
			 ** file fails, set the current lock to UNKNOWN_LOCK. See the comment
			 ** above the #define for UNKNOWN_LOCK for an explanation of why this
			 ** is necessary.
			 */
			rc = _pagerUnlockDb(tls, pPager, NO_LOCK)
			if rc != SQLITE_OK && int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_ERROR) {
				(*TPager)(unsafe.Pointer(pPager)).FeLock = uint8(libc.Int32FromInt32(EXCLUSIVE_LOCK) + libc.Int32FromInt32(1))
			}
			/* The pager state may be changed from PAGER_ERROR to PAGER_OPEN here
			 ** without clearing the error code. This is intentional - the error
			 ** code is cleared and the cache reset in the block below.
			 */
			(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_OPEN)
		}
	}
	/* If Pager.errCode is set, the contents of the pager cache cannot be
	 ** trusted. Now that there are no outstanding references to the pager,
	 ** it can safely move back to PAGER_OPEN state. This happens in both
	 ** normal and exclusive-locking mode.
	 */
	if (*TPager)(unsafe.Pointer(pPager)).FerrCode != 0 {
		if int32((*TPager)(unsafe.Pointer(pPager)).FtempFile) == 0 {
			_pager_reset(tls, pPager)
			(*TPager)(unsafe.Pointer(pPager)).FchangeCountDone = uint8(0)
			(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_OPEN)
		} else {
			if (*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) {
				v1 = PAGER_OPEN
			} else {
				v1 = int32(PAGER_READER)
			}
			(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(v1)
		}
		if (*TPager)(unsafe.Pointer(pPager)).FbUseFetch != 0 {
			_sqlite3OsUnfetch(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, 0, uintptr(0))
		}
		(*TPager)(unsafe.Pointer(pPager)).FerrCode = SQLITE_OK
		_setGetterMethod(tls, pPager)
	}
	(*TPager)(unsafe.Pointer(pPager)).FjournalOff = 0
	(*TPager)(unsafe.Pointer(pPager)).FjournalHdr = 0
	(*TPager)(unsafe.Pointer(pPager)).FsetSuper = uint8(0)
}

// C documentation
//
//	/*
//	** Attempt to parse the given string into a julian day number.  Return
//	** the number of errors.
//	**
//	** The following are acceptable forms for the input string:
//	**
//	**      YYYY-MM-DD HH:MM:SS.FFF  +/-HH:MM
//	**      DDDD.DD
//	**      now
//	**
//	** In the first form, the +/-HH:MM is always optional.  The fractional
//	** seconds extension (the ".FFF") is optional.  The seconds portion
//	** (":SS.FFF") is option.  The year and date can be omitted as long
//	** as there is a time string.  The time string can be omitted as long
//	** as there is a year and date.
//	*/
func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* r at bp+0 */ float64
	if _parseYyyyMmDd(tls, zDate, p) == 0 {
		return 0
	} else {
		if _parseHhMmSs(tls, zDate, p) == 0 {
			return 0
		} else {
			if _sqlite3StrICmp(tls, zDate, __ccgo_ts+1235) == 0 && _sqlite3NotPureFunc(tls, context) != 0 {
				return _setDateTimeToCurrent(tls, context, p)
			} else {
				if _sqlite3AtoF(tls, zDate, bp) > 0 {
					_setRawDateNumber(tls, p, **(**float64)(__ccgo_up(bp)))
					return 0
				} else {
					if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1239) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1246) == 0) && _sqlite3NotPureFunc(tls, context) != 0 {
						libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4)
						return _setDateTimeToCurrent(tls, context, p)
					}
				}
			}
		}
	}
	return int32(1)
}

/* The julian day number for 9999-12-31 23:59:59.999 is 5373484.4999999.
** Multiplying this by 86400000 gives 464269060799999 as the maximum value
** for DateTime.iJD.
**
** But some older compilers (ex: gcc 4.2.1 on older Macs) cannot deal with
** such a large integer literal, so we have to encode it.
 */

// C documentation
//
//	/*
//	** Parse times of the form HH:MM or HH:MM:SS or HH:MM:SS.FFFF.
//	** The HH, MM, and SS must each be exactly 2 digits.  The
//	** fractional seconds FFFF can be one or more digits.
//	**
//	** Return 1 if there is a parsing error and 0 on success.
//	*/
func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var ms, rScale float64
	var _ /* h at bp+0 */ int32
	var _ /* m at bp+4 */ int32
	var _ /* s at bp+8 */ int32
	_, _ = ms, rScale
	ms = float64(0)
	if _getDigits(tls, zDate, __ccgo_ts+1211, libc.VaList(bp+24, bp, bp+4)) != int32(2) {
		return int32(1)
	}
	zDate = zDate + uintptr(5)
	if int32(**(**int8)(__ccgo_up(zDate))) == int32(':') {
		zDate = zDate + 1
		if _getDigits(tls, zDate, __ccgo_ts+1219, libc.VaList(bp+24, bp+8)) != int32(1) {
			return int32(1)
		}
		zDate = zDate + uintptr(2)
		if int32(**(**int8)(__ccgo_up(zDate))) == int32('.') && int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zDate + 1)))])&int32(0x04) != 0 {
			rScale = float64(1)
			zDate = zDate + 1
			for int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zDate)))])&int32(0x04) != 0 {
				ms = float64(ms*float64(10)) + float64(**(**int8)(__ccgo_up(zDate))) - libc.Float64FromUint8('0')
				rScale = rScale * float64(10)
				zDate = zDate + 1
			}
			ms = ms / rScale
			/* Truncate to avoid problems with sub-milliseconds
			 ** rounding. https://sqlite.org/forum/forumpost/766a2c9231 */
			if ms > float64(0.999) {
				ms = float64(0.999)
			}
		}
	} else {
		**(**int32)(__ccgo_up(bp + 8)) = 0
	}
	(*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0
	libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1)
	(*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1)
	(*TDateTime)(unsafe.Pointer(p)).Fh = **(**int32)(__ccgo_up(bp))
	(*TDateTime)(unsafe.Pointer(p)).Fm = **(**int32)(__ccgo_up(bp + 4))
	(*TDateTime)(unsafe.Pointer(p)).Fs = float64(**(**int32)(__ccgo_up(bp + 8))) + ms
	if _parseTimezone(tls, zDate, p) != 0 {
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Parse a timezone extension on the end of a date-time.
//	** The extension is of the form:
//	**
//	**        (+/-)HH:MM
//	**
//	** Or the "zulu" notation:
//	**
//	**        Z
//	**
//	** If the parse is successful, write the number of minutes
//	** of change in p->tz and return 0.  If a parser error occurs,
//	** return non-zero.
//	**
//	** A missing specifier is not considered an error.
//	*/
func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var c, sgn int32
	var _ /* nHr at bp+0 */ int32
	var _ /* nMn at bp+4 */ int32
	_, _ = c, sgn
	sgn = 0
	for int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zDate)))])&int32(0x01) != 0 {
		zDate = zDate + 1
	}
	(*TDateTime)(unsafe.Pointer(p)).Ftz = 0
	c = int32(**(**int8)(__ccgo_up(zDate)))
	if c == int32('-') {
		sgn = -int32(1)
	} else {
		if c == int32('+') {
			sgn = +libc.Int32FromInt32(1)
		} else {
			if c == int32('Z') || c == int32('z') {
				zDate = zDate + 1
				libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10)
				libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8)
				goto zulu_time
			} else {
				return libc.BoolInt32(c != 0)
			}
		}
	}
	zDate = zDate + 1
	if _getDigits(tls, zDate, __ccgo_ts+1203, libc.VaList(bp+16, bp, bp+4)) != int32(2) {
		return int32(1)
	}
	zDate = zDate + uintptr(5)
	(*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (**(**int32)(__ccgo_up(bp + 4)) + **(**int32)(__ccgo_up(bp))*int32(60))
	if (*TDateTime)(unsafe.Pointer(p)).Ftz == 0 { /* Forum post 2025-09-17T10:12:14z */
		libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10)
		libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8)
	}
	goto zulu_time
zulu_time:
	;
	for int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zDate)))])&int32(0x01) != 0 {
		zDate = zDate + 1
	}
	return libc.BoolInt32(int32(**(**int8)(__ccgo_up(zDate))) != 0)
}

// C documentation
//
//	/*
//	** Parse dates of the form
//	**
//	**     YYYY-MM-DD HH:MM:SS.FFF
//	**     YYYY-MM-DD HH:MM:SS
//	**     YYYY-MM-DD HH:MM
//	**     YYYY-MM-DD
//	**
//	** Write the result into the DateTime structure and return 0
//	** on success and 1 if the input string is not a well-formed
//	** date.
//	*/
func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var neg, v1 int32
	var _ /* D at bp+8 */ int32
	var _ /* M at bp+4 */ int32
	var _ /* Y at bp+0 */ int32
	_, _ = neg, v1
	if int32(**(**int8)(__ccgo_up(zDate))) == int32('-') {
		zDate = zDate + 1
		neg = int32(1)
	} else {
		neg = 0
	}
	if _getDigits(tls, zDate, __ccgo_ts+1223, libc.VaList(bp+24, bp, bp+4, bp+8)) != int32(3) {
		return int32(1)
	}
	zDate = zDate + uintptr(10)
	for int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zDate)))])&int32(0x01) != 0 || int32('T') == int32(**(**Tu8)(__ccgo_up(zDate))) {
		zDate = zDate + 1
	}
	if _parseHhMmSs(tls, zDate, p) == 0 {
		/* We got the time */
	} else {
		if int32(**(**int8)(__ccgo_up(zDate))) == 0 {
			(*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0
		} else {
			return int32(1)
		}
	}
	(*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0
	(*TDateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1)
	if neg != 0 {
		v1 = -**(**int32)(__ccgo_up(bp))
	} else {
		v1 = **(**int32)(__ccgo_up(bp))
	}
	(*TDateTime)(unsafe.Pointer(p)).FY = v1
	(*TDateTime)(unsafe.Pointer(p)).FM = **(**int32)(__ccgo_up(bp + 4))
	(*TDateTime)(unsafe.Pointer(p)).FD = **(**int32)(__ccgo_up(bp + 8))
	_computeFloor(tls, p)
	if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 {
		_computeJD(tls, p)
	}
	return 0
}

/* Forward declaration */

// C documentation
//
//	/* Add a single new term to an ExprList that is used to store a
//	  ** list of identifiers.  Report an error if the ID list contains
//	  ** a COLLATE clause or an ASC or DESC keyword, except ignore the
//	  ** error while parsing a legacy schema.
//	  */
func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pIdToken uintptr, hasCollate int32, sortOrder int32) (r uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var p uintptr
	_ = p
	p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0))
	if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+26175, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz))
	}
	_sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1))
	return p
}

/**************** End of %include directives **********************************/
/* These constants specify the various numeric values for terminal symbols.
***************** Begin token definitions *************************************/
/**************** End token definitions ***************************************/

// C documentation
//
//	/* Memory allocator for parser stack resizing.  This is a thin wrapper around
//	  ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate
//	  ** testing.
//	  */
func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64, pParse uintptr) (r uintptr) {
	var p, v1 uintptr
	_, _ = p, v1
	if _sqlite3FaultSim(tls, int32(700)) != 0 {
		v1 = uintptr(0)
	} else {
		v1 = Xsqlite3_realloc(tls, pOld, int32(newSize))
	}
	p = v1
	if p == uintptr(0) {
		_sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb)
	}
	return p
}

// C documentation
//
//	/*
//	** Generate a syntax error
//	*/
func _parserSyntaxError(tls *libc.TLS, pParse uintptr, p uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+26060, libc.VaList(bp+8, p))
}

// C documentation
//
//	/*
//	** If there are currently more than nMaxPage pages allocated, try
//	** to recycle pages to reduce the number allocated to nMaxPage.
//	*/
func _pcache1EnforceMaxPage(tls *libc.TLS, pCache uintptr) {
	var p, pGroup, v1 uintptr
	var v2 bool
	_, _, _, _ = p, pGroup, v1, v2
	pGroup = (*TPCache1)(unsafe.Pointer(pCache)).FpGroup
	for {
		if v2 = (*TPGroup)(unsafe.Pointer(pGroup)).FnPurgeable > (*TPGroup)(unsafe.Pointer(pGroup)).FnMaxPage; v2 {
			v1 = (*TPGroup)(unsafe.Pointer(pGroup)).Flru.FpLruPrev
			p = v1
		}
		if !(v2 && int32((*TPgHdr1)(unsafe.Pointer(v1)).FisAnchor) == 0) {
			break
		}
		_pcache1PinPage(tls, p)
		_pcache1RemoveFromHash(tls, p, int32(1))
	}
	if (*TPCache1)(unsafe.Pointer(pCache)).FnPage == uint32(0) && (*TPCache1)(unsafe.Pointer(pCache)).FpBulk != 0 {
		Xsqlite3_free(tls, (*TPCache1)(unsafe.Pointer(pCache)).FpBulk)
		v1 = libc.UintptrFromInt32(0)
		(*TPCache1)(unsafe.Pointer(pCache)).FpFree = v1
		(*TPCache1)(unsafe.Pointer(pCache)).FpBulk = v1
	}
}

// C documentation
//
//	/*
//	** Implementation of the sqlite3_pcache.xPagecount method.
//	*/
func _pcache1Pagecount(tls *libc.TLS, p uintptr) (r int32) {
	var n int32
	var pCache uintptr
	_, _ = n, pCache
	pCache = p
	Xsqlite3_mutex_enter(tls, (*TPGroup)(unsafe.Pointer((*TPCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
	n = int32((*TPCache1)(unsafe.Pointer(pCache)).FnPage)
	Xsqlite3_mutex_leave(tls, (*TPGroup)(unsafe.Pointer((*TPCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
	return n
}

// C documentation
//
//	/*
//	** Manage pPage's participation on the dirty list.  Bits of the addRemove
//	** argument determines what operation to do.  The 0x01 bit means first
//	** remove pPage from the dirty list.  The 0x02 means add pPage back to
//	** the dirty list.  Doing both moves pPage to the front of the dirty list.
//	*/
func _pcacheManageDirtyList(tls *libc.TLS, pPage uintptr, addRemove Tu8) {
	var p uintptr
	_ = p
	p = (*TPgHdr)(unsafe.Pointer(pPage)).FpCache
	if int32(addRemove)&int32(PCACHE_DIRTYLIST_REMOVE) != 0 {
		/* Update the PCache1.pSynced variable if necessary. */
		if (*TPCache)(unsafe.Pointer(p)).FpSynced == pPage {
			(*TPCache)(unsafe.Pointer(p)).FpSynced = (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev
		}
		if (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext != 0 {
			(*TPgHdr)(unsafe.Pointer((*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext)).FpDirtyPrev = (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev
		} else {
			(*TPCache)(unsafe.Pointer(p)).FpDirtyTail = (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev
		}
		if (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev != 0 {
			(*TPgHdr)(unsafe.Pointer((*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev)).FpDirtyNext = (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext
		} else {
			/* If there are now no dirty pages in the cache, set eCreate to 2.
			 ** This is an optimization that allows sqlite3PcacheFetch() to skip
			 ** searching for a dirty page to eject from the cache when it might
			 ** otherwise have to.  */
			(*TPCache)(unsafe.Pointer(p)).FpDirty = (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext
			if (*TPCache)(unsafe.Pointer(p)).FpDirty == uintptr(0) { /*OPTIMIZATION-IF-TRUE*/
				(*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2)
			}
		}
	}
	if int32(addRemove)&int32(PCACHE_DIRTYLIST_ADD) != 0 {
		(*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev = uintptr(0)
		(*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext = (*TPCache)(unsafe.Pointer(p)).FpDirty
		if (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext != 0 {
			(*TPgHdr)(unsafe.Pointer((*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext)).FpDirtyPrev = pPage
		} else {
			(*TPCache)(unsafe.Pointer(p)).FpDirtyTail = pPage
			if (*TPCache)(unsafe.Pointer(p)).FbPurgeable != 0 {
				(*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(1)
			}
		}
		(*TPCache)(unsafe.Pointer(p)).FpDirty = pPage
		/* If pSynced is NULL and this page has a clear NEED_SYNC flag, set
		 ** pSynced to point to it. Checking the NEED_SYNC flag is an
		 ** optimization, as if pSynced points to a page with the NEED_SYNC
		 ** flag set sqlite3PcacheFetchStress() searches through all newer
		 ** entries of the dirty-list for a page with NEED_SYNC clear anyway.  */
		if !((*TPCache)(unsafe.Pointer(p)).FpSynced != 0) && 0 == int32((*TPgHdr)(unsafe.Pointer(pPage)).Fflags)&int32(PGHDR_NEED_SYNC) {
			(*TPCache)(unsafe.Pointer(p)).FpSynced = pPage
		}
	}
}

const _pctype = 0

const _pgmptr = 0

type _pid_t = T_pid_t

// C documentation
//
//	/* Names of columns for pragmas that return multi-column result
//	** or that return single-column results where the name of the
//	** result column is different from the name of the pragma
//	*/
var _pragCName = [57]uintptr{
	0:  __ccgo_ts + 6865,
	1:  __ccgo_ts + 19003,
	2:  __ccgo_ts + 10594,
	3:  __ccgo_ts + 19007,
	4:  __ccgo_ts + 19012,
	5:  __ccgo_ts + 19015,
	6:  __ccgo_ts + 19025,
	7:  __ccgo_ts + 19035,
	8:  __ccgo_ts + 19041,
	9:  __ccgo_ts + 19045,
	10: __ccgo_ts + 19050,
	11: __ccgo_ts + 19055,
	12: __ccgo_ts + 19063,
	13: __ccgo_ts + 19074,
	14: __ccgo_ts + 19077,
	15: __ccgo_ts + 19045,
	16: __ccgo_ts + 19084,
	17: __ccgo_ts + 19050,
	18: __ccgo_ts + 19092,
	19: __ccgo_ts + 19096,
	20: __ccgo_ts + 19101,
	21: __ccgo_ts + 19107,
	22: __ccgo_ts + 19045,
	23: __ccgo_ts + 19050,
	24: __ccgo_ts + 19114,
	25: __ccgo_ts + 19119,
	26: __ccgo_ts + 19122,
	27: __ccgo_ts + 19129,
	28: __ccgo_ts + 19041,
	29: __ccgo_ts + 19045,
	30: __ccgo_ts + 19135,
	31: __ccgo_ts + 19140,
	32: __ccgo_ts + 19145,
	33: __ccgo_ts + 19003,
	34: __ccgo_ts + 19045,
	35: __ccgo_ts + 19149,
	36: __ccgo_ts + 19156,
	37: __ccgo_ts + 19163,
	38: __ccgo_ts + 14265,
	39: __ccgo_ts + 14261,
	40: __ccgo_ts + 19171,
	41: __ccgo_ts + 19176,
	42: __ccgo_ts + 19181,
	43: __ccgo_ts + 10594,
	44: __ccgo_ts + 19186,
	45: __ccgo_ts + 6868,
	46: __ccgo_ts + 19192,
	47: __ccgo_ts + 19197,
	48: __ccgo_ts + 18387,
	49: __ccgo_ts + 19202,
	50: __ccgo_ts + 19003,
	51: __ccgo_ts + 19045,
	52: __ccgo_ts + 19215,
	53: __ccgo_ts + 19220,
	54: __ccgo_ts + 19229,
	55: __ccgo_ts + 19236,
	56: __ccgo_ts + 19247,
}

// C documentation
//
//	/*
//	** Create zero or more entries in the output for the SQL functions
//	** defined by FuncDef p.
//	*/
func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, showInternFuncs int32) {
	bp := tls.Alloc(64)
	defer tls.Free(64)
	var mask Tu32
	var zType uintptr
	_, _ = mask, zType
	mask = uint32(libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL))
	if showInternFuncs != 0 {
		mask = uint32(0xffffffff)
	}
	for {
		if !(p != 0) {
			break
		}
		if (*TFuncDef)(unsafe.Pointer(p)).FxSFunc == uintptr(0) {
			goto _1
		}
		if (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_INTERNAL) != uint32(0) && showInternFuncs == 0 {
			goto _1
		}
		if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) {
			zType = __ccgo_ts + 20437
		} else {
			if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) {
				zType = __ccgo_ts + 20439
			} else {
				zType = __ccgo_ts + 9126
			}
		}
		_sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+20441, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS)))
		goto _1
	_1:
		;
		p = (*TFuncDef)(unsafe.Pointer(p)).FpNext
	}
}

// C documentation
//
//	/* Figure out the best index to use to search a pragma virtual table.
//	**
//	** There are not really any index choices.  But we want to encourage the
//	** query planner to give == constraints on as many hidden parameters as
//	** possible, and especially on the first hidden parameter.  So return a
//	** high cost if hidden parameters are unconstrained.
//	*/
func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) {
	var i, j int32
	var pConstraint, pTab uintptr
	var seen [2]int32
	_, _, _, _, _ = i, j, pConstraint, pTab, seen
	pTab = tab
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1)
	if int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden) == 0 {
		return SQLITE_OK
	}
	pConstraint = (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint
	seen[0] = 0
	seen[int32(1)] = 0
	i = 0
	for {
		if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) {
			break
		}
		if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) {
			goto _1
		}
		if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) {
			goto _1
		}
		if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 {
			return int32(SQLITE_CONSTRAINT)
		}
		j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden)
		seen[j] = i + int32(1)
		goto _1
	_1:
		;
		i = i + 1
		pConstraint += 12
	}
	if seen[0] == 0 {
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(2147483647)
		(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(2147483647)
		return SQLITE_OK
	}
	j = seen[0] - int32(1)
	(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1)
	(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1)
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20)
	(*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20)
	if seen[int32(1)] != 0 {
		j = seen[int32(1)] - int32(1)
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2)
		(**(**Tsqlite3_index_constraint_usage)(__ccgo_up((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1)
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Prepare the SQL statement in buffer zSql against database handle db.
//	** If successful, set *ppStmt to point to the new statement and return
//	** SQLITE_OK.
//	**
//	** Otherwise, if an error does occur, set *ppStmt to NULL and return
//	** an SQLite error code. Additionally, set output variable *pzErrmsg to
//	** point to a buffer containing an error message. It is the responsibility
//	** of the caller to (eventually) free this buffer using sqlite3_free().
//	*/
func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg uintptr, zSql uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	_ = rc
	rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0))
	if rc != SQLITE_OK {
		**(**uintptr)(__ccgo_up(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4729, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db)))
		**(**uintptr)(__ccgo_up(ppStmt)) = uintptr(0)
	}
	return rc
}

// C documentation
//
//	/*
//	** Allocate memory for a temporary buffer needed for printf rendering.
//	**
//	** If the requested size of the temp buffer is larger than the size
//	** of the output buffer in pAccum, then cause an SQLITE_TOOBIG error.
//	** Do the size check before the memory allocation to prevent rogue
//	** SQL from requesting large allocations using the precision or width
//	** field of the printf() function.
//	*/
func _printfTempBuf(tls *libc.TLS, pAccum uintptr, n Tsqlite3_int64) (r uintptr) {
	var z uintptr
	_ = z
	if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError != 0 {
		return uintptr(0)
	}
	if n > int64((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnAlloc) && n > int64((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc) {
		_sqlite3StrAccumSetError(tls, pAccum, uint8(SQLITE_TOOBIG))
		return uintptr(0)
	}
	z = Xsqlite3_malloc(tls, int32(n))
	if z == uintptr(0) {
		_sqlite3StrAccumSetError(tls, pAccum, uint8(SQLITE_NOMEM))
	}
	return z
}

/*
** On machines with a small stack size, you can redefine the
** SQLITE_PRINT_BUF_SIZE to be something smaller, if desired.
 */

/*
** Hard limit on the precision of floating-point conversions.
 */

// C documentation
//
//	/*
//	** Read an entry from the pointer map.
//	**
//	** This routine retrieves the pointer map entry for page 'key', writing
//	** the type and parent page number to *pEType and *pPgno respectively.
//	** An error code is returned if something goes wrong, otherwise SQLITE_OK.
//	*/
func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iPtrmap, offset, rc int32
	var pPtrmap uintptr
	var _ /* pDbPage at bp+0 */ uintptr
	_, _, _, _ = iPtrmap, offset, pPtrmap, rc
	iPtrmap = int32(_ptrmapPageno(tls, pBt, key))
	rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, uint32(iPtrmap), bp, 0)
	if rc != 0 {
		return rc
	}
	pPtrmap = _sqlite3PagerGetData(tls, **(**uintptr)(__ccgo_up(bp)))
	offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1)))
	if offset < 0 {
		_sqlite3PagerUnref(tls, **(**uintptr)(__ccgo_up(bp)))
		return _sqlite3CorruptError(tls, int32(74364))
	}
	**(**Tu8)(__ccgo_up(pEType)) = **(**Tu8)(__ccgo_up(pPtrmap + uintptr(offset)))
	if pPgno != 0 {
		**(**TPgno)(__ccgo_up(pPgno)) = _sqlite3Get4byte(tls, pPtrmap+uintptr(offset+int32(1)))
	}
	_sqlite3PagerUnref(tls, **(**uintptr)(__ccgo_up(bp)))
	if int32(**(**Tu8)(__ccgo_up(pEType))) < int32(1) || int32(**(**Tu8)(__ccgo_up(pEType))) > int32(5) {
		return _sqlite3CorruptError(tls, int32(74372))
	}
	return SQLITE_OK
}

/*
** Given a btree page and a cell index (0 means the first cell on
** the page, 1 means the second cell, and so forth) return a pointer
** to the cell content.
**
** findCellPastPtr() does the same except it skips past the initial
** 4-byte child pointer found on interior pages, if there is one.
**
** This routine works only for pages that do not contain overflow cells.
 */

// C documentation
//
//	/*
//	** Given a page number of a regular database page, return the page
//	** number for the pointer-map page that contains the entry for the
//	** input page number.
//	**
//	** Return 0 (not a valid page) for pgno==1 since there is
//	** no pointer map associated with page 1.  The integrity_check logic
//	** requires that ptrmapPageno(*,1)!=1.
//	*/
func _ptrmapPageno(tls *libc.TLS, pBt uintptr, pgno TPgno) (r TPgno) {
	var iPtrMap, ret TPgno
	var nPagesPerMapPage int32
	_, _, _ = iPtrMap, nPagesPerMapPage, ret
	if pgno < uint32(2) {
		return uint32(0)
	}
	nPagesPerMapPage = int32((*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(5) + uint32(1))
	iPtrMap = (pgno - uint32(2)) / uint32(nPagesPerMapPage)
	ret = iPtrMap*uint32(nPagesPerMapPage) + uint32(2)
	if ret == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) {
		ret = ret + 1
	}
	return ret
}

// C documentation
//
//	/*
//	** Write an entry into the pointer map.
//	**
//	** This routine updates the pointer map entry for page number 'key'
//	** so that it maps to type 'eType' and parent page number 'pgno'.
//	**
//	** If *pRC is initially non-zero (non-SQLITE_OK) then this routine is
//	** a no-op.  If an error occurs, the appropriate error code is written
//	** into *pRC.
//	*/
func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, pRC uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iPtrmap TPgno
	var offset, rc, v1 int32
	var pPtrmap uintptr
	var _ /* pDbPage at bp+0 */ uintptr
	_, _, _, _, _ = iPtrmap, offset, pPtrmap, rc, v1 /* Return code from subfunctions */
	if **(**int32)(__ccgo_up(pRC)) != 0 {
		return
	}
	/* The super-journal page number must never be used as a pointer map page */
	if key == uint32(0) {
		**(**int32)(__ccgo_up(pRC)) = _sqlite3CorruptError(tls, int32(74301))
		return
	}
	iPtrmap = _ptrmapPageno(tls, pBt, key)
	rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, iPtrmap, bp, 0)
	if rc != SQLITE_OK {
		**(**int32)(__ccgo_up(pRC)) = rc
		return
	}
	if int32(**(**int8)(__ccgo_up(_sqlite3PagerGetExtra(tls, **(**uintptr)(__ccgo_up(bp)))))) != 0 {
		/* The first byte of the extra data is the MemPage.isInit byte.
		 ** If that byte is set, it means this page is also being used
		 ** as a btree page. */
		**(**int32)(__ccgo_up(pRC)) = _sqlite3CorruptError(tls, int32(74314))
		goto ptrmap_exit
	}
	offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1)))
	if offset < 0 {
		**(**int32)(__ccgo_up(pRC)) = _sqlite3CorruptError(tls, int32(74319))
		goto ptrmap_exit
	}
	pPtrmap = _sqlite3PagerGetData(tls, **(**uintptr)(__ccgo_up(bp)))
	if int32(eType) != int32(**(**Tu8)(__ccgo_up(pPtrmap + uintptr(offset)))) || _sqlite3Get4byte(tls, pPtrmap+uintptr(offset+int32(1))) != parent {
		v1 = _sqlite3PagerWrite(tls, **(**uintptr)(__ccgo_up(bp)))
		rc = v1
		**(**int32)(__ccgo_up(pRC)) = v1
		if rc == SQLITE_OK {
			**(**Tu8)(__ccgo_up(pPtrmap + uintptr(offset))) = eType
			_sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent)
		}
	}
	goto ptrmap_exit
ptrmap_exit:
	;
	_sqlite3PagerUnref(tls, **(**uintptr)(__ccgo_up(bp)))
}

type _purecall_handler = T_purecall_handler

const _pwctype = 0

// C documentation
//
//	/*
//	** The SELECT statement iterating through the keys for the current object
//	** (p->objiter.pSelect) currently points to a valid row. However, there
//	** is something wrong with the rbu_control value in the rbu_control value
//	** stored in the (p->nCol+1)'th column. Set the error code and error message
//	** of the RBU handle to something reflecting this.
//	*/
func _rbuBadControlError(tls *libc.TLS, p uintptr) {
	(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR)
	(*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32983, 0)
}

// C documentation
//
//	/*
//	** Called when a page of data is written to offset iOff of the database
//	** file while the rbu handle is in capture mode. Record the page number
//	** of the page being written in the aFrame[] array.
//	*/
func _rbuCaptureDbWrite(tls *libc.TLS, pRbu uintptr, iOff Ti64) (r int32) {
	(**(**TRbuFrame)(__ccgo_up((*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FaFrame + uintptr((*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FnFrame-int32(1))*8))).FiDbPage = uint32(iOff/int64((*Tsqlite3rbu)(unsafe.Pointer(pRbu)).Fpgsz)) + uint32(1)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** This is called as part of an incremental checkpoint operation. Copy
//	** a single frame of data from the wal file into the database file, as
//	** indicated by the RbuFrame object.
//	*/
func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) {
	var iOff Ti64
	var pDb, pWal uintptr
	_, _, _ = iOff, pDb, pWal
	pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal
	pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
	iOff = int64((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24)
	(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff)
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 {
		return
	}
	iOff = int64((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz)
	(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff)
}

/*
** This value is copied from the definition of ZIPVFS_CTRL_FILE_POINTER
** in zipvfs.h.
 */

// C documentation
//
//	/*
//	** Allocate a private rbu VFS for the rbu handle passed as the only
//	** argument. This VFS will be used unless the call to sqlite3rbu_open()
//	** specified a URI with a vfs=? option in place of a target database
//	** file name.
//	*/
func _rbuCreateVfs(tls *libc.TLS, p uintptr) {
	bp := tls.Alloc(96)
	defer tls.Free(96)
	var pVfs uintptr
	var _ /* rnd at bp+0 */ int32
	var _ /* zRnd at bp+4 */ [64]int8
	_ = pVfs
	Xsqlite3_randomness(tls, int32(4), bp)
	Xsqlite3_snprintf(tls, int32(64), bp+4, __ccgo_ts+35567, libc.VaList(bp+80, **(**int32)(__ccgo_up(bp))))
	(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3rbu_create_vfs(tls, bp+4, uintptr(0))
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
		pVfs = Xsqlite3_vfs_find(tls, bp+4)
		(*Tsqlite3rbu)(unsafe.Pointer(p)).FzVfsName = (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName
		(*Trbu_vfs)(unsafe.Pointer(pVfs)).FpRbu = p
	}
}

// C documentation
//
//	/*
//	** If there is a "*-oal" file in the file-system corresponding to the
//	** target database in the file-system, delete it. If an error occurs,
//	** leave an error code and error message in the rbu handle.
//	*/
func _rbuDeleteOalFile(tls *libc.TLS, p uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var zOal uintptr
	var _ /* pVfs at bp+0 */ uintptr
	_ = zOal
	zOal = _rbuMPrintf(tls, p, __ccgo_ts+34989, libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget))
	if zOal != 0 {
		**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
		Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+8033, int32(SQLITE_FCNTL_VFS_POINTER), bp)
		(*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_vfs)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FxDelete})))(tls, **(**uintptr)(__ccgo_up(bp)), zOal, 0)
		Xsqlite3_free(tls, zOal)
	}
}

// C documentation
//
//	/*
//	** Return true if the database handle passed as the only argument
//	** was opened with the rbu_exclusive_checkpoint=1 URI parameter
//	** specified. Or false otherwise.
//	*/
func _rbuExclusiveCheckpoint(tls *libc.TLS, db uintptr) (r int32) {
	var zUri uintptr
	_ = zUri
	zUri = Xsqlite3_db_filename(tls, db, uintptr(0))
	return Xsqlite3_uri_boolean(tls, zUri, __ccgo_ts+34964, 0)
}

// C documentation
//
//	/*
//	** Finalize the statement passed as the second argument.
//	**
//	** If the sqlite3_finalize() call indicates that an error occurs, and the
//	** rbu handle error code is not already set, set the error code and error
//	** message accordingly.
//	*/
func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var db uintptr
	var rc int32
	_, _ = db, rc
	db = Xsqlite3_db_handle(tls, pStmt)
	rc = Xsqlite3_finalize(tls, pStmt)
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK {
		(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc
		(*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+4729, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db)))
	}
}

// C documentation
//
//	/*
//	** Take an EXCLUSIVE lock on the database file. Return SQLITE_OK if
//	** successful, or an SQLite error code otherwise.
//	*/
func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* fd at bp+0 */ uintptr
	_ = rc
	rc = SQLITE_OK
	**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
	Xsqlite3_file_control(tls, db, __ccgo_ts+8033, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp)
	if **(**uintptr)(__ccgo_up(bp)) != 0 {
		Xsqlite3_file_control(tls, db, __ccgo_ts+8033, int32(SQLITE_FCNTL_FILE_POINTER), bp)
		rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FpMethods)).FxLock})))(tls, **(**uintptr)(__ccgo_up(bp)), int32(SQLITE_LOCK_SHARED))
		if rc == SQLITE_OK {
			rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FpMethods)).FxUnlock})))(tls, **(**uintptr)(__ccgo_up(bp)), SQLITE_LOCK_NONE)
		}
		Xsqlite3_file_control(tls, db, __ccgo_ts+8033, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp)
	} else {
		Xsqlite3_file_control(tls, db, __ccgo_ts+8033, int32(SQLITE_FCNTL_FILE_POINTER), bp)
	}
	if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FpMethods != 0 {
		rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FpMethods)).FxLock})))(tls, **(**uintptr)(__ccgo_up(bp)), int32(SQLITE_LOCK_SHARED))
		if rc == SQLITE_OK {
			rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FpMethods)).FxLock})))(tls, **(**uintptr)(__ccgo_up(bp)), int32(SQLITE_LOCK_EXCLUSIVE))
		}
	}
	return rc
}

func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var flags int32
	var v1 uintptr
	var _ /* db at bp+0 */ uintptr
	_, _ = flags, v1
	**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
		flags = libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_URI)
		if bUseVfs != 0 {
			v1 = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzVfsName
		} else {
			v1 = uintptr(0)
		}
		(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1)
		if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 {
			(*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+4729, libc.VaList(bp+16, Xsqlite3_errmsg(tls, **(**uintptr)(__ccgo_up(bp)))))
			Xsqlite3_close(tls, **(**uintptr)(__ccgo_up(bp)))
			**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
		}
	}
	return **(**uintptr)(__ccgo_up(bp))
}

func _rbuPutU16(tls *libc.TLS, aBuf uintptr, iVal Tu16) {
	**(**Tu8)(__ccgo_up(aBuf)) = uint8(int32(iVal) >> int32(8) & int32(0xFF))
	**(**Tu8)(__ccgo_up(aBuf + 1)) = uint8(int32(iVal) >> 0 & int32(0xFF))
}

// C documentation
//
//	/*
//	** This function is called as part of initializing or reinitializing an
//	** incremental checkpoint.
//	**
//	** It populates the sqlite3rbu.aFrame[] array with the set of
//	** (wal frame -> db page) copy operations required to checkpoint the
//	** current wal file, and obtains the set of shm locks required to safely
//	** perform the copy operations directly on the file-system.
//	**
//	** If argument pState is not NULL, then the incremental checkpoint is
//	** being resumed. In this case, if the checksum of the wal-index-header
//	** following recovery is not the same as the checksum saved in the RbuState
//	** object, then the rbu handle is set to DONE state. This occurs if some
//	** other client appends a transaction to the wal file in the middle of
//	** an incremental checkpoint.
//	*/
func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) {
	var nSectorSize, rc2, v1 int32
	var pDb, pWal uintptr
	_, _, _, _, _ = nSectorSize, pDb, pWal, rc2, v1
	/* If pState is NULL, then the wal file may not have been opened and
	 ** recovered. Running a read-statement here to ensure that doing so
	 ** does not interfere with the "capture" process below.  */
	if pState == uintptr(0) {
		(*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage = 0
		if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
			(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+34883, uintptr(0), uintptr(0), uintptr(0))
		}
	}
	/* Assuming no error has occurred, run a "restart" checkpoint with the
	 ** sqlite3rbu.eStage variable set to CAPTURE. This turns on the following
	 ** special behaviour in the rbu VFS:
	 **
	 **   * If the exclusive shm WRITER or READ0 lock cannot be obtained,
	 **     the checkpoint fails with SQLITE_BUSY (normally SQLite would
	 **     proceed with running a passive checkpoint instead of failing).
	 **
	 **   * Attempts to read from the *-wal file or write to the database file
	 **     do not perform any IO. Instead, the frame/page combinations that
	 **     would be read/written are recorded in the sqlite3rbu.aFrame[]
	 **     array.
	 **
	 **   * Calls to xShmLock(UNLOCK) to release the exclusive shm WRITER,
	 **     READ0 and CHECKPOINT locks taken as part of the checkpoint are
	 **     no-ops. These locks will not be released until the connection
	 **     is closed.
	 **
	 **   * Attempting to xSync() the database file causes an SQLITE_NOTICE
	 **     error.
	 **
	 ** As a result, unless an error (i.e. OOM or SQLITE_BUSY) occurs, the
	 ** checkpoint below fails with SQLITE_NOTICE, and leaves the aFrame[]
	 ** array populated with a set of (frame -> page) mappings. Because the
	 ** WRITER, CHECKPOINT and READ0 locks are still held, it is safe to copy
	 ** data from the wal file into the database file according to the
	 ** contents of aFrame[].
	 */
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
		(*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage = int32(RBU_STAGE_CAPTURE)
		rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+34929, uintptr(0), uintptr(0), uintptr(0))
		if rc2 != int32(SQLITE_NOTICE) {
			(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2
		}
	}
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame > 0 {
		(*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage = int32(RBU_STAGE_CKPT)
		if pState != 0 {
			v1 = (*TRbuState)(unsafe.Pointer(pState)).FnRow
		} else {
			v1 = 0
		}
		(*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep = v1
		(*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf = _rbuMalloc(tls, p, int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz))
		(*Tsqlite3rbu)(unsafe.Pointer(p)).FiWalCksum = _rbuShmChecksum(tls, p)
	}
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
		if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame == 0 || pState != 0 && (*TRbuState)(unsafe.Pointer(pState)).FiWalCksum != (*Tsqlite3rbu)(unsafe.Pointer(p)).FiWalCksum {
			(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_DONE)
			(*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage = int32(RBU_STAGE_DONE)
		} else {
			pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
			pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal
			nSectorSize = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSectorSize})))(tls, pDb)
			if nSectorSize > (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz {
				(*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz
			} else {
				(*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = int32(1)
			}
			/* Call xSync() on the wal file. This causes SQLite to sync the
			 ** directory in which the target database and the wal file reside, in
			 ** case it has not been synced since the rename() call in
			 ** rbuMoveOalFile(). */
			(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL))
		}
	}
}

// C documentation
//
//	/*
//	** Return the current wal-index header checksum for the target database
//	** as a 64-bit integer.
//	**
//	** The checksum is store in the first page of xShmMap memory as an 8-byte
//	** blob starting at byte offset 40.
//	*/
func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iRet Ti64
	var pDb uintptr
	var _ /* ptr at bp+0 */ uintptr
	_, _ = iRet, pDb
	iRet = 0
	if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
		pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
		(*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp)
		if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
			iRet = int64(uint64(libc.AtomicLoadPUint32(**(**uintptr)(__ccgo_up(bp))+libc.UintptrFromInt32(10)*4))<<libc.Int32FromInt32(32) + uint64(libc.AtomicLoadPUint32(**(**uintptr)(__ccgo_up(bp))+11*4)))
		}
	}
	return iRet
}

func _rbuUnlockShm(tls *libc.TLS, p uintptr) {
	var i int32
	var xShmLock uintptr
	_, _ = i, xShmLock
	if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 {
		xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock
		i = 0
		for {
			if !(i < int32(SQLITE_SHM_NLOCK)) {
				break
			}
			if uint32(libc.Int32FromInt32(1)<<i)&(*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpRbu)).FmLock != 0 {
				(*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xShmLock})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, i, int32(1), libc.Int32FromInt32(SQLITE_SHM_UNLOCK)|libc.Int32FromInt32(SQLITE_SHM_EXCLUSIVE))
			}
			goto _1
		_1:
			;
			i = i + 1
		}
		(*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpRbu)).FmLock = uint32(0)
	}
}

// C documentation
//
//	/*
//	** File control method. For custom operations on an rbuVfs-file.
//	*/
func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var p, pRbu, pRbu1, pRbuVfs, xControl, zIn, zOut uintptr
	var rc int32
	var _ /* dummy at bp+0 */ uintptr
	_, _, _, _, _, _, _, _ = p, pRbu, pRbu1, pRbuVfs, rc, xControl, zIn, zOut
	p = pFile
	xControl = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxFileControl
	if op == int32(SQLITE_FCNTL_RBU) {
		pRbu = pArg
		/* First try to find another RBU vfs lower down in the vfs stack. If
		 ** one is found, this vfs will operate in pass-through mode. The lower
		 ** level vfs will do the special RBU handling.  */
		rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, op, pArg)
		if rc == int32(SQLITE_NOTFOUND) {
			/* Now search for a zipvfs instance lower down in the VFS stack. If
			 ** one is found, this is an error.  */
			**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
			rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp)
			if rc == SQLITE_OK {
				rc = int32(SQLITE_ERROR)
				(*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+35948, 0)
			} else {
				if rc == int32(SQLITE_NOTFOUND) {
					(*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p
					(*Trbu_file)(unsafe.Pointer(p)).FpRbu = pRbu
					_rbuMainlistAdd(tls, p)
					if (*Trbu_file)(unsafe.Pointer(p)).FpWalFd != 0 {
						(*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpWalFd)).FpRbu = pRbu
					}
					rc = SQLITE_OK
				}
			}
		}
		return rc
	} else {
		if op == int32(SQLITE_FCNTL_RBUCNT) {
			pRbu1 = pArg
			(*Tsqlite3rbu)(unsafe.Pointer(pRbu1)).FnRbu = (*Tsqlite3rbu)(unsafe.Pointer(pRbu1)).FnRbu + 1
			(*Tsqlite3rbu)(unsafe.Pointer(pRbu1)).FpRbuFd = p
			(*Trbu_file)(unsafe.Pointer(p)).FbNolock = uint8(1)
		}
	}
	rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, op, pArg)
	if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) {
		pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs
		zIn = **(**uintptr)(__ccgo_up(pArg))
		zOut = Xsqlite3_mprintf(tls, __ccgo_ts+35971, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn))
		**(**uintptr)(__ccgo_up(pArg)) = zOut
		if zOut == uintptr(0) {
			rc = int32(SQLITE_NOMEM)
		}
	}
	return rc
}

const _rcclClientUnknownLocality = 3

const _rcclInvalid = 0

const _rcclLocal = 1

const _rcclRemote = 2

const _rctGuaranteed = 3

const _rctInvalid = 0

const _rctNormal = 1

const _rctTraining = 2

// C documentation
//
//	/*
//	** Functions to deserialize a 16 bit integer, 32 bit real number and
//	** 64 bit integer. The deserialized value is returned.
//	*/
func _readInt16(tls *libc.TLS, p uintptr) (r int32) {
	return int32(**(**Tu8)(__ccgo_up(p)))<<int32(8) + int32(**(**Tu8)(__ccgo_up(p + 1)))
}

func _readInt64(tls *libc.TLS, p uintptr) (r Ti64) {
	return int64(uint64(**(**Tu8)(__ccgo_up(p)))<<libc.Int32FromInt32(56) + uint64(**(**Tu8)(__ccgo_up(p + 1)))<<libc.Int32FromInt32(48) + uint64(**(**Tu8)(__ccgo_up(p + 2)))<<libc.Int32FromInt32(40) + uint64(**(**Tu8)(__ccgo_up(p + 3)))<<libc.Int32FromInt32(32) + uint64(**(**Tu8)(__ccgo_up(p + 4)))<<libc.Int32FromInt32(24) + uint64(**(**Tu8)(__ccgo_up(p + 5)))<<libc.Int32FromInt32(16) + uint64(**(**Tu8)(__ccgo_up(p + 6)))<<libc.Int32FromInt32(8) + uint64(**(**Tu8)(__ccgo_up(p + 7)))<<libc.Int32FromInt32(0))
}

// C documentation
//
//	/*
//	** Return non-zero if the table pTab in database iDb or any of its indices
//	** have been opened at any point in the VDBE program. This is used to see if
//	** a statement of the form  "INSERT INTO <iDb, pTab> SELECT ..." can
//	** run without using a temporary table for the results of the SELECT.
//	*/
func _readsTable(tls *libc.TLS, p uintptr, iDb int32, pTab uintptr) (r int32) {
	var i, iEnd int32
	var pIndex, pOp, pVTab, v, v1 uintptr
	var tnum TPgno
	_, _, _, _, _, _, _, _ = i, iEnd, pIndex, pOp, pVTab, tnum, v, v1
	v = _sqlite3GetVdbe(tls, p)
	iEnd = _sqlite3VdbeCurrentAddr(tls, v)
	if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) {
		v1 = _sqlite3GetVTable(tls, (*TParse)(unsafe.Pointer(p)).Fdb, pTab)
	} else {
		v1 = uintptr(0)
	}
	pVTab = v1
	i = int32(1)
	for {
		if !(i < iEnd) {
			break
		}
		pOp = _sqlite3VdbeGetOp(tls, v, i)
		if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_OpenRead) && (*TVdbeOp)(unsafe.Pointer(pOp)).Fp3 == iDb {
			tnum = uint32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp2)
			if tnum == (*TTable)(unsafe.Pointer(pTab)).Ftnum {
				return int32(1)
			}
			pIndex = (*TTable)(unsafe.Pointer(pTab)).FpIndex
			for {
				if !(pIndex != 0) {
					break
				}
				if tnum == (*TIndex)(unsafe.Pointer(pIndex)).Ftnum {
					return int32(1)
				}
				goto _3
			_3:
				;
				pIndex = (*TIndex)(unsafe.Pointer(pIndex)).FpNext
			}
		}
		if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_VOpen) && *(*uintptr)(unsafe.Pointer(pOp + 16)) == pVTab {
			return int32(1)
		}
		goto _2
	_2:
		;
		i = i + 1
	}
	return 0
}

type _remoteMETAFILEPICT = T_remoteMETAFILEPICT

// C documentation
//
//	/*
//	** An error occurred while parsing or otherwise processing a database
//	** object (either pParse->pNewTable, pNewIndex or pNewTrigger) as part of an
//	** ALTER TABLE RENAME COLUMN program. The error message emitted by the
//	** sub-routine is currently stored in pParse->zErrMsg. This function
//	** adds context to the error message and then stores it in pCtx.
//	*/
func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType uintptr, pObject uintptr, pParse uintptr) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var zErr, zN, zT, v1 uintptr
	_, _, _, _ = zErr, zN, zT, v1
	zT = Xsqlite3_value_text(tls, pType)
	zN = Xsqlite3_value_text(tls, pObject)
	if **(**int8)(__ccgo_up(zWhen)) != 0 {
		v1 = __ccgo_ts + 12758
	} else {
		v1 = __ccgo_ts + 1711
	}
	zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12760, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg))
	Xsqlite3_result_error(tls, pCtx, zErr, -int32(1))
	_sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr)
}

// C documentation
//
//	/*
//	** This is a Walker select callback. It does nothing. It is only required
//	** because without a dummy callback, sqlite3WalkExpr() and similar do not
//	** descend into sub-select statements.
//	*/
func _renameColumnSelectCb(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) {
	if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(libc.Int32FromInt32(SF_View)|libc.Int32FromInt32(SF_CopyCte)) != 0 {
		return int32(WRC_Prune)
	}
	_renameWalkWith(tls, pWalker, p)
	return WRC_Continue
}

// C documentation
//
//	/*
//	** Generate VM code to replace any double-quoted strings (but not double-quoted
//	** identifiers) within the "sql" column of the sqlite_schema table in
//	** database zDb with their single-quoted equivalents. If argument bTemp is
//	** not true, similarly update all SQL statements in the sqlite_schema table
//	** of the temp db.
//	*/
func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	_sqlite3NestedParse(tls, pParse, __ccgo_ts+10237, libc.VaList(bp+8, zDb, zDb))
	if bTemp == 0 {
		_sqlite3NestedParse(tls, pParse, __ccgo_ts+10384, 0)
	}
}

// C documentation
//
//	/*
//	** Reset the SQL statement passed as the first argument. Return a copy
//	** of the value returned by sqlite3_reset().
//	**
//	** If an error has occurred, then set *pzErrmsg to point to a buffer
//	** containing an error message. It is the responsibility of the caller
//	** to eventually free this buffer using sqlite3_free().
//	*/
func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	_ = rc
	rc = Xsqlite3_reset(tls, pStmt)
	if rc != SQLITE_OK {
		**(**uintptr)(__ccgo_up(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4729, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt))))
	}
	return rc
}

// C documentation
//
//	/*
//	** Resolve an expression that was part of an ATTACH or DETACH statement. This
//	** is slightly different from resolving a normal SQL expression, because simple
//	** identifiers are treated as strings, not possible column names or aliases.
//	**
//	** i.e. if the parser sees:
//	**
//	**     ATTACH DATABASE abc AS def
//	**
//	** it treats the two expressions as literal strings 'abc' and 'def' instead of
//	** looking for columns of the same name.
//	**
//	** This only applies to the root node of pExpr, so the statement:
//	**
//	**     ATTACH DATABASE abc||def AS 'db2'
//	**
//	** will fail because neither abc or def can be resolved.
//	*/
func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) {
	var rc int32
	_ = rc
	rc = SQLITE_OK
	if pExpr != 0 {
		if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_ID) {
			rc = _sqlite3ResolveExprNames(tls, pName, pExpr)
		} else {
			(*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Generate an ORDER BY or GROUP BY term out-of-range error.
//	*/
func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8786, libc.VaList(bp+8, i, zType, mx))
	_sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError)
}

const _rlafIPv4 = 1

const _rlafIPv6 = 2

const _rlafInvalid = 0

// C documentation
//
//	/*
//	** Check the RTree node or entry given by pCellData and p against the MATCH
//	** constraint pConstraint.
//	*/
func _rtreeCallbackConstraint(tls *libc.TLS, pConstraint uintptr, eInt int32, pCellData uintptr, pSearch uintptr, prScore uintptr, peWithin uintptr) (r int32) {
	bp := tls.Alloc(96)
	defer tls.Free(96)
	var nCoord, rc, v2 int32
	var pInfo uintptr
	var v1 Tsqlite3_rtree_dbl
	var _ /* aCoord at bp+8 */ [10]Tsqlite3_rtree_dbl
	var _ /* c at bp+0 */ TRtreeCoord
	var _ /* eWithin at bp+88 */ int32
	_, _, _, _, _ = nCoord, pInfo, rc, v1, v2
	pInfo = (*TRtreeConstraint)(unsafe.Pointer(pConstraint)).FpInfo      /* Callback info */
	nCoord = (*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FnCoord /* Decoded coordinates */
	if (*TRtreeConstraint)(unsafe.Pointer(pConstraint)).Fop == int32(RTREE_QUERY) && int32((*TRtreeSearchPoint)(unsafe.Pointer(pSearch)).FiLevel) == int32(1) {
		(*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FiRowid = _readInt64(tls, pCellData)
	}
	pCellData = pCellData + uintptr(8)
	if eInt == 0 {
		switch nCoord {
		case int32(10):
			_readCoord(tls, pCellData+uintptr(36), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(9)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData+uintptr(32), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(8)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			fallthrough
		case int32(8):
			_readCoord(tls, pCellData+uintptr(28), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(7)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData+uintptr(24), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(6)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			fallthrough
		case int32(6):
			_readCoord(tls, pCellData+uintptr(20), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(5)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData+uintptr(16), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(4)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			fallthrough
		case int32(4):
			_readCoord(tls, pCellData+uintptr(12), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(3)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData+uintptr(8), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(2)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			fallthrough
		default:
			_readCoord(tls, pCellData+uintptr(4), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(1)] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData, bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[0] = float64(*(*TRtreeValue)(unsafe.Pointer(bp)))
		}
	} else {
		switch nCoord {
		case int32(10):
			_readCoord(tls, pCellData+uintptr(36), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(9)] = float64(*(*int32)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData+uintptr(32), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(8)] = float64(*(*int32)(unsafe.Pointer(bp)))
			fallthrough
		case int32(8):
			_readCoord(tls, pCellData+uintptr(28), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(7)] = float64(*(*int32)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData+uintptr(24), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(6)] = float64(*(*int32)(unsafe.Pointer(bp)))
			fallthrough
		case int32(6):
			_readCoord(tls, pCellData+uintptr(20), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(5)] = float64(*(*int32)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData+uintptr(16), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(4)] = float64(*(*int32)(unsafe.Pointer(bp)))
			fallthrough
		case int32(4):
			_readCoord(tls, pCellData+uintptr(12), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(3)] = float64(*(*int32)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData+uintptr(8), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(2)] = float64(*(*int32)(unsafe.Pointer(bp)))
			fallthrough
		default:
			_readCoord(tls, pCellData+uintptr(4), bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[int32(1)] = float64(*(*int32)(unsafe.Pointer(bp)))
			_readCoord(tls, pCellData, bp)
			(**(**[10]Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)))[0] = float64(*(*int32)(unsafe.Pointer(bp)))
		}
	}
	if (*TRtreeConstraint)(unsafe.Pointer(pConstraint)).Fop == int32(RTREE_MATCH) {
		**(**int32)(__ccgo_up(bp + 88)) = 0
		rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*TRtreeConstraint)(unsafe.Pointer(pConstraint)).Fu))})))(tls, pInfo, nCoord, bp+8, bp+88)
		if **(**int32)(__ccgo_up(bp + 88)) == 0 {
			**(**int32)(__ccgo_up(peWithin)) = NOT_WITHIN
		}
		**(**Tsqlite3_rtree_dbl)(__ccgo_up(prScore)) = float64(0)
	} else {
		(*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FaCoord = bp + 8
		(*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FiLevel = int32((*TRtreeSearchPoint)(unsafe.Pointer(pSearch)).FiLevel) - int32(1)
		v1 = (*TRtreeSearchPoint)(unsafe.Pointer(pSearch)).FrScore
		(*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FrParentScore = v1
		(*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FrScore = v1
		v2 = int32((*TRtreeSearchPoint)(unsafe.Pointer(pSearch)).FeWithin)
		(*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FeParentWithin = v2
		(*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FeWithin = v2
		rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*TRtreeConstraint)(unsafe.Pointer(pConstraint)).Fu))})))(tls, pInfo)
		if (*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FeWithin < **(**int32)(__ccgo_up(peWithin)) {
			**(**int32)(__ccgo_up(peWithin)) = (*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FeWithin
		}
		if (*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FrScore < **(**Tsqlite3_rtree_dbl)(__ccgo_up(prScore)) || **(**Tsqlite3_rtree_dbl)(__ccgo_up(prScore)) < float64(0) {
			**(**Tsqlite3_rtree_dbl)(__ccgo_up(prScore)) = (*Tsqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FrScore
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** The second and subsequent arguments to this function are a printf()
//	** style format string and arguments. This function formats the string and
//	** appends it to the report being accumulated in pCheck.
//	*/
func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var ap Tva_list
	var z, v1 uintptr
	_, _, _ = ap, z, v1
	ap = va
	if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FnErr < int32(RTREE_CHECK_MAX_ERROR) {
		z = Xsqlite3_vmprintf(tls, zFmt, ap)
		if z == uintptr(0) {
			(*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM)
		} else {
			if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 {
				v1 = __ccgo_ts + 5569
			} else {
				v1 = __ccgo_ts + 1711
			}
			(*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+30292, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z))
			if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) {
				(*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM)
			}
		}
		(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnErr = (*TRtreeCheck)(unsafe.Pointer(pCheck)).FnErr + 1
	}
	_ = ap
}

// C documentation
//
//	/*
//	** Argument pCell points to an array of coordinates stored on an rtree page.
//	** This function checks that the coordinates are internally consistent (no
//	** x1>x2 conditions) and adds an error message to the RtreeCheck object
//	** if they are not.
//	**
//	** Additionally, if pParent is not NULL, then it is assumed to point to
//	** the array of coordinates on the parent page that bound the page
//	** containing pCell. In this case it is also verified that the two
//	** sets of coordinates are mutually consistent and an error message added
//	** to the RtreeCheck object if they are not.
//	*/
func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32, pCell uintptr, pParent uintptr) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var i, v2, v3 int32
	var v5 bool
	var _ /* c1 at bp+0 */ TRtreeCoord
	var _ /* c2 at bp+4 */ TRtreeCoord
	var _ /* p1 at bp+8 */ TRtreeCoord
	var _ /* p2 at bp+12 */ TRtreeCoord
	_, _, _, _ = i, v2, v3, v5
	i = 0
	for {
		if !(i < (*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim) {
			break
		}
		_readCoord(tls, pCell+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp)
		_readCoord(tls, pCell+uintptr(int32(4)*(int32(2)*i+int32(1))), bp+4)
		/* printf("%e, %e\n", c1.u.f, c2.u.f); */
		if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FbInt != 0 {
			v2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp)) > *(*int32)(unsafe.Pointer(bp + 4)))
		} else {
			v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4)))
		}
		if v2 != 0 {
			_rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+30598, libc.VaList(bp+24, i, iCell, iNode))
		}
		if pParent != 0 {
			_readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8)
			_readCoord(tls, pParent+uintptr(int32(4)*(int32(2)*i+int32(1))), bp+12)
			if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FbInt != 0 {
				v2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp)) < *(*int32)(unsafe.Pointer(bp + 8)))
			} else {
				v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(bp + 8)))
			}
			if v5 = v2 != 0; !v5 {
				if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FbInt != 0 {
					v3 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) > *(*int32)(unsafe.Pointer(bp + 12)))
				} else {
					v3 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp + 4)) > *(*TRtreeValue)(unsafe.Pointer(bp + 12)))
				}
			}
			if v5 || v3 != 0 {
				_rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+30646, libc.VaList(bp+24, i, iCell, iNode))
			}
		}
		goto _1
	_1:
		;
		i = i + 1
	}
}

// C documentation
//
//	/*
//	** The second argument to this function must be either "_rowid" or
//	** "_parent". This function checks that the number of entries in the
//	** %_rowid or %_parent table is exactly nExpect. If not, it adds
//	** an error message to the report in the RtreeCheck object indicated
//	** by the first argument.
//	*/
func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var nActual Ti64
	var pCount uintptr
	_, _ = nActual, pCount
	if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK {
		pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+30832, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl))
		if pCount != 0 {
			if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) {
				nActual = Xsqlite3_column_int64(tls, pCount, 0)
				if nActual != nExpect {
					_rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+30863, libc.VaList(bp+8, zTbl, nExpect, nActual))
				}
			}
			(*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount)
		}
	}
}

// C documentation
//
//	/*
//	** Run rtreecheck() checks on node iNode, which is at depth iDepth within
//	** the r-tree structure. Argument aParent points to the array of coordinates
//	** that bound node iNode on the parent node.
//	**
//	** If any problems are discovered, an error message is appended to the
//	** report accumulated in the RtreeCheck object.
//	*/
func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintptr, iNode Ti64) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var aNode, pCell uintptr
	var i, nCell int32
	var iVal Ti64
	var _ /* nNode at bp+0 */ int32
	_, _, _, _, _ = aNode, i, iVal, nCell, pCell
	aNode = uintptr(0)
	**(**int32)(__ccgo_up(bp)) = 0
	aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp)
	if aNode != 0 {
		if **(**int32)(__ccgo_up(bp)) < int32(4) {
			_rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+30713, libc.VaList(bp+16, iNode, **(**int32)(__ccgo_up(bp))))
		} else { /* Used to iterate through cells */
			if aParent == uintptr(0) {
				iDepth = _readInt16(tls, aNode)
				if iDepth > int32(RTREE_MAX_DEPTH) {
					_rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+30747, libc.VaList(bp+16, iDepth))
					Xsqlite3_free(tls, aNode)
					return
				}
			}
			nCell = _readInt16(tls, aNode+2)
			if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > **(**int32)(__ccgo_up(bp)) {
				_rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+30777, libc.VaList(bp+16, iNode, nCell, **(**int32)(__ccgo_up(bp))))
			} else {
				i = 0
				for {
					if !(i < nCell) {
						break
					}
					pCell = aNode + uintptr(int32(4)+i*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)))
					iVal = _readInt64(tls, pCell)
					_rtreeCheckCellCoord(tls, pCheck, iNode, i, pCell+8, aParent)
					if iDepth > 0 {
						_rtreeCheckMapping(tls, pCheck, 0, iVal, iNode)
						_rtreeCheckNode(tls, pCheck, iDepth-int32(1), pCell+8, iVal)
						(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnNonLeaf = (*TRtreeCheck)(unsafe.Pointer(pCheck)).FnNonLeaf + 1
					} else {
						_rtreeCheckMapping(tls, pCheck, int32(1), iVal, iNode)
						(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnLeaf = (*TRtreeCheck)(unsafe.Pointer(pCheck)).FnLeaf + 1
					}
					goto _1
				_1:
					;
					i = i + 1
				}
			}
		}
		Xsqlite3_free(tls, aNode)
	}
}

// C documentation
//
//	/*
//	** Rtree virtual table module xClose method.
//	*/
func _rtreeClose(tls *libc.TLS, cur uintptr) (r int32) {
	var pCsr, pRtree uintptr
	_, _ = pCsr, pRtree
	pRtree = (*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab
	pCsr = cur
	_resetCursor(tls, pCsr)
	Xsqlite3_finalize(tls, (*TRtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux)
	Xsqlite3_free(tls, pCsr)
	(*TRtree)(unsafe.Pointer(pRtree)).FnCursor = (*TRtree)(unsafe.Pointer(pRtree)).FnCursor - 1
	if (*TRtree)(unsafe.Pointer(pRtree)).FnCursor == uint32(0) && int32((*TRtree)(unsafe.Pointer(pRtree)).FinWrTrans) == 0 {
		_nodeBlobReset(tls, pRtree)
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** A constraint has failed while inserting a row into an rtree table.
//	** Assuming no OOM error occurs, this function sets the error message
//	** (at pRtree->base.zErrMsg) to an appropriate value and returns
//	** SQLITE_CONSTRAINT.
//	**
//	** Parameter iCol is the index of the leftmost column involved in the
//	** constraint failure. If it is 0, then the constraint that failed is
//	** the unique constraint on the id column. Otherwise, it is the rtree
//	** (c1<=c2) constraint on columns iCol and iCol+1 that has failed.
//	**
//	** If an OOM occurs, SQLITE_NOMEM is returned instead of SQLITE_CONSTRAINT.
//	*/
func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var rc, v1 int32
	var zCol, zCol1, zCol2, zSql uintptr
	var _ /* pStmt at bp+0 */ uintptr
	_, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1
	**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
	zSql = Xsqlite3_mprintf(tls, __ccgo_ts+28746, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName))
	if zSql != 0 {
		rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0))
	} else {
		rc = int32(SQLITE_NOMEM)
	}
	Xsqlite3_free(tls, zSql)
	if rc == SQLITE_OK {
		if iCol == 0 {
			zCol = Xsqlite3_column_name(tls, **(**uintptr)(__ccgo_up(bp)), 0)
			(*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28766, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol))
		} else {
			zCol1 = Xsqlite3_column_name(tls, **(**uintptr)(__ccgo_up(bp)), iCol)
			zCol2 = Xsqlite3_column_name(tls, **(**uintptr)(__ccgo_up(bp)), iCol+int32(1))
			(*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28798, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2))
		}
	}
	Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
	if rc == SQLITE_OK {
		v1 = int32(SQLITE_CONSTRAINT)
	} else {
		v1 = rc
	}
	return v1
}

// C documentation
//
//	/*
//	** Rtree virtual table module xDestroy method.
//	*/
func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) {
	bp := tls.Alloc(64)
	defer tls.Free(64)
	var pRtree, zCreate uintptr
	var rc int32
	_, _, _ = pRtree, rc, zCreate
	pRtree = pVtab
	zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+28650, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName))
	if !(zCreate != 0) {
		rc = int32(SQLITE_NOMEM)
	} else {
		_nodeBlobReset(tls, pRtree)
		rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zCreate, uintptr(0), uintptr(0), uintptr(0))
		Xsqlite3_free(tls, zCreate)
	}
	if rc == SQLITE_OK {
		_rtreeRelease(tls, pRtree)
	}
	return rc
}

// C documentation
//
//	/*
//	** Rtree virtual table module xEof method.
//	**
//	** Return non-zero if the cursor does not currently point to a valid
//	** record (i.e if the scan has finished), or zero otherwise.
//	*/
func _rtreeEof(tls *libc.TLS, cur uintptr) (r int32) {
	var pCsr uintptr
	_ = pCsr
	pCsr = cur
	return int32((*TRtreeCursor)(unsafe.Pointer(pCsr)).FatEOF)
}

/*
** Convert raw bits from the on-disk RTree record into a coordinate value.
** The on-disk format is big-endian and needs to be converted for little-
** endian platforms.  The on-disk record stores integer coordinates if
** eInt is true and it stores 32-bit floating point records if eInt is
** false.  a[] is the four bytes of the on-disk record to be decoded.
** Store the results in "r".
**
** There are five versions of this macro.  The last one is generic.  The
** other four are various architectures-specific optimizations.
 */

// C documentation
//
//	/*
//	** Implementation of the xIntegrity method for Rtree.
//	*/
func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintptr, isQuick int32, pzErr uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var pRtree uintptr
	var rc int32
	_, _ = pRtree, rc
	pRtree = pVtab
	_ = zSchema
	_ = zName
	_ = isQuick
	rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr)
	if rc == SQLITE_OK && **(**uintptr)(__ccgo_up(pzErr)) != 0 {
		**(**uintptr)(__ccgo_up(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+31004, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, **(**uintptr)(__ccgo_up(pzErr))))
		if **(**uintptr)(__ccgo_up(pzErr)) == uintptr(0) {
			rc = int32(SQLITE_NOMEM)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** This function populates the pRtree->nRowEst variable with an estimate
//	** of the number of rows in the virtual table. If possible, this is based
//	** on sqlite_stat1 data. Otherwise, use RTREE_DEFAULT_ROWEST.
//	*/
func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var nRow Ti64
	var rc, v1 int32
	var zFmt, zSql uintptr
	var v2 int64
	var _ /* p at bp+0 */ uintptr
	_, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2
	zFmt = __ccgo_ts + 28980
	nRow = int64(RTREE_MIN_ROWEST)
	rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+14050, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
	if rc != SQLITE_OK {
		(*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST)
		if rc == int32(SQLITE_ERROR) {
			v1 = SQLITE_OK
		} else {
			v1 = rc
		}
		return v1
	}
	zSql = Xsqlite3_mprintf(tls, zFmt, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName))
	if zSql == uintptr(0) {
		rc = int32(SQLITE_NOMEM)
	} else {
		rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), bp, uintptr(0))
		if rc == SQLITE_OK {
			if Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp))) == int32(SQLITE_ROW) {
				nRow = Xsqlite3_column_int64(tls, **(**uintptr)(__ccgo_up(bp)), 0)
			}
			rc = Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
		}
		Xsqlite3_free(tls, zSql)
	}
	if nRow > int64(libc.Int32FromInt32(RTREE_MIN_ROWEST)) {
		v2 = nRow
	} else {
		v2 = int64(libc.Int32FromInt32(RTREE_MIN_ROWEST))
	}
	(*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = v2
	return rc
}

// C documentation
//
//	/*
//	** The xRename method for rtree module virtual tables.
//	*/
func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) {
	bp := tls.Alloc(80)
	defer tls.Free(80)
	var pRtree, zSql uintptr
	var rc int32
	_, _, _ = pRtree, rc, zSql
	pRtree = pVtab
	rc = int32(SQLITE_NOMEM)
	zSql = Xsqlite3_mprintf(tls, __ccgo_ts+28835, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName))
	if zSql != 0 {
		_nodeBlobReset(tls, pRtree)
		rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0))
		Xsqlite3_free(tls, zSql)
	}
	return rc
}

// C documentation
//
//	/*
//	** Rtree virtual table module xRowid method.
//	*/
func _rtreeRowid(tls *libc.TLS, pVtabCursor uintptr, pRowid uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var p, pCsr, pNode uintptr
	var _ /* rc at bp+0 */ int32
	_, _, _ = p, pCsr, pNode
	pCsr = pVtabCursor
	p = _rtreeSearchPointFirst(tls, pCsr)
	**(**int32)(__ccgo_up(bp)) = SQLITE_OK
	pNode = _rtreeNodeOfFirstSearchPoint(tls, pCsr, bp)
	if **(**int32)(__ccgo_up(bp)) == SQLITE_OK && p != 0 {
		if int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell) >= _readInt16(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+2) {
			**(**int32)(__ccgo_up(bp)) = int32(SQLITE_ABORT)
		} else {
			**(**Tsqlite_int64)(__ccgo_up(pRowid)) = _nodeGetRowid(tls, (*TRtreeCursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab, pNode, int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell))
		}
	}
	return **(**int32)(__ccgo_up(bp))
}

// C documentation
//
//	/*
//	** Compare two search points.  Return negative, zero, or positive if the first
//	** is less than, equal to, or greater than the second.
//	**
//	** The rScore is the primary key.  Smaller rScore values come first.
//	** If the rScore is a tie, then use iLevel as the tie breaker with smaller
//	** iLevel values coming first.  In this way, if rScore is the same for all
//	** SearchPoints, then iLevel becomes the deciding factor and the result
//	** is a depth-first search, which is the desired default behavior.
//	*/
func _rtreeSearchPointCompare(tls *libc.TLS, pA uintptr, pB uintptr) (r int32) {
	if (*TRtreeSearchPoint)(unsafe.Pointer(pA)).FrScore < (*TRtreeSearchPoint)(unsafe.Pointer(pB)).FrScore {
		return -int32(1)
	}
	if (*TRtreeSearchPoint)(unsafe.Pointer(pA)).FrScore > (*TRtreeSearchPoint)(unsafe.Pointer(pB)).FrScore {
		return +libc.Int32FromInt32(1)
	}
	if int32((*TRtreeSearchPoint)(unsafe.Pointer(pA)).FiLevel) < int32((*TRtreeSearchPoint)(unsafe.Pointer(pB)).FiLevel) {
		return -int32(1)
	}
	if int32((*TRtreeSearchPoint)(unsafe.Pointer(pA)).FiLevel) > int32((*TRtreeSearchPoint)(unsafe.Pointer(pB)).FiLevel) {
		return +libc.Int32FromInt32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Continue the search on cursor pCur until the front of the queue
//	** contains an entry suitable for returning as a result-set row,
//	** or until the RtreeSearchPoint queue is empty, indicating that the
//	** query has completed.
//	*/
func _rtreeStepToLeaf(tls *libc.TLS, pCur uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var eInt, ii, nCell, nConstraint int32
	var p, pCellData, pConstraint, pNode, pRtree, v1 uintptr
	var x TRtreeSearchPoint
	var _ /* eWithin at bp+0 */ int32
	var _ /* rScore at bp+8 */ Tsqlite3_rtree_dbl
	var _ /* rc at bp+4 */ int32
	_, _, _, _, _, _, _, _, _, _, _ = eInt, ii, nCell, nConstraint, p, pCellData, pConstraint, pNode, pRtree, x, v1
	pRtree = (*TRtreeCursor)(unsafe.Pointer(pCur)).Fbase.FpVtab
	**(**int32)(__ccgo_up(bp + 4)) = SQLITE_OK
	nConstraint = (*TRtreeCursor)(unsafe.Pointer(pCur)).FnConstraint
	eInt = libc.BoolInt32(int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == int32(RTREE_COORD_INT32))
	for {
		v1 = _rtreeSearchPointFirst(tls, pCur)
		p = v1
		if !(v1 != uintptr(0) && int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiLevel) > 0) {
			break
		}
		pNode = _rtreeNodeOfFirstSearchPoint(tls, pCur, bp+4)
		if **(**int32)(__ccgo_up(bp + 4)) != 0 {
			return **(**int32)(__ccgo_up(bp + 4))
		}
		nCell = _readInt16(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+2)
		if nCell > int32(RTREE_MAXCELLS) {
			return libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
		}
		pCellData = (*TRtreeNode)(unsafe.Pointer(pNode)).FzData + uintptr(libc.Int32FromInt32(4)+int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell))
		for int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell) < nCell {
			**(**Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)) = float64(-libc.Int32FromInt32(1))
			**(**int32)(__ccgo_up(bp)) = int32(FULLY_WITHIN)
			ii = 0
			for {
				if !(ii < nConstraint) {
					break
				}
				pConstraint = (*TRtreeCursor)(unsafe.Pointer(pCur)).FaConstraint + uintptr(ii)*24
				if (*TRtreeConstraint)(unsafe.Pointer(pConstraint)).Fop >= int32(RTREE_MATCH) {
					**(**int32)(__ccgo_up(bp + 4)) = _rtreeCallbackConstraint(tls, pConstraint, eInt, pCellData, p, bp+8, bp)
					if **(**int32)(__ccgo_up(bp + 4)) != 0 {
						return **(**int32)(__ccgo_up(bp + 4))
					}
				} else {
					if int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiLevel) == int32(1) {
						_rtreeLeafConstraint(tls, pConstraint, eInt, pCellData, bp)
					} else {
						_rtreeNonleafConstraint(tls, pConstraint, eInt, pCellData, bp)
					}
				}
				if **(**int32)(__ccgo_up(bp)) == NOT_WITHIN {
					(*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell = (*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell + 1
					pCellData = pCellData + uintptr((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)
					break
				}
				goto _2
			_2:
				;
				ii = ii + 1
			}
			if **(**int32)(__ccgo_up(bp)) == NOT_WITHIN {
				continue
			}
			(*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell = (*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell + 1
			x.FiLevel = uint8(int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiLevel) - int32(1))
			if x.FiLevel != 0 {
				x.Fid = _readInt64(tls, pCellData)
				ii = 0
				for {
					if !(ii < (*TRtreeCursor)(unsafe.Pointer(pCur)).FnPoint) {
						break
					}
					if (**(**TRtreeSearchPoint)(__ccgo_up((*TRtreeCursor)(unsafe.Pointer(pCur)).FaPoint + uintptr(ii)*24))).Fid == x.Fid {
						return libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
					}
					goto _3
				_3:
					;
					ii = ii + 1
				}
				x.FiCell = uint8(0)
			} else {
				x.Fid = (*TRtreeSearchPoint)(unsafe.Pointer(p)).Fid
				x.FiCell = uint8(int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell) - int32(1))
			}
			if int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell) >= nCell {
				_rtreeSearchPointPop(tls, pCur)
			}
			if **(**Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)) < float64(0) {
				**(**Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)) = float64(0)
			}
			p = _rtreeSearchPointNew(tls, pCur, **(**Tsqlite3_rtree_dbl)(__ccgo_up(bp + 8)), x.FiLevel)
			if p == uintptr(0) {
				return int32(SQLITE_NOMEM)
			}
			(*TRtreeSearchPoint)(unsafe.Pointer(p)).FeWithin = uint8(**(**int32)(__ccgo_up(bp)))
			(*TRtreeSearchPoint)(unsafe.Pointer(p)).Fid = x.Fid
			(*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell = x.FiCell
			break
		}
		if int32((*TRtreeSearchPoint)(unsafe.Pointer(p)).FiCell) >= nCell {
			_rtreeSearchPointPop(tls, pCur)
		}
	}
	(*TRtreeCursor)(unsafe.Pointer(pCur)).FatEOF = libc.BoolUint8(p == uintptr(0))
	return SQLITE_OK
}

// C documentation
//
//	/* This routine implements an SQL function that returns the "depth" parameter
//	** from the front of a blob that is an r-tree node.  For example:
//	**
//	**     SELECT rtreedepth(data) FROM rt_node WHERE nodeno=1;
//	**
//	** The depth value is 0 for all nodes other than the root node, and the root
//	** node always has nodeno=1, so the example above is the primary use for this
//	** routine.  This routine is intended for testing and analysis only.
//	*/
func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) {
	var zBlob uintptr
	_ = zBlob
	_ = nArg
	if Xsqlite3_value_type(tls, **(**uintptr)(__ccgo_up(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, **(**uintptr)(__ccgo_up(apArg))) < int32(2) {
		Xsqlite3_result_error(tls, ctx, __ccgo_ts+30259, -int32(1))
	} else {
		zBlob = Xsqlite3_value_blob(tls, **(**uintptr)(__ccgo_up(apArg)))
		if zBlob != 0 {
			Xsqlite3_result_int(tls, ctx, _readInt16(tls, zBlob))
		} else {
			Xsqlite3_result_error_nomem(tls, ctx)
		}
	}
}

// C documentation
//
//	/*
//	** This is the collating function named "RTRIM" which is always
//	** available.  Ignore trailing spaces.
//	*/
func _rtrimCollFunc(tls *libc.TLS, pUser uintptr, nKey1 int32, pKey1 uintptr, nKey2 int32, pKey2 uintptr) (r int32) {
	var pK1, pK2 uintptr
	_, _ = pK1, pK2
	pK1 = pKey1
	pK2 = pKey2
	for nKey1 != 0 && int32(**(**Tu8)(__ccgo_up(pK1 + uintptr(nKey1-int32(1))))) == int32(' ') {
		nKey1 = nKey1 - 1
	}
	for nKey2 != 0 && int32(**(**Tu8)(__ccgo_up(pK2 + uintptr(nKey2-int32(1))))) == int32(' ') {
		nKey2 = nKey2 - 1
	}
	return _binCollFunc(tls, pUser, nKey1, pKey1, nKey2, pKey2)
}

// C documentation
//
//	/*
//	** Save the current cursor position in the variables BtCursor.nKey
//	** and BtCursor.pKey. The cursor's state is set to CURSOR_REQUIRESEEK.
//	**
//	** The caller must ensure that the cursor is valid (has eState==CURSOR_VALID)
//	** prior to calling this routine.
//	*/
func _saveCursorPosition(tls *libc.TLS, pCur uintptr) (r int32) {
	var rc int32
	var v1 uintptr
	_, _ = rc, v1
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_Pinned) != 0 {
		return libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(11)<<libc.Int32FromInt32(8)
	}
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) == int32(CURSOR_SKIPNEXT) {
		(*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID)
	} else {
		(*TBtCursor)(unsafe.Pointer(pCur)).FskipNext = 0
	}
	rc = _saveCursorKey(tls, pCur)
	if rc == SQLITE_OK {
		_btreeReleaseAllCursorPages(tls, pCur)
		(*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_REQUIRESEEK)
	}
	v1 = pCur + 1
	*(*Tu8)(unsafe.Pointer(v1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(v1))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl) | libc.Int32FromInt32(BTCF_AtLast)))
	return rc
}

// C documentation
//
//	/* This helper routine to saveAllCursors does the actual work of saving
//	** the cursors if and when a cursor is found that actually requires saving.
//	** The common case is that no cursors need to be saved, so this routine is
//	** broken out from its caller to avoid unnecessary stack pointer movement.
//	*/
func _saveCursorsOnList(tls *libc.TLS, p uintptr, iRoot TPgno, pExcept uintptr) (r int32) {
	var rc int32
	_ = rc
	for cond := true; cond; cond = p != 0 {
		if p != pExcept && (uint32(0) == iRoot || (*TBtCursor)(unsafe.Pointer(p)).FpgnoRoot == iRoot) {
			if int32((*TBtCursor)(unsafe.Pointer(p)).FeState) == CURSOR_VALID || int32((*TBtCursor)(unsafe.Pointer(p)).FeState) == int32(CURSOR_SKIPNEXT) {
				rc = _saveCursorPosition(tls, p)
				if SQLITE_OK != rc {
					return rc
				}
			} else {
				_btreeReleaseAllCursorPages(tls, p)
			}
		}
		p = (*TBtCursor)(unsafe.Pointer(p)).FpNext
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** This function is a no-op if *pRc is other than SQLITE_OK when it is
//	** called. Otherwse, it appends the serialized version of the value stored
//	** in column iCol of the row that SQL statement pStmt currently points
//	** to to the buffer.
//	*/
func _sessionAppendCol(tls *libc.TLS, p uintptr, pStmt uintptr, iCol int32, pRc uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var eType, nByte int32
	var i Tsqlite3_int64
	var r float64
	var z uintptr
	var _ /* aBuf at bp+0 */ [8]Tu8
	_, _, _, _, _ = eType, i, nByte, r, z
	if **(**int32)(__ccgo_up(pRc)) == SQLITE_OK {
		eType = Xsqlite3_column_type(tls, pStmt, iCol)
		_sessionAppendByte(tls, p, uint8(eType), pRc)
		if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) {
			if eType == int32(SQLITE_INTEGER) {
				i = Xsqlite3_column_int64(tls, pStmt, iCol)
				_sessionPutI64(tls, bp, i)
			} else {
				r = Xsqlite3_column_double(tls, pStmt, iCol)
				_sessionPutDouble(tls, bp, r)
			}
			_sessionAppendBlob(tls, p, bp, int32(8), pRc)
		}
		if eType == int32(SQLITE_BLOB) || eType == int32(SQLITE_TEXT) {
			if eType == int32(SQLITE_BLOB) {
				z = Xsqlite3_column_blob(tls, pStmt, iCol)
			} else {
				z = Xsqlite3_column_text(tls, pStmt, iCol)
			}
			nByte = Xsqlite3_column_bytes(tls, pStmt, iCol)
			if z != 0 || eType == int32(SQLITE_BLOB) && nByte == 0 {
				_sessionAppendVarint(tls, p, nByte, pRc)
				_sessionAppendBlob(tls, p, z, nByte, pRc)
			} else {
				**(**int32)(__ccgo_up(pRc)) = int32(SQLITE_NOMEM)
			}
		}
	}
}

// C documentation
//
//	/*
//	** This function is a no-op if *pRc is set to other than SQLITE_OK when it
//	** is called. Otherwise, append a serialized table header (part of the binary
//	** changeset format) to buffer *pBuf. If an error occurs, set *pRc to an
//	** SQLite error code before returning.
//	*/
func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab uintptr, pRc uintptr) {
	var v1 int32
	_ = v1
	/* Write a table header */
	if bPatchset != 0 {
		v1 = int32('P')
	} else {
		v1 = int32('T')
	}
	_sessionAppendByte(tls, pBuf, uint8(v1), pRc)
	_sessionAppendVarint(tls, pBuf, (*TSessionTable)(unsafe.Pointer(pTab)).FnCol, pRc)
	_sessionAppendBlob(tls, pBuf, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, (*TSessionTable)(unsafe.Pointer(pTab)).FnCol, pRc)
	_sessionAppendBlob(tls, pBuf, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, int32(libc.Xstrlen(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName))+int32(1), pRc)
}

// C documentation
//
//	/*
//	** Attempt to apply the change that the iterator passed as the first argument
//	** currently points to to the database. If a conflict is encountered, invoke
//	** the conflict handler callback.
//	**
//	** The difference between this function and sessionApplyOne() is that this
//	** function handles the case where the conflict-handler is invoked and
//	** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be
//	** retried in some manner.
//	*/
func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* bReplace at bp+0 */ int32
	var _ /* bRetry at bp+4 */ int32
	_ = rc
	**(**int32)(__ccgo_up(bp)) = 0
	**(**int32)(__ccgo_up(bp + 4)) = 0
	rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4)
	if rc == SQLITE_OK {
		/* If the bRetry flag is set, the change has not been applied due to an
		 ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and
		 ** a row with the correct PK is present in the db, but one or more other
		 ** fields do not contain the expected values) and the conflict handler
		 ** returned SQLITE_CHANGESET_REPLACE. In this case retry the operation,
		 ** but pass NULL as the final argument so that sessionApplyOneOp() ignores
		 ** the SQLITE_CHANGESET_DATA problem.  */
		if **(**int32)(__ccgo_up(bp + 4)) != 0 {
			rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0))
		} else {
			if **(**int32)(__ccgo_up(bp)) != 0 {
				rc = Xsqlite3_exec(tls, db, __ccgo_ts+37564, uintptr(0), uintptr(0), uintptr(0))
				if rc == SQLITE_OK {
					rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete)
					Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1))
				}
				if rc == SQLITE_OK {
					Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete)
					rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete)
				}
				if rc == SQLITE_OK {
					rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0))
				}
				if rc == SQLITE_OK {
					rc = Xsqlite3_exec(tls, db, __ccgo_ts+37585, uintptr(0), uintptr(0), uintptr(0))
				}
			}
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Ensure that there is room in the buffer to append nByte bytes of data.
//	** If not, use sqlite3_realloc() to grow the buffer so that there is.
//	**
//	** If successful, return zero. Otherwise, if an OOM condition is encountered,
//	** set *pRc to SQLITE_NOMEM and return non-zero.
//	*/
func _sessionBufferGrow(tls *libc.TLS, p uintptr, nByte Ti64, pRc uintptr) (r int32) {
	var aNew uintptr
	var nNew, nReq Ti64
	var v1 int32
	_, _, _, _ = aNew, nNew, nReq, v1
	nReq = int64((*TSessionBuffer)(unsafe.Pointer(p)).FnBuf) + nByte
	if **(**int32)(__ccgo_up(pRc)) == SQLITE_OK && nReq > int64((*TSessionBuffer)(unsafe.Pointer(p)).FnAlloc) {
		if (*TSessionBuffer)(unsafe.Pointer(p)).FnAlloc != 0 {
			v1 = (*TSessionBuffer)(unsafe.Pointer(p)).FnAlloc
		} else {
			v1 = int32(128)
		}
		nNew = int64(v1)
		for cond := true; cond; cond = nNew < nReq {
			nNew = nNew * int64(2)
		}
		/* The value of SESSION_MAX_BUFFER_SZ is copied from the implementation
		 ** of sqlite3_realloc64(). Allocations greater than this size in bytes
		 ** always fail. It is used here to ensure that this routine can always
		 ** allocate up to this limit - instead of up to the largest power of
		 ** two smaller than the limit.  */
		if nNew > int64(libc.Int32FromInt32(0x7FFFFF00)-libc.Int32FromInt32(1)) {
			nNew = int64(libc.Int32FromInt32(0x7FFFFF00) - libc.Int32FromInt32(1))
			if nNew < nReq {
				**(**int32)(__ccgo_up(pRc)) = int32(SQLITE_NOMEM)
				return int32(1)
			}
		}
		aNew = Xsqlite3_realloc64(tls, (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf, uint64(nNew))
		if uintptr(0) == aNew {
			**(**int32)(__ccgo_up(pRc)) = int32(SQLITE_NOMEM)
		} else {
			(*TSessionBuffer)(unsafe.Pointer(p)).FaBuf = aNew
			(*TSessionBuffer)(unsafe.Pointer(p)).FnAlloc = int32(nNew)
		}
	}
	return libc.BoolInt32(**(**int32)(__ccgo_up(pRc)) != SQLITE_OK)
}

// C documentation
//
//	/*
//	** Based on the primary key values stored in change aRecord, calculate a
//	** hash key. Assume the has table has nBucket buckets. The hash keys
//	** calculated by this function are compatible with those calculated by
//	** sessionPreupdateHash().
//	**
//	** The bPkOnly argument is non-zero if the record at aRecord[] is from
//	** a patchset DELETE. In this case the non-PK fields are omitted entirely.
//	*/
func _sessionChangeHash(tls *libc.TLS, pTab uintptr, bPkOnly int32, aRecord uintptr, nBucket int32) (r uint32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var a, v2 uintptr
	var eType, i, isPK int32
	var h uint32
	var _ /* n at bp+0 */ int32
	_, _, _, _, _, _ = a, eType, h, i, isPK, v2
	h = uint32(0) /* Used to iterate through columns */
	a = aRecord   /* Used to iterate through change record */
	i = 0
	for {
		if !(i < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) {
			break
		}
		isPK = int32(**(**Tu8)(__ccgo_up((*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i))))
		if bPkOnly != 0 && isPK == 0 {
			goto _1
		}
		if isPK != 0 {
			v2 = a
			a = a + 1
			eType = int32(**(**Tu8)(__ccgo_up(v2)))
			h = _sessionHashAppendType(tls, h, eType)
			if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) {
				h = _sessionHashAppendI64(tls, h, _sessionGetI64(tls, a))
				a = a + uintptr(8)
			} else {
				if eType == int32(SQLITE_TEXT) || eType == int32(SQLITE_BLOB) {
					a = a + uintptr(_sessionVarintGet(tls, a, bp))
					h = _sessionHashAppendBlob(tls, h, **(**int32)(__ccgo_up(bp)), a)
					a = a + uintptr(**(**int32)(__ccgo_up(bp)))
				}
			}
			/* It should not be possible for eType to be SQLITE_NULL or 0x00 here,
			 ** as the session module does not record changes for rows with NULL
			 ** values stored in primary key columns. But a corrupt changesets
			 ** may contain such a value.  */
		} else {
			a = a + uintptr(_sessionSerialLen(tls, a))
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	return h % uint32(nBucket)
}

// C documentation
//
//	/*
//	** The input pointer currently points to the first byte of the first field
//	** of a record consisting of nCol columns. This function ensures the entire
//	** record is buffered. It does not move the input pointer.
//	**
//	** If successful, SQLITE_OK is returned and *pnByte is set to the size of
//	** the record in bytes. Otherwise, an SQLite error code is returned. The
//	** final value of *pnByte is undefined in this case.
//	*/
func _sessionChangesetBufferRecord(tls *libc.TLS, pIn uintptr, nCol int32, pnByte uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var eType, i, nRem, rc int32
	var nByte, v2 Ti64
	var _ /* n at bp+0 */ int32
	_, _, _, _, _, _ = eType, i, nByte, nRem, rc, v2
	rc = SQLITE_OK
	nByte = 0
	i = 0
	for {
		if !(rc == SQLITE_OK && i < nCol) {
			break
		}
		rc = _sessionInputBuffer(tls, pIn, int32(nByte+int64(10)))
		if rc == SQLITE_OK {
			v2 = nByte
			nByte = nByte + 1
			eType = int32(**(**Tu8)(__ccgo_up((*TSessionInput)(unsafe.Pointer(pIn)).FaData + uintptr(int64((*TSessionInput)(unsafe.Pointer(pIn)).FiNext)+v2))))
			if eType == int32(SQLITE_TEXT) || eType == int32(SQLITE_BLOB) {
				nRem = int32(int64((*TSessionInput)(unsafe.Pointer(pIn)).FnData) - (int64((*TSessionInput)(unsafe.Pointer(pIn)).FiNext) + nByte))
				nByte = nByte + int64(_sessionVarintGetSafe(tls, (*TSessionInput)(unsafe.Pointer(pIn)).FaData+uintptr(int64((*TSessionInput)(unsafe.Pointer(pIn)).FiNext)+nByte), nRem, bp))
				nByte = nByte + int64(**(**int32)(__ccgo_up(bp)))
				rc = _sessionInputBuffer(tls, pIn, int32(nByte))
			} else {
				if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) {
					nByte = nByte + int64(8)
				} else {
					if eType != 0 && eType != int32(SQLITE_NULL) {
						rc = _sqlite3CorruptError(tls, int32(237456))
					}
				}
			}
		}
		if rc == SQLITE_OK && int64((*TSessionInput)(unsafe.Pointer(pIn)).FiNext)+nByte > int64((*TSessionInput)(unsafe.Pointer(pIn)).FnData) {
			rc = _sqlite3CorruptError(tls, int32(237460))
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	**(**int32)(__ccgo_up(pnByte)) = int32(nByte)
	return rc
}

func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFrom uintptr, zExpr uintptr) (r int32) {
	bp := tls.Alloc(80)
	defer tls.Free(80)
	var iRowid Ti64
	var pDiffCtx, z1, z2, zExpr2, zStmt uintptr
	var rc int32
	var v1 int64
	var _ /* pStmt at bp+0 */ uintptr
	_, _, _, _, _, _, _, _ = iRowid, pDiffCtx, rc, z1, z2, zExpr2, zStmt, v1
	rc = SQLITE_OK
	zExpr2 = _sessionExprCompareOther(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FnCol, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, (*TSessionTable)(unsafe.Pointer(pTab)).FazCol, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK)
	if zExpr2 == uintptr(0) {
		rc = int32(SQLITE_NOMEM)
	} else {
		z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab)
		z2 = _sessionAllCols(tls, zFrom, pTab)
		zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+36787, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2))
		if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) {
			rc = int32(SQLITE_NOMEM)
		} else {
			rc = Xsqlite3_prepare_v2(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, zStmt, -int32(1), bp, uintptr(0))
			if rc == SQLITE_OK {
				pDiffCtx = (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx
				(*TSessionDiffCtx)(unsafe.Pointer(pDiffCtx)).FpStmt = **(**uintptr)(__ccgo_up(bp))
				(*TSessionDiffCtx)(unsafe.Pointer(pDiffCtx)).FnOldOff = (*TSessionTable)(unsafe.Pointer(pTab)).FnCol
				for int32(SQLITE_ROW) == Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp))) {
					if (*TSessionTable)(unsafe.Pointer(pTab)).FbRowid != 0 {
						v1 = Xsqlite3_column_int64(tls, **(**uintptr)(__ccgo_up(bp)), 0)
					} else {
						v1 = 0
					}
					iRowid = v1
					_sessionPreupdateOneChange(tls, int32(SQLITE_UPDATE), iRowid, pSession, pTab)
				}
				rc = Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
			}
		}
		Xsqlite3_free(tls, zStmt)
		Xsqlite3_free(tls, z1)
		Xsqlite3_free(tls, z2)
	}
	return rc
}

// C documentation
//
//	/*
//	** Read a 64-bit big-endian integer value from buffer aRec[]. Return
//	** the value read.
//	*/
func _sessionGetI64(tls *libc.TLS, aRec uintptr) (r Tsqlite3_int64) {
	var x Tu64
	var y Tu32
	_, _ = x, y
	x = uint64(uint32(**(**Tu8)(__ccgo_up(aRec)))<<libc.Int32FromInt32(24) | uint32(int32(**(**Tu8)(__ccgo_up(aRec + 1)))<<libc.Int32FromInt32(16)) | uint32(int32(**(**Tu8)(__ccgo_up(aRec + 2)))<<libc.Int32FromInt32(8)) | uint32(**(**Tu8)(__ccgo_up(aRec + 3))))
	y = uint32(**(**Tu8)(__ccgo_up(aRec + libc.UintptrFromInt32(4))))<<libc.Int32FromInt32(24) | uint32(int32(**(**Tu8)(__ccgo_up(aRec + libc.UintptrFromInt32(4) + 1)))<<libc.Int32FromInt32(16)) | uint32(int32(**(**Tu8)(__ccgo_up(aRec + libc.UintptrFromInt32(4) + 2)))<<libc.Int32FromInt32(8)) | uint32(**(**Tu8)(__ccgo_up(aRec + libc.UintptrFromInt32(4) + 3)))
	x = x<<libc.Int32FromInt32(32) + uint64(y)
	return int64(x)
}

// C documentation
//
//	/*
//	** Append the hash of the 64-bit integer passed as the second argument to the
//	** hash-key value passed as the first. Return the new hash-key value.
//	*/
func _sessionHashAppendI64(tls *libc.TLS, h uint32, i Ti64) (r uint32) {
	h = h<<int32(3) ^ h ^ uint32(i&libc.Int64FromUint32(0xFFFFFFFF))
	return h<<int32(3) ^ h ^ uint32(i>>libc.Int32FromInt32(32)&libc.Int64FromUint32(0xFFFFFFFF))
}

// C documentation
//
//	/*
//	** Append the hash of the data type passed as the second argument to the
//	** hash-key value passed as the first. Return the new hash-key value.
//	*/
func _sessionHashAppendType(tls *libc.TLS, h uint32, eType int32) (r uint32) {
	return h<<int32(3) ^ h ^ uint32(eType)
}

func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, pzErrmsg uintptr, zSql uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	_ = rc
	rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), pp, uintptr(0))
	if pzErrmsg != 0 && rc != SQLITE_OK {
		**(**uintptr)(__ccgo_up(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4729, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db)))
	}
	return rc
}

// C documentation
//
//	/*
//	** Write a 64-bit big-endian integer value to the buffer aBuf[].
//	*/
func _sessionPutI64(tls *libc.TLS, aBuf uintptr, i Tsqlite3_int64) {
	**(**Tu8)(__ccgo_up(aBuf)) = uint8(i >> libc.Int32FromInt32(56) & int64(0xFF))
	**(**Tu8)(__ccgo_up(aBuf + 1)) = uint8(i >> libc.Int32FromInt32(48) & int64(0xFF))
	**(**Tu8)(__ccgo_up(aBuf + 2)) = uint8(i >> libc.Int32FromInt32(40) & int64(0xFF))
	**(**Tu8)(__ccgo_up(aBuf + 3)) = uint8(i >> libc.Int32FromInt32(32) & int64(0xFF))
	**(**Tu8)(__ccgo_up(aBuf + 4)) = uint8(i >> libc.Int32FromInt32(24) & int64(0xFF))
	**(**Tu8)(__ccgo_up(aBuf + 5)) = uint8(i >> libc.Int32FromInt32(16) & int64(0xFF))
	**(**Tu8)(__ccgo_up(aBuf + 6)) = uint8(i >> libc.Int32FromInt32(8) & int64(0xFF))
	**(**Tu8)(__ccgo_up(aBuf + 7)) = uint8(i >> libc.Int32FromInt32(0) & int64(0xFF))
}

func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int32, zTbl uintptr, zExpr uintptr) (r uintptr) {
	bp := tls.Alloc(64)
	defer tls.Free(64)
	var zRet, zSel, v1 uintptr
	_, _, _ = zRet, zSel, v1
	if bRowid != 0 {
		v1 = __ccgo_ts + 36678
	} else {
		v1 = __ccgo_ts + 8038
	}
	zSel = v1
	zRet = Xsqlite3_mprintf(tls, __ccgo_ts+36689, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr))
	return zRet
}

// C documentation
//
//	/*
//	** The buffer that the argument points to contains a serialized SQL value.
//	** Return the number of bytes of space occupied by the value (including
//	** the type byte).
//	*/
func _sessionSerialLen(tls *libc.TLS, a uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var e int32
	var _ /* n at bp+0 */ int32
	_ = e
	e = int32(**(**Tu8)(__ccgo_up(a)))
	if e == int32(SQLITE_INTEGER) || e == int32(SQLITE_FLOAT) {
		return int32(9)
	}
	if e == int32(SQLITE_TEXT) || e == int32(SQLITE_BLOB) {
		return _sessionVarintGet(tls, a+1, bp) + int32(1) + **(**int32)(__ccgo_up(bp))
	}
	return int32(1)
}

// C documentation
//
//	/*
//	** When this function is called, *ppRec points to the start of a record
//	** that contains nCol values. This function advances the pointer *ppRec
//	** until it points to the byte immediately following that record.
//	*/
func _sessionSkipRecord(tls *libc.TLS, ppRec uintptr, nCol int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var aRec, v2 uintptr
	var eType, i int32
	var _ /* nByte at bp+0 */ int32
	_, _, _, _ = aRec, eType, i, v2
	aRec = **(**uintptr)(__ccgo_up(ppRec))
	i = 0
	for {
		if !(i < nCol) {
			break
		}
		v2 = aRec
		aRec = aRec + 1
		eType = int32(**(**Tu8)(__ccgo_up(v2)))
		if eType == int32(SQLITE_TEXT) || eType == int32(SQLITE_BLOB) {
			aRec = aRec + uintptr(_sessionVarintGet(tls, aRec, bp))
			aRec = aRec + uintptr(**(**int32)(__ccgo_up(bp)))
		} else {
			if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) {
				aRec = aRec + uintptr(8)
			}
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	**(**uintptr)(__ccgo_up(ppRec)) = aRec
}

// C documentation
//
//	/*
//	** Check if table zTab in the "main" database of db is a WITHOUT ROWID
//	** table.
//	**
//	** If no error occurs, return SQLITE_OK and set output variable (*pbWR) to
//	** true if zTab is a WITHOUT ROWID table, or false otherwise. Or, if an
//	** error does occur, return an SQLite error code. The final value of (*pbWR)
//	** is undefined in this case.
//	*/
func _sessionTableIsWithoutRowid(tls *libc.TLS, db uintptr, zTab uintptr, pbWR uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var rc int32
	var zSql uintptr
	var _ /* pList at bp+0 */ uintptr
	_, _ = rc, zSql
	**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
	zSql = uintptr(0)
	rc = SQLITE_OK
	zSql = Xsqlite3_mprintf(tls, __ccgo_ts+37604, libc.VaList(bp+16, zTab))
	if zSql == uintptr(0) {
		rc = int32(SQLITE_NOMEM)
	} else {
		rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), bp, uintptr(0))
		Xsqlite3_free(tls, zSql)
	}
	if rc == SQLITE_OK {
		Xsqlite3_step(tls, **(**uintptr)(__ccgo_up(bp)))
		**(**int32)(__ccgo_up(pbWR)) = Xsqlite3_column_int(tls, **(**uintptr)(__ccgo_up(bp)), int32(4))
		rc = Xsqlite3_finalize(tls, **(**uintptr)(__ccgo_up(bp)))
	}
	return rc
}

// C documentation
//
//	/*
//	** Read a varint value from aBuf[] into *piVal. Return the number of
//	** bytes read.
//	*/
func _sessionVarintGet(tls *libc.TLS, aBuf uintptr, piVal uintptr) (r int32) {
	var v1 int32
	_ = v1
	if int32(**(**Tu8)(__ccgo_up(aBuf))) < int32(libc.Uint8FromInt32(0x80)) {
		**(**int32)(__ccgo_up(piVal)) = int32(uint32(**(**Tu8)(__ccgo_up(aBuf))))
		v1 = libc.Int32FromInt32(1)
	} else {
		v1 = int32(_sqlite3GetVarint32(tls, aBuf, piVal))
	}
	return int32(uint8(v1))
}

// C documentation
//
//	/*
//	** Return the number of bytes required to store value iVal as a varint.
//	*/
func _sessionVarintLen(tls *libc.TLS, iVal int32) (r int32) {
	return _sqlite3VarintLen(tls, uint64(iVal))
}

// C documentation
//
//	/*
//	** Write a varint with value iVal into the buffer at aBuf. Return the
//	** number of bytes written.
//	*/
func _sessionVarintPut(tls *libc.TLS, aBuf uintptr, iVal int32) (r int32) {
	var v1 int32
	_ = v1
	if uint32(iVal) < libc.Uint32FromInt32(0x80) {
		**(**Tu8)(__ccgo_up(aBuf)) = uint8(iVal)
		v1 = libc.Int32FromInt32(1)
	} else {
		v1 = _sqlite3PutVarint(tls, aBuf, uint64(iVal))
	}
	return int32(uint8(v1))
}

// C documentation
//
//	/*
//	** Set the pointer-map entries for all children of page pPage. Also, if
//	** pPage contains cells that point to overflow pages, set the pointer
//	** map entries for the overflow pages as well.
//	*/
func _setChildPtrmaps(tls *libc.TLS, pPage uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var childPgno, childPgno1, pgno TPgno
	var i, nCell, v1 int32
	var pBt, pCell uintptr
	var _ /* rc at bp+0 */ int32
	_, _, _, _, _, _, _, _ = childPgno, childPgno1, i, nCell, pBt, pCell, pgno, v1 /* Return code */
	pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt
	pgno = (*TMemPage)(unsafe.Pointer(pPage)).Fpgno
	if (*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0 {
		v1 = SQLITE_OK
	} else {
		v1 = _btreeInitPage(tls, pPage)
	}
	**(**int32)(__ccgo_up(bp)) = v1
	if **(**int32)(__ccgo_up(bp)) != SQLITE_OK {
		return **(**int32)(__ccgo_up(bp))
	}
	nCell = int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell)
	i = 0
	for {
		if !(i < nCell) {
			break
		}
		pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*i))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*i) + 1)))))
		_ptrmapPutOvflPtr(tls, pPage, pPage, pCell, bp)
		if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) {
			childPgno = _sqlite3Get4byte(tls, pCell)
			_ptrmapPut(tls, pBt, childPgno, uint8(PTRMAP_BTREE), pgno, bp)
		}
		goto _2
	_2:
		;
		i = i + 1
	}
	if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) {
		childPgno1 = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)))
		_ptrmapPut(tls, pBt, childPgno1, uint8(PTRMAP_BTREE), pgno, bp)
	}
	return **(**int32)(__ccgo_up(bp))
}

// C documentation
//
//	/*
//	** If the last opcode is a OP_Copy, then set the do-not-merge flag (p5)
//	** so that a subsequent copy will not be merged into this one.
//	*/
func _setDoNotMergeFlagOnCopy(tls *libc.TLS, v uintptr) {
	if int32((*TVdbeOp)(unsafe.Pointer(_sqlite3VdbeGetLastOp(tls, v))).Fopcode) == int32(OP_Copy) {
		_sqlite3VdbeChangeP5(tls, v, uint16(1)) /* Tag trailing OP_Copy as not mergeable */
	}
}

// C documentation
//
//	/*
//	** Set result column names for a pragma.
//	*/
func _setPragmaResultColumnNames(tls *libc.TLS, v uintptr, pPragma uintptr) {
	var i, j, v1 int32
	var n Tu8
	_, _, _, _ = i, j, n, v1
	n = (*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName
	if int32(n) == 0 {
		v1 = int32(1)
	} else {
		v1 = int32(n)
	}
	_sqlite3VdbeSetNumCols(tls, v, v1)
	if int32(n) == 0 {
		_sqlite3VdbeSetColName(tls, v, 0, COLNAME_NAME, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName, libc.UintptrFromInt32(0))
	} else {
		i = 0
		j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName)
		for {
			if !(i < int32(n)) {
				break
			}
			_sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, _pragCName[j], libc.UintptrFromInt32(0))
			goto _2
		_2:
			;
			i = i + 1
			j = j + 1
		}
	}
}

// C documentation
//
//	/*
//	** Set the value of the Pager.sectorSize variable for the given
//	** pager based on the value returned by the xSectorSize method
//	** of the open database file. The sector size will be used
//	** to determine the size and alignment of journal header and
//	** super-journal pointers within created journal files.
//	**
//	** For temporary files the effective sector size is always 512 bytes.
//	**
//	** Otherwise, for non-temporary files, the effective sector size is
//	** the value returned by the xSectorSize() method rounded up to 32 if
//	** it is less than 32, or rounded down to MAX_SECTOR_SIZE if it
//	** is greater than MAX_SECTOR_SIZE.
//	**
//	** If the file has the SQLITE_IOCAP_POWERSAFE_OVERWRITE property, then set
//	** the effective sector size to its minimum value (512).  The purpose of
//	** pPager->sectorSize is to define the "blast radius" of bytes that
//	** might change if a crash occurs while writing to a single byte in
//	** that range.  But with POWERSAFE_OVERWRITE, the blast radius is zero
//	** (that is what POWERSAFE_OVERWRITE means), so we minimize the sector
//	** size.  For backwards compatibility of the rollback journal file format,
//	** we cannot reduce the effective sector size below 512.
//	*/
func _setSectorSize(tls *libc.TLS, pPager uintptr) {
	if (*TPager)(unsafe.Pointer(pPager)).FtempFile != 0 || _sqlite3OsDeviceCharacteristics(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_POWERSAFE_OVERWRITE) != 0 {
		/* Sector size doesn't matter for temporary files. Also, the file
		 ** may not have been opened yet, in which case the OsSectorSize()
		 ** call will segfault. */
		(*TPager)(unsafe.Pointer(pPager)).FsectorSize = uint32(512)
	} else {
		(*TPager)(unsafe.Pointer(pPager)).FsectorSize = uint32(_sqlite3SectorSize(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd))
	}
}

type _sigset_t = T_sigset_t

// C documentation
//
//	/* IMP: R-25361-16150 This function is omitted from SQLite by default. It
//	** is only available if the SQLITE_SOUNDEX compile-time option is used
//	** when SQLite is built.
//	*/
//	/*
//	** Compute the soundex encoding of a word.
//	**
//	** IMP: R-59782-00072 The soundex(X) function returns a string that is the
//	** soundex encoding of the string X.
//	*/
func _soundexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var code, i, j, v3 int32
	var prevcode Tu8
	var zIn uintptr
	var _ /* zResult at bp+0 */ [8]int8
	_, _, _, _, _, _ = code, i, j, prevcode, zIn, v3
	zIn = Xsqlite3_value_text(tls, **(**uintptr)(__ccgo_up(argv)))
	if zIn == uintptr(0) {
		zIn = __ccgo_ts + 1711
	}
	i = 0
	for {
		if !(**(**Tu8)(__ccgo_up(zIn + uintptr(i))) != 0 && !(int32(_sqlite3CtypeMap[**(**Tu8)(__ccgo_up(zIn + uintptr(i)))])&libc.Int32FromInt32(0x02) != 0)) {
			break
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	if **(**Tu8)(__ccgo_up(zIn + uintptr(i))) != 0 {
		prevcode = _iCode[int32(**(**Tu8)(__ccgo_up(zIn + uintptr(i))))&int32(0x7f)]
		(**(**[8]int8)(__ccgo_up(bp)))[0] = int8(int32(**(**Tu8)(__ccgo_up(zIn + uintptr(i)))) & ^(int32(_sqlite3CtypeMap[**(**Tu8)(__ccgo_up(zIn + uintptr(i)))]) & libc.Int32FromInt32(0x20)))
		j = int32(1)
		for {
			if !(j < int32(4) && **(**Tu8)(__ccgo_up(zIn + uintptr(i))) != 0) {
				break
			}
			code = int32(_iCode[int32(**(**Tu8)(__ccgo_up(zIn + uintptr(i))))&int32(0x7f)])
			if code > 0 {
				if code != int32(prevcode) {
					prevcode = uint8(code)
					v3 = j
					j = j + 1
					(**(**[8]int8)(__ccgo_up(bp)))[v3] = int8(code + int32('0'))
				}
			} else {
				prevcode = uint8(0)
			}
			goto _2
		_2:
			;
			i = i + 1
		}
		for j < int32(4) {
			v3 = j
			j = j + 1
			(**(**[8]int8)(__ccgo_up(bp)))[v3] = int8('0')
		}
		(**(**[8]int8)(__ccgo_up(bp)))[j] = 0
		Xsqlite3_result_text(tls, context, bp, int32(4), uintptr(-libc.Int32FromInt32(1)))
	} else {
		/* IMP: R-64894-50321 The string "?000" is returned if the argument
		 ** is NULL or contains no ASCII alphabetic characters. */
		Xsqlite3_result_text(tls, context, __ccgo_ts+17816, int32(4), libc.UintptrFromInt32(0))
	}
}

// C documentation
//
//	/*
//	** Scan the column type name zType (length nType) and return the
//	** associated affinity type.
//	**
//	** This routine does a case-independent search of zType for the
//	** substrings in the following table. If one of the substrings is
//	** found, the corresponding affinity is returned. If zType contains
//	** more than one of the substrings, entries toward the top of
//	** the table take priority. For example, if zType is 'BLOBINT',
//	** SQLITE_AFF_INTEGER is returned.
//	**
//	** Substring     | Affinity
//	** --------------------------------
//	** 'INT'         | SQLITE_AFF_INTEGER
//	** 'CHAR'        | SQLITE_AFF_TEXT
//	** 'CLOB'        | SQLITE_AFF_TEXT
//	** 'TEXT'        | SQLITE_AFF_TEXT
//	** 'BLOB'        | SQLITE_AFF_BLOB
//	** 'REAL'        | SQLITE_AFF_REAL
//	** 'FLOA'        | SQLITE_AFF_REAL
//	** 'DOUB'        | SQLITE_AFF_REAL
//	**
//	** If none of the substrings in the above table are found,
//	** SQLITE_AFF_NUMERIC is returned.
//	*/
func _sqlite3AffinityType(tls *libc.TLS, zIn uintptr, pCol uintptr) (r int8) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var aff int8
	var h Tu32
	var x Tu8
	var zChar uintptr
	var _ /* v at bp+0 */ int32
	_, _, _, _ = aff, h, x, zChar
	h = uint32(0)
	aff = int8(SQLITE_AFF_NUMERIC)
	zChar = uintptr(0)
	for **(**int8)(__ccgo_up(zIn)) != 0 {
		x = **(**Tu8)(__ccgo_up(zIn))
		h = h<<libc.Int32FromInt32(8) + uint32(_sqlite3UpperToLower[x])
		zIn = zIn + 1
		if h == uint32(libc.Int32FromUint8('c')<<libc.Int32FromInt32(24)+libc.Int32FromUint8('h')<<libc.Int32FromInt32(16)+libc.Int32FromUint8('a')<<libc.Int32FromInt32(8)+libc.Int32FromUint8('r')) { /* CHAR */
			aff = int8(SQLITE_AFF_TEXT)
			zChar = zIn
		} else {
			if h == uint32(libc.Int32FromUint8('c')<<libc.Int32FromInt32(24)+libc.Int32FromUint8('l')<<libc.Int32FromInt32(16)+libc.Int32FromUint8('o')<<libc.Int32FromInt32(8)+libc.Int32FromUint8('b')) { /* CLOB */
				aff = int8(SQLITE_AFF_TEXT)
			} else {
				if h == uint32(libc.Int32FromUint8('t')<<libc.Int32FromInt32(24)+libc.Int32FromUint8('e')<<libc.Int32FromInt32(16)+libc.Int32FromUint8('x')<<libc.Int32FromInt32(8)+libc.Int32FromUint8('t')) { /* TEXT */
					aff = int8(SQLITE_AFF_TEXT)
				} else {
					if h == uint32(libc.Int32FromUint8('b')<<libc.Int32FromInt32(24)+libc.Int32FromUint8('l')<<libc.Int32FromInt32(16)+libc.Int32FromUint8('o')<<libc.Int32FromInt32(8)+libc.Int32FromUint8('b')) && (int32(aff) == int32(SQLITE_AFF_NUMERIC) || int32(aff) == int32(SQLITE_AFF_REAL)) {
						aff = int8(SQLITE_AFF_BLOB)
						if int32(**(**int8)(__ccgo_up(zIn))) == int32('(') {
							zChar = zIn
						}
					} else {
						if h == uint32(libc.Int32FromUint8('r')<<libc.Int32FromInt32(24)+libc.Int32FromUint8('e')<<libc.Int32FromInt32(16)+libc.Int32FromUint8('a')<<libc.Int32FromInt32(8)+libc.Int32FromUint8('l')) && int32(aff) == int32(SQLITE_AFF_NUMERIC) {
							aff = int8(SQLITE_AFF_REAL)
						} else {
							if h == uint32(libc.Int32FromUint8('f')<<libc.Int32FromInt32(24)+libc.Int32FromUint8('l')<<libc.Int32FromInt32(16)+libc.Int32FromUint8('o')<<libc.Int32FromInt32(8)+libc.Int32FromUint8('a')) && int32(aff) == int32(SQLITE_AFF_NUMERIC) {
								aff = int8(SQLITE_AFF_REAL)
							} else {
								if h == uint32(libc.Int32FromUint8('d')<<libc.Int32FromInt32(24)+libc.Int32FromUint8('o')<<libc.Int32FromInt32(16)+libc.Int32FromUint8('u')<<libc.Int32FromInt32(8)+libc.Int32FromUint8('b')) && int32(aff) == int32(SQLITE_AFF_NUMERIC) {
									aff = int8(SQLITE_AFF_REAL)
								} else {
									if h&uint32(0x00FFFFFF) == uint32(libc.Int32FromUint8('i')<<libc.Int32FromInt32(16)+libc.Int32FromUint8('n')<<libc.Int32FromInt32(8)+libc.Int32FromUint8('t')) { /* INT */
										aff = int8(SQLITE_AFF_INTEGER)
										break
									}
								}
							}
						}
					}
				}
			}
		}
	}
	/* If pCol is not NULL, store an estimate of the field size.  The
	 ** estimate is scaled so that the size of an integer is 1.  */
	if pCol != 0 {
		**(**int32)(__ccgo_up(bp)) = 0 /* default size is approx 4 bytes */
		if int32(aff) < int32(SQLITE_AFF_NUMERIC) {
			if zChar != 0 {
				for **(**int8)(__ccgo_up(zChar)) != 0 {
					if int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zChar)))])&int32(0x04) != 0 {
						/* BLOB(k), VARCHAR(k), CHAR(k) -> r=(k/4+1) */
						_sqlite3GetInt32(tls, zChar, bp)
						break
					}
					zChar = zChar + 1
				}
			} else {
				**(**int32)(__ccgo_up(bp)) = int32(16) /* BLOB, TEXT, CLOB -> r=5  (approx 20 bytes)*/
			}
		}
		**(**int32)(__ccgo_up(bp)) = **(**int32)(__ccgo_up(bp))/int32(4) + int32(1)
		if **(**int32)(__ccgo_up(bp)) > int32(255) {
			**(**int32)(__ccgo_up(bp)) = int32(255)
		}
		(*TColumn)(unsafe.Pointer(pCol)).FszEst = uint8(**(**int32)(__ccgo_up(bp)))
	}
	return aff
}

// C documentation
//
//	/*
//	** Write a single UTF8 character whose value is v into the
//	** buffer starting at zOut.  zOut must be sized to hold at
//	** least four bytes.  Return the number of bytes needed
//	** to encode the new character.
//	*/
func _sqlite3AppendOneUtf8Character(tls *libc.TLS, zOut uintptr, v Tu32) (r int32) {
	if v < uint32(0x00080) {
		**(**int8)(__ccgo_up(zOut)) = int8(uint8(v & libc.Uint32FromInt32(0xff)))
		return int32(1)
	}
	if v < uint32(0x00800) {
		**(**int8)(__ccgo_up(zOut)) = int8(int32(0xc0) + int32(uint8(v>>libc.Int32FromInt32(6)&libc.Uint32FromInt32(0x1f))))
		**(**int8)(__ccgo_up(zOut + 1)) = int8(int32(0x80) + int32(uint8(v&libc.Uint32FromInt32(0x3f))))
		return int32(2)
	}
	if v < uint32(0x10000) {
		**(**int8)(__ccgo_up(zOut)) = int8(int32(0xe0) + int32(uint8(v>>libc.Int32FromInt32(12)&libc.Uint32FromInt32(0x0f))))
		**(**int8)(__ccgo_up(zOut + 1)) = int8(int32(0x80) + int32(uint8(v>>libc.Int32FromInt32(6)&libc.Uint32FromInt32(0x3f))))
		**(**int8)(__ccgo_up(zOut + 2)) = int8(int32(0x80) + int32(uint8(v&libc.Uint32FromInt32(0x3f))))
		return int32(3)
	}
	**(**int8)(__ccgo_up(zOut)) = int8(int32(0xf0) + int32(uint8(v>>libc.Int32FromInt32(18)&libc.Uint32FromInt32(0x07))))
	**(**int8)(__ccgo_up(zOut + 1)) = int8(int32(0x80) + int32(uint8(v>>libc.Int32FromInt32(12)&libc.Uint32FromInt32(0x3f))))
	**(**int8)(__ccgo_up(zOut + 2)) = int8(int32(0x80) + int32(uint8(v>>libc.Int32FromInt32(6)&libc.Uint32FromInt32(0x3f))))
	**(**int8)(__ccgo_up(zOut + 3)) = int8(int32(0x80) + int32(uint8(v&libc.Uint32FromInt32(0x3f))))
	return int32(4)
}

// C documentation
//
//	/*
//	** The string z[] is an text representation of a real number.
//	** Convert this string to a double and write it into *pResult.
//	**
//	** z[] must be UTF-8 and zero-terminated.
//	**
//	** Return positive if the result is a valid real number (or integer) and
//	** zero or negative if the string is empty or contains extraneous text.
//	** Lower bits of the return value contain addition information about the
//	** parse:
//	**
//	**   bit 0       =>   Set if any prefix of the input is valid.  Clear if
//	**                    there is no prefix of the input that can be seen as
//	**                    a valid floating point number.
//	**   bit 1       =>   Set if the input contains a decimal point or eNNN
//	**                    clause.  Zero if the input is an integer.
//	**   bit 2       =>   The input is exactly 0.0, not an underflow from
//	**                    some value near zero.
//	**   bit 3       =>   Set if there are more than about 19 significant
//	**                    digits in the input.
//	**
//	** If the input contains a syntax error but begins with text that might
//	** be a valid number of some kind, then the result is negative.  The
//	** result is only zero if no prefix of the input could be interpreted as
//	** a number.
//	**
//	** Leading and trailing whitespace is ignored.  Valid numbers are in
//	** one of the formats below:
//	**
//	**    [+-]digits[E[+-]digits]
//	**    [+-]digits.[digits][E[+-]digits]
//	**    [+-].digits[E[+-]digits]
//	**
//	** Algorithm sketch:  Compute an unsigned 64-bit integer s and a base-10
//	** exponent d such that the value encoding by the input is s*pow(10,d).
//	** Then invoke sqlite3Fp10Convert2() to calculated the closest possible
//	** IEEE754 double.  The sign is added back afterwards, if the input string
//	** starts with a "-".  The use of an unsigned 64-bit s mantissa means that
//	** only about the first 19 significant digits of the input can contribute
//	** to the result.  This can result in suboptimal rounding decisions when
//	** correct rounding requires more than 19 input digits.  For example,
//	** this routine renders "3500000000000000.2500001" as
//	** 3500000000000000.0 instead of 3500000000000000.5 because the decision
//	** to round up instead of using banker's rounding to round down is determined
//	** by the 23rd significant digit, which this routine ignores. It is not
//	** possible to do better without some kind of BigNum.
//	*/
func _sqlite3AtoF(tls *libc.TLS, zIn uintptr, pResult uintptr) (r int32) {
	var d, esign, exp, mState, neg int32
	var s Tu64
	var v, v3, v4 uint32
	var z, v7 uintptr
	_, _, _, _, _, _, _, _, _, _, _ = d, esign, exp, mState, neg, s, v, z, v3, v4, v7
	z = zIn
	neg = 0       /* True for a negative value */
	s = uint64(0) /* mantissa */
	d = 0         /* Value is s * pow(10,d) */
	mState = 0    /* Value of a single digit */
	goto start_of_text
start_of_text:
	;
	v3 = uint32(**(**uint8)(__ccgo_up(z))) - libc.Uint32FromUint8('0')
	v = v3
	if !(v3 < uint32(10)) {
		goto _1
	}
	goto parse_integer_part
parse_integer_part:
	;
	mState = int32(1)
	s = uint64(v)
	z = z + 1
	for {
		v3 = uint32(**(**uint8)(__ccgo_up(z))) - libc.Uint32FromUint8('0')
		v = v3
		if !(v3 < uint32(10)) {
			break
		}
		s = s*uint64(10) + uint64(v)
		z = z + 1
		if s >= (libc.Uint64FromUint32(0xffffffff)|libc.Uint64FromUint32(0xffffffff)<<libc.Int32FromInt32(32)-libc.Uint64FromInt32(9))/libc.Uint64FromInt32(10) {
			mState = int32(9)
			for int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z))])&int32(0x04) != 0 {
				z = z + 1
				d = d + 1
			}
			break
		}
	}
	goto _2
_1:
	;
	if int32(**(**uint8)(__ccgo_up(z))) == int32('-') {
		neg = int32(1)
		z = z + 1
		v3 = uint32(**(**uint8)(__ccgo_up(z))) - libc.Uint32FromUint8('0')
		v = v3
		if v3 < uint32(10) {
			goto parse_integer_part
		}
	} else {
		if int32(**(**uint8)(__ccgo_up(z))) == int32('+') {
			z = z + 1
			v3 = uint32(**(**uint8)(__ccgo_up(z))) - libc.Uint32FromUint8('0')
			v = v3
			if v3 < uint32(10) {
				goto parse_integer_part
			}
		} else {
			if int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z))])&int32(0x01) != 0 {
				for cond := true; cond; cond = int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z))])&int32(0x01) != 0 {
					z = z + 1
				}
				goto start_of_text
			} else {
				s = uint64(0)
			}
		}
	}
_2:
	;
	/* if decimal point is present */
	if int32(**(**uint8)(__ccgo_up(z))) == int32('.') {
		z = z + 1
		if int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z))])&int32(0x04) != 0 {
			mState = mState | int32(1)
			for {
				if s < (libc.Uint64FromUint32(0xffffffff)|libc.Uint64FromUint32(0xffffffff)<<libc.Int32FromInt32(32)-libc.Uint64FromInt32(9))/libc.Uint64FromInt32(10) {
					s = s*uint64(10) + uint64(**(**uint8)(__ccgo_up(z))) - uint64('0')
					d = d - 1
				} else {
					mState = int32(11)
				}
				goto _8
			_8:
				;
				z = z + 1
				v7 = z
				if !(int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(v7))])&int32(0x04) != 0) {
					break
				}
			}
		} else {
			if mState == 0 {
				**(**float64)(__ccgo_up(pResult)) = float64(0)
				return 0
			}
		}
		mState = mState | int32(2)
	} else {
		if mState == 0 {
			**(**float64)(__ccgo_up(pResult)) = float64(0)
			return 0
		}
	}
	/* if exponent is present */
	if int32(**(**uint8)(__ccgo_up(z))) == int32('e') || int32(**(**uint8)(__ccgo_up(z))) == int32('E') {
		z = z + 1
		/* get sign of exponent */
		if int32(**(**uint8)(__ccgo_up(z))) == int32('-') {
			esign = -int32(1)
			z = z + 1
		} else {
			esign = +libc.Int32FromInt32(1)
			if int32(**(**uint8)(__ccgo_up(z))) == int32('+') {
				z = z + 1
			}
		}
		/* copy digits to exponent */
		v3 = uint32(**(**uint8)(__ccgo_up(z))) - libc.Uint32FromUint8('0')
		v = v3
		if v3 < uint32(10) {
			exp = int32(v)
			z = z + 1
			mState = mState | int32(2)
			for {
				v3 = uint32(**(**uint8)(__ccgo_up(z))) - libc.Uint32FromUint8('0')
				v = v3
				if !(v3 < uint32(10)) {
					break
				}
				if exp < int32(10000) {
					v4 = uint32(exp*int32(10)) + v
				} else {
					v4 = uint32(10000)
				}
				exp = int32(v4)
				z = z + 1
			}
			d = d + esign*exp
		} else {
			z = z - 1 /* Leave z[0] at 'e' or '+' or '-',
			 ** so that the return is 0 or -1 */
		}
	}
	/* Convert s*pow(10,d) into real */
	if s == uint64(0) {
		**(**float64)(__ccgo_up(pResult)) = float64(0)
		mState = mState | int32(4)
	} else {
		**(**float64)(__ccgo_up(pResult)) = _sqlite3Fp10Convert2(tls, s, d)
	}
	if neg != 0 {
		**(**float64)(__ccgo_up(pResult)) = -**(**float64)(__ccgo_up(pResult))
	}
	/* return true if number and no extra non-whitespace characters after */
	if int32(**(**uint8)(__ccgo_up(z))) == 0 {
		return mState
	}
	if int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z))])&int32(0x01) != 0 {
		for cond := true; cond; cond = int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z))])&int32(0x01) != 0 {
			z = z + 1
		}
		if int32(**(**uint8)(__ccgo_up(z))) == 0 {
			return mState
		}
	}
	return int32(uint32(0xfffffff0) | uint32(mState))
}

// C documentation
//
//	/*
//	** Convert zNum to a 64-bit signed integer.  zNum must be decimal. This
//	** routine does *not* accept hexadecimal notation.
//	**
//	** Returns:
//	**
//	**    -1    Not even a prefix of the input text looks like an integer
//	**     0    Successful transformation.  Fits in a 64-bit signed integer.
//	**     1    Excess non-space text after the integer value
//	**     2    Integer too large for a 64-bit signed integer or is malformed
//	**     3    Special case of 9223372036854775808
//	**
//	** length is the number of bytes in the string (bytes, not characters).
//	** The string is not necessarily zero-terminated.  The encoding is
//	** given by enc.
//	*/
func _sqlite3Atoi64(tls *libc.TLS, zNum uintptr, pNum uintptr, length int32, enc Tu8) (r int32) {
	var c, v3 uint32
	var i, incr, j, jj, neg, nonNum, rc, v6 int32
	var u Tu64
	var zEnd, zStart uintptr
	var v4 bool
	var v5 int64
	_, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, i, incr, j, jj, neg, nonNum, rc, u, zEnd, zStart, v3, v4, v5, v6
	u = uint64(0)
	neg = 0
	c = uint32(0)
	nonNum = 0
	zEnd = zNum + uintptr(length)
	if int32(enc) == int32(SQLITE_UTF8) {
		incr = int32(1)
	} else {
		incr = int32(2)
		length = length & ^libc.Int32FromInt32(1)
		i = int32(3) - int32(enc)
		for {
			if !(i < length && int32(**(**int8)(__ccgo_up(zNum + uintptr(i)))) == 0) {
				break
			}
			goto _1
		_1:
			;
			i = i + int32(2)
		}
		nonNum = libc.BoolInt32(i < length)
		zEnd = zNum + uintptr(i^int32(1))
		zNum = zNum + uintptr(int32(enc)&libc.Int32FromInt32(1))
	}
	for zNum < zEnd && int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zNum)))])&int32(0x01) != 0 {
		zNum = zNum + uintptr(incr)
	}
	if zNum < zEnd {
		if int32(**(**int8)(__ccgo_up(zNum))) == int32('-') {
			neg = int32(1)
			zNum = zNum + uintptr(incr)
		} else {
			if int32(**(**int8)(__ccgo_up(zNum))) == int32('+') {
				zNum = zNum + uintptr(incr)
			}
		}
	}
	zStart = zNum
	for zNum < zEnd && int32(**(**int8)(__ccgo_up(zNum))) == int32('0') {
		zNum = zNum + uintptr(incr)
	} /* Skip leading zeros. */
	i = 0
	for {
		if v4 = zNum+uintptr(i) < zEnd; v4 {
			v3 = uint32(**(**int8)(__ccgo_up(zNum + uintptr(i)))) - libc.Uint32FromUint8('0')
			c = v3
		}
		if !(v4 && v3 <= uint32(9)) {
			break
		}
		u = u*uint64(10) + uint64(c)
		goto _2
	_2:
		;
		i = i + incr
	}
	if u > uint64(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32)) {
		/* This test and assignment is needed only to suppress UB warnings
		 ** from clang and -fsanitize=undefined.  This test and assignment make
		 ** the code a little larger and slower, and no harm comes from omitting
		 ** them, but we must appease the undefined-behavior pharisees. */
		if neg != 0 {
			v5 = int64(-libc.Int32FromInt32(1)) - (libc.Int64FromUint32(0xffffffff) | libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32))
		} else {
			v5 = libc.Int64FromUint32(0xffffffff) | libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32)
		}
		**(**Ti64)(__ccgo_up(pNum)) = v5
	} else {
		if neg != 0 {
			**(**Ti64)(__ccgo_up(pNum)) = -int64(u)
		} else {
			**(**Ti64)(__ccgo_up(pNum)) = int64(u)
		}
	}
	rc = 0
	if i == 0 && zStart == zNum { /* No digits */
		rc = -int32(1)
	} else {
		if nonNum != 0 { /* UTF16 with high-order bytes non-zero */
			rc = int32(1)
		} else {
			if zNum+uintptr(i) < zEnd { /* Extra bytes at the end */
				jj = i
				for cond := true; cond; cond = zNum+uintptr(jj) < zEnd {
					if !(int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zNum + uintptr(jj))))])&libc.Int32FromInt32(0x01) != 0) {
						rc = int32(1) /* Extra non-space text after the integer */
						break
					}
					jj = jj + incr
				}
			}
		}
	}
	if i < int32(19)*incr {
		/* Less than 19 digits, so we know that it fits in 64 bits */
		return rc
	} else {
		/* zNum is a 19-digit numbers.  Compare it against 9223372036854775808. */
		if i > int32(19)*incr {
			v6 = int32(1)
		} else {
			v6 = _compare2pow63(tls, zNum, incr)
		}
		j = v6
		if j < 0 {
			/* zNum is less than 9223372036854775808 so it fits */
			return rc
		} else {
			if neg != 0 {
				v5 = int64(-libc.Int32FromInt32(1)) - (libc.Int64FromUint32(0xffffffff) | libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32))
			} else {
				v5 = libc.Int64FromUint32(0xffffffff) | libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32)
			}
			**(**Ti64)(__ccgo_up(pNum)) = v5
			if j > 0 {
				/* zNum is greater than 9223372036854775808 so it overflows */
				return int32(2)
			} else {
				/* zNum is exactly 9223372036854775808.  Fits if negative.  The
				 ** special case 2 overflow if positive */
				if neg != 0 {
					v6 = rc
				} else {
					v6 = int32(3)
				}
				return v6
			}
		}
	}
	return r
}

// C documentation
//
//	/*
//	** Do an authorization check using the code and arguments given.  Return
//	** either SQLITE_OK (zero) or SQLITE_IGNORE or SQLITE_DENY.  If SQLITE_DENY
//	** is returned, then the error count and error message in pParse are
//	** modified appropriately.
//	*/
func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, zArg2 uintptr, zArg3 uintptr) (r int32) {
	var db uintptr
	var rc int32
	_, _ = db, rc
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	/* Don't do any authorization checks if the database is initializing
	 ** or if the parser is being invoked from within sqlite3_declare_vtab.
	 */
	if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth == uintptr(0) || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL {
		return SQLITE_OK
	}
	/* EVIDENCE-OF: R-43249-19882 The third through sixth parameters to the
	 ** callback are either NULL pointers or zero-terminated strings that
	 ** contain additional details about the action to be authorized.
	 **
	 ** The following testcase() macros show that any of the 3rd through 6th
	 ** parameters can be either NULL or a string. */
	rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext)
	if rc == int32(SQLITE_DENY) {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14888, 0)
		(*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH)
	} else {
		if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) {
			rc = int32(SQLITE_DENY)
			_sqliteAuthBadReturnCode(tls, pParse)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** This routine runs an extensive test of the Bitvec code.
//	**
//	** The input is an array of integers that acts as a program
//	** to test the Bitvec.  The integers are opcodes followed
//	** by 0, 1, or 3 operands, depending on the opcode.  Another
//	** opcode follows immediately after the last operand.
//	**
//	** There are opcodes numbered starting with 0.  0 is the
//	** "halt" opcode and causes the test to end.
//	**
//	**    0          Halt and return the number of errors
//	**    1 N S X    Set N bits beginning with S and incrementing by X
//	**    2 N S X    Clear N bits beginning with S and incrementing by X
//	**    3 N        Set N randomly chosen bits
//	**    4 N        Clear N randomly chosen bits
//	**    5 N S X    Set N bits from S increment X in array only, not in bitvec
//	**    6          Invoice sqlite3ShowBitvec() on the Bitvec object so far
//	**    7 X        Show compile-time parameters and the hash of X
//	**
//	** The opcodes 1 through 4 perform set and clear operations are performed
//	** on both a Bitvec object and on a linear array of bits obtained from malloc.
//	** Opcode 5 works on the linear array only, not on the Bitvec.
//	** Opcode 5 is used to deliberately induce a fault in order to
//	** confirm that error detection works.  Opcodes 6 and greater are
//	** state output opcodes.  Opcodes 6 and greater are no-ops unless
//	** SQLite has been compiled with SQLITE_DEBUG.
//	**
//	** At the conclusion of the test the linear array is compared
//	** against the Bitvec object.  If there are any differences,
//	** an error is returned.  If they are the same, zero is returned.
//	**
//	** If a memory allocation error occurs, return -1.
//	**
//	** sz is the size of the Bitvec.  Or if sz is negative, make the size
//	** 2*(unsigned)(-sz) and disabled the linear vector check.
//	*/
func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var nx, op, pc, rc, v1 int32
	var pBitvec, pTmpSpace, pV, v4 uintptr
	var _ /* i at bp+0 */ int32
	_, _, _, _, _, _, _, _, _ = nx, op, pBitvec, pTmpSpace, pV, pc, rc, v1, v4
	pBitvec = uintptr(0)
	pV = uintptr(0)
	rc = -int32(1)
	/* Allocate the Bitvec to be tested and a linear array of
	 ** bits to act as the reference */
	if sz <= 0 {
		pBitvec = _sqlite3BitvecCreate(tls, uint32(2)*uint32(-sz))
		pV = uintptr(0)
	} else {
		pBitvec = _sqlite3BitvecCreate(tls, uint32(sz))
		pV = _sqlite3MallocZero(tls, uint64((int64(7)+int64(sz))/int64(8)+int64(1)))
	}
	pTmpSpace = Xsqlite3_malloc64(tls, uint64(BITVEC_SZ))
	if pBitvec == uintptr(0) || pTmpSpace == uintptr(0) || pV == uintptr(0) && sz > 0 {
		goto bitvec_end
	}
	/* NULL pBitvec tests */
	_sqlite3BitvecSet(tls, uintptr(0), uint32(1))
	_sqlite3BitvecClear(tls, uintptr(0), uint32(1), pTmpSpace)
	/* Run the program */
	v1 = libc.Int32FromInt32(0)
	**(**int32)(__ccgo_up(bp)) = v1
	pc = v1
	for {
		v1 = **(**int32)(__ccgo_up(aOp + uintptr(pc)*4))
		op = v1
		if !(v1 != 0) {
			break
		}
		if op >= int32(6) {
			pc = pc + 1
			continue
		}
		switch op {
		case int32(1):
			fallthrough
		case int32(2):
			fallthrough
		case int32(5):
			nx = int32(4)
			**(**int32)(__ccgo_up(bp)) = **(**int32)(__ccgo_up(aOp + uintptr(pc+int32(2))*4)) - int32(1)
			**(**int32)(__ccgo_up(aOp + uintptr(pc+int32(2))*4)) += **(**int32)(__ccgo_up(aOp + uintptr(pc+int32(3))*4))
		case int32(3):
			fallthrough
		case int32(4):
			fallthrough
		default:
			nx = int32(2)
			Xsqlite3_randomness(tls, int32(4), bp)
			break
		}
		v4 = aOp + uintptr(pc+int32(1))*4
		*(*int32)(unsafe.Pointer(v4)) = *(*int32)(unsafe.Pointer(v4)) - 1
		v1 = *(*int32)(unsafe.Pointer(v4))
		if v1 > 0 {
			nx = 0
		}
		pc = pc + nx
		**(**int32)(__ccgo_up(bp)) = **(**int32)(__ccgo_up(bp)) & int32(0x7fffffff) % sz
		if op&int32(1) != 0 {
			if pV != 0 {
				v4 = pV + uintptr((**(**int32)(__ccgo_up(bp))+int32(1))>>int32(3))
				*(*uint8)(unsafe.Pointer(v4)) = uint8(int32(*(*uint8)(unsafe.Pointer(v4))) | libc.Int32FromInt32(1)<<((**(**int32)(__ccgo_up(bp))+libc.Int32FromInt32(1))&libc.Int32FromInt32(7)))
			}
			if op != int32(5) {
				if _sqlite3BitvecSet(tls, pBitvec, uint32(**(**int32)(__ccgo_up(bp))+int32(1))) != 0 {
					goto bitvec_end
				}
			}
		} else {
			if pV != 0 {
				v4 = pV + uintptr((**(**int32)(__ccgo_up(bp))+int32(1))>>int32(3))
				*(*uint8)(unsafe.Pointer(v4)) = uint8(int32(*(*uint8)(unsafe.Pointer(v4))) & ^int32(uint8(libc.Int32FromInt32(1)<<((**(**int32)(__ccgo_up(bp))+libc.Int32FromInt32(1))&libc.Int32FromInt32(7)))))
			}
			_sqlite3BitvecClear(tls, pBitvec, uint32(**(**int32)(__ccgo_up(bp))+int32(1)), pTmpSpace)
		}
	}
	/* Test to make sure the linear array exactly matches the
	 ** Bitvec object.  Start with the assumption that they do
	 ** match (rc==0).  Change rc to non-zero if a discrepancy
	 ** is found.
	 */
	if pV != 0 {
		rc = int32(uint32(_sqlite3BitvecTest(tls, uintptr(0), uint32(0))+_sqlite3BitvecTest(tls, pBitvec, uint32(sz+int32(1)))+_sqlite3BitvecTest(tls, pBitvec, uint32(0))) + (_sqlite3BitvecSize(tls, pBitvec) - uint32(sz)))
		**(**int32)(__ccgo_up(bp)) = int32(1)
		for {
			if !(**(**int32)(__ccgo_up(bp)) <= sz) {
				break
			}
			if libc.BoolInt32(int32(**(**uint8)(__ccgo_up(pV + uintptr(**(**int32)(__ccgo_up(bp))>>int32(3)))))&(int32(1)<<(**(**int32)(__ccgo_up(bp))&int32(7))) != 0) != _sqlite3BitvecTest(tls, pBitvec, uint32(**(**int32)(__ccgo_up(bp)))) {
				rc = **(**int32)(__ccgo_up(bp))
				break
			}
			goto _7
		_7:
			;
			**(**int32)(__ccgo_up(bp)) = **(**int32)(__ccgo_up(bp)) + 1
		}
	} else {
		rc = 0
	}
	/* Free allocated structure */
	goto bitvec_end
bitvec_end:
	;
	Xsqlite3_free(tls, pTmpSpace)
	Xsqlite3_free(tls, pV)
	_sqlite3BitvecDestroy(tls, pBitvec)
	return rc
}

/********************************** Test and Debug Logic **********************/
/*
** Debug tracing macros.  Enable by by changing the "0" to "1" and
** recompiling.
**
** When sqlite3PcacheTrace is 1, single line trace messages are issued.
** When sqlite3PcacheTrace is 2, a dump of the pcache showing all cache entries
** is displayed for many operations, resulting in a lot of output.
 */

/*
** Return 1 if pPg is on the dirty list for pCache.  Return 0 if not.
** This routine runs inside of assert() statements only.
 */

/*
** Check invariants on a PgHdr entry.  Return true if everything is OK.
** Return false if any invariant is violated.
**
** This routine is for use inside of assert() statements only.  For
** example:
**
**          assert( sqlite3PcachePageSanity(pPg) );
 */

/********************************** Linked List Management ********************/

/* Allowed values for second argument to pcacheManageDirtyList() */

func _sqlite3BtreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uintptr) (r int32) {
	var pBt uintptr
	_ = pBt
	if (*TBtree)(unsafe.Pointer(p)).Fsharable != 0 || int32((*TBtree)(unsafe.Pointer(p)).FinTrans) == TRANS_NONE || int32((*TBtree)(unsafe.Pointer(p)).FinTrans) == int32(TRANS_READ) && wrflag != 0 {
		return _btreeBeginTrans(tls, p, wrflag, pSchemaVersion)
	}
	pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
	if pSchemaVersion != 0 {
		**(**int32)(__ccgo_up(pSchemaVersion)) = int32(_sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+40))
	}
	if wrflag != 0 {
		/* This call makes sure that the pager has the correct number of
		 ** open savepoints. If the second parameter is greater than 0 and
		 ** the sub-journal is not already open, then it will be opened here.
		 */
		return _sqlite3PagerOpenSavepoint(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, (*Tsqlite3)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).Fdb)).FnSavepoint)
	} else {
		return SQLITE_OK
	}
	return r
}

// C documentation
//
//	/*
//	** Run a checkpoint on the Btree passed as the first argument.
//	**
//	** Return SQLITE_LOCKED if this or any other connection has an open
//	** transaction on the shared-cache the argument Btree is connected to.
//	**
//	** Parameter eMode is one of SQLITE_CHECKPOINT_PASSIVE, FULL or RESTART.
//	*/
func _sqlite3BtreeCheckpoint(tls *libc.TLS, p uintptr, eMode int32, pnLog uintptr, pnCkpt uintptr) (r int32) {
	var pBt uintptr
	var rc int32
	_, _ = pBt, rc
	rc = SQLITE_OK
	if p != 0 {
		pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
		_sqlite3BtreeEnter(tls, p)
		if int32((*TBtShared)(unsafe.Pointer(pBt)).FinTransaction) != TRANS_NONE {
			rc = int32(SQLITE_LOCKED)
		} else {
			rc = _sqlite3PagerCheckpoint(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, (*TBtree)(unsafe.Pointer(p)).Fdb, eMode, pnLog, pnCkpt)
		}
		_sqlite3BtreeLeave(tls, p)
	}
	return rc
}

// C documentation
//
//	/*
//	** If no transaction is active and the database is not a temp-db, clear
//	** the in-memory pager cache.
//	*/
func _sqlite3BtreeClearCache(tls *libc.TLS, p uintptr) {
	var pBt uintptr
	_ = pBt
	pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
	if int32((*TBtShared)(unsafe.Pointer(pBt)).FinTransaction) == TRANS_NONE {
		_sqlite3PagerClearCache(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager)
	}
}

// C documentation
//
//	/*
//	** Delete all information from a single table in the database.  iTable is
//	** the page number of the root of the table.  After this routine returns,
//	** the root page is empty, but still exists.
//	**
//	** This routine will fail with SQLITE_LOCKED if there are any open
//	** read cursors on the table.  Open write cursors are moved to the
//	** root of the table.
//	**
//	** If pnChange is not NULL, then the integer value pointed to by pnChange
//	** is incremented by the number of entries in the table.
//	*/
func _sqlite3BtreeClearTable(tls *libc.TLS, p uintptr, iTable int32, pnChange uintptr) (r int32) {
	var pBt uintptr
	var rc int32
	_, _ = pBt, rc
	pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
	_sqlite3BtreeEnter(tls, p)
	rc = _saveAllCursors(tls, pBt, uint32(iTable), uintptr(0))
	if SQLITE_OK == rc {
		/* Invalidate all incrblob cursors open on table iTable (assuming iTable
		 ** is the root of a table b-tree - if it is not, the following call is
		 ** a no-op).  */
		if (*TBtree)(unsafe.Pointer(p)).FhasIncrblobCur != 0 {
			_invalidateIncrblobCursors(tls, p, uint32(iTable), 0, int32(1))
		}
		rc = _clearDatabasePage(tls, pBt, uint32(iTable), 0, pnChange)
	}
	_sqlite3BtreeLeave(tls, p)
	return rc
}

// C documentation
//
//	/*
//	** Delete all information from the single table that pCur is open on.
//	**
//	** This routine only work for pCur on an ephemeral table.
//	*/
func _sqlite3BtreeClearTableOfCursor(tls *libc.TLS, pCur uintptr) (r int32) {
	return _sqlite3BtreeClearTable(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBtree, int32((*TBtCursor)(unsafe.Pointer(pCur)).FpgnoRoot), uintptr(0))
}

// C documentation
//
//	/*
//	** Close a cursor.  The read lock on the database file is released
//	** when the last cursor is closed.
//	*/
func _sqlite3BtreeCloseCursor(tls *libc.TLS, pCur uintptr) (r int32) {
	var pBt, pBtree, pPrev uintptr
	_, _, _ = pBt, pBtree, pPrev
	pBtree = (*TBtCursor)(unsafe.Pointer(pCur)).FpBtree
	if pBtree != 0 {
		pBt = (*TBtCursor)(unsafe.Pointer(pCur)).FpBt
		_sqlite3BtreeEnter(tls, pBtree)
		if (*TBtShared)(unsafe.Pointer(pBt)).FpCursor == pCur {
			(*TBtShared)(unsafe.Pointer(pBt)).FpCursor = (*TBtCursor)(unsafe.Pointer(pCur)).FpNext
		} else {
			pPrev = (*TBtShared)(unsafe.Pointer(pBt)).FpCursor
			for cond := true; cond; cond = pPrev != 0 {
				if (*TBtCursor)(unsafe.Pointer(pPrev)).FpNext == pCur {
					(*TBtCursor)(unsafe.Pointer(pPrev)).FpNext = (*TBtCursor)(unsafe.Pointer(pCur)).FpNext
					break
				}
				pPrev = (*TBtCursor)(unsafe.Pointer(pPrev)).FpNext
			}
		}
		_btreeReleaseAllCursorPages(tls, pCur)
		_unlockBtreeIfUnused(tls, pBt)
		Xsqlite3_free(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow)
		Xsqlite3_free(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpKey)
		if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) != 0 && (*TBtShared)(unsafe.Pointer(pBt)).FpCursor == uintptr(0) {
			/* Since the BtShared is not sharable, there is no need to
			 ** worry about the missing sqlite3BtreeLeave() call here.  */
			_sqlite3BtreeClose(tls, pBtree)
		} else {
			_sqlite3BtreeLeave(tls, pBtree)
		}
		(*TBtCursor)(unsafe.Pointer(pCur)).FpBtree = uintptr(0)
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** This routine does the first phase of a two-phase commit.  This routine
//	** causes a rollback journal to be created (if it does not already exist)
//	** and populated with enough information so that if a power loss occurs
//	** the database can be restored to its original state by playing back
//	** the journal.  Then the contents of the journal are flushed out to
//	** the disk.  After the journal is safely on oxide, the changes to the
//	** database are written into the database file and flushed to oxide.
//	** At the end of this call, the rollback journal still exists on the
//	** disk and we are still holding all locks, so the transaction has not
//	** committed.  See sqlite3BtreeCommitPhaseTwo() for the second phase of the
//	** commit process.
//	**
//	** This call is a no-op if no write-transaction is currently active on pBt.
//	**
//	** Otherwise, sync the database file for the btree pBt. zSuperJrnl points to
//	** the name of a super-journal file that should be written into the
//	** individual journal file, or is NULL, indicating no super-journal file
//	** (single database transaction).
//	**
//	** When this is called, the super-journal should already have been
//	** created, populated with this journal pointer and synced to disk.
//	**
//	** Once this is routine has returned, the only thing required to commit
//	** the write-transaction for this database file is to delete the journal.
//	*/
func _sqlite3BtreeCommitPhaseOne(tls *libc.TLS, p uintptr, zSuperJrnl uintptr) (r int32) {
	var pBt uintptr
	var rc int32
	_, _ = pBt, rc
	rc = SQLITE_OK
	if int32((*TBtree)(unsafe.Pointer(p)).FinTrans) == int32(TRANS_WRITE) {
		pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
		_sqlite3BtreeEnter(tls, p)
		if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
			rc = _autoVacuumCommit(tls, p)
			if rc != SQLITE_OK {
				_sqlite3BtreeLeave(tls, p)
				return rc
			}
		}
		if (*TBtShared)(unsafe.Pointer(pBt)).FbDoTruncate != 0 {
			_sqlite3PagerTruncateImage(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, (*TBtShared)(unsafe.Pointer(pBt)).FnPage)
		}
		rc = _sqlite3PagerCommitPhaseOne(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, zSuperJrnl, 0)
		_sqlite3BtreeLeave(tls, p)
	}
	return rc
}

// C documentation
//
//	/*
//	** Commit the transaction currently in progress.
//	**
//	** This routine implements the second phase of a 2-phase commit.  The
//	** sqlite3BtreeCommitPhaseOne() routine does the first phase and should
//	** be invoked prior to calling this routine.  The sqlite3BtreeCommitPhaseOne()
//	** routine did all the work of writing information out to disk and flushing the
//	** contents so that they are written onto the disk platter.  All this
//	** routine has to do is delete or truncate or zero the header in the
//	** the rollback journal (which causes the transaction to commit) and
//	** drop locks.
//	**
//	** Normally, if an error occurs while the pager layer is attempting to
//	** finalize the underlying journal file, this function returns an error and
//	** the upper layer will attempt a rollback. However, if the second argument
//	** is non-zero then this b-tree transaction is part of a multi-file
//	** transaction. In this case, the transaction has already been committed
//	** (by deleting a super-journal file) and the caller will ignore this
//	** functions return code. So, even if an error occurs in the pager layer,
//	** reset the b-tree objects internal state to indicate that the write
//	** transaction has been closed. This is quite safe, as the pager will have
//	** transitioned to the error state.
//	**
//	** This will release the write lock on the database file.  If there
//	** are no active cursors, it also releases the read lock.
//	*/
func _sqlite3BtreeCommitPhaseTwo(tls *libc.TLS, p uintptr, bCleanup int32) (r int32) {
	var pBt uintptr
	var rc int32
	_, _ = pBt, rc
	if int32((*TBtree)(unsafe.Pointer(p)).FinTrans) == TRANS_NONE {
		return SQLITE_OK
	}
	_sqlite3BtreeEnter(tls, p)
	/* If the handle has a write-transaction open, commit the shared-btrees
	 ** transaction and set the shared state to TRANS_READ.
	 */
	if int32((*TBtree)(unsafe.Pointer(p)).FinTrans) == int32(TRANS_WRITE) {
		pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
		rc = _sqlite3PagerCommitPhaseTwo(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager)
		if rc != SQLITE_OK && bCleanup == 0 {
			_sqlite3BtreeLeave(tls, p)
			return rc
		}
		(*TBtree)(unsafe.Pointer(p)).FiBDataVersion = (*TBtree)(unsafe.Pointer(p)).FiBDataVersion - 1 /* Compensate for pPager->iDataVersion++; */
		(*TBtShared)(unsafe.Pointer(pBt)).FinTransaction = uint8(TRANS_READ)
		_btreeClearHasContent(tls, pBt)
	}
	_btreeEndTransaction(tls, p)
	_sqlite3BtreeLeave(tls, p)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Determine whether or not a cursor has moved from the position where
//	** it was last placed, or has been invalidated for any other reason.
//	** Cursors can move when the row they are pointing at is deleted out
//	** from under them, for example.  Cursor might also move if a btree
//	** is rebalanced.
//	**
//	** Calling this routine with a NULL cursor pointer returns false.
//	**
//	** Use the separate sqlite3BtreeCursorRestore() routine to restore a cursor
//	** back to where it ought to be if this routine returns true.
//	*/
func _sqlite3BtreeCursorHasMoved(tls *libc.TLS, pCur uintptr) (r int32) {
	return libc.BoolInt32(CURSOR_VALID != int32(**(**Tu8)(__ccgo_up(pCur))))
}

func _sqlite3BtreeCursorIsValidNN(tls *libc.TLS, pCur uintptr) (r int32) {
	return libc.BoolInt32(int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID)
}

// C documentation
//
//	/*
//	** This routine restores a cursor back to its original position after it
//	** has been moved by some outside activity (such as a btree rebalance or
//	** a row having been deleted out from under the cursor).
//	**
//	** On success, the *pDifferentRow parameter is false if the cursor is left
//	** pointing at exactly the same row.  *pDifferntRow is the row the cursor
//	** was pointing to has been deleted, forcing the cursor to point to some
//	** nearby row.
//	**
//	** This routine should only be called for a cursor that just returned
//	** TRUE from sqlite3BtreeCursorHasMoved().
//	*/
func _sqlite3BtreeCursorRestore(tls *libc.TLS, pCur uintptr, pDifferentRow uintptr) (r int32) {
	var rc, v1 int32
	_, _ = rc, v1
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) >= int32(CURSOR_REQUIRESEEK) {
		v1 = _btreeRestoreCursorPosition(tls, pCur)
	} else {
		v1 = SQLITE_OK
	}
	rc = v1
	if rc != 0 {
		**(**int32)(__ccgo_up(pDifferentRow)) = int32(1)
		return rc
	}
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
		**(**int32)(__ccgo_up(pDifferentRow)) = int32(1)
	} else {
		**(**int32)(__ccgo_up(pDifferentRow)) = 0
	}
	return SQLITE_OK
}

func _sqlite3BtreeDropTable(tls *libc.TLS, p uintptr, iTable int32, piMoved uintptr) (r int32) {
	var rc int32
	_ = rc
	_sqlite3BtreeEnter(tls, p)
	rc = _btreeDropTable(tls, p, uint32(iTable), piMoved)
	_sqlite3BtreeLeave(tls, p)
	return rc
}

func _sqlite3BtreeEnterAll(tls *libc.TLS, db uintptr) {
	if int32((*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache) == 0 {
		_btreeEnterAll(tls, db)
	}
}

// C documentation
//
//	/*
//	** Return TRUE if the cursor is not pointing at an entry of the table.
//	**
//	** TRUE will be returned after a call to sqlite3BtreeNext() moves
//	** past the last entry in the table or sqlite3BtreePrev() moves past
//	** the first entry.  TRUE is also returned if the table is empty.
//	*/
func _sqlite3BtreeEof(tls *libc.TLS, pCur uintptr) (r int32) {
	/* TODO: What if the cursor is in CURSOR_REQUIRESEEK but all table entries
	 ** have been deleted? This API will need to change to return an error code
	 ** as well as the boolean result value.
	 */
	return libc.BoolInt32(CURSOR_VALID != int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState))
}

// C documentation
//
//	/*
//	** Return the currently defined page size
//	*/
func _sqlite3BtreeGetPageSize(tls *libc.TLS, p uintptr) (r int32) {
	return int32((*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FpageSize)
}

// C documentation
//
//	/*
//	** Return the number of bytes of space at the end of every page that
//	** are intentionally left unused.  This is the "reserved" space that is
//	** sometimes used by extensions.
//	**
//	** The value returned is the larger of the current reserve size and
//	** the latest reserve size requested by SQLITE_FILECTRL_RESERVE_BYTES.
//	** The amount of reserve can only grow - never shrink.
//	*/
func _sqlite3BtreeGetRequestedReserve(tls *libc.TLS, p uintptr) (r int32) {
	var n1, n2, v1 int32
	_, _, _ = n1, n2, v1
	_sqlite3BtreeEnter(tls, p)
	n1 = int32((*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnReserveWanted)
	n2 = _sqlite3BtreeGetReserveNoMutex(tls, p)
	_sqlite3BtreeLeave(tls, p)
	if n1 > n2 {
		v1 = n1
	} else {
		v1 = n2
	}
	return v1
}

// C documentation
//
//	/*
//	** This function is similar to sqlite3BtreeGetReserve(), except that it
//	** may only be called if it is guaranteed that the b-tree mutex is already
//	** held.
//	**
//	** This is useful in one special case in the backup API code where it is
//	** known that the shared b-tree mutex is held, but the mutex on the
//	** database handle that owns *p is not. In this case if sqlite3BtreeEnter()
//	** were to be called, it might collide with some other operation on the
//	** database handle that owns *p, causing undefined behavior.
//	*/
func _sqlite3BtreeGetReserveNoMutex(tls *libc.TLS, p uintptr) (r int32) {
	var n int32
	_ = n
	n = int32((*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FpageSize - (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FusableSize)
	return n
}

// C documentation
//
//	/* Set *pRes to 1 (true) if the BTree pointed to by cursor pCur contains zero
//	** rows of content.  Set *pRes to 0 (false) if the table contains content.
//	** Return SQLITE_OK on success or some error code (ex: SQLITE_NOMEM) if
//	** something goes wrong.
//	*/
func _sqlite3BtreeIsEmpty(tls *libc.TLS, pCur uintptr, pRes uintptr) (r int32) {
	var rc int32
	_ = rc
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID {
		**(**int32)(__ccgo_up(pRes)) = 0
		return SQLITE_OK
	}
	rc = _moveToRoot(tls, pCur)
	if rc == int32(SQLITE_EMPTY) {
		**(**int32)(__ccgo_up(pRes)) = int32(1)
		rc = SQLITE_OK
	} else {
		**(**int32)(__ccgo_up(pRes)) = 0
	}
	return rc
}

// C documentation
//
//	/*
//	** Return true if the given Btree is read-only.
//	*/
func _sqlite3BtreeIsReadonly(tls *libc.TLS, p uintptr) (r int32) {
	return libc.BoolInt32(int32((*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FbtsFlags)&int32(BTS_READ_ONLY) != 0)
}

func _sqlite3BtreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) (r int32) {
	/* If the cursor already points to the last entry, this is a no-op. */
	if CURSOR_VALID == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) && int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 {
		**(**int32)(__ccgo_up(pRes)) = 0
		return SQLITE_OK
	}
	return _btreeLast(tls, pCur, pRes)
}

func _sqlite3BtreeLeaveAll(tls *libc.TLS, db uintptr) {
	if int32((*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache) == 0 {
		_btreeLeaveAll(tls, db)
	}
}

// C documentation
//
//	/*
//	** Obtain a lock on the table whose root page is iTab.  The
//	** lock is a write lock if isWritelock is true or a read lock
//	** if it is false.
//	*/
func _sqlite3BtreeLockTable(tls *libc.TLS, p uintptr, iTab int32, isWriteLock Tu8) (r int32) {
	var lockType Tu8
	var rc int32
	_, _ = lockType, rc
	rc = SQLITE_OK
	if (*TBtree)(unsafe.Pointer(p)).Fsharable != 0 {
		lockType = uint8(int32(READ_LOCK) + int32(isWriteLock))
		_sqlite3BtreeEnter(tls, p)
		rc = _querySharedCacheTableLock(tls, p, uint32(iTab), lockType)
		if rc == SQLITE_OK {
			rc = _setSharedCacheTableLock(tls, p, uint32(iTab), lockType)
		}
		_sqlite3BtreeLeave(tls, p)
	}
	return rc
}

// C documentation
//
//	/*
//	** Return an upper bound on the size of any record for the table
//	** that the cursor is pointing into.
//	**
//	** This is an optimization.  Everything will still work if this
//	** routine always returns 2147483647 (which is the largest record
//	** that SQLite can handle) or more.  But returning a smaller value might
//	** prevent large memory allocations when trying to interpret a
//	** corrupt database.
//	**
//	** The current implementation merely returns the size of the underlying
//	** database file.
//	*/
func _sqlite3BtreeMaxRecordSize(tls *libc.TLS, pCur uintptr) (r Tsqlite3_int64) {
	return int64((*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FpageSize) * int64((*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage)
}

func _sqlite3BtreePayloadChecked(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uintptr) (r int32) {
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID {
		return _accessPayload(tls, pCur, offset, amt, pBuf, 0)
	} else {
		return _accessPayloadChecked(tls, pCur, offset, amt, pBuf)
	}
	return r
}

func _sqlite3BtreePrevious(tls *libc.TLS, pCur uintptr, flags int32) (r int32) {
	var v1 uintptr
	_ = v1
	_ = flags /* Used in COMDB2 but not native SQLite */
	v1 = pCur + 1
	*(*Tu8)(unsafe.Pointer(v1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(v1))) & ^(libc.Int32FromInt32(BTCF_AtLast) | libc.Int32FromInt32(BTCF_ValidOvfl) | libc.Int32FromInt32(BTCF_ValidNKey)))
	(*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0)
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID || int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) == 0 || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 {
		return _btreePrevious(tls, pCur)
	}
	(*TBtCursor)(unsafe.Pointer(pCur)).Fix = (*TBtCursor)(unsafe.Pointer(pCur)).Fix - 1
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Argument pCsr must be a cursor opened for writing on an
//	** INTKEY table currently pointing at a valid table entry.
//	** This function modifies the data stored as part of that entry.
//	**
//	** Only the data content may only be modified, it is not possible to
//	** change the length of the data stored. If this function is called with
//	** parameters that attempt to write past the end of the existing data,
//	** no modifications are made and SQLITE_CORRUPT is returned.
//	*/
func _sqlite3BtreePutData(tls *libc.TLS, pCsr uintptr, offset Tu32, amt Tu32, z uintptr) (r int32) {
	var rc, v1 int32
	_, _ = rc, v1
	if int32((*TBtCursor)(unsafe.Pointer(pCsr)).FeState) >= int32(CURSOR_REQUIRESEEK) {
		v1 = _btreeRestoreCursorPosition(tls, pCsr)
	} else {
		v1 = SQLITE_OK
	}
	rc = v1
	if rc != SQLITE_OK {
		return rc
	}
	if int32((*TBtCursor)(unsafe.Pointer(pCsr)).FeState) != CURSOR_VALID {
		return int32(SQLITE_ABORT)
	}
	/* Save the positions of all other cursors open on this table. This is
	 ** required in case any of them are holding references to an xFetch
	 ** version of the b-tree page modified by the accessPayload call below.
	 **
	 ** Note that pCsr must be open on a INTKEY table and saveCursorPosition()
	 ** and hence saveAllCursors() cannot fail on a BTREE_INTKEY table, hence
	 ** saveAllCursors can only return SQLITE_OK.
	 */
	_saveAllCursors(tls, (*TBtCursor)(unsafe.Pointer(pCsr)).FpBt, (*TBtCursor)(unsafe.Pointer(pCsr)).FpgnoRoot, pCsr)
	/* Check some assumptions:
	 **   (a) the cursor is open for writing,
	 **   (b) there is a read/write transaction open,
	 **   (c) the connection holds a write-lock on the table (if required),
	 **   (d) there are no conflicting read-locks, and
	 **   (e) the cursor points at a valid row of an intKey table.
	 */
	if int32((*TBtCursor)(unsafe.Pointer(pCsr)).FcurFlags)&int32(BTCF_WriteFlag) == 0 {
		return int32(SQLITE_READONLY)
	}
	return _accessPayload(tls, pCsr, offset, amt, z, int32(1))
}

// C documentation
//
//	/*
//	** Rollback the transaction in progress.
//	**
//	** If tripCode is not SQLITE_OK then cursors will be invalidated (tripped).
//	** Only write cursors are tripped if writeOnly is true but all cursors are
//	** tripped if writeOnly is false.  Any attempt to use
//	** a tripped cursor will result in an error.
//	**
//	** This will release the write lock on the database file.  If there
//	** are no active cursors, it also releases the read lock.
//	*/
func _sqlite3BtreeRollback(tls *libc.TLS, p uintptr, tripCode int32, writeOnly int32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var pBt uintptr
	var rc, rc2, rc21, v1 int32
	var _ /* pPage1 at bp+0 */ uintptr
	_, _, _, _, _ = pBt, rc, rc2, rc21, v1
	pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
	_sqlite3BtreeEnter(tls, p)
	if tripCode == SQLITE_OK {
		v1 = _saveAllCursors(tls, pBt, uint32(0), uintptr(0))
		tripCode = v1
		rc = v1
		if rc != 0 {
			writeOnly = 0
		}
	} else {
		rc = SQLITE_OK
	}
	if tripCode != 0 {
		rc2 = _sqlite3BtreeTripAllCursors(tls, p, tripCode, writeOnly)
		if rc2 != SQLITE_OK {
			rc = rc2
		}
	}
	if int32((*TBtree)(unsafe.Pointer(p)).FinTrans) == int32(TRANS_WRITE) {
		rc21 = _sqlite3PagerRollback(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager)
		if rc21 != SQLITE_OK {
			rc = rc21
		}
		/* The rollback may have destroyed the pPage1->aData value.  So
		 ** call btreeGetPage() on page 1 again to make
		 ** sure pPage1->aData is set correctly. */
		if _btreeGetPage(tls, pBt, uint32(1), bp, 0) == SQLITE_OK {
			_btreeSetNPage(tls, pBt, **(**uintptr)(__ccgo_up(bp)))
			_releasePageOne(tls, **(**uintptr)(__ccgo_up(bp)))
		}
		(*TBtShared)(unsafe.Pointer(pBt)).FinTransaction = uint8(TRANS_READ)
		_btreeClearHasContent(tls, pBt)
	}
	_btreeEndTransaction(tls, p)
	_sqlite3BtreeLeave(tls, p)
	return rc
}

// C documentation
//
//	/*
//	** The second argument to this function, op, is always SAVEPOINT_ROLLBACK
//	** or SAVEPOINT_RELEASE. This function either releases or rolls back the
//	** savepoint identified by parameter iSavepoint, depending on the value
//	** of op.
//	**
//	** Normally, iSavepoint is greater than or equal to zero. However, if op is
//	** SAVEPOINT_ROLLBACK, then iSavepoint may also be -1. In this case the
//	** contents of the entire transaction are rolled back. This is different
//	** from a normal transaction rollback, as no locks are released and the
//	** transaction remains open.
//	*/
func _sqlite3BtreeSavepoint(tls *libc.TLS, p uintptr, op int32, iSavepoint int32) (r int32) {
	var pBt uintptr
	var rc int32
	_, _ = pBt, rc
	rc = SQLITE_OK
	if p != 0 && int32((*TBtree)(unsafe.Pointer(p)).FinTrans) == int32(TRANS_WRITE) {
		pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
		_sqlite3BtreeEnter(tls, p)
		if op == int32(SAVEPOINT_ROLLBACK) {
			rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0))
		}
		if rc == SQLITE_OK {
			rc = _sqlite3PagerSavepoint(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, op, iSavepoint)
		}
		if rc == SQLITE_OK {
			if iSavepoint < 0 && int32((*TBtShared)(unsafe.Pointer(pBt)).FbtsFlags)&int32(BTS_INITIALLY_EMPTY) != 0 {
				(*TBtShared)(unsafe.Pointer(pBt)).FnPage = uint32(0)
			}
			rc = _newDatabase(tls, pBt)
			_btreeSetNPage(tls, pBt, (*TBtShared)(unsafe.Pointer(pBt)).FpPage1)
			/* pBt->nPage might be zero if the database was corrupt when
			 ** the transaction was started. Otherwise, it must be at least 1.  */
		}
		_sqlite3BtreeLeave(tls, p)
	}
	return rc
}

// C documentation
//
//	/*
//	** This function returns a pointer to a blob of memory associated with
//	** a single shared-btree. The memory is used by client code for its own
//	** purposes (for example, to store a high-level schema associated with
//	** the shared-btree). The btree layer manages reference counting issues.
//	**
//	** The first time this is called on a shared-btree, nBytes bytes of memory
//	** are allocated, zeroed, and returned to the caller. For each subsequent
//	** call the nBytes parameter is ignored and a pointer to the same blob
//	** of memory returned.
//	**
//	** If the nBytes parameter is 0 and the blob of memory has not yet been
//	** allocated, a null pointer is returned. If the blob has already been
//	** allocated, it is returned as normal.
//	**
//	** Just before the shared-btree is closed, the function passed as the
//	** xFree argument when the memory allocation was made is invoked on the
//	** blob of allocated memory. The xFree function should not call sqlite3_free()
//	** on the memory, the btree layer does that.
//	*/
func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) {
	var pBt uintptr
	_ = pBt
	pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
	_sqlite3BtreeEnter(tls, p)
	if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 {
		(*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), uint64(nBytes))
		(*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree
	}
	_sqlite3BtreeLeave(tls, p)
	return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema
}

// C documentation
//
//	/*
//	** Change the 'auto-vacuum' property of the database. If the 'autoVacuum'
//	** parameter is non-zero, then auto-vacuum mode is enabled. If zero, it
//	** is disabled. The default value for the auto-vacuum property is
//	** determined by the SQLITE_DEFAULT_AUTOVACUUM macro.
//	*/
func _sqlite3BtreeSetAutoVacuum(tls *libc.TLS, p uintptr, autoVacuum int32) (r int32) {
	var av Tu8
	var pBt uintptr
	var rc, v1 int32
	var v2 bool
	_, _, _, _, _ = av, pBt, rc, v1, v2
	pBt = (*TBtree)(unsafe.Pointer(p)).FpBt
	rc = SQLITE_OK
	av = uint8(autoVacuum)
	_sqlite3BtreeEnter(tls, p)
	if v2 = int32((*TBtShared)(unsafe.Pointer(pBt)).FbtsFlags)&int32(BTS_PAGESIZE_FIXED) != 0; v2 {
		if av != 0 {
			v1 = int32(1)
		} else {
			v1 = 0
		}
	}
	if v2 && v1 != int32((*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum) {
		rc = int32(SQLITE_READONLY)
	} else {
		if av != 0 {
			v1 = int32(1)
		} else {
			v1 = 0
		}
		(*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum = uint8(v1)
		if int32(av) == int32(2) {
			v1 = int32(1)
		} else {
			v1 = 0
		}
		(*TBtShared)(unsafe.Pointer(pBt)).FincrVacuum = uint8(v1)
	}
	_sqlite3BtreeLeave(tls, p)
	return rc
}

// C documentation
//
//	/*
//	** Return true if the Btree passed as the only argument is sharable.
//	*/
func _sqlite3BtreeSharable(tls *libc.TLS, p uintptr) (r int32) {
	return int32((*TBtree)(unsafe.Pointer(p)).Fsharable)
}

// C documentation
//
//	/* Move the cursor so that it points to an entry in a table (a.k.a INTKEY)
//	** table near the key intKey.   Return a success code.
//	**
//	** If an exact match is not found, then the cursor is always
//	** left pointing at a leaf page which would hold the entry if it
//	** were present.  The cursor might point to an entry that comes
//	** before or after the key.
//	**
//	** An integer is written into *pRes which is the result of
//	** comparing the key with the entry to which the cursor is
//	** pointing.  The meaning of the integer written into
//	** *pRes is as follows:
//	**
//	**     *pRes<0      The cursor is left pointing at an entry that
//	**                  is smaller than intKey or if the table is empty
//	**                  and the cursor is therefore left point to nothing.
//	**
//	**     *pRes==0     The cursor is left pointing at an entry that
//	**                  exactly matches intKey.
//	**
//	**     *pRes>0      The cursor is left pointing at an entry that
//	**                  is larger than intKey.
//	*/
func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRight int32, pRes uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var c, idx, lwr, rc, upr int32
	var chldPg TPgno
	var pCell, pPage, v3 uintptr
	var _ /* nCellKey at bp+0 */ Ti64
	_, _, _, _, _, _, _, _, _ = c, chldPg, idx, lwr, pCell, pPage, rc, upr, v3
	/* If the cursor is already positioned at the point we are trying
	 ** to move to, then just return without doing any work */
	if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID && int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidNKey) != 0 {
		if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey == intKey {
			**(**int32)(__ccgo_up(pRes)) = 0
			return SQLITE_OK
		}
		if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey < intKey {
			if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 {
				**(**int32)(__ccgo_up(pRes)) = -int32(1)
				return SQLITE_OK
			}
			/* If the requested key is one more than the previous key, then
			 ** try to get there using sqlite3BtreeNext() rather than a full
			 ** binary search.  This is an optimization only.  The correct answer
			 ** is still obtained without this case, only a little more slowly. */
			if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey+int64(1) == intKey {
				**(**int32)(__ccgo_up(pRes)) = 0
				rc = _sqlite3BtreeNext(tls, pCur, 0)
				if rc == SQLITE_OK {
					_getCellInfo(tls, pCur)
					if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey == intKey {
						return SQLITE_OK
					}
				} else {
					if rc != int32(SQLITE_DONE) {
						return rc
					}
				}
			}
		}
	}
	rc = _moveToRoot(tls, pCur)
	if rc != 0 {
		if rc == int32(SQLITE_EMPTY) {
			**(**int32)(__ccgo_up(pRes)) = -int32(1)
			return SQLITE_OK
		}
		return rc
	}
	for {
		pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Pointer to current cell in pPage */
		/* pPage->nCell must be greater than zero. If this is the root-page
		 ** the cursor would have been INVALID above and this for(;;) loop
		 ** not run. If this is not the root-page, then the moveToChild() routine
		 ** would have already detected db corruption. Similarly, pPage must
		 ** be the right kind (index or table) of b-tree page. Otherwise
		 ** a moveToChild() or moveToRoot() call would have detected corruption.  */
		lwr = 0
		upr = int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) - int32(1)
		idx = upr >> (int32(1) - biasRight) /* idx = biasRight ? upr : (lwr+upr)/2; */
		for {
			pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaDataOfst + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*idx))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*idx) + 1)))))
			if (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf != 0 {
				for {
					v3 = pCell
					pCell = pCell + 1
					if !(int32(0x80) <= int32(**(**Tu8)(__ccgo_up(v3)))) {
						break
					}
					if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd {
						return _sqlite3CorruptError(tls, int32(79121))
					}
				}
			}
			_sqlite3GetVarint(tls, pCell, bp)
			if **(**Ti64)(__ccgo_up(bp)) < intKey {
				lwr = idx + int32(1)
				if lwr > upr {
					c = -int32(1)
					break
				}
			} else {
				if **(**Ti64)(__ccgo_up(bp)) > intKey {
					upr = idx - int32(1)
					if lwr > upr {
						c = +libc.Int32FromInt32(1)
						break
					}
				} else {
					(*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx)
					if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) {
						lwr = idx
						goto moveto_table_next_layer
					} else {
						v3 = pCur + 1
						*(*Tu8)(unsafe.Pointer(v3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(v3))) | libc.Int32FromInt32(BTCF_ValidNKey))
						(*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey = **(**Ti64)(__ccgo_up(bp))
						(*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0)
						**(**int32)(__ccgo_up(pRes)) = 0
						return SQLITE_OK
					}
				}
			}
			idx = (lwr + upr) >> int32(1) /* idx = (lwr+upr)/2; */
			goto _2
		_2:
		}
		if (*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0 {
			(*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx)
			**(**int32)(__ccgo_up(pRes)) = c
			rc = SQLITE_OK
			goto moveto_table_finish
		}
		goto moveto_table_next_layer
	moveto_table_next_layer:
		;
		if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) {
			chldPg = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)))
		} else {
			chldPg = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*lwr))))<<libc.Int32FromInt32(8)|int32(**(**Tu8)(__ccgo_up((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*lwr) + 1))))))
		}
		(*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(lwr)
		rc = _moveToChild(tls, pCur, chldPg)
		if rc != 0 {
			break
		}
		goto _1
	_1:
	}
	goto moveto_table_finish
moveto_table_finish:
	;
	(*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0)
	return rc
}

// C documentation
//
//	/*
//	** This routine sets the state to CURSOR_FAULT and the error
//	** code to errCode for every cursor on any BtShared that pBtree
//	** references.  Or if the writeOnly flag is set to 1, then only
//	** trip write cursors and leave read cursors unchanged.
//	**
//	** Every cursor is a candidate to be tripped, including cursors
//	** that belong to other database connections that happen to be
//	** sharing the cache with pBtree.
//	**
//	** This routine gets called when a rollback occurs. If the writeOnly
//	** flag is true, then only write-cursors need be tripped - read-only
//	** cursors save their current positions so that they may continue
//	** following the rollback. Or, if writeOnly is false, all cursors are
//	** tripped. In general, writeOnly is false if the transaction being
//	** rolled back modified the database schema. In this case b-tree root
//	** pages may be moved or deleted from the database altogether, making
//	** it unsafe for read cursors to continue.
//	**
//	** If the writeOnly flag is true and an error is encountered while
//	** saving the current position of a read-only cursor, all cursors,
//	** including all read-cursors are tripped.
//	**
//	** SQLITE_OK is returned if successful, or if an error occurs while
//	** saving a cursor position, an SQLite error code.
//	*/
func _sqlite3BtreeTripAllCursors(tls *libc.TLS, pBtree uintptr, errCode int32, writeOnly int32) (r int32) {
	var p uintptr
	var rc int32
	_, _ = p, rc
	rc = SQLITE_OK
	if pBtree != 0 {
		_sqlite3BtreeEnter(tls, pBtree)
		p = (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(pBtree)).FpBt)).FpCursor
		for {
			if !(p != 0) {
				break
			}
			if writeOnly != 0 && int32((*TBtCursor)(unsafe.Pointer(p)).FcurFlags)&int32(BTCF_WriteFlag) == 0 {
				if int32((*TBtCursor)(unsafe.Pointer(p)).FeState) == CURSOR_VALID || int32((*TBtCursor)(unsafe.Pointer(p)).FeState) == int32(CURSOR_SKIPNEXT) {
					rc = _saveCursorPosition(tls, p)
					if rc != SQLITE_OK {
						_sqlite3BtreeTripAllCursors(tls, pBtree, rc, 0)
						break
					}
				}
			} else {
				_sqlite3BtreeClearCursor(tls, p)
				(*TBtCursor)(unsafe.Pointer(p)).FeState = uint8(CURSOR_FAULT)
				(*TBtCursor)(unsafe.Pointer(p)).FskipNext = errCode
			}
			_btreeReleaseAllCursorPages(tls, p)
			goto _1
		_1:
			;
			p = (*TBtCursor)(unsafe.Pointer(p)).FpNext
		}
		_sqlite3BtreeLeave(tls, pBtree)
	}
	return rc
}

// C documentation
//
//	/*
//	** Return one of SQLITE_TXN_NONE, SQLITE_TXN_READ, or SQLITE_TXN_WRITE
//	** to describe the current transaction state of Btree p.
//	*/
func _sqlite3BtreeTxnState(tls *libc.TLS, p uintptr) (r int32) {
	var v1 int32
	_ = v1
	if p != 0 {
		v1 = int32((*TBtree)(unsafe.Pointer(p)).FinTrans)
	} else {
		v1 = 0
	}
	return v1
}

func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) {
	return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+27560)
}

// C documentation
//
//	/*
//	** Close an existing SQLite database
//	*/
func _sqlite3Close(tls *libc.TLS, db uintptr, forceZombie int32) (r int32) {
	var p uintptr
	_ = p
	if !(db != 0) {
		/* EVIDENCE-OF: R-63257-11740 Calling sqlite3_close() or
		 ** sqlite3_close_v2() with a NULL pointer argument is a harmless no-op. */
		return SQLITE_OK
	}
	if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) {
		return _sqlite3MisuseError(tls, int32(188636))
	}
	Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
	if int32((*Tsqlite3)(unsafe.Pointer(db)).FmTrace)&int32(SQLITE_TRACE_CLOSE) != 0 {
		(*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_CLOSE), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, db, uintptr(0))
	}
	/* Force xDisconnect calls on all virtual tables */
	_disconnectAllVtab(tls, db)
	/* If a transaction is open, the disconnectAllVtab() call above
	 ** will not have called the xDisconnect() method on any virtual
	 ** tables in the db->aVTrans[] array. The following sqlite3VtabRollback()
	 ** call will do so. We need to do this before the check for active
	 ** SQL statements below, as the v-table implementation may be storing
	 ** some prepared statements internally.
	 */
	_sqlite3VtabRollback(tls, db)
	/* Legacy behavior (sqlite3_close() behavior) is to return
	 ** SQLITE_BUSY if the connection can not be closed immediately.
	 */
	if !(forceZombie != 0) && _connectionIsBusy(tls, db) != 0 {
		_sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+26521, 0)
		Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex)
		return int32(SQLITE_BUSY)
	}
	for (*Tsqlite3)(unsafe.Pointer(db)).FpDbData != 0 {
		p = (*Tsqlite3)(unsafe.Pointer(db)).FpDbData
		(*Tsqlite3)(unsafe.Pointer(db)).FpDbData = (*TDbClientData)(unsafe.Pointer(p)).FpNext
		if (*TDbClientData)(unsafe.Pointer(p)).FxDestructor != 0 {
			(*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TDbClientData)(unsafe.Pointer(p)).FxDestructor})))(tls, (*TDbClientData)(unsafe.Pointer(p)).FpData)
		}
		Xsqlite3_free(tls, p)
	}
	/* Convert the connection into a zombie and then close it.
	 */
	(*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_ZOMBIE)
	_sqlite3LeaveMutexAndCloseZombie(tls, db)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** This is called to code the required FOR EACH ROW triggers for an operation
//	** on table pTab. The operation to code triggers for (INSERT, UPDATE or DELETE)
//	** is given by the op parameter. The tr_tm parameter determines whether the
//	** BEFORE or AFTER triggers are coded. If the operation is an UPDATE, then
//	** parameter pChanges is passed the list of columns being modified.
//	**
//	** If there are no triggers that fire at the specified time for the specified
//	** operation on pTab, this function is a no-op.
//	**
//	** The reg argument is the address of the first in an array of registers
//	** that contain the values substituted for the new.* and old.* references
//	** in the trigger program. If N is the number of columns in table pTab
//	** (a copy of pTab->nCol), then registers are populated as follows:
//	**
//	**   Register       Contains
//	**   ------------------------------------------------------
//	**   reg+0          OLD.rowid
//	**   reg+1          OLD.* value of left-most column of pTab
//	**   ...            ...
//	**   reg+N          OLD.* value of right-most column of pTab
//	**   reg+N+1        NEW.rowid
//	**   reg+N+2        NEW.* value of left-most column of pTab
//	**   ...            ...
//	**   reg+N+N+1      NEW.* value of right-most column of pTab
//	**
//	** For ON DELETE triggers, the registers containing the NEW.* values will
//	** never be accessed by the trigger program, so they are not allocated or
//	** populated by the caller (there is no data to populate them with anyway).
//	** Similarly, for ON INSERT triggers the values stored in the OLD.* registers
//	** are never accessed, and so are not allocated by the caller. So, for an
//	** ON INSERT trigger, the value passed to this function as parameter reg
//	** is not a readable register, although registers (reg+N) through
//	** (reg+N+N+1) are.
//	**
//	** Parameter orconf is the default conflict resolution algorithm for the
//	** trigger program to use (REPLACE, IGNORE etc.). Parameter ignoreJump
//	** is the instruction that control should jump to if a trigger program
//	** raises an IGNORE exception.
//	*/
func _sqlite3CodeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, op int32, pChanges uintptr, tr_tm int32, pTab uintptr, reg int32, orconf int32, ignoreJump int32) {
	var p uintptr
	_ = p /* Used to iterate through pTrigger list */
	p = pTrigger
	for {
		if !(p != 0) {
			break
		}
		/* Sanity checking:  The schema for the trigger and for the table are
		 ** always defined.  The trigger must be in the same schema as the table
		 ** or else it must be a TEMP trigger. */
		/* Determine whether we should code this trigger.  One of two choices:
		 **   1. The trigger is an exact match to the current DML statement
		 **   2. This is a RETURNING trigger for INSERT but we are currently
		 **      doing the UPDATE part of an UPSERT.
		 */
		if (int32((*TTrigger)(unsafe.Pointer(p)).Fop) == op || (*TTrigger)(unsafe.Pointer(p)).FbReturning != 0 && int32((*TTrigger)(unsafe.Pointer(p)).Fop) == int32(TK_INSERT) && op == int32(TK_UPDATE)) && int32((*TTrigger)(unsafe.Pointer(p)).Ftr_tm) == tr_tm && _checkColumnOverlap(tls, (*TTrigger)(unsafe.Pointer(p)).FpColumns, pChanges) != 0 {
			if !((*TTrigger)(unsafe.Pointer(p)).FbReturning != 0) {
				_sqlite3CodeRowTriggerDirect(tls, pParse, p, pTab, reg, orconf, ignoreJump)
			} else {
				if (*TParse)(unsafe.Pointer(pParse)).FpToplevel == uintptr(0) {
					_codeReturningTrigger(tls, pParse, p, pTab, reg)
				}
			}
		}
		goto _1
	_1:
		;
		p = (*TTrigger)(unsafe.Pointer(p)).FpNext
	}
}

// C documentation
//
//	/*
//	** Return the collating sequence name for a column
//	*/
func _sqlite3ColumnColl(tls *libc.TLS, pCol uintptr) (r uintptr) {
	var z uintptr
	_ = z
	if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASCOLL) == 0 {
		return uintptr(0)
	}
	z = (*TColumn)(unsafe.Pointer(pCol)).FzCnName
	for **(**int8)(__ccgo_up(z)) != 0 {
		z = z + 1
	}
	if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 {
		for cond := true; cond; cond = **(**int8)(__ccgo_up(z)) != 0 {
			z = z + 1
		}
	}
	return z + uintptr(1)
}

func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) {
	return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+27533)
}

// C documentation
//
//	/*
//	** Invoke this routine to register the "dbpage" virtual table module
//	*/
func _sqlite3DbpageRegister(tls *libc.TLS, db uintptr) (r int32) {
	return Xsqlite3_create_module(tls, db, __ccgo_ts+36417, uintptr(unsafe.Pointer(&_dbpage_module)), uintptr(0))
}

// C documentation
//
//	/*
//	** Invoke this routine to register the "dbstat" virtual table module
//	*/
func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) {
	return Xsqlite3_create_module(tls, db, __ccgo_ts+36232, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0))
}

// C documentation
//
//	/*
//	** If compiled with SQLITE_MUTEX_NOOP, then the no-op mutex implementation
//	** is used regardless of the run-time threadsafety setting.
//	*/
func _sqlite3DefaultMutex(tls *libc.TLS) (r uintptr) {
	return _sqlite3NoopMutex(tls)
}

// C documentation
//
//	/*
//	** Convert an SQL-style quoted string into a normal string by removing
//	** the quote characters.  The conversion is done in-place.  If the
//	** input does not begin with a quote character, then this routine
//	** is a no-op.
//	**
//	** The input string must be zero-terminated.  A new zero-terminator
//	** is added to the dequoted string.
//	**
//	** The return value is -1 if no dequoting occurs or the length of the
//	** dequoted string, exclusive of the zero terminator, if dequoting does
//	** occur.
//	**
//	** 2002-02-14: This routine is extended to remove MS-Access style
//	** brackets from around identifiers.  For example:  "[a-b-c]" becomes
//	** "a-b-c".
//	*/
func _sqlite3Dequote(tls *libc.TLS, z uintptr) {
	var i, j, v2 int32
	var quote int8
	_, _, _, _ = i, j, quote, v2
	if z == uintptr(0) {
		return
	}
	quote = **(**int8)(__ccgo_up(z))
	if !(int32(_sqlite3CtypeMap[uint8(quote)])&libc.Int32FromInt32(0x80) != 0) {
		return
	}
	if int32(quote) == int32('[') {
		quote = int8(']')
	}
	i = int32(1)
	j = libc.Int32FromInt32(0)
	for {
		if int32(**(**int8)(__ccgo_up(z + uintptr(i)))) == int32(quote) {
			if int32(**(**int8)(__ccgo_up(z + uintptr(i+int32(1))))) == int32(quote) {
				v2 = j
				j = j + 1
				**(**int8)(__ccgo_up(z + uintptr(v2))) = quote
				i = i + 1
			} else {
				break
			}
		} else {
			v2 = j
			j = j + 1
			**(**int8)(__ccgo_up(z + uintptr(v2))) = **(**int8)(__ccgo_up(z + uintptr(i)))
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	**(**int8)(__ccgo_up(z + uintptr(j))) = 0
}

func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) {
	var v1 int32
	_ = v1
	if int32(**(**int8)(__ccgo_up(*(*uintptr)(unsafe.Pointer(p + 8))))) == int32('"') {
		v1 = libc.Int32FromInt32(EP_Quoted) | libc.Int32FromInt32(EP_DblQuoted)
	} else {
		v1 = int32(EP_Quoted)
	}
	**(**Tu32)(__ccgo_up(p + 4)) |= uint32(v1)
	_sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8)))
}

// C documentation
//
//	/*
//	** Generate VDBE code for a COMMIT or ROLLBACK statement.
//	** Code for ROLLBACK is generated if eType==TK_ROLLBACK.  Otherwise
//	** code is generated for a COMMIT.
//	*/
func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) {
	var isRollback int32
	var v, v1 uintptr
	_, _, _ = isRollback, v, v1
	isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK))
	if isRollback != 0 {
		v1 = __ccgo_ts + 17331
	} else {
		v1 = __ccgo_ts + 17340
	}
	if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 {
		return
	}
	v = _sqlite3GetVdbe(tls, pParse)
	if v != 0 {
		_sqlite3VdbeAddOp2(tls, v, int32(OP_AutoCommit), int32(1), isRollback)
	}
}

// C documentation
//
//	/*
//	** Write code that will raise an error if the table described by
//	** zDb and zTab is not empty.
//	*/
func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	_sqlite3NestedParse(tls, pParse, __ccgo_ts+11468, libc.VaList(bp+8, zErr, zDb, zTab))
}

// C documentation
//
//	/*
//	** Allocate a new expression node from a zero-terminated token that has
//	** already been dequoted.
//	*/
func _sqlite3Expr(tls *libc.TLS, db uintptr, op int32, zToken uintptr) (r uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* x at bp+0 */ TToken
	(**(**TToken)(__ccgo_up(bp))).Fz = zToken
	(**(**TToken)(__ccgo_up(bp))).Fn = uint32(_sqlite3Strlen30(tls, zToken))
	return _sqlite3ExprAlloc(tls, db, op, bp, 0)
}

// C documentation
//
//	/*
//	** Set the collating sequence for expression pExpr to be the collating
//	** sequence named by pToken.   Return a pointer to a new Expr node that
//	** implements the COLLATE operator.
//	**
//	** If a memory allocation error occurs, that fact is recorded in pParse->db
//	** and the pExpr parameter is returned unchanged.
//	*/
func _sqlite3ExprAddCollateToken(tls *libc.TLS, pParse uintptr, pExpr uintptr, pCollName uintptr, dequote int32) (r uintptr) {
	var pNew uintptr
	_ = pNew
	if (*TToken)(unsafe.Pointer(pCollName)).Fn > uint32(0) {
		pNew = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLLATE), pCollName, dequote)
		if pNew != 0 {
			(*TExpr)(unsafe.Pointer(pNew)).FpLeft = pExpr
			**(**Tu32)(__ccgo_up(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_Collate) | libc.Int32FromInt32(EP_Skip))
			pExpr = pNew
		}
	}
	return pExpr
}

// C documentation
//
//	/*
//	** Join two expressions using an AND operator.  If either expression is
//	** NULL, then just return the other expression.
//	**
//	** If one side or the other of the AND is known to be false, and neither side
//	** is part of an ON clause, then instead of returning an AND expression,
//	** just return a constant expression with a value of false.
//	*/
func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintptr) (r uintptr) {
	var db uintptr
	var f Tu32
	_, _ = db, f
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	if pLeft == uintptr(0) {
		return pRight
	} else {
		if pRight == uintptr(0) {
			return pLeft
		} else {
			f = (*TExpr)(unsafe.Pointer(pLeft)).Fflags | (*TExpr)(unsafe.Pointer(pRight)).Fflags
			if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)|libc.Int32FromInt32(EP_HasFunc)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) {
				_sqlite3ExprDeferredDelete(tls, pParse, pLeft)
				_sqlite3ExprDeferredDelete(tls, pParse, pRight)
				return _sqlite3ExprInt32(tls, db, 0)
			} else {
				return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight)
			}
		}
	}
	return r
}

// C documentation
//
//	/*
//	** Attach subtrees pLeft and pRight to the Expr node pRoot.
//	**
//	** If pRoot==NULL that means that a memory allocation error has occurred.
//	** In that case, delete the subtrees pLeft and pRight.
//	*/
func _sqlite3ExprAttachSubtrees(tls *libc.TLS, db uintptr, pRoot uintptr, pLeft uintptr, pRight uintptr) {
	if pRoot == uintptr(0) {
		_sqlite3ExprDelete(tls, db, pLeft)
		_sqlite3ExprDelete(tls, db, pRight)
	} else {
		if pRight != 0 {
			(*TExpr)(unsafe.Pointer(pRoot)).FpRight = pRight
			**(**Tu32)(__ccgo_up(pRoot + 4)) |= uint32(libc.Int32FromInt32(EP_Collate)|libc.Int32FromInt32(EP_Subquery)|libc.Int32FromInt32(EP_HasFunc)) & (*TExpr)(unsafe.Pointer(pRight)).Fflags
			(*TExpr)(unsafe.Pointer(pRoot)).FnHeight = (*TExpr)(unsafe.Pointer(pRight)).FnHeight + int32(1)
		} else {
			(*TExpr)(unsafe.Pointer(pRoot)).FnHeight = int32(1)
		}
		if pLeft != 0 {
			(*TExpr)(unsafe.Pointer(pRoot)).FpLeft = pLeft
			**(**Tu32)(__ccgo_up(pRoot + 4)) |= uint32(libc.Int32FromInt32(EP_Collate)|libc.Int32FromInt32(EP_Subquery)|libc.Int32FromInt32(EP_HasFunc)) & (*TExpr)(unsafe.Pointer(pLeft)).Fflags
			if (*TExpr)(unsafe.Pointer(pLeft)).FnHeight >= (*TExpr)(unsafe.Pointer(pRoot)).FnHeight {
				(*TExpr)(unsafe.Pointer(pRoot)).FnHeight = (*TExpr)(unsafe.Pointer(pLeft)).FnHeight + int32(1)
			}
		}
	}
}

// C documentation
//
//	/*
//	** Generate code that will evaluate expression pExpr and store the
//	** results in register target.  The results are guaranteed to appear
//	** in register target.
//	*/
func _sqlite3ExprCode(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) {
	var inReg int32
	var op Tu8
	var pX uintptr
	_, _, _ = inReg, op, pX
	if (*TParse)(unsafe.Pointer(pParse)).FpVdbe == uintptr(0) {
		return
	}
	inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target)
	if inReg != target {
		pX = _sqlite3ExprSkipCollateAndLikely(tls, pExpr)
		if pX != 0 && ((*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) || int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_REGISTER)) {
			op = uint8(OP_Copy)
		} else {
			op = uint8(OP_SCopy)
		}
		_sqlite3VdbeAddOp2(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(op), inReg, target)
	}
}

// C documentation
//
//	/*
//	** Generate code that will extract the iColumn-th column from
//	** table pTab and store the column value in register iReg.
//	**
//	** There must be an open cursor to pTab in iTable when this routine
//	** is called.  If iColumn<0 then code is generated that extracts the rowid.
//	*/
func _sqlite3ExprCodeGetColumn(tls *libc.TLS, pParse uintptr, pTab uintptr, iColumn int32, iTable int32, iReg int32, p5 Tu8) (r int32) {
	var pOp uintptr
	_ = pOp
	_sqlite3ExprCodeGetColumnOfTable(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, pTab, iTable, iColumn, iReg)
	if p5 != 0 {
		pOp = _sqlite3VdbeGetLastOp(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe)
		if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_Column) {
			(*TVdbeOp)(unsafe.Pointer(pOp)).Fp5 = uint16(p5)
		}
		if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_VColumn) {
			(*TVdbeOp)(unsafe.Pointer(pOp)).Fp5 = uint16(int32(p5) & libc.Int32FromInt32(OPFLAG_NOCHNG))
		}
	}
	return iReg
}

// C documentation
//
//	/* Expression p is a comparison operator.  Return a collation sequence
//	** appropriate for the comparison operator.
//	**
//	** This is normally just a wrapper around sqlite3BinaryCompareCollSeq().
//	** However, if the OP_Commuted flag is set, then the order of the operands
//	** is reversed in the sqlite3BinaryCompareCollSeq() call so that the
//	** correct collating sequence is found.
//	*/
func _sqlite3ExprCompareCollSeq(tls *libc.TLS, pParse uintptr, p uintptr) (r uintptr) {
	if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Commuted)) != uint32(0) {
		return _sqlite3BinaryCompareCollSeq(tls, pParse, (*TExpr)(unsafe.Pointer(p)).FpRight, (*TExpr)(unsafe.Pointer(p)).FpLeft)
	} else {
		return _sqlite3BinaryCompareCollSeq(tls, pParse, (*TExpr)(unsafe.Pointer(p)).FpLeft, (*TExpr)(unsafe.Pointer(p)).FpRight)
	}
	return r
}

// C documentation
//
//	/*
//	** Check to see if a function is usable according to current access
//	** rules:
//	**
//	**    SQLITE_FUNC_DIRECT    -     Only usable from top-level SQL
//	**
//	**    SQLITE_FUNC_UNSAFE    -     Usable if TRUSTED_SCHEMA or from
//	**                                top-level SQL
//	**
//	** If the function is not usable, create an error.
//	*/
func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pDef uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_FromDDL)) != uint32(0) || int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_FROM_DDL) != 0 {
		if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_DIRECT) != uint32(0) || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) == uint64(0) {
			/* Functions prohibited in triggers and views if:
			 **     (1) tagged with SQLITE_DIRECTONLY
			 **     (2) not tagged with SQLITE_INNOCUOUS (which means it
			 **         is tagged with SQLITE_FUNC_UNSAFE) and
			 **         SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning
			 **         that the schema is possibly tainted).
			 */
			_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9256, libc.VaList(bp+8, pExpr))
		}
	}
}

// C documentation
//
//	/*
//	** If the input expression is an ID with the name "true" or "false"
//	** then convert it into an TK_TRUEFALSE term.  Return non-zero if
//	** the conversion happened, and zero if the expression is unaltered.
//	*/
func _sqlite3ExprIdToTrueFalse(tls *libc.TLS, pExpr uintptr) (r int32) {
	var v, v1 Tu32
	var v2 bool
	_, _, _ = v, v1, v2
	if v2 = !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Quoted)|libc.Int32FromInt32(EP_IntValue)) != libc.Uint32FromInt32(0)); v2 {
		v1 = _sqlite3IsTrueOrFalse(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)))
		v = v1
	}
	if v2 && v1 != uint32(0) {
		(*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE)
		**(**Tu32)(__ccgo_up(pExpr + 4)) |= v
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Generate code for a boolean expression such that a jump is made
//	** to the label "dest" if the expression is false but execution
//	** continues straight thru if the expression is true.
//	**
//	** If the expression evaluates to NULL (neither true nor false) then
//	** jump if jumpIfNull is SQLITE_JUMPIFNULL or fall through if jumpIfNull
//	** is 0.
//	*/
func _sqlite3ExprIfFalse(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, jumpIfNull int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var addrIsNull, d2, destIfNull, isNot, isTrue, op, v19 int32
	var pAlt, pFirst, pSecond, v uintptr
	var _ /* r1 at bp+8 */ int32
	var _ /* r2 at bp+12 */ int32
	var _ /* regFree1 at bp+0 */ int32
	var _ /* regFree2 at bp+4 */ int32
	_, _, _, _, _, _, _, _, _, _, _ = addrIsNull, d2, destIfNull, isNot, isTrue, op, pAlt, pFirst, pSecond, v, v19
	v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
	op = 0
	**(**int32)(__ccgo_up(bp)) = 0
	**(**int32)(__ccgo_up(bp + 4)) = 0
	if v == uintptr(0) {
		return
	} /* Existence of VDBE checked by caller */
	if pExpr == uintptr(0) {
		return
	}
	/* The value of pExpr->op and op are related as follows:
	 **
	 **       pExpr->op            op
	 **       ---------          ----------
	 **       TK_ISNULL          OP_NotNull
	 **       TK_NOTNULL         OP_IsNull
	 **       TK_NE              OP_Eq
	 **       TK_EQ              OP_Ne
	 **       TK_GT              OP_Le
	 **       TK_LE              OP_Gt
	 **       TK_GE              OP_Lt
	 **       TK_LT              OP_Ge
	 **
	 ** For other values of pExpr->op, op is undefined and unused.
	 ** The value of TK_ and OP_ constants are arranged such that we
	 ** can compute the mapping above using the following expression.
	 ** Assert()s verify that the computation is correct.
	 */
	op = int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) + libc.Int32FromInt32(TK_ISNULL)&libc.Int32FromInt32(1) ^ int32(1) - libc.Int32FromInt32(TK_ISNULL)&libc.Int32FromInt32(1)
	/* Verify correct alignment of TK_ and OP_ constants
	 */
	switch int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) {
	case int32(TK_OR):
		goto _1
	case int32(TK_AND):
		goto _2
	case int32(TK_NOT):
		goto _3
	case int32(TK_TRUTH):
		goto _4
	case int32(TK_ISNOT):
		goto _5
	case int32(TK_IS):
		goto _6
	case int32(TK_EQ):
		goto _7
	case int32(TK_NE):
		goto _8
	case int32(TK_GE):
		goto _9
	case int32(TK_GT):
		goto _10
	case int32(TK_LE):
		goto _11
	case int32(TK_LT):
		goto _12
	case int32(TK_NOTNULL):
		goto _13
	case int32(TK_ISNULL):
		goto _14
	case int32(TK_BETWEEN):
		goto _15
	case int32(TK_IN):
		goto _16
	default:
		goto _17
	}
	goto _18
_2:
	;
_1:
	;
	pAlt = _sqlite3ExprSimplifiedAndOr(tls, pExpr)
	if pAlt != pExpr {
		_sqlite3ExprIfFalse(tls, pParse, pAlt, dest, jumpIfNull)
	} else {
		if _exprEvalRhsFirst(tls, pExpr) != 0 {
			pFirst = (*TExpr)(unsafe.Pointer(pExpr)).FpRight
			pSecond = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft
		} else {
			pFirst = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft
			pSecond = (*TExpr)(unsafe.Pointer(pExpr)).FpRight
		}
		if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AND) {
			_sqlite3ExprIfFalse(tls, pParse, pFirst, dest, jumpIfNull)
			_sqlite3ExprIfFalse(tls, pParse, pSecond, dest, jumpIfNull)
		} else {
			d2 = _sqlite3VdbeMakeLabel(tls, pParse)
			_sqlite3ExprIfTrue(tls, pParse, pFirst, d2, jumpIfNull^int32(SQLITE_JUMPIFNULL))
			_sqlite3ExprIfFalse(tls, pParse, pSecond, dest, jumpIfNull)
			_sqlite3VdbeResolveLabel(tls, v, d2)
		}
	}
	goto _18
_3:
	;
	_sqlite3ExprIfTrue(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, dest, jumpIfNull)
	goto _18
_4:
	; /* IS TRUE or IS NOT TRUE */
	isNot = libc.BoolInt32(int32((*TExpr)(unsafe.Pointer(pExpr)).Fop2) == int32(TK_ISNOT))
	isTrue = _sqlite3ExprTruthValue(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight)
	if isTrue^isNot != 0 {
		/* IS TRUE and IS NOT FALSE */
		if isNot != 0 {
			v19 = 0
		} else {
			v19 = int32(SQLITE_JUMPIFNULL)
		}
		_sqlite3ExprIfFalse(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, dest, v19)
	} else {
		/* IS FALSE and IS NOT TRUE */
		if isNot != 0 {
			v19 = 0
		} else {
			v19 = int32(SQLITE_JUMPIFNULL)
		}
		_sqlite3ExprIfTrue(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, dest, v19)
	}
	goto _18
_6:
	;
_5:
	;
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_IS) {
		v19 = int32(TK_NE)
	} else {
		v19 = int32(TK_EQ)
	}
	op = v19
	jumpIfNull = int32(SQLITE_NULLEQ)
_12:
	;
_11:
	;
_10:
	;
_9:
	;
_8:
	;
_7:
	;
	if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft) != 0 {
		goto default_expr
	}
	if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) && jumpIfNull != int32(SQLITE_NULLEQ) {
		addrIsNull = _exprComputeOperands(tls, pParse, pExpr, bp+8, bp+12, bp, bp+4)
	} else {
		**(**int32)(__ccgo_up(bp + 8)) = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, bp)
		**(**int32)(__ccgo_up(bp + 12)) = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, bp+4)
		addrIsNull = 0
	}
	_codeCompare(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, op, **(**int32)(__ccgo_up(bp + 8)), **(**int32)(__ccgo_up(bp + 12)), dest, jumpIfNull, libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Commuted)) != uint32(0)))
	if addrIsNull != 0 {
		if jumpIfNull != 0 {
			_sqlite3VdbeChangeP2(tls, v, addrIsNull, dest)
		} else {
			_sqlite3VdbeJumpHere(tls, v, addrIsNull)
		}
	}
	goto _18
_14:
	;
_13:
	;
	**(**int32)(__ccgo_up(bp + 8)) = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, bp)
	if **(**int32)(__ccgo_up(bp)) != 0 {
		_sqlite3VdbeTypeofColumn(tls, v, **(**int32)(__ccgo_up(bp + 8)))
	}
	_sqlite3VdbeAddOp2(tls, v, op, **(**int32)(__ccgo_up(bp + 8)), dest)
	goto _18
_15:
	;
	_exprCodeBetween(tls, pParse, pExpr, dest, __ccgo_fp(_sqlite3ExprIfFalse), jumpIfNull)
	goto _18
_16:
	;
	if jumpIfNull != 0 {
		_sqlite3ExprCodeIN(tls, pParse, pExpr, dest, dest)
	} else {
		destIfNull = _sqlite3VdbeMakeLabel(tls, pParse)
		_sqlite3ExprCodeIN(tls, pParse, pExpr, dest, destIfNull)
		_sqlite3VdbeResolveLabel(tls, v, destIfNull)
	}
	goto _18
_17:
	;
	goto default_expr
default_expr:
	;
	if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) {
		_sqlite3VdbeGoto(tls, v, dest)
	} else {
		if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) {
			/* no-op */
		} else {
			**(**int32)(__ccgo_up(bp + 8)) = _sqlite3ExprCodeTemp(tls, pParse, pExpr, bp)
			_sqlite3VdbeAddOp3(tls, v, int32(OP_IfNot), **(**int32)(__ccgo_up(bp + 8)), dest, libc.BoolInt32(jumpIfNull != 0))
		}
	}
	goto _18
_18:
	;
	_sqlite3ReleaseTempReg(tls, pParse, **(**int32)(__ccgo_up(bp)))
	_sqlite3ReleaseTempReg(tls, pParse, **(**int32)(__ccgo_up(bp + 4)))
}

// C documentation
//
//	/*
//	** Like sqlite3ExprIfFalse() except that a copy is made of pExpr before
//	** code generation, and that copy is deleted after code generation. This
//	** ensures that the original pExpr is unchanged.
//	*/
func _sqlite3ExprIfFalseDup(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, jumpIfNull int32) {
	var db, pCopy uintptr
	_, _ = db, pCopy
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	pCopy = _sqlite3ExprDup(tls, db, pExpr, 0)
	if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 {
		_sqlite3ExprIfFalse(tls, pParse, pCopy, dest, jumpIfNull)
	}
	_sqlite3ExprDelete(tls, db, pCopy)
}

// C documentation
//
//	/*
//	** Generate code for a boolean expression such that a jump is made
//	** to the label "dest" if the expression is true but execution
//	** continues straight thru if the expression is false.
//	**
//	** If the expression evaluates to NULL (neither true nor false), then
//	** take the jump if the jumpIfNull flag is SQLITE_JUMPIFNULL.
//	**
//	** This code depends on the fact that certain token values (ex: TK_EQ)
//	** are the same as opcode values (ex: OP_Eq) that implement the corresponding
//	** operation.  Special comments in vdbe.c and the mkopcodeh.awk script in
//	** the make process cause these values to align.  Assert()s in the code
//	** below verify that the numbers are aligned correctly.
//	*/
func _sqlite3ExprIfTrue(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, jumpIfNull int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var addrIsNull, d2, destIfFalse, destIfNull, isNot, isTrue, op, v19 int32
	var pAlt, pFirst, pSecond, v uintptr
	var _ /* r1 at bp+8 */ int32
	var _ /* r2 at bp+12 */ int32
	var _ /* regFree1 at bp+0 */ int32
	var _ /* regFree2 at bp+4 */ int32
	_, _, _, _, _, _, _, _, _, _, _, _ = addrIsNull, d2, destIfFalse, destIfNull, isNot, isTrue, op, pAlt, pFirst, pSecond, v, v19
	v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
	op = 0
	**(**int32)(__ccgo_up(bp)) = 0
	**(**int32)(__ccgo_up(bp + 4)) = 0
	if v == uintptr(0) {
		return
	} /* Existence of VDBE checked by caller */
	if pExpr == uintptr(0) {
		return
	} /* No way this can happen */
	op = int32((*TExpr)(unsafe.Pointer(pExpr)).Fop)
	switch op {
	case int32(TK_OR):
		goto _1
	case int32(TK_AND):
		goto _2
	case int32(TK_NOT):
		goto _3
	case int32(TK_TRUTH):
		goto _4
	case int32(TK_ISNOT):
		goto _5
	case int32(TK_IS):
		goto _6
	case int32(TK_EQ):
		goto _7
	case int32(TK_NE):
		goto _8
	case int32(TK_GE):
		goto _9
	case int32(TK_GT):
		goto _10
	case int32(TK_LE):
		goto _11
	case int32(TK_LT):
		goto _12
	case int32(TK_NOTNULL):
		goto _13
	case int32(TK_ISNULL):
		goto _14
	case int32(TK_BETWEEN):
		goto _15
	case int32(TK_IN):
		goto _16
	default:
		goto _17
	}
	goto _18
_2:
	;
_1:
	;
	pAlt = _sqlite3ExprSimplifiedAndOr(tls, pExpr)
	if pAlt != pExpr {
		_sqlite3ExprIfTrue(tls, pParse, pAlt, dest, jumpIfNull)
	} else {
		if _exprEvalRhsFirst(tls, pExpr) != 0 {
			pFirst = (*TExpr)(unsafe.Pointer(pExpr)).FpRight
			pSecond = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft
		} else {
			pFirst = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft
			pSecond = (*TExpr)(unsafe.Pointer(pExpr)).FpRight
		}
		if op == int32(TK_AND) {
			d2 = _sqlite3VdbeMakeLabel(tls, pParse)
			_sqlite3ExprIfFalse(tls, pParse, pFirst, d2, jumpIfNull^int32(SQLITE_JUMPIFNULL))
			_sqlite3ExprIfTrue(tls, pParse, pSecond, dest, jumpIfNull)
			_sqlite3VdbeResolveLabel(tls, v, d2)
		} else {
			_sqlite3ExprIfTrue(tls, pParse, pFirst, dest, jumpIfNull)
			_sqlite3ExprIfTrue(tls, pParse, pSecond, dest, jumpIfNull)
		}
	}
	goto _18
_3:
	;
	_sqlite3ExprIfFalse(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, dest, jumpIfNull)
	goto _18
_4:
	; /* IS TRUE or IS NOT TRUE */
	isNot = libc.BoolInt32(int32((*TExpr)(unsafe.Pointer(pExpr)).Fop2) == int32(TK_ISNOT))
	isTrue = _sqlite3ExprTruthValue(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight)
	if isTrue^isNot != 0 {
		if isNot != 0 {
			v19 = int32(SQLITE_JUMPIFNULL)
		} else {
			v19 = 0
		}
		_sqlite3ExprIfTrue(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, dest, v19)
	} else {
		if isNot != 0 {
			v19 = int32(SQLITE_JUMPIFNULL)
		} else {
			v19 = 0
		}
		_sqlite3ExprIfFalse(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, dest, v19)
	}
	goto _18
_6:
	;
_5:
	;
	if op == int32(TK_IS) {
		v19 = int32(TK_EQ)
	} else {
		v19 = int32(TK_NE)
	}
	op = v19
	jumpIfNull = int32(SQLITE_NULLEQ)
_12:
	;
_11:
	;
_10:
	;
_9:
	;
_8:
	;
_7:
	;
	if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft) != 0 {
		goto default_expr
	}
	if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) && jumpIfNull != int32(SQLITE_NULLEQ) {
		addrIsNull = _exprComputeOperands(tls, pParse, pExpr, bp+8, bp+12, bp, bp+4)
	} else {
		**(**int32)(__ccgo_up(bp + 8)) = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, bp)
		**(**int32)(__ccgo_up(bp + 12)) = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, bp+4)
		addrIsNull = 0
	}
	_codeCompare(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, op, **(**int32)(__ccgo_up(bp + 8)), **(**int32)(__ccgo_up(bp + 12)), dest, jumpIfNull, libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Commuted)) != uint32(0)))
	if addrIsNull != 0 {
		if jumpIfNull != 0 {
			_sqlite3VdbeChangeP2(tls, v, addrIsNull, dest)
		} else {
			_sqlite3VdbeJumpHere(tls, v, addrIsNull)
		}
	}
	goto _18
_14:
	;
_13:
	;
	**(**int32)(__ccgo_up(bp + 8)) = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, bp)
	if **(**int32)(__ccgo_up(bp)) != 0 {
		_sqlite3VdbeTypeofColumn(tls, v, **(**int32)(__ccgo_up(bp + 8)))
	}
	_sqlite3VdbeAddOp2(tls, v, op, **(**int32)(__ccgo_up(bp + 8)), dest)
	goto _18
_15:
	;
	_exprCodeBetween(tls, pParse, pExpr, dest, __ccgo_fp(_sqlite3ExprIfTrue), jumpIfNull)
	goto _18
_16:
	;
	destIfFalse = _sqlite3VdbeMakeLabel(tls, pParse)
	if jumpIfNull != 0 {
		v19 = dest
	} else {
		v19 = destIfFalse
	}
	destIfNull = v19
	_sqlite3ExprCodeIN(tls, pParse, pExpr, destIfFalse, destIfNull)
	_sqlite3VdbeGoto(tls, v, dest)
	_sqlite3VdbeResolveLabel(tls, v, destIfFalse)
	goto _18
_17:
	;
	goto default_expr
default_expr:
	;
	if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) {
		_sqlite3VdbeGoto(tls, v, dest)
	} else {
		if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) {
			/* No-op */
		} else {
			**(**int32)(__ccgo_up(bp + 8)) = _sqlite3ExprCodeTemp(tls, pParse, pExpr, bp)
			_sqlite3VdbeAddOp3(tls, v, int32(OP_If), **(**int32)(__ccgo_up(bp + 8)), dest, libc.BoolInt32(jumpIfNull != 0))
		}
	}
	goto _18
_18:
	;
	_sqlite3ReleaseTempReg(tls, pParse, **(**int32)(__ccgo_up(bp)))
	_sqlite3ReleaseTempReg(tls, pParse, **(**int32)(__ccgo_up(bp + 4)))
}

// C documentation
//
//	/*
//	** Walk an expression tree for the DEFAULT field of a column definition
//	** in a CREATE TABLE statement.  Return non-zero if the expression is
//	** acceptable for use as a DEFAULT.  That is to say, return non-zero if
//	** the expression is constant or a function call with constant arguments.
//	** Return and 0 if there are any variables.
//	**
//	** isInit is true when parsing from sqlite_schema.  isInit is false when
//	** processing a new CREATE TABLE statement.  When isInit is true, parameters
//	** (such as ? or $abc) in the expression are converted into NULL.  When
//	** isInit is false, parameters raise an error.  Parameters should not be
//	** allowed in a CREATE TABLE statement, but some legacy versions of SQLite
//	** allowed it, so we need to support it when reading sqlite_schema for
//	** backwards compatibility.
//	**
//	** If isInit is true, set EP_FromDDL on every TK_FUNCTION node.
//	**
//	** For the purposes of this function, a double-quoted string (ex: "abc")
//	** is considered a variable but a single-quoted string (ex: 'abc') is
//	** a constant.
//	*/
func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) {
	return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit))
}

// C documentation
//
//	/*
//	** Return true if the boolean value of the expression is always either
//	** FALSE or NULL.
//	*/
func _sqlite3ExprIsNotTrue(tls *libc.TLS, pExpr uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* v at bp+0 */ int32
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_NULL) {
		return int32(1)
	}
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_TRUEFALSE) && _sqlite3ExprTruthValue(tls, pExpr) == 0 {
		return int32(1)
	}
	**(**int32)(__ccgo_up(bp)) = int32(1)
	if _sqlite3ExprIsInteger(tls, pExpr, bp, uintptr(0)) != 0 && **(**int32)(__ccgo_up(bp)) == 0 {
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Return TRUE if the given expression is a constant which would be
//	** unchanged by OP_Affinity with the affinity given in the second
//	** argument.
//	**
//	** This routine is used to determine if the OP_Affinity operation
//	** can be omitted.  When in doubt return FALSE.  A false negative
//	** is harmless.  A false positive, however, can result in the wrong
//	** answer.
//	*/
func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r int32) {
	var op Tu8
	var unaryMinus int32
	_, _ = op, unaryMinus
	unaryMinus = 0
	if int32(aff) == int32(SQLITE_AFF_BLOB) {
		return int32(1)
	}
	for int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_UPLUS) || int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_UMINUS) {
		if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_UMINUS) {
			unaryMinus = int32(1)
		}
		p = (*TExpr)(unsafe.Pointer(p)).FpLeft
	}
	op = (*TExpr)(unsafe.Pointer(p)).Fop
	if int32(op) == int32(TK_REGISTER) {
		op = (*TExpr)(unsafe.Pointer(p)).Fop2
	}
	switch int32(op) {
	case int32(TK_INTEGER):
		return libc.BoolInt32(int32(aff) >= int32(SQLITE_AFF_NUMERIC))
	case int32(TK_FLOAT):
		return libc.BoolInt32(int32(aff) >= int32(SQLITE_AFF_NUMERIC))
	case int32(TK_STRING):
		return libc.BoolInt32(!(unaryMinus != 0) && int32(aff) == int32(SQLITE_AFF_TEXT))
	case int32(TK_BLOB):
		return libc.BoolInt32(!(unaryMinus != 0))
	case int32(TK_COLUMN):
		/* p cannot be part of a CHECK constraint */
		return libc.BoolInt32(int32(aff) >= int32(SQLITE_AFF_NUMERIC) && int32((*TExpr)(unsafe.Pointer(p)).FiColumn) < 0)
	default:
		return 0
	}
	return r
}

// C documentation
//
//	/*
//	** Report an error when attempting to use an ORDER BY clause within
//	** the arguments of a non-aggregate function.
//	*/
func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9206, libc.VaList(bp+8, p))
}

// C documentation
//
//	/*
//	** If pExpr is an AND or OR expression, try to simplify it by eliminating
//	** terms that are always true or false.  Return the simplified expression.
//	** Or return the original expression if no simplification is possible.
//	**
//	** Examples:
//	**
//	**     (x<10) AND true                =>   (x<10)
//	**     (x<10) AND false               =>   false
//	**     (x<10) AND (y=22 OR false)     =>   (x<10) AND (y=22)
//	**     (x<10) AND (y=22 OR true)      =>   (x<10)
//	**     (y=22) OR true                 =>   true
//	*/
func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) {
	var pLeft, pRight, v1 uintptr
	_, _, _ = pLeft, pRight, v1
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AND) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_OR) {
		pRight = _sqlite3ExprSimplifiedAndOr(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight)
		pLeft = _sqlite3ExprSimplifiedAndOr(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft)
		if (*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) || (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) {
			if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AND) {
				v1 = pRight
			} else {
				v1 = pLeft
			}
			pExpr = v1
		} else {
			if (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) || (*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) {
				if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AND) {
					v1 = pLeft
				} else {
					v1 = pRight
				}
				pExpr = v1
			}
		}
	}
	return pExpr
}

// C documentation
//
//	/*
//	** Skip over any TK_COLLATE operators.
//	*/
func _sqlite3ExprSkipCollate(tls *libc.TLS, pExpr uintptr) (r uintptr) {
	for pExpr != 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Skip)) != uint32(0) {
		pExpr = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft
	}
	return pExpr
}

// C documentation
//
//	/*
//	** Convert a scalar expression node to a TK_REGISTER referencing
//	** register iReg.  The caller must ensure that iReg already contains
//	** the correct value for the expression.
//	*/
func _sqlite3ExprToRegister(tls *libc.TLS, pExpr uintptr, iReg int32) {
	var p uintptr
	_ = p
	p = _sqlite3ExprSkipCollateAndLikely(tls, pExpr)
	if p == uintptr(0) {
		return
	}
	if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_REGISTER) {
	} else {
		(*TExpr)(unsafe.Pointer(p)).Fop2 = (*TExpr)(unsafe.Pointer(p)).Fop
		(*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_REGISTER)
		(*TExpr)(unsafe.Pointer(p)).FiTable = iReg
		**(**Tu32)(__ccgo_up(p + 4)) &= ^uint32(libc.Int32FromInt32(EP_Skip))
	}
}

// C documentation
//
//	/* Invoke sqlite3RenameExprUnmap() and sqlite3ExprDelete() on the
//	** expression.
//	*/
func _sqlite3ExprUnmapAndDelete(tls *libc.TLS, pParse uintptr, p uintptr) {
	if p != 0 {
		if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) {
			_sqlite3RenameExprUnmap(tls, pParse, p)
		}
		_sqlite3ExprDeleteNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, p)
	}
}

// C documentation
//
//	/*
//	** Given m and e, which represent a quantity r == m*pow(2,e),
//	** return values *pD and *pP such that r == (*pD)*pow(10,*pP),
//	** approximately.  *pD should contain at least n significant digits.
//	**
//	** The input m is required to have its highest bit set.  In other words,
//	** m should be left-shifted, and e decremented, to maximize the value of m.
//	*/
func _sqlite3Fp2Convert10(tls *libc.TLS, m Tu64, e int32, n int32, pD uintptr, pP uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var h Tu64
	var p int32
	var _ /* d1 at bp+0 */ Tu64
	var _ /* d2 at bp+8 */ Tu32
	_, _ = h, p
	p = n - int32(1) - _pwr2to10(tls, e+int32(63))
	h = _sqlite3Multiply128(tls, m, _powerOfTen(tls, p, bp+8), bp)
	if n == int32(18) {
		h = h >> uint64(-(e + _pwr10to2(tls, p) + libc.Int32FromInt32(2)))
		**(**Tu64)(__ccgo_up(pD)) = (h + h<<libc.Int32FromInt32(1)&uint64(2)) >> int32(1)
	} else {
		**(**Tu64)(__ccgo_up(pD)) = h >> -(e + _pwr10to2(tls, p) + int32(1))
	}
	**(**int32)(__ccgo_up(pP)) = -p
}

// C documentation
//
//	/*
//	** Append the nul-terminated string zStr to the buffer pBuf. This function
//	** ensures that the byte following the buffer data is set to 0x00, even
//	** though this byte is not included in the pBuf->n count.
//	*/
func _sqlite3Fts5BufferAppendString(tls *libc.TLS, pRc uintptr, pBuf uintptr, zStr uintptr) {
	var nStr int32
	_ = nStr
	nStr = int32(libc.Xstrlen(tls, zStr))
	_sqlite3Fts5BufferAppendBlob(tls, pRc, pBuf, uint32(nStr+int32(1)), zStr)
	(*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn - 1
}

// C documentation
//
//	/*
//	** Set the buffer to contain nData/pData. If an OOM error occurs, leave an
//	** the error code in p. If an error has already occurred when this function
//	** is called, it is a no-op.
//	*/
func _sqlite3Fts5BufferSet(tls *libc.TLS, pRc uintptr, pBuf uintptr, nData int32, pData uintptr) {
	(*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn = 0
	_sqlite3Fts5BufferAppendBlob(tls, pRc, pBuf, uint32(nData), pData)
}

func _sqlite3Fts5BufferSize(tls *libc.TLS, pRc uintptr, pBuf uintptr, nByte Tu32) (r int32) {
	var nNew Tu64
	var pNew uintptr
	var v1 int32
	_, _, _ = nNew, pNew, v1
	if uint32((*TFts5Buffer)(unsafe.Pointer(pBuf)).FnSpace) < nByte {
		if (*TFts5Buffer)(unsafe.Pointer(pBuf)).FnSpace != 0 {
			v1 = (*TFts5Buffer)(unsafe.Pointer(pBuf)).FnSpace
		} else {
			v1 = int32(64)
		}
		nNew = uint64(v1)
		for nNew < uint64(nByte) {
			nNew = nNew * uint64(2)
		}
		pNew = Xsqlite3_realloc64(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp, nNew)
		if pNew == uintptr(0) {
			**(**int32)(__ccgo_up(pRc)) = int32(SQLITE_NOMEM)
			return int32(1)
		} else {
			(*TFts5Buffer)(unsafe.Pointer(pBuf)).FnSpace = int32(nNew)
			(*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp = pNew
		}
	}
	return 0
}

// C documentation
//
//	/*
//	** Create the shadow table named zPost, with definition zDefn. Return
//	** SQLITE_OK if successful, or an SQLite error code otherwise.
//	*/
func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDefn uintptr, bWithout int32, pzErr uintptr) (r int32) {
	bp := tls.Alloc(64)
	defer tls.Free(64)
	var rc int32
	var v1 uintptr
	var _ /* zErr at bp+0 */ uintptr
	_, _ = rc, v1
	**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
	if bWithout != 0 {
		v1 = __ccgo_ts + 33320
	} else {
		v1 = __ccgo_ts + 1711
	}
	rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+42725, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1))
	if **(**uintptr)(__ccgo_up(bp)) != 0 {
		**(**uintptr)(__ccgo_up(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+42755, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, **(**uintptr)(__ccgo_up(bp))))
		Xsqlite3_free(tls, **(**uintptr)(__ccgo_up(bp)))
	}
	return rc
}

// C documentation
//
//	/*
//	** Drop all shadow tables. Return SQLITE_OK if successful or an SQLite error
//	** code otherwise.
//	*/
func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) {
	bp := tls.Alloc(64)
	defer tls.Free(64)
	var rc int32
	_ = rc
	rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+42503, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))
	if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
		rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+42607, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))
	}
	if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
		rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+42645, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))
	}
	return rc
}

// C documentation
//
//	/*
//	** This function is only called when using the special 'trigram' tokenizer.
//	** Argument zText contains the text of a LIKE or GLOB pattern matched
//	** against column iCol. This function creates and compiles an FTS5 MATCH
//	** expression that will match a superset of the rows matched by the LIKE or
//	** GLOB. If successful, SQLITE_OK is returned. Otherwise, an SQLite error
//	** code.
//	*/
func _sqlite3Fts5ExprPattern(tls *libc.TLS, pConfig uintptr, bGlob int32, iCol int32, zText uintptr, pp uintptr) (r int32) {
	var aSpec [3]int8
	var bAnd, i, iFirst, iOut, jj, rc, v1 int32
	var nText Ti64
	var zExpr uintptr
	_, _, _, _, _, _, _, _, _, _ = aSpec, bAnd, i, iFirst, iOut, jj, nText, rc, zExpr, v1
	nText = int64(libc.Xstrlen(tls, zText))
	zExpr = Xsqlite3_malloc64(tls, uint64(nText*int64(4)+int64(1)))
	rc = SQLITE_OK
	if zExpr == uintptr(0) {
		rc = int32(SQLITE_NOMEM)
	} else {
		iOut = 0
		i = 0
		iFirst = 0
		if bGlob == 0 {
			aSpec[0] = int8('_')
			aSpec[int32(1)] = int8('%')
			aSpec[int32(2)] = 0
		} else {
			aSpec[0] = int8('*')
			aSpec[int32(1)] = int8('?')
			aSpec[int32(2)] = int8('[')
		}
		for int64(i) <= nText {
			if int64(i) == nText || int32(**(**int8)(__ccgo_up(zText + uintptr(i)))) == int32(aSpec[0]) || int32(**(**int8)(__ccgo_up(zText + uintptr(i)))) == int32(aSpec[int32(1)]) || int32(**(**int8)(__ccgo_up(zText + uintptr(i)))) == int32(aSpec[int32(2)]) {
				if _fts5ExprCountChar(tls, zText+uintptr(iFirst), i-iFirst) >= int32(3) {
					v1 = iOut
					iOut = iOut + 1
					**(**int8)(__ccgo_up(zExpr + uintptr(v1))) = int8('"')
					jj = iFirst
					for {
						if !(jj < i) {
							break
						}
						v1 = iOut
						iOut = iOut + 1
						**(**int8)(__ccgo_up(zExpr + uintptr(v1))) = **(**int8)(__ccgo_up(zText + uintptr(jj)))
						if int32(**(**int8)(__ccgo_up(zText + uintptr(jj)))) == int32('"') {
							v1 = iOut
							iOut = iOut + 1
							**(**int8)(__ccgo_up(zExpr + uintptr(v1))) = int8('"')
						}
						goto _2
					_2:
						;
						jj = jj + 1
					}
					v1 = iOut
					iOut = iOut + 1
					**(**int8)(__ccgo_up(zExpr + uintptr(v1))) = int8('"')
					v1 = iOut
					iOut = iOut + 1
					**(**int8)(__ccgo_up(zExpr + uintptr(v1))) = int8(' ')
				}
				if int32(**(**int8)(__ccgo_up(zText + uintptr(i)))) == int32(aSpec[int32(2)]) {
					i = i + int32(2)
					if int32(**(**int8)(__ccgo_up(zText + uintptr(i-int32(1))))) == int32('^') {
						i = i + 1
					}
					for int64(i) < nText && int32(**(**int8)(__ccgo_up(zText + uintptr(i)))) != int32(']') {
						i = i + 1
					}
				}
				iFirst = i + int32(1)
			}
			i = i + 1
		}
		if iOut > 0 {
			bAnd = 0
			if (*TFts5Config)(unsafe.Pointer(pConfig)).FeDetail != FTS5_DETAIL_FULL {
				bAnd = int32(1)
				if (*TFts5Config)(unsafe.Pointer(pConfig)).FeDetail == int32(FTS5_DETAIL_NONE) {
					iCol = (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol
				}
			}
			**(**int8)(__ccgo_up(zExpr + uintptr(iOut))) = int8('\000')
			rc = _sqlite3Fts5ExprNew(tls, pConfig, bAnd, iCol, zExpr, pp, (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)
		} else {
			**(**uintptr)(__ccgo_up(pp)) = uintptr(0)
		}
		Xsqlite3_free(tls, zExpr)
	}
	return rc
}

func _sqlite3Fts5Get32(tls *libc.TLS, aBuf uintptr) (r int32) {
	return int32(uint32(**(**Tu8)(__ccgo_up(aBuf)))<<libc.Int32FromInt32(24) + uint32(int32(**(**Tu8)(__ccgo_up(aBuf + 1)))<<libc.Int32FromInt32(16)) + uint32(int32(**(**Tu8)(__ccgo_up(aBuf + 2)))<<libc.Int32FromInt32(8)) + uint32(**(**Tu8)(__ccgo_up(aBuf + 3))))
}

// C documentation
//
//	/*
//	** This is a copy of the sqlite3GetVarint32() routine from the SQLite core.
//	** Except, this version does handle the single byte case that the core
//	** version depends on being handled before its function is called.
//	*/
func _sqlite3Fts5GetVarint32(tls *libc.TLS, p uintptr, v uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var a, b Tu32
	var n Tu8
	var _ /* v64 at bp+0 */ Tu64
	_, _, _ = a, b, n
	/* The 1-byte case. Overwhelmingly the most common. */
	a = uint32(**(**uint8)(__ccgo_up(p)))
	/* a: p0 (unmasked) */
	if !(a&libc.Uint32FromInt32(0x80) != 0) {
		/* Values between 0 and 127 */
		**(**Tu32)(__ccgo_up(v)) = a
		return int32(1)
	}
	/* The 2-byte case */
	p = p + 1
	b = uint32(**(**uint8)(__ccgo_up(p)))
	/* b: p1 (unmasked) */
	if !(b&libc.Uint32FromInt32(0x80) != 0) {
		/* Values between 128 and 16383 */
		a = a & uint32(0x7f)
		a = a << int32(7)
		**(**Tu32)(__ccgo_up(v)) = a | b
		return int32(2)
	}
	/* The 3-byte case */
	p = p + 1
	a = a << int32(14)
	a = a | uint32(**(**uint8)(__ccgo_up(p)))
	/* a: p0<<14 | p2 (unmasked) */
	if !(a&libc.Uint32FromInt32(0x80) != 0) {
		/* Values between 16384 and 2097151 */
		a = a & uint32(libc.Int32FromInt32(0x7f)<<libc.Int32FromInt32(14)|libc.Int32FromInt32(0x7f))
		b = b & uint32(0x7f)
		b = b << int32(7)
		**(**Tu32)(__ccgo_up(v)) = a | b
		return int32(3)
	}
	/* A 32-bit varint is used to store size information in btrees.
	 ** Objects are rarely larger than 2MiB limit of a 3-byte varint.
	 ** A 3-byte varint is sufficient, for example, to record the size
	 ** of a 1048569-byte BLOB or string.
	 **
	 ** We only unroll the first 1-, 2-, and 3- byte cases.  The very
	 ** rare larger cases can be handled by the slower 64-bit varint
	 ** routine.
	 */
	p = p - uintptr(2)
	n = _sqlite3Fts5GetVarint(tls, p, bp)
	**(**Tu32)(__ccgo_up(v)) = uint32(**(**Tu64)(__ccgo_up(bp))) & uint32(0x7FFFFFFF)
	return int32(n)
	return r
}

/*
** Bitmasks used by sqlite3GetVarint().  These precomputed constants
** are defined here rather than simply putting the constant expressions
** inline in order to work around bugs in the RVT compiler.
**
** SLOT_2_0     A mask for  (0x7f<<14) | 0x7f
**
** SLOT_4_2_0   A mask for  (0x7f<<28) | SLOT_2_0
 */

func _sqlite3Fts5GetVarintLen(tls *libc.TLS, iVal Tu32) (r int32) {
	if iVal < uint32(libc.Int32FromInt32(1)<<libc.Int32FromInt32(14)) {
		return int32(2)
	}
	if iVal < uint32(libc.Int32FromInt32(1)<<libc.Int32FromInt32(21)) {
		return int32(3)
	}
	if iVal < uint32(libc.Int32FromInt32(1)<<libc.Int32FromInt32(28)) {
		return int32(4)
	}
	return int32(5)
}

/*
** 2015 May 08
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
******************************************************************************
**
** This is an SQLite virtual table module implementing direct access to an
** existing FTS5 index. The module may create several different types of
** tables:
**
** col:
**     CREATE TABLE vocab(term, col, doc, cnt, PRIMARY KEY(term, col));
**
**   One row for each term/column combination. The value of $doc is set to
**   the number of fts5 rows that contain at least one instance of term
**   $term within column $col. Field $cnt is set to the total number of
**   instances of term $term in column $col (in any row of the fts5 table).
**
** row:
**     CREATE TABLE vocab(term, doc, cnt, PRIMARY KEY(term));
**
**   One row for each term in the database. The value of $doc is set to
**   the number of fts5 rows that contain at least one instance of term
**   $term. Field $cnt is set to the total number of instances of term
**   $term in the database.
**
** instance:
**     CREATE TABLE vocab(term, doc, col, offset, PRIMARY KEY(<all-fields>));
**
**   One row for each term instance in the database.
 */

/* #include "fts5Int.h" */

// C documentation
//
//	/*
//	** Argument p points to a buffer containing utf-8 text that is n bytes in
//	** size. Return the number of bytes in the nChar character prefix of the
//	** buffer, or 0 if there are less than nChar characters in total.
//	*/
func _sqlite3Fts5IndexCharlenToBytelen(tls *libc.TLS, p uintptr, nByte int32, nChar int32) (r int32) {
	var i, n, v2 int32
	_, _, _ = i, n, v2
	n = 0
	i = 0
	for {
		if !(i < nChar) {
			break
		}
		if n >= nByte {
			return 0
		} /* Input contains fewer than nChar chars */
		v2 = n
		n = n + 1
		if int32(uint8(**(**int8)(__ccgo_up(p + uintptr(v2))))) >= int32(0xc0) {
			if n >= nByte {
				return 0
			}
			for int32(**(**int8)(__ccgo_up(p + uintptr(n))))&int32(0xc0) == int32(0x80) {
				n = n + 1
				if n >= nByte {
					if i+int32(1) == nChar {
						break
					}
					return 0
				}
			}
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	return n
}

// C documentation
//
//	/*
//	** Return a simple checksum value based on the arguments.
//	*/
func _sqlite3Fts5IndexEntryCksum(tls *libc.TLS, iRowid Ti64, iCol int32, iPos int32, iIdx int32, pTerm uintptr, nTerm int32) (r Tu64) {
	var i int32
	var ret Tu64
	_, _ = i, ret
	ret = uint64(iRowid)
	ret = ret + (ret<<libc.Int32FromInt32(3) + uint64(iCol))
	ret = ret + (ret<<libc.Int32FromInt32(3) + uint64(iPos))
	if iIdx >= 0 {
		ret = ret + (ret<<libc.Int32FromInt32(3) + uint64(libc.Int32FromUint8('0')+iIdx))
	}
	i = 0
	for {
		if !(i < nTerm) {
			break
		}
		ret = ret + (ret<<libc.Int32FromInt32(3) + uint64(**(**int8)(__ccgo_up(pTerm + uintptr(i)))))
		goto _1
	_1:
		;
		i = i + 1
	}
	return ret
}

// C documentation
//
//	/*
//	** Retrieve the origin value that will be used for the segment currently
//	** being accumulated in the in-memory hash table when it is flushed to
//	** disk. If successful, SQLITE_OK is returned and (*piOrigin) set to
//	** the queried value. Or, if an error occurs, an error code is returned
//	** and the final value of (*piOrigin) is undefined.
//	*/
func _sqlite3Fts5IndexGetOrigin(tls *libc.TLS, p uintptr, piOrigin uintptr) (r int32) {
	var pStruct uintptr
	_ = pStruct
	pStruct = _fts5StructureRead(tls, p)
	if pStruct != 0 {
		**(**Ti64)(__ccgo_up(piOrigin)) = int64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr)
		_fts5StructureRelease(tls, pStruct)
	}
	return _fts5IndexReturn(tls, p)
}

// C documentation
//
//	/*
//	** Apply colset pColset to expression node pExpr and all of its descendents.
//	*/
func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pColset uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* pFree at bp+0 */ uintptr
	**(**uintptr)(__ccgo_up(bp)) = pColset
	if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) {
		_sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+39876, 0)
	} else {
		_fts5ParseSetColset(tls, pParse, pExpr, pColset, bp)
	}
	Xsqlite3_free(tls, **(**uintptr)(__ccgo_up(bp)))
}

func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, p uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var c int8
	var i, nNear int32
	_, _, _ = c, i, nNear
	if pNear != 0 {
		nNear = 0
		if (*TFts5Token)(unsafe.Pointer(p)).Fn != 0 {
			i = 0
			for {
				if !(i < (*TFts5Token)(unsafe.Pointer(p)).Fn) {
					break
				}
				c = **(**int8)(__ccgo_up((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))
				if int32(c) < int32('0') || int32(c) > int32('9') {
					_sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+39847, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp))
					return
				}
				if nNear < int32(214748363) {
					nNear = nNear*int32(10) + (int32(**(**int8)(__ccgo_up((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0'))
				}
				/*  ^^^^^^^^^^^^^^^---  Prevent integer overflow */
				goto _1
			_1:
				;
				i = i + 1
			}
		} else {
			nNear = int32(FTS5_DEFAULT_NEARDIST)
		}
		(*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnNear = nNear
	}
}

// C documentation
//
//	/*
//	** Return the fallback token corresponding to canonical token iToken, or
//	** 0 if iToken has no fallback.
//	*/
func _sqlite3Fts5ParserFallback(tls *libc.TLS, iToken int32) (r int32) {
	_ = iToken
	return 0
}

/*
** 2014 May 31
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
******************************************************************************
 */

/* #include "fts5Int.h" */
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */

func _sqlite3Fts5PoslistNext64(tls *libc.TLS, a uintptr, n int32, pi uintptr, piOff uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var i, v1 int32
	var iOff Ti64
	var _ /* iVal at bp+0 */ Tu32
	_, _, _ = i, iOff, v1
	i = **(**int32)(__ccgo_up(pi))
	if i >= n {
		/* EOF */
		**(**Ti64)(__ccgo_up(piOff)) = int64(-int32(1))
		return int32(1)
	} else {
		iOff = **(**Ti64)(__ccgo_up(piOff))
		v1 = i
		i = i + 1
		**(**Tu32)(__ccgo_up(bp)) = uint32(**(**Tu8)(__ccgo_up(a + uintptr(v1))))
		if **(**Tu32)(__ccgo_up(bp))&uint32(0x80) != 0 {
			i = i - 1
			i = i + _sqlite3Fts5GetVarint32(tls, a+uintptr(i), bp)
		}
		if **(**Tu32)(__ccgo_up(bp)) <= uint32(1) {
			if **(**Tu32)(__ccgo_up(bp)) == uint32(0) {
				**(**int32)(__ccgo_up(pi)) = i
				return 0
			}
			v1 = i
			i = i + 1
			**(**Tu32)(__ccgo_up(bp)) = uint32(**(**Tu8)(__ccgo_up(a + uintptr(v1))))
			if **(**Tu32)(__ccgo_up(bp))&uint32(0x80) != 0 {
				i = i - 1
				i = i + _sqlite3Fts5GetVarint32(tls, a+uintptr(i), bp)
			}
			iOff = int64(**(**Tu32)(__ccgo_up(bp))) << int32(32)
			v1 = i
			i = i + 1
			**(**Tu32)(__ccgo_up(bp)) = uint32(**(**Tu8)(__ccgo_up(a + uintptr(v1))))
			if **(**Tu32)(__ccgo_up(bp))&uint32(0x80) != 0 {
				i = i - 1
				i = i + _sqlite3Fts5GetVarint32(tls, a+uintptr(i), bp)
			}
			if **(**Tu32)(__ccgo_up(bp)) < uint32(2) {
				/* This is a corrupt record. So stop parsing it here. */
				**(**Ti64)(__ccgo_up(piOff)) = int64(-int32(1))
				return int32(1)
			}
			**(**Ti64)(__ccgo_up(piOff)) = iOff + int64((**(**Tu32)(__ccgo_up(bp))-libc.Uint32FromInt32(2))&libc.Uint32FromInt32(0x7FFFFFFF))
		} else {
			**(**Ti64)(__ccgo_up(piOff)) = iOff&(libc.Int64FromInt32(0x7FFFFFFF)<<libc.Int32FromInt32(32)) + (iOff+int64(**(**Tu32)(__ccgo_up(bp))-libc.Uint32FromInt32(2)))&int64(0x7FFFFFFF)
		}
		**(**int32)(__ccgo_up(pi)) = i
		return 0
	}
	return r
}

func _sqlite3Fts5PoslistWriterAppend(tls *libc.TLS, pBuf uintptr, pWriter uintptr, iPos Ti64) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var v1 int32
	var _ /* rc at bp+0 */ int32
	_ = v1
	**(**int32)(__ccgo_up(bp)) = 0 /* Initialized only to suppress erroneous warning from Clang */
	if uint32((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn)+uint32(libc.Int32FromInt32(5)+libc.Int32FromInt32(5)+libc.Int32FromInt32(5)) <= uint32((*TFts5Buffer)(unsafe.Pointer(pBuf)).FnSpace) {
		v1 = 0
	} else {
		v1 = _sqlite3Fts5BufferSize(tls, bp, pBuf, uint32(libc.Int32FromInt32(5)+libc.Int32FromInt32(5)+libc.Int32FromInt32(5)+(*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn))
	}
	if v1 != 0 {
		return **(**int32)(__ccgo_up(bp))
	}
	_sqlite3Fts5PoslistSafeAppend(tls, pBuf, pWriter, iPos)
	return SQLITE_OK
}

func _sqlite3Fts5Put32(tls *libc.TLS, aBuf uintptr, iVal int32) {
	**(**Tu8)(__ccgo_up(aBuf)) = uint8(iVal >> int32(24) & int32(0x00FF))
	**(**Tu8)(__ccgo_up(aBuf + 1)) = uint8(iVal >> int32(16) & int32(0x00FF))
	**(**Tu8)(__ccgo_up(aBuf + 2)) = uint8(iVal >> int32(8) & int32(0x00FF))
	**(**Tu8)(__ccgo_up(aBuf + 3)) = uint8(iVal >> 0 & int32(0x00FF))
}

// C documentation
//
//	/*
//	** Delete all entries in the FTS5 index.
//	*/
func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var pConfig uintptr
	var rc int32
	_, _ = pConfig, rc
	pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig
	(*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0
	/* Delete the contents of the %_data and %_docsize tables. */
	rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+42931, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))
	if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
		rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+42981, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))
	}
	if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == int32(FTS5_CONTENT_UNINDEXED) {
		rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+43010, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))
	}
	/* Reinitialize the %_data table. This call creates the initial structure
	 ** and averages records.  */
	if rc == SQLITE_OK {
		rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex)
	}
	if rc == SQLITE_OK {
		rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+39705, uintptr(0), int32(FTS5_CURRENT_VERSION))
	}
	return rc
}

func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var pConfig uintptr
	var _ /* rc at bp+0 */ int32
	_ = pConfig
	pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig
	**(**int32)(__ccgo_up(bp)) = _sqlite3Fts5StorageSync(tls, pStorage)
	_fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+28645, zName)
	_fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+14261, zName)
	_fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+41837, zName)
	if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
		_fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+39523, zName)
	}
	if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
		_fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+38828, zName)
	}
	return **(**int32)(__ccgo_up(bp))
}

// C documentation
//
//	/*
//	** Return true if the tokenizer described by p->azArg[] is the trigram
//	** tokenizer. This tokenizer needs to be loaded before xBestIndex is
//	** called for the first time in order to correctly handle LIKE/GLOB.
//	*/
func _sqlite3Fts5TokenizerPreload(tls *libc.TLS, p uintptr) (r int32) {
	return libc.BoolInt32((*TFts5TokenizerConfig)(unsafe.Pointer(p)).FnArg >= int32(1) && 0 == Xsqlite3_stricmp(tls, **(**uintptr)(__ccgo_up((*TFts5TokenizerConfig)(unsafe.Pointer(p)).FazArg)), __ccgo_ts+43442))
}

func _sqlite3Fts5UnicodeAscii(tls *libc.TLS, aArray uintptr, aAscii uintptr) {
	var bToken, i, iTbl, n int32
	_, _, _, _ = bToken, i, iTbl, n
	i = 0
	iTbl = 0
	for i < int32(128) {
		bToken = int32(**(**Tu8)(__ccgo_up(aArray + uintptr(int32(_aFts5UnicodeData[iTbl])&int32(0x1F)))))
		n = int32(_aFts5UnicodeData[iTbl])>>int32(5) + i
		for {
			if !(i < int32(128) && i < n) {
				break
			}
			**(**Tu8)(__ccgo_up(aAscii + uintptr(i))) = uint8(bToken)
			goto _1
		_1:
			;
			i = i + 1
		}
		iTbl = iTbl + 1
	}
	**(**Tu8)(__ccgo_up(aAscii)) = uint8(0) /* 0x00 is never a token character */
}

/*
** 2015 May 30
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
******************************************************************************
**
** Routines for varint serialization and deserialization.
 */

/* #include "fts5Int.h" */

func _sqlite3Fts5UnicodeCategory(tls *libc.TLS, iCode Tu32) (r int32) {
	var iHi, iLo, iRes, iTest, ret, v1 int32
	var iKey Tu16
	_, _, _, _, _, _, _ = iHi, iKey, iLo, iRes, iTest, ret, v1
	iRes = -int32(1)
	if iCode >= uint32(libc.Int32FromInt32(1)<<libc.Int32FromInt32(20)) {
		return 0
	}
	iLo = int32(_aFts5UnicodeBlock[iCode>>int32(16)])
	iHi = int32(_aFts5UnicodeBlock[uint32(1)+iCode>>libc.Int32FromInt32(16)])
	iKey = uint16(iCode & libc.Uint32FromInt32(0xFFFF))
	for iHi > iLo {
		iTest = (iHi + iLo) / int32(2)
		if int32(iKey) >= int32(_aFts5UnicodeMap[iTest]) {
			iRes = iTest
			iLo = iTest + int32(1)
		} else {
			iHi = iTest
		}
	}
	if iRes < 0 {
		return 0
	}
	if int32(iKey) >= int32(_aFts5UnicodeMap[iRes])+int32(_aFts5UnicodeData[iRes])>>int32(5) {
		return 0
	}
	ret = int32(_aFts5UnicodeData[iRes]) & int32(0x1F)
	if ret != int32(30) {
		return ret
	}
	if (int32(iKey)-int32(_aFts5UnicodeMap[iRes]))&int32(0x01) != 0 {
		v1 = int32(5)
	} else {
		v1 = int32(9)
	}
	return v1
}

// C documentation
//
//	/*
//	** Return true if the argument interpreted as a unicode codepoint
//	** is a diacritical modifier character.
//	*/
func _sqlite3Fts5UnicodeIsdiacritic(tls *libc.TLS, c int32) (r int32) {
	var mask0, mask1, v1 uint32
	_, _, _ = mask0, mask1, v1
	mask0 = uint32(0x08029FDF)
	mask1 = uint32(0x000361F8)
	if c < int32(768) || c > int32(817) {
		return 0
	}
	if c < libc.Int32FromInt32(768)+libc.Int32FromInt32(32) {
		v1 = mask0 & (libc.Uint32FromInt32(1) << (c - int32(768)))
	} else {
		v1 = mask1 & (libc.Uint32FromInt32(1) << (c - int32(768) - int32(32)))
	}
	return int32(v1)
}

func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) {
	var p uintptr
	_ = p
	p = pGlobal
	return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+43766, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0))
}

// C documentation
//
//	/*
//	** Read or write a four-byte big-endian integer value.
//	*/
func _sqlite3Get4byte(tls *libc.TLS, p uintptr) (r Tu32) {
	return uint32(**(**Tu8)(__ccgo_up(p)))<<int32(24) | uint32(int32(**(**Tu8)(__ccgo_up(p + 1)))<<libc.Int32FromInt32(16)) | uint32(int32(**(**Tu8)(__ccgo_up(p + 2)))<<libc.Int32FromInt32(8)) | uint32(**(**Tu8)(__ccgo_up(p + 3)))
}

// C documentation
//
//	/*
//	** Interpret the given string as a boolean value.
//	*/
func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) {
	return libc.BoolUint8(int32(_getSafetyLevel(tls, z, int32(1), dflt)) != 0)
}

/* The sqlite3GetBoolean() function is used by other modules but the
** remainder of this file is specific to PRAGMA processing.  So omit
** the rest of the file if PRAGMAs are omitted from the build.
 */

// C documentation
//
//	/*
//	** This function is responsible for invoking the collation factory callback
//	** or substituting a collation sequence of a different encoding when the
//	** requested collation sequence is not available in the desired encoding.
//	**
//	** If it is not NULL, then pColl must point to the database native encoding
//	** collation sequence with name zName, length nName.
//	**
//	** The return value is either the collation sequence to be used in database
//	** db for collation type name zName, length nName, or NULL, if no collation
//	** sequence can be found.  If no collation is found, leave an error message.
//	**
//	** See also: sqlite3LocateCollSeq(), sqlite3FindCollSeq()
//	*/
func _sqlite3GetCollSeq(tls *libc.TLS, pParse uintptr, enc Tu8, pColl uintptr, zName uintptr) (r uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var db, p uintptr
	_, _ = db, p
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	p = pColl
	if !(p != 0) {
		p = _sqlite3FindCollSeq(tls, db, enc, zName, 0)
	}
	if !(p != 0) || !((*TCollSeq)(unsafe.Pointer(p)).FxCmp != 0) {
		/* No collation sequence of this type for this encoding is registered.
		 ** Call the collation factory to see if it can supply us with one.
		 */
		_callCollNeeded(tls, db, int32(enc), zName)
		p = _sqlite3FindCollSeq(tls, db, enc, zName, 0)
	}
	if p != 0 && !((*TCollSeq)(unsafe.Pointer(p)).FxCmp != 0) && _synthCollSeq(tls, db, p) != 0 {
		p = uintptr(0)
	}
	if p == uintptr(0) {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17536, libc.VaList(bp+8, zName))
		(*TParse)(unsafe.Pointer(pParse)).Frc = libc.Int32FromInt32(SQLITE_ERROR) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
	}
	return p
}

// C documentation
//
//	/*
//	** Return the length (in bytes) of the token that begins at z[0].
//	** Store the token type in *tokenType before returning.
//	*/
func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r Ti64) {
	var c, delim, v3 int32
	var i, n Ti64
	var v6 bool
	_, _, _, _, _, _ = c, delim, i, n, v3, v6
	switch int32(_aiClass[**(**uint8)(__ccgo_up(z))]) { /* Switch on the character-class of the first byte
	 ** of the token. See the comment on the CC_ defines
	 ** above. */
	case int32(CC_SPACE):
		i = int64(1)
		for {
			if !(int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x01) != 0) {
				break
			}
			goto _1
		_1:
			;
			i = i + 1
		}
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_SPACE)
		return i
	case int32(CC_MINUS):
		if int32(**(**uint8)(__ccgo_up(z + 1))) == int32('-') {
			i = int64(2)
			for {
				v3 = int32(**(**uint8)(__ccgo_up(z + uintptr(i))))
				c = v3
				if !(v3 != 0 && c != int32('\n')) {
					break
				}
				goto _2
			_2:
				;
				i = i + 1
			}
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_COMMENT)
			return i
		} else {
			if int32(**(**uint8)(__ccgo_up(z + 1))) == int32('>') {
				**(**int32)(__ccgo_up(tokenType)) = int32(TK_PTR)
				return int64(int32(2) + libc.BoolInt32(int32(**(**uint8)(__ccgo_up(z + 2))) == int32('>')))
			}
		}
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_MINUS)
		return int64(1)
	case int32(CC_LP):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_LP)
		return int64(1)
	case int32(CC_RP):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_RP)
		return int64(1)
	case int32(CC_SEMI):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_SEMI)
		return int64(1)
	case int32(CC_PLUS):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_PLUS)
		return int64(1)
	case int32(CC_STAR):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_STAR)
		return int64(1)
	case int32(CC_SLASH):
		if int32(**(**uint8)(__ccgo_up(z + 1))) != int32('*') || int32(**(**uint8)(__ccgo_up(z + 2))) == 0 {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_SLASH)
			return int64(1)
		}
		i = int64(3)
		c = int32(**(**uint8)(__ccgo_up(z + 2)))
		for {
			if v6 = c != int32('*') || int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) != int32('/'); v6 {
				v3 = int32(**(**uint8)(__ccgo_up(z + uintptr(i))))
				c = v3
			}
			if !(v6 && v3 != 0) {
				break
			}
			goto _4
		_4:
			;
			i = i + 1
		}
		if c != 0 {
			i = i + 1
		}
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_COMMENT)
		return i
	case int32(CC_PERCENT):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_REM)
		return int64(1)
	case int32(CC_EQ):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_EQ)
		return int64(int32(1) + libc.BoolInt32(int32(**(**uint8)(__ccgo_up(z + 1))) == int32('=')))
	case int32(CC_LT):
		v3 = int32(**(**uint8)(__ccgo_up(z + 1)))
		c = v3
		if v3 == int32('=') {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_LE)
			return int64(2)
		} else {
			if c == int32('>') {
				**(**int32)(__ccgo_up(tokenType)) = int32(TK_NE)
				return int64(2)
			} else {
				if c == int32('<') {
					**(**int32)(__ccgo_up(tokenType)) = int32(TK_LSHIFT)
					return int64(2)
				} else {
					**(**int32)(__ccgo_up(tokenType)) = int32(TK_LT)
					return int64(1)
				}
			}
		}
		fallthrough
	case int32(CC_GT):
		v3 = int32(**(**uint8)(__ccgo_up(z + 1)))
		c = v3
		if v3 == int32('=') {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_GE)
			return int64(2)
		} else {
			if c == int32('>') {
				**(**int32)(__ccgo_up(tokenType)) = int32(TK_RSHIFT)
				return int64(2)
			} else {
				**(**int32)(__ccgo_up(tokenType)) = int32(TK_GT)
				return int64(1)
			}
		}
		fallthrough
	case int32(CC_BANG):
		if int32(**(**uint8)(__ccgo_up(z + 1))) != int32('=') {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_ILLEGAL)
			return int64(1)
		} else {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_NE)
			return int64(2)
		}
		fallthrough
	case int32(CC_PIPE):
		if int32(**(**uint8)(__ccgo_up(z + 1))) != int32('|') {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_BITOR)
			return int64(1)
		} else {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_CONCAT)
			return int64(2)
		}
		fallthrough
	case int32(CC_COMMA):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_COMMA)
		return int64(1)
	case int32(CC_AND):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_BITAND)
		return int64(1)
	case int32(CC_TILDA):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_BITNOT)
		return int64(1)
	case int32(CC_QUOTE):
		delim = int32(**(**uint8)(__ccgo_up(z)))
		i = int64(1)
		for {
			v3 = int32(**(**uint8)(__ccgo_up(z + uintptr(i))))
			c = v3
			if !(v3 != 0) {
				break
			}
			if c == delim {
				if int32(**(**uint8)(__ccgo_up(z + uintptr(i+int64(1))))) == delim {
					i = i + 1
				} else {
					break
				}
			}
			goto _9
		_9:
			;
			i = i + 1
		}
		if c == int32('\'') {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_STRING)
			return i + int64(1)
		} else {
			if c != 0 {
				**(**int32)(__ccgo_up(tokenType)) = int32(TK_ID)
				return i + int64(1)
			} else {
				**(**int32)(__ccgo_up(tokenType)) = int32(TK_ILLEGAL)
				return i
			}
		}
		fallthrough
	case int32(CC_DOT):
		if !(int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + 1))])&libc.Int32FromInt32(0x04) != 0) {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_DOT)
			return int64(1)
		}
		/* If the next character is a digit, this is a floating point
		 ** number that begins with ".".  Fall thru into the next case */
		fallthrough
	case int32(CC_DIGIT):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_INTEGER)
		if int32(**(**uint8)(__ccgo_up(z))) == int32('0') && (int32(**(**uint8)(__ccgo_up(z + 1))) == int32('x') || int32(**(**uint8)(__ccgo_up(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + 2))])&int32(0x08) != 0 {
			i = int64(3)
			for {
				if !(int32(1) != 0) {
					break
				}
				if int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x08) == 0 {
					if int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) == int32('_') {
						**(**int32)(__ccgo_up(tokenType)) = int32(TK_QNUMBER)
					} else {
						break
					}
				}
				goto _11
			_11:
				;
				i = i + 1
			}
		} else {
			i = 0
			for {
				if !(int32(1) != 0) {
					break
				}
				if int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x04) == 0 {
					if int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) == int32('_') {
						**(**int32)(__ccgo_up(tokenType)) = int32(TK_QNUMBER)
					} else {
						break
					}
				}
				goto _12
			_12:
				;
				i = i + 1
			}
			if int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) == int32('.') {
				if **(**int32)(__ccgo_up(tokenType)) == int32(TK_INTEGER) {
					**(**int32)(__ccgo_up(tokenType)) = int32(TK_FLOAT)
				}
				i = i + 1
				for {
					if !(int32(1) != 0) {
						break
					}
					if int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x04) == 0 {
						if int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) == int32('_') {
							**(**int32)(__ccgo_up(tokenType)) = int32(TK_QNUMBER)
						} else {
							break
						}
					}
					goto _13
				_13:
					;
					i = i + 1
				}
			}
			if (int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) == int32('e') || int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i+int64(1))))])&int32(0x04) != 0 || (int32(**(**uint8)(__ccgo_up(z + uintptr(i+int64(1))))) == int32('+') || int32(**(**uint8)(__ccgo_up(z + uintptr(i+int64(1))))) == int32('-')) && int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i+int64(2))))])&int32(0x04) != 0) {
				if **(**int32)(__ccgo_up(tokenType)) == int32(TK_INTEGER) {
					**(**int32)(__ccgo_up(tokenType)) = int32(TK_FLOAT)
				}
				i = i + int64(2)
				for {
					if !(int32(1) != 0) {
						break
					}
					if int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x04) == 0 {
						if int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) == int32('_') {
							**(**int32)(__ccgo_up(tokenType)) = int32(TK_QNUMBER)
						} else {
							break
						}
					}
					goto _14
				_14:
					;
					i = i + 1
				}
			}
		}
		for int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x46) != 0 {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_ILLEGAL)
			i = i + 1
		}
		return i
	case int32(CC_QUOTE2):
		i = int64(1)
		c = int32(**(**uint8)(__ccgo_up(z)))
		for {
			if v6 = c != int32(']'); v6 {
				v3 = int32(**(**uint8)(__ccgo_up(z + uintptr(i))))
				c = v3
			}
			if !(v6 && v3 != 0) {
				break
			}
			goto _15
		_15:
			;
			i = i + 1
		}
		if c == int32(']') {
			v3 = int32(TK_ID)
		} else {
			v3 = int32(TK_ILLEGAL)
		}
		**(**int32)(__ccgo_up(tokenType)) = v3
		return i
	case int32(CC_VARNUM):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_VARIABLE)
		i = int64(1)
		for {
			if !(int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x04) != 0) {
				break
			}
			goto _19
		_19:
			;
			i = i + 1
		}
		return i
	case int32(CC_DOLLAR):
		fallthrough
	case int32(CC_VARALPHA):
		n = 0
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_VARIABLE)
		i = int64(1)
		for {
			v3 = int32(**(**uint8)(__ccgo_up(z + uintptr(i))))
			c = v3
			if !(v3 != 0) {
				break
			}
			if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 {
				n = n + 1
			} else {
				if c == int32('(') && n > 0 {
					for {
						i = i + 1
						goto _23
					_23:
						;
						v3 = int32(**(**uint8)(__ccgo_up(z + uintptr(i))))
						c = v3
						if !(v3 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) {
							break
						}
					}
					if c == int32(')') {
						i = i + 1
					} else {
						**(**int32)(__ccgo_up(tokenType)) = int32(TK_ILLEGAL)
					}
					break
				} else {
					if c == int32(':') && int32(**(**uint8)(__ccgo_up(z + uintptr(i+int64(1))))) == int32(':') {
						i = i + 1
					} else {
						break
					}
				}
			}
			goto _20
		_20:
			;
			i = i + 1
		}
		if n == 0 {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_ILLEGAL)
		}
		return i
	case int32(CC_KYWD0):
		if int32(_aiClass[**(**uint8)(__ccgo_up(z + 1))]) > int32(CC_KYWD) {
			i = int64(1)
			break
		}
		i = int64(2)
		for {
			if !(int32(_aiClass[**(**uint8)(__ccgo_up(z + uintptr(i)))]) <= int32(CC_KYWD)) {
				break
			}
			goto _24
		_24:
			;
			i = i + 1
		}
		if int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x46) != 0 {
			/* This token started out using characters that can appear in keywords,
			 ** but z[i] is a character not allowed within keywords, so this must
			 ** be an identifier instead */
			i = i + 1
			break
		}
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_ID)
		return _keywordCode(tls, z, i, tokenType)
	case CC_X:
		if int32(**(**uint8)(__ccgo_up(z + 1))) == int32('\'') {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_BLOB)
			i = int64(2)
			for {
				if !(int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x08) != 0) {
					break
				}
				goto _25
			_25:
				;
				i = i + 1
			}
			if int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) != int32('\'') || i%int64(2) != 0 {
				**(**int32)(__ccgo_up(tokenType)) = int32(TK_ILLEGAL)
				for **(**uint8)(__ccgo_up(z + uintptr(i))) != 0 && int32(**(**uint8)(__ccgo_up(z + uintptr(i)))) != int32('\'') {
					i = i + 1
				}
			}
			if **(**uint8)(__ccgo_up(z + uintptr(i))) != 0 {
				i = i + 1
			}
			return i
		}
		/* If it is not a BLOB literal, then it must be an ID, since no
		 ** SQL keywords start with the letter 'x'.  Fall through */
		fallthrough
	case int32(CC_KYWD):
		fallthrough
	case int32(CC_ID):
		i = int64(1)
	case int32(CC_BOM):
		if int32(**(**uint8)(__ccgo_up(z + 1))) == int32(0xbb) && int32(**(**uint8)(__ccgo_up(z + 2))) == int32(0xbf) {
			**(**int32)(__ccgo_up(tokenType)) = int32(TK_SPACE)
			return int64(3)
		}
		i = int64(1)
	case int32(CC_NUL):
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_ILLEGAL)
		return 0
	default:
		**(**int32)(__ccgo_up(tokenType)) = int32(TK_ILLEGAL)
		return int64(1)
	}
	for int32(_sqlite3CtypeMap[**(**uint8)(__ccgo_up(z + uintptr(i)))])&int32(0x46) != 0 {
		i = i + 1
	}
	**(**int32)(__ccgo_up(tokenType)) = int32(TK_ID)
	return i
}

// C documentation
//
//	/*
//	** Try to convert z into an unsigned 32-bit integer.  Return true on
//	** success and false if there is an error.
//	**
//	** Only decimal notation is accepted.
//	*/
func _sqlite3GetUInt32(tls *libc.TLS, z uintptr, pI uintptr) (r int32) {
	var i int32
	var v Tu64
	_, _ = i, v
	v = uint64(0)
	i = 0
	for {
		if !(int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(z + uintptr(i))))])&int32(0x04) != 0) {
			break
		}
		v = v*uint64(10) + uint64(**(**int8)(__ccgo_up(z + uintptr(i)))) - uint64('0')
		if v > uint64(4294967296) {
			**(**Tu32)(__ccgo_up(pI)) = uint32(0)
			return 0
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	if i == 0 || int32(**(**int8)(__ccgo_up(z + uintptr(i)))) != 0 {
		**(**Tu32)(__ccgo_up(pI)) = uint32(0)
		return 0
	}
	**(**Tu32)(__ccgo_up(pI)) = uint32(v)
	return int32(1)
}

/*
** The variable-length integer encoding is as follows:
**
** KEY:
**         A = 0xxxxxxx    7 bits of data and one flag bit
**         B = 1xxxxxxx    7 bits of data and one flag bit
**         C = xxxxxxxx    8 bits of data
**
**  7 bits - A
** 14 bits - BA
** 21 bits - BBA
** 28 bits - BBBA
** 35 bits - BBBBA
** 42 bits - BBBBBA
** 49 bits - BBBBBBA
** 56 bits - BBBBBBBA
** 64 bits - BBBBBBBBC
 */

// C documentation
//
//	/*
//	** Read a 64-bit variable-length integer from memory starting at p[0].
//	** Return the number of bytes read.  The value is stored in *v.
//	*/
func _sqlite3GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) {
	var a, b, s Tu32
	_, _, _ = a, b, s
	if int32(**(**int8)(__ccgo_up(p))) >= 0 {
		**(**Tu64)(__ccgo_up(v)) = uint64(**(**uint8)(__ccgo_up(p)))
		return uint8(1)
	}
	if int32(**(**int8)(__ccgo_up(p + 1))) >= 0 {
		**(**Tu64)(__ccgo_up(v)) = uint64(uint32(int32(**(**uint8)(__ccgo_up(p)))&libc.Int32FromInt32(0x7f))<<libc.Int32FromInt32(7) | uint32(**(**uint8)(__ccgo_up(p + 1))))
		return uint8(2)
	}
	/* Verify that constants are precomputed correctly */
	a = uint32(**(**uint8)(__ccgo_up(p))) << int32(14)
	b = uint32(**(**uint8)(__ccgo_up(p + 1)))
	p = p + uintptr(2)
	a = a | uint32(**(**uint8)(__ccgo_up(p)))
	/* a: p0<<14 | p2 (unmasked) */
	if !(a&libc.Uint32FromInt32(0x80) != 0) {
		a = a & uint32(SLOT_2_0)
		b = b & uint32(0x7f)
		b = b << int32(7)
		a = a | b
		**(**Tu64)(__ccgo_up(v)) = uint64(a)
		return uint8(3)
	}
	/* CSE1 from below */
	a = a & uint32(SLOT_2_0)
	p = p + 1
	b = b << int32(14)
	b = b | uint32(**(**uint8)(__ccgo_up(p)))
	/* b: p1<<14 | p3 (unmasked) */
	if !(b&libc.Uint32FromInt32(0x80) != 0) {
		b = b & uint32(SLOT_2_0)
		/* moved CSE1 up */
		/* a &= (0x7f<<14)|(0x7f); */
		a = a << int32(7)
		a = a | b
		**(**Tu64)(__ccgo_up(v)) = uint64(a)
		return uint8(4)
	}
	/* a: p0<<14 | p2 (masked) */
	/* b: p1<<14 | p3 (unmasked) */
	/* 1:save off p0<<21 | p1<<14 | p2<<7 | p3 (masked) */
	/* moved CSE1 up */
	/* a &= (0x7f<<14)|(0x7f); */
	b = b & uint32(SLOT_2_0)
	s = a
	/* s: p0<<14 | p2 (masked) */
	p = p + 1
	a = a << int32(14)
	a = a | uint32(**(**uint8)(__ccgo_up(p)))
	/* a: p0<<28 | p2<<14 | p4 (unmasked) */
	if !(a&libc.Uint32FromInt32(0x80) != 0) {
		/* we can skip these cause they were (effectively) done above
		 ** while calculating s */
		/* a &= (0x7f<<28)|(0x7f<<14)|(0x7f); */
		/* b &= (0x7f<<14)|(0x7f); */
		b = b << int32(7)
		a = a | b
		s = s >> int32(18)
		**(**Tu64)(__ccgo_up(v)) = uint64(s)<<int32(32) | uint64(a)
		return uint8(5)
	}
	/* 2:save off p0<<21 | p1<<14 | p2<<7 | p3 (masked) */
	s = s << int32(7)
	s = s | b
	/* s: p0<<21 | p1<<14 | p2<<7 | p3 (masked) */
	p = p + 1
	b = b << int32(14)
	b = b | uint32(**(**uint8)(__ccgo_up(p)))
	/* b: p1<<28 | p3<<14 | p5 (unmasked) */
	if !(b&libc.Uint32FromInt32(0x80) != 0) {
		/* we can skip this cause it was (effectively) done above in calc'ing s */
		/* b &= (0x7f<<28)|(0x7f<<14)|(0x7f); */
		a = a & uint32(SLOT_2_0)
		a = a << int32(7)
		a = a | b
		s = s >> int32(18)
		**(**Tu64)(__ccgo_up(v)) = uint64(s)<<int32(32) | uint64(a)
		return uint8(6)
	}
	p = p + 1
	a = a << int32(14)
	a = a | uint32(**(**uint8)(__ccgo_up(p)))
	/* a: p2<<28 | p4<<14 | p6 (unmasked) */
	if !(a&libc.Uint32FromInt32(0x80) != 0) {
		a = a & uint32(SLOT_4_2_0)
		b = b & uint32(SLOT_2_0)
		b = b << int32(7)
		a = a | b
		s = s >> int32(11)
		**(**Tu64)(__ccgo_up(v)) = uint64(s)<<int32(32) | uint64(a)
		return uint8(7)
	}
	/* CSE2 from below */
	a = a & uint32(SLOT_2_0)
	p = p + 1
	b = b << int32(14)
	b = b | uint32(**(**uint8)(__ccgo_up(p)))
	/* b: p3<<28 | p5<<14 | p7 (unmasked) */
	if !(b&libc.Uint32FromInt32(0x80) != 0) {
		b = b & uint32(SLOT_4_2_0)
		/* moved CSE2 up */
		/* a &= (0x7f<<14)|(0x7f); */
		a = a << int32(7)
		a = a | b
		s = s >> int32(4)
		**(**Tu64)(__ccgo_up(v)) = uint64(s)<<int32(32) | uint64(a)
		return uint8(8)
	}
	p = p + 1
	a = a << int32(15)
	a = a | uint32(**(**uint8)(__ccgo_up(p)))
	/* a: p4<<29 | p6<<15 | p8 (unmasked) */
	/* moved CSE2 up */
	/* a &= (0x7f<<29)|(0x7f<<15)|(0xff); */
	b = b & uint32(SLOT_2_0)
	b = b << int32(8)
	a = a | b
	s = s << int32(4)
	b = uint32(**(**uint8)(__ccgo_up(p + uintptr(-libc.Int32FromInt32(4)))))
	b = b & uint32(0x7f)
	b = b >> int32(3)
	s = s | b
	**(**Tu64)(__ccgo_up(v)) = uint64(s)<<int32(32) | uint64(a)
	return uint8(9)
}

// C documentation
//
//	/*
//	** Read a 32-bit variable-length integer from memory starting at p[0].
//	** Return the number of bytes read.  The value is stored in *v.
//	**
//	** If the varint stored in p[0] is larger than can fit in a 32-bit unsigned
//	** integer, then set *v to 0xffffffff.
//	**
//	** A MACRO version, getVarint32, is provided which inlines the
//	** single-byte case.  All code should use the MACRO version as
//	** this function assumes the single-byte case has already been handled.
//	*/
func _sqlite3GetVarint32(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var n Tu8
	var _ /* v64 at bp+0 */ Tu64
	_ = n
	/* Assume that the single-byte case has already been handled by
	 ** the getVarint32() macro */
	if int32(**(**uint8)(__ccgo_up(p + 1)))&int32(0x80) == 0 {
		/* This is the two-byte case */
		**(**Tu32)(__ccgo_up(v)) = uint32(int32(**(**uint8)(__ccgo_up(p)))&int32(0x7f)<<int32(7) | int32(**(**uint8)(__ccgo_up(p + 1))))
		return uint8(2)
	}
	if int32(**(**uint8)(__ccgo_up(p + 2)))&int32(0x80) == 0 {
		/* This is the three-byte case */
		**(**Tu32)(__ccgo_up(v)) = uint32(int32(**(**uint8)(__ccgo_up(p)))&int32(0x7f)<<int32(14) | int32(**(**uint8)(__ccgo_up(p + 1)))&int32(0x7f)<<int32(7) | int32(**(**uint8)(__ccgo_up(p + 2))))
		return uint8(3)
	}
	/* four or more bytes */
	n = _sqlite3GetVarint(tls, p, bp)
	if **(**Tu64)(__ccgo_up(bp))&(libc.Uint64FromInt32(1)<<libc.Int32FromInt32(32)-libc.Uint64FromInt32(1)) != **(**Tu64)(__ccgo_up(bp)) {
		**(**Tu32)(__ccgo_up(v)) = uint32(0xffffffff)
	} else {
		**(**Tu32)(__ccgo_up(v)) = uint32(**(**Tu64)(__ccgo_up(bp)))
	}
	return n
}

// C documentation
//
//	/*
//	** Convert a BLOB literal of the form "x'hhhhhh'" into its binary
//	** value.  Return a pointer to its binary value.  Space to hold the
//	** binary value has been obtained from malloc and must be freed by
//	** the calling routine.
//	*/
func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr) {
	var i int32
	var zBlob uintptr
	_, _ = i, zBlob
	zBlob = _sqlite3DbMallocRawNN(tls, db, uint64(n/int32(2)+int32(1)))
	n = n - 1
	if zBlob != 0 {
		i = 0
		for {
			if !(i < n) {
				break
			}
			**(**int8)(__ccgo_up(zBlob + uintptr(i/int32(2)))) = int8(int32(_sqlite3HexToInt(tls, int32(**(**int8)(__ccgo_up(z + uintptr(i))))))<<int32(4) | int32(_sqlite3HexToInt(tls, int32(**(**int8)(__ccgo_up(z + uintptr(i+int32(1))))))))
			goto _1
		_1:
			;
			i = i + int32(2)
		}
		**(**int8)(__ccgo_up(zBlob + uintptr(i/int32(2)))) = 0
	}
	return zBlob
}

// C documentation
//
//	/*
//	** Translate a single byte of Hex into an integer.
//	** This routine only works if h really is a valid hexadecimal
//	** character:  0..9a..fA..F
//	*/
func _sqlite3HexToInt(tls *libc.TLS, h int32) (r Tu8) {
	h = h + int32(9)*(int32(1)&(h>>int32(6)))
	return uint8(h & libc.Int32FromInt32(0xf))
}

// C documentation
//
//	/*
//	** Check to see if pExpr is one of the indexed expressions on pParse->pIdxEpr.
//	** If it is, then resolve the expression by reading from the index and
//	** return the register into which the value has been read.  If pExpr is
//	** not an indexed expression, then return negative.
//	*/
func _sqlite3IndexedExprLookup(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) (r int32) {
	var addr, iDataCur int32
	var exprAff Tu8
	var p, v uintptr
	_, _, _, _, _ = addr, exprAff, iDataCur, p, v
	p = (*TParse)(unsafe.Pointer(pParse)).FpIdxEpr
	for {
		if !(p != 0) {
			break
		}
		iDataCur = (*TIndexedExpr)(unsafe.Pointer(p)).FiDataCur
		if iDataCur < 0 {
			goto _1
		}
		if (*TParse)(unsafe.Pointer(pParse)).FiSelfTab != 0 {
			if (*TIndexedExpr)(unsafe.Pointer(p)).FiDataCur != (*TParse)(unsafe.Pointer(pParse)).FiSelfTab-int32(1) {
				goto _1
			}
			iDataCur = -int32(1)
		}
		if _sqlite3ExprCompare(tls, uintptr(0), pExpr, (*TIndexedExpr)(unsafe.Pointer(p)).FpExpr, iDataCur) != 0 {
			goto _1
		}
		exprAff = uint8(_sqlite3ExprAffinity(tls, pExpr))
		if int32(exprAff) <= int32(SQLITE_AFF_BLOB) && int32((*TIndexedExpr)(unsafe.Pointer(p)).Faff) != int32(SQLITE_AFF_BLOB) || int32(exprAff) == int32(SQLITE_AFF_TEXT) && int32((*TIndexedExpr)(unsafe.Pointer(p)).Faff) != int32(SQLITE_AFF_TEXT) || int32(exprAff) >= int32(SQLITE_AFF_NUMERIC) && int32((*TIndexedExpr)(unsafe.Pointer(p)).Faff) != int32(SQLITE_AFF_NUMERIC) {
			/* Affinity mismatch on a generated column */
			goto _1
		}
		/* Functions that might set a subtype should not be replaced by the
		 ** value taken from an expression index if they are themselves an
		 ** argument to another scalar function or aggregate.
		 ** https://sqlite.org/forum/forumpost/68d284c86b082c3e */
		if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromUint32(EP_SubtArg) != uint32(0) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 {
			goto _1
		}
		v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
		if (*TIndexedExpr)(unsafe.Pointer(p)).FbMaybeNullRow != 0 {
			/* If the index is on a NULL row due to an outer join, then we
			 ** cannot extract the value from the index.  The value must be
			 ** computed using the original expression. */
			addr = _sqlite3VdbeCurrentAddr(tls, v)
			_sqlite3VdbeAddOp3(tls, v, int32(OP_IfNullRow), (*TIndexedExpr)(unsafe.Pointer(p)).FiIdxCur, addr+int32(3), target)
			_sqlite3VdbeAddOp3(tls, v, int32(OP_Column), (*TIndexedExpr)(unsafe.Pointer(p)).FiIdxCur, (*TIndexedExpr)(unsafe.Pointer(p)).FiIdxCol, target)
			_sqlite3VdbeGoto(tls, v, 0)
			p = (*TParse)(unsafe.Pointer(pParse)).FpIdxEpr
			(*TParse)(unsafe.Pointer(pParse)).FpIdxEpr = uintptr(0)
			_sqlite3ExprCode(tls, pParse, pExpr, target)
			(*TParse)(unsafe.Pointer(pParse)).FpIdxEpr = p
			_sqlite3VdbeJumpHere(tls, v, addr+int32(2))
		} else {
			_sqlite3VdbeAddOp3(tls, v, int32(OP_Column), (*TIndexedExpr)(unsafe.Pointer(p)).FiIdxCur, (*TIndexedExpr)(unsafe.Pointer(p)).FiIdxCol, target)
		}
		return target
		goto _1
	_1:
		;
		p = (*TIndexedExpr)(unsafe.Pointer(p)).FpIENext
	}
	return -int32(1) /* Not found */
}

// C documentation
//
//	/*
//	** The following is the implementation of an SQL function that always
//	** fails with an error message stating that the function is used in the
//	** wrong context.  The sqlite3_overload_function() API might construct
//	** SQL function that use this routine so that the functions will exist
//	** for name resolution but are actually overloaded by the xFindFunction
//	** method of virtual tables.
//	*/
func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var zErr, zName uintptr
	_, _ = zErr, zName
	zName = Xsqlite3_user_data(tls, context)
	_ = NotUsed
	_ = NotUsed2
	zErr = Xsqlite3_mprintf(tls, __ccgo_ts+27208, libc.VaList(bp+8, zName))
	Xsqlite3_result_error(tls, context, zErr, -int32(1))
	Xsqlite3_free(tls, zErr)
}

// C documentation
//
//	/* Make the IdChar function accessible from ctime.c and alter.c */
func _sqlite3IsIdChar(tls *libc.TLS, c Tu8) (r int32) {
	return libc.BoolInt32(int32(_sqlite3CtypeMap[c])&int32(0x46) != 0)
}

// C documentation
//
//	/*
//	** Check to make sure the given table is writable.
//	**
//	** If pTab is not writable  ->  generate an error message and return 1.
//	** If pTab is writable but other errors have occurred -> return 1.
//	** If pTab is writable and no prior errors -> return 0;
//	*/
func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	if _tabIsReadOnly(tls, pParse, pTab) != 0 {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17600, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName))
		return int32(1)
	}
	if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17629, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName))
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Return TRUE if the given string is a row-id column name.
//	*/
func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) {
	if _sqlite3StrICmp(tls, z, __ccgo_ts+9406) == 0 {
		return int32(1)
	}
	if _sqlite3StrICmp(tls, z, __ccgo_ts+9414) == 0 {
		return int32(1)
	}
	if _sqlite3StrICmp(tls, z, __ccgo_ts+9420) == 0 {
		return int32(1)
	}
	return 0
}

// C documentation
//
//	/*
//	** Check the input string to see if it is "true" or "false" (in any case).
//	**
//	**       If the string is....           Return
//	**         "true"                         EP_IsTrue
//	**         "false"                        EP_IsFalse
//	**         anything else                  0
//	*/
func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) {
	if _sqlite3StrICmp(tls, zIn, __ccgo_ts+9395) == 0 {
		return uint32(EP_IsTrue)
	}
	if _sqlite3StrICmp(tls, zIn, __ccgo_ts+9400) == 0 {
		return uint32(EP_IsFalse)
	}
	return uint32(0)
}

// C documentation
//
//	/*
//	** This function returns the collation sequence for database native text
//	** encoding identified by the string zName.
//	**
//	** If the requested collation sequence is not available, or not available
//	** in the database native encoding, the collation factory is invoked to
//	** request it. If the collation factory does not supply such a sequence,
//	** and the sequence is available in another text encoding, then that is
//	** returned instead.
//	**
//	** If no versions of the requested collations sequence are available, or
//	** another error occurs, NULL is returned and an error message written into
//	** pParse.
//	**
//	** This routine is a wrapper around sqlite3FindCollSeq().  This routine
//	** invokes the collation factory if the named collation cannot be found
//	** and generates an error message.
//	**
//	** See also: sqlite3FindCollSeq(), sqlite3GetCollSeq()
//	*/
func _sqlite3LocateCollSeq(tls *libc.TLS, pParse uintptr, zName uintptr) (r uintptr) {
	var db, pColl uintptr
	var enc, initbusy Tu8
	_, _, _, _ = db, enc, initbusy, pColl
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc
	initbusy = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy
	pColl = _sqlite3FindCollSeq(tls, db, enc, zName, int32(initbusy))
	if !(initbusy != 0) && (!(pColl != 0) || !((*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0)) {
		pColl = _sqlite3GetCollSeq(tls, pParse, enc, pColl, zName)
	}
	return pColl
}

// C documentation
//
//	/*
//	** Find (an approximate) sum of two LogEst values.  This computation is
//	** not a simple "+" operator because LogEst is stored as a logarithmic
//	** value.
//	**
//	*/
func _sqlite3LogEstAdd(tls *libc.TLS, a TLogEst, b TLogEst) (r TLogEst) {
	if int32(a) >= int32(b) {
		if int32(a) > int32(b)+int32(49) {
			return a
		}
		if int32(a) > int32(b)+int32(31) {
			return int16(int32(a) + int32(1))
		}
		return int16(int32(a) + int32(_x[int32(a)-int32(b)]))
	} else {
		if int32(b) > int32(a)+int32(49) {
			return b
		}
		if int32(b) > int32(a)+int32(31) {
			return int16(int32(b) + int32(1))
		}
		return int16(int32(b) + int32(_x[int32(b)-int32(a)]))
	}
	return r
}

// C documentation
//
//	/*
//	** Convert a LogEst into an integer.
//	*/
func _sqlite3LogEstToInt(tls *libc.TLS, x TLogEst) (r Tu64) {
	var n Tu64
	var v1 uint64
	_, _ = n, v1
	n = uint64(int32(x) % int32(10))
	x = int16(int32(x) / libc.Int32FromInt32(10))
	if n >= uint64(5) {
		n = n - uint64(2)
	} else {
		if n >= uint64(1) {
			n = n - uint64(1)
		}
	}
	if int32(x) > int32(60) {
		return uint64(libc.Int64FromUint32(0xffffffff) | libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32))
	}
	if int32(x) >= int32(3) {
		v1 = (n + uint64(8)) << (int32(x) - int32(3))
	} else {
		v1 = (n + uint64(8)) >> (int32(3) - int32(x))
	}
	return v1
}

// C documentation
//
//	/*
//	** Count the number of slots of lookaside memory that are outstanding
//	*/
func _sqlite3LookasideUsed(tls *libc.TLS, db uintptr, pHighwater uintptr) (r int32) {
	var nFree, nInit Tu32
	_, _ = nFree, nInit
	nInit = _countLookasideSlots(tls, (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpInit)
	nFree = _countLookasideSlots(tls, (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpFree)
	nInit = nInit + _countLookasideSlots(tls, (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit)
	nFree = nFree + _countLookasideSlots(tls, (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree)
	if pHighwater != 0 {
		**(**int32)(__ccgo_up(pHighwater)) = int32((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FnSlot - nInit)
	}
	return int32((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FnSlot - (nInit + nFree))
}

// C documentation
//
//	/*
//	** Allocate memory.  This routine is like sqlite3_malloc() except that it
//	** assumes the memory subsystem has already been initialized.
//	*/
func _sqlite3Malloc(tls *libc.TLS, n Tu64) (r uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* p at bp+0 */ uintptr
	if n == uint64(0) || n > uint64(SQLITE_MAX_ALLOCATION_SIZE) {
		**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
	} else {
		if _sqlite3Config.FbMemstat != 0 {
			Xsqlite3_mutex_enter(tls, _mem0.Fmutex)
			_mallocWithAlarm(tls, int32(n), bp)
			Xsqlite3_mutex_leave(tls, _mem0.Fmutex)
		} else {
			**(**uintptr)(__ccgo_up(bp)) = (*(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxMalloc})))(tls, int32(n))
		}
	}
	/* IMP: R-11148-40995 */
	return **(**uintptr)(__ccgo_up(bp))
}

// C documentation
//
//	/*
//	** Compare the values contained by the two memory cells, returning
//	** negative, zero or positive if pMem1 is less than, equal to, or greater
//	** than pMem2. Sorting order is NULL's first, followed by numbers (integers
//	** and reals) sorted numerically, followed by text ordered by the collating
//	** sequence pColl and finally blob's ordered by memcmp().
//	**
//	** Two NULL values are considered equal by this function.
//	*/
func _sqlite3MemCompare(tls *libc.TLS, pMem1 uintptr, pMem2 uintptr, pColl uintptr) (r int32) {
	var combined_flags, f1, f2 int32
	_, _, _ = combined_flags, f1, f2
	f1 = int32((*TMem)(unsafe.Pointer(pMem1)).Fflags)
	f2 = int32((*TMem)(unsafe.Pointer(pMem2)).Fflags)
	combined_flags = f1 | f2
	/* If one value is NULL, it is less than the other. If both values
	 ** are NULL, return 0.
	 */
	if combined_flags&int32(MEM_Null) != 0 {
		return f2&int32(MEM_Null) - f1&int32(MEM_Null)
	}
	/* At least one of the two values is a number
	 */
	if combined_flags&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)) != 0 {
		if f1&f2&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 {
			if *(*Ti64)(unsafe.Pointer(pMem1)) < *(*Ti64)(unsafe.Pointer(pMem2)) {
				return -int32(1)
			}
			if *(*Ti64)(unsafe.Pointer(pMem1)) > *(*Ti64)(unsafe.Pointer(pMem2)) {
				return +libc.Int32FromInt32(1)
			}
			return 0
		}
		if f1&f2&int32(MEM_Real) != 0 {
			if *(*float64)(unsafe.Pointer(pMem1)) < *(*float64)(unsafe.Pointer(pMem2)) {
				return -int32(1)
			}
			if *(*float64)(unsafe.Pointer(pMem1)) > *(*float64)(unsafe.Pointer(pMem2)) {
				return +libc.Int32FromInt32(1)
			}
			return 0
		}
		if f1&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 {
			if f2&int32(MEM_Real) != 0 {
				return _sqlite3IntFloatCompare(tls, *(*Ti64)(unsafe.Pointer(pMem1)), *(*float64)(unsafe.Pointer(pMem2)))
			} else {
				if f2&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 {
					if *(*Ti64)(unsafe.Pointer(pMem1)) < *(*Ti64)(unsafe.Pointer(pMem2)) {
						return -int32(1)
					}
					if *(*Ti64)(unsafe.Pointer(pMem1)) > *(*Ti64)(unsafe.Pointer(pMem2)) {
						return +libc.Int32FromInt32(1)
					}
					return 0
				} else {
					return -int32(1)
				}
			}
		}
		if f1&int32(MEM_Real) != 0 {
			if f2&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 {
				return -_sqlite3IntFloatCompare(tls, *(*Ti64)(unsafe.Pointer(pMem2)), *(*float64)(unsafe.Pointer(pMem1)))
			} else {
				return -int32(1)
			}
		}
		return +libc.Int32FromInt32(1)
	}
	/* If one value is a string and the other is a blob, the string is less.
	 ** If both are strings, compare using the collating functions.
	 */
	if combined_flags&int32(MEM_Str) != 0 {
		if f1&int32(MEM_Str) == 0 {
			return int32(1)
		}
		if f2&int32(MEM_Str) == 0 {
			return -int32(1)
		}
		/* The collation sequence must be defined at this point, even if
		 ** the user deletes the collation sequence after the vdbe program is
		 ** compiled (this was not always the case).
		 */
		if pColl != 0 {
			return _vdbeCompareMemString(tls, pMem1, pMem2, pColl, uintptr(0))
		}
		/* If a NULL pointer was passed as the collate function, fall through
		 ** to the blob case and use memcmp().  */
	}
	/* Both values must be blobs.  Compare using memcmp().  */
	return _sqlite3BlobCompare(tls, pMem1, pMem2)
}

// C documentation
//
//	/*
//	** Invoke sqlite3AtoF() on the text value of pMem.  Write the
//	** translation of the text input into *pValue.
//	**
//	** The caller must ensure that pMem->db!=0 and that pMem is in
//	** mode MEM_Str or MEM_Blob.
//	**
//	** Result code invariants:
//	**
//	**    rc==0         =>   ERROR: Input string not well-formed, or OOM
//	**    rc<0          =>   Some prefix of the input is well-formed
//	**    rc>0          =>   All of the input is well-formed
//	**    (rc&2)==0     =>   The number is expressed as an integer, with no
//	**                       decimal point or eNNN suffix.
//	*/
func _sqlite3MemRealValueRC(tls *libc.TLS, pMem uintptr, pValue uintptr) (r int32) {
	if (*TMem)(unsafe.Pointer(pMem)).Fz == uintptr(0) {
		**(**float64)(__ccgo_up(pValue)) = float64(0)
		return 0
	} else {
		if int32((*TMem)(unsafe.Pointer(pMem)).Fenc) == int32(SQLITE_UTF8) && (int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Term) != 0 || _sqlite3VdbeMemZeroTerminateIfAble(tls, pMem) != 0) {
			return _sqlite3AtoF(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, pValue)
		} else {
			if (*TMem)(unsafe.Pointer(pMem)).Fn == 0 {
				**(**float64)(__ccgo_up(pValue)) = float64(0)
				return 0
			} else {
				return _sqlite3MemRealValueRCSlowPath(tls, pMem, pValue)
			}
		}
	}
	return r
}

// C documentation
//
//	/*
//	** This routine implements the uncommon and slower path for
//	** sqlite3MemRealValueRC() that has to deal with input strings
//	** that are not UTF8 or that are not zero-terminated.  It is
//	** broken out into a separate no-inline routine so that the
//	** main sqlite3MemRealValueRC() routine can avoid unnecessary
//	** stack pushes.
//	**
//	** A text->float translation of pMem->z is written into *pValue.
//	**
//	** Result code invariants:
//	**
//	**    rc==0         =>   ERROR: Input string not well-formed, or OOM
//	**    rc<0          =>   Some prefix of the input is well-formed
//	**    rc>0          =>   All of the input is well-formed
//	**    (rc&2)==0     =>   The number is expressed as an integer, with no
//	**                       decimal point or eNNN suffix.
//	*/
func _sqlite3MemRealValueRCSlowPath(tls *libc.TLS, pMem uintptr, pValue uintptr) (r int32) {
	var i, j, n, rc, v2 int32
	var z, zCopy, zCopy1 uintptr
	_, _, _, _, _, _, _, _ = i, j, n, rc, z, zCopy, zCopy1, v2
	rc = SQLITE_OK
	**(**float64)(__ccgo_up(pValue)) = float64(0)
	if int32((*TMem)(unsafe.Pointer(pMem)).Fenc) == int32(SQLITE_UTF8) {
		zCopy = _sqlite3DbStrNDup(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz, uint64((*TMem)(unsafe.Pointer(pMem)).Fn))
		if zCopy != 0 {
			rc = _sqlite3AtoF(tls, zCopy, pValue)
			_sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, zCopy)
		}
		return rc
	} else {
		n = (*TMem)(unsafe.Pointer(pMem)).Fn & ^libc.Int32FromInt32(1)
		zCopy1 = _sqlite3DbMallocRaw(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, uint64(n/int32(2)+int32(2)))
		if zCopy1 != 0 {
			z = (*TMem)(unsafe.Pointer(pMem)).Fz
			if int32((*TMem)(unsafe.Pointer(pMem)).Fenc) == int32(SQLITE_UTF16LE) {
				v2 = libc.Int32FromInt32(0)
				j = v2
				i = v2
				for {
					if !(i < n-int32(1)) {
						break
					}
					**(**int8)(__ccgo_up(zCopy1 + uintptr(j))) = **(**int8)(__ccgo_up(z + uintptr(i)))
					if int32(**(**int8)(__ccgo_up(z + uintptr(i+int32(1))))) != 0 {
						break
					}
					goto _1
				_1:
					;
					i = i + int32(2)
					j = j + 1
				}
			} else {
				v2 = libc.Int32FromInt32(0)
				j = v2
				i = v2
				for {
					if !(i < n-int32(1)) {
						break
					}
					if int32(**(**int8)(__ccgo_up(z + uintptr(i)))) != 0 {
						break
					}
					**(**int8)(__ccgo_up(zCopy1 + uintptr(j))) = **(**int8)(__ccgo_up(z + uintptr(i+int32(1))))
					goto _3
				_3:
					;
					i = i + int32(2)
					j = j + 1
				}
			}
			**(**int8)(__ccgo_up(zCopy1 + uintptr(j))) = 0
			rc = _sqlite3AtoF(tls, zCopy1, pValue)
			if i < n {
				rc = -int32(100)
			}
			_sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, zCopy1)
		}
		return rc
	}
	return r
}

func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) {
	return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+27553)
}

// C documentation
//
//	/*
//	** Open the sqlite_schema table stored in database number iDb for
//	** writing. The table is opened using cursor 0.
//	*/
func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) {
	var v uintptr
	_ = v
	v = _sqlite3GetVdbe(tls, p)
	_sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+7501)
	_sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5))
	if (*TParse)(unsafe.Pointer(p)).FnTab == 0 {
		(*TParse)(unsafe.Pointer(p)).FnTab = int32(1)
	}
}

// C documentation
//
//	/*
//	** Generate code that will
//	**
//	**   (1) acquire a lock for table pTab then
//	**   (2) open pTab as cursor iCur.
//	**
//	** If pTab is a WITHOUT ROWID table, then it is the PRIMARY KEY index
//	** for that table that is actually opened.
//	*/
func _sqlite3OpenTable(tls *libc.TLS, pParse uintptr, iCur int32, iDb int32, pTab uintptr, opcode int32) {
	var pPk, v uintptr
	var v1 int32
	_, _, _ = pPk, v, v1
	v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
	if !((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FnoSharedCache != 0) {
		if opcode == int32(OP_OpenWrite) {
			v1 = int32(1)
		} else {
			v1 = 0
		}
		_sqlite3TableLock(tls, pParse, iDb, (*TTable)(unsafe.Pointer(pTab)).Ftnum, uint8(v1), (*TTable)(unsafe.Pointer(pTab)).FzName)
	}
	if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) {
		_sqlite3VdbeAddOp4Int(tls, v, opcode, iCur, int32((*TTable)(unsafe.Pointer(pTab)).Ftnum), iDb, int32((*TTable)(unsafe.Pointer(pTab)).FnNVCol))
	} else {
		pPk = _sqlite3PrimaryKeyIndex(tls, pTab)
		_sqlite3VdbeAddOp3(tls, v, opcode, iCur, int32((*TIndex)(unsafe.Pointer(pPk)).Ftnum), iDb)
		_sqlite3VdbeSetP4KeyInfo(tls, pParse, pPk)
	}
}

func _sqlite3OsOpenMalloc(tls *libc.TLS, pVfs uintptr, zFile uintptr, ppFile uintptr, flags int32, pOutFlags uintptr) (r int32) {
	var pFile uintptr
	var rc int32
	_, _ = pFile, rc
	pFile = _sqlite3MallocZero(tls, uint64((*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile))
	if pFile != 0 {
		rc = _sqlite3OsOpen(tls, pVfs, zFile, pFile, flags, pOutFlags)
		if rc != SQLITE_OK {
			Xsqlite3_free(tls, pFile)
			**(**uintptr)(__ccgo_up(ppFile)) = uintptr(0)
		} else {
			**(**uintptr)(__ccgo_up(ppFile)) = pFile
		}
	} else {
		**(**uintptr)(__ccgo_up(ppFile)) = uintptr(0)
		rc = int32(SQLITE_NOMEM)
	}
	return rc
}

// C documentation
//
//	/* Create a TK_IS or TK_ISNOT operator, perhaps optimized to
//	  ** TK_ISNULL or TK_NOTNULL or TK_TRUEFALSE. */
func _sqlite3PExprIs(tls *libc.TLS, pParse uintptr, op int32, pLeft uintptr, pRight uintptr) (r uintptr) {
	var v1 int32
	_ = v1
	if pRight != 0 && int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_NULL) {
		_sqlite3ExprDeferredDelete(tls, pParse, pRight)
		if op == int32(TK_IS) {
			v1 = int32(TK_ISNULL)
		} else {
			v1 = int32(TK_NOTNULL)
		}
		return _sqlite3PExprIsNull(tls, pParse, v1, pLeft)
	}
	return _sqlite3PExpr(tls, pParse, op, pLeft, pRight)
}

// C documentation
//
//	/* Create a TK_ISNULL or TK_NOTNULL expression, perhaps optimized to
//	  ** to TK_TRUEFALSE, if possible */
func _sqlite3PExprIsNull(tls *libc.TLS, pParse uintptr, op int32, pLeft uintptr) (r uintptr) {
	var p uintptr
	_ = p
	p = pLeft
	for int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_UPLUS) || int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_UMINUS) {
		p = (*TExpr)(unsafe.Pointer(p)).FpLeft
	}
	switch int32((*TExpr)(unsafe.Pointer(p)).Fop) {
	case int32(TK_INTEGER):
		fallthrough
	case int32(TK_STRING):
		fallthrough
	case int32(TK_FLOAT):
		fallthrough
	case int32(TK_BLOB):
		_sqlite3ExprDeferredDelete(tls, pParse, pLeft)
		return _sqlite3ExprInt32(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, libc.BoolInt32(op == int32(TK_NOTNULL)))
	default:
		break
	}
	return _sqlite3PExpr(tls, pParse, op, pLeft, uintptr(0))
}

// C documentation
//
//	/*
//	** Begin a write-transaction on the specified pager object. If a
//	** write-transaction has already been opened, this function is a no-op.
//	**
//	** If the exFlag argument is false, then acquire at least a RESERVED
//	** lock on the database file. If exFlag is true, then acquire at least
//	** an EXCLUSIVE lock. If such a lock is already held, no locking
//	** functions need be called.
//	**
//	** If the subjInMemory argument is non-zero, then any sub-journal opened
//	** within this transaction will be opened as an in-memory file. This
//	** has no effect if the sub-journal is already opened (as it may be when
//	** running in exclusive mode) or if the transaction does not require a
//	** sub-journal. If the subjInMemory argument is zero, then any required
//	** sub-journal is implemented in-memory if pPager is an in-memory database,
//	** or using a temporary file otherwise.
//	*/
func _sqlite3PagerBegin(tls *libc.TLS, pPager uintptr, exFlag int32, subjInMemory int32) (r int32) {
	var rc int32
	_ = rc
	rc = SQLITE_OK
	if (*TPager)(unsafe.Pointer(pPager)).FerrCode != 0 {
		return (*TPager)(unsafe.Pointer(pPager)).FerrCode
	}
	(*TPager)(unsafe.Pointer(pPager)).FsubjInMemory = uint8(subjInMemory)
	if int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_READER) {
		if (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
			/* If the pager is configured to use locking_mode=exclusive, and an
			 ** exclusive lock on the database is not already held, obtain it now.
			 */
			if (*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0 && _sqlite3WalExclusiveMode(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, -int32(1)) != 0 {
				rc = _pagerLockDb(tls, pPager, int32(EXCLUSIVE_LOCK))
				if rc != SQLITE_OK {
					return rc
				}
				_sqlite3WalExclusiveMode(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, int32(1))
			}
			/* Grab the write lock on the log file. If successful, upgrade to
			 ** PAGER_RESERVED state. Otherwise, return an error code to the caller.
			 ** The busy-handler is not invoked if another connection already
			 ** holds the write-lock. If possible, the upper layer will call it.
			 */
			rc = _sqlite3WalBeginWriteTransaction(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal)
		} else {
			/* Obtain a RESERVED lock on the database file. If the exFlag parameter
			 ** is true, then immediately upgrade this to an EXCLUSIVE lock. The
			 ** busy-handler callback can be used when upgrading to the EXCLUSIVE
			 ** lock, but not when obtaining the RESERVED lock.
			 */
			rc = _pagerLockDb(tls, pPager, int32(RESERVED_LOCK))
			if rc == SQLITE_OK && exFlag != 0 {
				rc = _pager_wait_on_lock(tls, pPager, int32(EXCLUSIVE_LOCK))
			}
		}
		if rc == SQLITE_OK {
			/* Change to WRITER_LOCKED state.
			 **
			 ** WAL mode sets Pager.eState to PAGER_WRITER_LOCKED or CACHEMOD
			 ** when it has an open transaction, but never to DBMOD or FINISHED.
			 ** This is because in those states the code to roll back savepoint
			 ** transactions may copy data from the sub-journal into the database
			 ** file as well as into the page cache. Which would be incorrect in
			 ** WAL mode.
			 */
			(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_WRITER_LOCKED)
			(*TPager)(unsafe.Pointer(pPager)).FdbHintSize = (*TPager)(unsafe.Pointer(pPager)).FdbSize
			(*TPager)(unsafe.Pointer(pPager)).FdbFileSize = (*TPager)(unsafe.Pointer(pPager)).FdbSize
			(*TPager)(unsafe.Pointer(pPager)).FdbOrigSize = (*TPager)(unsafe.Pointer(pPager)).FdbSize
			(*TPager)(unsafe.Pointer(pPager)).FjournalOff = 0
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** This function is called when the user invokes "PRAGMA wal_checkpoint",
//	** "PRAGMA wal_blocking_checkpoint" or calls the sqlite3_wal_checkpoint()
//	** or wal_blocking_checkpoint() API functions.
//	**
//	** Parameter eMode is one of SQLITE_CHECKPOINT_PASSIVE, FULL or RESTART.
//	*/
func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode int32, pnLog uintptr, pnCkpt uintptr) (r int32) {
	var rc int32
	var v1 uintptr
	_, _ = rc, v1
	rc = SQLITE_OK
	if (*TPager)(unsafe.Pointer(pPager)).FpWal == uintptr(0) && int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) == int32(PAGER_JOURNALMODE_WAL) {
		/* This only happens when a database file is zero bytes in size opened and
		 ** then "PRAGMA journal_mode=WAL" is run and then sqlite3_wal_checkpoint()
		 ** is invoked without any intervening transactions.  We need to start
		 ** a transaction to initialize pWal.  The PRAGMA table_list statement is
		 ** used for this since it starts transactions on every database file,
		 ** including all ATTACHed databases.  This seems expensive for a single
		 ** sqlite3_wal_checkpoint() call, but it happens very rarely.
		 ** https://sqlite.org/forum/forumpost/fd0f19d229156939
		 */
		Xsqlite3_exec(tls, db, __ccgo_ts+5475, uintptr(0), uintptr(0), uintptr(0))
	}
	if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 {
		if eMode <= SQLITE_CHECKPOINT_PASSIVE {
			v1 = uintptr(0)
		} else {
			v1 = (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler
		}
		rc = _sqlite3WalCheckpoint(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, db, eMode, v1, (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg, int32((*TPager)(unsafe.Pointer(pPager)).FwalSyncFlags), int32((*TPager)(unsafe.Pointer(pPager)).FpageSize), (*TPager)(unsafe.Pointer(pPager)).FpTmpSpace, pnLog, pnCkpt)
	}
	return rc
}

// C documentation
//
//	/*
//	** Unless this is an in-memory or temporary database, clear the pager cache.
//	*/
func _sqlite3PagerClearCache(tls *libc.TLS, pPager uintptr) {
	if int32((*TPager)(unsafe.Pointer(pPager)).FtempFile) == 0 {
		_pager_reset(tls, pPager)
	}
}

// C documentation
//
//	/*
//	** Shutdown the page cache.  Free all memory and close all files.
//	**
//	** If a transaction was in progress when this routine is called, that
//	** transaction is rolled back.  All outstanding pages are invalidated
//	** and their memory is freed.  Any attempt to use a page associated
//	** with this page cache after this function returns will likely
//	** result in a coredump.
//	**
//	** This function always succeeds. If a transaction is active an attempt
//	** is made to roll it back. If an error occurs during the rollback
//	** a hot journal may be left in the filesystem but no error is returned
//	** to the caller.
//	*/
func _sqlite3PagerClose(tls *libc.TLS, pPager uintptr, db uintptr) (r int32) {
	var a, pTmp uintptr
	_, _ = a, pTmp
	pTmp = (*TPager)(unsafe.Pointer(pPager)).FpTmpSpace
	_sqlite3BeginBenignMalloc(tls)
	_pagerFreeMapHdrs(tls, pPager)
	/* pPager->errCode = 0; */
	(*TPager)(unsafe.Pointer(pPager)).FexclusiveMode = uint8(0)
	a = uintptr(0)
	if db != 0 && uint64(0) == (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NoCkptOnClose) && SQLITE_OK == _databaseIsUnmoved(tls, pPager) {
		a = pTmp
	}
	_sqlite3WalClose(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, db, int32((*TPager)(unsafe.Pointer(pPager)).FwalSyncFlags), int32((*TPager)(unsafe.Pointer(pPager)).FpageSize), a)
	(*TPager)(unsafe.Pointer(pPager)).FpWal = uintptr(0)
	_pager_reset(tls, pPager)
	if (*TPager)(unsafe.Pointer(pPager)).FmemDb != 0 {
		_pager_unlock(tls, pPager)
	} else {
		/* If it is open, sync the journal file before calling UnlockAndRollback.
		 ** If this is not done, then an unsynced portion of the open journal
		 ** file may be played back into the database. If a power failure occurs
		 ** while this is happening, the database could become corrupt.
		 **
		 ** If an error occurs while trying to sync the journal, shift the pager
		 ** into the ERROR state. This causes UnlockAndRollback to unlock the
		 ** database and close the journal file without attempting to roll it
		 ** back or finalize it. The next database user will have to do hot-journal
		 ** rollback before accessing the database file.
		 */
		if (*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) {
			_pager_error(tls, pPager, _pagerSyncHotJournal(tls, pPager))
		}
		_pagerUnlockAndRollback(tls, pPager)
	}
	_sqlite3EndBenignMalloc(tls)
	_sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd)
	_sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)
	_sqlite3PageFree(tls, pTmp)
	_sqlite3PcacheClose(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache)
	Xsqlite3_free(tls, pPager)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** This function is called to close the connection to the log file prior
//	** to switching from WAL to rollback mode.
//	**
//	** Before closing the log file, this function attempts to take an
//	** EXCLUSIVE lock on the database file. If this cannot be obtained, an
//	** error (SQLITE_BUSY) is returned and the log connection is not closed.
//	** If successful, the EXCLUSIVE lock is not released before returning.
//	*/
func _sqlite3PagerCloseWal(tls *libc.TLS, pPager uintptr, db uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* logexists at bp+0 */ int32
	_ = rc
	rc = SQLITE_OK
	/* If the log file is not already open, but does exist in the file-system,
	 ** it may need to be checkpointed before the connection can switch to
	 ** rollback mode. Open it now so this can happen.
	 */
	if !((*TPager)(unsafe.Pointer(pPager)).FpWal != 0) {
		**(**int32)(__ccgo_up(bp)) = 0
		rc = _pagerLockDb(tls, pPager, int32(SHARED_LOCK))
		if rc == SQLITE_OK {
			rc = _sqlite3OsAccess(tls, (*TPager)(unsafe.Pointer(pPager)).FpVfs, (*TPager)(unsafe.Pointer(pPager)).FzWal, SQLITE_ACCESS_EXISTS, bp)
		}
		if rc == SQLITE_OK && **(**int32)(__ccgo_up(bp)) != 0 {
			rc = _pagerOpenWal(tls, pPager)
		}
	}
	/* Checkpoint and close the log. Because an EXCLUSIVE lock is held on
	 ** the database file, the log and log-summary files will be deleted.
	 */
	if rc == SQLITE_OK && (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 {
		rc = _pagerExclusiveLock(tls, pPager)
		if rc == SQLITE_OK {
			rc = _sqlite3WalClose(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, db, int32((*TPager)(unsafe.Pointer(pPager)).FwalSyncFlags), int32((*TPager)(unsafe.Pointer(pPager)).FpageSize), (*TPager)(unsafe.Pointer(pPager)).FpTmpSpace)
			(*TPager)(unsafe.Pointer(pPager)).FpWal = uintptr(0)
			_pagerFixMaplimit(tls, pPager)
			if rc != 0 && !((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0) {
				_pagerUnlockDb(tls, pPager, int32(SHARED_LOCK))
			}
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Sync the database file for the pager pPager. zSuper points to the name
//	** of a super-journal file that should be written into the individual
//	** journal file. zSuper may be NULL, which is interpreted as no
//	** super-journal (a single database transaction).
//	**
//	** This routine ensures that:
//	**
//	**   * The database file change-counter is updated,
//	**   * the journal is synced (unless the atomic-write optimization is used),
//	**   * all dirty pages are written to the database file,
//	**   * the database file is truncated (if required), and
//	**   * the database file synced.
//	**
//	** The only thing that remains to commit the transaction is to finalize
//	** (delete, truncate or zero the first part of) the journal file (or
//	** delete the super-journal file if specified).
//	**
//	** Note that if zSuper==NULL, this does not overwrite a previous value
//	** passed to an sqlite3PagerCommitPhaseOne() call.
//	**
//	** If the final parameter - noSync - is true, then the database file itself
//	** is not synced. The caller must call sqlite3PagerSync() directly to
//	** sync the database file before calling CommitPhaseTwo() to delete the
//	** journal file in this case.
//	*/
func _sqlite3PagerCommitPhaseOne(tls *libc.TLS, pPager uintptr, zSuper uintptr, noSync int32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var nNew TPgno
	var pList uintptr
	var rc int32
	var _ /* pPageOne at bp+0 */ uintptr
	_, _, _ = nNew, pList, rc
	rc = SQLITE_OK /* Return code */
	/* If a prior error occurred, report that error again. */
	if (*TPager)(unsafe.Pointer(pPager)).FerrCode != 0 {
		return (*TPager)(unsafe.Pointer(pPager)).FerrCode
	}
	/* Provide the ability to easily simulate an I/O error during testing */
	if _sqlite3FaultSim(tls, int32(400)) != 0 {
		return int32(SQLITE_IOERR)
	}
	/* If no database changes have been made, return early. */
	if int32((*TPager)(unsafe.Pointer(pPager)).FeState) < int32(PAGER_WRITER_CACHEMOD) {
		return SQLITE_OK
	}
	if 0 == _pagerFlushOnCommit(tls, pPager, int32(1)) {
		/* If this is an in-memory db, or no pages have been written to, or this
		 ** function has already been called, it is mostly a no-op.  However, any
		 ** backup in progress needs to be restarted.  */
		_sqlite3BackupRestart(tls, (*TPager)(unsafe.Pointer(pPager)).FpBackup)
	} else {
		if (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
			**(**uintptr)(__ccgo_up(bp)) = uintptr(0)
			pList = _sqlite3PcacheDirtyList(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache)
			if pList == uintptr(0) {
				/* Must have at least one page for the WAL commit flag.
				 ** Ticket [2d1a5c67dfc2363e44f29d9bbd57f] 2011-05-18 */
				rc = _sqlite3PagerGet(tls, pPager, uint32(1), bp, 0)
				pList = **(**uintptr)(__ccgo_up(bp))
				(*TPgHdr)(unsafe.Pointer(pList)).FpDirty = uintptr(0)
			}
			if pList != 0 {
				rc = _pagerWalFrames(tls, pPager, pList, (*TPager)(unsafe.Pointer(pPager)).FdbSize, int32(1))
			}
			_sqlite3PagerUnref(tls, **(**uintptr)(__ccgo_up(bp)))
			if rc == SQLITE_OK {
				_sqlite3PcacheCleanAll(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache)
			}
		} else {
			/* The bBatch boolean is true if the batch-atomic-write commit method
			 ** should be used.  No rollback journal is created if batch-atomic-write
			 ** is enabled.
			 */
			rc = _pager_incr_changecounter(tls, pPager, 0)
			if rc != SQLITE_OK {
				goto commit_phase_one_exit
			}
			/* Write the super-journal name into the journal file. If a
			 ** super-journal file name has already been written to the journal file,
			 ** or if zSuper is NULL (no super-journal), then this call is a no-op.
			 */
			rc = _writeSuperJournal(tls, pPager, zSuper)
			if rc != SQLITE_OK {
				goto commit_phase_one_exit
			}
			/* Sync the journal file and write all dirty pages to the database.
			 ** If the atomic-update optimization is being used, this sync will not
			 ** create the journal file or perform any real IO.
			 **
			 ** Because the change-counter page was just modified, unless the
			 ** atomic-update optimization is used it is almost certain that the
			 ** journal requires a sync here. However, in locking_mode=exclusive
			 ** on a system under memory pressure it is just possible that this is
			 ** not the case. In this case it is likely enough that the redundant
			 ** xSync() call will be changed to a no-op by the OS anyhow.
			 */
			rc = _syncJournal(tls, pPager, 0)
			if rc != SQLITE_OK {
				goto commit_phase_one_exit
			}
			pList = _sqlite3PcacheDirtyList(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache)
			if true {
				rc = _pager_write_pagelist(tls, pPager, pList)
			}
			if rc != SQLITE_OK {
				goto commit_phase_one_exit
			}
			_sqlite3PcacheCleanAll(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache)
			/* If the file on disk is smaller than the database image, use
			 ** pager_truncate to grow the file here. This can happen if the database
			 ** image was extended as part of the current transaction and then the
			 ** last page in the db image moved to the free-list. In this case the
			 ** last page is never written out to disk, leaving the database file
			 ** undersized. Fix this now if it is the case.  */
			if (*TPager)(unsafe.Pointer(pPager)).FdbSize > (*TPager)(unsafe.Pointer(pPager)).FdbFileSize {
				nNew = (*TPager)(unsafe.Pointer(pPager)).FdbSize - libc.BoolUint32((*TPager)(unsafe.Pointer(pPager)).FdbSize == (*TPager)(unsafe.Pointer(pPager)).FlckPgno)
				rc = _pager_truncate(tls, pPager, nNew)
				if rc != SQLITE_OK {
					goto commit_phase_one_exit
				}
			}
			/* Finally, sync the database file. */
			if !(noSync != 0) {
				rc = _sqlite3PagerSync(tls, pPager, zSuper)
			}
		}
	}
	goto commit_phase_one_exit
commit_phase_one_exit:
	;
	if rc == SQLITE_OK && !((*TPager)(unsafe.Pointer(pPager)).FpWal != libc.UintptrFromInt32(0)) {
		(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_WRITER_FINISHED)
	}
	return rc
}

// C documentation
//
//	/*
//	** When this function is called, the database file has been completely
//	** updated to reflect the changes made by the current transaction and
//	** synced to disk. The journal file still exists in the file-system
//	** though, and if a failure occurs at this point it will eventually
//	** be used as a hot-journal and the current transaction rolled back.
//	**
//	** This function finalizes the journal file, either by deleting,
//	** truncating or partially zeroing it, so that it cannot be used
//	** for hot-journal rollback. Once this is done the transaction is
//	** irrevocably committed.
//	**
//	** If an error occurs, an IO error code is returned and the pager
//	** moves into the error state. Otherwise, SQLITE_OK is returned.
//	*/
func _sqlite3PagerCommitPhaseTwo(tls *libc.TLS, pPager uintptr) (r int32) {
	var rc int32
	_ = rc
	rc = SQLITE_OK /* Return code */
	/* This routine should not be called if a prior error has occurred.
	 ** But if (due to a coding error elsewhere in the system) it does get
	 ** called, just return the same error code without doing anything. */
	if (*TPager)(unsafe.Pointer(pPager)).FerrCode != 0 {
		return (*TPager)(unsafe.Pointer(pPager)).FerrCode
	}
	(*TPager)(unsafe.Pointer(pPager)).FiDataVersion = (*TPager)(unsafe.Pointer(pPager)).FiDataVersion + 1
	/* An optimization. If the database was not actually modified during
	 ** this transaction, the pager is running in exclusive-mode and is
	 ** using persistent journals, then this function is a no-op.
	 **
	 ** The start of the journal file currently contains a single journal
	 ** header with the nRec field set to 0. If such a journal is used as
	 ** a hot-journal during hot-journal rollback, 0 changes will be made
	 ** to the database file. So there is no need to zero the journal
	 ** header. Since the pager is in exclusive mode, there is no need
	 ** to drop any locks either.
	 */
	if int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_WRITER_LOCKED) && (*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0 && int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) == int32(PAGER_JOURNALMODE_PERSIST) {
		(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_READER)
		return SQLITE_OK
	}
	rc = _pager_end_transaction(tls, pPager, int32((*TPager)(unsafe.Pointer(pPager)).FsetSuper), int32(1))
	return _pager_error(tls, pPager, rc)
}

// C documentation
//
//	/*
//	** Return the current journal mode.
//	*/
func _sqlite3PagerGetJournalMode(tls *libc.TLS, pPager uintptr) (r int32) {
	return int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode)
}

// C documentation
//
//	/*
//	** Get/set the locking-mode for this pager. Parameter eMode must be one
//	** of PAGER_LOCKINGMODE_QUERY, PAGER_LOCKINGMODE_NORMAL or
//	** PAGER_LOCKINGMODE_EXCLUSIVE. If the parameter is not _QUERY, then
//	** the locking-mode is set to the value specified.
//	**
//	** The returned value is either PAGER_LOCKINGMODE_NORMAL or
//	** PAGER_LOCKINGMODE_EXCLUSIVE, indicating the current (possibly updated)
//	** locking-mode.
//	*/
func _sqlite3PagerLockingMode(tls *libc.TLS, pPager uintptr, eMode int32) (r int32) {
	if eMode >= 0 && !((*TPager)(unsafe.Pointer(pPager)).FtempFile != 0) && !(_sqlite3WalHeapMemory(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal) != 0) {
		(*TPager)(unsafe.Pointer(pPager)).FexclusiveMode = uint8(eMode)
	}
	return int32((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode)
}

// C documentation
//
//	/*
//	** Return TRUE if the pager is in a state where it is OK to change the
//	** journalmode.  Journalmode changes can only happen when the database
//	** is unmodified.
//	*/
func _sqlite3PagerOkToChangeJournalMode(tls *libc.TLS, pPager uintptr) (r int32) {
	if int32((*TPager)(unsafe.Pointer(pPager)).FeState) >= int32(PAGER_WRITER_CACHEMOD) {
		return 0
	}
	if (*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) && (*TPager)(unsafe.Pointer(pPager)).FjournalOff > 0 {
		return 0
	}
	return int32(1)
}

// C documentation
//
//	/*
//	** This function may only be called when a read-transaction is open on
//	** the pager. It returns the total number of pages in the database.
//	**
//	** However, if the file is between 1 and <page-size> bytes in size, then
//	** this is considered a 1 page file.
//	*/
func _sqlite3PagerPagecount(tls *libc.TLS, pPager uintptr, pnPage uintptr) {
	**(**int32)(__ccgo_up(pnPage)) = int32((*TPager)(unsafe.Pointer(pPager)).FdbSize)
}

// C documentation
//
//	/*
//	** If a write transaction is open, then all changes made within the
//	** transaction are reverted and the current write-transaction is closed.
//	** The pager falls back to PAGER_READER state if successful, or PAGER_ERROR
//	** state if an error occurs.
//	**
//	** If the pager is already in PAGER_ERROR state when this function is called,
//	** it returns Pager.errCode immediately. No work is performed in this case.
//	**
//	** Otherwise, in rollback mode, this function performs two functions:
//	**
//	**   1) It rolls back the journal file, restoring all database file and
//	**      in-memory cache pages to the state they were in when the transaction
//	**      was opened, and
//	**
//	**   2) It finalizes the journal file, so that it is not used for hot
//	**      rollback at any point in the future.
//	**
//	** Finalization of the journal file (task 2) is only performed if the
//	** rollback is successful.
//	**
//	** In WAL mode, all cache-entries containing data modified within the
//	** current transaction are either expelled from the cache or reverted to
//	** their pre-transaction state by re-reading data from the database or
//	** WAL files. The WAL transaction is then closed.
//	*/
func _sqlite3PagerRollback(tls *libc.TLS, pPager uintptr) (r int32) {
	var eState, rc, rc2 int32
	_, _, _ = eState, rc, rc2
	rc = SQLITE_OK /* Return code */
	/* PagerRollback() is a no-op if called in READER or OPEN state. If
	 ** the pager is already in the ERROR state, the rollback is not
	 ** attempted here. Instead, the error code is returned to the caller.
	 */
	if int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_ERROR) {
		return (*TPager)(unsafe.Pointer(pPager)).FerrCode
	}
	if int32((*TPager)(unsafe.Pointer(pPager)).FeState) <= int32(PAGER_READER) {
		return SQLITE_OK
	}
	if (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
		rc = _sqlite3PagerSavepoint(tls, pPager, int32(SAVEPOINT_ROLLBACK), -int32(1))
		rc2 = _pager_end_transaction(tls, pPager, int32((*TPager)(unsafe.Pointer(pPager)).FsetSuper), 0)
		if rc == SQLITE_OK {
			rc = rc2
		}
	} else {
		if !((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != libc.UintptrFromInt32(0)) || int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_WRITER_LOCKED) {
			eState = int32((*TPager)(unsafe.Pointer(pPager)).FeState)
			rc = _pager_end_transaction(tls, pPager, 0, 0)
			if !((*TPager)(unsafe.Pointer(pPager)).FmemDb != 0) && eState > int32(PAGER_WRITER_LOCKED) {
				/* This can happen using journal_mode=off. Move the pager to the error
				 ** state to indicate that the contents of the cache may not be trusted.
				 ** Any active readers will get SQLITE_ABORT.
				 */
				(*TPager)(unsafe.Pointer(pPager)).FerrCode = int32(SQLITE_ABORT)
				(*TPager)(unsafe.Pointer(pPager)).FeState = uint8(PAGER_ERROR)
				_setGetterMethod(tls, pPager)
				return rc
			}
		} else {
			rc = _pager_playback(tls, pPager, 0)
		}
	}
	/* If an error occurs during a ROLLBACK, we can no longer trust the pager
	 ** cache. So call pager_error() on the way out to make any error persistent.
	 */
	return _pager_error(tls, pPager, rc)
}

// C documentation
//
//	/*
//	** Set the journal-mode for this pager. Parameter eMode must be one of:
//	**
//	**    PAGER_JOURNALMODE_DELETE
//	**    PAGER_JOURNALMODE_TRUNCATE
//	**    PAGER_JOURNALMODE_PERSIST
//	**    PAGER_JOURNALMODE_OFF
//	**    PAGER_JOURNALMODE_MEMORY
//	**    PAGER_JOURNALMODE_WAL
//	**
//	** The journalmode is set to the value specified if the change is allowed.
//	** The change may be disallowed for the following reasons:
//	**
//	**   *  An in-memory database can only have its journal_mode set to _OFF
//	**      or _MEMORY.
//	**
//	**   *  Temporary databases cannot have _WAL journalmode.
//	**
//	** The returned indicate the current (possibly updated) journal-mode.
//	*/
func _sqlite3PagerSetJournalMode(tls *libc.TLS, pPager uintptr, eMode int32) (r int32) {
	var eOld Tu8
	var rc, state int32
	_, _, _ = eOld, rc, state
	eOld = (*TPager)(unsafe.Pointer(pPager)).FjournalMode /* Prior journalmode */
	/* The eMode parameter is always valid */
	/* This routine is only called from the OP_JournalMode opcode, and
	 ** the logic there will never allow a temporary file to be changed
	 ** to WAL mode.
	 */
	/* Do allow the journalmode of an in-memory database to be set to
	 ** anything other than MEMORY or OFF
	 */
	if (*TPager)(unsafe.Pointer(pPager)).FmemDb != 0 {
		if eMode != int32(PAGER_JOURNALMODE_MEMORY) && eMode != int32(PAGER_JOURNALMODE_OFF) {
			eMode = int32(eOld)
		}
	}
	if eMode != int32(eOld) {
		/* Change the journal mode. */
		(*TPager)(unsafe.Pointer(pPager)).FjournalMode = uint8(eMode)
		/* When transitioning from TRUNCATE or PERSIST to any other journal
		 ** mode except WAL, unless the pager is in locking_mode=exclusive mode,
		 ** delete the journal file.
		 */
		if !((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0) && int32(eOld)&int32(5) == int32(1) && eMode&int32(1) == 0 {
			/* In this case we would like to delete the journal file. If it is
			 ** not possible, then that is not a problem. Deleting the journal file
			 ** here is an optimization only.
			 **
			 ** Before deleting the journal file, obtain a RESERVED lock on the
			 ** database file. This ensures that the journal file is not deleted
			 ** while it is in use by some other client.
			 */
			_sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd)
			if int32((*TPager)(unsafe.Pointer(pPager)).FeLock) >= int32(RESERVED_LOCK) {
				_sqlite3OsDelete(tls, (*TPager)(unsafe.Pointer(pPager)).FpVfs, (*TPager)(unsafe.Pointer(pPager)).FzJournal, 0)
			} else {
				rc = SQLITE_OK
				state = int32((*TPager)(unsafe.Pointer(pPager)).FeState)
				if state == PAGER_OPEN {
					rc = _sqlite3PagerSharedLock(tls, pPager)
				}
				if int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_READER) {
					rc = _pagerLockDb(tls, pPager, int32(RESERVED_LOCK))
				}
				if rc == SQLITE_OK {
					_sqlite3OsDelete(tls, (*TPager)(unsafe.Pointer(pPager)).FpVfs, (*TPager)(unsafe.Pointer(pPager)).FzJournal, 0)
				}
				if rc == SQLITE_OK && state == int32(PAGER_READER) {
					_pagerUnlockDb(tls, pPager, int32(SHARED_LOCK))
				} else {
					if state == PAGER_OPEN {
						_pager_unlock(tls, pPager)
					}
				}
			}
		} else {
			if eMode == int32(PAGER_JOURNALMODE_OFF) || eMode == int32(PAGER_JOURNALMODE_MEMORY) {
				_sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd)
			}
		}
	}
	/* Return the new journal mode */
	return int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode)
}

// C documentation
//
//	/*
//	** Sync the database file to disk. This is a no-op for in-memory databases
//	** or pages with the Pager.noSync flag set.
//	**
//	** If successful, or if called on a pager for which it is a no-op, this
//	** function returns SQLITE_OK. Otherwise, an IO error code is returned.
//	*/
func _sqlite3PagerSync(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) {
	var pArg uintptr
	var rc int32
	_, _ = pArg, rc
	rc = SQLITE_OK
	pArg = zSuper
	rc = _sqlite3OsFileControl(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_SYNC), pArg)
	if rc == int32(SQLITE_NOTFOUND) {
		rc = SQLITE_OK
	}
	if rc == SQLITE_OK && !((*TPager)(unsafe.Pointer(pPager)).FnoSync != 0) {
		rc = _sqlite3OsSync(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32((*TPager)(unsafe.Pointer(pPager)).FsyncFlags))
	}
	return rc
}

// C documentation
//
//	/*
//	** Release a page reference.
//	**
//	** The sqlite3PagerUnref() and sqlite3PagerUnrefNotNull() may only be used
//	** if we know that the page being released is not the last reference to page1.
//	** The btree layer always holds page1 open until the end, so these first
//	** two routines can be used to release any page other than BtShared.pPage1.
//	** The assert() at tag-20230419-2 proves that this constraint is always
//	** honored.
//	**
//	** Use sqlite3PagerUnrefPageOne() to release page1.  This latter routine
//	** checks the total number of outstanding pages and if the number of
//	** pages reaches zero it drops the database lock.
//	*/
func _sqlite3PagerUnrefNotNull(tls *libc.TLS, pPg uintptr) {
	if int32((*TDbPage)(unsafe.Pointer(pPg)).Fflags)&int32(PGHDR_MMAP) != 0 {
		/* Page1 is never memory mapped */
		_pagerReleaseMapPage(tls, pPg)
	} else {
		_sqlite3PcacheRelease(tls, pPg)
	}
	/* Do not use this routine to release the last reference to page1 */
	/* tag-20230419-2 */
}

// C documentation
//
//	/*
//	** Mark a data page as writeable. This routine must be called before
//	** making changes to a page. The caller must check the return value
//	** of this function and be careful not to change any page data unless
//	** this routine returns SQLITE_OK.
//	**
//	** The difference between this function and pager_write() is that this
//	** function also deals with the special case where 2 or more pages
//	** fit on a single disk sector. In this case all co-resident pages
//	** must have been written to the journal file before returning.
//	**
//	** If an error occurs, SQLITE_NOMEM or an IO error code is returned
//	** as appropriate. Otherwise, SQLITE_OK.
//	*/
func _sqlite3PagerWrite(tls *libc.TLS, pPg uintptr) (r int32) {
	var pPager uintptr
	_ = pPager
	pPager = (*TPgHdr)(unsafe.Pointer(pPg)).FpPager
	if int32((*TPgHdr)(unsafe.Pointer(pPg)).Fflags)&int32(PGHDR_WRITEABLE) != 0 && (*TPager)(unsafe.Pointer(pPager)).FdbSize >= (*TPgHdr)(unsafe.Pointer(pPg)).Fpgno {
		if (*TPager)(unsafe.Pointer(pPager)).FnSavepoint != 0 {
			return _subjournalPageIfRequired(tls, pPg)
		}
		return SQLITE_OK
	} else {
		if (*TPager)(unsafe.Pointer(pPager)).FerrCode != 0 {
			return (*TPager)(unsafe.Pointer(pPager)).FerrCode
		} else {
			if (*TPager)(unsafe.Pointer(pPager)).FsectorSize > uint32((*TPager)(unsafe.Pointer(pPager)).FpageSize) {
				return _pagerWriteLargeSector(tls, pPg)
			} else {
				return _pager_write(tls, pPg)
			}
		}
	}
	return r
}

/*
** Return TRUE if the page given in the argument was previously passed
** to sqlite3PagerWrite().  In other words, return TRUE if it is ok
** to change the content of the page.
 */

// C documentation
//
//	/*
//	** Free all memory allocations in the pParse object
//	*/
func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) {
	var db, pCleanup uintptr
	var v1 int32
	_, _, _ = db, pCleanup, v1
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	if (*TParse)(unsafe.Pointer(pParse)).FaTableLock != 0 {
		_sqlite3DbNNFreeNN(tls, db, (*TParse)(unsafe.Pointer(pParse)).FaTableLock)
	}
	for (*TParse)(unsafe.Pointer(pParse)).FpCleanup != 0 {
		pCleanup = (*TParse)(unsafe.Pointer(pParse)).FpCleanup
		(*TParse)(unsafe.Pointer(pParse)).FpCleanup = (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext
		(*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup})))(tls, db, (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr)
		_sqlite3DbNNFreeNN(tls, db, pCleanup)
	}
	if (*TParse)(unsafe.Pointer(pParse)).FaLabel != 0 {
		_sqlite3DbNNFreeNN(tls, db, (*TParse)(unsafe.Pointer(pParse)).FaLabel)
	}
	if (*TParse)(unsafe.Pointer(pParse)).FpConstExpr != 0 {
		_sqlite3ExprListDelete(tls, db, (*TParse)(unsafe.Pointer(pParse)).FpConstExpr)
	}
	(*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable -= uint32((*TParse)(unsafe.Pointer(pParse)).FdisableLookaside)
	if (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable != 0 {
		v1 = 0
	} else {
		v1 = int32((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue)
	}
	(*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(v1)
	(*Tsqlite3)(unsafe.Pointer(db)).FpParse = (*TParse)(unsafe.Pointer(pParse)).FpOuterParse
}

// C documentation
//
//	/*
//	** Return the fallback token corresponding to canonical token iToken, or
//	** 0 if iToken has no fallback.
//	*/
func _sqlite3ParserFallback(tls *libc.TLS, iToken int32) (r int32) {
	return int32(_yyFallback[iToken])
}

/************** End of parse.c ***********************************************/
/************** Begin file tokenize.c ****************************************/
/*
** 2001 September 15
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** An tokenizer for SQL
**
** This file contains C code that splits an SQL input string up into
** individual tokens and sends those tokens one-by-one over to the
** parser for analysis.
 */
/* #include "sqliteInt.h" */
/* #include <stdlib.h> */

/* Character classes for tokenizing
**
** In the sqlite3GetToken() function, a switch() on aiClass[c] is implemented
** using a lookup table, whereas a switch() directly on c uses a binary search.
** The lookup table is much faster.  To maximize speed, and to ensure that
** a lookup table is used, all of the classes need to be small integers and
** all of them need to be used within the switch.
 */

// C documentation
//
//	/*
//	** Drop a page from the cache. There must be exactly one reference to the
//	** page. This function deletes that reference, so after it returns the
//	** page pointed to by p is invalid.
//	*/
func _sqlite3PcacheDrop(tls *libc.TLS, p uintptr) {
	if int32((*TPgHdr)(unsafe.Pointer(p)).Fflags)&int32(PGHDR_DIRTY) != 0 {
		_pcacheManageDirtyList(tls, p, uint8(PCACHE_DIRTYLIST_REMOVE))
	}
	(*TPCache)(unsafe.Pointer((*TPgHdr)(unsafe.Pointer(p)).FpCache)).FnRefSum = (*TPCache)(unsafe.Pointer((*TPgHdr)(unsafe.Pointer(p)).FpCache)).FnRefSum - 1
	(*(*func(*libc.TLS, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fpcache2.FxUnpin})))(tls, (*TPCache)(unsafe.Pointer((*TPgHdr)(unsafe.Pointer(p)).FpCache)).FpCache, (*TPgHdr)(unsafe.Pointer(p)).FpPage, int32(1))
}

// C documentation
//
//	/*
//	** Try to obtain a page from the cache.
//	**
//	** This routine returns a pointer to an sqlite3_pcache_page object if
//	** such an object is already in cache, or if a new one is created.
//	** This routine returns a NULL pointer if the object was not in cache
//	** and could not be created.
//	**
//	** The createFlags should be 0 to check for existing pages and should
//	** be 3 (not 1, but 3) to try to create a new page.
//	**
//	** If the createFlag is 0, then NULL is always returned if the page
//	** is not already in the cache.  If createFlag is 1, then a new page
//	** is created only if that can be done without spilling dirty pages
//	** and without exceeding the cache size limit.
//	**
//	** The caller needs to invoke sqlite3PcacheFetchFinish() to properly
//	** initialize the sqlite3_pcache_page object and convert it into a
//	** PgHdr object.  The sqlite3PcacheFetch() and sqlite3PcacheFetchFinish()
//	** routines are split this way for performance reasons. When separated
//	** they can both (usually) operate without having to push values to
//	** the stack on entry and pop them back off on exit, which saves a
//	** lot of pushing and popping.
//	*/
func _sqlite3PcacheFetch(tls *libc.TLS, pCache uintptr, pgno TPgno, createFlag int32) (r uintptr) {
	var eCreate int32
	var pRes uintptr
	_, _ = eCreate, pRes
	/* eCreate defines what to do if the page does not exist.
	 **    0     Do not allocate a new page.  (createFlag==0)
	 **    1     Allocate a new page if doing so is inexpensive.
	 **          (createFlag==1 AND bPurgeable AND pDirty)
	 **    2     Allocate a new page even it doing so is difficult.
	 **          (createFlag==1 AND !(bPurgeable AND pDirty)
	 */
	eCreate = createFlag & int32((*TPCache)(unsafe.Pointer(pCache)).FeCreate)
	pRes = (*(*func(*libc.TLS, uintptr, uint32, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fpcache2.FxFetch})))(tls, (*TPCache)(unsafe.Pointer(pCache)).FpCache, pgno, eCreate)
	return pRes
}

// C documentation
//
//	/*
//	** If the sqlite3PcacheFetch() routine is unable to allocate a new
//	** page because no clean pages are available for reuse and the cache
//	** size limit has been reached, then this routine can be invoked to
//	** try harder to allocate a page.  This routine might invoke the stress
//	** callback to spill dirty pages to the journal.  It will then try to
//	** allocate the new page and will only fail to allocate a new page on
//	** an OOM error.
//	**
//	** This routine should be invoked only after sqlite3PcacheFetch() fails.
//	*/
func _sqlite3PcacheFetchStress(tls *libc.TLS, pCache uintptr, pgno TPgno, ppPage uintptr) (r int32) {
	var pPg uintptr
	var rc, v3 int32
	_, _, _ = pPg, rc, v3
	if int32((*TPCache)(unsafe.Pointer(pCache)).FeCreate) == int32(2) {
		return 0
	}
	if _sqlite3PcachePagecount(tls, pCache) > (*TPCache)(unsafe.Pointer(pCache)).FszSpill {
		/* Find a dirty page to write-out and recycle. First try to find a
		 ** page that does not require a journal-sync (one with PGHDR_NEED_SYNC
		 ** cleared), but if that is not possible settle for any other
		 ** unreferenced dirty page.
		 **
		 ** If the LRU page in the dirty list that has a clear PGHDR_NEED_SYNC
		 ** flag is currently referenced, then the following may leave pSynced
		 ** set incorrectly (pointing to other than the LRU page with NEED_SYNC
		 ** cleared). This is Ok, as pSynced is just an optimization.  */
		pPg = (*TPCache)(unsafe.Pointer(pCache)).FpSynced
		for {
			if !(pPg != 0 && ((*TPgHdr)(unsafe.Pointer(pPg)).FnRef != 0 || int32((*TPgHdr)(unsafe.Pointer(pPg)).Fflags)&int32(PGHDR_NEED_SYNC) != 0)) {
				break
			}
			goto _1
		_1:
			;
			pPg = (*TPgHdr)(unsafe.Pointer(pPg)).FpDirtyPrev
		}
		(*TPCache)(unsafe.Pointer(pCache)).FpSynced = pPg
		if !(pPg != 0) {
			pPg = (*TPCache)(unsafe.Pointer(pCache)).FpDirtyTail
			for {
				if !(pPg != 0 && (*TPgHdr)(unsafe.Pointer(pPg)).FnRef != 0) {
					break
				}
				goto _2
			_2:
				;
				pPg = (*TPgHdr)(unsafe.Pointer(pPg)).FpDirtyPrev
			}
		}
		if pPg != 0 {
			rc = (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPCache)(unsafe.Pointer(pCache)).FxStress})))(tls, (*TPCache)(unsafe.Pointer(pCache)).FpStress, pPg)
			if rc != SQLITE_OK && rc != int32(SQLITE_BUSY) {
				return rc
			}
		}
	}
	**(**uintptr)(__ccgo_up(ppPage)) = (*(*func(*libc.TLS, uintptr, uint32, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fpcache2.FxFetch})))(tls, (*TPCache)(unsafe.Pointer(pCache)).FpCache, pgno, int32(2))
	if **(**uintptr)(__ccgo_up(ppPage)) == uintptr(0) {
		v3 = int32(SQLITE_NOMEM)
	} else {
		v3 = SQLITE_OK
	}
	return v3
}

// C documentation
//
//	/*
//	** Change the page number of page p to newPgno.
//	*/
func _sqlite3PcacheMove(tls *libc.TLS, p uintptr, newPgno TPgno) {
	var pCache, pOther, pXPage uintptr
	_, _, _ = pCache, pOther, pXPage
	pCache = (*TPgHdr)(unsafe.Pointer(p)).FpCache
	pOther = (*(*func(*libc.TLS, uintptr, uint32, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fpcache2.FxFetch})))(tls, (*TPCache)(unsafe.Pointer(pCache)).FpCache, newPgno, 0)
	if pOther != 0 {
		pXPage = (*Tsqlite3_pcache_page)(unsafe.Pointer(pOther)).FpExtra
		(*TPgHdr)(unsafe.Pointer(pXPage)).FnRef = (*TPgHdr)(unsafe.Pointer(pXPage)).FnRef + 1
		(*TPCache)(unsafe.Pointer(pCache)).FnRefSum = (*TPCache)(unsafe.Pointer(pCache)).FnRefSum + 1
		_sqlite3PcacheDrop(tls, pXPage)
	}
	(*(*func(*libc.TLS, uintptr, uintptr, uint32, uint32))(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fpcache2.FxRekey})))(tls, (*TPCache)(unsafe.Pointer(pCache)).FpCache, (*TPgHdr)(unsafe.Pointer(p)).FpPage, (*TPgHdr)(unsafe.Pointer(p)).Fpgno, newPgno)
	(*TPgHdr)(unsafe.Pointer(p)).Fpgno = newPgno
	if int32((*TPgHdr)(unsafe.Pointer(p)).Fflags)&int32(PGHDR_DIRTY) != 0 && int32((*TPgHdr)(unsafe.Pointer(p)).Fflags)&int32(PGHDR_NEED_SYNC) != 0 {
		_pcacheManageDirtyList(tls, p, uint8(PCACHE_DIRTYLIST_FRONT))
	}
}

// C documentation
//
//	/*
//	** This function is called to free superfluous dynamically allocated memory
//	** held by the pager system. Memory in use by any SQLite pager allocated
//	** by the current thread may be sqlite3_free()ed.
//	**
//	** nReq is the number of bytes of memory required. Once this much has
//	** been released, the function returns. The return value is the total number
//	** of bytes of memory released.
//	*/
func _sqlite3PcacheReleaseMemory(tls *libc.TLS, nReq int32) (r int32) {
	var nFree int32
	var p, v1 uintptr
	var v2 bool
	_, _, _, _ = nFree, p, v1, v2
	nFree = 0
	if _sqlite3Config.FpPage == uintptr(0) {
		Xsqlite3_mutex_enter(tls, (*TPGroup)(unsafe.Pointer(uintptr(unsafe.Pointer(&_pcache1_g)))).Fmutex)
		for {
			if v2 = nReq < 0 || nFree < nReq; v2 {
				v1 = _pcache1_g.Fgrp.Flru.FpLruPrev
				p = v1
			}
			if !(v2 && v1 != uintptr(0) && int32((*TPgHdr1)(unsafe.Pointer(p)).FisAnchor) == 0) {
				break
			}
			nFree = nFree + _pcache1MemSize(tls, (*TPgHdr1)(unsafe.Pointer(p)).Fpage.FpBuf)
			_pcache1PinPage(tls, p)
			_pcache1RemoveFromHash(tls, p, int32(1))
		}
		Xsqlite3_mutex_leave(tls, (*TPGroup)(unsafe.Pointer(uintptr(unsafe.Pointer(&_pcache1_g)))).Fmutex)
	}
	return nFree
}

/************** End of pcache1.c *********************************************/
/************** Begin file rowset.c ******************************************/
/*
** 2008 December 3
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
**
** This module implements an object we call a "RowSet".
**
** The RowSet object is a collection of rowids.  Rowids
** are inserted into the RowSet in an arbitrary order.  Inserts
** can be intermixed with tests to see if a given rowid has been
** previously inserted into the RowSet.
**
** After all inserts are finished, it is possible to extract the
** elements of the RowSet in sorted order.  Once this extraction
** process has started, no new elements may be inserted.
**
** Hence, the primitive operations for a RowSet are:
**
**    CREATE
**    INSERT
**    TEST
**    SMALLEST
**    DESTROY
**
** The CREATE and DESTROY primitives are the constructor and destructor,
** obviously.  The INSERT primitive adds a new element to the RowSet.
** TEST checks to see if an element is already in the RowSet.  SMALLEST
** extracts the least value from the RowSet.
**
** The INSERT primitive might allocate additional memory.  Memory is
** allocated in chunks so most INSERTs do no allocation.  There is an
** upper bound on the size of allocated memory.  No memory is freed
** until DESTROY.
**
** The TEST primitive includes a "batch" number.  The TEST primitive
** will only see elements that were inserted before the last change
** in the batch number.  In other words, if an INSERT occurs between
** two TESTs where the TESTs have the same batch number, then the
** value added by the INSERT will not be visible to the second TEST.
** The initial batch number is zero, so if the very first TEST contains
** a non-zero batch number, it will see all prior INSERTs.
**
** No INSERTs may occurs after a SMALLEST.  An assertion will fail if
** that is attempted.
**
** The cost of an INSERT is roughly constant.  (Sometimes new memory
** has to be allocated on an INSERT.)  The cost of a TEST with a new
** batch number is O(NlogN) where N is the number of elements in the RowSet.
** The cost of a TEST using the same batch number is O(logN).  The cost
** of the first SMALLEST is O(NlogN).  Second and subsequent SMALLEST
** primitives are constant time.  The cost of DESTROY is O(N).
**
** TEST and SMALLEST may not be used by the same RowSet.  This used to
** be possible, but the feature was not used, so it was removed in order
** to simplify the code.
 */
/* #include "sqliteInt.h" */

/*
** Target size for allocation chunks.
 */

/*
** The number of rowset entries per allocation chunk.
 */

// C documentation
//
//	/*
//	** Check to see if zTabName is really the name of a pragma.  If it is,
//	** then register an eponymous virtual table for that pragma and return
//	** a pointer to the Module object for the new virtual table.
//	*/
func _sqlite3PragmaVtabRegister(tls *libc.TLS, db uintptr, zName uintptr) (r uintptr) {
	var pName uintptr
	_ = pName
	pName = _pragmaLocate(tls, zName+uintptr(7))
	if pName == uintptr(0) {
		return uintptr(0)
	}
	if int32((*TPragmaName)(unsafe.Pointer(pName)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_Result0)|libc.Int32FromInt32(PragFlg_Result1)) == 0 {
		return uintptr(0)
	}
	return _sqlite3VtabCreateModule(tls, db, zName, uintptr(unsafe.Pointer(&_pragmaVtabModule)), pName, uintptr(0))
}

/************** End of pragma.c **********************************************/
/************** Begin file prepare.c *****************************************/
/*
** 2005 May 25
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains the implementation of the sqlite3_prepare()
** interface, and routines that contribute to loading the database schema
** from disk.
 */
/* #include "sqliteInt.h" */

// C documentation
//
//	/*
//	** Return the preferred table name for system tables.  Translate legacy
//	** names into the new preferred names, as appropriate.
//	*/
func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) {
	if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7973, int32(7)) == 0 {
		if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7501+7) == 0 {
			return __ccgo_ts + 8019
		}
		if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7981+7) == 0 {
			return __ccgo_ts + 8000
		}
	}
	return zName
}

// C documentation
//
//	/*
//	** Append to pStr text that is the SQL literal representation of the
//	** value contained in pValue.
//	*/
func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr, bEscape int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var i int32
	var nBlob Ti64
	var zArg, zBlob, zText, v2 uintptr
	_, _, _, _, _, _ = i, nBlob, zArg, zBlob, zText, v2
	/* As currently implemented, the string must be initially empty.
	 ** we might relax this requirement in the future, but that will
	 ** require enhancements to the implementation. */
	switch Xsqlite3_value_type(tls, pValue) {
	case int32(SQLITE_FLOAT):
		/*    ,---  Show infinity as 9.0e+999
		 **    |
		 **    | ,--- 17 precision guarantees round-trip
		 **    v v                                       */
		Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+17781, libc.VaList(bp+8, Xsqlite3_value_double(tls, pValue)))
	case int32(SQLITE_INTEGER):
		Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1472, libc.VaList(bp+8, Xsqlite3_value_int64(tls, pValue)))
	case int32(SQLITE_BLOB):
		zBlob = Xsqlite3_value_blob(tls, pValue)
		nBlob = int64(Xsqlite3_value_bytes(tls, pValue))
		/* No encoding change */
		_sqlite3StrAccumEnlarge(tls, pStr, nBlob*int64(2)+int64(4))
		if int32((*TStrAccum)(unsafe.Pointer(pStr)).FaccError) == 0 {
			zText = (*TStrAccum)(unsafe.Pointer(pStr)).FzText
			i = 0
			for {
				if !(int64(i) < nBlob) {
					break
				}
				**(**int8)(__ccgo_up(zText + uintptr(i*int32(2)+int32(2)))) = _hexdigits[int32(**(**int8)(__ccgo_up(zBlob + uintptr(i))))>>int32(4)&int32(0x0F)]
				**(**int8)(__ccgo_up(zText + uintptr(i*int32(2)+int32(3)))) = _hexdigits[int32(**(**int8)(__ccgo_up(zBlob + uintptr(i))))&int32(0x0F)]
				goto _1
			_1:
				;
				i = i + 1
			}
			**(**int8)(__ccgo_up(zText + uintptr(nBlob*int64(2)+int64(2)))) = int8('\'')
			**(**int8)(__ccgo_up(zText + uintptr(nBlob*int64(2)+int64(3)))) = int8('\000')
			**(**int8)(__ccgo_up(zText)) = int8('X')
			**(**int8)(__ccgo_up(zText + 1)) = int8('\'')
			(*TStrAccum)(unsafe.Pointer(pStr)).FnChar = uint32(nBlob*int64(2) + int64(3))
		}
	case int32(SQLITE_TEXT):
		zArg = Xsqlite3_value_text(tls, pValue)
		if bEscape != 0 {
			v2 = __ccgo_ts + 17789
		} else {
			v2 = __ccgo_ts + 13142
		}
		Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, zArg))
	default:
		Xsqlite3_str_append(tls, pStr, __ccgo_ts+1712, int32(4))
		break
	}
}

// C documentation
//
//	/*
//	** Change the size of an existing memory allocation
//	*/
func _sqlite3Realloc(tls *libc.TLS, pOld uintptr, nBytes Tu64) (r uintptr) {
	var nDiff, nNew, nOld int32
	var nUsed, v1 Tsqlite3_int64
	var pNew uintptr
	var v2 bool
	_, _, _, _, _, _, _ = nDiff, nNew, nOld, nUsed, pNew, v1, v2
	if pOld == uintptr(0) {
		return _sqlite3Malloc(tls, nBytes) /* IMP: R-04300-56712 */
	}
	if nBytes == uint64(0) {
		Xsqlite3_free(tls, pOld) /* IMP: R-26507-47431 */
		return uintptr(0)
	}
	if nBytes > uint64(SQLITE_MAX_ALLOCATION_SIZE) {
		return uintptr(0)
	}
	nOld = _sqlite3MallocSize(tls, pOld)
	/* IMPLEMENTATION-OF: R-46199-30249 SQLite guarantees that the second
	 ** argument to xRealloc is always a value returned by a prior call to
	 ** xRoundup. */
	nNew = (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxRoundup})))(tls, int32(nBytes))
	if nOld == nNew {
		pNew = pOld
	} else {
		if _sqlite3Config.FbMemstat != 0 {
			Xsqlite3_mutex_enter(tls, _mem0.Fmutex)
			_sqlite3StatusHighwater(tls, int32(SQLITE_STATUS_MALLOC_SIZE), int32(nBytes))
			nDiff = nNew - nOld
			if v2 = nDiff > 0; v2 {
				v1 = _sqlite3StatusValue(tls, SQLITE_STATUS_MEMORY_USED)
				nUsed = v1
			}
			if v2 && v1 >= _mem0.FalarmThreshold-int64(nDiff) {
				_sqlite3MallocAlarm(tls, nDiff)
				if _mem0.FhardLimit > 0 && nUsed >= _mem0.FhardLimit-int64(nDiff) {
					Xsqlite3_mutex_leave(tls, _mem0.Fmutex)
					return uintptr(0)
				}
			}
			pNew = (*(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxRealloc})))(tls, pOld, nNew)
			if pNew == uintptr(0) && _mem0.FalarmThreshold > 0 {
				_sqlite3MallocAlarm(tls, int32(nBytes))
				pNew = (*(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxRealloc})))(tls, pOld, nNew)
			}
			if pNew != 0 {
				nNew = _sqlite3MallocSize(tls, pNew)
				_sqlite3StatusUp(tls, SQLITE_STATUS_MEMORY_USED, nNew-nOld)
			}
			Xsqlite3_mutex_leave(tls, _mem0.Fmutex)
		} else {
			pNew = (*(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxRealloc})))(tls, pOld, nNew)
		}
	}
	/* IMP: R-11148-40995 */
	return pNew
}

// C documentation
//
//	/*
//	** Re-register the built-in LIKE functions.  The caseSensitive
//	** parameter determines whether or not the LIKE operator is case
//	** sensitive.
//	*/
func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int32) {
	var flags, nArg int32
	var pDef, pInfo uintptr
	_, _, _, _ = flags, nArg, pDef, pInfo
	if caseSensitive != 0 {
		pInfo = uintptr(unsafe.Pointer(&_likeInfoAlt))
		flags = libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)
	} else {
		pInfo = uintptr(unsafe.Pointer(&_likeInfoNorm))
		flags = int32(SQLITE_FUNC_LIKE)
	}
	nArg = int32(2)
	for {
		if !(nArg <= int32(3)) {
			break
		}
		_sqlite3CreateFunc(tls, db, __ccgo_ts+17827, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
		pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+17827, nArg, uint8(SQLITE_UTF8), uint8(0))
		/* The sqlite3CreateFunc() call above cannot fail
		 ** because the "like" SQL-function already exists */
		**(**Tu32)(__ccgo_up(pDef + 4)) |= uint32(flags)
		**(**Tu32)(__ccgo_up(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE))
		goto _1
	_1:
		;
		nArg = nArg + 1
	}
}

// C documentation
//
//	/*
//	** This routine does per-connection function registration.  Most
//	** of the built-in functions above are part of the global function set.
//	** This routine only deals with those that are not global.
//	*/
func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) {
	var rc int32
	_ = rc
	rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+17821, int32(2))
	if rc == int32(SQLITE_NOMEM) {
		_sqlite3OomFault(tls, db)
	}
}

// C documentation
//
//	/*
//	** The following routines are substitutes for constants SQLITE_CORRUPT,
//	** SQLITE_MISUSE, SQLITE_CANTOPEN, SQLITE_NOMEM and possibly other error
//	** constants.  They serve two purposes:
//	**
//	**   1.  Serve as a convenient place to set a breakpoint in a debugger
//	**       to detect when version error conditions occurs.
//	**
//	**   2.  Invoke sqlite3_log() to provide the source code location where
//	**       a low-level error is first detected.
//	*/
func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	Xsqlite3_log(tls, iErr, __ccgo_ts+27508, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls)))
	return iErr
}

// C documentation
//
//	/*
//	** Use the content of the StrAccum passed as the second argument
//	** as the result of an SQL function.
//	*/
func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) {
	if (*TStrAccum)(unsafe.Pointer(p)).FaccError != 0 {
		Xsqlite3_result_error_code(tls, pCtx, int32((*TStrAccum)(unsafe.Pointer(p)).FaccError))
		Xsqlite3_str_reset(tls, p)
	} else {
		if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 {
			Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3RowSetClear))
		} else {
			Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1711, 0, libc.UintptrFromInt32(0))
			Xsqlite3_str_reset(tls, p)
		}
	}
}

// C documentation
//
//	/*
//	** Register the r-tree module with database handle db. This creates the
//	** virtual table module "rtree" and the debugging/analysis scalar
//	** function "rtreenode".
//	*/
func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) {
	var c, c1 uintptr
	var rc, utf8 int32
	_, _, _, _ = c, c1, rc, utf8
	utf8 = int32(SQLITE_UTF8)
	rc = Xsqlite3_create_function(tls, db, __ccgo_ts+31466, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0))
	if rc == SQLITE_OK {
		rc = Xsqlite3_create_function(tls, db, __ccgo_ts+31476, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0))
	}
	if rc == SQLITE_OK {
		rc = Xsqlite3_create_function(tls, db, __ccgo_ts+31487, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0))
	}
	if rc == SQLITE_OK {
		c = libc.UintptrFromInt32(RTREE_COORD_REAL32)
		rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+31210, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0))
	}
	if rc == SQLITE_OK {
		c1 = libc.UintptrFromInt32(RTREE_COORD_INT32)
		rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+31498, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0))
	}
	if rc == SQLITE_OK {
		rc = _sqlite3_geopoly_init(tls, db)
	}
	return rc
}

// C documentation
//
//	/*
//	** Check to make sure we have a valid db pointer.  This test is not
//	** foolproof but it does provide some measure of protection against
//	** misuse of the interface such as passing in db pointers that are
//	** NULL or which have been previously closed.  If this routine returns
//	** 1 it means that the db pointer is valid and 0 if it should not be
//	** dereferenced for any reason.  The calling function should invoke
//	** SQLITE_MISUSE immediately.
//	**
//	** sqlite3SafetyCheckOk() requires that the db pointer be valid for
//	** use.  sqlite3SafetyCheckSickOrOk() allows a db pointer that failed to
//	** open properly and is not fit for general use but which can be
//	** used as an argument to sqlite3_errmsg() or sqlite3_close().
//	*/
func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) {
	var eOpenState Tu8
	_ = eOpenState
	if db == uintptr(0) {
		_logBadConnection(tls, __ccgo_ts+1712)
		return 0
	}
	eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState
	if int32(eOpenState) != int32(SQLITE_STATE_OPEN) {
		if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 {
			_logBadConnection(tls, __ccgo_ts+1904)
		}
		return 0
	} else {
		return int32(1)
	}
	return r
}

func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) {
	var eOpenState Tu8
	_ = eOpenState
	eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState
	if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) {
		_logBadConnection(tls, __ccgo_ts+1913)
		return 0
	} else {
		return int32(1)
	}
	return r
}

// C documentation
//
//	/*
//	** Initialize a SelectDest structure.
//	*/
func _sqlite3SelectDestInit(tls *libc.TLS, pDest uintptr, eDest int32, iParm int32) {
	(*TSelectDest)(unsafe.Pointer(pDest)).FeDest = uint8(eDest)
	(*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm = iParm
	(*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm2 = 0
	(*TSelectDest)(unsafe.Pointer(pDest)).FzAffSdst = uintptr(0)
	(*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = 0
	(*TSelectDest)(unsafe.Pointer(pDest)).FnSdst = 0
}

// C documentation
//
//	/*
//	** Name of the connection operator, used for error messages.
//	*/
func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) {
	var z uintptr
	_ = z
	switch id {
	case int32(TK_ALL):
		z = __ccgo_ts + 21719
	case int32(TK_INTERSECT):
		z = __ccgo_ts + 21729
	case int32(TK_EXCEPT):
		z = __ccgo_ts + 21739
	default:
		z = __ccgo_ts + 21746
		break
	}
	return z
}

// C documentation
//
//	/*
//	** Error message for when two or more terms of a compound select have different
//	** size result sets.
//	*/
func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22098, 0)
	} else {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22144, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop))))
	}
}

// C documentation
//
//	/*
//	** Extract the iCol-th column from the nRec-byte record in pRec.  Write
//	** the column value into *ppVal.  If *ppVal is initially NULL then a new
//	** sqlite3_value object is allocated.
//	**
//	** If *ppVal is initially NULL then the caller is responsible for
//	** ensuring that the value written into *ppVal is eventually freed.
//	**
//	** If the buffer does not contain a well-formed record, this routine may
//	** read several bytes past the end of the buffer. Callers must therefore
//	** ensure that any buffer which may contain a corrupt record is padded
//	** with at least 8 bytes of addressable memory.
//	*/
func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iCol int32, ppVal uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var a, pMem, v4 uintptr
	var i, v1 int32
	var iField Ti64
	var iHdr, szField Tu32
	var _ /* nHdr at bp+4 */ Tu32
	var _ /* t at bp+0 */ Tu32
	_, _, _, _, _, _, _, _ = a, i, iField, iHdr, pMem, szField, v1, v4
	**(**Tu32)(__ccgo_up(bp)) = uint32(0)  /* Next unread data byte */
	szField = uint32(0)                    /* Column index */
	a = pRec                               /* Typecast byte array */
	pMem = **(**uintptr)(__ccgo_up(ppVal)) /* Write result into this Mem object */
	if int32(**(**Tu8)(__ccgo_up(a))) < int32(libc.Uint8FromInt32(0x80)) {
		**(**Tu32)(__ccgo_up(bp + 4)) = uint32(**(**Tu8)(__ccgo_up(a)))
		v1 = libc.Int32FromInt32(1)
	} else {
		v1 = int32(_sqlite3GetVarint32(tls, a, bp+4))
	}
	iHdr = uint32(uint8(v1))
	if **(**Tu32)(__ccgo_up(bp + 4)) > uint32(nRec) || iHdr >= **(**Tu32)(__ccgo_up(bp + 4)) {
		return _sqlite3CorruptError(tls, int32(87782))
	}
	iField = int64(**(**Tu32)(__ccgo_up(bp + 4)))
	i = 0
	for {
		if !(i <= iCol) {
			break
		}
		if int32(**(**Tu8)(__ccgo_up(a + uintptr(iHdr)))) < int32(libc.Uint8FromInt32(0x80)) {
			**(**Tu32)(__ccgo_up(bp)) = uint32(**(**Tu8)(__ccgo_up(a + uintptr(iHdr))))
			v1 = libc.Int32FromInt32(1)
		} else {
			v1 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp))
		}
		iHdr = iHdr + uint32(uint8(v1))
		if iHdr > **(**Tu32)(__ccgo_up(bp + 4)) {
			return _sqlite3CorruptError(tls, int32(87788))
		}
		szField = _sqlite3VdbeSerialTypeLen(tls, **(**Tu32)(__ccgo_up(bp)))
		iField = iField + int64(szField)
		goto _2
	_2:
		;
		i = i + 1
	}
	if iField > int64(nRec) {
		return _sqlite3CorruptError(tls, int32(87794))
	}
	if pMem == uintptr(0) {
		v4 = _sqlite3ValueNew(tls, db)
		**(**uintptr)(__ccgo_up(ppVal)) = v4
		pMem = v4
		if pMem == uintptr(0) {
			return int32(SQLITE_NOMEM)
		}
	}
	_sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), **(**Tu32)(__ccgo_up(bp)), pMem)
	(*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc
	return SQLITE_OK
}

var _sqlite3StdType = [6]uintptr{
	0: __ccgo_ts + 1172,
	1: __ccgo_ts + 1176,
	2: __ccgo_ts + 1181,
	3: __ccgo_ts + 1185,
	4: __ccgo_ts + 1193,
	5: __ccgo_ts + 1198,
}

/************** End of global.c **********************************************/
/************** Begin file status.c ******************************************/
/*
** 2008 June 18
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
**
** This module implements the sqlite3_status() interface and related
** functionality.
 */
/* #include "sqliteInt.h" */
/************** Include vdbeInt.h in the middle of status.c ******************/
/************** Begin file vdbeInt.h *****************************************/
/*
** 2003 September 6
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** This is the header file for information that is private to the
** VDBE.  This information used to all be at the top of the single
** source code file "vdbe.c".  When that file became too big (over
** 6000 lines long) it was split up into several smaller files and
** this header information was factored out.
 */

/*
** The maximum number of times that a statement will try to reparse
** itself before giving up and returning SQLITE_SCHEMA.
 */

/*
** VDBE_DISPLAY_P4 is true or false depending on whether or not the
** "explain" P4 display logic is enabled.
 */

func _sqlite3StrAccumEnlargeIfNeeded(tls *libc.TLS, p uintptr, N Ti64) (r int32) {
	if N+int64((*TStrAccum)(unsafe.Pointer(p)).FnChar) >= int64((*TStrAccum)(unsafe.Pointer(p)).FnAlloc) {
		_sqlite3StrAccumEnlarge(tls, p, N)
	}
	return int32((*TStrAccum)(unsafe.Pointer(p)).FaccError)
}

func _sqlite3StrAccumFinish(tls *libc.TLS, p uintptr) (r uintptr) {
	if (*TStrAccum)(unsafe.Pointer(p)).FzText != 0 {
		**(**int8)(__ccgo_up((*TStrAccum)(unsafe.Pointer(p)).FzText + uintptr((*TStrAccum)(unsafe.Pointer(p)).FnChar))) = 0
		if (*TStrAccum)(unsafe.Pointer(p)).FmxAlloc > uint32(0) && !(int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&libc.Int32FromInt32(SQLITE_PRINTF_MALLOCED) != libc.Int32FromInt32(0)) {
			return _strAccumFinishRealloc(tls, p)
		}
	}
	return (*TStrAccum)(unsafe.Pointer(p)).FzText
}

// C documentation
//
//	/*
//	** Initialize a string accumulator.
//	**
//	** p:     The accumulator to be initialized.
//	** db:    Pointer to a database connection.  May be NULL.  Lookaside
//	**        memory is used if not NULL. db->mallocFailed is set appropriately
//	**        when not NULL.
//	** zBase: An initial buffer.  May be NULL in which case the initial buffer
//	**        is malloced.
//	** n:     Size of zBase in bytes.  If total space requirements never exceed
//	**        n then no memory allocations ever occur.
//	** mx:    Maximum number of bytes to accumulate.  If mx==0 then no memory
//	**        allocations will ever occur.
//	*/
func _sqlite3StrAccumInit(tls *libc.TLS, p uintptr, db uintptr, zBase uintptr, n int32, mx int32) {
	(*TStrAccum)(unsafe.Pointer(p)).FzText = zBase
	(*TStrAccum)(unsafe.Pointer(p)).Fdb = db
	(*TStrAccum)(unsafe.Pointer(p)).FnAlloc = uint32(n)
	(*TStrAccum)(unsafe.Pointer(p)).FmxAlloc = uint32(mx)
	(*TStrAccum)(unsafe.Pointer(p)).FnChar = uint32(0)
	(*TStrAccum)(unsafe.Pointer(p)).FaccError = uint8(0)
	(*TStrAccum)(unsafe.Pointer(p)).FprintfFlags = uint8(0)
}

// C documentation
//
//	/*
//	** Set the StrAccum object to an error mode.
//	*/
func _sqlite3StrAccumSetError(tls *libc.TLS, p uintptr, eError Tu8) {
	(*TStrAccum)(unsafe.Pointer(p)).FaccError = eError
	if (*TStrAccum)(unsafe.Pointer(p)).FmxAlloc != 0 {
		Xsqlite3_str_reset(tls, p)
	}
	if int32(eError) == int32(SQLITE_TOOBIG) {
		_sqlite3ErrorToParser(tls, (*TStrAccum)(unsafe.Pointer(p)).Fdb, int32(eError))
	}
}

func _sqlite3StrICmp(tls *libc.TLS, zLeft uintptr, zRight uintptr) (r int32) {
	var a, b uintptr
	var c, x int32
	_, _, _, _ = a, b, c, x
	a = zLeft
	b = zRight
	for {
		c = int32(**(**uint8)(__ccgo_up(a)))
		x = int32(**(**uint8)(__ccgo_up(b)))
		if c == x {
			if c == 0 {
				break
			}
		} else {
			c = int32(_sqlite3UpperToLower[c]) - int32(_sqlite3UpperToLower[x])
			if c != 0 {
				break
			}
		}
		a = a + 1
		b = b + 1
		goto _1
	_1:
	}
	return c
}

// C documentation
//
//	/*
//	** Compute an 8-bit hash on a string that is insensitive to case differences
//	*/
func _sqlite3StrIHash(tls *libc.TLS, z uintptr) (r Tu8) {
	var h Tu8
	_ = h
	h = uint8(0)
	if z == uintptr(0) {
		return uint8(0)
	}
	for **(**int8)(__ccgo_up(z)) != 0 {
		h = uint8(int32(h) + int32(_sqlite3UpperToLower[uint8(**(**int8)(__ccgo_up(z)))]))
		z = z + 1
	}
	return h
}

// C documentation
//
//	/*
//	** Backwards Compatibility Hack:
//	**
//	** Historical versions of SQLite accepted strings as column names in
//	** indexes and PRIMARY KEY constraints and in UNIQUE constraints.  Example:
//	**
//	**     CREATE TABLE xyz(a,b,c,d,e,PRIMARY KEY('a'),UNIQUE('b','c' COLLATE trim)
//	**     CREATE INDEX abc ON xyz('c','d' DESC,'e' COLLATE nocase DESC);
//	**
//	** This is goofy.  But to preserve backwards compatibility we continue to
//	** accept it.  This routine does the necessary conversion.  It converts
//	** the expression given in its argument from a TK_STRING into a TK_ID
//	** if the expression is just a TK_STRING with an optional COLLATE clause.
//	** If the expression is anything other than TK_STRING, the expression is
//	** unchanged.
//	*/
func _sqlite3StringToId(tls *libc.TLS, p uintptr) {
	if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_STRING) {
		(*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_ID)
	} else {
		if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_COLLATE) && int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(p)).FpLeft)).Fop) == int32(TK_STRING) {
			(*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(p)).FpLeft)).Fop = uint8(TK_ID)
		}
	}
}

// C documentation
//
//	/*
//	** Compute a string length that is limited to what can be stored in
//	** lower 30 bits of a 32-bit signed integer.
//	**
//	** The value returned will never be negative.  Nor will it ever be greater
//	** than the actual length of the string.  For very long strings (greater
//	** than 1GiB) the value returned might be less than the true string length.
//	*/
func _sqlite3Strlen30(tls *libc.TLS, z uintptr) (r int32) {
	if z == uintptr(0) {
		return 0
	}
	return int32(0x3fffffff) & int32(libc.Xstrlen(tls, z))
}

// C documentation
//
//	/*
//	** Load the Parse object passed as the first argument with an error
//	** message of the form:
//	**
//	**   "sub-select returns N columns - expected M"
//	*/
func _sqlite3SubselectError(tls *libc.TLS, pParse uintptr, nActual int32, nExpect int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var zFmt uintptr
	_ = zFmt
	if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 {
		zFmt = __ccgo_ts + 9502
		_sqlite3ErrorMsg(tls, pParse, zFmt, libc.VaList(bp+8, nActual, nExpect))
	}
}

// C documentation
//
//	/*
//	** Convert an table column number into a index column number.  That is,
//	** for the column iCol in the table (as defined by the CREATE TABLE statement)
//	** find the (first) offset of that column in index pIdx.  Or return -1
//	** if column iCol is not used in index pIdx.
//	*/
func _sqlite3TableColumnToIndex(tls *libc.TLS, pIdx uintptr, iCol int32) (r int32) {
	var i int32
	var iCol16 Ti16
	_, _ = i, iCol16
	iCol16 = int16(iCol)
	i = 0
	for {
		if !(i < int32((*TIndex)(unsafe.Pointer(pIdx)).FnColumn)) {
			break
		}
		if int32(iCol16) == int32(**(**Ti16)(__ccgo_up((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) {
			return i
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	return -int32(1)
}

// C documentation
//
//	/*
//	** This function returns true if main-memory should be used instead of
//	** a temporary file for transient pager files and statement journals.
//	** The value returned depends on the value of db->temp_store (runtime
//	** parameter) and the compile time value of SQLITE_TEMP_STORE. The
//	** following table describes the relationship between these two values
//	** and this functions return value.
//	**
//	**   SQLITE_TEMP_STORE     db->temp_store     Location of temporary database
//	**   -----------------     --------------     ------------------------------
//	**   0                     any                file      (return 0)
//	**   1                     1                  file      (return 0)
//	**   1                     2                  memory    (return 1)
//	**   1                     0                  file      (return 0)
//	**   2                     1                  file      (return 0)
//	**   2                     2                  memory    (return 1)
//	**   2                     0                  memory    (return 1)
//	**   3                     any                memory    (return 1)
//	*/
func _sqlite3TempInMemory(tls *libc.TLS, db uintptr) (r int32) {
	return libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer(db)).Ftemp_store) == int32(2))
}

// C documentation
//
//	/* Get the results of the thread */
func _sqlite3ThreadJoin(tls *libc.TLS, p uintptr, ppOut uintptr) (r int32) {
	var bRc TBOOL
	var rc TDWORD
	var v1 int32
	_, _, _ = bRc, rc, v1
	if p == uintptr(0) {
		return int32(SQLITE_NOMEM)
	}
	if (*TSQLiteThread)(unsafe.Pointer(p)).FxTask == uintptr(0) {
		/* assert( p->id==GetCurrentThreadId() ); */
		rc = libc.Uint32FromInt32(0x00000000) + libc.Uint32FromInt32(0)
	} else {
		rc = _sqlite3Win32Wait(tls, (*TSQLiteThread)(unsafe.Pointer(p)).Ftid)
		bRc = libc.XCloseHandle(tls, (*TSQLiteThread)(unsafe.Pointer(p)).Ftid)
		_ = bRc /* Prevent warning when assert() is a no-op */
	}
	if rc == libc.Uint32FromInt32(0x00000000)+libc.Uint32FromInt32(0) {
		**(**uintptr)(__ccgo_up(ppOut)) = (*TSQLiteThread)(unsafe.Pointer(p)).FpResult
	}
	Xsqlite3_free(tls, p)
	if rc == libc.Uint32FromInt32(0x00000000)+libc.Uint32FromInt32(0) {
		v1 = SQLITE_OK
	} else {
		v1 = int32(SQLITE_ERROR)
	}
	return v1
}

/******************************** End Win32 Threads *************************/

/********************************* Single-Threaded **************************/
/****************************** End Single-Threaded *************************/

/************** End of threads.c *********************************************/
/************** Begin file utf.c *********************************************/
/*
** 2004 April 13
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains routines used to translate between UTF-8,
** UTF-16, UTF-16BE, and UTF-16LE.
**
** Notes on UTF-8:
**
**   Byte-0    Byte-1    Byte-2    Byte-3    Value
**  0xxxxxxx                                 00000000 00000000 0xxxxxxx
**  110yyyyy  10xxxxxx                       00000000 00000yyy yyxxxxxx
**  1110zzzz  10yyyyyy  10xxxxxx             00000000 zzzzyyyy yyxxxxxx
**  11110uuu  10uuzzzz  10yyyyyy  10xxxxxx   000uuuuu zzzzyyyy yyxxxxxx
**
**
** Notes on UTF-16:  (with wwww+1==uuuuu)
**
**      Word-0               Word-1          Value
**  110110ww wwzzzzyy   110111yy yyxxxxxx    000uuuuu zzzzyyyy yyxxxxxx
**  zzzzyyyy yyxxxxxx                        00000000 zzzzyyyy yyxxxxxx
**
**
** BOM or Byte Order Mark:
**     0xff 0xfe   little-endian utf-16 follows
**     0xfe 0xff   big-endian utf-16 follows
**
 */
/* #include "sqliteInt.h" */
/* #include <assert.h> */
/* #include "vdbeInt.h" */

// C documentation
//
//	/* Thread procedure Win32 compatibility shim */
func _sqlite3ThreadProc(tls *libc.TLS, pArg uintptr) (r uint32) {
	var p uintptr
	_ = p
	p = pArg
	(*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{(*TSQLiteThread)(unsafe.Pointer(p)).FxTask})))(tls, (*TSQLiteThread)(unsafe.Pointer(p)).FpIn)
	libc.X_endthreadex(tls, uint32(0))
	return uint32(0) /* NOT REACHED */
}

// C documentation
//
//	/*
//	** Generate a Token object from a string
//	*/
func _sqlite3TokenInit(tls *libc.TLS, p uintptr, z uintptr) {
	(*TToken)(unsafe.Pointer(p)).Fz = z
	(*TToken)(unsafe.Pointer(p)).Fn = uint32(_sqlite3Strlen30(tls, z))
}

/* Convenient short-hand */

// C documentation
//
//	/*
//	** Construct a trigger step that implements a DELETE statement and return
//	** a pointer to that trigger step.  The parser calls this routine when it
//	** sees a DELETE statement inside the body of a CREATE TRIGGER.
//	*/
func _sqlite3TriggerDeleteStep(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere uintptr, zStart uintptr, zEnd uintptr) (r uintptr) {
	var db, pTriggerStep uintptr
	_, _ = db, pTriggerStep
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	pTriggerStep = _triggerStepAllocate(tls, pParse, uint8(TK_DELETE), pTabList, zStart, zEnd)
	if pTriggerStep != 0 {
		if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) {
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpWhere = pWhere
			pWhere = uintptr(0)
		} else {
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpWhere = _sqlite3ExprDup(tls, db, pWhere, int32(EXPRDUP_REDUCE))
		}
		(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).Forconf = uint8(OE_Default)
	}
	_sqlite3ExprDelete(tls, db, pWhere)
	return pTriggerStep
}

// C documentation
//
//	/*
//	** Build a trigger step out of an INSERT statement.  Return a pointer
//	** to the new trigger step.
//	**
//	** The parser calls this routine when it sees an INSERT inside the
//	** body of a trigger.
//	*/
func _sqlite3TriggerInsertStep(tls *libc.TLS, pParse uintptr, pTabList uintptr, pColumn uintptr, pSelect uintptr, orconf Tu8, pUpsert uintptr, zStart uintptr, zEnd uintptr) (r uintptr) {
	var db, pTriggerStep uintptr
	_, _ = db, pTriggerStep
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	pTriggerStep = _triggerStepAllocate(tls, pParse, uint8(TK_INSERT), pTabList, zStart, zEnd)
	if pTriggerStep != 0 {
		if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) {
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpSelect = pSelect
			pSelect = uintptr(0)
		} else {
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpSelect = _sqlite3SelectDup(tls, db, pSelect, int32(EXPRDUP_REDUCE))
		}
		(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpIdList = pColumn
		(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpUpsert = pUpsert
		(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).Forconf = orconf
		if pUpsert != 0 {
			_sqlite3HasExplicitNulls(tls, pParse, (*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget)
		}
	} else {
		_sqlite3IdListDelete(tls, db, pColumn)
		_sqlite3UpsertDelete(tls, db, pUpsert)
	}
	_sqlite3SelectDelete(tls, db, pSelect)
	return pTriggerStep
}

// C documentation
//
//	/*
//	** Construct a trigger step that implements an UPDATE statement and return
//	** a pointer to that trigger step.  The parser calls this routine when it
//	** sees an UPDATE statement inside the body of a CREATE TRIGGER.
//	*/
func _sqlite3TriggerUpdateStep(tls *libc.TLS, pParse uintptr, pTabList uintptr, pFrom uintptr, pEList uintptr, pWhere uintptr, orconf Tu8, zStart uintptr, zEnd uintptr) (r uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var db, pFromDup, pSub, pTriggerStep uintptr
	var _ /* as at bp+0 */ TToken
	_, _, _, _ = db, pFromDup, pSub, pTriggerStep
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	pTriggerStep = _triggerStepAllocate(tls, pParse, uint8(TK_UPDATE), pTabList, zStart, zEnd)
	if pTriggerStep != 0 {
		pFromDup = uintptr(0)
		if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) {
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpExprList = pEList
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpWhere = pWhere
			pFromDup = pFrom
			pEList = uintptr(0)
			pWhere = uintptr(0)
			pFrom = uintptr(0)
		} else {
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpExprList = _sqlite3ExprListDup(tls, db, pEList, int32(EXPRDUP_REDUCE))
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpWhere = _sqlite3ExprDup(tls, db, pWhere, int32(EXPRDUP_REDUCE))
			pFromDup = _sqlite3SrcListDup(tls, db, pFrom, int32(EXPRDUP_REDUCE))
		}
		(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).Forconf = orconf
		if pFromDup != 0 && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) {
			**(**TToken)(__ccgo_up(bp)) = TToken{}
			pSub = _sqlite3SelectNew(tls, pParse, uintptr(0), pFromDup, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_NestedFrom), uintptr(0))
			pFromDup = _sqlite3SrcListAppendFromTerm(tls, pParse, uintptr(0), uintptr(0), uintptr(0), bp, pSub, uintptr(0))
		}
		if pFromDup != 0 && (*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpSrc != 0 {
			(*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpSrc = _sqlite3SrcListAppendList(tls, pParse, (*TTriggerStep)(unsafe.Pointer(pTriggerStep)).FpSrc, pFromDup)
		} else {
			_sqlite3SrcListDelete(tls, db, pFromDup)
		}
	}
	_sqlite3ExprListDelete(tls, db, pEList)
	_sqlite3ExprDelete(tls, db, pWhere)
	_sqlite3SrcListDelete(tls, db, pFrom)
	return pTriggerStep
}

// C documentation
//
//	/* The table or view or trigger name is passed to this routine via tokens
//	** pName1 and pName2. If the table name was fully qualified, for example:
//	**
//	** CREATE TABLE xxx.yyy (...);
//	**
//	** Then pName1 is set to "xxx" and pName2 "yyy". On the other hand if
//	** the table name is not fully qualified, i.e.:
//	**
//	** CREATE TABLE yyy(...);
//	**
//	** Then pName1 is set to "yyy" and pName2 is "".
//	**
//	** This routine sets the *ppUnqual pointer to point at the token (pName1 or
//	** pName2) that stores the unqualified table name.  The index of the
//	** database "xxx" is returned.
//	*/
func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 uintptr, pUnqual uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var db uintptr
	var iDb int32
	_, _ = db, iDb /* Database holding the object */
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) {
		if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 {
			_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14943, 0)
			return -int32(1)
		}
		**(**uintptr)(__ccgo_up(pUnqual)) = pName2
		iDb = _sqlite3FindDb(tls, db, pName1)
		if iDb < 0 {
			_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14960, libc.VaList(bp+8, pName1))
			return -int32(1)
		}
	} else {
		iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb)
		**(**uintptr)(__ccgo_up(pUnqual)) = pName1
	}
	return iDb
}

// C documentation
//
//	/*
//	** pZ is a UTF-8 encoded unicode string. If nByte is less than zero,
//	** return the number of unicode characters in pZ up to (but not including)
//	** the first 0x00 byte. If nByte is not less than zero, return the
//	** number of unicode characters in the first nByte of pZ (or up to
//	** the first 0x00, whichever comes first).
//	*/
func _sqlite3Utf8CharLen(tls *libc.TLS, zIn uintptr, nByte int32) (r1 int32) {
	var r int32
	var z, zTerm, v1 uintptr
	_, _, _, _ = r, z, zTerm, v1
	r = 0
	z = zIn
	if nByte >= 0 {
		zTerm = z + uintptr(nByte)
	} else {
		zTerm = uintptr(-libc.Int32FromInt32(1))
	}
	for int32(**(**Tu8)(__ccgo_up(z))) != 0 && z < zTerm {
		v1 = z
		z = z + 1
		if int32(**(**Tu8)(__ccgo_up(v1))) >= int32(0xc0) {
			for int32(**(**Tu8)(__ccgo_up(z)))&int32(0xc0) == int32(0x80) {
				z = z + 1
			}
		}
		r = r + 1
	}
	return r
}

/* This test function is not currently used by the automated test-suite.
** Hence it is only available in debug builds.
 */

// C documentation
//
//	/*
//	** Translate a single UTF-8 character.  Return the unicode value.
//	**
//	** During translation, assume that the byte that zTerm points
//	** is a 0x00.
//	**
//	** Write a pointer to the next unread byte back into *pzNext.
//	**
//	** Notes On Invalid UTF-8:
//	**
//	**  *  This routine never allows a 7-bit character (0x00 through 0x7f) to
//	**     be encoded as a multi-byte character.  Any multi-byte character that
//	**     attempts to encode a value between 0x00 and 0x7f is rendered as 0xfffd.
//	**
//	**  *  This routine never allows a UTF16 surrogate value to be encoded.
//	**     If a multi-byte character attempts to encode a value between
//	**     0xd800 and 0xe000 then it is rendered as 0xfffd.
//	**
//	**  *  Bytes in the range of 0x80 through 0xbf which occur as the first
//	**     byte of a character are interpreted as single-byte characters
//	**     and rendered as themselves even though they are technically
//	**     invalid characters.
//	**
//	**  *  This routine accepts over-length UTF8 encodings
//	**     for unicode values 0x80 and greater.  It does not change over-length
//	**     encodings to 0xfffd as some systems recommend.
//	*/
func _sqlite3Utf8Read(tls *libc.TLS, pz uintptr) (r Tu32) {
	var c uint32
	var v1, v2 uintptr
	_, _, _ = c, v1, v2
	/* Same as READ_UTF8() above but without the zTerm parameter.
	 ** For this routine, we assume the UTF8 string is always zero-terminated.
	 */
	v2 = pz
	v1 = *(*uintptr)(unsafe.Pointer(v2))
	*(*uintptr)(unsafe.Pointer(v2)) = *(*uintptr)(unsafe.Pointer(v2)) + 1
	c = uint32(**(**uint8)(__ccgo_up(v1)))
	if c >= uint32(0xc0) {
		c = uint32(_sqlite3Utf8Trans1[c-uint32(0xc0)])
		for int32(**(**uint8)(__ccgo_up(**(**uintptr)(__ccgo_up(pz)))))&int32(0xc0) == int32(0x80) {
			v2 = pz
			v1 = *(*uintptr)(unsafe.Pointer(v2))
			*(*uintptr)(unsafe.Pointer(v2)) = *(*uintptr)(unsafe.Pointer(v2)) + 1
			c = c<<int32(6) + uint32(libc.Int32FromInt32(0x3f)&int32(**(**uint8)(__ccgo_up(v1))))
		}
		if c < uint32(0x80) || c&uint32(0xFFFFF800) == uint32(0xD800) || c&uint32(0xFFFFFFFE) == uint32(0xFFFE) {
			c = uint32(0xFFFD)
		}
	}
	return c
}

// C documentation
//
//	/*
//	** Read a single UTF8 character out of buffer z[], but reading no
//	** more than n characters from the buffer.  z[] is not zero-terminated.
//	**
//	** Return the number of bytes used to construct the character.
//	**
//	** Invalid UTF8 might generate a strange result.  No effort is made
//	** to detect invalid UTF8.
//	**
//	** At most 4 bytes will be read out of z[].  The return value will always
//	** be between 1 and 4.
//	*/
func _sqlite3Utf8ReadLimited(tls *libc.TLS, z uintptr, n int32, piOut uintptr) (r int32) {
	var c Tu32
	var i int32
	_, _ = c, i
	i = int32(1)
	c = uint32(**(**Tu8)(__ccgo_up(z)))
	if c >= uint32(0xc0) {
		c = uint32(_sqlite3Utf8Trans1[c-uint32(0xc0)])
		if n > int32(4) {
			n = int32(4)
		}
		for i < n && int32(**(**Tu8)(__ccgo_up(z + uintptr(i))))&int32(0xc0) == int32(0x80) {
			c = c<<libc.Int32FromInt32(6) + uint32(libc.Int32FromInt32(0x3f)&int32(**(**Tu8)(__ccgo_up(z + uintptr(i)))))
			i = i + 1
		}
	}
	**(**Tu32)(__ccgo_up(piOut)) = c
	return i
}

/*
** If the TRANSLATE_TRACE macro is defined, the value of each Mem is
** printed on stderr on the way into and out of sqlite3VdbeMemTranslate().
 */
/* #define TRANSLATE_TRACE 1 */

// C documentation
//
//	/*
//	** Exported version of applyAffinity(). This one works on sqlite3_value*,
//	** not the internal Mem* type.
//	*/
func _sqlite3ValueApplyAffinity(tls *libc.TLS, pVal uintptr, affinity Tu8, enc Tu8) {
	_applyAffinity(tls, pVal, int8(affinity), enc)
}

func _sqlite3ValueBytes(tls *libc.TLS, pVal uintptr, enc Tu8) (r int32) {
	var p uintptr
	_ = p
	p = pVal
	if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Str) != 0 && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(enc) {
		return (*TMem)(unsafe.Pointer(p)).Fn
	}
	if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Str) != 0 && int32(enc) != int32(SQLITE_UTF8) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) != int32(SQLITE_UTF8) {
		return (*TMem)(unsafe.Pointer(p)).Fn
	}
	if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Blob) != 0 {
		if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Zero) != 0 {
			return (*TMem)(unsafe.Pointer(p)).Fn + *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(p)).Fu))
		} else {
			return (*TMem)(unsafe.Pointer(p)).Fn
		}
	}
	if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Null) != 0 {
		return 0
	}
	return _valueBytes(tls, pVal, enc)
}

// C documentation
//
//	/* Return true if sqlit3_value object pVal is a string or blob value
//	** that uses the destructor specified in the second argument.
//	**
//	** TODO:  Maybe someday promote this interface into a published API so
//	** that third-party extensions can get access to it?
//	*/
func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) {
	if pVal != uintptr(0) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree {
		return int32(1)
	} else {
		return 0
	}
	return r
}

// C documentation
//
//	/* This function is only available internally, it is not part of the
//	** external API. It works in a similar way to sqlite3_value_text(),
//	** except the data returned is in the encoding specified by the second
//	** parameter, which must be one of SQLITE_UTF16BE, SQLITE_UTF16LE or
//	** SQLITE_UTF8.
//	**
//	** (2006-02-16:)  The enc value can be or-ed with SQLITE_UTF16_ALIGNED.
//	** If that is the case, then the result must be aligned on an even byte
//	** boundary.
//	*/
func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) {
	if !(pVal != 0) {
		return uintptr(0)
	}
	if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Term)) == libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Term) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(enc) {
		return (*Tsqlite3_value)(unsafe.Pointer(pVal)).Fz
	}
	if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Null) != 0 {
		return uintptr(0)
	}
	return _valueToText(tls, pVal, enc)
}

// C documentation
//
//	/*
//	** Return 1 if pMem represents true, and return 0 if pMem represents false.
//	** Return the value ifNull if pMem is NULL.
//	*/
func _sqlite3VdbeBooleanValue(tls *libc.TLS, pMem uintptr, ifNull int32) (r int32) {
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 {
		return libc.BoolInt32(*(*Ti64)(unsafe.Pointer(pMem)) != 0)
	}
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 {
		return ifNull
	}
	return libc.BoolInt32(_sqlite3VdbeRealValue(tls, pMem) != float64(0))
}

// C documentation
//
//	/*
//	** If pMem is an object with a valid string representation, this routine
//	** ensures the internal encoding for the string representation is
//	** 'desiredEnc', one of SQLITE_UTF8, SQLITE_UTF16LE or SQLITE_UTF16BE.
//	**
//	** If pMem is not a string object, or the encoding of the string
//	** representation is already stored using the requested encoding, then this
//	** routine is a no-op.
//	**
//	** SQLITE_OK is returned if the conversion is successful (or not required).
//	** SQLITE_NOMEM may be returned if a malloc() fails during conversion
//	** between formats.
//	*/
func _sqlite3VdbeChangeEncoding(tls *libc.TLS, pMem uintptr, desiredEnc int32) (r int32) {
	var rc int32
	_ = rc
	if !(int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&libc.Int32FromInt32(MEM_Str) != 0) {
		(*TMem)(unsafe.Pointer(pMem)).Fenc = uint8(desiredEnc)
		return SQLITE_OK
	}
	if int32((*TMem)(unsafe.Pointer(pMem)).Fenc) == desiredEnc {
		return SQLITE_OK
	}
	/* MemTranslate() may return SQLITE_OK or SQLITE_NOMEM. If NOMEM is returned,
	 ** then the encoding of the value may not have changed.
	 */
	rc = _sqlite3VdbeMemTranslate(tls, pMem, uint8(desiredEnc))
	return rc
}

// C documentation
//
//	/*
//	** Free all memory associated with the Vdbe passed as the second argument,
//	** except for object itself, which is preserved.
//	**
//	** The difference between this function and sqlite3VdbeDelete() is that
//	** VdbeDelete() also unlinks the Vdbe from the list of VMs associated with
//	** the database connection and frees the object itself.
//	*/
func _sqlite3VdbeClearObject(tls *libc.TLS, db uintptr, p uintptr) {
	var pNext, pSub uintptr
	_, _ = pNext, pSub
	if (*TVdbe)(unsafe.Pointer(p)).FaColName != 0 {
		_releaseMemArray(tls, (*TVdbe)(unsafe.Pointer(p)).FaColName, int32((*TVdbe)(unsafe.Pointer(p)).FnResAlloc)*int32(COLNAME_N))
		_sqlite3DbNNFreeNN(tls, db, (*TVdbe)(unsafe.Pointer(p)).FaColName)
	}
	pSub = (*TVdbe)(unsafe.Pointer(p)).FpProgram
	for {
		if !(pSub != 0) {
			break
		}
		pNext = (*TSubProgram)(unsafe.Pointer(pSub)).FpNext
		_vdbeFreeOpArray(tls, db, (*TSubProgram)(unsafe.Pointer(pSub)).FaOp, (*TSubProgram)(unsafe.Pointer(pSub)).FnOp)
		_sqlite3DbFree(tls, db, pSub)
		goto _1
	_1:
		;
		pSub = pNext
	}
	if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != VDBE_INIT_STATE {
		_releaseMemArray(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar, int32((*TVdbe)(unsafe.Pointer(p)).FnVar))
		if (*TVdbe)(unsafe.Pointer(p)).FpVList != 0 {
			_sqlite3DbNNFreeNN(tls, db, (*TVdbe)(unsafe.Pointer(p)).FpVList)
		}
		if (*TVdbe)(unsafe.Pointer(p)).FpFree != 0 {
			_sqlite3DbNNFreeNN(tls, db, (*TVdbe)(unsafe.Pointer(p)).FpFree)
		}
	}
	_vdbeFreeOpArray(tls, db, (*TVdbe)(unsafe.Pointer(p)).FaOp, (*TVdbe)(unsafe.Pointer(p)).FnOp)
	if (*TVdbe)(unsafe.Pointer(p)).FzSql != 0 {
		_sqlite3DbNNFreeNN(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzSql)
	}
}

// C documentation
//
//	/*
//	** Add a new OP_Explain opcode.
//	**
//	** If the bPush flag is true, then make this opcode the parent for
//	** subsequent Explains until sqlite3VdbeExplainPop() is called.
//	*/
func _sqlite3VdbeExplain(tls *libc.TLS, pParse uintptr, bPush Tu8, zFmt uintptr, va uintptr) (r int32) {
	var addr, iThis int32
	var ap Tva_list
	var v, zMsg uintptr
	_, _, _, _, _ = addr, ap, iThis, v, zMsg
	addr = 0
	/* Always include the OP_Explain opcodes if SQLITE_DEBUG is defined.
	 ** But omit them (for performance) during production builds */
	if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) || libc.Bool(0 != 0) {
		ap = va
		zMsg = _sqlite3VMPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zFmt, ap)
		_ = ap
		v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
		iThis = (*TVdbe)(unsafe.Pointer(v)).FnOp
		addr = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), iThis, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(7))
		if bPush != 0 {
			(*TParse)(unsafe.Pointer(pParse)).FaddrExplain = iThis
		}
	}
	return addr
}

// C documentation
//
//	/*
//	** Clean up and delete a VDBE after execution.  Return an integer which is
//	** the result code.  Write any error message text into *pzErrMsg.
//	*/
func _sqlite3VdbeFinalize(tls *libc.TLS, p uintptr) (r int32) {
	var rc int32
	_ = rc
	rc = SQLITE_OK
	if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) >= int32(VDBE_READY_STATE) {
		rc = _sqlite3VdbeReset(tls, p)
	}
	_sqlite3VdbeDelete(tls, p)
	return rc
}

func _sqlite3VdbeIntValue(tls *libc.TLS, pMem uintptr) (r Ti64) {
	var flags int32
	_ = flags
	flags = int32((*TMem)(unsafe.Pointer(pMem)).Fflags)
	if flags&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 {
		return *(*Ti64)(unsafe.Pointer(pMem))
	} else {
		if flags&int32(MEM_Real) != 0 {
			return _sqlite3RealToI64(tls, *(*float64)(unsafe.Pointer(pMem)))
		} else {
			if flags&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && (*TMem)(unsafe.Pointer(pMem)).Fz != uintptr(0) {
				return _memIntValue(tls, pMem)
			} else {
				return 0
			}
		}
	}
	return r
}

// C documentation
//
//	/*
//	** The MEM structure is already a MEM_Real or MEM_IntReal. Try to
//	** make it a MEM_Int if we can.
//	*/
func _sqlite3VdbeIntegerAffinity(tls *libc.TLS, pMem uintptr) {
	var ix Ti64
	_ = ix
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_IntReal) != 0 {
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(int32((*TMem)(unsafe.Pointer(pMem)).Fflags) & ^(libc.Int32FromInt32(MEM_TypeMask)|libc.Int32FromInt32(MEM_Zero)) | int32(MEM_Int))
	} else {
		ix = _sqlite3RealToI64(tls, *(*float64)(unsafe.Pointer(pMem)))
		/* Only mark the value as an integer if
		 **
		 **    (1) the round-trip conversion real->int->real is a no-op, and
		 **    (2) The integer is neither the largest nor the smallest
		 **        possible integer (ticket #3922)
		 **
		 ** The second and third terms in the following conditional enforces
		 ** the second condition under the assumption that addition overflow causes
		 ** values to wrap around.
		 */
		if *(*float64)(unsafe.Pointer(pMem)) == float64(ix) && ix > int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32)) && ix < libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<<libc.Int32FromInt32(32) {
			*(*Ti64)(unsafe.Pointer(pMem)) = ix
			(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(int32((*TMem)(unsafe.Pointer(pMem)).Fflags) & ^(libc.Int32FromInt32(MEM_TypeMask)|libc.Int32FromInt32(MEM_Zero)) | int32(MEM_Int))
		}
	}
}

// C documentation
//
//	/*
//	** Move data out of a btree key or data field and into a Mem structure.
//	** The data is payload from the entry that pCur is currently pointing
//	** to.  offset and amt determine what portion of the data or key to retrieve.
//	** The result is written into the pMem element.
//	**
//	** The pMem object must have been initialized.  This routine will use
//	** pMem->zMalloc to hold the content from the btree, if possible.  New
//	** pMem->zMalloc space will be allocated if necessary.  The calling routine
//	** is responsible for making sure that the pMem object is eventually
//	** destroyed.
//	**
//	** If this routine fails for any reason (malloc returns NULL or unable
//	** to read from the disk) then the pMem is left in an inconsistent state.
//	*/
func _sqlite3VdbeMemFromBtree(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pMem uintptr) (r int32) {
	var rc, v1 int32
	_, _ = rc, v1
	(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Null)
	if amt >= uint32(SQLITE_MAX_ALLOCATION_SIZE) {
		return int32(SQLITE_NOMEM)
	}
	if uint64(amt)+uint64(offset) > uint64(_sqlite3BtreeMaxRecordSize(tls, pCur)) {
		return _sqlite3CorruptError(tls, int32(87091))
	}
	v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, int32(amt+uint32(1)))
	rc = v1
	if SQLITE_OK == v1 {
		rc = _sqlite3BtreePayload(tls, pCur, offset, amt, (*TMem)(unsafe.Pointer(pMem)).Fz)
		if rc == SQLITE_OK {
			**(**int8)(__ccgo_up((*TMem)(unsafe.Pointer(pMem)).Fz + uintptr(amt))) = 0 /* Overrun area used when reading malformed records */
			(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Blob)
			(*TMem)(unsafe.Pointer(pMem)).Fn = int32(amt)
		} else {
			_sqlite3VdbeMemRelease(tls, pMem)
		}
	}
	return rc
}

func _sqlite3VdbeMemFromBtreeZeroOffset(tls *libc.TLS, pCur uintptr, amt Tu32, pMem uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* available at bp+0 */ Tu32
	_ = rc
	**(**Tu32)(__ccgo_up(bp)) = uint32(0) /* Number of bytes available on the local btree page */
	rc = SQLITE_OK                        /* Return code */
	/* Note: the calls to BtreeKeyFetch() and DataFetch() below assert()
	 ** that both the BtShared and database handle mutexes are held. */
	(*TMem)(unsafe.Pointer(pMem)).Fz = _sqlite3BtreePayloadFetch(tls, pCur, bp)
	if amt <= **(**Tu32)(__ccgo_up(bp)) {
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(libc.Int32FromInt32(MEM_Blob) | libc.Int32FromInt32(MEM_Ephem))
		(*TMem)(unsafe.Pointer(pMem)).Fn = int32(amt)
	} else {
		rc = _sqlite3VdbeMemFromBtree(tls, pCur, uint32(0), amt, pMem)
	}
	return rc
}

// C documentation
//
//	/*
//	** Convert pMem to type integer.  Invalidate any prior representations.
//	*/
func _sqlite3VdbeMemIntegerify(tls *libc.TLS, pMem uintptr) (r int32) {
	*(*Ti64)(unsafe.Pointer(pMem)) = _sqlite3VdbeIntValue(tls, pMem)
	(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(int32((*TMem)(unsafe.Pointer(pMem)).Fflags) & ^(libc.Int32FromInt32(MEM_TypeMask)|libc.Int32FromInt32(MEM_Zero)) | int32(MEM_Int))
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Make sure the given Mem is \u0000 terminated.
//	*/
func _sqlite3VdbeMemNulTerminate(tls *libc.TLS, pMem uintptr) (r int32) {
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Term)|libc.Int32FromInt32(MEM_Str)) != int32(MEM_Str) {
		return SQLITE_OK /* Nothing to do */
	} else {
		return _vdbeMemAddTerminator(tls, pMem)
	}
	return r
}

// C documentation
//
//	/*
//	** Convert pMem so that it is of type MEM_Real.
//	** Invalidate any prior representations.
//	*/
func _sqlite3VdbeMemRealify(tls *libc.TLS, pMem uintptr) (r int32) {
	*(*float64)(unsafe.Pointer(pMem)) = _sqlite3VdbeRealValue(tls, pMem)
	(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(int32((*TMem)(unsafe.Pointer(pMem)).Fflags) & ^(libc.Int32FromInt32(MEM_TypeMask)|libc.Int32FromInt32(MEM_Zero)) | int32(MEM_Real))
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Release any memory resources held by the Mem.  Both the memory that is
//	** free by Mem.xDel and the Mem.zMalloc allocation are freed.
//	**
//	** Use this routine prior to clean up prior to abandoning a Mem, or to
//	** reset a Mem back to its minimum memory utilization.
//	**
//	** Use sqlite3VdbeMemSetNull() to release just the Mem.xDel space
//	** prior to inserting new content into the Mem.
//	*/
func _sqlite3VdbeMemRelease(tls *libc.TLS, p uintptr) {
	if int32((*TMem)(unsafe.Pointer(p)).Fflags)&(libc.Int32FromInt32(MEM_Agg)|libc.Int32FromInt32(MEM_Dyn)) != 0 || (*TMem)(unsafe.Pointer(p)).FszMalloc != 0 {
		_vdbeMemClear(tls, p)
	}
}

// C documentation
//
//	/*
//	** Delete any previous value and set the value stored in *pMem to val,
//	** manifest type INTEGER.
//	*/
func _sqlite3VdbeMemSetInt64(tls *libc.TLS, pMem uintptr, val Ti64) {
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Agg)|libc.Int32FromInt32(MEM_Dyn)) != 0 {
		_vdbeReleaseAndSetInt64(tls, pMem, val)
	} else {
		*(*Ti64)(unsafe.Pointer(pMem)) = val
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Int)
	}
}

// C documentation
//
//	/*
//	** Delete any previous value and set the value stored in *pMem to NULL.
//	**
//	** This routine calls the Mem.xDel destructor to dispose of values that
//	** require the destructor.  But it preserves the Mem.zMalloc memory allocation.
//	** To free all resources, use sqlite3VdbeMemRelease(), which both calls this
//	** routine to invoke the destructor and deallocates Mem.zMalloc.
//	**
//	** Use this routine to reset the Mem prior to insert a new value.
//	**
//	** Use sqlite3VdbeMemRelease() to complete erase the Mem prior to abandoning it.
//	*/
func _sqlite3VdbeMemSetNull(tls *libc.TLS, pMem uintptr) {
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Agg)|libc.Int32FromInt32(MEM_Dyn)) != 0 {
		_vdbeMemClearExternAndSetNull(tls, pMem)
	} else {
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Null)
	}
}

// C documentation
//
//	/*
//	** Delete any previous value and set the value of pMem to be an
//	** empty boolean index.
//	**
//	** Return SQLITE_OK on success and SQLITE_NOMEM if a memory allocation
//	** error occurs.
//	*/
func _sqlite3VdbeMemSetRowSet(tls *libc.TLS, pMem uintptr) (r int32) {
	var db, p uintptr
	_, _ = db, p
	db = (*TMem)(unsafe.Pointer(pMem)).Fdb
	_sqlite3VdbeMemRelease(tls, pMem)
	p = _sqlite3RowSetInit(tls, db)
	if p == uintptr(0) {
		return int32(SQLITE_NOMEM)
	}
	(*TMem)(unsafe.Pointer(pMem)).Fz = p
	(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(libc.Int32FromInt32(MEM_Blob) | libc.Int32FromInt32(MEM_Dyn))
	(*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp(_sqlite3RowSetDelete)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Delete any previous value and set the value to be a BLOB of length
//	** n containing all zeros.
//	*/
func _sqlite3VdbeMemSetZeroBlob(tls *libc.TLS, pMem uintptr, n int32) {
	_sqlite3VdbeMemRelease(tls, pMem)
	(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(libc.Int32FromInt32(MEM_Blob) | libc.Int32FromInt32(MEM_Zero))
	(*TMem)(unsafe.Pointer(pMem)).Fn = 0
	if n < 0 {
		n = 0
	}
	*(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pMem)).Fu)) = n
	(*TMem)(unsafe.Pointer(pMem)).Fenc = uint8(SQLITE_UTF8)
	(*TMem)(unsafe.Pointer(pMem)).Fz = uintptr(0)
}

// C documentation
//
//	/*
//	** Return the best representation of pMem that we can get into a
//	** double.  If pMem is already a double or an integer, return its
//	** value.  If it is a string or blob, try to convert it to a double.
//	** If it is a NULL, return 0.0.
//	*/
func _sqlite3VdbeRealValue(tls *libc.TLS, pMem uintptr) (r float64) {
	if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 {
		return *(*float64)(unsafe.Pointer(pMem))
	} else {
		if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 {
			return float64(*(*Ti64)(unsafe.Pointer(pMem)))
		} else {
			if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 {
				return _sqlite3MemRealValueNoRC(tls, pMem)
			} else {
				/* (double)0 In case of SQLITE_OMIT_FLOATING_POINT... */
				return libc.Float64FromInt32(0)
			}
		}
	}
	return r
}

// C documentation
//
//	/*
//	** Clean up a VDBE after execution but do not delete the VDBE just yet.
//	** Write any error messages into *pzErrMsg.  Return the result code.
//	**
//	** After this routine is run, the VDBE should be ready to be executed
//	** again.
//	**
//	** To look at it another way, this routine resets the state of the
//	** virtual machine from VDBE_RUN_STATE or VDBE_HALT_STATE back to
//	** VDBE_READY_STATE.
//	*/
func _sqlite3VdbeReset(tls *libc.TLS, p uintptr) (r int32) {
	var db uintptr
	_ = db
	db = (*TVdbe)(unsafe.Pointer(p)).Fdb
	/* If the VM did not run to completion or if it encountered an
	 ** error, then it might not have been halted properly.  So halt
	 ** it now.
	 */
	if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_RUN_STATE) {
		_sqlite3VdbeHalt(tls, p)
	}
	/* If the VDBE has been run even partially, then transfer the error code
	 ** and error message from the VDBE into the main database structure.  But
	 ** if the VDBE has just been set to run but has not actually executed any
	 ** instructions yet, leave the main database error information unchanged.
	 */
	if (*TVdbe)(unsafe.Pointer(p)).Fpc >= 0 {
		if (*Tsqlite3)(unsafe.Pointer(db)).FpErr != 0 || (*TVdbe)(unsafe.Pointer(p)).FzErrMsg != 0 {
			_sqlite3VdbeTransferError(tls, p)
		} else {
			(*Tsqlite3)(unsafe.Pointer(db)).FerrCode = (*TVdbe)(unsafe.Pointer(p)).Frc
		}
	}
	/* Reset register contents and reclaim error message memory.
	 */
	if (*TVdbe)(unsafe.Pointer(p)).FzErrMsg != 0 {
		_sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)
		(*TVdbe)(unsafe.Pointer(p)).FzErrMsg = uintptr(0)
	}
	(*TVdbe)(unsafe.Pointer(p)).FpResultRow = uintptr(0)
	/* Save profiling information from this VDBE run.
	 */
	return (*TVdbe)(unsafe.Pointer(p)).Frc & (*Tsqlite3)(unsafe.Pointer(db)).FerrMask
}

func _sqlite3VdbeSerialGet(tls *libc.TLS, buf uintptr, serial_type Tu32, pMem uintptr) {
	switch serial_type {
	case uint32(10): /* Internal use only: NULL with virtual table
		 ** UPDATE no-change flag set */
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Zero))
		(*TMem)(unsafe.Pointer(pMem)).Fn = 0
		*(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pMem)).Fu)) = 0
		return
	case uint32(11): /* Reserved for future use */
		fallthrough
	case uint32(0): /* Null */
		/* EVIDENCE-OF: R-24078-09375 Value is a NULL. */
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Null)
		return
	case uint32(1):
		/* EVIDENCE-OF: R-44885-25196 Value is an 8-bit twos-complement
		 ** integer. */
		*(*Ti64)(unsafe.Pointer(pMem)) = int64(int8(**(**uint8)(__ccgo_up(buf))))
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Int)
		return
	case uint32(2): /* 2-byte signed integer */
		/* EVIDENCE-OF: R-49794-35026 Value is a big-endian 16-bit
		 ** twos-complement integer. */
		*(*Ti64)(unsafe.Pointer(pMem)) = int64(libc.Int32FromInt32(256)*int32(int8(**(**uint8)(__ccgo_up(buf)))) | int32(**(**uint8)(__ccgo_up(buf + 1))))
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Int)
		return
	case uint32(3): /* 3-byte signed integer */
		/* EVIDENCE-OF: R-37839-54301 Value is a big-endian 24-bit
		 ** twos-complement integer. */
		*(*Ti64)(unsafe.Pointer(pMem)) = int64(libc.Int32FromInt32(65536)*int32(int8(**(**uint8)(__ccgo_up(buf)))) | int32(**(**uint8)(__ccgo_up(buf + 1)))<<libc.Int32FromInt32(8) | int32(**(**uint8)(__ccgo_up(buf + 2))))
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Int)
		return
	case uint32(4): /* 4-byte signed integer */
		/* EVIDENCE-OF: R-01849-26079 Value is a big-endian 32-bit
		 ** twos-complement integer. */
		*(*Ti64)(unsafe.Pointer(pMem)) = int64(libc.Int32FromInt32(16777216)*int32(int8(**(**uint8)(__ccgo_up(buf)))) | int32(**(**uint8)(__ccgo_up(buf + 1)))<<libc.Int32FromInt32(16) | int32(**(**uint8)(__ccgo_up(buf + 2)))<<libc.Int32FromInt32(8) | int32(**(**uint8)(__ccgo_up(buf + 3))))
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Int)
		return
	case uint32(5): /* 6-byte signed integer */
		/* EVIDENCE-OF: R-50385-09674 Value is a big-endian 48-bit
		 ** twos-complement integer. */
		*(*Ti64)(unsafe.Pointer(pMem)) = int64(uint32(**(**uint8)(__ccgo_up(buf + libc.UintptrFromInt32(2))))<<libc.Int32FromInt32(24)|uint32(int32(**(**uint8)(__ccgo_up(buf + libc.UintptrFromInt32(2) + 1)))<<libc.Int32FromInt32(16))|uint32(int32(**(**uint8)(__ccgo_up(buf + libc.UintptrFromInt32(2) + 2)))<<libc.Int32FromInt32(8))|uint32(**(**uint8)(__ccgo_up(buf + libc.UintptrFromInt32(2) + 3)))) + libc.Int64FromInt32(1)<<libc.Int32FromInt32(32)*int64(libc.Int32FromInt32(256)*int32(int8(**(**uint8)(__ccgo_up(buf))))|int32(**(**uint8)(__ccgo_up(buf + 1))))
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Int)
		return
	case uint32(6): /* 8-byte signed integer */
		fallthrough
	case uint32(7): /* IEEE floating point */
		/* These use local variables, so do them in a separate routine
		 ** to avoid having to move the frame pointer in the common case */
		_serialGet(tls, buf, serial_type, pMem)
		return
	case uint32(8): /* Integer 0 */
		fallthrough
	case uint32(9): /* Integer 1 */
		/* EVIDENCE-OF: R-12976-22893 Value is the integer 0. */
		/* EVIDENCE-OF: R-18143-12121 Value is the integer 1. */
		*(*Ti64)(unsafe.Pointer(pMem)) = int64(serial_type - uint32(8))
		(*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Int)
		return
	default:
		(*TMem)(unsafe.Pointer(pMem)).Fz = buf
		(*TMem)(unsafe.Pointer(pMem)).Fn = int32((serial_type - uint32(12)) / uint32(2))
		(*TMem)(unsafe.Pointer(pMem)).Fflags = _aFlag[serial_type&uint32(1)]
		return
	}
	return
}

// C documentation
//
//	/*
//	** Remember the SQL string for a prepared statement.
//	*/
func _sqlite3VdbeSetSql(tls *libc.TLS, p uintptr, z uintptr, n int32, prepFlags Tu8) {
	if p == uintptr(0) {
		return
	}
	(*TVdbe)(unsafe.Pointer(p)).FprepFlags = prepFlags
	if int32(prepFlags)&int32(SQLITE_PREPARE_SAVESQL) == 0 {
		(*TVdbe)(unsafe.Pointer(p)).Fexpmask = uint32(0)
	}
	(*TVdbe)(unsafe.Pointer(p)).FzSql = _sqlite3DbStrNDup(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, z, uint64(n))
}

// C documentation
//
//	/*
//	** If the previous opcode is an OP_Column that delivers results
//	** into register iDest, then add the OPFLAG_TYPEOFARG flag to that
//	** opcode.
//	*/
func _sqlite3VdbeTypeofColumn(tls *libc.TLS, p uintptr, iDest int32) {
	var pOp, v1 uintptr
	_, _ = pOp, v1
	pOp = _sqlite3VdbeGetLastOp(tls, p)
	if (*TVdbeOp)(unsafe.Pointer(pOp)).Fp3 == iDest && int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_Column) {
		v1 = pOp + 2
		*(*Tu16)(unsafe.Pointer(v1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(v1))) | libc.Int32FromInt32(OPFLAG_TYPEOFARG))
	}
}

func _sqlite3ViewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32) {
	if !(int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && int32((*TTable)(unsafe.Pointer(pTable)).FnCol) > 0 {
		return 0
	}
	return _viewGetColumnNames(tls, pParse, pTable)
}

// C documentation
//
//	/* Return the value to pass to a sqlite3_wal_hook callback, the
//	** number of frames in the WAL at the point of the last commit since
//	** sqlite3WalCallback() was called.  If no commits have occurred since
//	** the last call, then return 0.
//	*/
func _sqlite3WalCallback(tls *libc.TLS, pWal uintptr) (r int32) {
	var ret Tu32
	_ = ret
	ret = uint32(0)
	if pWal != 0 {
		ret = (*TWal)(unsafe.Pointer(pWal)).FiCallback
		(*TWal)(unsafe.Pointer(pWal)).FiCallback = uint32(0)
	}
	return int32(ret)
}

// C documentation
//
//	/*
//	** Close a connection to a log file.
//	*/
func _sqlite3WalClose(tls *libc.TLS, pWal uintptr, db uintptr, sync_flags int32, nBuf int32, zBuf uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var isDelete, rc, v1 int32
	var v2 bool
	var _ /* bPersist at bp+0 */ int32
	_, _, _, _ = isDelete, rc, v1, v2
	rc = SQLITE_OK
	if pWal != 0 {
		isDelete = 0 /* True to unlink wal and wal-index files */
		/* If an EXCLUSIVE lock can be obtained on the database file (using the
		 ** ordinary, rollback-mode locking methods, this guarantees that the
		 ** connection associated with this log file is the only connection to
		 ** the database. In this case checkpoint the database and unlink both
		 ** the wal and wal-index files.
		 **
		 ** The EXCLUSIVE lock is not released before returning.
		 */
		if v2 = zBuf != uintptr(0); v2 {
			v1 = _sqlite3OsLock(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_LOCK_EXCLUSIVE))
			rc = v1
		}
		if v2 && SQLITE_OK == v1 {
			if int32((*TWal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_NORMAL_MODE {
				(*TWal)(unsafe.Pointer(pWal)).FexclusiveMode = uint8(WAL_EXCLUSIVE_MODE)
			}
			rc = _sqlite3WalCheckpoint(tls, pWal, db, SQLITE_CHECKPOINT_PASSIVE, uintptr(0), uintptr(0), sync_flags, nBuf, zBuf, uintptr(0), uintptr(0))
			if rc == SQLITE_OK {
				**(**int32)(__ccgo_up(bp)) = -int32(1)
				_sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_PERSIST_WAL), bp)
				if **(**int32)(__ccgo_up(bp)) != int32(1) {
					/* Try to delete the WAL file if the checkpoint completed and
					 ** fsynced (rc==SQLITE_OK) and if we are not in persistent-wal
					 ** mode (!bPersist) */
					isDelete = int32(1)
				} else {
					if (*TWal)(unsafe.Pointer(pWal)).FmxWalSize >= 0 {
						/* Try to truncate the WAL file to zero bytes if the checkpoint
						 ** completed and fsynced (rc==SQLITE_OK) and we are in persistent
						 ** WAL mode (bPersist) and if the PRAGMA journal_size_limit is a
						 ** non-negative value (pWal->mxWalSize>=0).  Note that we truncate
						 ** to zero bytes as truncating to the journal_size_limit might
						 ** leave a corrupt WAL file on disk. */
						_walLimitSize(tls, pWal, 0)
					}
				}
			}
		}
		_walIndexClose(tls, pWal, isDelete)
		_sqlite3OsClose(tls, (*TWal)(unsafe.Pointer(pWal)).FpWalFd)
		if isDelete != 0 {
			_sqlite3BeginBenignMalloc(tls)
			_sqlite3OsDelete(tls, (*TWal)(unsafe.Pointer(pWal)).FpVfs, (*TWal)(unsafe.Pointer(pWal)).FzWalName, 0)
			_sqlite3EndBenignMalloc(tls)
		}
		Xsqlite3_free(tls, (*TWal)(unsafe.Pointer(pWal)).FapWiData)
		Xsqlite3_free(tls, pWal)
	}
	return rc
}

// C documentation
//
//	/*
//	** This function is called to change the WAL subsystem into or out
//	** of locking_mode=EXCLUSIVE.
//	**
//	** If op is zero, then attempt to change from locking_mode=EXCLUSIVE
//	** into locking_mode=NORMAL.  This means that we must acquire a lock
//	** on the pWal->readLock byte.  If the WAL is already in locking_mode=NORMAL
//	** or if the acquisition of the lock fails, then return 0.  If the
//	** transition out of exclusive-mode is successful, return 1.  This
//	** operation must occur while the pager is still holding the exclusive
//	** lock on the main database file.
//	**
//	** If op is one, then change from locking_mode=NORMAL into
//	** locking_mode=EXCLUSIVE.  This means that the pWal->readLock must
//	** be released.  Return 1 if the transition is made and 0 if the
//	** WAL is already in exclusive-locking mode - meaning that this
//	** routine is a no-op.  The pager must already hold the exclusive lock
//	** on the main database file before invoking this operation.
//	**
//	** If op is negative, then do a dry-run of the op==1 case but do
//	** not actually change anything. The pager uses this to see if it
//	** should acquire the database exclusive lock prior to invoking
//	** the op==1 case.
//	*/
func _sqlite3WalExclusiveMode(tls *libc.TLS, pWal uintptr, op int32) (r int32) {
	var rc int32
	_ = rc
	/* pWal->readLock is usually set, but might be -1 if there was a
	 ** prior error while attempting to acquire are read-lock. This cannot
	 ** happen if the connection is actually in exclusive mode (as no xShmLock
	 ** locks are taken in this case). Nor should the pager attempt to
	 ** upgrade to exclusive-mode following such an error.
	 */
	if op == 0 {
		if int32((*TWal)(unsafe.Pointer(pWal)).FexclusiveMode) != WAL_NORMAL_MODE {
			(*TWal)(unsafe.Pointer(pWal)).FexclusiveMode = uint8(WAL_NORMAL_MODE)
			if _walLockShared(tls, pWal, int32(3)+int32((*TWal)(unsafe.Pointer(pWal)).FreadLock)) != SQLITE_OK {
				(*TWal)(unsafe.Pointer(pWal)).FexclusiveMode = uint8(WAL_EXCLUSIVE_MODE)
			}
			rc = libc.BoolInt32(int32((*TWal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_NORMAL_MODE)
		} else {
			/* Already in locking_mode=NORMAL */
			rc = 0
		}
	} else {
		if op > 0 {
			_walUnlockShared(tls, pWal, int32(3)+int32((*TWal)(unsafe.Pointer(pWal)).FreadLock))
			(*TWal)(unsafe.Pointer(pWal)).FexclusiveMode = uint8(WAL_EXCLUSIVE_MODE)
			rc = int32(1)
		} else {
			rc = libc.BoolInt32(int32((*TWal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_NORMAL_MODE)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Return true if the argument is non-NULL and the WAL module is using
//	** heap-memory for the wal-index. Otherwise, if the argument is NULL or the
//	** WAL module is using shared-memory, return false.
//	*/
func _sqlite3WalHeapMemory(tls *libc.TLS, pWal uintptr) (r int32) {
	return libc.BoolInt32(pWal != 0 && int32((*TWal)(unsafe.Pointer(pWal)).FexclusiveMode) == int32(WAL_HEAPMEMORY_MODE))
}

// C documentation
//
//	/*
//	** Read the contents of frame iRead from the wal file into buffer pOut
//	** (which is nOut bytes in size). Return SQLITE_OK if successful, or an
//	** error code otherwise.
//	*/
func _sqlite3WalReadFrame(tls *libc.TLS, pWal uintptr, iRead Tu32, nOut int32, pOut uintptr) (r int32) {
	var iOffset Ti64
	var sz, v1 int32
	_, _, _ = iOffset, sz, v1
	sz = int32((*TWal)(unsafe.Pointer(pWal)).Fhdr.FszPage)
	sz = sz&int32(0xfe00) + sz&int32(0x0001)<<int32(16)
	iOffset = int64(WAL_HDRSIZE) + int64(iRead-libc.Uint32FromInt32(1))*int64(sz+libc.Int32FromInt32(WAL_FRAME_HDRSIZE)) + int64(WAL_FRAME_HDRSIZE)
	/* testcase( IS_BIG_INT(iOffset) ); // requires a 4GiB WAL */
	if nOut > sz {
		v1 = sz
	} else {
		v1 = nOut
	}
	return _sqlite3OsRead(tls, (*TWal)(unsafe.Pointer(pWal)).FpWalFd, pOut, v1, iOffset)
}

// C documentation
//
//	/*
//	** Attempt to reduce the value of the WalCkptInfo.nBackfillAttempted
//	** variable so that older snapshots can be accessed. To do this, loop
//	** through all wal frames from nBackfillAttempted to (nBackfill+1),
//	** comparing their content to the corresponding page with the database
//	** file, if any. Set nBackfillAttempted to the frame number of the
//	** first frame for which the wal file content matches the db file.
//	**
//	** This is only really safe if the file-system is such that any page
//	** writes made by earlier checkpointers were atomic operations, which
//	** is not always true. It is also possible that nBackfillAttempted
//	** may be left set to a value larger than expected, if a wal frame
//	** contains content that duplicate of an earlier version of the same
//	** page.
//	**
//	** SQLITE_OK is returned if successful, or an SQLite error code if an
//	** error occurs. It is not an error if nBackfillAttempted cannot be
//	** decreased at all.
//	*/
func _sqlite3WalSnapshotRecover(tls *libc.TLS, pWal uintptr) (r int32) {
	var pBuf1, pBuf2 uintptr
	var rc int32
	_, _, _ = pBuf1, pBuf2, rc
	rc = _walLockExclusive(tls, pWal, int32(WAL_CKPT_LOCK), int32(1))
	if rc == SQLITE_OK {
		pBuf1 = Xsqlite3_malloc(tls, int32((*TWal)(unsafe.Pointer(pWal)).FszPage))
		pBuf2 = Xsqlite3_malloc(tls, int32((*TWal)(unsafe.Pointer(pWal)).FszPage))
		if pBuf1 == uintptr(0) || pBuf2 == uintptr(0) {
			rc = int32(SQLITE_NOMEM)
		} else {
			(*TWal)(unsafe.Pointer(pWal)).FckptLock = uint8(1)
			rc = _walSnapshotRecover(tls, pWal, pBuf1, pBuf2)
			(*TWal)(unsafe.Pointer(pWal)).FckptLock = uint8(0)
		}
		Xsqlite3_free(tls, pBuf1)
		Xsqlite3_free(tls, pBuf2)
		_walUnlockExclusive(tls, pWal, int32(WAL_CKPT_LOCK), int32(1))
	}
	return rc
}

// C documentation
//
//	/*
//	** Walk all expressions associated with SELECT statement p.  Do
//	** not invoke the SELECT callback on p, but do (of course) invoke
//	** any expr callbacks and SELECT callbacks that come from subqueries.
//	** Return WRC_Abort or WRC_Continue.
//	*/
func _sqlite3WalkSelectExpr(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) {
	var pParse, v1 uintptr
	var rc int32
	var v2 bool
	_, _, _, _ = pParse, rc, v1, v2
	if _sqlite3WalkExprList(tls, pWalker, (*TSelect)(unsafe.Pointer(p)).FpEList) != 0 {
		return int32(WRC_Abort)
	}
	if _sqlite3WalkExpr(tls, pWalker, (*TSelect)(unsafe.Pointer(p)).FpWhere) != 0 {
		return int32(WRC_Abort)
	}
	if _sqlite3WalkExprList(tls, pWalker, (*TSelect)(unsafe.Pointer(p)).FpGroupBy) != 0 {
		return int32(WRC_Abort)
	}
	if _sqlite3WalkExpr(tls, pWalker, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 {
		return int32(WRC_Abort)
	}
	if _sqlite3WalkExprList(tls, pWalker, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) != 0 {
		return int32(WRC_Abort)
	}
	if _sqlite3WalkExpr(tls, pWalker, (*TSelect)(unsafe.Pointer(p)).FpLimit) != 0 {
		return int32(WRC_Abort)
	}
	if (*TSelect)(unsafe.Pointer(p)).FpWinDefn != 0 {
		if v2 = (*TWalker)(unsafe.Pointer(pWalker)).FxSelectCallback2 == __ccgo_fp(_sqlite3WalkWinDefnDummyCallback); !v2 {
			v1 = (*TWalker)(unsafe.Pointer(pWalker)).FpParse
			pParse = v1
		}
		if v2 || v1 != uintptr(0) && int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) || (*TWalker)(unsafe.Pointer(pWalker)).FxSelectCallback2 == __ccgo_fp(_sqlite3SelectPopWith) {
			/* The following may return WRC_Abort if there are unresolvable
			 ** symbols (e.g. a table that does not exist) in a window definition. */
			rc = _walkWindowList(tls, pWalker, (*TSelect)(unsafe.Pointer(p)).FpWinDefn, 0)
			return rc
		}
	}
	return WRC_Continue
}

// C documentation
//
//	/*
//	** This function is a no-op unless currently processing an EXPLAIN QUERY PLAN
//	** command, or if stmt_scanstatus_v2() stats are enabled, or if SQLITE_DEBUG
//	** was defined at compile-time. If it is not a no-op, a single OP_Explain
//	** opcode is added to the output to describe the table scan strategy in pLevel.
//	**
//	** If an OP_Explain opcode is added to the VM, its address is returned.
//	** Otherwise, if no OP_Explain is coded, zero is returned.
//	*/
func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr, pLevel uintptr, wctrlFlags Tu16) (r int32) {
	var addr, ret int32
	var v, v1 uintptr
	_, _, _, _ = addr, ret, v, v1
	ret = 0
	if (*TParse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
		v1 = (*TParse)(unsafe.Pointer(pParse)).FpToplevel
	} else {
		v1 = pParse
	}
	if int32((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) {
		if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 {
			v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe
			addr = _sqlite3VdbeCurrentAddr(tls, v)
			ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun))
			_sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags)
		}
	}
	return ret
}

func _sqlite3WhereExprUsageNN(tls *libc.TLS, pMaskSet uintptr, p uintptr) (r TBitmask) {
	if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_COLUMN) && !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_FixedCol)) != libc.Uint32FromInt32(0)) {
		return _sqlite3WhereGetMask(tls, pMaskSet, (*TExpr)(unsafe.Pointer(p)).FiTable)
	} else {
		if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != uint32(0) {
			return uint64(0)
		}
	}
	return _sqlite3WhereExprUsageFull(tls, pMaskSet, p)
}

// C documentation
//
//	/*
//	** Return one of the WHERE_DISTINCT_xxxxx values to indicate how this
//	** WHERE clause returns outputs for DISTINCT processing.
//	*/
func _sqlite3WhereIsDistinct(tls *libc.TLS, pWInfo uintptr) (r int32) {
	return int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct)
}

// C documentation
//
//	/*
//	** This routine identifies subexpressions in the WHERE clause where
//	** each subexpression is separated by the AND operator or some other
//	** operator specified in the op parameter.  The WhereClause structure
//	** is filled with pointers to subexpressions.  For example:
//	**
//	**    WHERE  a=='hello' AND coalesce(b,11)<10 AND (c+12!=d OR c==22)
//	**           \________/     \_______________/     \________________/
//	**            slot[0]            slot[1]               slot[2]
//	**
//	** The original WHERE clause in pExpr is unaltered.  All this routine
//	** does is make slot[] entries point to substructure within pExpr.
//	**
//	** In the previous sentence and in the diagram, "slot[]" refers to
//	** the WhereClause.a[] array.  The slot[] array grows as needed to contain
//	** all terms of the WHERE clause.
//	*/
func _sqlite3WhereSplit(tls *libc.TLS, pWC uintptr, pExpr uintptr, op Tu8) {
	var pE2 uintptr
	_ = pE2
	pE2 = _sqlite3ExprSkipCollateAndLikely(tls, pExpr)
	(*TWhereClause)(unsafe.Pointer(pWC)).Fop = op
	if pE2 == uintptr(0) {
		return
	}
	if int32((*TExpr)(unsafe.Pointer(pE2)).Fop) != int32(op) {
		_whereClauseInsert(tls, pWC, pExpr, uint16(0))
	} else {
		_sqlite3WhereSplit(tls, pWC, (*TExpr)(unsafe.Pointer(pE2)).FpLeft, op)
		_sqlite3WhereSplit(tls, pWC, (*TExpr)(unsafe.Pointer(pE2)).FpRight, op)
	}
}

func _sqlite3Win32Wait(tls *libc.TLS, hObject THANDLE) (r TDWORD) {
	var rc, v1 TDWORD
	_, _ = rc, v1
	for {
		v1 = (*(*func(*libc.TLS, THANDLE, TDWORD, TBOOL) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(63)].FpCurrent})))(tls, hObject, uint32(INFINITE), int32(TRUE))
		rc = v1
		if !(v1 == libc.Uint32FromInt32(0x000000C0)) {
			break
		}
	}
	return rc
}

/*
** Return true (non-zero) if we are running under WinNT, Win2K, WinXP,
** or WinCE.  Return false (zero) for Win95, Win98, or WinME.
**
** Here is an interesting observation:  Win95, Win98, and WinME lack
** the LockFileEx() API.  But we can still statically link against that
** API as long as we don't call it when running Win95/98/ME.  A call to
** this routine is used to determine if the host is Win95/98/ME or
** WinNT/2K/XP so that we will know whether or not we can safely call
** the LockFileEx() API.
 */

// C documentation
//
//	/*
//	** Window *pWin has just been created from a WINDOW clause. Token pBase
//	** is the base window. Earlier windows from the same WINDOW clause are
//	** stored in the linked list starting at pWin->pNextWin. This function
//	** either updates *pWin according to the base specification, or else
//	** leaves an error in pParse.
//	*/
func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uintptr) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var db, pExist, zErr uintptr
	_, _, _ = db, pExist, zErr
	if (*TWindow)(unsafe.Pointer(pWin)).FzBase != 0 {
		db = (*TParse)(unsafe.Pointer(pParse)).Fdb
		pExist = _windowFind(tls, pParse, pList, (*TWindow)(unsafe.Pointer(pWin)).FzBase)
		if pExist != 0 {
			zErr = uintptr(0)
			/* Check for errors */
			if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 {
				zErr = __ccgo_ts + 25721
			} else {
				if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 {
					zErr = __ccgo_ts + 25738
				} else {
					if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 {
						zErr = __ccgo_ts + 25754
					}
				}
			}
			if zErr != 0 {
				_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+25774, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase))
			} else {
				(*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0)
				if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 {
					(*TWindow)(unsafe.Pointer(pWin)).FpOrderBy = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy, 0)
				}
				_sqlite3DbFree(tls, db, (*TWindow)(unsafe.Pointer(pWin)).FzBase)
				(*TWindow)(unsafe.Pointer(pWin)).FzBase = uintptr(0)
			}
		}
	}
}

// C documentation
//
//	/*
//	** Return 0 if the two window objects are identical, 1 if they are
//	** different, or 2 if it cannot be determined if the objects are identical
//	** or not. Identical window objects can be processed in a single scan.
//	*/
func _sqlite3WindowCompare(tls *libc.TLS, pParse uintptr, p1 uintptr, p2 uintptr, bFilter int32) (r int32) {
	var res, v1 int32
	_, _ = res, v1
	if p1 == uintptr(0) || p2 == uintptr(0) {
		return int32(1)
	}
	if int32((*TWindow)(unsafe.Pointer(p1)).FeFrmType) != int32((*TWindow)(unsafe.Pointer(p2)).FeFrmType) {
		return int32(1)
	}
	if int32((*TWindow)(unsafe.Pointer(p1)).FeStart) != int32((*TWindow)(unsafe.Pointer(p2)).FeStart) {
		return int32(1)
	}
	if int32((*TWindow)(unsafe.Pointer(p1)).FeEnd) != int32((*TWindow)(unsafe.Pointer(p2)).FeEnd) {
		return int32(1)
	}
	if int32((*TWindow)(unsafe.Pointer(p1)).FeExclude) != int32((*TWindow)(unsafe.Pointer(p2)).FeExclude) {
		return int32(1)
	}
	if _sqlite3ExprCompare(tls, pParse, (*TWindow)(unsafe.Pointer(p1)).FpStart, (*TWindow)(unsafe.Pointer(p2)).FpStart, -int32(1)) != 0 {
		return int32(1)
	}
	if _sqlite3ExprCompare(tls, pParse, (*TWindow)(unsafe.Pointer(p1)).FpEnd, (*TWindow)(unsafe.Pointer(p2)).FpEnd, -int32(1)) != 0 {
		return int32(1)
	}
	v1 = _sqlite3ExprListCompare(tls, (*TWindow)(unsafe.Pointer(p1)).FpPartition, (*TWindow)(unsafe.Pointer(p2)).FpPartition, -int32(1))
	res = v1
	if v1 != 0 {
		return res
	}
	v1 = _sqlite3ExprListCompare(tls, (*TWindow)(unsafe.Pointer(p1)).FpOrderBy, (*TWindow)(unsafe.Pointer(p2)).FpOrderBy, -int32(1))
	res = v1
	if v1 != 0 {
		return res
	}
	if bFilter != 0 {
		v1 = _sqlite3ExprCompare(tls, pParse, (*TWindow)(unsafe.Pointer(p1)).FpFilter, (*TWindow)(unsafe.Pointer(p2)).FpFilter, -int32(1))
		res = v1
		if v1 != 0 {
			return res
		}
	}
	return 0
}

// C documentation
//
//	/*
//	** When rewriting a query, if the new subquery in the FROM clause
//	** contains TK_AGG_FUNCTION nodes that refer to an outer query,
//	** then we have to increase the Expr->op2 values of those nodes
//	** due to the extra subquery layer that was added.
//	**
//	** See also the incrAggDepth() routine in resolve.c
//	*/
func _sqlite3WindowExtraAggFuncDepth(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) {
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop2) >= (*TWalker)(unsafe.Pointer(pWalker)).FwalkerDepth {
		(*TExpr)(unsafe.Pointer(pExpr)).Fop2 = (*TExpr)(unsafe.Pointer(pExpr)).Fop2 + 1
	}
	return WRC_Continue
}

// C documentation
//
//	/*
//	** The argument expression is an PRECEDING or FOLLOWING offset.  The
//	** value should be a non-negative integer.  If the value is not a
//	** constant, change it to NULL.  The fact that it is then a non-negative
//	** integer will be caught later.  But it is important not to leave
//	** variable values in the expression tree.
//	*/
func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) {
	if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) {
		if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) {
			_sqlite3RenameExprUnmap(tls, pParse, pExpr)
		}
		_sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr)
		pExpr = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_NULL), uintptr(0), 0)
	}
	return pExpr
}

// C documentation
//
//	/*
//	** True if PRAGMA writable_schema is ON
//	*/
func _sqlite3WritableSchema(tls *libc.TLS, db uintptr) (r int32) {
	return libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(libc.Int32FromInt32(SQLITE_WriteSchema)|libc.Int32FromInt32(SQLITE_Defensive)) == uint64(SQLITE_WriteSchema))
}

// C documentation
//
//	/*
//	** The following variable is (normally) set once and never changes
//	** thereafter.  It records whether the operating system is Win9x
//	** or WinNT.
//	**
//	** 0:   Operating system unknown.
//	** 1:   Operating system is Win9x.
//	** 2:   Operating system is WinNT.
//	**
//	** In order to facilitate testing on a WinNT system, the test fixture
//	** can manually set this value to 1 to emulate Win98 behavior.
//	*/
var _sqlite3_os_type = int32(0)

/*
** This function is not available on Windows CE or WinRT.
 */

// C documentation
//
//	/*
//	** An array of names of all compile-time options.  This array should
//	** be sorted A-Z.
//	**
//	** This array looks large, but in a typical installation actually uses
//	** only a handful of compile-time options, so most times this array is usually
//	** rather short and uses little memory space.
//	*/
var _sqlite3azCompileOpt = [57]uintptr{
	0:  __ccgo_ts,
	1:  __ccgo_ts + 20,
	2:  __ccgo_ts + 42,
	3:  __ccgo_ts + 61,
	4:  __ccgo_ts + 86,
	5:  __ccgo_ts + 108,
	6:  __ccgo_ts + 138,
	7:  __ccgo_ts + 158,
	8:  __ccgo_ts + 178,
	9:  __ccgo_ts + 201,
	10: __ccgo_ts + 226,
	11: __ccgo_ts + 253,
	12: __ccgo_ts + 278,
	13: __ccgo_ts + 300,
	14: __ccgo_ts + 332,
	15: __ccgo_ts + 358,
	16: __ccgo_ts + 383,
	17: __ccgo_ts + 404,
	18: __ccgo_ts + 422,
	19: __ccgo_ts + 445,
	20: __ccgo_ts + 464,
	21: __ccgo_ts + 483,
	22: __ccgo_ts + 495,
	23: __ccgo_ts + 510,
	24: __ccgo_ts + 532,
	25: __ccgo_ts + 557,
	26: __ccgo_ts + 580,
	27: __ccgo_ts + 602,
	28: __ccgo_ts + 613,
	29: __ccgo_ts + 626,
	30: __ccgo_ts + 641,
	31: __ccgo_ts + 657,
	32: __ccgo_ts + 670,
	33: __ccgo_ts + 691,
	34: __ccgo_ts + 715,
	35: __ccgo_ts + 738,
	36: __ccgo_ts + 754,
	37: __ccgo_ts + 770,
	38: __ccgo_ts + 794,
	39: __ccgo_ts + 821,
	40: __ccgo_ts + 841,
	41: __ccgo_ts + 863,
	42: __ccgo_ts + 885,
	43: __ccgo_ts + 915,
	44: __ccgo_ts + 940,
	45: __ccgo_ts + 966,
	46: __ccgo_ts + 986,
	47: __ccgo_ts + 1012,
	48: __ccgo_ts + 1035,
	49: __ccgo_ts + 1061,
	50: __ccgo_ts + 1083,
	51: __ccgo_ts + 1104,
	52: __ccgo_ts + 1115,
	53: __ccgo_ts + 1124,
	54: __ccgo_ts + 1132,
	55: __ccgo_ts + 1146,
	56: __ccgo_ts + 1159,
}

// C documentation
//
//	/*
//	** Write an error message into pParse->zErrMsg that explains that the
//	** user-supplied authorization function returned an illegal value.
//	*/
func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) {
	_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14826, 0)
	(*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR)
}

func _statEof(tls *libc.TLS, pCursor uintptr) (r int32) {
	var pCsr uintptr
	_ = pCsr
	pCsr = pCursor
	return int32((*TStatCursor)(unsafe.Pointer(pCsr)).FisEof)
}

var _statGetFuncdef = TFuncDef{
	FnArg:      int16(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)),
	FfuncFlags: uint32(SQLITE_UTF8),
	FzName:     __ccgo_ts + 14238,
}

var _statInitFuncdef = TFuncDef{
	FnArg:      int16(4),
	FfuncFlags: uint32(SQLITE_UTF8),
	FzName:     __ccgo_ts + 14201,
}

var _statPushFuncdef = TFuncDef{
	FnArg:      int16(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)),
	FfuncFlags: uint32(SQLITE_UTF8),
	FzName:     __ccgo_ts + 14211,
}

func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) {
	var pCsr uintptr
	_ = pCsr
	pCsr = pCursor
	**(**Tsqlite_int64)(__ccgo_up(pRowid)) = int64((*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno)
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Buffer zStr contains nStr bytes of utf-8 encoded text. Return 1 if zStr
//	** contains character ch, or 0 if it does not.
//	*/
func _strContainsChar(tls *libc.TLS, zStr uintptr, nStr int32, ch Tu32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var tst Tu32
	var zEnd, v2 uintptr
	var v1 uint32
	var _ /* z at bp+0 */ uintptr
	_, _, _, _ = tst, zEnd, v1, v2
	zEnd = zStr + uintptr(nStr)
	**(**uintptr)(__ccgo_up(bp)) = zStr
	for **(**uintptr)(__ccgo_up(bp)) < zEnd {
		if int32(**(**Tu8)(__ccgo_up(**(**uintptr)(__ccgo_up(bp))))) < int32(0x80) {
			v2 = **(**uintptr)(__ccgo_up(bp))
			**(**uintptr)(__ccgo_up(bp)) = **(**uintptr)(__ccgo_up(bp)) + 1
			v1 = uint32(**(**Tu8)(__ccgo_up(v2)))
		} else {
			v1 = _sqlite3Utf8Read(tls, bp)
		}
		tst = v1
		if tst == ch {
			return int32(1)
		}
	}
	return 0
}

// C documentation
//
//	/*
//	** The hashing function.
//	*/
func _strHash(tls *libc.TLS, z uintptr) (r uint32) {
	var h uint32
	var v1 uintptr
	_, _ = h, v1
	h = uint32(0)
	for **(**int8)(__ccgo_up(z)) != 0 { /*OPTIMIZATION-IF-TRUE*/
		/* Knuth multiplicative hashing.  (Sorting & Searching, p. 510).
		 ** 0x9e3779b1 is 2654435761 which is the closest prime number to
		 ** (2**32)*golden_ratio, where golden_ratio = (sqrt(5) - 1)/2.
		 **
		 ** Only bits 0xdf for ASCII and bits 0xbf for EBCDIC each octet are
		 ** hashed since the omitted bits determine the upper/lower case difference.
		 */
		v1 = z
		z = z + 1
		h = h + uint32(int32(0xdf)&int32(uint8(**(**int8)(__ccgo_up(v1)))))
		h = h * uint32(0x9e3779b1)
	}
	return h
}

// C documentation
//
//	/*
//	** Append a record of the current state of page pPg to the sub-journal.
//	**
//	** If successful, set the bit corresponding to pPg->pgno in the bitvecs
//	** for all open savepoints before returning.
//	**
//	** This function returns SQLITE_OK if everything is successful, an IO
//	** error code if the attempt to write to the sub-journal fails, or
//	** SQLITE_NOMEM if a malloc fails while setting a bit in a savepoint
//	** bitvec.
//	*/
func _subjournalPage(tls *libc.TLS, pPg uintptr) (r int32) {
	var offset Ti64
	var pData, pData2, pPager uintptr
	var rc int32
	_, _, _, _, _ = offset, pData, pData2, pPager, rc
	rc = SQLITE_OK
	pPager = (*TPgHdr)(unsafe.Pointer(pPg)).FpPager
	if int32((*TPager)(unsafe.Pointer(pPager)).FjournalMode) != int32(PAGER_JOURNALMODE_OFF) {
		/* Open the sub-journal, if it has not already been opened */
		rc = _openSubJournal(tls, pPager)
		/* If the sub-journal was opened successfully (or was already open),
		 ** write the journal record into the file.  */
		if rc == SQLITE_OK {
			pData = (*TPgHdr)(unsafe.Pointer(pPg)).FpData
			offset = int64((*TPager)(unsafe.Pointer(pPager)).FnSubRec) * (int64(4) + (*TPager)(unsafe.Pointer(pPager)).FpageSize)
			pData2 = pData
			rc = _write32bits(tls, (*TPager)(unsafe.Pointer(pPager)).Fsjfd, offset, (*TPgHdr)(unsafe.Pointer(pPg)).Fpgno)
			if rc == SQLITE_OK {
				rc = _sqlite3OsWrite(tls, (*TPager)(unsafe.Pointer(pPager)).Fsjfd, pData2, int32((*TPager)(unsafe.Pointer(pPager)).FpageSize), offset+int64(4))
			}
		}
	}
	if rc == SQLITE_OK {
		(*TPager)(unsafe.Pointer(pPager)).FnSubRec = (*TPager)(unsafe.Pointer(pPager)).FnSubRec + 1
		rc = _addToSavepointBitvecs(tls, pPager, (*TPgHdr)(unsafe.Pointer(pPg)).Fpgno)
	}
	return rc
}

// C documentation
//
//	/* subtype(X)
//	**
//	** Return the subtype of X
//	*/
func _subtypeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	_ = argc
	Xsqlite3_result_int(tls, context, int32(Xsqlite3_value_subtype(tls, **(**uintptr)(__ccgo_up(argv)))))
}

func _sumFinalize(tls *libc.TLS, context uintptr) {
	var p uintptr
	_ = p
	p = Xsqlite3_aggregate_context(tls, context, 0)
	if p != 0 && (*TSumCtx)(unsafe.Pointer(p)).Fcnt > 0 {
		if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 {
			if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 {
				Xsqlite3_result_error(tls, context, __ccgo_ts+17680, -int32(1))
			} else {
				if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) {
					Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr)
				} else {
					Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum)
				}
			}
		} else {
			Xsqlite3_result_int64(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FiSum)
		}
	}
}

// C documentation
//
//	/*
//	** Routines used to compute the sum, average, and total.
//	**
//	** The SUM() function follows the (broken) SQL standard which means
//	** that it returns NULL if it sums over no inputs.  TOTAL returns
//	** 0.0 in that case.  In addition, TOTAL always returns a float where
//	** SUM might return an integer if it never encounters a floating point
//	** value.  TOTAL never fails, but SUM might throw an exception if
//	** it overflows an integer.
//	*/
func _sumStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var p uintptr
	var type1 int32
	var _ /* x at bp+0 */ Ti64
	_, _ = p, type1
	_ = argc
	p = Xsqlite3_aggregate_context(tls, context, int32(40))
	type1 = Xsqlite3_value_numeric_type(tls, **(**uintptr)(__ccgo_up(argv)))
	if p != 0 && type1 != int32(SQLITE_NULL) {
		(*TSumCtx)(unsafe.Pointer(p)).Fcnt = (*TSumCtx)(unsafe.Pointer(p)).Fcnt + 1
		if int32((*TSumCtx)(unsafe.Pointer(p)).Fapprox) == 0 {
			if type1 != int32(SQLITE_INTEGER) {
				_kahanBabuskaNeumaierInit(tls, p, (*TSumCtx)(unsafe.Pointer(p)).FiSum)
				(*TSumCtx)(unsafe.Pointer(p)).Fapprox = uint8(1)
				_kahanBabuskaNeumaierStep(tls, p, Xsqlite3_value_double(tls, **(**uintptr)(__ccgo_up(argv))))
			} else {
				**(**Ti64)(__ccgo_up(bp)) = (*TSumCtx)(unsafe.Pointer(p)).FiSum
				if _sqlite3AddInt64(tls, bp, Xsqlite3_value_int64(tls, **(**uintptr)(__ccgo_up(argv)))) == 0 {
					(*TSumCtx)(unsafe.Pointer(p)).FiSum = **(**Ti64)(__ccgo_up(bp))
				} else {
					(*TSumCtx)(unsafe.Pointer(p)).Fovrfl = uint8(1)
					_kahanBabuskaNeumaierInit(tls, p, (*TSumCtx)(unsafe.Pointer(p)).FiSum)
					(*TSumCtx)(unsafe.Pointer(p)).Fapprox = uint8(1)
					_kahanBabuskaNeumaierStepInt64(tls, p, Xsqlite3_value_int64(tls, **(**uintptr)(__ccgo_up(argv))))
				}
			}
		} else {
			if type1 == int32(SQLITE_INTEGER) {
				_kahanBabuskaNeumaierStepInt64(tls, p, Xsqlite3_value_int64(tls, **(**uintptr)(__ccgo_up(argv))))
			} else {
				(*TSumCtx)(unsafe.Pointer(p)).Fovrfl = uint8(0)
				_kahanBabuskaNeumaierStep(tls, p, Xsqlite3_value_double(tls, **(**uintptr)(__ccgo_up(argv))))
			}
		}
	}
}

func _tabIsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) {
	var db uintptr
	_ = db
	if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) {
		return _vtabIsReadOnly(tls, pParse, pTab)
	}
	if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(libc.Int32FromInt32(TF_Readonly)|libc.Int32FromInt32(TF_Shadow)) == uint32(0) {
		return 0
	}
	db = (*TParse)(unsafe.Pointer(pParse)).Fdb
	if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Readonly) != uint32(0) {
		return libc.BoolInt32(_sqlite3WritableSchema(tls, db) == 0 && int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0)
	}
	return _sqlite3ReadOnlyShadowTables(tls, db)
}

// C documentation
//
//	/*
//	** Return true if it is not allowed to drop the given table
//	*/
func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) {
	if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7973, int32(7)) == 0 {
		if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+16294, int32(4)) == 0 {
			return 0
		}
		if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+8775, int32(10)) == 0 {
			return 0
		}
		return int32(1)
	}
	if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 {
		return int32(1)
	}
	if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != 0 {
		return int32(1)
	}
	return 0
}

type _tagADVF = int32

type _tagAR_STATE = int32

type _tagAUTHENTICATEINFO = T_tagAUTHENTICATEINFO

type _tagApplicationType = int32

type _tagBINDINFO = T_tagBINDINFO

type _tagBINDSPEED = int32

type _tagBINDSTATUS = int32

type _tagBINDSTRING = int32

type _tagBIND_FLAGS = int32

type _tagCALLCONV = int32

type _tagCALLTYPE = int32

type _tagCHANGEKIND = int32

type _tagCLSCTX = int32

type _tagCODEBASEHOLD = T_tagCODEBASEHOLD

type _tagCOINIT = int32

type _tagCOINITBASE = int32

type _tagCOMSD = int32

type _tagCOWAIT_FLAGS = int32

type _tagDATADIR = int32

type _tagDATAINFO = T_tagDATAINFO

type _tagDCOM_CALL_STATE = int32

type _tagDESCKIND = int32

type _tagDISCARDCACHE = int32

type _tagDOMNodeType = int32

type _tagDVASPECT = int32

type _tagEOLE_AUTHENTICATION_CAPABILITIES = int32

type _tagEPrintXPSJobOperation = int32

type _tagEPrintXPSJobProgress = int32

type _tagEXTCONN = int32

type _tagExtendedErrorParamTypes = int32

type _tagFEEDBACK_TYPE = uint32

type _tagFUNCFLAGS = int32

type _tagFUNCKIND = int32

type _tagGLOBALOPT_EH_VALUES = int32

type _tagGLOBALOPT_PROPERTIES = int32

type _tagGLOBALOPT_RO_FLAGS = int32

type _tagGLOBALOPT_RPCTP_VALUES = int32

type _tagGLOBALOPT_UNMARSHALING_POLICY_VALUES = int32

type _tagHIT_LOGGING_INFO = T_tagHIT_LOGGING_INFO

type _tagINPUT_MESSAGE_DEVICE_TYPE = int32

type _tagINPUT_MESSAGE_ORIGIN_ID = int32

type _tagINVOKEKIND = int32

type _tagLIBFLAGS = int32

type _tagLOCKTYPE = int32

type _tagMEMCTX = int32

type _tagMKREDUCE = int32

type _tagMKSYS = int32

type _tagMSHCTX = int32

type _tagMSHLFLAGS = int32

type _tagOLECLOSE = int32

type _tagOLECONTF = int32

type _tagOLEGETMONIKER = int32

type _tagOLELINKBIND = int32

type _tagOLEMISC = int32

type _tagOLERENDER = int32

type _tagOLEUPDATE = int32

type _tagOLEVERBATTRIB = int32

type _tagOLEWHICHMK = int32

type _tagPENDINGMSG = int32

type _tagPENDINGTYPE = int32

type _tagPOINTER_BUTTON_CHANGE_TYPE = int32

type _tagPOINTER_DEVICE_CURSOR_TYPE = uint32

type _tagPOINTER_DEVICE_TYPE = uint32

type _tagPOINTER_INPUT_TYPE = int32

type _tagPRINTER_OPTION_FLAGS = int32

type _tagPROTOCOLDATA = T_tagPROTOCOLDATA

type _tagPROTOCOLFILTERDATA = T_tagPROTOCOLFILTERDATA

type _tagPROTOCOL_ARGUMENT = T_tagPROTOCOL_ARGUMENT

type _tagREGCLS = int32

type _tagREGKIND = int32

type _tagRPCOPT_PROPERTIES = int32

type _tagRPCOPT_SERVER_LOCALITY_VALUES = int32

type _tagRemBINDINFO = T_tagRemBINDINFO

type _tagSERVERCALL = int32

type _tagSF_TYPE = int32

type _tagSOFTDISTINFO = T_tagSOFTDISTINFO

type _tagSTATFLAG = int32

type _tagSTDMSHLFLAGS = int32

type _tagSTGC = int32

type _tagSTGMOVE = int32

type _tagSTGTY = int32

type _tagSTREAM_SEEK = int32

type _tagSYSKIND = int32

type _tagShutdownType = int32

type _tagStartParam = T_tagStartParam

type _tagTYMED = int32

type _tagTYPEFLAGS = int32

type _tagTYPEKIND = int32

type _tagTYSPEC = int32

type _tagURLTEMPLATE = int32

type _tagURLZONE = int32

type _tagUSERCLASSTYPE = int32

type _tagVARFLAGS = int32

type _tagVARKIND = int32

type _tagXMLEMEM_TYPE = int32

type _tagpropertykey = T_tagpropertykey

// C documentation
//
//	/*
//	** We already know that pExpr is a binary operator where both operands are
//	** column references.  This routine checks to see if pExpr is an equivalence
//	** relation:
//	**   1.  The SQLITE_Transitive optimization must be enabled
//	**   2.  Must be either an == or an IS operator
//	**   3.  Not originating in the ON clause of an OUTER JOIN
//	**   4.  The operator is not IS or else the query does not contain RIGHT JOIN
//	**   5.  The affinities of A and B must be compatible
//	**   6.  Both operands use the same collating sequence, and they must not
//	**       use explicit COLLATE clauses.
//	** If this routine returns TRUE, that means that the RHS can be substituted
//	** for the LHS anyplace else in the WHERE clause where the LHS column occurs.
//	** This is an optimization.  No harm comes from returning 0.  But if 1 is
//	** returned when it should not be, then incorrect answers might result.
//	*/
func _termIsEquivalence(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSrc uintptr) (r int32) {
	var aff1, aff2 int8
	_, _ = aff1, aff2
	if !((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Transitive)) == libc.Uint32FromInt32(0)) {
		return 0
	} /* (1) */
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_EQ) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_IS) {
		return 0
	} /* (2) */
	if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_Collate)) != uint32(0) {
		return 0
	} /* (3) */
	if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_IS) && (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc >= int32(2) && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 {
		return 0 /* (4) */
	}
	aff1 = _sqlite3ExprAffinity(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft)
	aff2 = _sqlite3ExprAffinity(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight)
	if int32(aff1) != int32(aff2) && (!(int32(aff1) >= libc.Int32FromInt32(SQLITE_AFF_NUMERIC)) || !(int32(aff2) >= libc.Int32FromInt32(SQLITE_AFF_NUMERIC))) {
		return 0 /* (5) */
	}
	if !(_sqlite3ExprCollSeqMatch(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) != 0) {
		return 0 /* (6) */
	}
	return int32(1)
}

const _threadid = 0

const _timeb = 0

type _timespec32 = T_timespec32

type _timespec64 = T_timespec64

var _tkCoalesce = TToken{
	Fz: __ccgo_ts + 8178,
	Fn: uint32(8),
}

type _tls_callback_type = T_tls_callback_type

// C documentation
//
//	/*
//	** Duplicate a range of text from an SQL statement, then convert all
//	** whitespace characters into ordinary space characters.
//	*/
func _triggerSpanDup(tls *libc.TLS, db uintptr, zStart uintptr, zEnd uintptr) (r uintptr) {
	var i int32
	var z uintptr
	_, _ = i, z
	z = _sqlite3DbSpanDup(tls, db, zStart, zEnd)
	if z != 0 {
		i = 0
		for {
			if !(**(**int8)(__ccgo_up(z + uintptr(i))) != 0) {
				break
			}
			if int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(z + uintptr(i))))])&int32(0x01) != 0 {
				**(**int8)(__ccgo_up(z + uintptr(i))) = int8(' ')
			}
			goto _1
		_1:
			;
			i = i + 1
		}
	}
	return z
}

// C documentation
//
//	/*
//	** Return a list of all triggers on table pTab if there exists at least
//	** one trigger that must be fired when an operation of type 'op' is
//	** performed on the table, and, if that operation is an UPDATE, if at
//	** least one of the columns in pChanges is being modified.
//	*/
func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, pChanges uintptr, pMask uintptr) (r uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var mask int32
	var p, pList, v1 uintptr
	_, _, _, _ = mask, p, pList, v1
	mask = 0
	pList = uintptr(0)
	pList = _sqlite3TriggerList(tls, pParse, pTab)
	if pList != uintptr(0) {
		p = pList
		if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_EnableTrigger) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpTrigger != uintptr(0) && _sqlite3SchemaToIndex(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TTrigger)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FpTrigger)).FpSchema) != int32(1) {
			/* The SQLITE_DBCONFIG_ENABLE_TRIGGER setting is off.  That means that
			 ** only TEMP triggers are allowed.  Truncate the pList so that it
			 ** includes only TEMP triggers */
			if pList == (*TTable)(unsafe.Pointer(pTab)).FpTrigger {
				pList = uintptr(0)
				goto exit_triggers_exist
			}
			for (*TTrigger)(unsafe.Pointer(p)).FpNext != 0 && (*TTrigger)(unsafe.Pointer(p)).FpNext != (*TTable)(unsafe.Pointer(pTab)).FpTrigger {
				p = (*TTrigger)(unsafe.Pointer(p)).FpNext
			}
			(*TTrigger)(unsafe.Pointer(p)).FpNext = uintptr(0)
			p = pList
		}
		for cond := true; cond; cond = p != 0 {
			if int32((*TTrigger)(unsafe.Pointer(p)).Fop) == op && _checkColumnOverlap(tls, (*TTrigger)(unsafe.Pointer(p)).FpColumns, pChanges) != 0 {
				mask = mask | int32((*TTrigger)(unsafe.Pointer(p)).Ftr_tm)
			} else {
				if int32((*TTrigger)(unsafe.Pointer(p)).Fop) == int32(TK_RETURNING) {
					/* The first time a RETURNING trigger is seen, the "op" value tells
					 ** us what time of trigger it should be. */
					(*TTrigger)(unsafe.Pointer(p)).Fop = uint8(op)
					if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) {
						if op != int32(TK_INSERT) {
							if op == int32(TK_DELETE) {
								v1 = __ccgo_ts + 23694
							} else {
								v1 = __ccgo_ts + 23701
							}
							_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23708, libc.VaList(bp+8, v1))
						}
						(*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE)
					} else {
						(*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_AFTER)
					}
					mask = mask | int32((*TTrigger)(unsafe.Pointer(p)).Ftr_tm)
				} else {
					if (*TTrigger)(unsafe.Pointer(p)).FbReturning != 0 && int32((*TTrigger)(unsafe.Pointer(p)).Fop) == int32(TK_INSERT) && op == int32(TK_UPDATE) && (*TParse)(unsafe.Pointer(pParse)).FpToplevel == uintptr(0) {
						/* Also fire a RETURNING trigger for an UPSERT */
						mask = mask | int32((*TTrigger)(unsafe.Pointer(p)).Ftr_tm)
					}
				}
			}
			p = (*TTrigger)(unsafe.Pointer(p)).FpNext
		}
	}
	goto exit_triggers_exist
exit_triggers_exist:
	;
	if pMask != 0 {
		**(**int32)(__ccgo_up(pMask)) = mask
	}
	if mask != 0 {
		v1 = pList
	} else {
		v1 = uintptr(0)
	}
	return v1
}

// C documentation
//
//	/*
//	** The unicode() function.  Return the integer unicode code-point value
//	** for the first character of the input string.
//	*/
func _unicodeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* z at bp+0 */ uintptr
	**(**uintptr)(__ccgo_up(bp)) = Xsqlite3_value_text(tls, **(**uintptr)(__ccgo_up(argv)))
	_ = argc
	if **(**uintptr)(__ccgo_up(bp)) != 0 && **(**uint8)(__ccgo_up(**(**uintptr)(__ccgo_up(bp)))) != 0 {
		Xsqlite3_result_int(tls, context, int32(_sqlite3Utf8Read(tls, bp)))
	}
}

// C documentation
//
//	/*
//	** If there are no outstanding cursors and we are not in the middle
//	** of a transaction but there is a read lock on the database, then
//	** this routine unrefs the first page of the database file which
//	** has the effect of releasing the read lock.
//	**
//	** If there is a transaction in progress, this routine is a no-op.
//	*/
func _unlockBtreeIfUnused(tls *libc.TLS, pBt uintptr) {
	var pPage1 uintptr
	_ = pPage1
	if int32((*TBtShared)(unsafe.Pointer(pBt)).FinTransaction) == TRANS_NONE && (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 != uintptr(0) {
		pPage1 = (*TBtShared)(unsafe.Pointer(pBt)).FpPage1
		(*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = uintptr(0)
		_releasePageOne(tls, pPage1)
	}
}

// C documentation
//
//	/*
//	** Implementation of the upper() and lower() SQL functions.
//	*/
func _upperFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	var i, n int32
	var z1, z2 uintptr
	_, _, _, _ = i, n, z1, z2
	_ = argc
	z2 = Xsqlite3_value_text(tls, **(**uintptr)(__ccgo_up(argv)))
	n = Xsqlite3_value_bytes(tls, **(**uintptr)(__ccgo_up(argv)))
	/* Verify that the call to _bytes() does not invalidate the _text() pointer */
	if z2 != 0 {
		z1 = _contextMalloc(tls, context, int64(n)+int64(1))
		if z1 != 0 {
			i = 0
			for {
				if !(i < n) {
					break
				}
				**(**int8)(__ccgo_up(z1 + uintptr(i))) = int8(int32(**(**int8)(__ccgo_up(z2 + uintptr(i)))) & ^(int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(z2 + uintptr(i))))]) & libc.Int32FromInt32(0x20)))
				goto _1
			_1:
				;
				i = i + 1
			}
			Xsqlite3_result_text(tls, context, z1, n, __ccgo_fp(Xsqlite3_free))
		}
	}
}

type _userBITMAP = T_userBITMAP

type _userCLIPFORMAT = T_userCLIPFORMAT

type _userFLAG_STGMEDIUM = T_userFLAG_STGMEDIUM

type _userHBITMAP = T_userHBITMAP

type _userHENHMETAFILE = T_userHENHMETAFILE

type _userHGLOBAL = T_userHGLOBAL

type _userHMETAFILE = T_userHMETAFILE

type _userHMETAFILEPICT = T_userHMETAFILEPICT

type _userHPALETTE = T_userHPALETTE

type _userSTGMEDIUM = T_userSTGMEDIUM

func _vdbeCompareMemString(tls *libc.TLS, pMem1 uintptr, pMem2 uintptr, pColl uintptr, prcErr uintptr) (r int32) {
	if int32((*TMem)(unsafe.Pointer(pMem1)).Fenc) == int32((*TCollSeq)(unsafe.Pointer(pColl)).Fenc) {
		/* The strings are already in the correct encoding.  Call the
		 ** comparison function directly */
		return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TCollSeq)(unsafe.Pointer(pColl)).FxCmp})))(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FpUser, (*TMem)(unsafe.Pointer(pMem1)).Fn, (*TMem)(unsafe.Pointer(pMem1)).Fz, (*TMem)(unsafe.Pointer(pMem2)).Fn, (*TMem)(unsafe.Pointer(pMem2)).Fz)
	} else {
		return _vdbeCompareMemStringWithEncodingChange(tls, pMem1, pMem2, pColl, prcErr)
	}
	return r
}

// C documentation
//
//	/*
//	** These functions are called when a transaction opened by the database
//	** handle associated with the VM passed as an argument is about to be
//	** committed. If there are outstanding foreign key constraint violations
//	** return an error code. Otherwise, SQLITE_OK.
//	**
//	** If there are outstanding FK violations and this function returns
//	** non-zero, set the result of the VM to SQLITE_CONSTRAINT_FOREIGNKEY
//	** and write an error message to it.
//	*/
func _vdbeFkError(tls *libc.TLS, p uintptr) (r int32) {
	(*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)<<libc.Int32FromInt32(8)
	(*TVdbe)(unsafe.Pointer(p)).FerrorAction = uint8(OE_Abort)
	_sqlite3VdbeError(tls, p, __ccgo_ts+6609, 0)
	if int32((*TVdbe)(unsafe.Pointer(p)).FprepFlags)&int32(SQLITE_PREPARE_SAVESQL) == 0 {
		return int32(SQLITE_ERROR)
	}
	return libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)<<libc.Int32FromInt32(8)
}

// C documentation
//
//	/*
//	** Release memory held by the Mem p, both external memory cleared
//	** by p->xDel and memory in p->zMalloc.
//	**
//	** This is a helper routine invoked by sqlite3VdbeMemRelease() in
//	** the unusual case where there really is memory in p that needs
//	** to be freed.
//	*/
func _vdbeMemClear(tls *libc.TLS, p uintptr) {
	if int32((*TMem)(unsafe.Pointer(p)).Fflags)&(libc.Int32FromInt32(MEM_Agg)|libc.Int32FromInt32(MEM_Dyn)) != 0 {
		_vdbeMemClearExternAndSetNull(tls, p)
	}
	if (*TMem)(unsafe.Pointer(p)).FszMalloc != 0 {
		_sqlite3DbFreeNN(tls, (*TMem)(unsafe.Pointer(p)).Fdb, (*TMem)(unsafe.Pointer(p)).FzMalloc)
		(*TMem)(unsafe.Pointer(p)).FszMalloc = 0
	}
	(*TMem)(unsafe.Pointer(p)).Fz = uintptr(0)
}

// C documentation
//
//	/*
//	** Read a varint from the stream of data accessed by p. Set *pnOut to
//	** the value read.
//	*/
func _vdbePmaReadVarint(tls *libc.TLS, p uintptr, pnOut uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var i, iBuf, rc, v1 int32
	var _ /* a at bp+16 */ uintptr
	var _ /* aVarint at bp+0 */ [16]Tu8
	_, _, _, _ = i, iBuf, rc, v1
	if (*TPmaReader)(unsafe.Pointer(p)).FaMap != 0 {
		**(**Ti64)(__ccgo_up(p)) += int64(_sqlite3GetVarint(tls, (*TPmaReader)(unsafe.Pointer(p)).FaMap+uintptr((*TPmaReader)(unsafe.Pointer(p)).FiReadOff), pnOut))
	} else {
		iBuf = int32((*TPmaReader)(unsafe.Pointer(p)).FiReadOff % int64((*TPmaReader)(unsafe.Pointer(p)).FnBuffer))
		if iBuf != 0 && (*TPmaReader)(unsafe.Pointer(p)).FnBuffer-iBuf >= int32(9) {
			**(**Ti64)(__ccgo_up(p)) += int64(_sqlite3GetVarint(tls, (*TPmaReader)(unsafe.Pointer(p)).FaBuffer+uintptr(iBuf), pnOut))
		} else {
			i = 0
			for cond := true; cond; cond = int32(**(**Tu8)(__ccgo_up(**(**uintptr)(__ccgo_up(bp + 16)))))&int32(0x80) != 0 {
				rc = _vdbePmaReadBlob(tls, p, int32(1), bp+16)
				if rc != 0 {
					return rc
				}
				v1 = i
				i = i + 1
				(**(**[16]Tu8)(__ccgo_up(bp)))[v1&int32(0xf)] = **(**Tu8)(__ccgo_up(**(**uintptr)(__ccgo_up(bp + 16))))
			}
			_sqlite3GetVarint(tls, bp, pnOut)
		}
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Initialize PmaReader pReadr to scan through the PMA stored in file pFile
//	** starting at offset iStart and ending at offset iEof-1. This function
//	** leaves the PmaReader pointing to the first key in the PMA (or EOF if the
//	** PMA is empty).
//	**
//	** If the pnByte parameter is NULL, then it is assumed that the file
//	** contains a single PMA, and that that PMA omits the initial length varint.
//	*/
func _vdbePmaReaderInit(tls *libc.TLS, pTask uintptr, pFile uintptr, iStart Ti64, pReadr uintptr, pnByte uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var v1 uintptr
	var _ /* nByte at bp+0 */ Tu64
	_, _ = rc, v1
	rc = _vdbePmaReaderSeek(tls, pTask, pReadr, pFile, iStart)
	if rc == SQLITE_OK {
		**(**Tu64)(__ccgo_up(bp)) = uint64(0) /* Size of PMA in bytes */
		rc = _vdbePmaReadVarint(tls, pReadr, bp)
		(*TPmaReader)(unsafe.Pointer(pReadr)).FiEof = int64(uint64((*TPmaReader)(unsafe.Pointer(pReadr)).FiReadOff) + **(**Tu64)(__ccgo_up(bp)))
		v1 = pnByte
		*(*Ti64)(unsafe.Pointer(v1)) = Ti64(uint64(*(*Ti64)(unsafe.Pointer(v1))) + **(**Tu64)(__ccgo_up(bp)))
	}
	if rc == SQLITE_OK {
		rc = _vdbePmaReaderNext(tls, pReadr)
	}
	return rc
}

// C documentation
//
//	/*
//	** The first argument passed to this function is a serial-type that
//	** corresponds to an integer - all values between 1 and 9 inclusive
//	** except 7. The second points to a buffer containing an integer value
//	** serialized according to serial_type. This function deserializes
//	** and returns the value.
//	*/
func _vdbeRecordDecodeInt(tls *libc.TLS, serial_type Tu32, aKey uintptr) (r Ti64) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* x at bp+8 */ Tu64
	var _ /* y at bp+0 */ Tu32
	switch serial_type {
	case uint32(0):
		fallthrough
	case uint32(1):
		return int64(int8(**(**Tu8)(__ccgo_up(aKey))))
	case uint32(2):
		return int64(libc.Int32FromInt32(256)*int32(int8(**(**Tu8)(__ccgo_up(aKey)))) | int32(**(**Tu8)(__ccgo_up(aKey + 1))))
	case uint32(3):
		return int64(libc.Int32FromInt32(65536)*int32(int8(**(**Tu8)(__ccgo_up(aKey)))) | int32(**(**Tu8)(__ccgo_up(aKey + 1)))<<libc.Int32FromInt32(8) | int32(**(**Tu8)(__ccgo_up(aKey + 2))))
	case uint32(4):
		**(**Tu32)(__ccgo_up(bp)) = uint32(**(**Tu8)(__ccgo_up(aKey)))<<libc.Int32FromInt32(24) | uint32(int32(**(**Tu8)(__ccgo_up(aKey + 1)))<<libc.Int32FromInt32(16)) | uint32(int32(**(**Tu8)(__ccgo_up(aKey + 2)))<<libc.Int32FromInt32(8)) | uint32(**(**Tu8)(__ccgo_up(aKey + 3)))
		return int64(**(**int32)(__ccgo_up(bp)))
	case uint32(5):
		return int64(uint32(**(**Tu8)(__ccgo_up(aKey + libc.UintptrFromInt32(2))))<<libc.Int32FromInt32(24)|uint32(int32(**(**Tu8)(__ccgo_up(aKey + libc.UintptrFromInt32(2) + 1)))<<libc.Int32FromInt32(16))|uint32(int32(**(**Tu8)(__ccgo_up(aKey + libc.UintptrFromInt32(2) + 2)))<<libc.Int32FromInt32(8))|uint32(**(**Tu8)(__ccgo_up(aKey + libc.UintptrFromInt32(2) + 3)))) + libc.Int64FromInt32(1)<<libc.Int32FromInt32(32)*int64(libc.Int32FromInt32(256)*int32(int8(**(**Tu8)(__ccgo_up(aKey))))|int32(**(**Tu8)(__ccgo_up(aKey + 1))))
	case uint32(6):
		**(**Tu64)(__ccgo_up(bp + 8)) = uint64(uint32(**(**Tu8)(__ccgo_up(aKey)))<<libc.Int32FromInt32(24) | uint32(int32(**(**Tu8)(__ccgo_up(aKey + 1)))<<libc.Int32FromInt32(16)) | uint32(int32(**(**Tu8)(__ccgo_up(aKey + 2)))<<libc.Int32FromInt32(8)) | uint32(**(**Tu8)(__ccgo_up(aKey + 3))))
		**(**Tu64)(__ccgo_up(bp + 8)) = **(**Tu64)(__ccgo_up(bp + 8))<<libc.Int32FromInt32(32) | uint64(uint32(**(**Tu8)(__ccgo_up(aKey + libc.UintptrFromInt32(4))))<<libc.Int32FromInt32(24)|uint32(int32(**(**Tu8)(__ccgo_up(aKey + libc.UintptrFromInt32(4) + 1)))<<libc.Int32FromInt32(16))|uint32(int32(**(**Tu8)(__ccgo_up(aKey + libc.UintptrFromInt32(4) + 2)))<<libc.Int32FromInt32(8))|uint32(**(**Tu8)(__ccgo_up(aKey + libc.UintptrFromInt32(4) + 3))))
		return **(**Ti64)(__ccgo_up(bp + 8))
	}
	return int64(serial_type - libc.Uint32FromInt32(8))
}

// C documentation
//
//	/*
//	** Check on a Vdbe to make sure it has not been finalized.  Log
//	** an error and return true if it has been finalized (or is otherwise
//	** invalid).  Return false if it is ok.
//	*/
func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) {
	if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) {
		Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6722, 0)
		return int32(1)
	} else {
		return 0
	}
	return r
}

func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) {
	if p == uintptr(0) {
		Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6767, 0)
		return int32(1)
	} else {
		return _vdbeSafety(tls, p)
	}
	return r
}

// C documentation
//
//	/*
//	** A specially optimized version of vdbeSorterCompare() that assumes that
//	** the first field of each key is an INTEGER value.
//	*/
func _vdbeSorterCompareInt(tls *libc.TLS, pTask uintptr, pbKey2Cached uintptr, pKey1 uintptr, nKey1 int32, pKey2 uintptr, nKey2 int32) (r int32) {
	var i, res, s1, s2, v21, v3 int32
	var n Tu8
	var p1, p2, v1, v2 uintptr
	_, _, _, _, _, _, _, _, _, _, _ = i, n, p1, p2, res, s1, s2, v1, v2, v21, v3
	p1 = pKey1
	p2 = pKey2
	s1 = int32(**(**Tu8)(__ccgo_up(p1 + 1)))    /* Left hand serial type */
	s2 = int32(**(**Tu8)(__ccgo_up(p2 + 1)))    /* Right hand serial type */
	v1 = p1 + uintptr(**(**Tu8)(__ccgo_up(p1))) /* Pointer to value 1 */
	v2 = p2 + uintptr(**(**Tu8)(__ccgo_up(p2))) /* Return value */
	if s1 == s2 {
		n = _aLen[s1]
		res = 0
		i = 0
		for {
			if !(i < int32(n)) {
				break
			}
			v21 = int32(**(**Tu8)(__ccgo_up(v1 + uintptr(i)))) - int32(**(**Tu8)(__ccgo_up(v2 + uintptr(i))))
			res = v21
			if v21 != 0 {
				if (int32(**(**Tu8)(__ccgo_up(v1)))^int32(**(**Tu8)(__ccgo_up(v2))))&int32(0x80) != 0 {
					if int32(**(**Tu8)(__ccgo_up(v1)))&int32(0x80) != 0 {
						v3 = -int32(1)
					} else {
						v3 = +libc.Int32FromInt32(1)
					}
					res = v3
				}
				break
			}
			goto _1
		_1:
			;
			i = i + 1
		}
	} else {
		if s1 > int32(7) && s2 > int32(7) {
			res = s1 - s2
		} else {
			if s2 > int32(7) {
				res = +libc.Int32FromInt32(1)
			} else {
				if s1 > int32(7) {
					res = -int32(1)
				} else {
					res = s1 - s2
				}
			}
			if res > 0 {
				if int32(**(**Tu8)(__ccgo_up(v1)))&int32(0x80) != 0 {
					res = -int32(1)
				}
			} else {
				if int32(**(**Tu8)(__ccgo_up(v2)))&int32(0x80) != 0 {
					res = +libc.Int32FromInt32(1)
				}
			}
		}
	}
	if res == 0 {
		if int32((*TKeyInfo)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo)).FnKeyField) > int32(1) {
			res = _vdbeSorterCompareTail(tls, pTask, pbKey2Cached, pKey1, nKey1, pKey2, nKey2)
		}
	} else {
		if **(**Tu8)(__ccgo_up((*TKeyInfo)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo)).FaSortFlags)) != 0 {
			res = res * -int32(1)
		}
	}
	return res
}

// C documentation
//
//	/*
//	** Return the SorterCompare function to compare values collected by the
//	** sorter object passed as the only argument.
//	*/
func _vdbeSorterGetCompare(tls *libc.TLS, p uintptr) (r TSorterCompare) {
	if int32((*TVdbeSorter)(unsafe.Pointer(p)).FtypeMask) == int32(SORTER_TYPE_INTEGER) {
		return __ccgo_fp(_vdbeSorterCompareInt)
	} else {
		if int32((*TVdbeSorter)(unsafe.Pointer(p)).FtypeMask) == int32(SORTER_TYPE_TEXT) {
			return __ccgo_fp(_vdbeSorterCompareText)
		}
	}
	return __ccgo_fp(_vdbeSorterCompare)
}

const _wP_tmpdir = "\\\\"

// C documentation
//
//	/*
//	** Compute a hash on a page number.  The resulting hash value must land
//	** between 0 and (HASHTABLE_NSLOT-1).  The walNextHash() function advances
//	** the hash to the next value in the event of a collision.
//	*/
func _walHash(tls *libc.TLS, iPage Tu32) (r int32) {
	return int32(iPage * uint32(HASHTABLE_HASH_1) & uint32(libc.Int32FromInt32(HASHTABLE_NPAGE)*libc.Int32FromInt32(2)-libc.Int32FromInt32(1)))
}

// C documentation
//
//	/*
//	** Read the wal-index header from the wal-index and into pWal->hdr.
//	** If the wal-header appears to be corrupt, try to reconstruct the
//	** wal-index from the WAL before returning.
//	**
//	** Set *pChanged to 1 if the wal-index header value in pWal->hdr is
//	** changed by this operation.  If pWal->hdr is unchanged, set *pChanged
//	** to 0.
//	**
//	** If the wal-index header is successfully read, return SQLITE_OK.
//	** Otherwise an SQLite error code.
//	*/
func _walIndexReadHdr(tls *libc.TLS, pWal uintptr, pChanged uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var bWriteLock, badHdr, rc, v1 int32
	var v4 bool
	var _ /* page0 at bp+0 */ uintptr
	_, _, _, _, _ = bWriteLock, badHdr, rc, v1, v4 /* Chunk of wal-index containing header */
	/* Ensure that page 0 of the wal-index (the page that contains the
	 ** wal-index header) is mapped. Return early if an error occurs here.
	 */
	rc = _walIndexPage(tls, pWal, 0, bp)
	if rc != SQLITE_OK {
		/* READONLY changed to OK in walIndexPage */
		if rc == libc.Int32FromInt32(SQLITE_READONLY)|libc.Int32FromInt32(5)<<libc.Int32FromInt32(8) {
			/* The SQLITE_READONLY_CANTINIT return means that the shared-memory
			 ** was openable but is not writable, and this thread is unable to
			 ** confirm that another write-capable connection has the shared-memory
			 ** open, and hence the content of the shared-memory is unreliable,
			 ** since the shared-memory might be inconsistent with the WAL file
			 ** and there is no writer on hand to fix it. */
			(*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable = uint8(1)
			(*TWal)(unsafe.Pointer(pWal)).FexclusiveMode = uint8(WAL_HEAPMEMORY_MODE)
			**(**int32)(__ccgo_up(pChanged)) = int32(1)
		} else {
			return rc /* Any other non-OK return is just an error */
		}
	} else {
		/* page0 can be NULL if the SHM is zero bytes in size and pWal->writeLock
		 ** is zero, which prevents the SHM from growing */
	}
	/* If the first page of the wal-index has been mapped, try to read the
	 ** wal-index header immediately, without holding any lock. This usually
	 ** works, but may fail if the wal-index header is corrupt or currently
	 ** being modified by another thread or process.
	 */
	if **(**uintptr)(__ccgo_up(bp)) != 0 {
		v1 = _walIndexTryHdr(tls, pWal, pChanged)
	} else {
		v1 = int32(1)
	}
	badHdr = v1
	/* If the first attempt failed, it might have been due to a race
	 ** with a writer.  So get a WRITE lock and try again.
	 */
	if badHdr != 0 {
		if int32((*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable) == 0 && int32((*TWal)(unsafe.Pointer(pWal)).FreadOnly)&int32(WAL_SHM_RDONLY) != 0 {
			v1 = _walLockShared(tls, pWal, WAL_WRITE_LOCK)
			rc = v1
			if SQLITE_OK == v1 {
				_walUnlockShared(tls, pWal, WAL_WRITE_LOCK)
				rc = libc.Int32FromInt32(SQLITE_READONLY) | libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)
			}
		} else {
			bWriteLock = int32((*TWal)(unsafe.Pointer(pWal)).FwriteLock)
			if v4 = bWriteLock != 0; !v4 {
				v1 = _walLockExclusive(tls, pWal, WAL_WRITE_LOCK, int32(1))
				rc = v1
			}
			if v4 || SQLITE_OK == v1 {
				/* If the write-lock was just obtained, set writeLock to 2 instead of
				 ** the usual 1. This causes walIndexPage() to behave as if the
				 ** write-lock were held (so that it allocates new pages as required),
				 ** and walHandleException() to unlock the write-lock if a SEH exception
				 ** is thrown.  */
				if !(bWriteLock != 0) {
					(*TWal)(unsafe.Pointer(pWal)).FwriteLock = uint8(2)
				}
				v1 = _walIndexPage(tls, pWal, 0, bp)
				rc = v1
				if SQLITE_OK == v1 {
					badHdr = _walIndexTryHdr(tls, pWal, pChanged)
					if badHdr != 0 {
						/* If the wal-index header is still malformed even while holding
						 ** a WRITE lock, it can only mean that the header is corrupted and
						 ** needs to be reconstructed.  So run recovery to do exactly that.
						 ** Disable blocking locks first.  */
						rc = _walIndexRecover(tls, pWal)
						**(**int32)(__ccgo_up(pChanged)) = int32(1)
					}
				}
				if bWriteLock == 0 {
					(*TWal)(unsafe.Pointer(pWal)).FwriteLock = uint8(0)
					_walUnlockExclusive(tls, pWal, WAL_WRITE_LOCK, int32(1))
				}
			}
		}
	}
	/* If the header is read successfully, check the version number to make
	 ** sure the wal-index was not constructed with some future format that
	 ** this version of SQLite cannot understand.
	 */
	if badHdr == 0 && (*TWal)(unsafe.Pointer(pWal)).Fhdr.FiVersion != uint32(WALINDEX_MAX_VERSION) {
		rc = _sqlite3CantopenError(tls, int32(70266))
	}
	if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 {
		if rc != SQLITE_OK {
			_walIndexClose(tls, pWal, 0)
			(*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable = uint8(0)
			/* walIndexRecover() might have returned SHORT_READ if a concurrent
			 ** writer truncated the WAL out from under it.  If that happens, it
			 ** indicates that a writer has fixed the SHM file for us, so retry */
			if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<<libc.Int32FromInt32(8) {
				rc = -int32(1)
			}
		}
		(*TWal)(unsafe.Pointer(pWal)).FexclusiveMode = uint8(WAL_NORMAL_MODE)
	}
	return rc
}

// C documentation
//
//	/*
//	** If the WAL file is currently larger than nMax bytes in size, truncate
//	** it to exactly nMax bytes. If an error occurs while doing so, ignore it.
//	*/
func _walLimitSize(tls *libc.TLS, pWal uintptr, nMax Ti64) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var rx int32
	var _ /* sz at bp+0 */ Ti64
	_ = rx
	_sqlite3BeginBenignMalloc(tls)
	rx = _sqlite3OsFileSize(tls, (*TWal)(unsafe.Pointer(pWal)).FpWalFd, bp)
	if rx == SQLITE_OK && **(**Ti64)(__ccgo_up(bp)) > nMax {
		rx = _sqlite3OsTruncate(tls, (*TWal)(unsafe.Pointer(pWal)).FpWalFd, nMax)
	}
	_sqlite3EndBenignMalloc(tls)
	if rx != 0 {
		Xsqlite3_log(tls, rx, __ccgo_ts+5530, libc.VaList(bp+16, (*TWal)(unsafe.Pointer(pWal)).FzWalName))
	}
}

// C documentation
//
//	/*
//	** The cache of the wal-index header must be valid to call this function.
//	** Return the page-size in bytes used by the database.
//	*/
func _walPagesize(tls *libc.TLS, pWal uintptr) (r int32) {
	return int32((*TWal)(unsafe.Pointer(pWal)).Fhdr.FszPage)&int32(0xfe00) + int32((*TWal)(unsafe.Pointer(pWal)).Fhdr.FszPage)&int32(0x0001)<<int32(16)
}

// C documentation
//
//	/*
//	** If there is the possibility of concurrent access to the SHM file
//	** from multiple threads and/or processes, then do a memory barrier.
//	*/
func _walShmBarrier(tls *libc.TLS, pWal uintptr) {
	if int32((*TWal)(unsafe.Pointer(pWal)).FexclusiveMode) != int32(WAL_HEAPMEMORY_MODE) {
		_sqlite3OsShmBarrier(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd)
	}
}

/*
** Add the SQLITE_NO_TSAN as part of the return-type of a function
** definition as a hint that the function contains constructs that
** might give false-positive TSAN warnings.
**
** See tag-20200519-1.
 */

const _wcmdln = 0

const _wctype = 0

const _wenviron = 0

// C documentation
//
//	/*
//	** Subterms pOne and pTwo are contained within WHERE clause pWC.  The
//	** two subterms are in disjunction - they are OR-ed together.
//	**
//	** If these two terms are both of the form:  "A op B" with the same
//	** A and B values but different operators and if the operators are
//	** compatible (if one is = and the other is <, for example) then
//	** add a new virtual AND term to pWC that is the combination of the
//	** two.
//	**
//	** Some examples:
//	**
//	**    x<y OR x=y    -->     x<=y
//	**    x=y OR x=y    -->     x=y
//	**    x<=y OR x<y   -->     x<=y
//	**
//	** The following is NOT generated:
//	**
//	**    x<y OR x>y    -->     x!=y
//	*/
func _whereCombineDisjuncts(tls *libc.TLS, pSrc uintptr, pWC uintptr, pOne uintptr, pTwo uintptr) {
	var db, pA, pB, pNew uintptr
	var eOp Tu16
	var idxNew, op int32
	_, _, _, _, _, _, _ = db, eOp, idxNew, op, pA, pB, pNew
	eOp = uint16(int32((*TWhereTerm)(unsafe.Pointer(pOne)).FeOperator) | int32((*TWhereTerm)(unsafe.Pointer(pTwo)).FeOperator)) /* Expressions associated with pOne and pTwo */
	if (int32((*TWhereTerm)(unsafe.Pointer(pOne)).FwtFlags)|int32((*TWhereTerm)(unsafe.Pointer(pTwo)).FwtFlags))&int32(TERM_VNULL) != 0 {
		return
	}
	if int32((*TWhereTerm)(unsafe.Pointer(pOne)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) == 0 {
		return
	}
	if int32((*TWhereTerm)(unsafe.Pointer(pTwo)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) == 0 {
		return
	}
	if int32(eOp)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) != int32(eOp) && int32(eOp)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != int32(eOp) {
		return
	}
	pA = (*TWhereTerm)(unsafe.Pointer(pOne)).FpExpr
	pB = (*TWhereTerm)(unsafe.Pointer(pTwo)).FpExpr
	if _sqlite3ExprCompare(tls, uintptr(0), (*TExpr)(unsafe.Pointer(pA)).FpLeft, (*TExpr)(unsafe.Pointer(pB)).FpLeft, -int32(1)) != 0 {
		return
	}
	if _sqlite3ExprCompare(tls, uintptr(0), (*TExpr)(unsafe.Pointer(pA)).FpRight, (*TExpr)(unsafe.Pointer(pB)).FpRight, -int32(1)) != 0 {
		return
	}
	if libc.BoolInt32((*TExpr)(unsafe.Pointer(pA)).Fflags&uint32(libc.Int32FromInt32(EP_Commuted)) != uint32(0)) != libc.BoolInt32((*TExpr)(unsafe.Pointer(pB)).Fflags&uint32(libc.Int32FromInt32(EP_Commuted)) != uint32(0)) {
		return
	}
	/* If we reach this point, it means the two subterms can be combined */
	if int32(eOp)&(int32(eOp)-int32(1)) != 0 {
		if int32(eOp)&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) != 0 {
			eOp = uint16(libc.Int32FromInt32(WO_EQ) << (libc.Int32FromInt32(TK_LE) - libc.Int32FromInt32(TK_EQ)))
		} else {
			eOp = uint16(libc.Int32FromInt32(WO_EQ) << (libc.Int32FromInt32(TK_GE) - libc.Int32FromInt32(TK_EQ)))
		}
	}
	db = (*TParse)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse)).Fdb
	pNew = _sqlite3ExprDup(tls, db, pA, 0)
	if pNew == uintptr(0) {
		return
	}
	op = int32(TK_EQ)
	for {
		if !(int32(eOp) != int32(WO_EQ)<<(op-int32(TK_EQ))) {
			break
		}
		goto _1
	_1:
		;
		op = op + 1
	}
	(*TExpr)(unsafe.Pointer(pNew)).Fop = uint8(op)
	idxNew = _whereClauseInsert(tls, pWC, pNew, uint16(libc.Int32FromInt32(TERM_VIRTUAL)|libc.Int32FromInt32(TERM_DYNAMIC)))
	_exprAnalyze(tls, pSrc, pWC, idxNew)
}

// C documentation
//
//	/*
//	** Estimate the number of rows that will be returned based on
//	** an equality constraint x=VALUE and where that VALUE occurs in
//	** the histogram data.  This only works when x is the left-most
//	** column of an index and sqlite_stat4 histogram data is available
//	** for that index.  When pExpr==NULL that means the constraint is
//	** "x IS NULL" instead of "x=VALUE".
//	**
//	** Write the estimated row count into *pnRow and return SQLITE_OK.
//	** If unable to make an estimate, leave *pnRow unchanged and return
//	** non-zero.
//	**
//	** This routine can fail if it is unable to load a collating sequence
//	** required for string comparison, or if unable to allocate memory
//	** for a UTF conversion required for comparison.  The error is stored
//	** in the pParse structure.
//	*/
func _whereEqualScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pExpr uintptr, pnRow uintptr) (r int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	var nEq, rc int32
	var p uintptr
	var _ /* a at bp+8 */ [2]TtRowcnt
	var _ /* bOk at bp+24 */ int32
	var _ /* pRec at bp+0 */ uintptr
	_, _, _ = nEq, p, rc
	p = (*(*struct {
		FnEq          Tu16
		FnBtm         Tu16
		FnTop         Tu16
		FnDistinctCol Tu16
		FpIndex       uintptr
		FpOrderBy     uintptr
	})(unsafe.Pointer((*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew + 24))).FpIndex
	nEq = int32((*(*struct {
		FnEq          Tu16
		FnBtm         Tu16
		FnTop         Tu16
		FnDistinctCol Tu16
		FpIndex       uintptr
		FpOrderBy     uintptr
	})(unsafe.Pointer((*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew + 24))).FnEq)
	**(**uintptr)(__ccgo_up(bp)) = (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec
	/* If values are not available for all fields of the index to the left
	 ** of this one, no estimate can be made. Return SQLITE_NOTFOUND. */
	if (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid < nEq-int32(1) {
		return int32(SQLITE_NOTFOUND)
	}
	/* This is an optimization only. The call to sqlite3Stat4ProbeSetValue()
	 ** below would return the same value.  */
	if nEq >= int32((*TIndex)(unsafe.Pointer(p)).FnColumn) {
		**(**TtRowcnt)(__ccgo_up(pnRow)) = uint64(1)
		return SQLITE_OK
	}
	rc = _sqlite3Stat4ProbeSetValue(tls, pParse, p, bp, pExpr, int32(1), nEq-int32(1), bp+24)
	(*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec = **(**uintptr)(__ccgo_up(bp))
	if rc != SQLITE_OK {
		return rc
	}
	if **(**int32)(__ccgo_up(bp + 24)) == 0 {
		return int32(SQLITE_NOTFOUND)
	}
	(*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = nEq
	_whereKeyStats(tls, pParse, p, **(**uintptr)(__ccgo_up(bp)), 0, bp+8)
	**(**TtRowcnt)(__ccgo_up(pnRow)) = (**(**[2]TtRowcnt)(__ccgo_up(bp + 8)))[int32(1)]
	return rc
}

// C documentation
//
//	/*
//	** Try to adjust the cost and number of output rows of WhereLoop pTemplate
//	** upwards or downwards so that:
//	**
//	**   (1) pTemplate costs less than any other WhereLoops that are a proper
//	**       subset of pTemplate
//	**
//	**   (2) pTemplate costs more than any other WhereLoops for which pTemplate
//	**       is a proper subset.
//	**
//	** To say "WhereLoop X is a proper subset of Y" means that X uses fewer
//	** WHERE clause terms than Y and that every WHERE clause term used by X is
//	** also used by Y.
//	*/
func _whereLoopAdjustCost(tls *libc.TLS, p uintptr, pTemplate uintptr) {
	var v2 int32
	_ = v2
	if (*TWhereLoop)(unsafe.Pointer(pTemplate)).FwsFlags&uint32(WHERE_INDEXED) == uint32(0) {
		return
	}
	for {
		if !(p != 0) {
			break
		}
		if int32((*TWhereLoop)(unsafe.Pointer(p)).FiTab) != int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FiTab) {
			goto _1
		}
		if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_INDEXED) == uint32(0) {
			goto _1
		}
		if _whereLoopCheaperProperSubset(tls, p, pTemplate) != 0 {
			/* Adjust pTemplate cost downward so that it is cheaper than its
			 ** subset p. */
			if int32((*TWhereLoop)(unsafe.Pointer(p)).FrRun) < int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FrRun) {
				v2 = int32((*TWhereLoop)(unsafe.Pointer(p)).FrRun)
			} else {
				v2 = int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FrRun)
			}
			(*TWhereLoop)(unsafe.Pointer(pTemplate)).FrRun = int16(v2)
			if int32((*TWhereLoop)(unsafe.Pointer(p)).FnOut)-int32(1) < int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FnOut) {
				v2 = int32((*TWhereLoop)(unsafe.Pointer(p)).FnOut) - int32(1)
			} else {
				v2 = int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FnOut)
			}
			(*TWhereLoop)(unsafe.Pointer(pTemplate)).FnOut = int16(v2)
		} else {
			if _whereLoopCheaperProperSubset(tls, pTemplate, p) != 0 {
				/* Adjust pTemplate cost upward so that it is costlier than p since
				 ** pTemplate is a proper subset of p */
				if int32((*TWhereLoop)(unsafe.Pointer(p)).FrRun) > int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FrRun) {
					v2 = int32((*TWhereLoop)(unsafe.Pointer(p)).FrRun)
				} else {
					v2 = int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FrRun)
				}
				(*TWhereLoop)(unsafe.Pointer(pTemplate)).FrRun = int16(v2)
				if int32((*TWhereLoop)(unsafe.Pointer(p)).FnOut)+int32(1) > int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FnOut) {
					v2 = int32((*TWhereLoop)(unsafe.Pointer(p)).FnOut) + int32(1)
				} else {
					v2 = int32((*TWhereLoop)(unsafe.Pointer(pTemplate)).FnOut)
				}
				(*TWhereLoop)(unsafe.Pointer(pTemplate)).FnOut = int16(v2)
			}
		}
		goto _1
	_1:
		;
		p = (*TWhereLoop)(unsafe.Pointer(p)).FpNextLoop
	}
}

// C documentation
//
//	/*
//	** Clear the WhereLoop.u union.  Leave WhereLoop.pLTerm intact.
//	*/
func _whereLoopClearUnion(tls *libc.TLS, db uintptr, p uintptr) {
	if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_VIRTUALTABLE)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != 0 {
		if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) && int32(Tu32(*(*uint8)(unsafe.Pointer(p + 24 + 4))&0x1>>0)) != 0 {
			Xsqlite3_free(tls, (*(*struct {
				FidxNum    int32
				F__ccgo4   uint8
				FisOrdered Ti8
				FomitMask  Tu16
				FidxStr    uintptr
				FmHandleIn Tu32
			})(unsafe.Pointer(p + 24))).FidxStr)
			libc.SetBitFieldPtr8Uint32(p+24+4, libc.Uint32FromInt32(0), 0, 0x1)
			(*(*struct {
				FidxNum    int32
				F__ccgo4   uint8
				FisOrdered Ti8
				FomitMask  Tu16
				FidxStr    uintptr
				FmHandleIn Tu32
			})(unsafe.Pointer(p + 24))).FidxStr = uintptr(0)
		} else {
			if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_AUTO_INDEX) != uint32(0) && (*(*struct {
				FnEq          Tu16
				FnBtm         Tu16
				FnTop         Tu16
				FnDistinctCol Tu16
				FpIndex       uintptr
				FpOrderBy     uintptr
			})(unsafe.Pointer(p + 24))).FpIndex != uintptr(0) {
				_sqlite3DbFree(tls, db, (*TIndex)(unsafe.Pointer((*(*struct {
					FnEq          Tu16
					FnBtm         Tu16
					FnTop         Tu16
					FnDistinctCol Tu16
					FpIndex       uintptr
					FpOrderBy     uintptr
				})(unsafe.Pointer(p + 24))).FpIndex)).FzColAff)
				_sqlite3DbFreeNN(tls, db, (*(*struct {
					FnEq          Tu16
					FnBtm         Tu16
					FnTop         Tu16
					FnDistinctCol Tu16
					FpIndex       uintptr
					FpOrderBy     uintptr
				})(unsafe.Pointer(p + 24))).FpIndex)
				(*(*struct {
					FnEq          Tu16
					FnBtm         Tu16
					FnTop         Tu16
					FnDistinctCol Tu16
					FpIndex       uintptr
					FpOrderBy     uintptr
				})(unsafe.Pointer(p + 24))).FpIndex = uintptr(0)
			}
		}
	}
}

// C documentation
//
//	/*
//	** Try to insert a new prerequisite/cost entry into the WhereOrSet pSet.
//	**
//	** The new entry might overwrite an existing entry, or it might be
//	** appended, or it might be discarded.  Do whatever is the right thing
//	** so that pSet keeps the N_OR_COST best entries seen so far.
//	*/
func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, nOut TLogEst) (r int32) {
	var i, v2 Tu16
	var p, v3 uintptr
	_, _, _, _ = i, p, v2, v3
	i = (*TWhereOrSet)(unsafe.Pointer(pSet)).Fn
	p = pSet + 8
	for {
		if !(int32(i) > 0) {
			break
		}
		if int32(rRun) <= int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) && prereq&(*TWhereOrCost)(unsafe.Pointer(p)).Fprereq == prereq {
			goto whereOrInsert_done
		}
		if int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) <= int32(rRun) && (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq&prereq == (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq {
			return 0
		}
		goto _1
	_1:
		;
		i = i - 1
		p += 16
	}
	if int32((*TWhereOrSet)(unsafe.Pointer(pSet)).Fn) < int32(N_OR_COST) {
		v3 = pSet
		v2 = *(*Tu16)(unsafe.Pointer(v3))
		*(*Tu16)(unsafe.Pointer(v3)) = *(*Tu16)(unsafe.Pointer(v3)) + 1
		p = pSet + 8 + uintptr(v2)*16
		(*TWhereOrCost)(unsafe.Pointer(p)).FnOut = nOut
	} else {
		p = pSet + 8
		i = uint16(1)
		for {
			if !(int32(i) < int32((*TWhereOrSet)(unsafe.Pointer(pSet)).Fn)) {
				break
			}
			if int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) > int32((**(**TWhereOrCost)(__ccgo_up(pSet + 8 + uintptr(i)*16))).FrRun) {
				p = pSet + 8 + uintptr(i)*16
			}
			goto _4
		_4:
			;
			i = i + 1
		}
		if int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) <= int32(rRun) {
			return 0
		}
	}
	goto whereOrInsert_done
whereOrInsert_done:
	;
	(*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq
	(*TWhereOrCost)(unsafe.Pointer(p)).FrRun = rRun
	if int32((*TWhereOrCost)(unsafe.Pointer(p)).FnOut) > int32(nOut) {
		(*TWhereOrCost)(unsafe.Pointer(p)).FnOut = nOut
	}
	return int32(1)
}

// C documentation
//
//	/*
//	** If it is not NULL, pTerm is a term that provides an upper or lower
//	** bound on a range scan. Without considering pTerm, it is estimated
//	** that the scan will visit nNew rows. This function returns the number
//	** estimated to be visited after taking pTerm into account.
//	**
//	** If the user explicitly specified a likelihood() value for this term,
//	** then the return value is the likelihood multiplied by the number of
//	** input rows. Otherwise, this function assumes that an "IS NOT NULL" term
//	** has a likelihood of 0.50, and any other term a likelihood of 0.25.
//	*/
func _whereRangeAdjust(tls *libc.TLS, pTerm uintptr, nNew TLogEst) (r TLogEst) {
	var nRet TLogEst
	_ = nRet
	nRet = nNew
	if pTerm != 0 {
		if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FtruthProb) <= 0 {
			nRet = int16(int32(nRet) + int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FtruthProb))
		} else {
			if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VNULL) == 0 {
				nRet = int16(int32(nRet) - libc.Int32FromInt32(20))
			}
		}
	}
	return nRet
}

// C documentation
//
//	/*
//	** This function is used to estimate the number of rows that will be visited
//	** by scanning an index for a range of values. The range may have an upper
//	** bound, a lower bound, or both. The WHERE clause terms that set the upper
//	** and lower bounds are represented by pLower and pUpper respectively. For
//	** example, assuming that index p is on t1(a):
//	**
//	**   ... FROM t1 WHERE a > ? AND a < ? ...
//	**                    |_____|   |_____|
//	**                       |         |
//	**                     pLower    pUpper
//	**
//	** If either of the upper or lower bound is not present, then NULL is passed in
//	** place of the corresponding WhereTerm.
//	**
//	** The value in (pBuilder->pNew->u.btree.nEq) is the number of the index
//	** column subject to the range constraint. Or, equivalently, the number of
//	** equality constraints optimized by the proposed index scan. For example,
//	** assuming index p is on t1(a, b), and the SQL query is:
//	**
//	**   ... FROM t1 WHERE a = ? AND b > ? AND b < ? ...
//	**
//	** then nEq is set to 1 (as the range restricted column, b, is the second
//	** left-most column of the index). Or, if the query is:
//	**
//	**   ... FROM t1 WHERE a > ? AND a < ? ...
//	**
//	** then nEq is set to 0.
//	**
//	** When this function is called, *pnOut is set to the sqlite3LogEst() of the
//	** number of rows that the index scan is expected to visit without
//	** considering the range constraints. If nEq is 0, then *pnOut is the number of
//	** rows in the index. Assuming no error occurs, *pnOut is adjusted (reduced)
//	** to account for the range constraints pLower and pUpper.
//	**
//	** In the absence of sqlite_stat4 ANALYZE data, or if such data cannot be
//	** used, a single range inequality reduces the search space by a factor of 4.
//	** and a pair of constraints (x>? AND x<?) reduces the expected number of
//	** rows visited by a factor of 64.
//	*/
func _whereRangeScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pLower uintptr, pUpper uintptr, pLoop uintptr) (r int32) {
	bp := tls.Alloc(48)
	defer tls.Free(48)
	var iLower, iNew, iNew1, iUpper TtRowcnt
	var iLwrIdx, iUprIdx, nBtm, nEq, nOut, nTop, rc, t1 int32
	var mask, mask1 Tu16
	var nNew TLogEst
	var p, pExpr, pExpr1, t uintptr
	var v1 uint64
	var _ /* a at bp+8 */ [2]TtRowcnt
	var _ /* bDone at bp+32 */ int32
	var _ /* n at bp+24 */ int32
	var _ /* n at bp+28 */ int32
	var _ /* pRec at bp+0 */ uintptr
	_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iLower, iLwrIdx, iNew, iNew1, iUpper, iUprIdx, mask, mask1, nBtm, nEq, nNew, nOut, nTop, p, pExpr, pExpr1, rc, t, t1, v1
	rc = SQLITE_OK
	nOut = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnOut)
	p = (*(*struct {
		FnEq          Tu16
		FnBtm         Tu16
		FnTop         Tu16
		FnDistinctCol Tu16
		FpIndex       uintptr
		FpOrderBy     uintptr
	})(unsafe.Pointer(pLoop + 24))).FpIndex
	nEq = int32((*(*struct {
		FnEq          Tu16
		FnBtm         Tu16
		FnTop         Tu16
		FnDistinctCol Tu16
		FpIndex       uintptr
		FpOrderBy     uintptr
	})(unsafe.Pointer(pLoop + 24))).FnEq)
	if (*TIndex)(unsafe.Pointer(p)).FnSample > 0 && nEq < (*TIndex)(unsafe.Pointer(p)).FnSampleCol && (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) {
		if nEq == (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid {
			**(**uintptr)(__ccgo_up(bp)) = (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec
			nBtm = int32((*(*struct {
				FnEq          Tu16
				FnBtm         Tu16
				FnTop         Tu16
				FnDistinctCol Tu16
				FpIndex       uintptr
				FpOrderBy     uintptr
			})(unsafe.Pointer(pLoop + 24))).FnBtm)
			nTop = int32((*(*struct {
				FnEq          Tu16
				FnBtm         Tu16
				FnTop         Tu16
				FnDistinctCol Tu16
				FpIndex       uintptr
				FpOrderBy     uintptr
			})(unsafe.Pointer(pLoop + 24))).FnTop) /* Rows less than the upper bound */
			iLwrIdx = -int32(2) /* aSample[] for the lower bound */
			iUprIdx = -int32(1) /* aSample[] for the upper bound */
			if **(**uintptr)(__ccgo_up(bp)) != 0 {
				(*TUnpackedRecord)(unsafe.Pointer(**(**uintptr)(__ccgo_up(bp)))).FnField = uint16((*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid)
			}
			/* Determine iLower and iUpper using ($P) only. */
			if nEq == 0 {
				iLower = uint64(0)
				iUpper = (*TIndex)(unsafe.Pointer(p)).FnRowEst0
			} else {
				/* Note: this call could be optimized away - since the same values must
				 ** have been requested when testing key $P in whereEqualScanEst().  */
				_whereKeyStats(tls, pParse, p, **(**uintptr)(__ccgo_up(bp)), 0, bp+8)
				iLower = (**(**[2]TtRowcnt)(__ccgo_up(bp + 8)))[0]
				iUpper = (**(**[2]TtRowcnt)(__ccgo_up(bp + 8)))[0] + (**(**[2]TtRowcnt)(__ccgo_up(bp + 8)))[int32(1)]
			}
			if **(**Tu8)(__ccgo_up((*TIndex)(unsafe.Pointer(p)).FaSortOrder + uintptr(nEq))) != 0 {
				/* The roles of pLower and pUpper are swapped for a DESC index */
				t = pLower
				pLower = pUpper
				pUpper = t
				t1 = nBtm
				nBtm = nTop
				nTop = t1
			}
			/* If possible, improve on the iLower estimate using ($P:$L). */
			if pLower != 0 { /* Values extracted from pExpr */
				pExpr = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pLower)).FpExpr)).FpRight
				rc = _sqlite3Stat4ProbeSetValue(tls, pParse, p, bp, pExpr, nBtm, nEq, bp+24)
				if rc == SQLITE_OK && **(**int32)(__ccgo_up(bp + 24)) != 0 {
					mask = uint16(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ)))
					if _sqlite3ExprVectorSize(tls, pExpr) > **(**int32)(__ccgo_up(bp + 24)) {
						mask = uint16(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)))
					}
					iLwrIdx = _whereKeyStats(tls, pParse, p, **(**uintptr)(__ccgo_up(bp)), 0, bp+8)
					if int32((*TWhereTerm)(unsafe.Pointer(pLower)).FeOperator)&int32(mask) != 0 {
						v1 = (**(**[2]TtRowcnt)(__ccgo_up(bp + 8)))[int32(1)]
					} else {
						v1 = uint64(0)
					}
					iNew = (**(**[2]TtRowcnt)(__ccgo_up(bp + 8)))[0] + v1
					if iNew > iLower {
						iLower = iNew
					}
					nOut = nOut - 1
					pLower = uintptr(0)
				}
			}
			/* If possible, improve on the iUpper estimate using ($P:$U). */
			if pUpper != 0 { /* Values extracted from pExpr */
				pExpr1 = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pUpper)).FpExpr)).FpRight
				rc = _sqlite3Stat4ProbeSetValue(tls, pParse, p, bp, pExpr1, nTop, nEq, bp+28)
				if rc == SQLITE_OK && **(**int32)(__ccgo_up(bp + 28)) != 0 {
					mask1 = uint16(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ)))
					if _sqlite3ExprVectorSize(tls, pExpr1) > **(**int32)(__ccgo_up(bp + 28)) {
						mask1 = uint16(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)))
					}
					iUprIdx = _whereKeyStats(tls, pParse, p, **(**uintptr)(__ccgo_up(bp)), int32(1), bp+8)
					if int32((*TWhereTerm)(unsafe.Pointer(pUpper)).FeOperator)&int32(mask1) != 0 {
						v1 = (**(**[2]TtRowcnt)(__ccgo_up(bp + 8)))[int32(1)]
					} else {
						v1 = uint64(0)
					}
					iNew1 = (**(**[2]TtRowcnt)(__ccgo_up(bp + 8)))[0] + v1
					if iNew1 < iUpper {
						iUpper = iNew1
					}
					nOut = nOut - 1
					pUpper = uintptr(0)
				}
			}
			(*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec = **(**uintptr)(__ccgo_up(bp))
			if rc == SQLITE_OK {
				if iUpper > iLower {
					nNew = _sqlite3LogEst(tls, iUpper-iLower)
					/* TUNING:  If both iUpper and iLower are derived from the same
					 ** sample, then assume they are 4x more selective.  This brings
					 ** the estimated selectivity more in line with what it would be
					 ** if estimated without the use of STAT4 tables. */
					if iLwrIdx == iUprIdx {
						nNew = int16(int32(nNew) - libc.Int32FromInt32(20))
					}
				} else {
					nNew = int16(10)
				}
				if int32(nNew) < nOut {
					nOut = int32(nNew)
				}
			}
		} else {
			**(**int32)(__ccgo_up(bp + 32)) = 0
			rc = _whereRangeSkipScanEst(tls, pParse, pLower, pUpper, pLoop, bp+32)
			if **(**int32)(__ccgo_up(bp + 32)) != 0 {
				return rc
			}
		}
	}
	nNew = _whereRangeAdjust(tls, pLower, int16(nOut))
	nNew = _whereRangeAdjust(tls, pUpper, nNew)
	/* TUNING: If there is both an upper and lower limit and neither limit
	 ** has an application-defined likelihood(), assume the range is
	 ** reduced by an additional 75%. This means that, by default, an open-ended
	 ** range query (e.g. col > ?) is assumed to match 1/4 of the rows in the
	 ** index. While a closed range (e.g. col BETWEEN ? AND ?) is estimated to
	 ** match 1/64 of the index. */
	if pLower != 0 && int32((*TWhereTerm)(unsafe.Pointer(pLower)).FtruthProb) > 0 && pUpper != 0 && int32((*TWhereTerm)(unsafe.Pointer(pUpper)).FtruthProb) > 0 {
		nNew = int16(int32(nNew) - libc.Int32FromInt32(20))
	}
	nOut = nOut - (libc.BoolInt32(pLower != uintptr(0)) + libc.BoolInt32(pUpper != uintptr(0)))
	if int32(nNew) < int32(10) {
		nNew = int16(10)
	}
	if int32(nNew) < nOut {
		nOut = int32(nNew)
	}
	(*TWhereLoop)(unsafe.Pointer(pLoop)).FnOut = int16(nOut)
	return rc
}

// C documentation
//
//	/*
//	** If the right-hand branch of the expression is a TK_COLUMN, then return
//	** a pointer to the right-hand branch.  Otherwise, return NULL.
//	*/
func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) {
	p = _sqlite3ExprSkipCollateAndLikely(tls, (*TExpr)(unsafe.Pointer(p)).FpRight)
	if p != uintptr(0) && int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_COLUMN) && !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_FixedCol)) != libc.Uint32FromInt32(0)) {
		return p
	}
	return uintptr(0)
}

// C documentation
//
//	/*
//	** Return the cost of sorting nRow rows, assuming that the keys have
//	** nOrderby columns and that the first nSorted columns are already in
//	** order.
//	*/
func _whereSortingCost(tls *libc.TLS, pWInfo uintptr, nRow TLogEst, nOrderBy int32, nSorted int32) (r TLogEst) {
	var nCol, rSortCost TLogEst
	_, _ = nCol, rSortCost
	/* TUNING: sorting cost proportional to the number of output columns: */
	nCol = _sqlite3LogEst(tls, uint64(((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpEList)).FnExpr+int32(59))/int32(30)))
	rSortCost = int16(int32(nRow) + int32(nCol))
	if nSorted > 0 {
		/* Scale the result by (Y/X) */
		rSortCost = int16(int32(rSortCost) + (int32(_sqlite3LogEst(tls, uint64((nOrderBy-nSorted)*int32(100)/nOrderBy))) - libc.Int32FromInt32(66)))
	}
	/* Multiple by log(M) where M is the number of output rows.
	 ** Use the LIMIT for M if it is smaller.  Or if this sort is for
	 ** a DISTINCT operator, M will be the number of distinct output
	 ** rows, so fudge it downwards a bit.
	 */
	if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_USE_LIMIT) != 0 {
		rSortCost = int16(int32(rSortCost) + libc.Int32FromInt32(10)) /* TUNING: Extra 2.0x if using LIMIT */
		if nSorted != 0 {
			rSortCost = int16(int32(rSortCost) + libc.Int32FromInt32(6)) /* TUNING: Extra 1.5x if also using partial sort */
		}
		if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FiLimit) < int32(nRow) {
			nRow = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiLimit
		}
	} else {
		if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 {
			/* TUNING: In the sort for a DISTINCT operator, assume that the DISTINCT
			 ** reduces the number of output rows by a factor of 2 */
			if int32(nRow) > int32(10) {
				nRow = int16(int32(nRow) - libc.Int32FromInt32(10))
			}
		}
	}
	rSortCost = int16(int32(rSortCost) + int32(_estLog(tls, nRow)))
	return rSortCost
}

var _winAppData = TwinVfsAppData{
	FpMethod: uintptr(unsafe.Pointer(&_winIoMethod)),
}

// C documentation
//
//	/*
//	** Helper functions to obtain and relinquish the global mutex. The
//	** global mutex is used to protect the winLockInfo objects used by
//	** this file, all of which may be shared by multiple threads.
//	**
//	** Function winShmMutexHeld() is used to assert() that the global mutex
//	** is held when required. This function is only used as part of assert()
//	** statements. e.g.
//	**
//	**   winShmEnterMutex()
//	**     assert( winShmMutexHeld() );
//	**   winShmLeaveMutex()
//	*/
var _winBigLock = uintptr(0)

// C documentation
//
//	/*
//	** Close a file.
//	**
//	** It is reported that an attempt to close a handle might sometimes
//	** fail.  This is a very unreasonable result, but Windows is notorious
//	** for being unreasonable so I do not doubt that it might happen.  If
//	** the close fails, we pause for 100 milliseconds and try again.  As
//	** many as MX_CLOSE_ATTEMPT attempts to close the handle are made before
//	** giving up and returning an error.
//	*/
func _winClose(tls *libc.TLS, id uintptr) (r int32) {
	var cnt, rc, v1 int32
	var pFile uintptr
	var v2, v3 bool
	_, _, _, _, _, _ = cnt, pFile, rc, v1, v2, v3
	cnt = 0
	pFile = id
	_winUnmapfile(tls, pFile)
	for {
		rc = (*(*func(*libc.TLS, THANDLE) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, (*TwinFile)(unsafe.Pointer(pFile)).Fh)
		/* SimulateIOError( rc=0; cnt=MX_CLOSE_ATTEMPT; ); */
		goto _4
	_4:
		;
		if v2 = rc == 0; v2 {
			cnt = cnt + 1
			v1 = cnt
		}
		if v3 = v2 && v1 < int32(MX_CLOSE_ATTEMPT); v3 {
			Xsqlite3_win32_sleep(tls, uint32(100))
		}
		if !(v3 && libc.Bool(libc.Int32FromInt32(1) != 0)) {
			break
		}
	}
	if rc != 0 {
		(*TwinFile)(unsafe.Pointer(pFile)).Fh = libc.UintptrFromInt32(0)
	}
	if rc != 0 {
		v1 = SQLITE_OK
	} else {
		v1 = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)<<libc.Int32FromInt32(8), (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+4845, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(51548))
	}
	return v1
}

// C documentation
//
//	/*
//	** Convert a UTF-8 filename into whatever form the underlying
//	** operating system wants filenames in.  Space to hold the result
//	** is obtained from malloc and must be freed by the calling
//	** function
//	**
//	** On Cygwin, 3 possible input forms are accepted:
//	** - If the filename starts with "<drive>:/" or "<drive>:\",
//	**   it is converted to UTF-16 as-is.
//	** - If the filename contains '/', it is assumed to be a
//	**   Cygwin absolute path, it is converted to a win32
//	**   absolute path in UTF-16.
//	** - Otherwise it must be a filename only, the win32 filename
//	**   is returned in UTF-16.
//	** Note: If the function cygwin_conv_path() fails, only
//	**   UTF-8 -> UTF-16 conversion will be done. This can only
//	**   happen when the file path >32k, in which case winUtf8ToUnicode()
//	**   will fail too.
//	*/
func _winConvertFromUtf8Filename(tls *libc.TLS, zFilename uintptr) (r uintptr) {
	var zConverted uintptr
	_ = zConverted
	zConverted = uintptr(0)
	if int32(1) != 0 {
		zConverted = _winUtf8ToUnicode(tls, zFilename)
	} else {
		zConverted = _winUtf8ToMbcs(tls, zFilename, (*(*func(*libc.TLS) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls))
	}
	/* caller will handle out of memory */
	return zConverted
}

// C documentation
//
//	/*
//	** Find the current time (in Universal Coordinated Time).  Write the
//	** current time and date as a Julian Day number into *prNow and
//	** return 0.  Return 1 if the time and date cannot be found.
//	*/
func _winCurrentTime(tls *libc.TLS, pVfs uintptr, prNow uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* i at bp+0 */ Tsqlite3_int64
	_ = rc
	rc = _winCurrentTimeInt64(tls, pVfs, bp)
	if !(rc != 0) {
		**(**float64)(__ccgo_up(prNow)) = float64(**(**Tsqlite3_int64)(__ccgo_up(bp))) / float64(8.64e+07)
	}
	return rc
}

// C documentation
//
//	/*
//	** Find the current time (in Universal Coordinated Time).  Write into *piNow
//	** the current time and date as a Julian Day number times 86_400_000.  In
//	** other words, write into *piNow the number of milliseconds since the Julian
//	** epoch of noon in Greenwich on November 24, 4714 B.C according to the
//	** proleptic Gregorian calendar.
//	**
//	** On success, return SQLITE_OK.  Return SQLITE_ERROR if the time and date
//	** cannot be found.
//	*/
func _winCurrentTimeInt64(tls *libc.TLS, pVfs uintptr, piNow uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var _ /* ft at bp+0 */ TFILETIME
	(*(*func(*libc.TLS, TLPFILETIME))(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(30)].FpCurrent})))(tls, bp)
	**(**Tsqlite3_int64)(__ccgo_up(piNow)) = _winFiletimeEpoch + (int64((**(**TFILETIME)(__ccgo_up(bp))).FdwHighDateTime)*_max32BitValue+int64((**(**TFILETIME)(__ccgo_up(bp))).FdwLowDateTime))/libc.Int64FromInt32(10000)
	_ = pVfs
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Delete the named file.
//	**
//	** Note that Windows does not allow a file to be deleted if some other
//	** process has it open.  Sometimes a virus scanner or indexing program
//	** will open a journal file shortly after it is created in order to do
//	** whatever it does.  While this other process is holding the
//	** file open, we will be unable to delete it.  To work around this
//	** problem, we delay 100 milliseconds and try to delete again.  Up
//	** to MX_DELETION_ATTEMPTs deletion attempts are run before giving
//	** up and returning an error.
//	*/
func _winDelete(tls *libc.TLS, pVfs uintptr, zFilename uintptr, syncDir int32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var attr TDWORD
	var rc int32
	var zConverted uintptr
	var _ /* cnt at bp+0 */ int32
	var _ /* lastErrno at bp+4 */ TDWORD
	_, _, _ = attr, rc, zConverted
	**(**int32)(__ccgo_up(bp)) = 0
	**(**TDWORD)(__ccgo_up(bp + 4)) = uint32(0)
	_ = pVfs
	_ = syncDir
	zConverted = _winConvertFromUtf8Filename(tls, zFilename)
	if zConverted == uintptr(0) {
		return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(12)<<libc.Int32FromInt32(8)
	}
	if int32(1) != 0 {
		for cond := true; cond; cond = int32(1) != 0 {
			attr = (*(*func(*libc.TLS, TLPCWSTR) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(21)].FpCurrent})))(tls, zConverted)
			if attr == uint32(-libc.Int32FromInt32(1)) {
				**(**TDWORD)(__ccgo_up(bp + 4)) = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
				if **(**TDWORD)(__ccgo_up(bp + 4)) == uint32(2) || **(**TDWORD)(__ccgo_up(bp + 4)) == uint32(3) {
					rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)<<libc.Int32FromInt32(8) /* Already gone? */
				} else {
					rc = int32(SQLITE_ERROR)
				}
				break
			}
			if attr&uint32(FILE_ATTRIBUTE_DIRECTORY) != 0 {
				rc = int32(SQLITE_ERROR) /* Files only. */
				break
			}
			if (*(*func(*libc.TLS, TLPCWSTR) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(10)].FpCurrent})))(tls, zConverted) != 0 {
				rc = SQLITE_OK /* Deleted OK. */
				break
			}
			if !(_winRetryIoerr(tls, bp, bp+4) != 0) {
				rc = int32(SQLITE_ERROR) /* No more retries. */
				break
			}
		}
	} else {
		for cond := true; cond; cond = int32(1) != 0 {
			attr = (*(*func(*libc.TLS, TLPCSTR) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(20)].FpCurrent})))(tls, zConverted)
			if attr == uint32(-libc.Int32FromInt32(1)) {
				**(**TDWORD)(__ccgo_up(bp + 4)) = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
				if **(**TDWORD)(__ccgo_up(bp + 4)) == uint32(2) || **(**TDWORD)(__ccgo_up(bp + 4)) == uint32(3) {
					rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)<<libc.Int32FromInt32(8) /* Already gone? */
				} else {
					rc = int32(SQLITE_ERROR)
				}
				break
			}
			if attr&uint32(FILE_ATTRIBUTE_DIRECTORY) != 0 {
				rc = int32(SQLITE_ERROR) /* Files only. */
				break
			}
			if (*(*func(*libc.TLS, TLPCSTR) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(9)].FpCurrent})))(tls, zConverted) != 0 {
				rc = SQLITE_OK /* Deleted OK. */
				break
			}
			if !(_winRetryIoerr(tls, bp, bp+4) != 0) {
				rc = int32(SQLITE_ERROR) /* No more retries. */
				break
			}
		}
	}
	if rc != 0 && rc != libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(23)<<libc.Int32FromInt32(8) {
		rc = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(10)<<libc.Int32FromInt32(8), **(**TDWORD)(__ccgo_up(bp + 4)), __ccgo_ts+5182, zFilename, int32(54456))
	} else {
		_winLogIoerr(tls, **(**int32)(__ccgo_up(bp)), int32(54458))
	}
	Xsqlite3_free(tls, zConverted)
	return rc
}

// C documentation
//
//	/*
//	** Return a vector of device characteristics.
//	*/
func _winDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) {
	var p uintptr
	var v1 int32
	_, _ = p, v1
	p = id
	if int32((*TwinFile)(unsafe.Pointer(p)).FctrlFlags)&int32(WINFILE_PSOW) != 0 {
		v1 = int32(SQLITE_IOCAP_POWERSAFE_OVERWRITE)
	} else {
		v1 = 0
	}
	return libc.Int32FromInt32(SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN) | libc.Int32FromInt32(SQLITE_IOCAP_SUBPAGE_READ) | v1
}

func _winDlClose(tls *libc.TLS, pVfs uintptr, pHandle uintptr) {
	_ = pVfs
	(*(*func(*libc.TLS, THMODULE) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, pHandle)
}

func _winDlError(tls *libc.TLS, pVfs uintptr, nBuf int32, zBufOut uintptr) {
	_ = pVfs
	_winGetLastErrorMsg(tls, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), nBuf, zBufOut)
}

// C documentation
//
//	/*
//	** Interfaces for opening a shared library, finding entry points
//	** within the shared library, and closing the shared library.
//	*/
func _winDlOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr) (r uintptr) {
	var h THANDLE
	var zConverted uintptr
	_, _ = h, zConverted
	zConverted = _winConvertFromUtf8Filename(tls, zFilename)
	_ = pVfs
	if zConverted == uintptr(0) {
		return uintptr(0)
	}
	if int32(1) != 0 {
		h = (*(*func(*libc.TLS, TLPCWSTR) THMODULE)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(45)].FpCurrent})))(tls, zConverted)
	} else {
		h = (*(*func(*libc.TLS, TLPCSTR) THMODULE)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(44)].FpCurrent})))(tls, zConverted)
	}
	Xsqlite3_free(tls, zConverted)
	return h
}

func _winDlSym(tls *libc.TLS, pVfs uintptr, pH uintptr, zSym uintptr) (r uintptr) {
	var proc TFARPROC
	_ = proc
	_ = pVfs
	proc = (*(*func(*libc.TLS, THMODULE, TLPCSTR) TFARPROC)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(27)].FpCurrent})))(tls, pH, zSym)
	return proc
}

// C documentation
//
//	/*
//	** If possible, return a pointer to a mapping of file fd starting at offset
//	** iOff. The mapping must be valid for at least nAmt bytes.
//	**
//	** If such a pointer can be obtained, store it in *pp and return SQLITE_OK.
//	** Or, if one cannot but no error occurs, set *pp to 0 and return SQLITE_OK.
//	** Finally, if an error does occur, return an SQLite error code. The final
//	** value of *pp is undefined in this case.
//	**
//	** If this function does return a pointer, the caller must eventually
//	** release the reference by calling winUnfetch().
//	*/
func _winFetch(tls *libc.TLS, fd uintptr, iOff Ti64, nAmt int32, pp uintptr) (r int32) {
	var nEofBuffer, rc int32
	var pFd uintptr
	_, _, _ = nEofBuffer, pFd, rc
	pFd = fd /* The underlying database file */
	**(**uintptr)(__ccgo_up(pp)) = uintptr(0)
	if (*TwinFile)(unsafe.Pointer(pFd)).FmmapSizeMax > 0 {
		/* Ensure that there is always at least a 256 byte buffer of addressable
		 ** memory following the returned page. If the database is corrupt,
		 ** SQLite may overread the page slightly (in practice only a few bytes,
		 ** but 256 is safe, round, number).  */
		nEofBuffer = int32(256)
		if (*TwinFile)(unsafe.Pointer(pFd)).FpMapRegion == uintptr(0) {
			rc = _winMapfile(tls, pFd, int64(-int32(1)))
			if rc != SQLITE_OK {
				return rc
			}
		}
		if (*TwinFile)(unsafe.Pointer(pFd)).FmmapSize >= iOff+int64(nAmt)+int64(nEofBuffer) {
			**(**uintptr)(__ccgo_up(pp)) = (*TwinFile)(unsafe.Pointer(pFd)).FpMapRegion + uintptr(iOff)
			(*TwinFile)(unsafe.Pointer(pFd)).FnFetchOut = (*TwinFile)(unsafe.Pointer(pFd)).FnFetchOut + 1
		}
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Determine the current size of a file in bytes
//	*/
func _winFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var lastErrno, lowerBits, v1 TDWORD
	var pFile uintptr
	var rc int32
	var v2 bool
	var _ /* upperBits at bp+0 */ TDWORD
	_, _, _, _, _, _ = lastErrno, lowerBits, pFile, rc, v1, v2
	pFile = id
	rc = SQLITE_OK
	lowerBits = (*(*func(*libc.TLS, THANDLE, TLPDWORD) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, (*TwinFile)(unsafe.Pointer(pFile)).Fh, bp)
	**(**Tsqlite3_int64)(__ccgo_up(pSize)) = int64(**(**TDWORD)(__ccgo_up(bp)))<<libc.Int32FromInt32(32) + int64(lowerBits)
	if v2 = lowerBits == libc.Uint32FromUint32(0xffffffff); v2 {
		v1 = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
		lastErrno = v1
	}
	if v2 && v1 != uint32(0) {
		(*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = lastErrno
		rc = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(7)<<libc.Int32FromInt32(8), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+4926, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(51981))
	}
	return rc
}

/*
** LOCKFILE_FAIL_IMMEDIATELY is undefined on some Windows systems.
 */

/*
** Historically, SQLite has used both the LockFile and LockFileEx functions.
** When the LockFile function was used, it was always expected to fail
** immediately if the lock could not be obtained.  Also, it always expected to
** obtain an exclusive lock.  These flags are used with the LockFileEx function
** and reflect those expectations; therefore, they should not be changed.
 */

/*
** Currently, SQLite never calls the LockFileEx function without wanting the
** call to fail immediately if the lock cannot be obtained.
 */

var _winFiletimeEpoch = libc.Int64FromInt32(23058135) * libc.Int64FromInt32(8640000)

func _winFullPathname(tls *libc.TLS, pVfs uintptr, zRelative uintptr, nFull int32, zFull uintptr) (r int32) {
	var pMutex uintptr
	var rc int32
	_, _ = pMutex, rc
	pMutex = _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))
	Xsqlite3_mutex_enter(tls, pMutex)
	rc = _winFullPathnameNoMutex(tls, pVfs, zRelative, nFull, zFull)
	Xsqlite3_mutex_leave(tls, pMutex)
	return rc
}

// C documentation
//
//	/*
//	** The idea is that this function works like a combination of
//	** GetLastError() and FormatMessage() on Windows (or errno and
//	** strerror_r() on Unix). After an error is returned by an OS
//	** function, SQLite calls this function with zBuf pointing to
//	** a buffer of nBuf bytes. The OS layer should populate the
//	** buffer with a nul-terminated UTF-8 encoded error message
//	** describing the last IO error to have occurred within the calling
//	** thread.
//	**
//	** If the error message is too large for the supplied buffer,
//	** it should be truncated. The return value of xGetLastError
//	** is zero if the error message fits in the buffer, or non-zero
//	** otherwise (if the message was truncated). If non-zero is returned,
//	** then it is not necessary to include the nul-terminator character
//	** in the output buffer.
//	**
//	** Not supplying an error message will have no adverse effect
//	** on SQLite. It is fine to have an implementation that never
//	** returns an error message:
//	**
//	**   int xGetLastError(sqlite3_vfs *pVfs, int nBuf, char *zBuf){
//	**     assert(zBuf[0]=='\0');
//	**     return 0;
//	**   }
//	**
//	** However if an error message is supplied, it will be incorporated
//	** by sqlite into the error message available to the user using
//	** sqlite3_errmsg(), possibly making IO errors easier to debug.
//	*/
func _winGetLastError(tls *libc.TLS, pVfs uintptr, nBuf int32, zBuf uintptr) (r int32) {
	var e TDWORD
	_ = e
	e = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
	_ = pVfs
	if nBuf > 0 {
		_winGetLastErrorMsg(tls, e, nBuf, zBuf)
	}
	return int32(e)
}

// C documentation
//
//	/*
//	** Seek the file handle h to offset nByte of the file.
//	**
//	** If successful, return SQLITE_OK. Or, if an error occurs, return an SQLite
//	** error code.
//	*/
func _winHandleSeek(tls *libc.TLS, h THANDLE, iOffset Tsqlite3_int64) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var dwRet, lastErrno TDWORD
	var lowerBits TLONG
	var rc int32
	var _ /* upperBits at bp+0 */ TLONG
	_, _, _, _ = dwRet, lastErrno, lowerBits, rc
	rc = SQLITE_OK /* Value returned by SetFilePointer() */
	**(**TLONG)(__ccgo_up(bp)) = int32(iOffset >> libc.Int32FromInt32(32) & libc.Int64FromInt32(0x7fffffff))
	lowerBits = int32(iOffset & libc.Int64FromUint32(0xffffffff))
	dwRet = (*(*func(*libc.TLS, THANDLE, TLONG, TPLONG, TDWORD) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(54)].FpCurrent})))(tls, h, lowerBits, bp, uint32(FILE_BEGIN))
	/* API oddity: If successful, SetFilePointer() returns a dword
	 ** containing the lower 32-bits of the new file-offset. Or, if it fails,
	 ** it returns INVALID_SET_FILE_POINTER. However according to MSDN,
	 ** INVALID_SET_FILE_POINTER may also be a valid new offset. So to determine
	 ** whether an error has actually occurred, it is also necessary to call
	 ** GetLastError().  */
	if dwRet == uint32(-libc.Int32FromInt32(1)) {
		lastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
		if lastErrno != uint32(0) {
			rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(22)<<libc.Int32FromInt32(8)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Determine the size in bytes of the file opened by the handle passed as
//	** the first argument.
//	*/
func _winHandleSize(tls *libc.TLS, h THANDLE, pnByte uintptr) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var lowerBits TDWORD
	var rc int32
	var _ /* upperBits at bp+0 */ TDWORD
	_, _ = lowerBits, rc
	rc = SQLITE_OK
	**(**TDWORD)(__ccgo_up(bp)) = uint32(0)
	lowerBits = uint32(0)
	lowerBits = (*(*func(*libc.TLS, THANDLE, TLPDWORD) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, h, bp)
	**(**Tsqlite3_int64)(__ccgo_up(pnByte)) = int64(**(**TDWORD)(__ccgo_up(bp)))<<libc.Int32FromInt32(32) + int64(lowerBits)
	if lowerBits == libc.Uint32FromUint32(0xffffffff) && (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls) != uint32(0) {
		rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(7)<<libc.Int32FromInt32(8)
	}
	return rc
}

// C documentation
//
//	/*
//	** Truncate the file opened by handle h to nByte bytes in size.
//	*/
func _winHandleTruncate(tls *libc.TLS, h THANDLE, nByte Tsqlite3_int64) (r int32) {
	var rc int32
	_ = rc
	rc = SQLITE_OK /* Return code */
	rc = _winHandleSeek(tls, h, nByte)
	if rc == SQLITE_OK {
		if 0 == (*(*func(*libc.TLS, THANDLE) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(53)].FpCurrent})))(tls, h) {
			rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(6)<<libc.Int32FromInt32(8)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** Remove an nByte lock starting at offset iOff from HANDLE h.
//	*/
func _winHandleUnlock(tls *libc.TLS, _h THANDLE, iOff int32, nByte int32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	*(*THANDLE)(unsafe.Pointer(bp)) = _h
	var ret TBOOL
	var v1 int32
	_, _ = ret, v1
	ret = _winUnlockFile(tls, bp, uint32(iOff), uint32(0), uint32(nByte), uint32(0))
	if ret != 0 {
		v1 = SQLITE_OK
	} else {
		v1 = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(8)<<libc.Int32FromInt32(8)
	}
	return v1
}

/*****************************************************************************
** The next group of routines implement the I/O methods specified
** by the sqlite3_io_methods object.
******************************************************************************/

/*
** Some Microsoft compilers lack this definition.
 */

// C documentation
//
//	/*
//	** This vector defines all the methods that can operate on an
//	** sqlite3_file for win32.
//	*/
var _winIoMethod = Tsqlite3_io_methods{
	FiVersion: int32(3),
}

// C documentation
//
//	/*
//	** This vector defines all the methods that can operate on an
//	** sqlite3_file for win32 without performing any locking.
//	*/
var _winIoNolockMethod = Tsqlite3_io_methods{
	FiVersion: int32(3),
}

// C documentation
//
//	/*
//	** The number of times that a ReadFile(), WriteFile(), and DeleteFile()
//	** will be retried following a locking error - probably caused by
//	** antivirus software.  Also the initial delay before the first retry.
//	** The delay increases linearly with each retry.
//	*/
var _winIoerrRetry = int32(SQLITE_WIN32_IOERR_RETRY)

var _winIoerrRetryDelay = int32(SQLITE_WIN32_IOERR_RETRY_DELAY)

/*
** The "winIoerrCanRetry1" macro is used to determine if a particular I/O
** error code obtained via GetLastError() is eligible to be retried.  It
** must accept the error code DWORD as its only argument and should return
** non-zero if the error code is transient in nature and the operation
** responsible for generating the original error might succeed upon being
** retried.  The argument to this macro should be a variable.
**
** Additionally, a macro named "winIoerrCanRetry2" may be defined.  If it
** is defined, it will be consulted only when the macro "winIoerrCanRetry1"
** returns zero.  The "winIoerrCanRetry2" macro is completely optional and
** may be used to include additional error codes in the set that should
** result in the failing I/O operation being retried by the caller.  If
** defined, the "winIoerrCanRetry2" macro must exhibit external semantics
** identical to those of the "winIoerrCanRetry1" macro.
 */

// C documentation
//
//	/*
//	** Returns non-zero if the specified path name starts with a drive letter
//	** followed by a colon character.
//	*/
func _winIsDriveLetterAndColon(tls *libc.TLS, zPathname uintptr) (r TBOOL) {
	return libc.BoolInt32(int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zPathname)))])&int32(0x02) != 0 && int32(**(**int8)(__ccgo_up(zPathname + 1))) == int32(':'))
}

// C documentation
//
//	/*
//	** Returns non-zero if the specified path name starts with the "long path"
//	** prefix.
//	*/
func _winIsLongPathPrefix(tls *libc.TLS, zPathname uintptr) (r TBOOL) {
	return libc.BoolInt32(int32(**(**int8)(__ccgo_up(zPathname))) == int32('\\') && int32(**(**int8)(__ccgo_up(zPathname + 1))) == int32('\\') && int32(**(**int8)(__ccgo_up(zPathname + 2))) == int32('?') && int32(**(**int8)(__ccgo_up(zPathname + 3))) == int32('\\'))
}

// C documentation
//
//	/*
//	** Return true if the string passed as the only argument is likely
//	** to be a UNC path.  Return false if note.
//	**
//	** Return true if:
//	**
//	**   (1) The name begins with "\\"
//	**   (2) But does not begin with "\\?\C:\" where C can be any alphabetic
//	**       character.
//	**
//	** For testing, also return true in all cases if the global variable
//	** sqlite3_win_test_unc_locking is true.
//	*/
func _winIsUNCPath(tls *libc.TLS, zFile uintptr) (r int32) {
	if int32(**(**int8)(__ccgo_up(zFile))) == int32('\\') && int32(**(**int8)(__ccgo_up(zFile + 1))) == int32('\\') {
		if int32(**(**int8)(__ccgo_up(zFile + 2))) == int32('?') && int32(**(**int8)(__ccgo_up(zFile + 3))) == int32('\\') && int32(_sqlite3CtypeMap[uint8(**(**int8)(__ccgo_up(zFile + 4)))])&int32(0x02) != 0 && int32(**(**int8)(__ccgo_up(zFile + 5))) == int32(':') && (int32(**(**int8)(__ccgo_up(zFile + 6))) == int32('/') || int32(**(**int8)(__ccgo_up(zFile + 6))) == int32('\\')) {
			return sqlite3_win_test_unc_locking
		} else {
			return int32(1)
		}
	}
	return sqlite3_win_test_unc_locking
}

// C documentation
//
//	/*
//	** Returns non-zero if the specified path name should be used verbatim.  If
//	** non-zero is returned from this function, the calling function must simply
//	** use the provided path name verbatim -OR- resolve it into a full path name
//	** using the GetFullPathName Win32 API function (if available).
//	*/
func _winIsVerbatimPathname(tls *libc.TLS, zPathname uintptr) (r TBOOL) {
	/*
	 ** If the path name starts with a forward slash or a backslash, it is either
	 ** a legal UNC name, a volume relative path, or an absolute path name in the
	 ** "Unix" format on Windows.  There is no easy way to differentiate between
	 ** the final two cases; therefore, we return the safer return value of TRUE
	 ** so that callers of this function will simply use it verbatim.
	 */
	if int32(**(**int8)(__ccgo_up(zPathname))) == int32('/') || int32(**(**int8)(__ccgo_up(zPathname))) == int32('\\') {
		return int32(TRUE)
	}
	/*
	 ** If the path name starts with a letter and a colon it is either a volume
	 ** relative path or an absolute path.  Callers of this function must not
	 ** attempt to treat it as a relative path name (i.e. they should simply use
	 ** it verbatim).
	 */
	if _winIsDriveLetterAndColon(tls, zPathname) != 0 {
		return int32(TRUE)
	}
	/*
	 ** If we get to this point, the path name should almost certainly be a purely
	 ** relative one (i.e. not a UNC name, not absolute, and not volume relative).
	 */
	return FALSE
}

// C documentation
//
//	/*
//	** The DMS lock has not yet been taken on the shm file associated with
//	** pShmNode. Take the lock. Truncate the *-shm file if required.
//	** Return SQLITE_OK if successful, or an SQLite error code otherwise.
//	*/
func _winLockSharedMemory(tls *libc.TLS, pShmNode uintptr, nMs TDWORD) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var rc int32
	var _ /* h at bp+0 */ THANDLE
	_ = rc
	**(**THANDLE)(__ccgo_up(bp)) = (*TwinShmNode)(unsafe.Pointer(pShmNode)).FhSharedShm
	rc = SQLITE_OK
	rc = _winHandleLockTimeout(tls, **(**THANDLE)(__ccgo_up(bp)), uint32((libc.Int32FromInt32(22)+libc.Int32FromInt32(SQLITE_SHM_NLOCK))*libc.Int32FromInt32(4)+libc.Int32FromInt32(SQLITE_SHM_NLOCK)), uint32(1), int32(1), uint32(0))
	if rc == SQLITE_OK {
		/* We have an EXCLUSIVE lock on the DMS byte. This means that this
		 ** is the first process to open the file. Truncate it to zero bytes
		 ** in this case.  */
		if (*TwinShmNode)(unsafe.Pointer(pShmNode)).FisReadonly != 0 {
			rc = libc.Int32FromInt32(SQLITE_READONLY) | libc.Int32FromInt32(5)<<libc.Int32FromInt32(8)
		} else {
			rc = _winHandleTruncate(tls, **(**THANDLE)(__ccgo_up(bp)), 0)
		}
		/* Release the EXCLUSIVE lock acquired above. */
		_winUnlockFile(tls, bp, uint32((libc.Int32FromInt32(22)+libc.Int32FromInt32(SQLITE_SHM_NLOCK))*libc.Int32FromInt32(4)+libc.Int32FromInt32(SQLITE_SHM_NLOCK)), uint32(0), uint32(1), uint32(0))
	} else {
		if rc&int32(0xFF) == int32(SQLITE_BUSY) {
			rc = SQLITE_OK
		}
	}
	if rc == SQLITE_OK {
		/* Take a SHARED lock on the DMS byte. */
		rc = _winHandleLockTimeout(tls, **(**THANDLE)(__ccgo_up(bp)), uint32((libc.Int32FromInt32(22)+libc.Int32FromInt32(SQLITE_SHM_NLOCK))*libc.Int32FromInt32(4)+libc.Int32FromInt32(SQLITE_SHM_NLOCK)), uint32(1), 0, nMs)
		if rc == SQLITE_OK {
			(*TwinShmNode)(unsafe.Pointer(pShmNode)).FisUnlocked = 0
		}
	}
	return rc
}

// C documentation
//
//	/*
//	**
//	** This function - winLogErrorAtLine() - is only ever called via the macro
//	** winLogError().
//	**
//	** This routine is invoked after an error occurs in an OS function.
//	** It logs a message using sqlite3_log() containing the current value of
//	** error code and, if possible, the human-readable equivalent from
//	** FormatMessage.
//	**
//	** The first argument passed to the macro should be the error code that
//	** will be returned to SQLite (e.g. SQLITE_IOERR_DELETE, SQLITE_CANTOPEN).
//	** The two subsequent arguments should be the name of the OS function that
//	** failed and the associated file-system path, if any.
//	*/
func _winLogErrorAtLine(tls *libc.TLS, errcode int32, lastErrno TDWORD, zFunc uintptr, zPath uintptr, iLine int32) (r int32) {
	bp := tls.Alloc(560)
	defer tls.Free(560)
	var i int32
	var _ /* zMsg at bp+0 */ [500]int8
	_ = i /* Loop counter */
	(**(**[500]int8)(__ccgo_up(bp)))[0] = 0
	_winGetLastErrorMsg(tls, lastErrno, int32(500), bp)
	if zPath == uintptr(0) {
		zPath = __ccgo_ts + 1711
	}
	i = 0
	for {
		if !((**(**[500]int8)(__ccgo_up(bp)))[i] != 0 && int32((**(**[500]int8)(__ccgo_up(bp)))[i]) != int32('\r') && int32((**(**[500]int8)(__ccgo_up(bp)))[i]) != int32('\n')) {
			break
		}
		goto _1
	_1:
		;
		i = i + 1
	}
	(**(**[500]int8)(__ccgo_up(bp)))[i] = 0
	Xsqlite3_log(tls, errcode, __ccgo_ts+4752, libc.VaList(bp+512, iLine, lastErrno, zFunc, zPath, bp))
	return errcode
}

// C documentation
//
//	/*
//	** Log a I/O error retry episode.
//	*/
func _winLogIoerr(tls *libc.TLS, nRetry int32, lineno int32) {
	bp := tls.Alloc(32)
	defer tls.Free(32)
	if nRetry != 0 {
		Xsqlite3_log(tls, int32(SQLITE_NOTICE), __ccgo_ts+4783, libc.VaList(bp+8, _winIoerrRetryDelay*nRetry*(nRetry+int32(1))/int32(2), lineno))
	}
}

/*
** This #if does not rely on the SQLITE_OS_WINCE define because the
** corresponding section in "date.c" cannot use it.
 */

// C documentation
//
//	/*
//	** This function returns non-zero if the specified UTF-8 string buffer
//	** ends with a directory separator character or one was successfully
//	** added to it.
//	*/
func _winMakeEndInDirSep(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) {
	var nLen int32
	_ = nLen
	if zBuf != 0 {
		nLen = _sqlite3Strlen30(tls, zBuf)
		if nLen > 0 {
			if int32(**(**int8)(__ccgo_up(zBuf + uintptr(nLen-int32(1))))) == int32('/') || int32(**(**int8)(__ccgo_up(zBuf + uintptr(nLen-int32(1))))) == int32('\\') {
				return int32(1)
			} else {
				if nLen+int32(1) < nBuf {
					if !(_aSyscall[int32(75)].FpCurrent != 0) {
						**(**int8)(__ccgo_up(zBuf + uintptr(nLen))) = int8('\\')
					} else {
						if _winIsDriveLetterAndColon(tls, zBuf) != 0 && (int32(**(**int8)(__ccgo_up(zBuf + 2))) == int32('/') || int32(**(**int8)(__ccgo_up(zBuf + 2))) == int32('\\')) {
							**(**int8)(__ccgo_up(zBuf + uintptr(nLen))) = int8('\\')
							**(**int8)(__ccgo_up(zBuf + 2)) = int8('\\')
						} else {
							**(**int8)(__ccgo_up(zBuf + uintptr(nLen))) = int8('/')
						}
					}
					**(**int8)(__ccgo_up(zBuf + uintptr(nLen+int32(1)))) = int8('\000')
					return int32(1)
				}
			}
		}
	}
	return 0
}

// C documentation
//
//	/*
//	** Convert a multi-byte character string to UTF-8.
//	**
//	** Space to hold the returned string is obtained from sqlite3_malloc().
//	*/
func _winMbcsToUtf8(tls *libc.TLS, zText uintptr, useAnsi int32) (r uintptr) {
	var zTextUtf8 uintptr
	var zTmpWide TLPWSTR
	_, _ = zTextUtf8, zTmpWide
	zTmpWide = _winMbcsToUnicode(tls, zText, useAnsi)
	if zTmpWide == uintptr(0) {
		return uintptr(0)
	}
	zTextUtf8 = _winUnicodeToUtf8(tls, zTmpWide)
	Xsqlite3_free(tls, zTmpWide)
	return zTextUtf8
}

var _winNolockAppData = TwinVfsAppData{
	FpMethod: uintptr(unsafe.Pointer(&_winIoNolockMethod)),
	FbNoLock: int32(1),
}

/****************************************************************************
**************************** sqlite3_vfs methods ****************************
**
** This division contains the implementation of methods on the
** sqlite3_vfs object.
 */

func _winNolockCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) {
	_ = id
	_ = pResOut
	return SQLITE_OK
}

func _winNolockLock(tls *libc.TLS, id uintptr, locktype int32) (r int32) {
	_ = id
	_ = locktype
	return SQLITE_OK
}

func _winNolockUnlock(tls *libc.TLS, id uintptr, locktype int32) (r int32) {
	_ = id
	_ = locktype
	return SQLITE_OK
}

/******************* End of the no-op lock implementation *********************
******************************************************************************/

// C documentation
//
//	/*
//	** If a ReadFile() or WriteFile() error occurs, invoke this routine
//	** to see if it should be retried.  Return TRUE to retry.  Return FALSE
//	** to give up with an error.
//	*/
func _winRetryIoerr(tls *libc.TLS, pnRetry uintptr, pError uintptr) (r int32) {
	var e TDWORD
	_ = e
	e = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
	if **(**int32)(__ccgo_up(pnRetry)) >= _winIoerrRetry {
		if pError != 0 {
			**(**TDWORD)(__ccgo_up(pError)) = e
		}
		return 0
	}
	if e == uint32(5) || e == uint32(32) || e == uint32(33) || e == uint32(55) || e == uint32(64) || e == uint32(121) || e == uint32(1231) {
		Xsqlite3_win32_sleep(tls, uint32(_winIoerrRetryDelay*(int32(1)+**(**int32)(__ccgo_up(pnRetry)))))
		**(**int32)(__ccgo_up(pnRetry)) = **(**int32)(__ccgo_up(pnRetry)) + 1
		return int32(1)
	}
	if pError != 0 {
		**(**TDWORD)(__ccgo_up(pError)) = e
	}
	return 0
}

// C documentation
//
//	/*
//	** Return the sector size in bytes of the underlying block device for
//	** the specified file. This is almost always 512 bytes, but may be
//	** larger for some devices.
//	**
//	** SQLite code assumes this function cannot fail. It also assumes that
//	** if two files are created in the same file-system directory (i.e.
//	** a database and its journal file) that the sector size will be the
//	** same for both.
//	*/
func _winSectorSize(tls *libc.TLS, id uintptr) (r int32) {
	_ = id
	return int32(SQLITE_DEFAULT_SECTOR_SIZE)
}

// C documentation
//
//	/*
//	** Move the current position of the file handle passed as the first
//	** argument to offset iOffset within the file. If successful, return 0.
//	** Otherwise, set pFile->lastErrno and return non-zero.
//	*/
func _winSeekFile(tls *libc.TLS, pFile uintptr, iOffset Tsqlite3_int64) (r int32) {
	var rc int32
	_ = rc
	rc = _winHandleSeek(tls, (*TwinFile)(unsafe.Pointer(pFile)).Fh, iOffset)
	if rc != SQLITE_OK {
		(*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
		_winLogErrorAtLine(tls, rc, (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+4833, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(51478))
	}
	return rc
}

// C documentation
//
//	/*
//	** Implement a memory barrier or memory fence on shared memory.
//	**
//	** All loads and stores begun before the barrier must complete before
//	** any load or store begun after the barrier.
//	*/
func _winShmBarrier(tls *libc.TLS, fd uintptr) {
	_ = fd
	/* compiler-defined memory barrier */
	_winShmEnterMutex(tls) /* Also mutex, for redundancy */
	_winShmLeaveMutex(tls)
}

func _winShmEnterMutex(tls *libc.TLS) {
	Xsqlite3_mutex_enter(tls, _winBigLock)
}

func _winShmLeaveMutex(tls *libc.TLS) {
	Xsqlite3_mutex_leave(tls, _winBigLock)
}

// C documentation
//
//	/*
//	** A global array of all winShmNode objects.
//	**
//	** The winShmMutexHeld() must be true while reading or writing this list.
//	*/
var _winShmNodeList = uintptr(0)

// C documentation
//
//	/*
//	** Close a connection to shared-memory.  Delete the underlying
//	** storage if deleteFlag is true.
//	*/
func _winShmUnmap(tls *libc.TLS, fd uintptr, deleteFlag int32) (r int32) {
	return _winCloseSharedMemory(tls, fd, deleteFlag)
}

// C documentation
//
//	/*
//	** Sleep for a little while.  Return the amount of time slept.
//	*/
func _winSleep(tls *libc.TLS, pVfs uintptr, microsec int32) (r int32) {
	Xsqlite3_win32_sleep(tls, uint32((microsec+int32(999))/int32(1000)))
	_ = pVfs
	return (microsec + int32(999)) / int32(1000) * int32(1000)
}

/*
** The following variable, if set to a non-zero value, is interpreted as
** the number of seconds since 1970 and is used to set the result of
** sqlite3OsCurrentTime() during testing.
 */

// C documentation
//
//	/*
//	** Windows will only let you create file view mappings
//	** on allocation size granularity boundaries.
//	** During sqlite3_os_init() we do a GetSystemInfo()
//	** to get the granularity size.
//	*/
var _winSysInfo TSYSTEM_INFO

// C documentation
//
//	/*
//	** If sqlite3_temp_directory is defined, take the mutex and return true.
//	**
//	** If sqlite3_temp_directory is NULL (undefined), omit the mutex and
//	** return false.
//	*/
func _winTempDirDefined(tls *libc.TLS) (r int32) {
	Xsqlite3_mutex_enter(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1)))
	if Xsqlite3_temp_directory != uintptr(0) {
		return int32(1)
	}
	Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1)))
	return 0
}

// C documentation
//
//	/*
//	** Truncate an open file to a specified size
//	*/
func _winTruncate(tls *libc.TLS, id uintptr, nByte Tsqlite3_int64) (r int32) {
	var lastErrno, v1 TDWORD
	var oldMmapSize Tsqlite3_int64
	var pFile uintptr
	var rc int32
	var v2 bool
	_, _, _, _, _, _ = lastErrno, oldMmapSize, pFile, rc, v1, v2
	pFile = id /* File handle object */
	rc = SQLITE_OK
	if (*TwinFile)(unsafe.Pointer(pFile)).FnFetchOut > 0 {
		/* File truncation is a no-op if there are outstanding memory mapped
		 ** pages.  This is because truncating the file means temporarily unmapping
		 ** the file, and that might delete memory out from under existing cursors.
		 **
		 ** This can result in incremental vacuum not truncating the file,
		 ** if there is an active read cursor when the incremental vacuum occurs.
		 ** No real harm comes of this - the database file is not corrupted,
		 ** though some folks might complain that the file is bigger than it
		 ** needs to be.
		 **
		 ** The only feasible work-around is to defer the truncation until after
		 ** all references to memory-mapped content are closed.  That is doable,
		 ** but involves adding a few branches in the common write code path which
		 ** could slow down normal operations slightly.  Hence, we have decided for
		 ** now to simply make transactions a no-op if there are pending reads.  We
		 ** can maybe revisit this decision in the future.
		 */
		return SQLITE_OK
	}
	/* If the user has configured a chunk-size for this file, truncate the
	 ** file so that it consists of an integer number of chunks (i.e. the
	 ** actual file size after the operation may be larger than the requested
	 ** size).
	 */
	if (*TwinFile)(unsafe.Pointer(pFile)).FszChunk > 0 {
		nByte = (nByte + int64((*TwinFile)(unsafe.Pointer(pFile)).FszChunk) - int64(1)) / int64((*TwinFile)(unsafe.Pointer(pFile)).FszChunk) * int64((*TwinFile)(unsafe.Pointer(pFile)).FszChunk)
	}
	if (*TwinFile)(unsafe.Pointer(pFile)).FpMapRegion != 0 {
		oldMmapSize = (*TwinFile)(unsafe.Pointer(pFile)).FmmapSize
	} else {
		oldMmapSize = 0
	}
	_winUnmapfile(tls, pFile)
	/* SetEndOfFile() returns non-zero when successful, or zero when it fails. */
	if _winSeekFile(tls, pFile, nByte) != 0 {
		rc = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(6)<<libc.Int32FromInt32(8), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+4882, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(51842))
	} else {
		if v2 = 0 == (*(*func(*libc.TLS, THANDLE) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(53)].FpCurrent})))(tls, (*TwinFile)(unsafe.Pointer(pFile)).Fh); v2 {
			v1 = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
			lastErrno = v1
		}
		if v2 && v1 != uint32(1224) {
			(*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = lastErrno
			rc = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(6)<<libc.Int32FromInt32(8), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+4895, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(51847))
		}
	}
	if rc == SQLITE_OK && oldMmapSize > 0 {
		if oldMmapSize > nByte {
			_winMapfile(tls, pFile, int64(-int32(1)))
		} else {
			_winMapfile(tls, pFile, oldMmapSize)
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** If the third argument is non-NULL, then this function releases a
//	** reference obtained by an earlier call to winFetch(). The second
//	** argument passed to this function must be the same as the corresponding
//	** argument that was passed to the winFetch() invocation.
//	**
//	** Or, if the third argument is NULL, then this function is being called
//	** to inform the VFS layer that, according to POSIX, any existing mapping
//	** may now be invalid and should be unmapped.
//	*/
func _winUnfetch(tls *libc.TLS, fd uintptr, iOff Ti64, p uintptr) (r int32) {
	var pFd uintptr
	_ = pFd
	pFd = fd /* The underlying database file */
	/* If p==0 (unmap the entire file) then there must be no outstanding
	 ** xFetch references. Or, if p!=0 (meaning it is an xFetch reference),
	 ** then there must be at least one outstanding.  */
	/* If p!=0, it must match the iOff value. */
	if p != 0 {
		(*TwinFile)(unsafe.Pointer(pFd)).FnFetchOut = (*TwinFile)(unsafe.Pointer(pFd)).FnFetchOut - 1
	} else {
		/* FIXME:  If Windows truly always prevents truncating or deleting a
		 ** file while a mapping is held, then the following winUnmapfile() call
		 ** is unnecessary can be omitted - potentially improving
		 ** performance.  */
		_winUnmapfile(tls, pFd)
	}
	return SQLITE_OK
}

/*
** Here ends the implementation of all sqlite3_file methods.
**
********************** End sqlite3_file Methods *******************************
******************************************************************************/

// C documentation
//
//	/*
//	** Convert a Microsoft Unicode string to a multi-byte character string,
//	** using the ANSI or OEM code page.
//	**
//	** Space to hold the returned string is obtained from sqlite3_malloc().
//	*/
func _winUnicodeToMbcs(tls *libc.TLS, zWideText TLPCWSTR, useAnsi int32) (r uintptr) {
	var codepage, nByte, v1 int32
	var zText uintptr
	_, _, _, _ = codepage, nByte, zText, v1
	if useAnsi != 0 {
		v1 = CP_ACP
	} else {
		v1 = int32(CP_OEMCP)
	}
	codepage = v1
	nByte = (*(*func(*libc.TLS, TUINT, TDWORD, TLPCWSTR, int32, TLPSTR, int32, TLPCSTR, TLPBOOL) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(60)].FpCurrent})))(tls, uint32(codepage), uint32(0), zWideText, -int32(1), uintptr(0), 0, uintptr(0), uintptr(0))
	if nByte == 0 {
		return uintptr(0)
	}
	zText = _sqlite3MallocZero(tls, uint64(nByte))
	if zText == uintptr(0) {
		return uintptr(0)
	}
	nByte = (*(*func(*libc.TLS, TUINT, TDWORD, TLPCWSTR, int32, TLPSTR, int32, TLPCSTR, TLPBOOL) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(60)].FpCurrent})))(tls, uint32(codepage), uint32(0), zWideText, -int32(1), zText, nByte, uintptr(0), uintptr(0))
	if nByte == 0 {
		Xsqlite3_free(tls, zText)
		zText = uintptr(0)
	}
	return zText
}

// C documentation
//
//	/*
//	** Convert a Microsoft Unicode string to UTF-8.
//	**
//	** Space to hold the returned string is obtained from sqlite3_malloc().
//	*/
func _winUnicodeToUtf8(tls *libc.TLS, zWideText TLPCWSTR) (r uintptr) {
	var nByte int32
	var zText uintptr
	_, _ = nByte, zText
	nByte = (*(*func(*libc.TLS, TUINT, TDWORD, TLPCWSTR, int32, TLPSTR, int32, TLPCSTR, TLPBOOL) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(60)].FpCurrent})))(tls, uint32(CP_UTF8), uint32(0), zWideText, -int32(1), uintptr(0), 0, uintptr(0), uintptr(0))
	if nByte == 0 {
		return uintptr(0)
	}
	zText = _sqlite3MallocZero(tls, uint64(nByte))
	if zText == uintptr(0) {
		return uintptr(0)
	}
	nByte = (*(*func(*libc.TLS, TUINT, TDWORD, TLPCWSTR, int32, TLPSTR, int32, TLPCSTR, TLPBOOL) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(60)].FpCurrent})))(tls, uint32(CP_UTF8), uint32(0), zWideText, -int32(1), zText, nByte, uintptr(0), uintptr(0))
	if nByte == 0 {
		Xsqlite3_free(tls, zText)
		zText = uintptr(0)
	}
	return zText
}

// C documentation
//
//	/*
//	** Cleans up the mapped region of the specified file, if any.
//	*/
func _winUnmapfile(tls *libc.TLS, pFile uintptr) (r int32) {
	if (*TwinFile)(unsafe.Pointer(pFile)).FpMapRegion != 0 {
		if !((*(*func(*libc.TLS, TLPCVOID) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(59)].FpCurrent})))(tls, (*TwinFile)(unsafe.Pointer(pFile)).FpMapRegion) != 0) {
			(*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
			return _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(24)<<libc.Int32FromInt32(8), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+5019, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(53510))
		}
		(*TwinFile)(unsafe.Pointer(pFile)).FpMapRegion = uintptr(0)
		(*TwinFile)(unsafe.Pointer(pFile)).FmmapSize = 0
	}
	if (*TwinFile)(unsafe.Pointer(pFile)).FhMap != libc.UintptrFromInt32(0) {
		if !((*(*func(*libc.TLS, THANDLE) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, (*TwinFile)(unsafe.Pointer(pFile)).FhMap) != 0) {
			(*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls)
			return _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(24)<<libc.Int32FromInt32(8), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+5033, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(53521))
		}
		(*TwinFile)(unsafe.Pointer(pFile)).FhMap = libc.UintptrFromInt32(0)
	}
	return SQLITE_OK
}

// C documentation
//
//	/*
//	** Convert a UTF-8 string to a multi-byte character string.
//	**
//	** Space to hold the returned string is obtained from sqlite3_malloc().
//	*/
func _winUtf8ToMbcs(tls *libc.TLS, zText uintptr, useAnsi int32) (r uintptr) {
	var zTextMbcs uintptr
	var zTmpWide TLPWSTR
	_, _ = zTextMbcs, zTmpWide
	zTmpWide = _winUtf8ToUnicode(tls, zText)
	if zTmpWide == uintptr(0) {
		return uintptr(0)
	}
	zTextMbcs = _winUnicodeToMbcs(tls, zTmpWide, useAnsi)
	Xsqlite3_free(tls, zTmpWide)
	return zTextMbcs
}

// C documentation
//
//	/*
//	** Generate VM code to invoke either xValue() (bFin==0) or xFinalize()
//	** (bFin==1) for each window function in the linked list starting at
//	** pMWin. Or, for built-in window-functions that do not use the standard
//	** API, generate the equivalent VM code.
//	*/
func _windowAggFinal(tls *libc.TLS, p uintptr, bFin int32) {
	var nArg int32
	var pMWin, pParse, pWin, v uintptr
	_, _, _, _, _ = nArg, pMWin, pParse, pWin, v
	pParse = (*TWindowCodeArg)(unsafe.Pointer(p)).FpParse
	pMWin = (*TWindowCodeArg)(unsafe.Pointer(p)).FpMWin
	v = _sqlite3GetVdbe(tls, pParse)
	pWin = pMWin
	for {
		if !(pWin != 0) {
			break
		}
		if (*TWindow)(unsafe.Pointer(pMWin)).FregStartRowid == 0 && (*TFuncDef)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpWFunc)).FfuncFlags&uint32(SQLITE_FUNC_MINMAX) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) != int32(TK_UNBOUNDED) {
			_sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, (*TWindow)(unsafe.Pointer(pWin)).FregResult)
			_sqlite3VdbeAddOp1(tls, v, int32(OP_Last), (*TWindow)(unsafe.Pointer(pWin)).FcsrApp)
			_sqlite3VdbeAddOp3(tls, v, int32(OP_Column), (*TWindow)(unsafe.Pointer(pWin)).FcsrApp, 0, (*TWindow)(unsafe.Pointer(pWin)).FregResult)
			_sqlite3VdbeJumpHere(tls, v, _sqlite3VdbeCurrentAddr(tls, v)-int32(2))
		} else {
			if (*TWindow)(unsafe.Pointer(pWin)).FregApp != 0 {
			} else {
				nArg = _windowArgCount(tls, pWin)
				if bFin != 0 {
					_sqlite3VdbeAddOp2(tls, v, int32(OP_AggFinal), (*TWindow)(unsafe.Pointer(pWin)).FregAccum, nArg)
					_sqlite3VdbeAppendP4(tls, v, (*TWindow)(unsafe.Pointer(pWin)).FpWFunc, -int32(8))
					_sqlite3VdbeAddOp2(tls, v, int32(OP_Copy), (*TWindow)(unsafe.Pointer(pWin)).FregAccum, (*TWindow)(unsafe.Pointer(pWin)).FregResult)
					_sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, (*TWindow)(unsafe.Pointer(pWin)).FregAccum)
				} else {
					_sqlite3VdbeAddOp3(tls, v, int32(OP_AggValue), (*TWindow)(unsafe.Pointer(pWin)).FregAccum, nArg, (*TWindow)(unsafe.Pointer(pWin)).FregResult)
					_sqlite3VdbeAppendP4(tls, v, (*TWindow)(unsafe.Pointer(pWin)).FpWFunc, -int32(8))
				}
			}
		}
		goto _1
	_1:
		;
		pWin = (*TWindow)(unsafe.Pointer(pWin)).FpNextWin
	}
}

// C documentation
//
//	/*
//	** A "PRECEDING <expr>" (eCond==0) or "FOLLOWING <expr>" (eCond==1) or the
//	** value of the second argument to nth_value() (eCond==2) has just been
//	** evaluated and the result left in register reg. This function generates VM
//	** code to check that the value is a non-negative integer and throws an
//	** exception if it is not.
//	*/
func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) {
	var regString, regZero int32
	var v uintptr
	_, _, _ = regString, regZero, v
	v = _sqlite3GetVdbe(tls, pParse)
	regZero = _sqlite3GetTempReg(tls, pParse)
	_sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero)
	if eCond >= int32(WINDOW_STARTING_NUM) {
		regString = _sqlite3GetTempReg(tls, pParse)
		_sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1711, -int32(1))
		_sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg)
		_sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL)))
	} else {
		_sqlite3VdbeAddOp2(tls, v, int32(OP_MustBeInt), reg, _sqlite3VdbeCurrentAddr(tls, v)+int32(2))
	}
	_sqlite3VdbeAddOp3(tls, v, _aOp1[eCond], regZero, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg)
	_sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_AFF_NUMERIC))
	/* NULL case captured by */
	/*   the OP_MustBeInt */
	/* NULL case caught by */
	/*   the OP_Ge */
	_sqlite3MayAbort(tls, pParse)
	_sqlite3VdbeAddOp2(tls, v, int32(OP_Halt), int32(SQLITE_ERROR), int32(OE_Abort))
	_sqlite3VdbeAppendP4(tls, v, _azErr[eCond], -int32(1))
	_sqlite3ReleaseTempReg(tls, pParse, regZero)
}

// C documentation
//
//	/*
//	** Helper function for sqlite3WindowCodeStep(). Each call to this function
//	** generates VM code for a single RETURN_ROW, AGGSTEP or AGGINVERSE
//	** operation. Refer to the header comment for sqlite3WindowCodeStep() for
//	** details.
//	*/
func _windowCodeOp(tls *libc.TLS, p uintptr, op int32, regCountdown int32, jumpOnEof int32) (r int32) {
	var addrContinue, addrNextRange, bPeer, csr, lblDone, nReg, reg, regRowid1, regRowid2, regTmp, ret, v1, v2 int32
	var pMWin, pParse, v uintptr
	_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrContinue, addrNextRange, bPeer, csr, lblDone, nReg, pMWin, pParse, reg, regRowid1, regRowid2, regTmp, ret, v, v1, v2
	pParse = (*TWindowCodeArg)(unsafe.Pointer(p)).FpParse
	pMWin = (*TWindowCodeArg)(unsafe.Pointer(p)).FpMWin
	ret = 0
	v = (*TWindowCodeArg)(unsafe.Pointer(p)).FpVdbe
	addrContinue = 0
	bPeer = libc.BoolInt32(int32((*TWindow)(unsafe.Pointer(pMWin)).FeFrmType) != int32(TK_ROWS))
	lblDone = _sqlite3VdbeMakeLabel(tls, pParse)
	addrNextRange = 0
	/* Special case - WINDOW_AGGINVERSE is always a no-op if the frame
	 ** starts with UNBOUNDED PRECEDING. */
	if op == int32(WINDOW_AGGINVERSE) && int32((*TWindow)(unsafe.Pointer(pMWin)).FeStart) == int32(TK_UNBOUNDED) {
		return 0
	}
	if regCountdown > 0 {
		if int32((*TWindow)(unsafe.Pointer(pMWin)).FeFrmType) == int32(TK_RANGE) {
			addrNextRange = _sqlite3VdbeCurrentAddr(tls, v)
			if op == int32(WINDOW_AGGINVERSE) {
				if int32((*TWindow)(unsafe.Pointer(pMWin)).FeStart) == int32(TK_FOLLOWING) {
					_windowCodeRangeTest(tls, p, int32(OP_Le), (*TWindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Fcsr, regCountdown, (*TWindowCodeArg)(unsafe.Pointer(p)).Fstart.Fcsr, lblDone)
				} else {
					_windowCodeRangeTest(tls, p, int32(OP_Ge), (*TWindowCodeArg)(unsafe.Pointer(p)).Fstart.Fcsr, regCountdown, (*TWindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Fcsr, lblDone)
				}
			} else {
				_windowCodeRangeTest(tls, p, int32(OP_Gt), (*TWindowCodeArg)(unsafe.Pointer(p)).Fend.Fcsr, regCountdown, (*TWindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Fcsr, lblDone)
			}
		} else {
			_sqlite3VdbeAddOp3(tls, v, int32(OP_IfPos), regCountdown, lblDone, int32(1))
		}
	}
	if op == int32(WINDOW_RETURN_ROW) && (*TWindow)(unsafe.Pointer(pMWin)).FregStartRowid == 0 {
		_windowAggFinal(tls, p, 0)
	}
	addrContinue = _sqlite3VdbeCurrentAddr(tls, v)
	/* If this is a (RANGE BETWEEN a FOLLOWING AND b FOLLOWING) or
	 ** (RANGE BETWEEN b PRECEDING AND a PRECEDING) frame, ensure the
	 ** start cursor does not advance past the end cursor within the
	 ** temporary table. It otherwise might, if (a>b). Also ensure that,
	 ** if the input cursor is still finding new rows, that the end
	 ** cursor does not go past it to EOF. */
	if int32((*TWindow)(unsafe.Pointer(pMWin)).FeStart) == int32((*TWindow)(unsafe.Pointer(pMWin)).FeEnd) && regCountdown != 0 && int32((*TWindow)(unsafe.Pointer(pMWin)).FeFrmType) == int32(TK_RANGE) {
		regRowid1 = _sqlite3GetTempReg(tls, pParse)
		regRowid2 = _sqlite3GetTempReg(tls, pParse)
		if op == int32(WINDOW_AGGINVERSE) {
			_sqlite3VdbeAddOp2(tls, v, int32(OP_Rowid), (*TWindowCodeArg)(unsafe.Pointer(p)).Fstart.Fcsr, regRowid1)
			_sqlite3VdbeAddOp2(tls, v, int32(OP_Rowid), (*TWindowCodeArg)(unsafe.Pointer(p)).Fend.Fcsr, regRowid2)
			_sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regRowid2, lblDone, regRowid1)
		} else {
			if (*TWindowCodeArg)(unsafe.Pointer(p)).FregRowid != 0 {
				_sqlite3VdbeAddOp2(tls, v, int32(OP_Rowid), (*TWindowCodeArg)(unsafe.Pointer(p)).Fend.Fcsr, regRowid1)
				_sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), (*TWindowCodeArg)(unsafe.Pointer(p)).FregRowid, lblDone, regRowid1)
			}
		}
		_sqlite3ReleaseTempReg(tls, pParse, regRowid1)
		_sqlite3ReleaseTempReg(tls, pParse, regRowid2)
	}
	switch op {
	case int32(WINDOW_RETURN_ROW):
		csr = (*TWindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Fcsr
		reg = (*TWindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Freg
		_windowReturnOneRow(tls, p)
	case int32(WINDOW_AGGINVERSE):
		csr = (*TWindowCodeArg)(unsafe.Pointer(p)).Fstart.Fcsr
		reg = (*TWindowCodeArg)(unsafe.Pointer(p)).Fstart.Freg
		if (*TWindow)(unsafe.Pointer(pMWin)).FregStartRowid != 0 {
			_sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), (*TWindow)(unsafe.Pointer(pMWin)).FregStartRowid, int32(1))
		} else {
			_windowAggStep(tls, p, pMWin, csr, int32(1), (*TWindowCodeArg)(unsafe.Pointer(p)).FregArg)
		}
	default:
		csr = (*TWindowCodeArg)(unsafe.Pointer(p)).Fend.Fcsr
		reg = (*TWindowCodeArg)(unsafe.Pointer(p)).Fend.Freg
		if (*TWindow)(unsafe.Pointer(pMWin)).FregStartRowid != 0 {
			_sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), (*TWindow)(unsafe.Pointer(pMWin)).FregEndRowid, int32(1))
		} else {
			_windowAggStep(tls, p, pMWin, csr, 0, (*TWindowCodeArg)(unsafe.Pointer(p)).FregArg)
		}
		break
	}
	if op == (*TWindowCodeArg)(unsafe.Pointer(p)).FeDelete {
		_sqlite3VdbeAddOp1(tls, v, int32(OP_Delete), csr)
		_sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_SAVEPOSITION))
	}
	if jumpOnEof != 0 {
		_sqlite3VdbeAddOp2(tls, v, int32(OP_Next), csr, _sqlite3VdbeCurrentAddr(tls, v)+int32(2))
		ret = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto))
	} else {
		_sqlite3VdbeAddOp2(tls, v, int32(OP_Next), csr, _sqlite3VdbeCurrentAddr(tls, v)+int32(1)+bPeer)
		if bPeer != 0 {
			_sqlite3VdbeAddOp2(tls, v, int32(OP_Goto), 0, lblDone)
		}
	}
	if bPeer != 0 {
		if (*TWindow)(unsafe.Pointer(pMWin)).FpOrderBy != 0 {
			v1 = (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pMWin)).FpOrderBy)).FnExpr
		} else {
			v1 = 0
		}
		nReg = v1
		if nReg != 0 {
			v2 = _sqlite3GetTempRange(tls, pParse, nReg)
		} else {
			v2 = 0
		}
		regTmp = v2
		_windowReadPeerValues(tls, p, csr, regTmp)
		_windowIfNewPeer(tls, pParse, (*TWindow)(unsafe.Pointer(pMWin)).FpOrderBy, regTmp, reg, addrContinue)
		_sqlite3ReleaseTempRange(tls, pParse, regTmp, nReg)
	}
	if addrNextRange != 0 {
		_sqlite3VdbeAddOp2(tls, v, int32(OP_Goto), 0, addrNextRange)
	}
	_sqlite3VdbeResolveLabel(tls, v, lblDone)
	return ret
}

func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r uintptr) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var p uintptr
	_ = p
	p = pList
	for {
		if !(p != 0) {
			break
		}
		if _sqlite3StrICmp(tls, (*TWindow)(unsafe.Pointer(p)).FzName, zName) == 0 {
			break
		}
		goto _1
	_1:
		;
		p = (*TWindow)(unsafe.Pointer(p)).FpNextWin
	}
	if p == uintptr(0) {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+25510, libc.VaList(bp+8, zName))
	}
	return p
}

// C documentation
//
//	/*
//	** Generate code to calculate the current values of all window functions in the
//	** p->pMWin list by doing a full scan of the current window frame. Store the
//	** results in the Window.regResult registers, ready to return the upper
//	** layer.
//	*/
func _windowFullScan(tls *libc.TLS, p uintptr) {
	var addr, addrEq, addrNext, csr, lblBrk, lblNext, nPeer, regCPeer, regCRowid, regPeer, regRowid, v1 int32
	var pKeyInfo, pMWin, pParse, pWin, v uintptr
	_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrEq, addrNext, csr, lblBrk, lblNext, nPeer, pKeyInfo, pMWin, pParse, pWin, regCPeer, regCRowid, regPeer, regRowid, v, v1
	pParse = (*TWindowCodeArg)(unsafe.Pointer(p)).FpParse
	pMWin = (*TWindowCodeArg)(unsafe.Pointer(p)).FpMWin
	v = (*TWindowCodeArg)(unsafe.Pointer(p)).FpVdbe
	regCRowid = 0 /* Current rowid value */
	regCPeer = 0  /* Current peer values */
	regRowid = 0  /* AggStep rowid value */
	regPeer = 0
	csr = (*TWindow)(unsafe.Pointer(pMWin)).FcsrApp
	if (*TWindow)(unsafe.Pointer(pMWin)).FpOrderBy != 0 {
		v1 = (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pMWin)).FpOrderBy)).FnExpr
	} else {
		v1 = 0
	}
	nPeer = v1
	lblNext = _sqlite3VdbeMakeLabel(tls, pParse)
	lblBrk = _sqlite3VdbeMakeLabel(tls, pParse)
	regCRowid = _sqlite3GetTempReg(tls, pParse)
	regRowid = _sqlite3GetTempReg(tls, pParse)
	if nPeer != 0 {
		regCPeer = _sqlite3GetTempRange(tls, pParse, nPeer)
		regPeer = _sqlite3GetTempRange(tls, pParse, nPeer)
	}
	_sqlite3VdbeAddOp2(tls, v, int32(OP_Rowid), (*TWindow)(unsafe.Pointer(pMWin)).FiEphCsr, regCRowid)
	_windowReadPeerValues(tls, p, (*TWindow)(unsafe.Pointer(pMWin)).FiEphCsr, regCPeer)
	pWin = pMWin
	for {
		if !(pWin != 0) {
			break
		}
		_sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, (*TWindow)(unsafe.Pointer(pWin)).FregAccum)
		goto _2
	_2:
		;
		pWin = (*TWindow)(unsafe.Pointer(pWin)).FpNextWin
	}
	_sqlite3VdbeAddOp3(tls, v, int32(OP_SeekGE), csr, lblBrk, (*TWindow)(unsafe.Pointer(pMWin)).FregStartRowid)
	addrNext = _sqlite3VdbeCurrentAddr(tls, v)
	_sqlite3VdbeAddOp2(tls, v, int32(OP_Rowid), csr, regRowid)
	_sqlite3VdbeAddOp3(tls, v, int32(OP_Gt), (*TWindow)(unsafe.Pointer(pMWin)).FregEndRowid, lblBrk, regRowid)
	if int32((*TWindow)(unsafe.Pointer(pMWin)).FeExclude) == int32(TK_CURRENT) {
		_sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), regCRowid, lblNext, regRowid)
	} else {
		if int32((*TWindow)(unsafe.Pointer(pMWin)).FeExclude) != int32(TK_NO) {
			addrEq = 0
			pKeyInfo = uintptr(0)
			if (*TWindow)(unsafe.Pointer(pMWin)).FpOrderBy != 0 {
				pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, (*TWindow)(unsafe.Pointer(pMWin)).FpOrderBy, 0, 0)
			}
			if int32((*TWindow)(unsafe.Pointer(pMWin)).FeExclude) == int32(TK_TIES) {
				addrEq = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), regCRowid, 0, regRowid)
			}
			if pKeyInfo != 0 {
				_windowReadPeerValues(tls, p, csr, regPeer)
				_sqlite3VdbeAddOp3(tls, v, int32(OP_Compare), regPeer, regCPeer, nPeer)
				_sqlite3VdbeAppendP4(tls, v, pKeyInfo, -int32(9))
				addr = _sqlite3VdbeCurrentAddr(tls, v) + int32(1)
				_sqlite3VdbeAddOp3(tls, v, int32(OP_Jump), addr, lblNext, addr)
			} else {
				_sqlite3VdbeAddOp2(tls, v, int32(OP_Goto), 0, lblNext)
			}
			if addrEq != 0 {
				_sqlite3VdbeJumpHere(tls, v, addrEq)
			}
		}
	}
	_windowAggStep(tls, p, pMWin, csr, 0, (*TWindowCodeArg)(unsafe.Pointer(p)).FregArg)
	_sqlite3VdbeResolveLabel(tls, v, lblNext)
	_sqlite3VdbeAddOp2(tls, v, int32(OP_Next), csr, addrNext)
	_sqlite3VdbeJumpHere(tls, v, addrNext-int32(1))
	_sqlite3VdbeJumpHere(tls, v, addrNext+int32(1))
	_sqlite3ReleaseTempReg(tls, pParse, regRowid)
	_sqlite3ReleaseTempReg(tls, pParse, regCRowid)
	if nPeer != 0 {
		_sqlite3ReleaseTempRange(tls, pParse, regPeer, nPeer)
		_sqlite3ReleaseTempRange(tls, pParse, regCPeer, nPeer)
	}
	_windowAggFinal(tls, p, int32(1))
}

const _winmajor = 0

const _winminor = 0

const _winver = 0

type _wireBRECORD = T_wireBRECORD

type _wireSAFEARRAY = T_wireSAFEARRAY

type _wireSAFEARRAY_UNION = T_wireSAFEARRAY_UNION

type _wireSAFEARR_BRECORD = T_wireSAFEARR_BRECORD

type _wireSAFEARR_BSTR = T_wireSAFEARR_BSTR

type _wireSAFEARR_DISPATCH = T_wireSAFEARR_DISPATCH

type _wireSAFEARR_HAVEIID = T_wireSAFEARR_HAVEIID

type _wireSAFEARR_UNKNOWN = T_wireSAFEARR_UNKNOWN

type _wireSAFEARR_VARIANT = T_wireSAFEARR_VARIANT

type _wireVARIANT = T_wireVARIANT

const _wpgmptr = 0

// C documentation
//
//	/*
//	** Functions to serialize a 16 bit integer, 32 bit real number and
//	** 64 bit integer. The value returned is the number of bytes written
//	** to the argument buffer (always 2, 4 and 8 respectively).
//	*/
func _writeInt16(tls *libc.TLS, p uintptr, i int32) {
	**(**Tu8)(__ccgo_up(p)) = uint8(i >> int32(8) & int32(0xFF))
	**(**Tu8)(__ccgo_up(p + 1)) = uint8(i >> 0 & int32(0xFF))
}

func _writeInt64(tls *libc.TLS, p uintptr, i Ti64) (r int32) {
	**(**Tu8)(__ccgo_up(p)) = uint8(i >> libc.Int32FromInt32(56) & int64(0xFF))
	**(**Tu8)(__ccgo_up(p + 1)) = uint8(i >> libc.Int32FromInt32(48) & int64(0xFF))
	**(**Tu8)(__ccgo_up(p + 2)) = uint8(i >> libc.Int32FromInt32(40) & int64(0xFF))
	**(**Tu8)(__ccgo_up(p + 3)) = uint8(i >> libc.Int32FromInt32(32) & int64(0xFF))
	**(**Tu8)(__ccgo_up(p + 4)) = uint8(i >> libc.Int32FromInt32(24) & int64(0xFF))
	**(**Tu8)(__ccgo_up(p + 5)) = uint8(i >> libc.Int32FromInt32(16) & int64(0xFF))
	**(**Tu8)(__ccgo_up(p + 6)) = uint8(i >> libc.Int32FromInt32(8) & int64(0xFF))
	**(**Tu8)(__ccgo_up(p + 7)) = uint8(i >> libc.Int32FromInt32(0) & int64(0xFF))
	return int32(8)
}

type _xml_error = T_xml_error

// C documentation
//
//	/*
//	** The following routine is called if the stack overflows.
//	*/
func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) {
	var pParse uintptr
	_ = pParse
	pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse
	for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack {
		_yy_pop_parser_stack(tls, yypParser)
	}
	/* Here code is inserted which will execute if the parser
	 ** stack every overflows */
	/******** Begin %stack_overflow code ******************************************/
	if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+26213, 0)
	}
	/******** End %stack_overflow code ********************************************/
	/* Suppress warning about unused %extra_argument var */
	(*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse
}

/*
** Print tracing information for a SHIFT action
 */

// C documentation
//
//	/* The following function deletes the "minor type" or semantic value
//	** associated with a symbol.  The symbol can be either a terminal
//	** or nonterminal. "yymajor" is the symbol code, and "yypminor" is
//	** a pointer to the value to be deleted.  The code used to do the
//	** deletions is derived from the %destructor and/or %token_destructor
//	** directives of the input grammar.
//	*/
func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor uintptr) {
	var pParse uintptr
	_ = pParse
	pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse
	switch int32(yymajor) {
	/* Here is inserted the actions which take place when a
	 ** terminal or non-terminal is destroyed.  This can happen
	 ** when the symbol is popped from the stack during a
	 ** reduce or during error processing or when a parser is
	 ** being destroyed before it is finished parsing.
	 **
	 ** Note: during a reduce, the only symbols destroyed are those
	 ** which appear on the RHS of the rule, but which are *not* used
	 ** inside the C code.
	 */
	/********* Begin destructor definitions ***************************************/
	case int32(206): /* select */
		fallthrough
	case int32(241): /* selectnowith */
		fallthrough
	case int32(242): /* oneselect */
		fallthrough
	case int32(254): /* values */
		fallthrough
	case int32(256): /* mvalues */
		_sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(218): /* term */
		fallthrough
	case int32(219): /* expr */
		fallthrough
	case int32(248): /* where_opt */
		fallthrough
	case int32(250): /* having_opt */
		fallthrough
	case int32(270): /* where_opt_ret */
		fallthrough
	case int32(281): /* case_operand */
		fallthrough
	case int32(283): /* case_else */
		fallthrough
	case int32(286): /* vinto */
		fallthrough
	case int32(293): /* when_clause */
		fallthrough
	case int32(297): /* key_opt */
		fallthrough
	case int32(314): /* filter_clause */
		_sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(223): /* eidlist_opt */
		fallthrough
	case int32(233): /* sortlist */
		fallthrough
	case int32(234): /* eidlist */
		fallthrough
	case int32(246): /* selcollist */
		fallthrough
	case int32(249): /* groupby_opt */
		fallthrough
	case int32(251): /* orderby_opt */
		fallthrough
	case int32(255): /* nexprlist */
		fallthrough
	case int32(257): /* sclp */
		fallthrough
	case int32(264): /* exprlist */
		fallthrough
	case int32(271): /* setlist */
		fallthrough
	case int32(280): /* paren_exprlist */
		fallthrough
	case int32(282): /* case_exprlist */
		fallthrough
	case int32(313): /* part_opt */
		_sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(240): /* fullname */
		fallthrough
	case int32(247): /* from */
		fallthrough
	case int32(259): /* seltablist */
		fallthrough
	case int32(260): /* stl_prefix */
		fallthrough
	case int32(265): /* xfullname */
		_sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(243): /* wqlist */
		_sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(253): /* window_clause */
		fallthrough
	case int32(309): /* windowdefn_list */
		_sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(266): /* idlist */
		fallthrough
	case int32(273): /* idlist_opt */
		_sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(276): /* filter_over */
		fallthrough
	case int32(310): /* windowdefn */
		fallthrough
	case int32(311): /* window */
		fallthrough
	case int32(312): /* frame_opt */
		fallthrough
	case int32(315): /* over_clause */
		_sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(289): /* trigger_cmd_list */
		fallthrough
	case int32(294): /* trigger_cmd */
		_sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
	case int32(291): /* trigger_event */
		_sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb)
	case int32(317): /* frame_bound */
		fallthrough
	case int32(318): /* frame_bound_s */
		fallthrough
	case int32(319): /* frame_bound_e */
		_sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr)
		break
		/********* End destructor definitions *****************************************/
		fallthrough
	default:
		break /* If no destructor action specified: do nothing */
	}
}

// C documentation
//
//	/*
//	** Find the appropriate action for a parser given the non-terminal
//	** look-ahead token iLookAhead.
//	*/
func _yy_find_reduce_action(tls *libc.TLS, stateno uint16, iLookAhead uint16) (r uint16) {
	var i int32
	_ = i
	i = int32(_yy_reduce_ofst[stateno])
	i = i + int32(iLookAhead)
	return _yy_action[i]
}

// C documentation
//
//	/*
//	** Find the appropriate action for a parser given the terminal
//	** look-ahead token iLookAhead.
//	*/
func _yy_find_shift_action(tls *libc.TLS, iLookAhead uint16, stateno uint16) (r uint16) {
	var i, j int32
	var iFallback uint16
	_, _, _ = i, iFallback, j
	if int32(stateno) > int32(YY_MAX_SHIFT) {
		return stateno
	}
	for cond := true; cond; cond = int32(1) != 0 {
		i = int32(_yy_shift_ofst[stateno])
		i = i + int32(iLookAhead)
		if int32(_yy_lookahead[i]) != int32(iLookAhead) { /* Fallback token */
			iFallback = _yyFallback[iLookAhead]
			if int32(iFallback) != 0 {
				/* Fallback loop must terminate */
				iLookAhead = iFallback
				continue
			}
			j = i - int32(iLookAhead) + int32(YYWILDCARD)
			if int32(_yy_lookahead[j]) == int32(YYWILDCARD) && int32(iLookAhead) > 0 {
				return _yy_action[j]
			}
			return _yy_default[stateno]
		} else {
			return _yy_action[i]
		}
	}
	return r
}

// C documentation
//
//	/*
//	** The following code executes when a syntax error first occurs.
//	*/
func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor TToken) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	*(*TToken)(unsafe.Pointer(bp)) = _yyminor
	var pParse uintptr
	_ = pParse
	pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse
	/************ Begin %syntax_error code ****************************************/
	_ = yymajor /* Silence some compiler warnings */
	if **(**int8)(__ccgo_up((**(**TToken)(__ccgo_up(bp))).Fz)) != 0 {
		_parserSyntaxError(tls, pParse, bp)
	} else {
		_sqlite3ErrorMsg(tls, pParse, __ccgo_ts+26434, 0)
	}
	/************ End %syntax_error code ******************************************/
	/* Suppress warning about unused %extra_argument variable */
	(*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse
}

var _zChars = [63]int8{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}

// C documentation
//
//	/*
//	** The journal file must be open when this function is called.
//	**
//	** This function is a no-op if the journal file has not been written to
//	** within the current transaction (i.e. if Pager.journalOff==0).
//	**
//	** If doTruncate is non-zero or the Pager.journalSizeLimit variable is
//	** set to 0, then truncate the journal file to zero bytes in size. Otherwise,
//	** zero the 28-byte header at the start of the journal file. In either case,
//	** if the pager is not in no-sync mode, sync the journal file immediately
//	** after writing or truncating it.
//	**
//	** If Pager.journalSizeLimit is set to a positive, non-zero value, and
//	** following the truncation or zeroing described above the size of the
//	** journal file in bytes is larger than this value, then truncate the
//	** journal file to Pager.journalSizeLimit bytes. The journal file does
//	** not need to be synced following this operation.
//	**
//	** If an IO error occurs, abandon processing and return the IO error code.
//	** Otherwise, return SQLITE_OK.
//	*/
func _zeroJournalHdr(tls *libc.TLS, pPager uintptr, doTruncate int32) (r int32) {
	bp := tls.Alloc(16)
	defer tls.Free(16)
	var iLimit Ti64
	var rc int32
	var _ /* sz at bp+0 */ Ti64
	_, _ = iLimit, rc
	rc = SQLITE_OK /* Return code */
	if (*TPager)(unsafe.Pointer(pPager)).FjournalOff != 0 {
		iLimit = (*TPager)(unsafe.Pointer(pPager)).FjournalSizeLimit /* Local cache of jsl */
		if doTruncate != 0 || iLimit == 0 {
			rc = _sqlite3OsTruncate(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, 0)
		} else {
			rc = _sqlite3OsWrite(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, uintptr(unsafe.Pointer(&_zeroHdr)), int32(28), 0)
		}
		if rc == SQLITE_OK && !((*TPager)(unsafe.Pointer(pPager)).FnoSync != 0) {
			rc = _sqlite3OsSync(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, int32(SQLITE_SYNC_DATAONLY)|int32((*TPager)(unsafe.Pointer(pPager)).FsyncFlags))
		}
		/* At this point the transaction is committed but the write lock
		 ** is still held on the file. If there is a size limit configured for
		 ** the persistent journal and the journal file currently consumes more
		 ** space than that limit allows for, truncate it now. There is no need
		 ** to sync the file following this operation.
		 */
		if rc == SQLITE_OK && iLimit > 0 {
			rc = _sqlite3OsFileSize(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, bp)
			if rc == SQLITE_OK && **(**Ti64)(__ccgo_up(bp)) > iLimit {
				rc = _sqlite3OsTruncate(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, iLimit)
			}
		}
	}
	return rc
}

// C documentation
//
//	/*
//	** The zeroblob(N) function returns a zero-filled blob of size N bytes.
//	*/
func _zeroblobFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
	var n Ti64
	var rc int32
	_, _ = n, rc
	_ = argc
	n = Xsqlite3_value_int64(tls, **(**uintptr)(__ccgo_up(argv)))
	if n < 0 {
		n = 0
	}
	rc = Xsqlite3_result_zeroblob64(tls, context, uint64(n)) /* IMP: R-00293-64994 */
	if rc != 0 {
		Xsqlite3_result_error_code(tls, context, rc)
	}
}

const abnormal_termination = 0

const auxGetDevCaps = 0

type boolean = Tboolean

type byte = Tbyte

const cPRIV_KEY_CACHE_MAX_ITEMS_DEFAULT = 20

const cPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS_DEFAULT = 86400

const cbNDRContext = 20

const chx1 = 1040

const chx10 = 1049

const chx11 = 1050

const chx12 = 1051

const chx13 = 1052

const chx14 = 1053

const chx15 = 1054

const chx16 = 1055

const chx2 = 1041

const chx3 = 1042

const chx4 = 1043

const chx5 = 1044

const chx6 = 1045

const chx7 = 1046

const chx8 = 1047

const chx9 = 1048

type clockid_t = Tclockid_t

/*
** The MSVC CRT on Windows CE may not have a localtime() function.
** So declare a substitute.  The substitute function itself is
** defined in "os_win.c".
 */

const cmb1 = 1136

const cmb10 = 1145

const cmb11 = 1146

const cmb12 = 1147

const cmb13 = 1148

const cmb14 = 1149

const cmb15 = 1150

const cmb16 = 1151

const cmb2 = 1137

const cmb3 = 1138

const cmb4 = 1139

const cmb5 = 1140

const cmb6 = 1141

const cmb7 = 1142

const cmb8 = 1143

const cmb9 = 1144

type cs_byte = Tcs_byte

const ctl1 = 1184

const ctlFirst = 1024

const ctlLast = 1279

type double_t = Tdouble_t

/* Documentation on decimal float math
   http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801?ciid=8cf166fedd1aa110VgnVCM100000a360ea10RCRD
*/

const dwFORCE_KEY_PROTECTION_DISABLED = 0

const dwFORCE_KEY_PROTECTION_HIGH = 2

const dwFORCE_KEY_PROTECTION_USER_SELECT = 1

const edt1 = 1152

const edt10 = 1161

const edt11 = 1162

const edt12 = 1163

const edt13 = 1164

const edt14 = 1165

const edt15 = 1166

const edt16 = 1167

const edt2 = 1153

const edt3 = 1154

const edt4 = 1155

const edt5 = 1156

const edt6 = 1157

const edt7 = 1158

const edt8 = 1159

const edt9 = 1160

const environ = 0

type error_status_t = Terror_status_t

const exception_code = 0

const frm1 = 1076

const frm2 = 1077

const frm3 = 1078

const frm4 = 1079

const fseeko = 0

const ftello = 0

const grp1 = 1072

const grp2 = 1073

const grp3 = 1074

const grp4 = 1075

const h_errno = 0

type handle_t = Thandle_t

type hostent = Thostent

const hyper = "__int64"

const ico1 = 1084

const ico2 = 1085

const ico3 = 1086

const ico4 = 1087

type in_addr = Tin_addr

type ip_mreq = Tip_mreq

const isascii = 0

const iscsym = 0

const iscsymf = 0

const joyGetDevCaps = 0

type joyinfo_tag = Tjoyinfo_tag

type joyinfoex_tag = Tjoyinfoex_tag

type localeinfo_struct = Tlocaleinfo_struct

const lst1 = 1120

const lst10 = 1129

const lst11 = 1130

const lst12 = 1131

const lst13 = 1132

const lst14 = 1133

const lst15 = 1134

const lst16 = 1135

const lst2 = 1121

const lst3 = 1122

const lst4 = 1123

const lst5 = 1124

const lst6 = 1125

const lst7 = 1126

const lst8 = 1127

const lst9 = 1128

const lstrcat = 0

const lstrcmp = 0

const lstrcmpi = 0

const lstrcpy = 0

const lstrcpyn = 0

const lstrlen = 0

const matherr = 0

const mciGetDeviceID = 0

const mciGetDeviceIDFromElementID = 0

const mciGetErrorString = 0

const mciSendCommand = 0

const mciSendString = 0

const midiInGetDevCaps = 0

const midiInGetErrorText = 0

const midiOutGetDevCaps = 0

const midiOutGetErrorText = 0

type midievent_tag = Tmidievent_tag

type midihdr_tag = Tmidihdr_tag

type midiproptempo_tag = Tmidiproptempo_tag

type midiproptimediv_tag = Tmidiproptimediv_tag

type midistrmbuffver_tag = Tmidistrmbuffver_tag

const midl_user_allocate = 0

const midl_user_free = 0

const mixerGetControlDetails = 0

const mixerGetDevCaps = 0

const mixerGetLineControls = 0

const mixerGetLineInfo = 0

const mmioInstallIOProc = 0

const mmioOpen = 0

const mmioRename = 0

const mmioStringToFOURCC = 0

type mmtime_tag = Tmmtime_tag

type netent = Tnetent

type off32_t = Toff32_t

const onexit_t = 0

const osInterlockedCompareExchange = 0

const pclose = 0

type pcmwaveformat_tag = Tpcmwaveformat_tag

const popen = 0

type protoent = Tprotoent

type provider_info = Tprovider_info

const psh1 = 1024

const psh10 = 1033

const psh11 = 1034

const psh12 = 1035

const psh13 = 1036

const psh14 = 1037

const psh15 = 1038

const psh16 = 1039

const psh2 = 1025

const psh3 = 1026

const psh4 = 1027

const psh5 = 1028

const psh6 = 1029

const psh7 = 1030

const psh8 = 1031

const psh9 = 1032

const pshHelp = 1038

type pthreadlocinfo = Tpthreadlocinfo

type pthreadmbcinfo = Tpthreadmbcinfo

type pvalueA = TpvalueA

type pvalueW = TpvalueW

const rad1 = 1056

const rad10 = 1065

const rad11 = 1066

const rad12 = 1067

const rad13 = 1068

const rad14 = 1069

const rad15 = 1070

const rad16 = 1071

const rad2 = 1057

const rad3 = 1058

const rad4 = 1059

const rad5 = 1060

const rad6 = 1061

const rad7 = 1062

const rad8 = 1063

const rad9 = 1064

const rct1 = 1080

const rct2 = 1081

const rct3 = 1082

const rct4 = 1083

type remoteMETAFILEPICT = TremoteMETAFILEPICT

const rpc_binding_handle_t = 0

const rpc_binding_vector_t = 0

const scr1 = 1168

const scr2 = 1169

const scr3 = 1170

const scr4 = 1171

const scr5 = 1172

const scr6 = 1173

const scr7 = 1174

const scr8 = 1175

type servent = Tservent

const sndPlaySound = 0

type sockaddr_in = Tsockaddr_in

const sqlite3_win_test_unc_locking = 0

const stc1 = 1088

const stc10 = 1097

const stc11 = 1098

const stc12 = 1099

const stc13 = 1100

const stc14 = 1101

const stc15 = 1102

const stc16 = 1103

const stc17 = 1104

const stc18 = 1105

const stc19 = 1106

const stc2 = 1089

const stc20 = 1107

const stc21 = 1108

const stc22 = 1109

const stc23 = 1110

const stc24 = 1111

const stc25 = 1112

const stc26 = 1113

const stc27 = 1114

const stc28 = 1115

const stc29 = 1116

const stc3 = 1090

const stc30 = 1117

const stc31 = 1118

const stc32 = 1119

const stc4 = 1091

const stc5 = 1092

const stc6 = 1093

const stc7 = 1094

const stc8 = 1095

const stc9 = 1096

const strcasecmp = 0

const strncasecmp = 0

const sys_errlist = 0

const sys_nerr = 0

const szFORCE_KEY_PROTECTION = "ForceKeyProtection"

const szKEY_CACHE_ENABLED = "CachePrivateKeys"

const szKEY_CACHE_SECONDS = "PrivateKeyLifetimeSeconds"

const szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS = "Software\\\\Policies\\\\Microsoft\\\\Cryptography"

const szOIDVerisign_FailInfo = "2.16.840.1.113733.1.9.4"

const szOIDVerisign_MessageType = "2.16.840.1.113733.1.9.2"

const szOIDVerisign_PkiStatus = "2.16.840.1.113733.1.9.3"

const szOIDVerisign_RecipientNonce = "2.16.840.1.113733.1.9.6"

const szOIDVerisign_SenderNonce = "2.16.840.1.113733.1.9.5"

const szOIDVerisign_TransactionID = "2.16.840.1.113733.1.9.7"

const szOID_ANSI_X942 = "1.2.840.10046"

const szOID_ANSI_X942_DH = "1.2.840.10046.2.1"

const szOID_ANY_APPLICATION_POLICY = "1.3.6.1.4.1.311.10.12.1"

const szOID_ANY_CERT_POLICY = "2.5.29.32.0"

const szOID_ANY_ENHANCED_KEY_USAGE = "2.5.29.37.0"

const szOID_APPLICATION_CERT_POLICIES = "1.3.6.1.4.1.311.21.10"

const szOID_APPLICATION_POLICY_CONSTRAINTS = "1.3.6.1.4.1.311.21.12"

const szOID_APPLICATION_POLICY_MAPPINGS = "1.3.6.1.4.1.311.21.11"

const szOID_ARCHIVED_KEY_ATTR = "1.3.6.1.4.1.311.21.13"

const szOID_ARCHIVED_KEY_CERT_HASH = "1.3.6.1.4.1.311.21.16"

const szOID_ATTEST_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.5.1"

const szOID_ATTR_PLATFORM_SPECIFICATION = "2.23.133.2.17"

const szOID_ATTR_SUPPORTED_ALGORITHMS = "2.5.4.52"

const szOID_ATTR_TPM_SECURITY_ASSERTIONS = "2.23.133.2.18"

const szOID_ATTR_TPM_SPECIFICATION = "2.23.133.2.16"

const szOID_AUTHORITY_INFO_ACCESS = "1.3.6.1.5.5.7.1.1"

const szOID_AUTHORITY_KEY_IDENTIFIER = "2.5.29.1"

const szOID_AUTHORITY_KEY_IDENTIFIER2 = "2.5.29.35"

const szOID_AUTHORITY_REVOCATION_LIST = "2.5.4.38"

const szOID_AUTO_ENROLL_CTL_USAGE = "1.3.6.1.4.1.311.20.1"

const szOID_BACKGROUND_OTHER_LOGOTYPE = "1.3.6.1.5.5.7.20.2"

const szOID_BASIC_CONSTRAINTS = "2.5.29.10"

const szOID_BASIC_CONSTRAINTS2 = "2.5.29.19"

const szOID_BIOMETRIC_EXT = "1.3.6.1.5.5.7.1.2"

const szOID_BIOMETRIC_SIGNING = "1.3.6.1.4.1.311.10.3.41"

const szOID_BUSINESS_CATEGORY = "2.5.4.15"

const szOID_CA_CERTIFICATE = "2.5.4.37"

const szOID_CERTIFICATE_REVOCATION_LIST = "2.5.4.39"

const szOID_CERTIFICATE_TEMPLATE = "1.3.6.1.4.1.311.21.7"

const szOID_CERTSRV_CA_VERSION = "1.3.6.1.4.1.311.21.1"

const szOID_CERTSRV_CROSSCA_VERSION = "1.3.6.1.4.1.311.21.22"

const szOID_CERTSRV_PREVIOUS_CERT_HASH = "1.3.6.1.4.1.311.21.2"

const szOID_CERT_DISALLOWED_FILETIME_PROP_ID = "1.3.6.1.4.1.311.10.11.104"

const szOID_CERT_EXTENSIONS = "1.3.6.1.4.1.311.2.1.14"

const szOID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = "1.3.6.1.4.1.311.10.11.28"

const szOID_CERT_KEY_IDENTIFIER_PROP_ID = "1.3.6.1.4.1.311.10.11.20"

const szOID_CERT_MANIFOLD = "1.3.6.1.4.1.311.20.3"

const szOID_CERT_MD5_HASH_PROP_ID = "1.3.6.1.4.1.311.10.11.4"

const szOID_CERT_POLICIES = "2.5.29.32"

const szOID_CERT_POLICIES_95 = "2.5.29.3"

const szOID_CERT_POLICIES_95_QUALIFIER1 = "2.16.840.1.113733.1.7.1.1"

const szOID_CERT_PROP_ID_PREFIX = "1.3.6.1.4.1.311.10.11."

const szOID_CERT_SIGNATURE_HASH_PROP_ID = "1.3.6.1.4.1.311.10.11.15"

const szOID_CERT_STRONG_KEY_OS_1 = "1.3.6.1.4.1.311.72.2.1"

const szOID_CERT_STRONG_KEY_OS_CURRENT = "szOID_CERT_STRONG_KEY_OS_1"

const szOID_CERT_STRONG_KEY_OS_PREFIX = "1.3.6.1.4.1.311.72.2."

const szOID_CERT_STRONG_SIGN_OS_1 = "1.3.6.1.4.1.311.72.1.1"

const szOID_CERT_STRONG_SIGN_OS_CURRENT = "szOID_CERT_STRONG_SIGN_OS_1"

const szOID_CERT_STRONG_SIGN_OS_PREFIX = "1.3.6.1.4.1.311.72.1."

const szOID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = "1.3.6.1.4.1.311.10.11.29"

const szOID_CMC = "1.3.6.1.5.5.7.7"

const szOID_CMC_ADD_ATTRIBUTES = "1.3.6.1.4.1.311.10.10.1"

const szOID_CMC_ADD_EXTENSIONS = "1.3.6.1.5.5.7.7.8"

const szOID_CMC_DATA_RETURN = "1.3.6.1.5.5.7.7.4"

const szOID_CMC_DECRYPTED_POP = "1.3.6.1.5.5.7.7.10"

const szOID_CMC_ENCRYPTED_POP = "1.3.6.1.5.5.7.7.9"

const szOID_CMC_GET_CERT = "1.3.6.1.5.5.7.7.15"

const szOID_CMC_GET_CRL = "1.3.6.1.5.5.7.7.16"

const szOID_CMC_IDENTIFICATION = "1.3.6.1.5.5.7.7.2"

const szOID_CMC_IDENTITY_PROOF = "1.3.6.1.5.5.7.7.3"

const szOID_CMC_ID_CONFIRM_CERT_ACCEPTANCE = "1.3.6.1.5.5.7.7.24"

const szOID_CMC_ID_POP_LINK_RANDOM = "1.3.6.1.5.5.7.7.22"

const szOID_CMC_ID_POP_LINK_WITNESS = "1.3.6.1.5.5.7.7.23"

const szOID_CMC_LRA_POP_WITNESS = "1.3.6.1.5.5.7.7.11"

const szOID_CMC_QUERY_PENDING = "1.3.6.1.5.5.7.7.21"

const szOID_CMC_RECIPIENT_NONCE = "1.3.6.1.5.5.7.7.7"

const szOID_CMC_REG_INFO = "1.3.6.1.5.5.7.7.18"

const szOID_CMC_RESPONSE_INFO = "1.3.6.1.5.5.7.7.19"

const szOID_CMC_REVOKE_REQUEST = "1.3.6.1.5.5.7.7.17"

const szOID_CMC_SENDER_NONCE = "1.3.6.1.5.5.7.7.6"

const szOID_CMC_STATUS_INFO = "1.3.6.1.5.5.7.7.1"

const szOID_CMC_TRANSACTION_ID = "1.3.6.1.5.5.7.7.5"

const szOID_CN_ECDSA_SHA256 = "1.2.156.11235.1.1.1"

const szOID_COMMON_NAME = "2.5.4.3"

const szOID_COUNTRY_NAME = "2.5.4.6"

const szOID_CRL_DIST_POINTS = "2.5.29.31"

const szOID_CRL_NEXT_PUBLISH = "1.3.6.1.4.1.311.21.4"

const szOID_CRL_NUMBER = "2.5.29.20"

const szOID_CRL_REASON_CODE = "2.5.29.21"

const szOID_CRL_SELF_CDP = "1.3.6.1.4.1.311.21.14"

const szOID_CRL_VIRTUAL_BASE = "1.3.6.1.4.1.311.21.3"

const szOID_CROSS_CERTIFICATE_PAIR = "2.5.4.40"

const szOID_CROSS_CERT_DIST_POINTS = "1.3.6.1.4.1.311.10.9.1"

const szOID_CTL = "1.3.6.1.4.1.311.10.1"

const szOID_CT_CERT_SCTLIST = "1.3.6.1.4.1.11129.2.4.2"

const szOID_CT_PKI_DATA = "1.3.6.1.5.5.7.12.2"

const szOID_CT_PKI_RESPONSE = "1.3.6.1.5.5.7.12.3"

const szOID_DELTA_CRL_INDICATOR = "2.5.29.27"

const szOID_DESCRIPTION = "2.5.4.13"

const szOID_DESTINATION_INDICATOR = "2.5.4.27"

const szOID_DEVICE_SERIAL_NUMBER = "2.5.4.5"

const szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF = "1.3.133.16.840.63.0.2"

const szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF = "1.3.132.1.11.1"

const szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF = "1.3.132.1.11.2"

const szOID_DISALLOWED_HASH = "szOID_CERT_SIGNATURE_HASH_PROP_ID"

const szOID_DISALLOWED_LIST = "1.3.6.1.4.1.311.10.3.30"

const szOID_DN_QUALIFIER = "2.5.4.46"

const szOID_DOMAIN_COMPONENT = "0.9.2342.19200300.100.1.25"

const szOID_DRM = "1.3.6.1.4.1.311.10.5.1"

const szOID_DRM_INDIVIDUALIZATION = "1.3.6.1.4.1.311.10.5.2"

const szOID_DS = "2.5"

const szOID_DSALG = "2.5.8"

const szOID_DSALG_CRPT = "2.5.8.1"

const szOID_DSALG_HASH = "2.5.8.2"

const szOID_DSALG_RSA = "2.5.8.1.1"

const szOID_DSALG_SIGN = "2.5.8.3"

const szOID_DS_EMAIL_REPLICATION = "1.3.6.1.4.1.311.21.19"

const szOID_DYNAMIC_CODE_GEN_SIGNER = "1.3.6.1.4.1.311.76.5.1"

const szOID_ECC_CURVE_BRAINPOOLP160R1 = "1.3.36.3.3.2.8.1.1.1"

const szOID_ECC_CURVE_BRAINPOOLP160T1 = "1.3.36.3.3.2.8.1.1.2"

const szOID_ECC_CURVE_BRAINPOOLP192R1 = "1.3.36.3.3.2.8.1.1.3"

const szOID_ECC_CURVE_BRAINPOOLP192T1 = "1.3.36.3.3.2.8.1.1.4"

const szOID_ECC_CURVE_BRAINPOOLP224R1 = "1.3.36.3.3.2.8.1.1.5"

const szOID_ECC_CURVE_BRAINPOOLP224T1 = "1.3.36.3.3.2.8.1.1.6"

const szOID_ECC_CURVE_BRAINPOOLP256R1 = "1.3.36.3.3.2.8.1.1.7"

const szOID_ECC_CURVE_BRAINPOOLP256T1 = "1.3.36.3.3.2.8.1.1.8"

const szOID_ECC_CURVE_BRAINPOOLP320R1 = "1.3.36.3.3.2.8.1.1.9"

const szOID_ECC_CURVE_BRAINPOOLP320T1 = "1.3.36.3.3.2.8.1.1.10"

const szOID_ECC_CURVE_BRAINPOOLP384R1 = "1.3.36.3.3.2.8.1.1.11"

const szOID_ECC_CURVE_BRAINPOOLP384T1 = "1.3.36.3.3.2.8.1.1.12"

const szOID_ECC_CURVE_BRAINPOOLP512R1 = "1.3.36.3.3.2.8.1.1.13"

const szOID_ECC_CURVE_BRAINPOOLP512T1 = "1.3.36.3.3.2.8.1.1.14"

const szOID_ECC_CURVE_EC192WAPI = "1.2.156.11235.1.1.2.1"

const szOID_ECC_CURVE_NISTP192 = "1.2.840.10045.3.1.1"

const szOID_ECC_CURVE_NISTP224 = "1.3.132.0.33"

const szOID_ECC_CURVE_NISTP256 = "szOID_ECC_CURVE_P256"

const szOID_ECC_CURVE_NISTP384 = "szOID_ECC_CURVE_P384"

const szOID_ECC_CURVE_NISTP521 = "szOID_ECC_CURVE_P521"

const szOID_ECC_CURVE_P256 = "1.2.840.10045.3.1.7"

const szOID_ECC_CURVE_P384 = "1.3.132.0.34"

const szOID_ECC_CURVE_P521 = "1.3.132.0.35"

const szOID_ECC_CURVE_SECP160K1 = "1.3.132.0.9"

const szOID_ECC_CURVE_SECP160R1 = "1.3.132.0.8"

const szOID_ECC_CURVE_SECP160R2 = "1.3.132.0.30"

const szOID_ECC_CURVE_SECP192K1 = "1.3.132.0.31"

const szOID_ECC_CURVE_SECP192R1 = "szOID_ECC_CURVE_NISTP192"

const szOID_ECC_CURVE_SECP224K1 = "1.3.132.0.32"

const szOID_ECC_CURVE_SECP224R1 = "szOID_ECC_CURVE_NISTP224"

const szOID_ECC_CURVE_SECP256K1 = "1.3.132.0.10"

const szOID_ECC_CURVE_SECP256R1 = "szOID_ECC_CURVE_P256"

const szOID_ECC_CURVE_SECP384R1 = "szOID_ECC_CURVE_P384"

const szOID_ECC_CURVE_SECP521R1 = "szOID_ECC_CURVE_P521"

const szOID_ECC_CURVE_WTLS12 = "szOID_ECC_CURVE_NISTP224"

const szOID_ECC_CURVE_WTLS7 = "szOID_ECC_CURVE_SECP160R2"

const szOID_ECC_CURVE_WTLS9 = "2.23.43.1.4.9"

const szOID_ECC_CURVE_X962P192V1 = "1.2.840.10045.3.1.1"

const szOID_ECC_CURVE_X962P192V2 = "1.2.840.10045.3.1.2"

const szOID_ECC_CURVE_X962P192V3 = "1.2.840.10045.3.1.3"

const szOID_ECC_CURVE_X962P239V1 = "1.2.840.10045.3.1.4"

const szOID_ECC_CURVE_X962P239V2 = "1.2.840.10045.3.1.5"

const szOID_ECC_CURVE_X962P239V3 = "1.2.840.10045.3.1.6"

const szOID_ECC_CURVE_X962P256V1 = "szOID_ECC_CURVE_P256"

const szOID_ECC_PUBLIC_KEY = "1.2.840.10045.2.1"

const szOID_ECDSA_SHA1 = "1.2.840.10045.4.1"

const szOID_ECDSA_SHA256 = "1.2.840.10045.4.3.2"

const szOID_ECDSA_SHA384 = "1.2.840.10045.4.3.3"

const szOID_ECDSA_SHA512 = "1.2.840.10045.4.3.4"

const szOID_ECDSA_SPECIFIED = "1.2.840.10045.4.3"

const szOID_EFS_RECOVERY = "1.3.6.1.4.1.311.10.3.4.1"

const szOID_EMBEDDED_NT_CRYPTO = "1.3.6.1.4.1.311.10.3.8"

const szOID_ENCLAVE_SIGNING = "1.3.6.1.4.1.311.10.3.42"

const szOID_ENCRYPTED_KEY_HASH = "1.3.6.1.4.1.311.21.21"

const szOID_ENHANCED_KEY_USAGE = "2.5.29.37"

const szOID_ENROLLMENT_AGENT = "1.3.6.1.4.1.311.20.2.1"

const szOID_ENROLLMENT_CSP_PROVIDER = "1.3.6.1.4.1.311.13.2.2"

const szOID_ENROLLMENT_NAME_VALUE_PAIR = "1.3.6.1.4.1.311.13.2.1"

const szOID_ENROLL_AIK_INFO = "1.3.6.1.4.1.311.21.39"

const szOID_ENROLL_ATTESTATION_CHALLENGE = "1.3.6.1.4.1.311.21.28"

const szOID_ENROLL_ATTESTATION_STATEMENT = "1.3.6.1.4.1.311.21.24"

const szOID_ENROLL_CAXCHGCERT_HASH = "1.3.6.1.4.1.311.21.27"

const szOID_ENROLL_CERTTYPE_EXTENSION = "1.3.6.1.4.1.311.20.2"

const szOID_ENROLL_EKPUB_CHALLENGE = "1.3.6.1.4.1.311.21.26"

const szOID_ENROLL_EKVERIFYCERT = "1.3.6.1.4.1.311.21.31"

const szOID_ENROLL_EKVERIFYCREDS = "1.3.6.1.4.1.311.21.32"

const szOID_ENROLL_EKVERIFYKEY = "1.3.6.1.4.1.311.21.30"

const szOID_ENROLL_EK_CA_KEYID = "1.3.6.1.4.1.311.21.43"

const szOID_ENROLL_EK_INFO = "1.3.6.1.4.1.311.21.23"

const szOID_ENROLL_ENCRYPTION_ALGORITHM = "1.3.6.1.4.1.311.21.29"

const szOID_ENROLL_KEY_AFFINITY = "1.3.6.1.4.1.311.21.41"

const szOID_ENROLL_KSP_NAME = "1.3.6.1.4.1.311.21.25"

const szOID_ENROLL_SCEP_CHALLENGE_ANSWER = "1.3.6.1.4.1.311.21.35"

const szOID_ENROLL_SCEP_CLIENT_REQUEST = "1.3.6.1.4.1.311.21.37"

const szOID_ENROLL_SCEP_ERROR = "1.3.6.1.4.1.311.21.33"

const szOID_ENROLL_SCEP_SERVER_MESSAGE = "1.3.6.1.4.1.311.21.38"

const szOID_ENROLL_SCEP_SERVER_SECRET = "1.3.6.1.4.1.311.21.40"

const szOID_ENROLL_SCEP_SERVER_STATE = "1.3.6.1.4.1.311.21.34"

const szOID_ENROLL_SCEP_SIGNER_HASH = "1.3.6.1.4.1.311.21.42"

const szOID_ENTERPRISE_OID_ROOT = "1.3.6.1.4.1.311.21.8"

const szOID_EV_RDN_COUNTRY = "1.3.6.1.4.1.311.60.2.1.3"

const szOID_EV_RDN_LOCALE = "1.3.6.1.4.1.311.60.2.1.1"

const szOID_EV_RDN_STATE_OR_PROVINCE = "1.3.6.1.4.1.311.60.2.1.2"

const szOID_EV_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.39"

const szOID_FACSIMILE_TELEPHONE_NUMBER = "2.5.4.23"

const szOID_FRESHEST_CRL = "2.5.29.46"

const szOID_GIVEN_NAME = "2.5.4.42"

const szOID_HPKP_DOMAIN_NAME_CTL = "1.3.6.1.4.1.311.10.3.60"

const szOID_HPKP_HEADER_VALUE_CTL = "1.3.6.1.4.1.311.10.3.61"

const szOID_INFOSEC = "2.16.840.1.101.2.1"

const szOID_INFOSEC_SuiteAConfidentiality = "2.16.840.1.101.2.1.1.14"

const szOID_INFOSEC_SuiteAIntegrity = "2.16.840.1.101.2.1.1.15"

const szOID_INFOSEC_SuiteAKMandSig = "2.16.840.1.101.2.1.1.18"

const szOID_INFOSEC_SuiteAKeyManagement = "2.16.840.1.101.2.1.1.17"

const szOID_INFOSEC_SuiteASignature = "2.16.840.1.101.2.1.1.13"

const szOID_INFOSEC_SuiteATokenProtection = "2.16.840.1.101.2.1.1.16"

const szOID_INFOSEC_mosaicConfidentiality = "2.16.840.1.101.2.1.1.4"

const szOID_INFOSEC_mosaicIntegrity = "2.16.840.1.101.2.1.1.6"

const szOID_INFOSEC_mosaicKMandSig = "2.16.840.1.101.2.1.1.12"

const szOID_INFOSEC_mosaicKMandUpdSig = "2.16.840.1.101.2.1.1.20"

const szOID_INFOSEC_mosaicKeyManagement = "2.16.840.1.101.2.1.1.10"

const szOID_INFOSEC_mosaicSignature = "2.16.840.1.101.2.1.1.2"

const szOID_INFOSEC_mosaicTokenProtection = "2.16.840.1.101.2.1.1.8"

const szOID_INFOSEC_mosaicUpdatedInteg = "2.16.840.1.101.2.1.1.21"

const szOID_INFOSEC_mosaicUpdatedSig = "2.16.840.1.101.2.1.1.19"

const szOID_INFOSEC_sdnsConfidentiality = "2.16.840.1.101.2.1.1.3"

const szOID_INFOSEC_sdnsIntegrity = "2.16.840.1.101.2.1.1.5"

const szOID_INFOSEC_sdnsKMandSig = "2.16.840.1.101.2.1.1.11"

const szOID_INFOSEC_sdnsKeyManagement = "2.16.840.1.101.2.1.1.9"

const szOID_INFOSEC_sdnsSignature = "2.16.840.1.101.2.1.1.1"

const szOID_INFOSEC_sdnsTokenProtection = "2.16.840.1.101.2.1.1.7"

const szOID_INHIBIT_ANY_POLICY = "2.5.29.54"

const szOID_INITIALS = "2.5.4.43"

const szOID_INTERNATIONALIZED_EMAIL_ADDRESS = "1.3.6.1.4.1.311.20.2.4"

const szOID_INTERNATIONAL_ISDN_NUMBER = "2.5.4.25"

const szOID_IPSEC_KP_IKE_INTERMEDIATE = "1.3.6.1.5.5.8.2.2"

const szOID_ISSUED_CERT_HASH = "1.3.6.1.4.1.311.21.17"

const szOID_ISSUER_ALT_NAME = "2.5.29.8"

const szOID_ISSUER_ALT_NAME2 = "2.5.29.18"

const szOID_ISSUING_DIST_POINT = "2.5.29.28"

const szOID_IUM_SIGNING = "1.3.6.1.4.1.311.10.3.37"

const szOID_KEYID_RDN = "1.3.6.1.4.1.311.10.7.1"

const szOID_KEY_ATTRIBUTES = "2.5.29.2"

const szOID_KEY_USAGE = "2.5.29.15"

const szOID_KEY_USAGE_RESTRICTION = "2.5.29.4"

const szOID_KP_CA_EXCHANGE = "1.3.6.1.4.1.311.21.5"

const szOID_KP_CSP_SIGNATURE = "1.3.6.1.4.1.311.10.3.16"

const szOID_KP_CTL_USAGE_SIGNING = "1.3.6.1.4.1.311.10.3.1"

const szOID_KP_DOCUMENT_SIGNING = "1.3.6.1.4.1.311.10.3.12"

const szOID_KP_EFS = "1.3.6.1.4.1.311.10.3.4"

const szOID_KP_FLIGHT_SIGNING = "1.3.6.1.4.1.311.10.3.27"

const szOID_KP_KERNEL_MODE_CODE_SIGNING = "1.3.6.1.4.1.311.61.1.1"

const szOID_KP_KERNEL_MODE_HAL_EXTENSION_SIGNING = "1.3.6.1.4.1.311.61.5.1"

const szOID_KP_KERNEL_MODE_TRUSTED_BOOT_SIGNING = "1.3.6.1.4.1.311.61.4.1"

const szOID_KP_KEY_RECOVERY = "1.3.6.1.4.1.311.10.3.11"

const szOID_KP_KEY_RECOVERY_AGENT = "1.3.6.1.4.1.311.21.6"

const szOID_KP_LIFETIME_SIGNING = "1.3.6.1.4.1.311.10.3.13"

const szOID_KP_MOBILE_DEVICE_SOFTWARE = "1.3.6.1.4.1.311.10.3.14"

const szOID_KP_QUALIFIED_SUBORDINATION = "1.3.6.1.4.1.311.10.3.10"

const szOID_KP_SMARTCARD_LOGON = "1.3.6.1.4.1.311.20.2.2"

const szOID_KP_SMART_DISPLAY = "1.3.6.1.4.1.311.10.3.15"

const szOID_KP_TIME_STAMP_SIGNING = "1.3.6.1.4.1.311.10.3.2"

const szOID_KP_TPM_AIK_CERTIFICATE = "2.23.133.8.3"

const szOID_KP_TPM_EK_CERTIFICATE = "2.23.133.8.1"

const szOID_KP_TPM_PLATFORM_CERTIFICATE = "2.23.133.8.2"

const szOID_LEGACY_POLICY_MAPPINGS = "2.5.29.5"

const szOID_LICENSES = "1.3.6.1.4.1.311.10.6.1"

const szOID_LICENSE_SERVER = "1.3.6.1.4.1.311.10.6.2"

const szOID_LOCALITY_NAME = "2.5.4.7"

const szOID_LOCAL_MACHINE_KEYSET = "1.3.6.1.4.1.311.17.2"

const szOID_LOGOTYPE_EXT = "1.3.6.1.5.5.7.1.12"

const szOID_LOYALTY_OTHER_LOGOTYPE = "1.3.6.1.5.5.7.20.1"

const szOID_MEMBER = "2.5.4.31"

const szOID_MICROSOFT_PUBLISHER_SIGNER = "1.3.6.1.4.1.311.76.8.1"

const szOID_NAME_CONSTRAINTS = "2.5.29.30"

const szOID_NETSCAPE = "2.16.840.1.113730"

const szOID_NETSCAPE_BASE_URL = "2.16.840.1.113730.1.2"

const szOID_NETSCAPE_CA_POLICY_URL = "2.16.840.1.113730.1.8"

const szOID_NETSCAPE_CA_REVOCATION_URL = "2.16.840.1.113730.1.4"

const szOID_NETSCAPE_CERT_EXTENSION = "2.16.840.1.113730.1"

const szOID_NETSCAPE_CERT_RENEWAL_URL = "2.16.840.1.113730.1.7"

const szOID_NETSCAPE_CERT_SEQUENCE = "2.16.840.1.113730.2.5"

const szOID_NETSCAPE_CERT_TYPE = "2.16.840.1.113730.1.1"

const szOID_NETSCAPE_COMMENT = "2.16.840.1.113730.1.13"

const szOID_NETSCAPE_DATA_TYPE = "2.16.840.1.113730.2"

const szOID_NETSCAPE_REVOCATION_URL = "2.16.840.1.113730.1.3"

const szOID_NETSCAPE_SSL_SERVER_NAME = "2.16.840.1.113730.1.12"

const szOID_NEXT_UPDATE_LOCATION = "1.3.6.1.4.1.311.10.2"

const szOID_NIST_AES128_CBC = "2.16.840.1.101.3.4.1.2"

const szOID_NIST_AES128_WRAP = "2.16.840.1.101.3.4.1.5"

const szOID_NIST_AES192_CBC = "2.16.840.1.101.3.4.1.22"

const szOID_NIST_AES192_WRAP = "2.16.840.1.101.3.4.1.25"

const szOID_NIST_AES256_CBC = "2.16.840.1.101.3.4.1.42"

const szOID_NIST_AES256_WRAP = "2.16.840.1.101.3.4.1.45"

const szOID_NIST_sha256 = "2.16.840.1.101.3.4.2.1"

const szOID_NIST_sha384 = "2.16.840.1.101.3.4.2.2"

const szOID_NIST_sha512 = "2.16.840.1.101.3.4.2.3"

const szOID_NT5_CRYPTO = "1.3.6.1.4.1.311.10.3.6"

const szOID_NTDS_REPLICATION = "1.3.6.1.4.1.311.25.1"

const szOID_NT_PRINCIPAL_NAME = "1.3.6.1.4.1.311.20.2.3"

const szOID_OEM_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.7"

const szOID_OIW = "1.3.14"

const szOID_OIWDIR = "1.3.14.7.2"

const szOID_OIWDIR_CRPT = "1.3.14.7.2.1"

const szOID_OIWDIR_HASH = "1.3.14.7.2.2"

const szOID_OIWDIR_SIGN = "1.3.14.7.2.3"

const szOID_OIWDIR_md2 = "1.3.14.7.2.2.1"

const szOID_OIWDIR_md2RSA = "1.3.14.7.2.3.1"

const szOID_OIWSEC = "1.3.14.3.2"

const szOID_OIWSEC_desCBC = "1.3.14.3.2.7"

const szOID_OIWSEC_desCFB = "1.3.14.3.2.9"

const szOID_OIWSEC_desECB = "1.3.14.3.2.6"

const szOID_OIWSEC_desEDE = "1.3.14.3.2.17"

const szOID_OIWSEC_desMAC = "1.3.14.3.2.10"

const szOID_OIWSEC_desOFB = "1.3.14.3.2.8"

const szOID_OIWSEC_dhCommMod = "1.3.14.3.2.16"

const szOID_OIWSEC_dsa = "1.3.14.3.2.12"

const szOID_OIWSEC_dsaComm = "1.3.14.3.2.20"

const szOID_OIWSEC_dsaCommSHA = "1.3.14.3.2.21"

const szOID_OIWSEC_dsaCommSHA1 = "1.3.14.3.2.28"

const szOID_OIWSEC_dsaSHA1 = "1.3.14.3.2.27"

const szOID_OIWSEC_keyHashSeal = "1.3.14.3.2.23"

const szOID_OIWSEC_md2RSASign = "1.3.14.3.2.24"

const szOID_OIWSEC_md4RSA = "1.3.14.3.2.2"

const szOID_OIWSEC_md4RSA2 = "1.3.14.3.2.4"

const szOID_OIWSEC_md5RSA = "1.3.14.3.2.3"

const szOID_OIWSEC_md5RSASign = "1.3.14.3.2.25"

const szOID_OIWSEC_mdc2 = "1.3.14.3.2.19"

const szOID_OIWSEC_mdc2RSA = "1.3.14.3.2.14"

const szOID_OIWSEC_rsaSign = "1.3.14.3.2.11"

const szOID_OIWSEC_rsaXchg = "1.3.14.3.2.22"

const szOID_OIWSEC_sha = "1.3.14.3.2.18"

const szOID_OIWSEC_sha1 = "1.3.14.3.2.26"

const szOID_OIWSEC_sha1RSASign = "1.3.14.3.2.29"

const szOID_OIWSEC_shaDSA = "1.3.14.3.2.13"

const szOID_OIWSEC_shaRSA = "1.3.14.3.2.15"

const szOID_ORGANIZATIONAL_UNIT_NAME = "2.5.4.11"

const szOID_ORGANIZATION_NAME = "2.5.4.10"

const szOID_OS_VERSION = "1.3.6.1.4.1.311.13.2.3"

const szOID_OWNER = "2.5.4.32"

const szOID_PHYSICAL_DELIVERY_OFFICE_NAME = "2.5.4.19"

const szOID_PIN_RULES_CTL = "1.3.6.1.4.1.311.10.3.32"

const szOID_PIN_RULES_DOMAIN_NAME = "1.3.6.1.4.1.311.10.3.34"

const szOID_PIN_RULES_EXT = "1.3.6.1.4.1.311.10.3.33"

const szOID_PIN_RULES_LOG_END_DATE_EXT = "1.3.6.1.4.1.311.10.3.35"

const szOID_PIN_RULES_SIGNER = "1.3.6.1.4.1.311.10.3.31"

const szOID_PKCS = "1.2.840.113549.1"

const szOID_PKCS_1 = "1.2.840.113549.1.1"

const szOID_PKCS_10 = "1.2.840.113549.1.10"

const szOID_PKCS_12 = "1.2.840.113549.1.12"

const szOID_PKCS_12_EXTENDED_ATTRIBUTES = "1.3.6.1.4.1.311.17.3"

const szOID_PKCS_12_FRIENDLY_NAME_ATTR = "1.2.840.113549.1.9.20"

const szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR = "1.3.6.1.4.1.311.17.1"

const szOID_PKCS_12_LOCAL_KEY_ID = "1.2.840.113549.1.9.21"

const szOID_PKCS_12_PROTECTED_PASSWORD_SECRET_BAG_TYPE_ID = "1.3.6.1.4.1.311.17.4"

const szOID_PKCS_12_PbeIds = "1.2.840.113549.1.12.1"

const szOID_PKCS_12_pbeWithSHA1And128BitRC2 = "1.2.840.113549.1.12.1.5"

const szOID_PKCS_12_pbeWithSHA1And128BitRC4 = "1.2.840.113549.1.12.1.1"

const szOID_PKCS_12_pbeWithSHA1And2KeyTripleDES = "1.2.840.113549.1.12.1.4"

const szOID_PKCS_12_pbeWithSHA1And3KeyTripleDES = "1.2.840.113549.1.12.1.3"

const szOID_PKCS_12_pbeWithSHA1And40BitRC2 = "1.2.840.113549.1.12.1.6"

const szOID_PKCS_12_pbeWithSHA1And40BitRC4 = "1.2.840.113549.1.12.1.2"

const szOID_PKCS_2 = "1.2.840.113549.1.2"

const szOID_PKCS_3 = "1.2.840.113549.1.3"

const szOID_PKCS_4 = "1.2.840.113549.1.4"

const szOID_PKCS_5 = "1.2.840.113549.1.5"

const szOID_PKCS_5_PBES2 = "1.2.840.113549.1.5.13"

const szOID_PKCS_5_PBKDF2 = "1.2.840.113549.1.5.12"

const szOID_PKCS_6 = "1.2.840.113549.1.6"

const szOID_PKCS_7 = "1.2.840.113549.1.7"

const szOID_PKCS_7_DATA = "1.2.840.113549.1.7.1"

const szOID_PKCS_7_DIGESTED = "1.2.840.113549.1.7.5"

const szOID_PKCS_7_ENCRYPTED = "1.2.840.113549.1.7.6"

const szOID_PKCS_7_ENVELOPED = "1.2.840.113549.1.7.3"

const szOID_PKCS_7_SIGNED = "1.2.840.113549.1.7.2"

const szOID_PKCS_7_SIGNEDANDENVELOPED = "1.2.840.113549.1.7.4"

const szOID_PKCS_8 = "1.2.840.113549.1.8"

const szOID_PKCS_9 = "1.2.840.113549.1.9"

const szOID_PKCS_9_CONTENT_TYPE = "1.2.840.113549.1.9.3"

const szOID_PKCS_9_MESSAGE_DIGEST = "1.2.840.113549.1.9.4"

const szOID_PKINIT_KP_KDC = "1.3.6.1.5.2.3.5"

const szOID_PKIX = "1.3.6.1.5.5.7"

const szOID_PKIX_ACC_DESCR = "1.3.6.1.5.5.7.48"

const szOID_PKIX_CA_ISSUERS = "1.3.6.1.5.5.7.48.2"

const szOID_PKIX_CA_REPOSITORY = "1.3.6.1.5.5.7.48.5"

const szOID_PKIX_KP = "1.3.6.1.5.5.7.3"

const szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2"

const szOID_PKIX_KP_CODE_SIGNING = "1.3.6.1.5.5.7.3.3"

const szOID_PKIX_KP_EMAIL_PROTECTION = "1.3.6.1.5.5.7.3.4"

const szOID_PKIX_KP_IPSEC_END_SYSTEM = "1.3.6.1.5.5.7.3.5"

const szOID_PKIX_KP_IPSEC_TUNNEL = "1.3.6.1.5.5.7.3.6"

const szOID_PKIX_KP_IPSEC_USER = "1.3.6.1.5.5.7.3.7"

const szOID_PKIX_KP_OCSP_SIGNING = "1.3.6.1.5.5.7.3.9"

const szOID_PKIX_KP_SERVER_AUTH = "1.3.6.1.5.5.7.3.1"

const szOID_PKIX_KP_TIMESTAMP_SIGNING = "1.3.6.1.5.5.7.3.8"

const szOID_PKIX_NO_SIGNATURE = "1.3.6.1.5.5.7.6.2"

const szOID_PKIX_OCSP = "1.3.6.1.5.5.7.48.1"

const szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE = "1.3.6.1.5.5.7.48.1.1"

const szOID_PKIX_OCSP_NOCHECK = "1.3.6.1.5.5.7.48.1.5"

const szOID_PKIX_OCSP_NONCE = "1.3.6.1.5.5.7.48.1.2"

const szOID_PKIX_PE = "1.3.6.1.5.5.7.1"

const szOID_PKIX_POLICY_QUALIFIER_CPS = "1.3.6.1.5.5.7.2.1"

const szOID_PKIX_POLICY_QUALIFIER_USERNOTICE = "1.3.6.1.5.5.7.2.2"

const szOID_PKIX_TIME_STAMPING = "1.3.6.1.5.5.7.48.3"

const szOID_PLATFORM_MANIFEST_BINARY_ID = "1.3.6.1.4.1.311.10.3.28"

const szOID_POLICY_CONSTRAINTS = "2.5.29.36"

const szOID_POLICY_MAPPINGS = "2.5.29.33"

const szOID_POSTAL_ADDRESS = "2.5.4.16"

const szOID_POSTAL_CODE = "2.5.4.17"

const szOID_POST_OFFICE_BOX = "2.5.4.18"

const szOID_PREFERRED_DELIVERY_METHOD = "2.5.4.28"

const szOID_PRESENTATION_ADDRESS = "2.5.4.29"

const szOID_PRIVATEKEY_USAGE_PERIOD = "2.5.29.16"

const szOID_PRODUCT_UPDATE = "1.3.6.1.4.1.311.31.1"

const szOID_PROTECTED_PROCESS_LIGHT_SIGNER = "1.3.6.1.4.1.311.10.3.22"

const szOID_PROTECTED_PROCESS_SIGNER = "1.3.6.1.4.1.311.10.3.24"

const szOID_QC_EU_COMPLIANCE = "0.4.0.1862.1.1"

const szOID_QC_SSCD = "0.4.0.1862.1.4"

const szOID_QC_STATEMENTS_EXT = "1.3.6.1.5.5.7.1.3"

const szOID_RDN_DUMMY_SIGNER = "1.3.6.1.4.1.311.21.9"

const szOID_RDN_TCG_PLATFORM_MANUFACTURER = "2.23.133.2.4"

const szOID_RDN_TCG_PLATFORM_MODEL = "2.23.133.2.5"

const szOID_RDN_TCG_PLATFORM_VERSION = "2.23.133.2.6"

const szOID_RDN_TPM_MANUFACTURER = "2.23.133.2.1"

const szOID_RDN_TPM_MODEL = "2.23.133.2.2"

const szOID_RDN_TPM_VERSION = "2.23.133.2.3"

const szOID_REASON_CODE_HOLD = "2.5.29.23"

const szOID_REGISTERED_ADDRESS = "2.5.4.26"

const szOID_REMOVE_CERTIFICATE = "1.3.6.1.4.1.311.10.8.1"

const szOID_RENEWAL_CERTIFICATE = "1.3.6.1.4.1.311.13.1"

const szOID_REQUEST_CLIENT_INFO = "1.3.6.1.4.1.311.21.20"

const szOID_REQUIRE_CERT_CHAIN_POLICY = "1.3.6.1.4.1.311.21.15"

const szOID_REVOKED_LIST_SIGNER = "1.3.6.1.4.1.311.10.3.19"

const szOID_RFC3161_counterSign = "1.3.6.1.4.1.311.3.3.1"

const szOID_ROLE_OCCUPANT = "2.5.4.33"

const szOID_ROOT_LIST_SIGNER = "1.3.6.1.4.1.311.10.3.9"

const szOID_ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION = "1.3.6.1.4.1.311.60.3.1"

const szOID_ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION = "1.3.6.1.4.1.311.60.3.2"

const szOID_ROOT_PROGRAM_FLAGS = "1.3.6.1.4.1.311.60.1.1"

const szOID_ROOT_PROGRAM_NO_OCSP_FAILOVER_TO_CRL = "1.3.6.1.4.1.311.60.3.3"

const szOID_RSA = "1.2.840.113549"

const szOID_RSAES_OAEP = "1.2.840.113549.1.1.7"

const szOID_RSA_DES_EDE3_CBC = "1.2.840.113549.3.7"

const szOID_RSA_DH = "1.2.840.113549.1.3.1"

const szOID_RSA_ENCRYPT = "1.2.840.113549.3"

const szOID_RSA_HASH = "1.2.840.113549.2"

const szOID_RSA_MD2 = "1.2.840.113549.2.2"

const szOID_RSA_MD2RSA = "1.2.840.113549.1.1.2"

const szOID_RSA_MD4 = "1.2.840.113549.2.4"

const szOID_RSA_MD4RSA = "1.2.840.113549.1.1.3"

const szOID_RSA_MD5 = "1.2.840.113549.2.5"

const szOID_RSA_MD5RSA = "1.2.840.113549.1.1.4"

const szOID_RSA_MGF1 = "1.2.840.113549.1.1.8"

const szOID_RSA_PSPECIFIED = "1.2.840.113549.1.1.9"

const szOID_RSA_RC2CBC = "1.2.840.113549.3.2"

const szOID_RSA_RC4 = "1.2.840.113549.3.4"

const szOID_RSA_RC5_CBCPad = "1.2.840.113549.3.9"

const szOID_RSA_RSA = "1.2.840.113549.1.1.1"

const szOID_RSA_SETOAEP_RSA = "1.2.840.113549.1.1.6"

const szOID_RSA_SHA1RSA = "1.2.840.113549.1.1.5"

const szOID_RSA_SHA256RSA = "1.2.840.113549.1.1.11"

const szOID_RSA_SHA384RSA = "1.2.840.113549.1.1.12"

const szOID_RSA_SHA512RSA = "1.2.840.113549.1.1.13"

const szOID_RSA_SMIMECapabilities = "1.2.840.113549.1.9.15"

const szOID_RSA_SMIMEalg = "1.2.840.113549.1.9.16.3"

const szOID_RSA_SMIMEalgCMS3DESwrap = "1.2.840.113549.1.9.16.3.6"

const szOID_RSA_SMIMEalgCMSRC2wrap = "1.2.840.113549.1.9.16.3.7"

const szOID_RSA_SMIMEalgESDH = "1.2.840.113549.1.9.16.3.5"

const szOID_RSA_SSA_PSS = "1.2.840.113549.1.1.10"

const szOID_RSA_certExtensions = "1.2.840.113549.1.9.14"

const szOID_RSA_challengePwd = "1.2.840.113549.1.9.7"

const szOID_RSA_contentType = "1.2.840.113549.1.9.3"

const szOID_RSA_counterSign = "1.2.840.113549.1.9.6"

const szOID_RSA_data = "1.2.840.113549.1.7.1"

const szOID_RSA_digestedData = "1.2.840.113549.1.7.5"

const szOID_RSA_emailAddr = "1.2.840.113549.1.9.1"

const szOID_RSA_encryptedData = "1.2.840.113549.1.7.6"

const szOID_RSA_envelopedData = "1.2.840.113549.1.7.3"

const szOID_RSA_extCertAttrs = "1.2.840.113549.1.9.9"

const szOID_RSA_hashedData = "1.2.840.113549.1.7.5"

const szOID_RSA_messageDigest = "1.2.840.113549.1.9.4"

const szOID_RSA_preferSignedData = "1.2.840.113549.1.9.15.1"

const szOID_RSA_signEnvData = "1.2.840.113549.1.7.4"

const szOID_RSA_signedData = "1.2.840.113549.1.7.2"

const szOID_RSA_signingTime = "1.2.840.113549.1.9.5"

const szOID_RSA_unstructAddr = "1.2.840.113549.1.9.8"

const szOID_RSA_unstructName = "1.2.840.113549.1.9.2"

const szOID_SEARCH_GUIDE = "2.5.4.14"

const szOID_SEE_ALSO = "2.5.4.34"

const szOID_SERIALIZED = "1.3.6.1.4.1.311.10.3.3.1"

const szOID_SERVER_GATED_CRYPTO = "1.3.6.1.4.1.311.10.3.3"

const szOID_SGC_NETSCAPE = "2.16.840.1.113730.4.1"

const szOID_SITE_PIN_RULES_FLAGS_ATTR = "1.3.6.1.4.1.311.10.4.3"

const szOID_SITE_PIN_RULES_INDEX_ATTR = "1.3.6.1.4.1.311.10.4.2"

const szOID_SORTED_CTL = "1.3.6.1.4.1.311.10.1.1"

const szOID_STATE_OR_PROVINCE_NAME = "2.5.4.8"

const szOID_STREET_ADDRESS = "2.5.4.9"

const szOID_SUBJECT_ALT_NAME = "2.5.29.7"

const szOID_SUBJECT_ALT_NAME2 = "2.5.29.17"

const szOID_SUBJECT_DIR_ATTRS = "2.5.29.9"

const szOID_SUBJECT_INFO_ACCESS = "1.3.6.1.5.5.7.1.11"

const szOID_SUBJECT_KEY_IDENTIFIER = "2.5.29.14"

const szOID_SUPPORTED_APPLICATION_CONTEXT = "2.5.4.30"

const szOID_SUR_NAME = "2.5.4.4"

const szOID_SYNC_ROOT_CTL_EXT = "1.3.6.1.4.1.311.10.3.50"

const szOID_TELEPHONE_NUMBER = "2.5.4.20"

const szOID_TELETEXT_TERMINAL_IDENTIFIER = "2.5.4.22"

const szOID_TELEX_NUMBER = "2.5.4.21"

const szOID_TIMESTAMP_TOKEN = "1.2.840.113549.1.9.16.1.4"

const szOID_TITLE = "2.5.4.12"

const szOID_TLS_FEATURES_EXT = "1.3.6.1.5.5.7.1.24"

const szOID_USER_CERTIFICATE = "2.5.4.36"

const szOID_USER_PASSWORD = "2.5.4.35"

const szOID_VERISIGN_BITSTRING_6_13 = "2.16.840.1.113733.1.6.13"

const szOID_VERISIGN_ISS_STRONG_CRYPTO = "2.16.840.1.113733.1.8.1"

const szOID_VERISIGN_ONSITE_JURISDICTION_HASH = "2.16.840.1.113733.1.6.11"

const szOID_VERISIGN_PRIVATE_6_9 = "2.16.840.1.113733.1.6.9"

const szOID_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.5"

const szOID_WINDOWS_KITS_SIGNER = "1.3.6.1.4.1.311.10.3.20"

const szOID_WINDOWS_RT_SIGNER = "1.3.6.1.4.1.311.10.3.21"

const szOID_WINDOWS_SOFTWARE_EXTENSION_SIGNER = "1.3.6.1.4.1.311.10.3.26"

const szOID_WINDOWS_STORE_SIGNER = "1.3.6.1.4.1.311.76.3.1"

const szOID_WINDOWS_TCB_SIGNER = "1.3.6.1.4.1.311.10.3.23"

const szOID_WINDOWS_THIRD_PARTY_COMPONENT_SIGNER = "1.3.6.1.4.1.311.10.3.25"

const szOID_X21_ADDRESS = "2.5.4.24"

const szOID_X957 = "1.2.840.10040"

const szOID_X957_DSA = "1.2.840.10040.4.1"

const szOID_X957_SHA1DSA = "1.2.840.10040.4.3"

const szOID_YESNO_TRUST_ATTR = "1.3.6.1.4.1.311.10.4.1"

const szPRIV_KEY_CACHE_MAX_ITEMS = "PrivKeyCacheMaxItems"

const szPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS = "PrivKeyCachePurgeIntervalSeconds"

const sz_CERT_STORE_PROV_COLLECTION = "Collection"

const sz_CERT_STORE_PROV_FILENAME = "sz_CERT_STORE_PROV_FILENAME_W"

const sz_CERT_STORE_PROV_FILENAME_W = "File"

const sz_CERT_STORE_PROV_LDAP = "sz_CERT_STORE_PROV_LDAP_W"

const sz_CERT_STORE_PROV_LDAP_W = "Ldap"

const sz_CERT_STORE_PROV_MEMORY = "Memory"

const sz_CERT_STORE_PROV_PHYSICAL = "sz_CERT_STORE_PROV_PHYSICAL_W"

const sz_CERT_STORE_PROV_PHYSICAL_W = "Physical"

const sz_CERT_STORE_PROV_PKCS12 = "PKCS12"

const sz_CERT_STORE_PROV_PKCS7 = "PKCS7"

const sz_CERT_STORE_PROV_SERIALIZED = "Serialized"

const sz_CERT_STORE_PROV_SMART_CARD = "sz_CERT_STORE_PROV_SMART_CARD_W"

const sz_CERT_STORE_PROV_SMART_CARD_W = "SmartCard"

const sz_CERT_STORE_PROV_SYSTEM = "sz_CERT_STORE_PROV_SYSTEM_W"

const sz_CERT_STORE_PROV_SYSTEM_REGISTRY = "sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W"

const sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W = "SystemRegistry"

const sz_CERT_STORE_PROV_SYSTEM_W = "System"

type tMIXERCONTROLDETAILS = TtMIXERCONTROLDETAILS

type tMIXERCONTROLDETAILS_BOOLEAN = TtMIXERCONTROLDETAILS_BOOLEAN

type tMIXERCONTROLDETAILS_SIGNED = TtMIXERCONTROLDETAILS_SIGNED

type tMIXERCONTROLDETAILS_UNSIGNED = TtMIXERCONTROLDETAILS_UNSIGNED

type tWAVEFORMATEX = TtWAVEFORMATEX

type t__BCRYPT_KEY_LENGTHS_STRUCT = TBCRYPT_KEY_LENGTHS_STRUCT

type t__GENERIC_BINDING_INFO = TGENERIC_BINDING_INFO

type t__NCRYPT_SUPPORTED_LENGTHS = TNCRYPT_SUPPORTED_LENGTHS

type t__NCRYPT_UI_POLICY = TNCRYPT_UI_POLICY

type t__WIDL_oaidl_generated_name_0000000E = struct {
	FUnknownStr   [0]TSAFEARR_UNKNOWN
	FDispatchStr  [0]TSAFEARR_DISPATCH
	FVariantStr   [0]TSAFEARR_VARIANT
	FRecordStr    [0]TSAFEARR_BRECORD
	FHaveIidStr   [0]TSAFEARR_HAVEIID
	FByteStr      [0]TBYTE_SIZEDARR
	FWordStr      [0]TWORD_SIZEDARR
	FLongStr      [0]TDWORD_SIZEDARR
	FHyperStr     [0]THYPER_SIZEDARR
	FBstrStr      TSAFEARR_BSTR
	F__ccgo_pad10 [16]byte
}

type t__WIDL_objidl_generated_name_0000000C = struct {
	FhPalette [0]TwireHPALETTE
	FhGeneric [0]TwireHGLOBAL
	FhBitmap  TwireHBITMAP
}

type t__WIDL_objidl_generated_name_0000000D = struct {
	FhHEnhMetaFile [0]TwireHENHMETAFILE
	FhGdiHandle    [0]uintptr
	FhGlobal       [0]TwireHGLOBAL
	FlpszFileName  [0]TLPOLESTR
	Fpstm          [0]uintptr
	Fpstg          [0]uintptr
	FhMetaFilePict TwireHMETAFILEPICT
}

type t__WIDL_wtypes_generated_name_00000009 = struct {
	FhRemote [0]TLONG
	FhInproc TLONG
}

type t__WIDL_wtypes_generated_name_0000000A = struct {
	FpFileExt  [0]TLPOLESTR
	FpMimeType [0]TLPOLESTR
	FpProgId   [0]TLPOLESTR
	FpFileName [0]TLPOLESTR
	FByName    [0]struct {
		FpPackageName TLPOLESTR
		FPolicyId     TGUID
	}
	FByObjectId [0]struct {
		FObjectId TGUID
		FPolicyId TGUID
	}
	Fclsid       TCLSID
	F__ccgo_pad7 [16]byte
}

type t__WIDL_wtypes_generated_name_0000000B = TuCLSSPEC

type t__mingw_flt_type_t = struct {
	Fval [0]uint32
	Fx   float32
}

type t__predefined_wchar_t = uint16

type t__time32_t = int32

type t__time64_t = int64

type t__timeb32 = struct {
	Ftime     t__time32_t
	Fmillitm  uint16
	Ftimezone int16
	Fdstflag  int16
}

type tagABORTPATH = TtagABORTPATH

type tagACCEL = TtagACCEL

type tagACCESSTIMEOUT = TtagACCESSTIMEOUT

type tagACTCTXA = TtagACTCTXA

type tagACTCTXW = TtagACTCTXW

type tagACTCTX_SECTION_KEYED_DATA = TtagACTCTX_SECTION_KEYED_DATA

type tagACTCTX_SECTION_KEYED_DATA_2600 = TtagACTCTX_SECTION_KEYED_DATA_2600

type tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = TtagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA

type tagALTTABINFO = TtagALTTABINFO

type tagANIMATIONINFO = TtagANIMATIONINFO

type tagARRAYDESC = TtagARRAYDESC

type tagAUDIODESCRIPTION = TtagAUDIODESCRIPTION

type tagAUXCAPS2A = TtagAUXCAPS2A

type tagAUXCAPS2W = TtagAUXCAPS2W

type tagAUXCAPSA = TtagAUXCAPSA

type tagAUXCAPSW = TtagAUXCAPSW

type tagAXESLISTA = TtagAXESLISTA

type tagAXESLISTW = TtagAXESLISTW

type tagAXISINFOA = TtagAXISINFOA

type tagAXISINFOW = TtagAXISINFOW

type tagBINDPTR = TtagBINDPTR

type tagBIND_OPTS = TtagBIND_OPTS

type tagBIND_OPTS2 = TtagBIND_OPTS2

type tagBIND_OPTS3 = TtagBIND_OPTS3

type tagBITMAP = TtagBITMAP

type tagBITMAPCOREHEADER = TtagBITMAPCOREHEADER

type tagBITMAPCOREINFO = TtagBITMAPCOREINFO

type tagBITMAPFILEHEADER = TtagBITMAPFILEHEADER

type tagBITMAPINFO = TtagBITMAPINFO

type tagBITMAPINFOHEADER = TtagBITMAPINFOHEADER

type tagBLOB = TtagBLOB

type tagBSTRBLOB = TtagBSTRBLOB

type tagBinaryParam = TtagBinaryParam

type tagCABOOL = TtagCABOOL

type tagCABSTR = TtagCABSTR

type tagCABSTRBLOB = TtagCABSTRBLOB

type tagCAC = TtagCAC

type tagCACLIPDATA = TtagCACLIPDATA

type tagCACLSID = TtagCACLSID

type tagCACY = TtagCACY

type tagCADATE = TtagCADATE

type tagCADBL = TtagCADBL

type tagCAFILETIME = TtagCAFILETIME

type tagCAFLT = TtagCAFLT

type tagCAH = TtagCAH

type tagCAI = TtagCAI

type tagCAL = TtagCAL

type tagCALPSTR = TtagCALPSTR

type tagCALPWSTR = TtagCALPWSTR

type tagCANDIDATEFORM = TtagCANDIDATEFORM

type tagCANDIDATELIST = TtagCANDIDATELIST

type tagCAPROPVARIANT = TtagCAPROPVARIANT

type tagCASCODE = TtagCASCODE

type tagCAUB = TtagCAUB

type tagCAUH = TtagCAUH

type tagCAUI = TtagCAUI

type tagCAUL = TtagCAUL

type tagCBTACTIVATESTRUCT = TtagCBTACTIVATESTRUCT

type tagCBT_CREATEWNDA = TtagCBT_CREATEWNDA

type tagCBT_CREATEWNDW = TtagCBT_CREATEWNDW

type tagCHANGEFILTERSTRUCT = TtagCHANGEFILTERSTRUCT

type tagCHARSETINFO = TtagCHARSETINFO

type tagCHOOSECOLORA = TtagCHOOSECOLORA

type tagCHOOSECOLORW = TtagCHOOSECOLORW

type tagCHOOSEFONTA = TtagCHOOSEFONTA

type tagCHOOSEFONTW = TtagCHOOSEFONTW

type tagCIEXYZ = TtagCIEXYZ

type tagCLEANLOCALSTORAGE = TtagCLEANLOCALSTORAGE

type tagCLIENTCREATESTRUCT = TtagCLIENTCREATESTRUCT

type tagCLIPDATA = TtagCLIPDATA

type tagCOLORADJUSTMENT = TtagCOLORADJUSTMENT

type tagCOLORCORRECTPALETTE = TtagCOLORCORRECTPALETTE

type tagCOLORMATCHTOTARGET = TtagCOLORMATCHTOTARGET

type tagCOMBOBOXINFO = TtagCOMBOBOXINFO

type tagCOMPAREITEMSTRUCT = TtagCOMPAREITEMSTRUCT

type tagCOMPOSITIONFORM = TtagCOMPOSITIONFORM

type tagCONVCONTEXT = TtagCONVCONTEXT

type tagCONVINFO = TtagCONVINFO

type tagCOPYDATASTRUCT = TtagCOPYDATASTRUCT

type tagCREATESTRUCTA = TtagCREATESTRUCTA

type tagCREATESTRUCTW = TtagCREATESTRUCTW

type tagCRGB = TtagCRGB

type tagCSPLATFORM = TtagCSPLATFORM

type tagCURSORINFO = TtagCURSORINFO

type tagCURSORSHAPE = TtagCURSORSHAPE

type tagCUSTDATA = TtagCUSTDATA

type tagCUSTDATAITEM = TtagCUSTDATAITEM

type tagCWPRETSTRUCT = TtagCWPRETSTRUCT

type tagCWPSTRUCT = TtagCWPSTRUCT

type tagCY = TtagCY

type tagDDEML_MSG_HOOK_DATA = TtagDDEML_MSG_HOOK_DATA

type tagDEBUGHOOKINFO = TtagDEBUGHOOKINFO

type tagDEC = TtagDEC

type tagDELETEITEMSTRUCT = TtagDELETEITEMSTRUCT

type tagDESIGNVECTOR = TtagDESIGNVECTOR

type tagDEVNAMES = TtagDEVNAMES

type tagDIBSECTION = TtagDIBSECTION

type tagDISPPARAMS = TtagDISPPARAMS

type tagDRAWITEMSTRUCT = TtagDRAWITEMSTRUCT

type tagDRAWTEXTPARAMS = TtagDRAWTEXTPARAMS

type tagDROPSTRUCT = TtagDROPSTRUCT

type tagDRVCONFIGINFO = TtagDRVCONFIGINFO

type tagDVTARGETDEVICE = TtagDVTARGETDEVICE

type tagELEMDESC = TtagELEMDESC

type tagEMR = TtagEMR

type tagEMRALPHABLEND = TtagEMRALPHABLEND

type tagEMRANGLEARC = TtagEMRANGLEARC

type tagEMRARC = TtagEMRARC

type tagEMRBITBLT = TtagEMRBITBLT

type tagEMRCREATEBRUSHINDIRECT = TtagEMRCREATEBRUSHINDIRECT

type tagEMRCREATECOLORSPACE = TtagEMRCREATECOLORSPACE

type tagEMRCREATECOLORSPACEW = TtagEMRCREATECOLORSPACEW

type tagEMRCREATEDIBPATTERNBRUSHPT = TtagEMRCREATEDIBPATTERNBRUSHPT

type tagEMRCREATEMONOBRUSH = TtagEMRCREATEMONOBRUSH

type tagEMRCREATEPALETTE = TtagEMRCREATEPALETTE

type tagEMRCREATEPEN = TtagEMRCREATEPEN

type tagEMRELLIPSE = TtagEMRELLIPSE

type tagEMREOF = TtagEMREOF

type tagEMREXCLUDECLIPRECT = TtagEMREXCLUDECLIPRECT

type tagEMREXTCREATEFONTINDIRECTW = TtagEMREXTCREATEFONTINDIRECTW

type tagEMREXTCREATEPEN = TtagEMREXTCREATEPEN

type tagEMREXTESCAPE = TtagEMREXTESCAPE

type tagEMREXTFLOODFILL = TtagEMREXTFLOODFILL

type tagEMREXTSELECTCLIPRGN = TtagEMREXTSELECTCLIPRGN

type tagEMREXTTEXTOUTA = TtagEMREXTTEXTOUTA

type tagEMRFILLPATH = TtagEMRFILLPATH

type tagEMRFILLRGN = TtagEMRFILLRGN

type tagEMRFORMAT = TtagEMRFORMAT

type tagEMRFRAMERGN = TtagEMRFRAMERGN

type tagEMRGDICOMMENT = TtagEMRGDICOMMENT

type tagEMRGLSBOUNDEDRECORD = TtagEMRGLSBOUNDEDRECORD

type tagEMRGLSRECORD = TtagEMRGLSRECORD

type tagEMRGRADIENTFILL = TtagEMRGRADIENTFILL

type tagEMRINVERTRGN = TtagEMRINVERTRGN

type tagEMRLINETO = TtagEMRLINETO

type tagEMRMASKBLT = TtagEMRMASKBLT

type tagEMRMODIFYWORLDTRANSFORM = TtagEMRMODIFYWORLDTRANSFORM

type tagEMRNAMEDESCAPE = TtagEMRNAMEDESCAPE

type tagEMROFFSETCLIPRGN = TtagEMROFFSETCLIPRGN

type tagEMRPIXELFORMAT = TtagEMRPIXELFORMAT

type tagEMRPLGBLT = TtagEMRPLGBLT

type tagEMRPOLYDRAW = TtagEMRPOLYDRAW

type tagEMRPOLYDRAW16 = TtagEMRPOLYDRAW16

type tagEMRPOLYLINE = TtagEMRPOLYLINE

type tagEMRPOLYLINE16 = TtagEMRPOLYLINE16

type tagEMRPOLYPOLYLINE = TtagEMRPOLYPOLYLINE

type tagEMRPOLYPOLYLINE16 = TtagEMRPOLYPOLYLINE16

type tagEMRPOLYTEXTOUTA = TtagEMRPOLYTEXTOUTA

type tagEMRRESIZEPALETTE = TtagEMRRESIZEPALETTE

type tagEMRRESTOREDC = TtagEMRRESTOREDC

type tagEMRROUNDRECT = TtagEMRROUNDRECT

type tagEMRSCALEVIEWPORTEXTEX = TtagEMRSCALEVIEWPORTEXTEX

type tagEMRSELECTCLIPPATH = TtagEMRSELECTCLIPPATH

type tagEMRSELECTOBJECT = TtagEMRSELECTOBJECT

type tagEMRSELECTPALETTE = TtagEMRSELECTPALETTE

type tagEMRSETARCDIRECTION = TtagEMRSETARCDIRECTION

type tagEMRSETCOLORADJUSTMENT = TtagEMRSETCOLORADJUSTMENT

type tagEMRSETCOLORSPACE = TtagEMRSETCOLORSPACE

type tagEMRSETDIBITSTODEVICE = TtagEMRSETDIBITSTODEVICE

type tagEMRSETICMPROFILE = TtagEMRSETICMPROFILE

type tagEMRSETMAPPERFLAGS = TtagEMRSETMAPPERFLAGS

type tagEMRSETMITERLIMIT = TtagEMRSETMITERLIMIT

type tagEMRSETPALETTEENTRIES = TtagEMRSETPALETTEENTRIES

type tagEMRSETPIXELV = TtagEMRSETPIXELV

type tagEMRSETTEXTCOLOR = TtagEMRSETTEXTCOLOR

type tagEMRSETVIEWPORTEXTEX = TtagEMRSETVIEWPORTEXTEX

type tagEMRSETVIEWPORTORGEX = TtagEMRSETVIEWPORTORGEX

type tagEMRSETWORLDTRANSFORM = TtagEMRSETWORLDTRANSFORM

type tagEMRSTRETCHBLT = TtagEMRSTRETCHBLT

type tagEMRSTRETCHDIBITS = TtagEMRSTRETCHDIBITS

type tagEMRTEXT = TtagEMRTEXT

type tagEMRTRANSPARENTBLT = TtagEMRTRANSPARENTBLT

type tagENHMETAHEADER = TtagENHMETAHEADER

type tagENHMETARECORD = TtagENHMETARECORD

type tagENUMLOGFONTA = TtagENUMLOGFONTA

type tagENUMLOGFONTEXA = TtagENUMLOGFONTEXA

type tagENUMLOGFONTEXDVA = TtagENUMLOGFONTEXDVA

type tagENUMLOGFONTEXDVW = TtagENUMLOGFONTEXDVW

type tagENUMLOGFONTEXW = TtagENUMLOGFONTEXW

type tagENUMLOGFONTW = TtagENUMLOGFONTW

type tagENUMTEXTMETRICA = TtagENUMTEXTMETRICA

type tagENUMTEXTMETRICW = TtagENUMTEXTMETRICW

type tagENUMUILANG = TtagENUMUILANG

type tagEVENTMSG = TtagEVENTMSG

type tagEXCEPINFO = TtagEXCEPINFO

type tagEXTLOGFONTA = TtagEXTLOGFONTA

type tagEXTLOGFONTW = TtagEXTLOGFONTW

type tagEXTLOGPEN = TtagEXTLOGPEN

type tagEXTLOGPEN32 = TtagEXTLOGPEN32

type tagFILTERKEYS = TtagFILTERKEYS

type tagFINDREPLACEA = TtagFINDREPLACEA

type tagFINDREPLACEW = TtagFINDREPLACEW

type tagFONTSIGNATURE = TtagFONTSIGNATURE

type tagFORMATETC = TtagFORMATETC

type tagFUNCDESC = TtagFUNCDESC

type tagGCP_RESULTSA = TtagGCP_RESULTSA

type tagGCP_RESULTSW = TtagGCP_RESULTSW

type tagGESTURECONFIG = TtagGESTURECONFIG

type tagGESTUREINFO = TtagGESTUREINFO

type tagGESTURENOTIFYSTRUCT = TtagGESTURENOTIFYSTRUCT

type tagGLYPHSET = TtagGLYPHSET

type tagGUITHREADINFO = TtagGUITHREADINFO

type tagHANDLETABLE = TtagHANDLETABLE

type tagHARDWAREHOOKSTRUCT = TtagHARDWAREHOOKSTRUCT

type tagHARDWAREINPUT = TtagHARDWAREINPUT

type tagHELPINFO = TtagHELPINFO

type tagHELPWININFOA = TtagHELPWININFOA

type tagHELPWININFOW = TtagHELPWININFOW

type tagHIGHCONTRASTA = TtagHIGHCONTRASTA

type tagHIGHCONTRASTW = TtagHIGHCONTRASTW

type tagHSZPAIR = TtagHSZPAIR

type tagHW_PROFILE_INFOA = TtagHW_PROFILE_INFOA

type tagHW_PROFILE_INFOW = TtagHW_PROFILE_INFOW

type tagICEXYZTRIPLE = TtagICEXYZTRIPLE

type tagICONMETRICSA = TtagICONMETRICSA

type tagICONMETRICSW = TtagICONMETRICSW

type tagIDLDESC = TtagIDLDESC

type tagIMECHARPOSITION = TtagIMECHARPOSITION

type tagIMEMENUITEMINFOA = TtagIMEMENUITEMINFOA

type tagIMEMENUITEMINFOW = TtagIMEMENUITEMINFOW

type tagINPUT = TtagINPUT

type tagINPUT_INJECTION_VALUE = TtagINPUT_INJECTION_VALUE

type tagINPUT_MESSAGE_SOURCE = TtagINPUT_MESSAGE_SOURCE

type tagINPUT_TRANSFORM = TtagINPUT_TRANSFORM

type tagINTERFACEDATA = TtagINTERFACEDATA

type tagINTERFACEINFO = TtagINTERFACEINFO

type tagI_RpcProxyCallbackInterface = TtagI_RpcProxyCallbackInterface

type tagJOYCAPS2A = TtagJOYCAPS2A

type tagJOYCAPS2W = TtagJOYCAPS2W

type tagJOYCAPSA = TtagJOYCAPSA

type tagJOYCAPSW = TtagJOYCAPSW

type tagKBDLLHOOKSTRUCT = TtagKBDLLHOOKSTRUCT

type tagKERNINGPAIR = TtagKERNINGPAIR

type tagKEYBDINPUT = TtagKEYBDINPUT

type tagLASTINPUTINFO = TtagLASTINPUTINFO

type tagLAYERPLANEDESCRIPTOR = TtagLAYERPLANEDESCRIPTOR

type tagLC_ID = TtagLC_ID

type tagLOCALESIGNATURE = TtagLOCALESIGNATURE

type tagLOGBRUSH = TtagLOGBRUSH

type tagLOGBRUSH32 = TtagLOGBRUSH32

type tagLOGCOLORSPACEA = TtagLOGCOLORSPACEA

type tagLOGCOLORSPACEW = TtagLOGCOLORSPACEW

type tagLOGFONTA = TtagLOGFONTA

type tagLOGFONTW = TtagLOGFONTW

type tagLOGPALETTE = TtagLOGPALETTE

type tagLOGPEN = TtagLOGPEN

type tagMCI_ANIM_OPEN_PARMSA = TtagMCI_ANIM_OPEN_PARMSA

type tagMCI_ANIM_OPEN_PARMSW = TtagMCI_ANIM_OPEN_PARMSW

type tagMCI_ANIM_PLAY_PARMS = TtagMCI_ANIM_PLAY_PARMS

type tagMCI_ANIM_RECT_PARMS = TtagMCI_ANIM_RECT_PARMS

type tagMCI_ANIM_STEP_PARMS = TtagMCI_ANIM_STEP_PARMS

type tagMCI_ANIM_UPDATE_PARMS = TtagMCI_ANIM_UPDATE_PARMS

type tagMCI_ANIM_WINDOW_PARMSA = TtagMCI_ANIM_WINDOW_PARMSA

type tagMCI_ANIM_WINDOW_PARMSW = TtagMCI_ANIM_WINDOW_PARMSW

type tagMCI_BREAK_PARMS = TtagMCI_BREAK_PARMS

type tagMCI_GENERIC_PARMS = TtagMCI_GENERIC_PARMS

type tagMCI_GETDEVCAPS_PARMS = TtagMCI_GETDEVCAPS_PARMS

type tagMCI_INFO_PARMSA = TtagMCI_INFO_PARMSA

type tagMCI_INFO_PARMSW = TtagMCI_INFO_PARMSW

type tagMCI_LOAD_PARMSA = TtagMCI_LOAD_PARMSA

type tagMCI_LOAD_PARMSW = TtagMCI_LOAD_PARMSW

type tagMCI_OPEN_PARMSA = TtagMCI_OPEN_PARMSA

type tagMCI_OPEN_PARMSW = TtagMCI_OPEN_PARMSW

type tagMCI_OVLY_LOAD_PARMSA = TtagMCI_OVLY_LOAD_PARMSA

type tagMCI_OVLY_LOAD_PARMSW = TtagMCI_OVLY_LOAD_PARMSW

type tagMCI_OVLY_OPEN_PARMSA = TtagMCI_OVLY_OPEN_PARMSA

type tagMCI_OVLY_OPEN_PARMSW = TtagMCI_OVLY_OPEN_PARMSW

type tagMCI_OVLY_RECT_PARMS = TtagMCI_OVLY_RECT_PARMS

type tagMCI_OVLY_SAVE_PARMSA = TtagMCI_OVLY_SAVE_PARMSA

type tagMCI_OVLY_SAVE_PARMSW = TtagMCI_OVLY_SAVE_PARMSW

type tagMCI_OVLY_WINDOW_PARMSA = TtagMCI_OVLY_WINDOW_PARMSA

type tagMCI_OVLY_WINDOW_PARMSW = TtagMCI_OVLY_WINDOW_PARMSW

type tagMCI_PLAY_PARMS = TtagMCI_PLAY_PARMS

type tagMCI_RECORD_PARMS = TtagMCI_RECORD_PARMS

type tagMCI_SAVE_PARMSA = TtagMCI_SAVE_PARMSA

type tagMCI_SAVE_PARMSW = TtagMCI_SAVE_PARMSW

type tagMCI_SEEK_PARMS = TtagMCI_SEEK_PARMS

type tagMCI_SEQ_SET_PARMS = TtagMCI_SEQ_SET_PARMS

type tagMCI_SET_PARMS = TtagMCI_SET_PARMS

type tagMCI_STATUS_PARMS = TtagMCI_STATUS_PARMS

type tagMCI_SYSINFO_PARMSA = TtagMCI_SYSINFO_PARMSA

type tagMCI_SYSINFO_PARMSW = TtagMCI_SYSINFO_PARMSW

type tagMCI_VD_ESCAPE_PARMSA = TtagMCI_VD_ESCAPE_PARMSA

type tagMCI_VD_ESCAPE_PARMSW = TtagMCI_VD_ESCAPE_PARMSW

type tagMCI_VD_PLAY_PARMS = TtagMCI_VD_PLAY_PARMS

type tagMCI_VD_STEP_PARMS = TtagMCI_VD_STEP_PARMS

type tagMCI_WAVE_DELETE_PARMS = TtagMCI_WAVE_DELETE_PARMS

type tagMCI_WAVE_OPEN_PARMSA = TtagMCI_WAVE_OPEN_PARMSA

type tagMCI_WAVE_OPEN_PARMSW = TtagMCI_WAVE_OPEN_PARMSW

type tagMCI_WAVE_SET_PARMS = TtagMCI_WAVE_SET_PARMS

type tagMDICREATESTRUCTA = TtagMDICREATESTRUCTA

type tagMDICREATESTRUCTW = TtagMDICREATESTRUCTW

type tagMDINEXTMENU = TtagMDINEXTMENU

type tagMEASUREITEMSTRUCT = TtagMEASUREITEMSTRUCT

type tagMENUBARINFO = TtagMENUBARINFO

type tagMENUGETOBJECTINFO = TtagMENUGETOBJECTINFO

type tagMENUINFO = TtagMENUINFO

type tagMENUITEMINFOA = TtagMENUITEMINFOA

type tagMENUITEMINFOW = TtagMENUITEMINFOW

type tagMETAFILEPICT = TtagMETAFILEPICT

type tagMETAHEADER = TtagMETAHEADER

type tagMETARECORD = TtagMETARECORD

type tagMETHODDATA = TtagMETHODDATA

type tagMIDIINCAPS2A = TtagMIDIINCAPS2A

type tagMIDIINCAPS2W = TtagMIDIINCAPS2W

type tagMIDIINCAPSA = TtagMIDIINCAPSA

type tagMIDIINCAPSW = TtagMIDIINCAPSW

type tagMIDIOUTCAPS2A = TtagMIDIOUTCAPS2A

type tagMIDIOUTCAPS2W = TtagMIDIOUTCAPS2W

type tagMIDIOUTCAPSA = TtagMIDIOUTCAPSA

type tagMIDIOUTCAPSW = TtagMIDIOUTCAPSW

type tagMINIMIZEDMETRICS = TtagMINIMIZEDMETRICS

type tagMINMAXINFO = TtagMINMAXINFO

type tagMIXERCAPS2A = TtagMIXERCAPS2A

type tagMIXERCAPS2W = TtagMIXERCAPS2W

type tagMIXERCAPSA = TtagMIXERCAPSA

type tagMIXERCAPSW = TtagMIXERCAPSW

type tagMIXERCONTROLA = TtagMIXERCONTROLA

type tagMIXERCONTROLDETAILS_LISTTEXTA = TtagMIXERCONTROLDETAILS_LISTTEXTA

type tagMIXERCONTROLDETAILS_LISTTEXTW = TtagMIXERCONTROLDETAILS_LISTTEXTW

type tagMIXERCONTROLW = TtagMIXERCONTROLW

type tagMIXERLINEA = TtagMIXERLINEA

type tagMIXERLINECONTROLSA = TtagMIXERLINECONTROLSA

type tagMIXERLINECONTROLSW = TtagMIXERLINECONTROLSW

type tagMIXERLINEW = TtagMIXERLINEW

type tagMONCBSTRUCT = TtagMONCBSTRUCT

type tagMONCONVSTRUCT = TtagMONCONVSTRUCT

type tagMONERRSTRUCT = TtagMONERRSTRUCT

type tagMONHSZSTRUCTA = TtagMONHSZSTRUCTA

type tagMONHSZSTRUCTW = TtagMONHSZSTRUCTW

type tagMONITORINFO = TtagMONITORINFO

type tagMONITORINFOEXA = TtagMONITORINFOEXA

type tagMONITORINFOEXW = TtagMONITORINFOEXW

type tagMONLINKSTRUCT = TtagMONLINKSTRUCT

type tagMONMSGSTRUCT = TtagMONMSGSTRUCT

type tagMOUSEHOOKSTRUCT = TtagMOUSEHOOKSTRUCT

type tagMOUSEHOOKSTRUCTEX = TtagMOUSEHOOKSTRUCTEX

type tagMOUSEINPUT = TtagMOUSEINPUT

type tagMOUSEKEYS = TtagMOUSEKEYS

type tagMOUSEMOVEPOINT = TtagMOUSEMOVEPOINT

type tagMSG = TtagMSG

type tagMSGBOXPARAMSA = TtagMSGBOXPARAMSA

type tagMSGBOXPARAMSW = TtagMSGBOXPARAMSW

type tagMSLLHOOKSTRUCT = TtagMSLLHOOKSTRUCT

type tagMULTIKEYHELPA = TtagMULTIKEYHELPA

type tagMULTIKEYHELPW = TtagMULTIKEYHELPW

type tagMULTI_QI = TtagMULTI_QI

type tagNCCALCSIZE_PARAMS = TtagNCCALCSIZE_PARAMS

type tagNC_ADDRESS = TtagNC_ADDRESS

type tagNEWTEXTMETRICA = TtagNEWTEXTMETRICA

type tagNEWTEXTMETRICEXA = TtagNEWTEXTMETRICEXA

type tagNEWTEXTMETRICEXW = TtagNEWTEXTMETRICEXW

type tagNEWTEXTMETRICW = TtagNEWTEXTMETRICW

type tagNMHDR = TtagNMHDR

type tagNONCLIENTMETRICSA = TtagNONCLIENTMETRICSA

type tagNONCLIENTMETRICSW = TtagNONCLIENTMETRICSW

type tagOBJECTDESCRIPTOR = TtagOBJECTDESCRIPTOR

type tagOFNA = TtagOFNA

type tagOFNW = TtagOFNW

type tagOFN_NT4A = TtagOFN_NT4A

type tagOFN_NT4W = TtagOFN_NT4W

type tagOIFI = TtagOIFI

type tagOLEVERB = TtagOLEVERB

type tagOleMenuGroupWidths = TtagOleMenuGroupWidths

type tagPAINTSTRUCT = TtagPAINTSTRUCT

type tagPALETTEENTRY = TtagPALETTEENTRY

type tagPANOSE = TtagPANOSE

type tagPARAMDATA = TtagPARAMDATA

type tagPARAMDESC = TtagPARAMDESC

type tagPARAMDESCEX = TtagPARAMDESCEX

type tagPDA = TtagPDA

type tagPDEXA = TtagPDEXA

type tagPDEXW = TtagPDEXW

type tagPDW = TtagPDW

type tagPELARRAY = TtagPELARRAY

type tagPIXELFORMATDESCRIPTOR = TtagPIXELFORMATDESCRIPTOR

type tagPOINT = TtagPOINT

type tagPOINTER_DEVICE_CURSOR_INFO = TtagPOINTER_DEVICE_CURSOR_INFO

type tagPOINTER_DEVICE_INFO = TtagPOINTER_DEVICE_INFO

type tagPOINTER_DEVICE_PROPERTY = TtagPOINTER_DEVICE_PROPERTY

type tagPOINTER_INFO = TtagPOINTER_INFO

type tagPOINTER_PEN_INFO = TtagPOINTER_PEN_INFO

type tagPOINTER_TOUCH_INFO = TtagPOINTER_TOUCH_INFO

type tagPOINTER_TYPE_INFO = TtagPOINTER_TYPE_INFO

type tagPOINTFX = TtagPOINTFX

type tagPOINTS = TtagPOINTS

type tagPOLYTEXTA = TtagPOLYTEXTA

type tagPOLYTEXTW = TtagPOLYTEXTW

type tagPRINTPAGERANGE = TtagPRINTPAGERANGE

type tagPROPSPEC = TtagPROPSPEC

type tagPROPVARIANT = TtagPROPVARIANT

type tagPSDA = TtagPSDA

type tagPSDW = TtagPSDW

type tagQUERYCONTEXT = TtagQUERYCONTEXT

type tagRAWHID = TtagRAWHID

type tagRAWINPUT = TtagRAWINPUT

type tagRAWINPUTDEVICE = TtagRAWINPUTDEVICE

type tagRAWINPUTDEVICELIST = TtagRAWINPUTDEVICELIST

type tagRAWINPUTHEADER = TtagRAWINPUTHEADER

type tagRAWKEYBOARD = TtagRAWKEYBOARD

type tagRAWMOUSE = TtagRAWMOUSE

type tagRECONVERTSTRING = TtagRECONVERTSTRING

type tagRECT = TtagRECT

type tagREGISTERWORDA = TtagREGISTERWORDA

type tagREGISTERWORDW = TtagREGISTERWORDW

type tagRGBQUAD = TtagRGBQUAD

type tagRGBTRIPLE = TtagRGBTRIPLE

type tagRID_DEVICE_INFO = TtagRID_DEVICE_INFO

type tagRID_DEVICE_INFO_HID = TtagRID_DEVICE_INFO_HID

type tagRID_DEVICE_INFO_KEYBOARD = TtagRID_DEVICE_INFO_KEYBOARD

type tagRID_DEVICE_INFO_MOUSE = TtagRID_DEVICE_INFO_MOUSE

type tagRPCOLEMESSAGE = TtagRPCOLEMESSAGE

type tagRPC_CALL_ATTRIBUTES_V1_A = TtagRPC_CALL_ATTRIBUTES_V1_A

type tagRPC_CALL_ATTRIBUTES_V1_W = TtagRPC_CALL_ATTRIBUTES_V1_W

type tagRPC_CALL_ATTRIBUTES_V2A = TtagRPC_CALL_ATTRIBUTES_V2A

type tagRPC_CALL_ATTRIBUTES_V2W = TtagRPC_CALL_ATTRIBUTES_V2W

type tagRPC_CALL_LOCAL_ADDRESS_V1_A = TtagRPC_CALL_LOCAL_ADDRESS_V1_A

type tagRPC_CALL_LOCAL_ADDRESS_V1_W = TtagRPC_CALL_LOCAL_ADDRESS_V1_W

type tagRPC_EE_INFO_PARAM = TtagRPC_EE_INFO_PARAM

type tagRPC_ERROR_ENUM_HANDLE = TtagRPC_ERROR_ENUM_HANDLE

type tagRPC_EXTENDED_ERROR_INFO = TtagRPC_EXTENDED_ERROR_INFO

type tagRemBRUSH = TtagRemBRUSH

type tagRemFORMATETC = TtagRemFORMATETC

type tagRemHBITMAP = TtagRemHBITMAP

type tagRemHENHMETAFILE = TtagRemHENHMETAFILE

type tagRemHGLOBAL = TtagRemHGLOBAL

type tagRemHMETAFILEPICT = TtagRemHMETAFILEPICT

type tagRemHPALETTE = TtagRemHPALETTE

type tagRemSNB = TtagRemSNB

type tagRemSTGMEDIUM = TtagRemSTGMEDIUM

type tagSAFEARRAY = TtagSAFEARRAY

type tagSAFEARRAYBOUND = TtagSAFEARRAYBOUND

type tagSCROLLBARINFO = TtagSCROLLBARINFO

type tagSCROLLINFO = TtagSCROLLINFO

type tagSERIALIZEDPROPERTYVALUE = TtagSERIALIZEDPROPERTYVALUE

type tagSERIALKEYSA = TtagSERIALKEYSA

type tagSERIALKEYSW = TtagSERIALKEYSW

type tagSIZE = TtagSIZE

type tagSOLE_AUTHENTICATION_INFO = TtagSOLE_AUTHENTICATION_INFO

type tagSOLE_AUTHENTICATION_LIST = TtagSOLE_AUTHENTICATION_LIST

type tagSOLE_AUTHENTICATION_SERVICE = TtagSOLE_AUTHENTICATION_SERVICE

type tagSOUNDSENTRYA = TtagSOUNDSENTRYA

type tagSOUNDSENTRYW = TtagSOUNDSENTRYW

type tagSTATDATA = TtagSTATDATA

type tagSTATPROPSETSTG = TtagSTATPROPSETSTG

type tagSTATPROPSTG = TtagSTATPROPSTG

type tagSTATSTG = TtagSTATSTG

type tagSTGMEDIUM = TtagSTGMEDIUM

type tagSTGOPTIONS = TtagSTGOPTIONS

type tagSTICKYKEYS = TtagSTICKYKEYS

type tagSTYLEBUFA = TtagSTYLEBUFA

type tagSTYLEBUFW = TtagSTYLEBUFW

type tagSTYLESTRUCT = TtagSTYLESTRUCT

type tagServerInformation = TtagServerInformation

type tagStorageLayout = TtagStorageLayout

type tagTEXTMETRICA = TtagTEXTMETRICA

type tagTEXTMETRICW = TtagTEXTMETRICW

type tagTITLEBARINFO = TtagTITLEBARINFO

type tagTITLEBARINFOEX = TtagTITLEBARINFOEX

type tagTLIBATTR = TtagTLIBATTR

type tagTOGGLEKEYS = TtagTOGGLEKEYS

type tagTOUCHINPUT = TtagTOUCHINPUT

type tagTOUCH_HIT_TESTING_INPUT = TtagTOUCH_HIT_TESTING_INPUT

type tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = TtagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION

type tagTPMPARAMS = TtagTPMPARAMS

type tagTRACKMOUSEEVENT = TtagTRACKMOUSEEVENT

type tagTTPOLYCURVE = TtagTTPOLYCURVE

type tagTTPOLYGONHEADER = TtagTTPOLYGONHEADER

type tagTYPEATTR = TtagTYPEATTR

type tagTYPEDESC = TtagTYPEDESC

type tagTouchPredictionParameters = TtagTouchPredictionParameters

type tagUPDATELAYEREDWINDOWINFO = TtagUPDATELAYEREDWINDOWINFO

type tagUSAGE_PROPERTIES = TtagUSAGE_PROPERTIES

type tagUSEROBJECTFLAGS = TtagUSEROBJECTFLAGS

type tagVARDESC = TtagVARDESC

type tagVARIANT = TtagVARIANT

type tagVS_FIXEDFILEINFO = TtagVS_FIXEDFILEINFO

type tagVersionedStream = TtagVersionedStream

type tagWAVEINCAPS2A = TtagWAVEINCAPS2A

type tagWAVEINCAPS2W = TtagWAVEINCAPS2W

type tagWAVEINCAPSA = TtagWAVEINCAPSA

type tagWAVEINCAPSW = TtagWAVEINCAPSW

type tagWAVEOUTCAPS2A = TtagWAVEOUTCAPS2A

type tagWAVEOUTCAPS2W = TtagWAVEOUTCAPS2W

type tagWAVEOUTCAPSA = TtagWAVEOUTCAPSA

type tagWAVEOUTCAPSW = TtagWAVEOUTCAPSW

type tagWCRANGE = TtagWCRANGE

type tagWINDOWINFO = TtagWINDOWINFO

type tagWINDOWPLACEMENT = TtagWINDOWPLACEMENT

type tagWINDOWPOS = TtagWINDOWPOS

type tagWNDCLASSA = TtagWNDCLASSA

type tagWNDCLASSEXA = TtagWNDCLASSEXA

type tagWNDCLASSEXW = TtagWNDCLASSEXW

type tagWNDCLASSW = TtagWNDCLASSW

type tagWTSSESSION_NOTIFICATION = TtagWTSSESSION_NOTIFICATION

type tagXFORM = TtagXFORM

type threadlocaleinfostruct = Tthreadlocaleinfostruct

type threadlocinfo = Tthreadlocinfo

type timeb = Ttimeb

type timecaps_tag = Ttimecaps_tag

const toascii = 0

type uCLSSPEC = TuCLSSPEC

type uSTGMEDIUM = TuSTGMEDIUM

type u_int64 = Tu_int64

const ua_CharUpper = 0

const ua_lstrcmp = 0

const ua_lstrcmpi = 0

const ua_lstrlen = 0

const ua_tcscpy = 0

type uintmax_t = Tuintmax_t

/* 7.18.2  Limits of specified-width integer types */

/* 7.18.2.1  Limits of exact-width integer types */

/* 7.18.2.2  Limits of minimum-width integer types */

/* 7.18.2.3  Limits of fastest minimum-width integer types */

/* 7.18.2.4  Limits of integer types capable of holding
   object pointers */

/* 7.18.2.5  Limits of greatest-width integer types */

/* 7.18.3  Limits of other integer types */

/*
 * wint_t is unsigned short for compatibility with MS runtime
 */

/* 7.18.4  Macros for integer constants */

/* 7.18.4.1  Macros for minimum-width integer constants

    Accoding to Douglas Gwyn <gwyn@arl.mil>:
	"This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
	9899:1999 as initially published, the expansion was required
	to be an integer constant of precisely matching type, which
	is impossible to accomplish for the shorter types on most
	platforms, because C99 provides no standard way to designate
	an integer constant with width less than that of type int.
	TC1 changed this to require just an integer constant
	*expression* with *promoted* type."

	The trick used here is from Clive D W Feather.
*/

/*  The 'trick' doesn't work in C89 for long long because, without
    suffix, (val) will be evaluated as int, not intmax_t */

/* 7.18.4.2  Macros for greatest-width integer constants */

/*
** The following macros are used to cast pointers to integers and
** integers to pointers.  The way you do this varies from one compiler
** to the next, so we have developed the following set of #if statements
** to generate appropriate macros for a wide range of compilers.
**
** The correct "ANSI" way to do this is to use the intptr_t type.
** Unfortunately, that typedef is not available on all compilers, or
** if it is available, it requires an #include of specific headers
** that vary from one machine to the next.
**
** Ticket #3860:  The llvm-gcc-4.2 compiler from Apple chokes on
** the ((void*)&((char*)0)[X]) construct.  But MSVC chokes on ((void*)(X)).
** So we have to define the macros in different ways depending on the
** compiler.
 */

/*
** Macros to hint to the compiler that a function should or should not be
** inlined.
 */

/*
** Make sure that the compiler intrinsics we desire are enabled when
** compiling with an appropriate version of MSVC unless prevented by
** the SQLITE_DISABLE_INTRINSIC define.
 */

/*
** Enable SQLITE_USE_SEH by default on MSVC builds.  Only omit
** SEH support if the -DSQLITE_OMIT_SEH option is given.
 */

/*
** Enable SQLITE_DIRECT_OVERFLOW_READ, unless the build explicitly
** disables it using -DSQLITE_DIRECT_OVERFLOW_READ=0
 */
/* In all other cases, enable */

/*
** The SQLITE_THREADSAFE macro must be defined as 0, 1, or 2.
** 0 means mutexes are permanently disable and the library is never
** threadsafe.  1 means the library is serialized which is the highest
** level of threadsafety.  2 means the library is multithreaded - multiple
** threads can use SQLite as long as no two threads try to use the same
** database connection at the same time.
**
** Older versions of SQLite used an optional THREADSAFE macro.
** We support that for legacy.
**
** To ensure that the correct value of "THREADSAFE" is reported when querying
** for compile-time options at runtime (e.g. "PRAGMA compile_options"), this
** logic is partially replicated in ctime.c. If it is updated here, it should
** also be updated there.
 */

/*
** Powersafe overwrite is on by default.  But can be turned off using
** the -DSQLITE_POWERSAFE_OVERWRITE=0 command-line option.
 */

/*
** EVIDENCE-OF: R-25715-37072 Memory allocation statistics are enabled by
** default unless SQLite is compiled with SQLITE_DEFAULT_MEMSTATUS=0 in
** which case memory allocation statistics are disabled by default.
 */

/*
** Exactly one of the following macros must be defined in order to
** specify which memory allocation subsystem to use.
**
**     SQLITE_SYSTEM_MALLOC          // Use normal system malloc()
**     SQLITE_WIN32_MALLOC           // Use Win32 native heap API
**     SQLITE_ZERO_MALLOC            // Use a stub allocator that always fails
**     SQLITE_MEMDEBUG               // Debugging version of system malloc()
**
** On Windows, if the SQLITE_WIN32_MALLOC_VALIDATE macro is defined and the
** assert() macro is enabled, each call into the Win32 native heap subsystem
** will cause HeapValidate to be called.  If heap validation should fail, an
** assertion will be triggered.
**
** If none of the above are defined, then set SQLITE_SYSTEM_MALLOC as
** the default.
 */

/*
** If SQLITE_MALLOC_SOFT_LIMIT is not zero, then try to keep the
** sizes of memory allocations below this value where possible.
 */

/*
** We need to define _XOPEN_SOURCE as follows in order to enable
** recursive mutexes on most Unix systems and fchmod() on OpenBSD.
** But _XOPEN_SOURCE define causes problems for Mac OS X, so omit
** it.
 */

/*
** NDEBUG and SQLITE_DEBUG are opposites.  It should always be true that
** defined(NDEBUG)==!defined(SQLITE_DEBUG).  If this is not currently true,
** make it true by defining or undefining NDEBUG.
**
** Setting NDEBUG makes the code smaller and faster by disabling the
** assert() statements in the code.  So we want the default action
** to be for NDEBUG to be set and NDEBUG to be undefined only if SQLITE_DEBUG
** is set.  Thus NDEBUG becomes an opt-in rather than an opt-out
** feature.
 */

/*
** Enable SQLITE_ENABLE_EXPLAIN_COMMENTS if SQLITE_DEBUG is turned on.
 */

/*
** The testcase() macro is used to aid in coverage testing.  When
** doing coverage testing, the condition inside the argument to
** testcase() must be evaluated both true and false in order to
** get full branch coverage.  The testcase() macro is inserted
** to help ensure adequate test coverage in places where simple
** condition/decision coverage is inadequate.  For example, testcase()
** can be used to make sure boundary values are tested.  For
** bitmask tests, testcase() can be used to make sure each bit
** is significant and used at least once.  On switch statements
** where multiple cases go to the same block of code, testcase()
** can insure that all cases are evaluated.
 */

/*
** The TESTONLY macro is used to enclose variable declarations or
** other bits of code that are needed to support the arguments
** within testcase() and assert() macros.
 */

/*
** Sometimes we need a small amount of code such as a variable initialization
** to setup for a later assert() statement.  We do not want this code to
** appear when assert() is disabled.  The following macro is therefore
** used to contain that setup code.  The "VVA" acronym stands for
** "Verification, Validation, and Accreditation".  In other words, the
** code within VVA_ONLY() will only run during verification processes.
 */

/*
** Disable ALWAYS() and NEVER() (make them pass-throughs) for coverage
** and mutation testing
 */

/*
** The ALWAYS and NEVER macros surround boolean expressions which
** are intended to always be true or false, respectively.  Such
** expressions could be omitted from the code completely.  But they
** are included in a few cases in order to enhance the resilience
** of SQLite to unexpected behavior - to make the code "self-healing"
** or "ductile" rather than being "brittle" and crashing at the first
** hint of unplanned behavior.
**
** In other words, ALWAYS and NEVER are added for defensive code.
**
** When doing coverage testing ALWAYS and NEVER are hard-coded to
** be true and false so that the unreachable code they specify will
** not be counted as untested code.
 */

/*
** Some conditionals are optimizations only.  In other words, if the
** conditionals are replaced with a constant 1 (true) or 0 (false) then
** the correct answer is still obtained, though perhaps not as quickly.
**
** The following macros mark these optimizations conditionals.
 */

/*
** Some malloc failures are only possible if SQLITE_TEST_REALLOC_STRESS is
** defined.  We need to defend against those failures when testing with
** SQLITE_TEST_REALLOC_STRESS, but we don't want the unreachable branches
** during a normal build.  The following macro can be used to disable tests
** that are always false except when SQLITE_TEST_REALLOC_STRESS is set.
 */

/*
** Declarations used for tracing the operating system interfaces.
 */

/*
** Is the sqlite3ErrName() function needed in the build?  Currently,
** it is needed by "mutex_w32.c" (when debugging), "os_win.c" (when
** OSTRACE is enabled), and by several "test*.c" files (which are
** compiled using SQLITE_TEST).
 */

/*
** SQLITE_ENABLE_EXPLAIN_COMMENTS is incompatible with SQLITE_OMIT_EXPLAIN
 */

/*
** SQLITE_OMIT_VIRTUALTABLE implies SQLITE_OMIT_ALTERTABLE
 */

/*
** Return true (non-zero) if the input is an integer that is too large
** to fit in 32-bits.  This macro is used inside of various testcase()
** macros to verify that we have tested SQLite for large-file support.
 */

/*
** The macro unlikely() is a hint that surrounds a boolean
** expression that is usually false.  Macro likely() surrounds
** a boolean expression that is usually true.  These hints could,
** in theory, be used by the compiler to generate better code, but
** currently they are just comments for human readers.
 */

/************** Include hash.h in the middle of sqliteInt.h ******************/
/************** Begin file hash.h ********************************************/
/*
** 2001 September 22
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** This is the header file for the generic hash-table implementation
** used in SQLite.
 */

type userBITMAP = TuserBITMAP

type userCLIPFORMAT = TuserCLIPFORMAT

type userFLAG_STGMEDIUM = TuserFLAG_STGMEDIUM

type userHBITMAP = TuserHBITMAP

type userHENHMETAFILE = TuserHENHMETAFILE

type userHGLOBAL = TuserHGLOBAL

type userHMETAFILE = TuserHMETAFILE

type userHMETAFILEPICT = TuserHMETAFILEPICT

type userHPALETTE = TuserHPALETTE

type userSTGMEDIUM = TuserSTGMEDIUM

const uuid_t = 0

const uuid_vector_t = 0

type val_context = Tval_context

type value_entA = Tvalue_entA

type value_entW = Tvalue_entW

const waveInGetDevCaps = 0

const waveInGetErrorText = 0

const waveOutGetDevCaps = 0

const waveOutGetErrorText = 0

type waveformat_tag = Twaveformat_tag

type wavehdr_tag = Twavehdr_tag

const wcswcs = 0

type wctype_t = Twctype_t

const wglUseFontBitmaps = 0

const wglUseFontOutlines = 0

type winFile = TwinFile

type winShm = TwinShm

type winShmNode = TwinShmNode

/* A region of shared-memory */

/*
** WinCE lacks native support for file locking so we have to fake it
** with some code of our own.
 */

type winVfsAppData = TwinVfsAppData

/*
** Allowed values for winFile.ctrlFlags
 */

/*
 * The size of the buffer used by sqlite3_win32_write_debug().
 */

/*
 * If compiled with SQLITE_WIN32_MALLOC on Windows, we will use the
 * various Win32 API heap functions instead of our own.
 */

type win_syscall = Twin_syscall

/*
** This function is not available on Windows CE or WinRT.
 */

type wireASYNC_STGMEDIUM = TwireASYNC_STGMEDIUM

type wireBRECORD = TwireBRECORD

type wireBSTR = TwireBSTR

type wireCLIPFORMAT = TwireCLIPFORMAT

type wireFLAG_STGMEDIUM = TwireFLAG_STGMEDIUM

type wireHACCEL = TwireHACCEL

type wireHBITMAP = TwireHBITMAP

type wireHBRUSH = TwireHBRUSH

type wireHDC = TwireHDC

type wireHENHMETAFILE = TwireHENHMETAFILE

type wireHFONT = TwireHFONT

type wireHGLOBAL = TwireHGLOBAL

type wireHICON = TwireHICON

type wireHMENU = TwireHMENU

type wireHMETAFILE = TwireHMETAFILE

type wireHMETAFILEPICT = TwireHMETAFILEPICT

type wireHMONITOR = TwireHMONITOR

type wireHPALETTE = TwireHPALETTE

type wireHRGN = TwireHRGN

type wireHWND = TwireHWND

type wirePSAFEARRAY = TwirePSAFEARRAY

type wireSAFEARRAY = TwireSAFEARRAY

type wireSNB = TwireSNB

type wireSTGMEDIUM = TwireSTGMEDIUM

type wireVARIANT = TwireVARIANT

const wpopen = 0

const wsprintf = 0

const wvsprintf = 0
