' ------------------------------------------------------------------------ ' ' WIN32API.TXT -- Declaraciones de la API Win32 para Visual Basic ' ' Copyright (C) 1994-98 Microsoft Corporation ' ' Este archivo es necesario para la aplicación Visor API de la versión 6.0 de ' Visual Basic. Las versiones anteriores de este archivo podrían no trabajar ' correctamente con la versión 6.0 del Visor API. Este archivo es compatible ' hacia atrás con versiones anteriores del Visor API, con la excepción de que ' las constantes no están como Global o Public en este archivo. ' ' Este archivo contiene sólo las instrucciones Const, Type ' y Declare para las API de Win32. ' ' Tiene derecho exento de patente para usar, modificar, reproducir y distribuir ' este archivo (o cualquier versión modificada) en la forma que desee, ' a condición de que acepte que Microsoft no ofrece garantías, obligaciones ' ni responsabilidad por su contenido. Para obtener más información, consulte ' la Referencia del programador de Microsoft Windows. ' ' ------------------------------------------------------------------------ ' Definiciones de tipos para los tipos básicos de Windows. Const ANYSIZE_ARRAY = 1 Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Type RECTL Left As Long Top As Long Right As Long Bottom As Long End Type Type POINTAPI x As Long y As Long End Type Type POINTL x As Long y As Long End Type Type Size cx As Long cy As Long End Type Type POINTS x As Integer y As Integer End Type Type MSG hwnd As Long message As Long wParam As Long lParam As Long time As Long pt As POINTAPI End Type Const DELETE = &H10000 Const READ_CONTROL = &H20000 Const WRITE_DAC = &H40000 Const WRITE_OWNER = &H80000 Const SYNCHRONIZE = &H100000 Const STANDARD_RIGHTS_READ = (READ_CONTROL) Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL) Const STANDARD_RIGHTS_REQUIRED = &HF0000 Const STANDARD_RIGHTS_ALL = &H1F0000 Const SPECIFIC_RIGHTS_ALL = &HFFFF Type SID_IDENTIFIER_AUTHORITY Value(6) As Byte End Type Const SID_REVISION = (1) ' Nivel de revisión actual Const SID_MAX_SUB_AUTHORITIES = (15) Const SID_RECOMMENDED_SUB_AUTHORITIES = (1) ' Cambiará a alrededor de 6 en una próxima versión. Const SidTypeUser = 1 Const SidTypeGroup = 2 Const SidTypeDomain = 3 Const SidTypeAlias = 4 Const SidTypeWellKnownGroup = 5 Const SidTypeDeletedAccount = 6 Const SidTypeInvalid = 7 Const SidTypeUnknown = 8 Type SID_AND_ATTRIBUTES Sid As Long Attributes As Long End Type ' /////////////////////////////////////////////////////////////////////////// ' // ' SID conocidos universales // ' // ' SID nulo S-1-0-0 // ' Mundial S-1-1-0 // ' Local S-1-2-0 // ' Id. del propietario creador S-1-3-0 // ' Id. del grupo creador S-1-3-1 // ' // ' (Id. no exclusivos) S-1-4 // ' // ' /////////////////////////////////////////////////////////////////////////// Const SECURITY_NULL_RID = &H0 Const SECURITY_WORLD_RID = &H0 Const SECURITY_LOCAL_RID = &H0 Const SECURITY_CREATOR_OWNER_RID = &H0 Const SECURITY_CREATOR_GROUP_RID = &H1 ' /////////////////////////////////////////////////////////////////////////// ' // ' SID conocidos en NT // ' // ' Autoridad NT S-1-5 // ' Marcar S-1-5-1 // ' // ' Red S-1-5-2 // ' Procesamiento por lotes S-1-5-3 // ' Interactivo S-1-5-4 // ' Servicio S-1-5-6 // ' Conexión anónima S-1-5-7 (sesión de conexión aka null) // ' // ' (Id. de conexiones) S-1-5-5-X-Y // ' // ' (Id. no exclusivos de NT) S-1-5-0x15-... // ' // ' (Dominio integrado) S-1-5-0x20 // ' // ' /////////////////////////////////////////////////////////////////////////// Const SECURITY_DIALUP_RID = &H1 Const SECURITY_NETWORK_RID = &H2 Const SECURITY_BATCH_RID = &H3 Const SECURITY_INTERACTIVE_RID = &H4 Const SECURITY_SERVICE_RID = &H6 Const SECURITY_ANONYMOUS_LOGON_RID = &H7 Const SECURITY_LOGON_IDS_RID = &H5 Const SECURITY_LOCAL_SYSTEM_RID = &H12 Const SECURITY_NT_NON_UNIQUE = &H15 Const SECURITY_BUILTIN_DOMAIN_RID = &H20 ' /////////////////////////////////////////////////////////////////////////// ' // ' valores de subautoridad relativa (RID) de dominio conocido... // ' // ' /////////////////////////////////////////////////////////////////////////// Const DOMAIN_USER_RID_ADMIN = &H1F4 Const DOMAIN_USER_RID_GUEST = &H1F5 Const DOMAIN_GROUP_RID_ADMINS = &H200 Const DOMAIN_GROUP_RID_USERS = &H201 Const DOMAIN_GROUP_RID_GUESTS = &H202 Const DOMAIN_ALIAS_RID_ADMINS = &H220 Const DOMAIN_ALIAS_RID_USERS = &H221 Const DOMAIN_ALIAS_RID_GUESTS = &H222 Const DOMAIN_ALIAS_RID_POWER_USERS = &H223 Const DOMAIN_ALIAS_RID_ACCOUNT_OPS = &H224 Const DOMAIN_ALIAS_RID_SYSTEM_OPS = &H225 Const DOMAIN_ALIAS_RID_PRINT_OPS = &H226 Const DOMAIN_ALIAS_RID_BACKUP_OPS = &H227 Const DOMAIN_ALIAS_RID_REPLICATOR = &H228 ' Asignan Luid del sistema. Los 1000 primeros LUID están reservados. ' Use #999 aquí0x3E7 = 999) ' end_ntifs ' ////////////////////////////////////////////////////////////////////// ' // ' Atributos SID relacionados con user y grupo // ' // ' ////////////////////////////////////////////////////////////////////// ' Atributos de grupo Const SE_GROUP_MANDATORY = &H1 Const SE_GROUP_ENABLED_BY_DEFAULT = &H2 Const SE_GROUP_ENABLED = &H4 Const SE_GROUP_OWNER = &H8 Const SE_GROUP_LOGON_ID = &HC0000000 ' Atributos de user ' (Sin definir aún.) ' ------------------ ' Sección de kernel ' ------------------ Const FILE_BEGIN = 0 Const FILE_CURRENT = 1 Const FILE_END = 2 Const FILE_FLAG_WRITE_THROUGH = &H80000000 Const FILE_FLAG_OVERLAPPED = &H40000000 Const FILE_FLAG_NO_BUFFERING = &H20000000 Const FILE_FLAG_RANDOM_ACCESS = &H10000000 Const FILE_FLAG_SEQUENTIAL_SCAN = &H8000000 Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000 Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 Const FILE_FLAG_POSIX_SEMANTICS = &H1000000 Const CREATE_NEW = 1 Const CREATE_ALWAYS = 2 Const OPEN_EXISTING = 3 Const OPEN_ALWAYS = 4 Const TRUNCATE_EXISTING = 5 ' Definen los valores dwOpenMode para CreateNamedPipe Const PIPE_ACCESS_INBOUND = &H1 Const PIPE_ACCESS_OUTBOUND = &H2 Const PIPE_ACCESS_DUPLEX = &H3 ' Definen los indicadores de fin de canalizaciones con nombre para GetNamedPipeInfo Const PIPE_CLIENT_END = &H0 Const PIPE_SERVER_END = &H1 ' Definen los valores de dwPipeMode para CreateNamedPipe Const PIPE_WAIT = &H0 Const PIPE_NOWAIT = &H1 Const PIPE_READMODE_BYTE = &H0 Const PIPE_READMODE_MESSAGE = &H2 Const PIPE_TYPE_BYTE = &H0 Const PIPE_TYPE_MESSAGE = &H4 ' Definen los valores conocidos para CreateNamedPipe nMaxInstances Const PIPE_UNLIMITED_INSTANCES = 255 ' Definen los bits de calidad de seguridad de servicio que se transfieren ' a CreateFile Const SECURITY_CONTEXT_TRACKING = &H40000 Const SECURITY_EFFECTIVE_ONLY = &H80000 Const SECURITY_SQOS_PRESENT = &H100000 Const SECURITY_VALID_SQOS_FLAGS = &H1F0000 Type OVERLAPPED Internal As Long InternalHigh As Long offset As Long OffsetHigh As Long hEvent As Long End Type Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Long End Type Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessId As Long dwThreadId As Long End Type Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type ' Tipo de proveedor del puerto serie. Const SP_SERIALCOMM = &H1& ' Subtipos de proveedor. Const PST_UNSPECIFIED = &H0& Const PST_RS232 = &H1& Const PST_PARALLELPORT = &H2& Const PST_RS422 = &H3& Const PST_RS423 = &H4& Const PST_RS449 = &H5& Const PST_FAX = &H21& Const PST_SCANNER = &H22& Const PST_NETWORK_BRIDGE = &H100& Const PST_LAT = &H101& Const PST_TCPIP_TELNET = &H102& Const PST_X25 = &H103& ' Indicadores de capacidades del proveedor. Const PCF_DTRDSR = &H1& Const PCF_RTSCTS = &H2& Const PCF_RLSD = &H4& Const PCF_PARITY_CHECK = &H8& Const PCF_XONXOFF = &H10& Const PCF_SETXCHAR = &H20& Const PCF_TOTALTIMEOUTS = &H40& Const PCF_INTTIMEOUTS = &H80& Const PCF_SPECIALCHARS = &H100& Const PCF_16BITMODE = &H200& ' Parámetros configurables del proveedor de comunicaciones. Const SP_PARITY = &H1& Const SP_BAUD = &H2& Const SP_DATABITS = &H4& Const SP_STOPBITS = &H8& Const SP_HANDSHAKING = &H10& Const SP_PARITY_CHECK = &H20& Const SP_RLSD = &H40& ' Velocidades en baudios configurables en el proveedor. Const BAUD_075 = &H1& Const BAUD_110 = &H2& Const BAUD_134_5 = &H4& Const BAUD_150 = &H8& Const BAUD_300 = &H10& Const BAUD_600 = &H20& Const BAUD_1200 = &H40& Const BAUD_1800 = &H80& Const BAUD_2400 = &H100& Const BAUD_4800 = &H200& Const BAUD_7200 = &H400& Const BAUD_9600 = &H800& Const BAUD_14400 = &H1000& Const BAUD_19200 = &H2000& Const BAUD_38400 = &H4000& Const BAUD_56K = &H8000& Const BAUD_128K = &H10000 Const BAUD_115200 = &H20000 Const BAUD_57600 = &H40000 Const BAUD_USER = &H10000000 ' Bits de datos configurables. Const DATABITS_5 = &H1& Const DATABITS_6 = &H2& Const DATABITS_7 = &H4& Const DATABITS_8 = &H8& Const DATABITS_16 = &H10& Const DATABITS_16X = &H20& ' Bits configurables de paro y de paridad. Const STOPBITS_10 = &H1& Const STOPBITS_15 = &H2& Const STOPBITS_20 = &H4& Const PARITY_NONE = &H100& Const PARITY_ODD = &H200& Const PARITY_EVEN = &H400& Const PARITY_MARK = &H800& Const PARITY_SPACE = &H1000& Type COMMPROP wPacketLength As Integer wPacketVersion As Integer dwServiceMask As Long dwReserved1 As Long dwMaxTxQueue As Long dwMaxRxQueue As Long dwMaxBaud As Long dwProvSubType As Long dwProvCapabilities As Long dwSettableParams As Long dwSettableBaud As Long wSettableData As Integer wSettableStopParity As Integer dwCurrentTxQueue As Long dwCurrentRxQueue As Long dwProvSpec1 As Long dwProvSpec2 As Long wcProvChar(1) As Integer End Type 'Type COMSTAT ' fCtsHold As Long ' fDsrHold As Long ' fRlsdHold As Long ' fXoffHold As Long ' fXoffSent As Long ' fEof As Long ' fTxim As Long ' fReserved As Long ' cbInQue As Long ' cbOutQue As Long 'End Type Type COMSTAT fBitFields As Long 'Vea el comentario en Win32API.Txt cbInQue As Long cbOutQue As Long End Type ' Los ocho campos de datos reales con tamaño de bit COMSTAT dentro de los cuatro bytes de ' fBitFields pueden manipularse mediante operaciones lógicas de bits And/Or. ' Campo Bit nº Descripción ' --------- ----- --------------------------- ' fCtsHold 1 Tx en espera de señal CTS ' fDsrHold 2 Tx en espera de señal DSR ' fRlsdHold 3 Tx en espera de señal RLSD ' fXoffHold 4 Tx en espera, carácter XOFF recibido ' fXoffSent 5 Tx en espera, carácter XOFF enviado ' fEof 6 Carácter EOF enviado ' fTxim 7 Carácter en espera de Tx ' fReserved 8 Reservado (25 bits) ' Valores de flujo del control DTR. Const DTR_CONTROL_DISABLE = &H0 Const DTR_CONTROL_ENABLE = &H1 Const DTR_CONTROL_HANDSHAKE = &H2 ' Valores de flujo del control RTS. Const RTS_CONTROL_DISABLE = &H0 Const RTS_CONTROL_ENABLE = &H1 Const RTS_CONTROL_HANDSHAKE = &H2 Const RTS_CONTROL_TOGGLE = &H3 'Type DCB ' DCBlength As Long ' BaudRate As Long ' fBinary As Long ' fParity As Long ' fOutxCtsFlow As Long ' fOutxDsrFlow As Long ' fDtrControl As Long ' fDsrSensitivity As Long ' fTXContinueOnXoff As Long ' fOutX As Long ' fInX As Long ' fErrorChar As Long ' fNull As Long ' fRtsControl As Long ' fAbortOnError As Long ' fDummy2 As Long ' wReserved As Integer ' XonLim As Integer ' XoffLim As Integer ' ByteSize As Byte ' Parity As Byte ' StopBits As Byte ' XonChar As Byte ' XoffChar As Byte ' ErrorChar As Byte ' EofChar As Byte ' EvtChar As Byte 'End Type Type DCB DCBlength As Long BaudRate As Long fBitFields As Long ' Vea los comentarios en Win32API.Txt wReserved As Integer XonLim As Integer XoffLim As Integer ByteSize As Byte Parity As Byte StopBits As Byte XonChar As Byte XoffChar As Byte ErrorChar As Byte EofChar As Byte EvtChar As Byte wReserved1 As Integer ' Reservado; no utilizar End Type ' Los catorce campos de datos reales con tamaño de bit DCB dentro de los cuatro bytes de ' fBitFields pueden manipularse mediante operaciones lógicas de bits And/Or. ' Campo Bit nº Descripción ' ----------------- ----- ------------------------------ ' fBinary 1 Modo binario, sin comprobación de EOF ' fParity 2 Activar comprobación de paridad ' fOutxCtsFlow 3 Control de flujo de salida de CTS ' fOutxDsrFlow 4 Control de flujo de salida de DSR ' fDtrControl 5 Tipo de control de flujo de DTR (2 bits) ' fDsrSensitivity 7 Sensibilidad DSR ' fTXContinueOnXoff 8 XOFF continúa Tx ' fOutX 9 Control de flujo de salida de XON/XOFF ' fInX 10 Control de flujo de entrada de XON/XOFF ' fErrorChar 11 Activar reemplazo de errores ' fNull 12 Activar eliminación de valores null ' fRtsControl 13 Control de flujo de RTS (2 bits) ' fAbortOnError 15 Anular lecturas y escrituras con error ' fDummy2 16 Reservado Type COMMTIMEOUTS ReadIntervalTimeout As Long ReadTotalTimeoutMultiplier As Long ReadTotalTimeoutConstant As Long WriteTotalTimeoutMultiplier As Long WriteTotalTimeoutConstant As Long End Type Type SYSTEM_INFO dwOemID As Long dwPageSize As Long lpMinimumApplicationAddress As Long lpMaximumApplicationAddress As Long dwActiveProcessorMask As Long dwNumberOrfProcessors As Long dwProcessorType As Long dwAllocationGranularity As Long dwReserved As Long End Type ' Indicadores globales de memoria Const GMEM_FIXED = &H0 Const GMEM_MOVEABLE = &H2 Const GMEM_NOCOMPACT = &H10 Const GMEM_NODISCARD = &H20 Const GMEM_ZEROINIT = &H40 Const GMEM_MODIFY = &H80 Const GMEM_DISCARDABLE = &H100 Const GMEM_NOT_BANKED = &H1000 Const GMEM_SHARE = &H2000 Const GMEM_DDESHARE = &H2000 Const GMEM_NOTIFY = &H4000 Const GMEM_LOWER = GMEM_NOT_BANKED Const GMEM_VALID_FLAGS = &H7F72 Const GMEM_INVALID_HANDLE = &H8000 Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT) Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT) ' Indicadores devueltos por GlobalFlags (además de GMEM_DISCARDABLE) Const GMEM_DISCARDED = &H4000 Const GMEM_LOCKCOUNT = &HFF Type MEMORYSTATUS dwLength As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwTotalPageFile As Long dwAvailPageFile As Long dwTotalVirtual As Long dwAvailVirtual As Long End Type ' Indicadores de memoria local Const LMEM_FIXED = &H0 Const LMEM_MOVEABLE = &H2 Const LMEM_NOCOMPACT = &H10 Const LMEM_NODISCARD = &H20 Const LMEM_ZEROINIT = &H40 Const LMEM_MODIFY = &H80 Const LMEM_DISCARDABLE = &HF00 Const LMEM_VALID_FLAGS = &HF72 Const LMEM_INVALID_HANDLE = &H8000 Const LHND = (LMEM_MOVEABLE + LMEM_ZEROINIT) Const LPTR = (LMEM_FIXED + LMEM_ZEROINIT) Const NONZEROLHND = (LMEM_MOVEABLE) Const NONZEROLPTR = (LMEM_FIXED) ' Indicadores devueltos por LocalFlags (además de LMEM_DISCARDABLE) Const LMEM_DISCARDED = &H4000 Const LMEM_LOCKCOUNT = &HFF ' Valores de dwCreationFlag Const DEBUG_PROCESS = &H1 Const DEBUG_ONLY_THIS_PROCESS = &H2 Const CREATE_SUSPENDED = &H4 Const DETACHED_PROCESS = &H8 Const CREATE_NEW_CONSOLE = &H10 Const NORMAL_PRIORITY_CLASS = &H20 Const IDLE_PRIORITY_CLASS = &H40 Const HIGH_PRIORITY_CLASS = &H80 Const REALTIME_PRIORITY_CLASS = &H100 Const CREATE_NEW_PROCESS_GROUP = &H200 Const CREATE_NO_WINDOW = &H8000000 Const PROFILE_USER = &H10000000 Const PROFILE_KERNEL = &H20000000 Const PROFILE_SERVER = &H40000000 Const MAXLONG = &H7FFFFFFF Const THREAD_BASE_PRIORITY_MIN = -2 Const THREAD_BASE_PRIORITY_MAX = 2 Const THREAD_BASE_PRIORITY_LOWRT = 15 Const THREAD_BASE_PRIORITY_IDLE = -15 Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN Const THREAD_PRIORITY_BELOW_NORMAL = (THREAD_PRIORITY_LOWEST + 1) Const THREAD_PRIORITY_NORMAL = 0 Const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX Const THREAD_PRIORITY_ABOVE_NORMAL = (THREAD_PRIORITY_HIGHEST - 1) Const THREAD_PRIORITY_ERROR_RETURN = (MAXLONG) Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT Const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE ' ++ BUILD Versión: 0093 Incremente este valor cuando un cambio tenga efectos globales ' Copyright (c) 1990-1995 Microsoft Corporation ' Nombre del módulo: ' winnt.h ' Resumen: ' Este módulo define los tipos y constantes de Windows de 32 bits ' definidos por NT, pero ofrecidos por medio de la API de Win32. ' Historial de revisiones: Const APPLICATION_ERROR_MASK = &H20000000 Const ERROR_SEVERITY_SUCCESS = &H0 Const ERROR_SEVERITY_INFORMATIONAL = &H40000000 Const ERROR_SEVERITY_WARNING = &H80000000 Const ERROR_SEVERITY_ERROR = &HC0000000 Const MINCHAR = &H80 Const MAXCHAR = &H7F Const MINSHORT = &H8000 Const MAXSHORT = &H7FFF Const MINLONG = &H80000000 Const MAXByte = &HFF Const MAXWORD = &HFFFF Const MAXDWORD = &HFFFF ' ' Calcula el desplazamiento de bytes de un campo en una estructura de tipo. ' * Id. de idiomas. ' * ' * Las dos combinaciones siguientes de Id. de idioma primario e Id. de ' * subidioma tienen una semántica especial: ' * ' * Id. idioma primario Id. subidioma Resultado ' * ------------------- --------------- ------------------------ ' * LANG_NEUTRAL SUBLANG_NEUTRAL Idioma neutro ' * LANG_NEUTRAL SUBLANG_DEFAULT Idioma predeterminado del usuario ' * LANG_NEUTRAL SUBLANG_SYS_DEFAULT Idioma predeterminado del sistema ' */ ' ' * Id. de los idiomas primarios. ' */ Const LANG_NEUTRAL = &H0 Const LANG_BULGARIAN = &H2 Const LANG_CHINESE = &H4 Const LANG_CROATIAN = &H1A Const LANG_CZECH = &H5 Const LANG_DANISH = &H6 Const LANG_DUTCH = &H13 Const LANG_ENGLISH = &H9 Const LANG_FINNISH = &HB Const LANG_FRENCH = &HC Const LANG_GERMAN = &H7 Const LANG_GREEK = &H8 Const LANG_HUNGARIAN = &HE Const LANG_ICELANDIC = &HF Const LANG_ITALIAN = &H10 Const LANG_JAPANESE = &H11 Const LANG_KOREAN = &H12 Const LANG_NORWEGIAN = &H14 Const LANG_POLISH = &H15 Const LANG_PORTUGUESE = &H16 Const LANG_ROMANIAN = &H18 Const LANG_RUSSIAN = &H19 Const LANG_SLOVAK = &H1B Const LANG_SLOVENIAN = &H24 Const LANG_SPANISH = &HA Const LANG_SWEDISH = &H1D Const LANG_TURKISH = &H1F ' ' * Id. de los subidiomas. ' * ' * El nombre que aparece inmediatamente a continuación de SUBLANG_ ' * indica el Id. del idioma primario con el que se puede combinar el Id. ' * de ese subidioma para formar un Id. de idioma válido. ' */ Const SUBLANG_NEUTRAL = &H0 ' idioma neutro Const SUBLANG_DEFAULT = &H1 ' predeterminado del usuario Const SUBLANG_SYS_DEFAULT = &H2 ' predeterminado del sistema Const SUBLANG_CHINESE_TRADITIONAL = &H1 ' Chino (Taiwan) Const SUBLANG_CHINESE_SIMPLIFIED = &H2 ' Chino (RP China) Const SUBLANG_CHINESE_HONGKONG = &H3 ' Chino (Hong Kong) Const SUBLANG_CHINESE_SINGAPORE = &H4 ' Chino (Singapur) Const SUBLANG_DUTCH = &H1 ' Holandés Const SUBLANG_DUTCH_BELGIAN = &H2 ' Holandés (Belga) Const SUBLANG_ENGLISH_US = &H1 ' Inglés (EE.UU.) Const SUBLANG_ENGLISH_UK = &H2 ' Inglés (Reino Unido) Const SUBLANG_ENGLISH_AUS = &H3 ' Inglés (Australiano) Const SUBLANG_ENGLISH_CAN = &H4 ' Inglés (Canadiense) Const SUBLANG_ENGLISH_NZ = &H5 ' Inglés (Nueva Zelanda) Const SUBLANG_ENGLISH_EIRE = &H6 ' Inglés (Irlanda) Const SUBLANG_FRENCH = &H1 ' Francés Const SUBLANG_FRENCH_BELGIAN = &H2 ' Francés (Belga) Const SUBLANG_FRENCH_CANADIAN = &H3 ' Francés (Canadiense) Const SUBLANG_FRENCH_SWISS = &H4 ' Francés (Suiza) Const SUBLANG_GERMAN = &H1 ' Alemán Const SUBLANG_GERMAN_SWISS = &H2 ' Alemán (Suiza) Const SUBLANG_GERMAN_AUSTRIAN = &H3 ' Alemán (Austria) Const SUBLANG_ITALIAN = &H1 ' Italiano Const SUBLANG_ITALIAN_SWISS = &H2 ' Italiano (Suiza) Const SUBLANG_NORWEGIAN_BOKMAL = &H1 ' Noruego (Bokma) Const SUBLANG_NORWEGIAN_NYNORSK = &H2 ' Noruego (Nynorsk) Const SUBLANG_PORTUGUESE = &H2 ' Portugués Const SUBLANG_PORTUGUESE_BRAZILIAN = &H1 ' Portugués (Brasil) Const SUBLANG_SPANISH = &H1 ' Español (Castellano) Const SUBLANG_SPANISH_MEXICAN = &H2 ' Español (México) Const SUBLANG_SPANISH_MODERN = &H3 ' Español (Moderno) ' ' * Id. de orden. ' * ' */ Const SORT_DEFAULT = &H0 ' Orden predeterminado Const SORT_JAPANESE_XJIS = &H0 ' Orden Japonés0xJIS Const SORT_JAPANESE_UNICODE = &H1 ' Orden Unicode japonés Const SORT_CHINESE_BIG5 = &H0 ' Orden chino BIG5 Const SORT_CHINESE_UNICODE = &H1 ' Orden Unicode chino Const SORT_KOREAN_KSC = &H0 ' Orden coreano KSC Const SORT_KOREAN_UNICODE = &H1 ' Orden Unicode coreano ' Las constantes FILE_READ_DATA y FILE_WRITE_DATA también están definidas en ' devioctl.h como FILE_READ_ACCESS y FILE_WRITE_ACCESS. Los valores para estas ' constantes siempre *TIENEN* que estar sincronizados. ' Los valores se han vuelto a definir en devioctl.h porque tienen que estar disponibles ' para DOS y NT. ' Const FILE_READ_DATA = (&H1) ' canalización de archivo Const FILE_LIST_DIRECTORY = (&H1) ' directorio Const FILE_WRITE_DATA = (&H2) ' canalización de archivo Const FILE_ADD_FILE = (&H2) ' directorio Const FILE_APPEND_DATA = (&H4) ' archivo Const FILE_ADD_SUBDIRECTORY = (&H4) ' directorio Const FILE_CREATE_PIPE_INSTANCE = (&H4) ' canalización con nombre Const FILE_READ_EA = (&H8) ' directorio de archivo Const FILE_READ_PROPERTIES = FILE_READ_EA Const FILE_WRITE_EA = (&H10) ' directorio de archivo Const FILE_WRITE_PROPERTIES = FILE_WRITE_EA Const FILE_EXECUTE = (&H20) ' archivo Const FILE_TRAVERSE = (&H20) ' directorio Const FILE_DELETE_CHILD = (&H40) ' directorio Const FILE_READ_ATTRIBUTES = (&H80) ' todos Const FILE_WRITE_ATTRIBUTES = (&H100) ' todos Const FILE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H1FF) Const FILE_GENERIC_READ = (STANDARD_RIGHTS_READ Or FILE_READ_DATA Or FILE_READ_ATTRIBUTES Or FILE_READ_EA Or SYNCHRONIZE) Const FILE_GENERIC_WRITE = (STANDARD_RIGHTS_WRITE Or FILE_WRITE_DATA Or FILE_WRITE_ATTRIBUTES Or FILE_WRITE_EA Or FILE_APPEND_DATA Or SYNCHRONIZE) Const FILE_GENERIC_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or FILE_READ_ATTRIBUTES Or FILE_EXECUTE Or SYNCHRONIZE) Const FILE_SHARE_READ = &H1 Const FILE_SHARE_WRITE = &H2 Const FILE_ATTRIBUTE_READONLY = &H1 Const FILE_ATTRIBUTE_HIDDEN = &H2 Const FILE_ATTRIBUTE_SYSTEM = &H4 Const FILE_ATTRIBUTE_DIRECTORY = &H10 Const FILE_ATTRIBUTE_ARCHIVE = &H20 Const FILE_ATTRIBUTE_NORMAL = &H80 Const FILE_ATTRIBUTE_TEMPORARY = &H100 Const FILE_ATTRIBUTE_COMPRESSED = &H800 Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Const FILE_NOTIFY_CHANGE_SIZE = &H8 Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 Const FILE_NOTIFY_CHANGE_SECURITY = &H100 Const MAILSLOT_NO_MESSAGE = (-1) Const MAILSLOT_WAIT_FOREVER = (-1) Const FILE_CASE_SENSITIVE_SEARCH = &H1 Const FILE_CASE_PRESERVED_NAMES = &H2 Const FILE_UNICODE_ON_DISK = &H4 Const FILE_PERSISTENT_ACLS = &H8 Const FILE_FILE_COMPRESSION = &H10 Const FILE_VOLUME_IS_COMPRESSED = &H8000 Const IO_COMPLETION_MODIFY_STATE = &H2 Const IO_COMPLETION_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H3) Const DUPLICATE_CLOSE_SOURCE = &H1 Const DUPLICATE_SAME_ACCESS = &H2 ' ////////////////////////////////////////////////////////////////////// ' // ' MÁSCARA DE ACCESO // ' // ' ////////////////////////////////////////////////////////////////////// ' ' Defina la máscara de acceso como una estructura de palabra larga dividida ' de la manera siguiente: ' typedef struct _ACCESS_MASK { ' WORD SpecificRights; ' Byte StandardRights; ' Byte AccessSystemAcl : 1; ' Byte Reserved : 3; ' Byte GenericAll : 1; ' Byte GenericExecute : 1; ' Byte GenericWrite : 1; ' Byte GenericRead : 1; ' } ACCESS_MASK; ' typedef ACCESS_MASK *PACCESS_MASK; ' ' pero para facilitar su trabajo, los programadores pueden especificar ' la máscara de acceso que deseen con sólo agregar mediante OR ' varios derechos sencillos y tratar la máscara como DWORD. Por ejemplo: ' ' DesiredAccess = DELETE Or READ_CONTROL ' ' De esta forma se declara ACCESS_MASK como DWORD ' ' begin_ntddk begin_nthal begin_ntifs ' ////////////////////////////////////////////////////////////////////// ' // ' TIPOS DE ACCESO // ' // ' ////////////////////////////////////////////////////////////////////// ' begin_ntddk begin_nthal begin_ntifs ' ' Las máscaras siguientes son para los tipos de acceso estándar predefinidos ' Tipo de acceso AccessSystemAcl type Const ACCESS_SYSTEM_SECURITY = &H1000000 ' Tipo de acceso MaximumAllowed Const MAXIMUM_ALLOWED = &H2000000 ' Estos son los derechos genéricos. Const GENERIC_READ = &H80000000 Const GENERIC_WRITE = &H40000000 Const GENERIC_EXECUTE = &H20000000 Const GENERIC_ALL = &H10000000 ' Defina la matriz de asignación genérica. Se usa para indicar la asignación ' de cada derecho de acceso genérico a una máscara de acceso específica. Type GENERIC_MAPPING GenericRead As Long GenericWrite As Long GenericExecute As Long GenericAll As Long End Type ' ////////////////////////////////////////////////////////////////////// ' // ' LUID_AND_ATTRIBUTES // ' // ' ////////////////////////////////////////////////////////////////////// ' Type LUID LowPart As Long HighPart As Long End Type Type LUID_AND_ATTRIBUTES pLuid As LUID Attributes As Long End Type ' ////////////////////////////////////////////////////////////////////// ' // ' ACL y ACE // ' // ' ////////////////////////////////////////////////////////////////////// ' ' Defina una ACL y el formato ACE. La estructura de un encabezado ACL ' seguida por una o más ACE. La descripción de la estructura de un ' encabezado ACL sería la siguiente: ' ' La AclRevision actual está definida como ACL_REVISION. ' ' AclSize es el tamaño, en bytes, asignado a la ACL. Esto incluye el ' encabezado de ACL, ACE y el espacio que queda libre en el búfer. ' ' AceCount es el número de ACE que contiene la ACL. ' ' begin_ntddk begin_ntifs ' Esta es la revisión de ACL *actual* Const ACL_REVISION = (2) ' Este es el historial de las revisiones de ACL. Agregue una nueva siempre ' que se actualice ACL_REVISION Const ACL_REVISION1 = (1) Const ACL_REVISION2 = (2) Type ACL AclRevision As Byte Sbz1 As Byte AclSize As Integer AceCount As Integer Sbz2 As Integer End Type ' typedef ACL *PACL; ' end_ntddk ' La estructura de un ACE es un encabezado ACE común seguido de los ' datos específicos del tipo de ACE. La descripción de la estructura del ' encabezado ACE normal sería la siguiente: ' AceType denota el tipo de ACE; hay algunos tipos ACE predefinidos ' ' AceSize es el tamaño, en bytes, del ACE. ' ' AceFlags son indicadores de ACE para auditoría y herencia. Se definen con enteros. Type ACE_HEADER AceType As Byte AceFlags As Byte AceSize As Long End Type ' ' Los siguientes tipos son los predefinidos de ACE que van en el campo ' AceType del encabezado ACE. Const ACCESS_ALLOWED_ACE_TYPE = &H0 Const ACCESS_DENIED_ACE_TYPE = &H1 Const SYSTEM_AUDIT_ACE_TYPE = &H2 Const SYSTEM_ALARM_ACE_TYPE = &H3 ' Los siguientes indicadores son los heredados que van en el campo ' AceFlags del encabezado ACE. Const OBJECT_INHERIT_ACE = &H1 Const CONTAINER_INHERIT_ACE = &H2 Const NO_PROPAGATE_INHERIT_ACE = &H4 Const INHERIT_ONLY_ACE = &H8 Const VALID_INHERIT_FLAGS = &HF ' Los siguientes son los indicadores ACE definidos actualmente, que van en el ' campo AceFlags del encabezado ACE. Cada tipo de ACE tiene su propio ' conjunto de AceFlags. ' ' SUCCESSFUL_ACCESS_ACE_FLAG - se usa sólo con tipos de ACE de auditoría ' del sistema y de alarma para indicar que se ha generado un mensaje para ' accesos satisfactorios. ' ' FAILED_ACCESS_ACE_FLAG - se usa sólo con tipos de ACE de auditoría y ' alarma para indicar que se ha generado un mensaje para accesos fallidos. ' Indicadores AceFlags SYSTEM_AUDIT y SYSTEM_ALARM ' ' Controlan la señalización de auditoría y alarmas para accesos correctos o fallidos. Const SUCCESSFUL_ACCESS_ACE_FLAG = &H40 Const FAILED_ACCESS_ACE_FLAG = &H80 ' ' A continuación definiremos la estructura de los tipos de ACE predefinidos. ' La descripción de la estructura de los ACE predefinidos es la siguiente: ' Mask es la máscara de acceso asociada al ACE. Puede ser la ' máscara de acceso permitido, acceso denegado, auditoría o alarma. ' ' Sid es el SID asociado al ACE. ' ' Los siguientes son los cuatro tipos de ACE predefinidos. ' Examine el campo AceType del Header para determinar ' qué estructura es la apropiada para cálculos. Type ACCESS_ALLOWED_ACE Header As ACE_HEADER Mask As Long SidStart As Long End Type Type ACCESS_DENIED_ACE Header As ACE_HEADER Mask As Long SidStart As Long End Type Type SYSTEM_AUDIT_ACE Header As ACE_HEADER Mask As Long SidStart As Long End Type Type SYSTEM_ALARM_ACE Header As ACE_HEADER Mask As Long SidStart As Long End Type ' Las siguientes declaraciones se usan para configurar y consultar información ' sobre una ACL. Primero están las diversas clases de información disponibles ' para el usuario. ' Const AclRevisionInformation = 1 Const AclSizeInformation = 2 ' ' Este registro se devuelve o envía si el usuario está pidiendo o configurando ' AclRevisionInformation ' Type ACL_REVISION_INFORMATION AclRevision As Long End Type ' ' Se devuelve este registro cuando el usuario pide AclSizeInformation ' Type ACL_SIZE_INFORMATION AceCount As Long AclBytesInUse As Long AclBytesFree As Long End Type ' ////////////////////////////////////////////////////////////////////// ' // ' SECURITY_DESCRIPTOR // ' // ' ////////////////////////////////////////////////////////////////////// ' ' Defina el Descriptor de seguridad y los tipos de datos ' relacionados. Es una estructura de datos opaca. ' ' begin_ntddk begin_ntifs ' ' Valor de la revisión actual del descriptor de seguridad ' Const SECURITY_DESCRIPTOR_REVISION = (1) Const SECURITY_DESCRIPTOR_REVISION1 = (1) ' end_ntddk ' ' Longitud mínima, en bytes, necesaria para generar un descriptor de seguridad. ' (NOTA: Tiene que conservar manualmente la coherencia con el) ' (tamaño de (SECURITY_DESCRIPTOR) ) ' Const SECURITY_DESCRIPTOR_MIN_LENGTH = (20) Const SE_OWNER_DEFAULTED = &H1 Const SE_GROUP_DEFAULTED = &H2 Const SE_DACL_PRESENT = &H4 Const SE_DACL_DEFAULTED = &H8 Const SE_SACL_PRESENT = &H10 Const SE_SACL_DEFAULTED = &H20 Const SE_SELF_RELATIVE = &H8000 ' ' Donde: ' ' SE_OWNER_DEFAULTED: indicador booleano que, cuando está ' activado, indica que el SID al que señala el campo Owner ' lo ha proporcionado un mecanismo predeterminado y no ' el que proporciona explícitamente el proveedor ' original del descriptor de seguridad. Puede afectar al ' tratamiento del SID respecto a las revisiones posteriores ' de un propietario. ' ' SE_GROUP_DEFAULTED: indicador booleano que, cuando está ' activado, indica que el SID contenido en el campo Group ' lo ha proporcionado un mecanismo predeterminado y no ' el que proporciona explícitamente el proveedor ' original del descriptor de seguridad. Puede afectar al ' tratamiento del SID respecto a las revisiones posteriores ' de un grupo primario. ' ' SE_DACL_PRESENT: indicador booleano que, cuando está ' activado, indica que el descriptor de seguridad contiene ' una ACL discrecional. Si este indicador está establecido y el ' campo Dacl de SECURITY_DESCRIPTOR es ' null, se está especificando explícitamente una ACL null. ' ' SE_DACL_DEFAULTED: indicador booleano que, cuando está ' activado, indica que la ACL a la que señala el campo Dacl ' la ha proporcionado un mecanismo predeterminado y no ' el que proporciona explícitamente el proveedor ' original del descriptor de seguridad. Puede afectar al ' tratamiento de la ACL respecto a las revisiones posteriores de ' una ACL. Este indicador se pasa por alto si el indicador DaclPresent ' no está establecido. ' ' SE_SACL_PRESENT: indicador booleano que, cuando está ' activado, indica que el descriptor de seguridad contiene ' una ACL de sistema a la que señala el campo Sacl. Si está ' establecido este indicador y el campo Sacl de ' SECURITY_DESCRIPTOR es null, se está especificando ' una ACL vacía (pero presente. ' ' SE_SACL_DEFAULTED: indicador booleano que, cuando está ' activado, indica que la ACL a la que señala el campo Sacl ' lo ha proporcionado un mecanismo predeterminado y no ' el que proporciona explícitamente el proveedor ' original del descriptor de seguridad. Puede afectar al ' tratamiento de la ACL respecto a las revisiones posteriores de ' una ACL. Este indicador se pasa por alto si el indicador SaclPresent ' no está establecido. ' ' SE_SELF_RELATIVE: indicador booleano que, cuando está ' activado, indica que el descriptor de seguridad está en un ' formulario relativo a sí mismo. En este formulario, todos los campos ' del descriptor de seguridad son contiguos en la memoria ' y todos los campos de indicadores se expresan como desplazamientos ' desde el principio del descriptor de seguridad. Este formulario es útil ' para el tratamiento de los descriptores de seguridad como estructuras de ' datos opacas para la transmisión en protocolos de comunicaciones ' o para su almacenamiento en medios secundarios. ' ' ' ' En general, esta estructura de datos se debe tratar como una estructura ' opaca para garantizar su compatibilidad en el futuro. ' ' Type SECURITY_DESCRIPTOR Revision As Byte Sbz1 As Byte Control As Long Owner As Long Group As Long Sacl As ACL Dacl As ACL End Type ' Donde: ' ' Revision: contiene el nivel de revisión del descriptor de ' seguridad. Permite transferir esta estructura entre dos ' sistemas o guardarla en disco aunque se espere que cambie ' en el futuro. ' ' Control: conjunto de indicadores que califican el significado ' del descriptor de seguridad o de campos individuales del ' descriptor de seguridad. ' ' Owner: es un puntero a un SID que representa el ' propietario de un objeto. Si este campo tiene el valor null, ' no hay ningún SID propietario presente en el descriptor ' de seguridad. Si el descriptor de seguridad está en un ' formulario relativo a sí mismo, este campo contiene un ' desplazamiento para el SID, y no un puntero. ' ' Group: es un puntero a un SID que representa el grupo ' primario de un objeto. Si este campo tiene el valor null, no hay ' ningún SID de grupo primario presente en el descriptor ' de seguridad. Si el descriptor de seguridad está en un ' formulario relativo a sí mismo, este campo contiene un ' desplazamiento para el SID, y no un puntero. ' ' Sacl: es un puntero que indica una ACL de sistema. El valor de ' este campo sólo es válido si está activado el indicador del ' control DaclPresent. Si está establecido el indicador de ' SaclPresent y el valor de este campo es null, se especifica ' una ACL nula. Si el descriptor de seguridad está en un formulario ' relativo a sí mismo, este campo contiene un desplazamiento para ' la ACL, y no un puntero. ' ' Dacl: es un puntero que indica una ACL discrecional. El valor de ' este campo sólo es válido si está activado el indicador del ' control DaclPresent. Si está establecido el indicador de ' DaclPresent y el valor de este campo es null, se especifica ' una ACL nula (permite acceso incondicional). Si el descriptor de ' seguridad está en un formulario relativo a sí mismo, este ' campo contiene un desplazamiento de la ACL, y no un puntero. ' ' ////////////////////////////////////////////////////////////////////// ' // ' Estructuras de datos relacionadas con Privilege // ' // ' ////////////////////////////////////////////////////////////////////// ' Atributos de Privilege ' Const SE_PRIVILEGE_ENABLED_BY_DEFAULT = &H1 Const SE_PRIVILEGE_ENABLED = &H2 Const SE_PRIVILEGE_USED_FOR_ACCESS = &H80000000 ' ' Indicadores de control de Privilege Set ' Const PRIVILEGE_SET_ALL_NECESSARY = (1) ' ' Privilege Set - Está definido para un conjunto de privilegios de uno. ' Si se necesitan dos o más privilegios, habrá que asignar ' más espacio a esta estructura. ' ' Nota: no cambie esta estructura sin fijar la estructura INITIAL_PRIVILEGE_SET ' (definida en se.h) ' Type PRIVILEGE_SET PrivilegeCount As Long Control As Long Privilege(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES End Type '/////////////////////////////////////////////////////////////////////// ' // ' Privilegios definidos por NT // ' // ' ////////////////////////////////////////////////////////////////////// Const SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" Const SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" Const SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" Const SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" Const SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" Const SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" Const SE_TCB_NAME = "SeTcbPrivilege" Const SE_SECURITY_NAME = "SeSecurityPrivilege" Const SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" Const SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" Const SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" Const SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" Const SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" Const SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" Const SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" Const SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" Const SE_BACKUP_NAME = "SeBackupPrivilege" Const SE_RESTORE_NAME = "SeRestorePrivilege" Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege" Const SE_DEBUG_NAME = "SeDebugPrivilege" Const SE_AUDIT_NAME = "SeAuditPrivilege" Const SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" Const SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" Const SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" ' ////////////////////////////////////////////////////////////////// ' // ' Calidad de seguridad del servicio // ' // ' // ' ////////////////////////////////////////////////////////////////// ' begin_ntddk begin_nthal begin_ntifs ' ' Nivel de suplantación ' ' El nivel de suplantación está representado por un par de bits en Windows. ' Si agrega un nivel de suplantación nuevo o cambia el valor inferior de 0 a ' cualquier otro, fije la llamada CreateFile de Windows. ' Const SecurityAnonymous = 1 Const SecurityIdentification = 2 '/////////////////////////////////////////////////////////////////////// ' // ' Constantes de la API del Registro // ' // ' ////////////////////////////////////////////////////////////////////// ' Tipos de datos Reg... Const REG_NONE = 0 ' Sin tipo de valor Const REG_SZ = 1 ' Cadena Unicode terminada en valor nulo Const REG_EXPAND_SZ = 2 ' Cadena Unicode terminada en valor nulo Const REG_BINARY = 3 ' Binario de formato libre Const REG_DWORD = 4 ' Número de 32 bits Const REG_DWORD_LITTLE_ENDIAN = 4 ' Número de 32 bits (el mismo que en REG_DWORD) Const REG_DWORD_BIG_ENDIAN = 5 ' Número de 32 bits Const REG_LINK = 6 ' Vínculo simbólico (Unicode) Const REG_MULTI_SZ = 7 ' Cadenas múltiples Unicode Const REG_RESOURCE_LIST = 8 ' Lista de recursos en el mapa de recursos Const REG_FULL_RESOURCE_DESCRIPTOR = 9 ' Lista de recursos en la descripción del hardware Const REG_RESOURCE_REQUIREMENTS_LIST = 10 Const REG_CREATED_NEW_KEY = &H1 ' Creada clave de registro nueva Const REG_OPENED_EXISTING_KEY = &H2 ' Abierta clave existente Const REG_WHOLE_HIVE_VOLATILE = &H1 ' Restaura todo el conjunto de registros volátiles Const REG_REFRESH_HIVE = &H2 ' Revierte los cambios a los del último vaciado Const REG_NOTIFY_CHANGE_NAME = &H1 ' Crea o elimina (secundario) Const REG_NOTIFY_CHANGE_ATTRIBUTES = &H2 Const REG_NOTIFY_CHANGE_LAST_SET = &H4 ' Marca de hora Const REG_NOTIFY_CHANGE_SECURITY = &H8 Const REG_LEGAL_CHANGE_FILTER = (REG_NOTIFY_CHANGE_NAME Or REG_NOTIFY_CHANGE_ATTRIBUTES Or REG_NOTIFY_CHANGE_LAST_SET Or REG_NOTIFY_CHANGE_SECURITY) Const REG_LEGAL_OPTION = (REG_OPTION_RESERVED Or REG_OPTION_NON_VOLATILE Or REG_OPTION_VOLATILE Or REG_OPTION_CREATE_LINK Or REG_OPTION_BACKUP_RESTORE) ' Valores del tipo crear Reg... Const REG_OPTION_RESERVED = 0 ' El parámetro está reservado Const REG_OPTION_NON_VOLATILE = 0 ' La clave se conserva al reiniciar el sistema Const REG_OPTION_VOLATILE = 1 ' La clave no se conserva al reiniciar el sistema Const REG_OPTION_CREATE_LINK = 2 ' La clave creada es un vínculo simbólico Const REG_OPTION_BACKUP_RESTORE = 4 ' Abierto para copia de seguridad o restaurar ' Opciones de seguridad de la clave Reg ' Const READ_CONTROL = &H20000 Const KEY_QUERY_VALUE = &H1 Const KEY_SET_VALUE = &H2 Const KEY_CREATE_SUB_KEY = &H4 Const KEY_ENUMERATE_SUB_KEYS = &H8 Const KEY_NOTIFY = &H10 Const KEY_CREATE_LINK = &H20 Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE)) Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE)) Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) ' Const STANDARD_RIGHTS_READ = (READ_CONTROL) ' Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE)) ' fin de winnt.txt ' API de depuración Const EXCEPTION_DEBUG_EVENT = 1 Const CREATE_THREAD_DEBUG_EVENT = 2 Const CREATE_PROCESS_DEBUG_EVENT = 3 Const EXIT_THREAD_DEBUG_EVENT = 4 Const EXIT_PROCESS_DEBUG_EVENT = 5 Const LOAD_DLL_DEBUG_EVENT = 6 Const UNLOAD_DLL_DEBUG_EVENT = 7 Const OUTPUT_DEBUG_STRING_EVENT = 8 Const RIP_EVENT = 9 Const EXCEPTION_MAXIMUM_PARAMETERS = 15 Type EXCEPTION_RECORD ExceptionCode As Long ExceptionFlags As Long pExceptionRecord As Long ' Puntero a una estructura EXCEPTION_RECORD ExceptionAddress As Long NumberParameters As Long ExceptionInformation(EXCEPTION_MAXIMUM_PARAMETERS) As Long End Type Type EXCEPTION_DEBUG_INFO pExceptionRecord As EXCEPTION_RECORD dwFirstChance As Long End Type Type CREATE_THREAD_DEBUG_INFO hThread As Long lpThreadLocalBase As Long lpStartAddress As Long End Type Type CREATE_PROCESS_DEBUG_INFO hFile As Long hProcess As Long hThread As Long lpBaseOfImage As Long dwDebugInfoFileOffset As Long nDebugInfoSize As Long lpThreadLocalBase As Long lpStartAddress As Long lpImageName As Long fUnicode As Integer End Type Type EXIT_THREAD_DEBUG_INFO dwExitCode As Long End Type Type EXIT_PROCESS_DEBUG_INFO dwExitCode As Long End Type Type LOAD_DLL_DEBUG_INFO hFile As Long lpBaseOfDll As Long dwDebugInfoFileOffset As Long nDebugInfoSize As Long lpImageName As Long fUnicode As Integer End Type Type UNLOAD_DLL_DEBUG_INFO lpBaseOfDll As Long End Type Type OUTPUT_DEBUG_STRING_INFO lpDebugStringData As String fUnicode As Integer nDebugStringLength As Integer End Type Type RIP_INFO dwError As Long dwType As Long End Type ' Valores de retorno de GetDriveType Const DRIVE_REMOVABLE = 2 Const DRIVE_FIXED = 3 Const DRIVE_REMOTE = 4 Const DRIVE_CDROM = 5 Const DRIVE_RAMDISK = 6 Const FILE_TYPE_UNKNOWN = &H0 Const FILE_TYPE_DISK = &H1 Const FILE_TYPE_CHAR = &H2 Const FILE_TYPE_PIPE = &H3 Const FILE_TYPE_REMOTE = &H8000 Const STD_INPUT_HANDLE = -10& Const STD_OUTPUT_HANDLE = -11& Const STD_ERROR_HANDLE = -12& Const NOPARITY = 0 Const ODDPARITY = 1 Const EVENPARITY = 2 Const MARKPARITY = 3 Const SPACEPARITY = 4 Const ONESTOPBIT = 0 Const ONE5STOPBITS = 1 Const TWOSTOPBITS = 2 Const IGNORE = 0 ' Pasa por alto la señal Const INFINITE = &HFFFF ' Tiempo de espera infinito ' Índices de velocidad en baudios para comunicaciones Const CBR_110 = 110 Const CBR_300 = 300 Const CBR_600 = 600 Const CBR_1200 = 1200 Const CBR_2400 = 2400 Const CBR_4800 = 4800 Const CBR_9600 = 9600 Const CBR_14400 = 14400 Const CBR_19200 = 19200 Const CBR_38400 = 38400 Const CBR_56000 = 56000 Const CBR_57600 = 57600 Const CBR_115200 = 115200 Const CBR_128000 = 128000 Const CBR_256000 = 256000 ' Indicadores de error Const CE_RXOVER = &H1 ' Desbordamiento de la cola de recepción Const CE_OVERRUN = &H2 ' Error de pérdida de información por exceso de datos Const CE_RXPARITY = &H4 ' Error de paridad de recepción Const CE_FRAME = &H8 ' Error de trama de recepción Const CE_BREAK = &H10 ' Se ha detectado una señal de ruptura Const CE_TXFULL = &H100 ' La cola de transferencia está llena Const CE_PTO = &H200 ' Excedido el tiempo de espera de LPTx Const CE_IOE = &H400 ' Error de E/S en LPTx Const CE_DNS = &H800 ' El dispositivo LPTx no está seleccionado Const CE_OOP = &H1000 ' LPTx sin papel Const CE_MODE = &H8000 ' Modo solicitado no admitido Const IE_BADID = (-1) ' Id. no válido o no admitido Const IE_OPEN = (-2) ' El dispositivo ya está abierto Const IE_NOPEN = (-3) ' El dispositivo no está abierto Const IE_MEMORY = (-4) ' Imposible asignar las colas Const IE_DEFAULT = (-5) ' Error en los parámetros predeterminados Const IE_HARDWARE = (-10) ' El hardware no está presente Const IE_BYTESIZE = (-11) ' Tamaño de byte no admitido Const IE_BAUDRATE = (-12) ' Velocidad en baudios no admitida ' Eventos Const EV_RXCHAR = &H1 ' Cualquier carácter recibido Const EV_RXFLAG = &H2 ' Se ha recibido un carácter determinado Const EV_TXEMPTY = &H4 ' Cola de transmisión vacía Const EV_CTS = &H8 ' Cambió el estado de Preparado para enviar (CTS) Const EV_DSR = &H10 ' Cambió el estado de Conjunto de datos preparado (DSR) Const EV_RLSD = &H20 ' Cambió el estado de Petición de línea para enviar datos (RLSD) Const EV_BREAK = &H40 ' Se ha recibido una señal de ruptura Const EV_ERR = &H80 ' Error de estado de línea Const EV_RING = &H100 ' Se ha detectado una señal de llamada Const EV_PERR = &H200 ' Se ha producido un error de impresora Const EV_RX80FULL = &H400 ' El búfer de recepción está lleno al 80% Const EV_EVENT1 = &H800 ' Evento específico del proveedor núm. 1 Const EV_EVENT2 = &H1000 ' Evento específico del proveedor núm. 2 ' Funciones de escape Const SETXOFF = 1 ' Se ha recibido XOFF simulado Const SETXON = 2 ' Se ha recibido XON simulado Const SETRTS = 3 ' Establece RTS alta Const CLRRTS = 4 ' Establece RTS baja Const SETDTR = 5 ' Establece DTR alta Const CLRDTR = 6 ' Establece DTR baja Const RESETDEV = 7 ' Restablece el dispositivo, si es posible Const SETBREAK = 8 ' Establece la línea de ruptura del dispositivo Const CLRBREAK = 9 ' Borra la línea de ruptura del dispositivo ' Indicadores de función PURGE. Const PURGE_TXABORT = &H1 ' Destruye la escritura pendiente/activa al puerto de comunicaciones. Const PURGE_RXABORT = &H2 ' Destruye la lectura pendiente/activa al puerto de comunicaciones. Const PURGE_TXCLEAR = &H4 ' Destruye la cola de transmisión, si existe. Const PURGE_RXCLEAR = &H8 ' Destruye el búfer de escritura anticipada, si existe. Const LPTx = &H80 ' Establece si el Id. es para el dispositivo LPT ' Indicadores de estado del módem Const MS_CTS_ON = &H10& Const MS_DSR_ON = &H20& Const MS_RING_ON = &H40& Const MS_RLSD_ON = &H80& ' Constantes de WaitSoundState() Const S_QUEUEEMPTY = 0 Const S_THRESHOLD = 1 Const S_ALLTHRESHOLD = 2 ' Modos de acento Const S_NORMAL = 0 Const S_LEGATO = 1 Const S_STACCATO = 2 ' Orígenes de SetSoundNoise() Const S_PERIOD512 = 0 ' Frec = tono alto N/512, silbido menos agudo Const S_PERIOD1024 = 1 ' Frec = N/1024 Const S_PERIOD2048 = 2 ' Frec = tono bajo N/2048, silbido más agudo Const S_PERIODVOICE = 3 ' El origen es una frecuencia del canal de voz (3) Const S_WHITE512 = 4 ' Frec = tono alto N/512, silbido menos agudo Const S_WHITE1024 = 5 ' Frec = N/1024 Const S_WHITE2048 = 6 ' Frec = tono bajo N/2048, silbido más agudo Const S_WHITEVOICE = 7 ' El origen es una frecuencia del canal de voz (3) Const S_SERDVNA = (-1) ' El dispositivo no está disponible Const S_SEROFM = (-2) ' No hay suficiente memoria Const S_SERMACT = (-3) ' Música activa Const S_SERQFUL = (-4) ' Cola llena Const S_SERBDNT = (-5) ' Nota no válida Const S_SERDLN = (-6) ' Longitud de nota no válida Const S_SERDCC = (-7) ' Recuento de notas no válido Const S_SERDTP = (-8) ' Tiempo no válido Const S_SERDVL = (-9) ' Volumen no válido Const S_SERDMD = (-10) ' Modo no válido Const S_SERDSH = (-11) ' Forma no válida Const S_SERDPT = (-12) ' Tono no válido Const S_SERDFQ = (-13) ' Frecuencia no válida Const S_SERDDR = (-14) ' Duración no válida Const S_SERDSR = (-15) ' Origen no válido Const S_SERDST = (-16) ' Estado no válido Const NMPWAIT_WAIT_FOREVER = &HFFFF Const NMPWAIT_NOWAIT = &H1 Const NMPWAIT_USE_DEFAULT_WAIT = &H0 Const FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES Const FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH Const FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK Const FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS Const SECTION_QUERY = &H1 Const SECTION_MAP_WRITE = &H2 Const SECTION_MAP_READ = &H4 Const SECTION_MAP_EXECUTE = &H8 Const SECTION_EXTEND_SIZE = &H10 Const SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SECTION_QUERY Or SECTION_MAP_WRITE Or SECTION_MAP_READ Or SECTION_MAP_EXECUTE Or SECTION_EXTEND_SIZE Const FILE_MAP_COPY = SECTION_QUERY Const FILE_MAP_WRITE = SECTION_MAP_WRITE Const FILE_MAP_READ = SECTION_MAP_READ Const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS ' Indicadores de OpenFile() Const OF_READ = &H0 Const OF_WRITE = &H1 Const OF_READWRITE = &H2 Const OF_SHARE_COMPAT = &H0 Const OF_SHARE_EXCLUSIVE = &H10 Const OF_SHARE_DENY_WRITE = &H20 Const OF_SHARE_DENY_READ = &H30 Const OF_SHARE_DENY_NONE = &H40 Const OF_PARSE = &H100 Const OF_DELETE = &H200 Const OF_VERIFY = &H400 Const OF_CANCEL = &H800 Const OF_CREATE = &H1000 Const OF_PROMPT = &H2000 Const OF_EXIST = &H4000 Const OF_REOPEN = &H8000 Const OFS_MAXPATHNAME = 128 ' Estructura de OpenFile() Type OFSTRUCT cBytes As Byte fFixedDisk As Byte nErrCode As Integer Reserved1 As Integer Reserved2 As Integer szPathName(OFS_MAXPATHNAME) As Byte End Type Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Const PROCESSOR_INTEL_386 = 386 Const PROCESSOR_INTEL_486 = 486 Const PROCESSOR_INTEL_PENTIUM = 586 Const PROCESSOR_MIPS_R4000 = 4000 Const PROCESSOR_ALPHA_21064 = 21064 Const PROCESSOR_ARCHITECTURE_INTEL = 0 Const PROCESSOR_ARCHITECTURE_MIPS = 1 Const PROCESSOR_ARCHITECTURE_ALPHA = 2 Const PROCESSOR_ARCHITECTURE_PPC = 3 Const PROCESSOR_ARCHITECTURE_UNKNOWN = &hFFFF Declare Function GetCurrentTime Lib "kernel32" Alias "GetTickCount" () As Long ' Indicadores para DrawFrameControl Const DFC_CAPTION = 1 Const DFC_MENU = 2 Const DFC_SCROLL = 3 Const DFC_BUTTON = 4 Const DFCS_CAPTIONCLOSE = &H0 Const DFCS_CAPTIONMIN = &H1 Const DFCS_CAPTIONMAX = &H2 Const DFCS_CAPTIONRESTORE = &H3 Const DFCS_CAPTIONHELP = &H4 Const DFCS_MENUARROW = &H0 Const DFCS_MENUCHECK = &H1 Const DFCS_MENUBULLET = &H2 Const DFCS_MENUARROWRIGHT = &H4 Const DFCS_SCROLLUP = &H0 Const DFCS_SCROLLDOWN = &H1 Const DFCS_SCROLLLEFT = &H2 Const DFCS_SCROLLRIGHT = &H3 Const DFCS_SCROLLCOMBOBOX = &H5 Const DFCS_SCROLLSIZEGRIP = &H8 Const DFCS_SCROLLSIZEGRIPRIGHT = &H10 Const DFCS_BUTTONCHECK = &H0 Const DFCS_BUTTONRADIOIMAGE = &H1 Const DFCS_BUTTONRADIOMASK = &H2 Const DFCS_BUTTONRADIO = &H4 Const DFCS_BUTTON3STATE = &H8 Const DFCS_BUTTONPUSH = &H10 Const DFCS_INACTIVE = &H100 Const DFCS_PUSHED = &H200 Const DFCS_CHECKED = &H400 Const DFCS_ADJUSTRECT = &H2000 Const DFCS_FLAT = &H4000 Const DFCS_MONO = &H8000 Declare Function InterlockedIncrement Lib "kernel32" Alias "InterlockedIncrement" (lpAddend As Long) As Long Declare Function InterlockedDecrement Lib "kernel32" Alias "InterlockedDecrement" (lpAddend As Long) As Long Declare Function InterlockedExchange Lib "kernel32" Alias "InterlockedExchange" (Target As Long, ByVal Value As Long) As Long ' Rutinas del cargador Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long Declare Function SetProcessShutdownParameters Lib "kernel32" Alias "SetProcessShutdownParameters" (ByVal dwLevel As Long, ByVal dwFlags As Long) As Long Declare Function GetProcessShutdownParameters Lib "kernel32" Alias "GetProcessShutdownParameters" (lpdwLevel As Long, lpdwFlags As Long) As Long Declare Sub FatalAppExit Lib "kernel32" Alias "FatalAppExitA" (ByVal uAction As Long, ByVal lpMessageText As String) Declare Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA" (lpStartupInfo As STARTUPINFO) Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableA" (ByVal lpName As String, ByVal lpValue As String) As Long Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As Long Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long Const DONT_RESOLVE_DLL_REFERENCES = &H1 Declare Function LoadModule Lib "kernel32" Alias "LoadModule" (ByVal lpModuleName As String, lpParameterBlock As Any) As Long Declare Function FreeLibrary Lib "kernel32" Alias "FreeLibrary" (ByVal hLibModule As Long) As Long Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long Declare Sub DebugBreak Lib "kernel32" Alias "DebugBreak" () Declare Function ContinueDebugEvent Lib "kernel32" Alias "ContinueDebugEvent" (ByVal dwProcessId As Long, ByVal dwThreadId As Long, ByVal dwContinueStatus As Long) As Long Declare Function DebugActiveProcess Lib "kernel32" Alias "DebugActiveProcess" (ByVal dwProcessId As Long) As Long Type CRITICAL_SECTION dummy As Long End Type Declare Sub InitializeCriticalSection Lib "kernel32" Alias "InitializeCriticalSection" (lpCriticalSection As CRITICAL_SECTION) Declare Sub EnterCriticalSection Lib "kernel32" Alias "EnterCriticalSection" (lpCriticalSection As CRITICAL_SECTION) Declare Sub LeaveCriticalSection Lib "kernel32" Alias "LeaveCriticalSection" (lpCriticalSection As CRITICAL_SECTION) Declare Sub DeleteCriticalSection Lib "kernel32" Alias "DeleteCriticalSection" (lpCriticalSection As CRITICAL_SECTION) Declare Function SetEvent Lib "kernel32" Alias "SetEvent" (ByVal hEvent As Long) As Long Declare Function ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long Declare Function PulseEvent Lib "kernel32" Alias "PulseEvent" (ByVal hEvent As Long) As Long Declare Function ReleaseSemaphore Lib "kernel32" Alias "ReleaseSemaphore" (ByVal hSemaphore As Long, ByVal lReleaseCount As Long, lpPreviousCount As Long) As Long Declare Function ReleaseMutex Lib "kernel32" Alias "ReleaseMutex" (ByVal hMutex As Long) As Long Declare Function WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Declare Function WaitForMultipleObjects Lib "kernel32" Alias "WaitForMultipleObjects" (ByVal nCount As Long, lpHandles As Long, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long) As Long Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (ByVal lpOutputString As String) Declare Function GetVersion Lib "kernel32" Alias "GetVersion" () As Long Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long ' Indicadores de GetTempFileName() ' Const TF_FORCEDRIVE = &H80 Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long Declare Function SetHandleCount Lib "kernel32" Alias "SetHandleCount" (ByVal wNumber As Long) As Long Declare Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long Declare Function LockFile Lib "kernel32" Alias "LockFile" (ByVal hFile As Long, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long) As Long Declare Function UnlockFile Lib "kernel32" Alias "UnlockFile" (ByVal hFile As Long, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long) As Long Declare Function LockFileEx Lib "kernel32" Alias "LockFileEx" (ByVal hFile As Long, ByVal dwFlags As Long, ByVal dwReserved As Long, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long, lpOverlapped As OVERLAPPED) As Long Const LOCKFILE_FAIL_IMMEDIATELY = &H1 Const LOCKFILE_EXCLUSIVE_LOCK = &H2 Declare Function UnlockFileEx Lib "kernel32" Alias "UnlockFileEx" (ByVal hFile As Long, ByVal dwReserved As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long, lpOverlapped As OVERLAPPED) As Long Type BY_HANDLE_FILE_INFORMATION dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME dwVolumeSerialNumber As Long nFileSizeHigh As Long nFileSizeLow As Long nNumberOfLinks As Long nFileIndexHigh As Long nFileIndexLow As Long End Type Declare Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long Declare Function GetFileType Lib "kernel32" Alias "GetFileType" (ByVal hFile As Long) As Long Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long Declare Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As Long Declare Function SetStdHandle Lib "kernel32" Alias "SetStdHandle" (ByVal nStdHandle As Long, ByVal nHandle As Long) As Long Declare Function WriteFile Lib "kernel32" Alias "WriteFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long Declare Function FlushFileBuffers Lib "kernel32" Alias "FlushFileBuffers" (ByVal hFile As Long) As Long Declare Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As OVERLAPPED) As Long Declare Function SetEndOfFile Lib "kernel32" Alias "SetEndOfFile" (ByVal hFile As Long) As Long Declare Function SetFilePointer Lib "kernel32" Alias "SetFilePointer" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long Declare Function GetFileTime Lib "kernel32" Alias "GetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long Declare Function SetFileTime Lib "kernel32" Alias "SetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long Declare Function DuplicateHandle Lib "kernel32" Alias "DuplicateHandle" (ByVal hSourceProcessHandle As Long, ByVal hSourceHandle As Long, ByVal hTargetProcessHandle As Long, lpTargetHandle As Long, ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwOptions As Long) As Long Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Declare Function GlobalAlloc Lib "kernel32" Alias "GlobalAlloc" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long Declare Function GlobalFree Lib "kernel32" Alias "GlobalFree" (ByVal hMem As Long) As Long Declare Function GlobalHandle Lib "kernel32" Alias "GlobalHandle" (wMem As Any) As Long Declare Function GlobalLock Lib "kernel32" Alias "GlobalLock" (ByVal hMem As Long) As Long Declare Function GlobalReAlloc Lib "kernel32" Alias "GlobalReAlloc" (ByVal hMem As Long, ByVal dwBytes As Long, ByVal wFlags As Long) As Long Declare Function GlobalSize Lib "kernel32" Alias "GlobalSize" (ByVal hMem As Long) As Long Declare Function GlobalUnlock Lib "kernel32" Alias "GlobalUnlock" (ByVal hMem As Long) As Long Declare Function GlobalFlags Lib "kernel32" Alias "GlobalFlags" (ByVal hMem As Long) As Long Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS) Const LNOTIFY_OUTOFMEM = 0 Const LNOTIFY_MOVE = 1 Const LNOTIFY_DISCARD = 2 Declare Function LocalAlloc Lib "kernel32" Alias "LocalAlloc" (ByVal wFlags As Long, ByVal wBytes As Long) As Long Declare Function LocalFree Lib "kernel32" Alias "LocalFree" (ByVal hMem As Long) As Long Declare Function LocalHandle Lib "kernel32" Alias "LocalHandle" (wMem As Any) As Long Declare Function LocalLock Lib "kernel32" Alias "LocalLock" (ByVal hMem As Long) As Long Declare Function LocalReAlloc Lib "kernel32" Alias "LocalReAlloc" (ByVal hMem As Long, ByVal wBytes As Long, ByVal wFlags As Long) As Long Declare Function LocalSize Lib "kernel32" Alias "LocalSize" (ByVal hMem As Long) As Long Declare Function LocalUnlock Lib "kernel32" Alias "LocalUnlock" (ByVal hMem As Long) As Long Declare Function LocalFlags Lib "kernel32" Alias "LocalFlags" (ByVal hMem As Long) As Long Type MEMORY_BASIC_INFORMATION BaseAddress as Long AllocationBase as Long AllocationProtect As Long RegionSize As Long State As Long Protect As Long lType As Long End Type Declare Function FlushInstructionCache Lib "kernel32" Alias "FlushInstructionCache" (ByVal hProcess As Long, lpBaseAddress As Any, ByVal dwSize As Long) As Long Declare Function VirtualAlloc Lib "kernel32" Alias "VirtualAlloc" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long Declare Function VirtualFree Lib "kernel32" Alias "VirtualFree" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long Declare Function VirtualProtect Lib "kernel32" Alias "VirtualProtect" (lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long Declare Function VirtualQuery Lib "kernel32" Alias "VirtualQuery" (lpAddress As Any, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long Declare Function VirtualProtectEx Lib "kernel32" Alias "VirtualProtectEx" (ByVal hProcess As Long, lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long Declare Function VirtualQueryEx Lib "kernel32" Alias "VirtualQueryEx" (ByVal hProcess As Long, lpAddress As Any, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long Declare Function HeapCreate Lib "kernel32" Alias "HeapCreate" (ByVal flOptions As Long, ByVal dwInitialSize As Long, ByVal dwMaximumSize As Long) As Long Declare Function HeapDestroy Lib "kernel32" Alias "HeapDestroy" (ByVal hHeap As Long) As Long Declare Function HeapAlloc Lib "kernel32" Alias "HeapAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long Declare Function HeapReAlloc Lib "kernel32" Alias "HeapReAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any, ByVal dwBytes As Long) As Long Declare Function HeapFree Lib "kernel32" Alias "HeapFree" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long Declare Function HeapSize Lib "kernel32" Alias "HeapSize" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long Declare Function GetProcessHeap Lib "kernel32" Alias "GetProcessHeap" () As Long Declare Function GetProcessTimes Lib "kernel32" Alias "GetProcessTimes" (ByVal hProcess As Long, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Declare Function GetCurrentProcess Lib "kernel32" Alias "GetCurrentProcess" () As Long Declare Function GetCurrentProcessId Lib "kernel32" Alias "GetCurrentProcessId" () As Long Declare Sub ExitProcess Lib "kernel32" Alias "ExitProcess" (ByVal uExitCode As Long) Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Declare Function GetExitCodeProcess Lib "kernel32" Alias "GetExitCodeProcess" (ByVal hProcess As Long, lpExitCode As Long) As Long Declare Function GetLastError Lib "kernel32" Alias "GetLastError" () As Long Declare Sub SetLastError Lib "kernel32" Alias "SetLastError" (ByVal dwErrCode As Long) Const SLE_ERROR = &H1 Const SLE_MINORERROR = &H2 Const SLE_WARNING = &H3 Declare Sub SetLastErrorEx Lib "user32" Alias "SetLastErrorEx" (ByVal dwErrCode As Long, ByVal dwType As Long) Declare Function GetOverlappedResult Lib "kernel32" Alias "GetOverlappedResult" (ByVal hFile As Long, lpOverlapped As OVERLAPPED, lpNumberOfBytesTransferred As Long, ByVal bWait As Long) As Long Const SEM_FAILCRITICALERRORS = &H1 Const SEM_NOGPFAULTERRORBOX = &H2 Const SEM_NOOPENFILEERRORBOX = &H8000 Declare Sub SetDebugErrorLevel Lib "user32" Alias "SetDebugErrorLevel" (ByVal dwLevel As Long) Declare Function SetErrorMode Lib "kernel32" Alias "SetErrorMode" (ByVal wMode As Long) As Long Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Declare Function WriteProcessMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Declare Function GetThreadContext Lib "kernel32" Alias "GetThreadContext" (ByVal hThread As Long, lpContext As CONTEXT) As Long Declare Function SetThreadContext Lib "kernel32" Alias "SetThreadContext" (ByVal hThread As Long, lpContext As CONTEXT) As Long Declare Function SuspendThread Lib "kernel32" Alias "SuspendThread" (ByVal hThread As Long) As Long Declare Function ResumeThread Lib "kernel32" Alias "ResumeThread" (ByVal hThread As Long) As Long Declare Function FindResource Lib "kernel32" Alias "FindResourceA" (ByVal hInstance As Long, ByVal lpName As String, ByVal lpType As String) As Long Declare Function FindResourceEx Lib "kernel32" Alias "FindResourceExA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long) As Long Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long Declare Function LoadResource Lib "kernel32" Alias "LoadResource" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long Declare Function LockResource Lib "kernel32" Alias "LockResource" (ByVal hResData As Long) As Long Declare Function SizeofResource Lib "kernel32" Alias "SizeofResource" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long ' Tipos de recursos predefinidos Const RT_CURSOR = 1& Const RT_BITMAP = 2& Const RT_ICON = 3& Const RT_MENU = 4& Const RT_DIALOG = 5& Const RT_STRING = 6& Const RT_FONTDIR = 7& Const RT_FONT = 8& Const RT_ACCELERATOR = 9& Const RT_RCDATA = 10& Declare Function InitAtomTable Lib "kernel32" Alias "InitAtomTable" (ByVal nSize As Long) As Long Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Integer Declare Function GlobalDeleteAtom Lib "kernel32" Alias "GlobalDeleteAtom" (ByVal nAtom As Integer) As Integer Declare Function GlobalFindAtom Lib "kernel32" Alias "GlobalFindAtomA" (ByVal lpString As String) As Integer Declare Function GlobalGetAtomName Lib "kernel32" Alias "GlobalGetAtomNameA" (ByVal nAtom As Integer, ByVal lpBuffer As String, ByVal nSize As Long) As Long ' Rutinas del perfil de user ' NOTA: El argumento lpKeyName para GetProfileString, WriteProfileString, ' GetPrivateProfileString y WritePrivateProfileString puede ser una cadena ' o NULL. Por eso, el argumento se define con "As Any". ' Por ejemplo, para pasar una cadena especifique ByVal "tapiz" ' Para pasar NULL especifique ByVal 0& ' También puede pasar NULL para el argumento lpString de WriteProfileString ' y WritePrivateProfileString Declare Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long Declare Function WriteProfileSection Lib "kernel32" Alias "WriteProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String) As Long Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectory" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long Declare Function CreateDirectoryEx Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long Const DDD_RAW_TARGET_PATH = &H1 Const DDD_REMOVE_DEFINITION = &H2 Const DDD_EXACT_MATCH_ON_REMOVE = &H4 Const MAX_PATH = 260 Declare Function DefineDosDevice Lib "kernel32" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long Declare Function QueryDosDevice Lib "kernel32" Alias "QueryDosDeviceA" (ByVal lpDeviceName As String, ByVal lpTargetPath As String, ByVal ucchMax As Long) As Long Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" (ByVal lpPath As String, ByVal lpFileName As String, ByVal lpExtension As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As Long Const MOVEFILE_REPLACE_EXISTING = &H1 Const MOVEFILE_COPY_ALLOWED = &H2 Const MOVEFILE_DELAY_UNTIL_REBOOT = &H4 Type EVENTLOGRECORD Length as Long ' Longitud del registro lleno Reserved as Long ' Usado por el servicio RecordNumber as Long ' Número de registro absoluto TimeGenerated as Long ' Segundos desde 1-1-1970 TimeWritten as Long ' Segundos desde 1-1-1970 EventID as Long EventType as Integer NumStrings as Integer EventCategory as Integer ReservedFlags as Integer ' Para usarlo con eventos en pares (consultas) ClosingRecordNumber as Long ' Para usarlo con eventos en pares (auditoría) StringOffset as Long ' Desplazamiento desde el comienzo del registro UserSidLength as Long UserSidOffset as Long DataLength as Long DataOffset as Long ' Desplazamiento desde el comienzo del registro End Type Declare Function CreateNamedPipe Lib "kernel32" Alias "CreateNamedPipeA" (ByVal lpName As String, ByVal dwOpenMode As Long, ByVal dwPipeMode As Long, ByVal nMaxInstances As Long, ByVal nOutBufferSize As Long, ByVal nInBufferSize As Long, ByVal nDefaultTimeOut As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long Declare Function GetNamedPipeHandleState Lib "kernel32" Alias "GetNamedPipeHandleStateA" (ByVal hNamedPipe As Long, lpState As Long, lpCurInstances As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long, ByVal lpUserName As String, ByVal nMaxUserNameSize As Long) As Long Declare Function CallNamedPipe Lib "kernel32" Alias "CallNamedPipeA" (ByVal lpNamedPipeName As String, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesRead As Long, ByVal nTimeOut As Long) As Long Declare Function WaitNamedPipe Lib "kernel32" Alias "WaitNamedPipeA" (ByVal lpNamedPipeName As String, ByVal nTimeOut As Long) As Long Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long Declare Sub SetFileApisToOEM Lib "kernel32" Alias "SetFileApisToOEM" () Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long Declare Function ClearEventLog Lib "advapi32.dll" Alias "ClearEventLogA" (ByVal hEventLog As Long, ByVal lpBackupFileName As String) As Long Declare Function BackupEventLog Lib "advapi32.dll" Alias "BackupEventLogA" (ByVal hEventLog As Long, ByVal lpBackupFileName As String) As Long Declare Function CloseEventLog Lib "advapi32.dll" Alias "CloseEventLog" (ByVal hEventLog As Long) As Long Declare Function DeregisterEventSource Lib "advapi32.dll" Alias "DeregisterEventSource" (ByVal hEventLog As Long) As Long Declare Function GetNumberOfEventLogRecords Lib "advapi32.dll" Alias "GetNumberOfEventLogRecords" (ByVal hEventLog As Long, NumberOfRecords As Long) As Long Declare Function GetOldestEventLogRecord Lib "advapi32.dll" Alias "GetOldestEventLogRecord" (ByVal hEventLog As Long, OldestRecord As Long) As Long Declare Function OpenEventLog Lib "advapi32.dll" Alias "OpenEventLogA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long Declare Function RegisterEventSource Lib "advapi32.dll" Alias "RegisterEventSourceA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long Declare Function OpenBackupEventLog Lib "advapi32.dll" Alias "OpenBackupEventLogA" (ByVal lpUNCServerName As String, ByVal lpFileName As String) As Long Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" (ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Long, pnBytesRead As Long, pnMinNumberOfBytesNeeded As Long) As Long Declare Function ReportEvent Lib "advapi32.dll" Alias "ReportEventA" (ByVal hEventLog As Long, ByVal wType As Long, ByVal wCategory As Long, ByVal dwEventID As Long, lpUserSid As Any, ByVal wNumStrings As Long, ByVal dwDataSize As Long, ByVal lpStrings As Long, lpRawData As Any) As Long ' API de seguridad Const TokenUser = 1 Const TokenGroups = 2 Const TokenPrivileges = 3 Const TokenOwner = 4 Const TokenPrimaryGroup = 5 Const TokenDefaultDacl = 6 Const TokenSource = 7 Const TokenType = 8 Const TokenImpersonationLevel = 9 Const TokenStatistics = 10 Type TOKEN_GROUPS GroupCount As Long Groups(ANYSIZE_ARRAY) As SID_AND_ATTRIBUTES End Type Declare Function DuplicateToken Lib "advapi32.dll" Alias "DuplicateToken" (ByVal ExistingTokenHandle As Long, ImpersonationLevel As Integer, DuplicateTokenHandle As Long) As Long Declare Function GetKernelObjectSecurity Lib "advapi32.dll" Alias "GetKernelObjectSecurity" (ByVal Handle As Long, ByVal RequestedInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long Declare Function ImpersonateNamedPipeClient Lib "advapi32.dll" Alias "ImpersonateNamedPipeClient" (ByVal hNamedPipe As Long) As Long Declare Function ImpersonateSelf Lib "advapi32.dll" Alias "ImpersonateSelf" (ImpersonationLevel As Integer) As Long Declare Function RevertToSelf Lib "advapi32.dll" Alias "RevertToSelf" () As Long Declare Function AccessCheck Lib "advapi32.dll" Alias "AccessCheck" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal ClientToken As Long, ByVal DesiredAccess As Long, GenericMapping As GENERIC_MAPPING, PrivilegeSet As PRIVILEGE_SET, PrivilegeSetLength As Long, GrantedAccess As Long, ByVal Status As Long) As Long Type TOKEN_PRIVILEGES PrivilegeCount As Long Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES End Type Declare Function OpenProcessToken Lib "advapi32.dll" Alias "OpenProcessToken" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long Declare Function OpenThreadToken Lib "advapi32.dll" Alias "OpenThreadToken" (ByVal ThreadHandle As Long, ByVal DesiredAccess As Long, ByVal OpenAsSelf As Long, TokenHandle As Long) As Long Declare Function GetTokenInformation Lib "advapi32.dll" Alias "GetTokenInformation" (ByVal TokenHandle As Long, TokenInformationClass As Integer, TokenInformation As Any, ByVal TokenInformationLength As Long, ReturnLength As Long) As Long Declare Function SetTokenInformation Lib "advapi32.dll" Alias "SetTokenInformation" (ByVal TokenHandle As Long, TokenInformationClass As Integer, TokenInformation As Any, ByVal TokenInformationLength As Long) As Long Declare Function AdjustTokenPrivileges Lib "advapi32.dll" Alias "AdjustTokenPrivileges" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long Declare Function AdjustTokenGroups Lib "advapi32.dll" Alias "AdjustTokenGroups" (ByVal TokenHandle As Long, ByVal ResetToDefault As Long, NewState As TOKEN_GROUPS, ByVal BufferLength As Long, PreviousState As TOKEN_GROUPS, ReturnLength As Long) As Long Declare Function PrivilegeCheck Lib "advapi32.dll" Alias "PrivilegeCheck" (ByVal ClientToken As Long, RequiredPrivileges As PRIVILEGE_SET, ByVal pfResult As Long) As Long Declare Function AccessCheckAndAuditAlarm Lib "advapi32.dll" Alias "AccessCheckAndAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ObjectTypeName As String, ByVal ObjectName As String, SecurityDescriptor As SECURITY_DESCRIPTOR, ByVal DesiredAccess As Long, GenericMapping As GENERIC_MAPPING, ByVal ObjectCreation As Long, GrantedAccess As Long, ByVal AccessStatus As Long, ByVal pfGenerateOnClose As Long) As Long Declare Function ObjectOpenAuditAlarm Lib "kernel32" Alias "ObjectOpenAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ObjectTypeName As String, ByVal ObjectName As String, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal ClientToken As Long, ByVal DesiredAccess As Long, ByVal GrantedAccess As Long, Privileges As PRIVILEGE_SET, ByVal ObjectCreation As Long, ByVal AccessGranted As Long, ByVal GenerateOnClose As Long) As Long Declare Function ObjectPrivilegeAuditAlarm Lib "advapi32.dll" Alias "ObjectPrivilegeAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ClientToken As Long, ByVal DesiredAccess As Long, Privileges As PRIVILEGE_SET, ByVal AccessGranted As Long) As Long Declare Function ObjectCloseAuditAlarm Lib "advapi32.dll" Alias "ObjectCloseAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal GenerateOnClose As Long) As Long Declare Function PrivilegedServiceAuditAlarm Lib "advapi32.dll" Alias "PrivilegedServiceAuditAlarmA" (ByVal SubsystemName As String, ByVal ServiceName As String, ByVal ClientToken As Long, Privileges As PRIVILEGE_SET, ByVal AccessGranted As Long) As Long Declare Function IsValidSid Lib "advapi32.dll" Alias "IsValidSid" (pSid As Any) As Long Declare Function EqualSid Lib "advapi32.dll" Alias "EqualSid" (pSid1 As Any, pSid2 As Any) As Long Declare Function EqualPrefixSid Lib "advapi32.dll" Alias "EqualPrefixSid" (pSid1 As Any, pSid2 As Any) As Long Declare Function GetSidLengthRequired Lib "advapi32.dll" Alias "GetSidLengthRequired" (ByVal nSubAuthorityCount As Byte) As Long Declare Function AllocateAndInitializeSid Lib "advapi32.dll" Alias "AllocateAndInitializeSid" (pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As Byte, ByVal nSubAuthority0 As Long, ByVal nSubAuthority1 As Long, ByVal nSubAuthority2 As Long, ByVal nSubAuthority3 As Long, ByVal nSubAuthority4 As Long, ByVal nSubAuthority5 As Long, ByVal nSubAuthority6 As Long, ByVal nSubAuthority7 As Long, lpPSid As Long) As Long Declare Sub FreeSid Lib "advapi32.dll" Alias "FreeSid" (pSid As Any) Declare Function InitializeSid Lib "advapi32.dll" Alias "InitializeSid" (Sid As Any, pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As Byte) As Long Declare Function GetSidIdentifierAuthority Lib "advapi32.dll" Alias "GetSidIdentifierAuthority" (pSid As Any) As SID_IDENTIFIER_AUTHORITY Declare Function GetSidSubAuthority Lib "advapi32.dll" Alias "GetSidSubAuthority" (pSid As Any, ByVal nSubAuthority As Long) As Long Declare Function GetSidSubAuthorityCount Lib "advapi32.dll" Alias "GetSidSubAuthorityCount" (pSid As Any) As Byte Declare Function GetLengthSid Lib "advapi32.dll" Alias "GetLengthSid" (pSid As Any) As Long Declare Function CopySid Lib "advapi32.dll" Alias "CopySid" (ByVal nDestinationSidLength As Long, pDestinationSid As Any, pSourceSid As Any) As Long Declare Function AreAllAccessesGranted Lib "advapi32.dll" Alias "AreAllAccessesGranted" (ByVal GrantedAccess As Long, ByVal DesiredAccess As Long) As Long Declare Function AreAnyAccessesGranted Lib "advapi32.dll" Alias "AreAnyAccessesGranted" (ByVal GrantedAccess As Long, ByVal DesiredAccess As Long) As Long Declare Sub MapGenericMask Lib "advapi32.dll" Alias "MapGenericMask" (AccessMask As Long, GenericMapping As GENERIC_MAPPING) Declare Function IsValidAcl Lib "advapi32.dll" Alias "IsValidAcl" (pAcl As ACL) As Long Declare Function InitializeAcl Lib "advapi32.dll" Alias "InitializeAcl" (pAcl As ACL, ByVal nAclLength As Long, ByVal dwAclRevision As Long) As Long Declare Function GetAclInformation Lib "advapi32.dll" Alias "GetAclInformation" (pAcl As ACL, pAclInformation As Any, ByVal nAclInformationLength As Long, ByVal dwAclInformationClass As Integer) As Long Declare Function SetAclInformation Lib "advapi32.dll" Alias "SetAclInformation" (pAcl As ACL, pAclInformation As Any, ByVal nAclInformationLength As Long, ByVal dwAclInformationClass As Integer) As Long Declare Function AddAce Lib "advapi32.dll" Alias "AddAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal dwStartingAceIndex As Long, pAceList As Any, ByVal nAceListLength As Long) As Long Declare Function DeleteAce Lib "advapi32.dll" Alias "DeleteAce" (pAcl As ACL, ByVal dwAceIndex As Long) As Long Declare Function GetAce Lib "advapi32.dll" Alias "GetAce" (pAcl As ACL, ByVal dwAceIndex As Long, pAce As Any) As Long Declare Function AddAccessAllowedAce Lib "advapi32.dll" Alias "AddAccessAllowedAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal AccessMask As Long, pSid As Any) As Long Declare Function AddAccessDeniedAce Lib "advapi32.dll" Alias "AddAccessDeniedAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal AccessMask As Long, pSid As Any) As Long Declare Function AddAuditAccessAce Lib "advapi32.dll" Alias "AddAuditAccessAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal dwAccessMask As Long, pSid As Any, ByVal bAuditSuccess As Long, ByVal bAuditFailure As Long) As Long Declare Function FindFirstFreeAce Lib "advapi32.dll" Alias "FindFirstFreeAce" (pAcl As ACL, pAce As Long) As Long Declare Function InitializeSecurityDescriptor Lib "advapi32.dll" Alias "InitializeSecurityDescriptor" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal dwRevision As Long) As Long Declare Function IsValidSecurityDescriptor Lib "advapi32.dll" Alias "IsValidSecurityDescriptor" (pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long Declare Function GetSecurityDescriptorLength Lib "advapi32.dll" Alias "GetSecurityDescriptorLength" (pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long Declare Function GetSecurityDescriptorControl Lib "advapi32.dll" Alias "GetSecurityDescriptorControl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pControl As Integer, lpdwRevision As Long) As Long Declare Function SetSecurityDescriptorDacl Lib "advapi32.dll" Alias "SetSecurityDescriptorDacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal bDaclPresent As Long, pDacl As ACL, ByVal bDaclDefaulted As Long) As Long Declare Function GetSecurityDescriptorDacl Lib "advapi32.dll" Alias "GetSecurityDescriptorDacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, lpbDaclPresent As Long, pDacl As ACL, lpbDaclDefaulted As Long) As Long Declare Function SetSecurityDescriptorSacl Lib "advapi32.dll" Alias "SetSecurityDescriptorSacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal bSaclPresent As Long, pSacl As ACL, ByVal bSaclDefaulted As Long) As Long Declare Function GetSecurityDescriptorSacl Lib "advapi32.dll" Alias "GetSecurityDescriptorSacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal lpbSaclPresent As Long, pSacl As ACL, ByVal lpbSaclDefaulted As Long) As Long Declare Function SetSecurityDescriptorOwner Lib "advapi32.dll" Alias "SetSecurityDescriptorOwner" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pOwner As Any, ByVal bOwnerDefaulted As Long) As Long Declare Function GetSecurityDescriptorOwner Lib "advapi32.dll" Alias "GetSecurityDescriptorOwner" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pOwner As Any, ByVal lpbOwnerDefaulted As Long) As Long Declare Function SetSecurityDescriptorGroup Lib "advapi32.dll" Alias "SetSecurityDescriptorGroup" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pGroup As Any, ByVal bGroupDefaulted As Long) As Long Declare Function GetSecurityDescriptorGroup Lib "advapi32.dll" Alias "GetSecurityDescriptorGroup" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pGroup As Any, ByVal lpbGroupDefaulted As Long) As Long Declare Function CreatePrivateObjectSecurity Lib "advapi32.dll" Alias "CreatePrivateObjectSecurity" (ParentDescriptor As SECURITY_DESCRIPTOR, CreatorDescriptor As SECURITY_DESCRIPTOR, NewDescriptor As SECURITY_DESCRIPTOR, ByVal IsDirectoryObject As Long, ByVal Token As Long, GenericMapping As GENERIC_MAPPING) As Long Declare Function SetPrivateObjectSecurity Lib "advapi32.dll" Alias "SetPrivateObjectSecurity" (ByVal SecurityInformation As Long, ModificationDescriptor As SECURITY_DESCRIPTOR, ObjectsSecurityDescriptor As SECURITY_DESCRIPTOR, GenericMapping As GENERIC_MAPPING, ByVal Token As Long) As Long Declare Function GetPrivateObjectSecurity Lib "advapi32.dll" Alias "GetPrivateObjectSecurity" (ObjectDescriptor As SECURITY_DESCRIPTOR, ByVal SecurityInformation As Long, ResultantDescriptor As SECURITY_DESCRIPTOR, ByVal DescriptorLength As Long, ReturnLength As Long) As Long Declare Function DestroyPrivateObjectSecurity Lib "advapi32.dll" Alias "DestroyPrivateObjectSecurity" (ObjectDescriptor As SECURITY_DESCRIPTOR) As Long Declare Function MakeSelfRelativeSD Lib "advapi32.dll" Alias "MakeSelfRelativeSD" (pAbsoluteSecurityDescriptor As SECURITY_DESCRIPTOR, pSelfRelativeSecurityDescriptor As SECURITY_DESCRIPTOR, lpdwBufferLength As Long) As Long Declare Function MakeAbsoluteSD Lib "advapi32.dll" Alias "MakeAbsoluteSD" (pSelfRelativeSecurityDescriptor As SECURITY_DESCRIPTOR, pAbsoluteSecurityDescriptor As SECURITY_DESCRIPTOR, lpdwAbsoluteSecurityDescriptorSize As Long, pDacl As ACL, lpdwDaclSize As Long, pSacl As ACL, lpdwSaclSize As Long, pOwner As Any, lpdwOwnerSize As Long, pPrimaryGroup As Any, lpdwPrimaryGroupSize As Long) As Long Declare Function SetFileSecurity Lib "advapi32.dll" Alias "SetFileSecurityA" (ByVal lpFileName As String, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long Declare Function GetFileSecurity Lib "advapi32.dll" Alias "GetFileSecurityA" (ByVal lpFileName As String, ByVal RequestedInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long Declare Function SetKernelObjectSecurity Lib "advapi32.dll" Alias "SetKernelObjectSecurity" (ByVal Handle As Long, ByVal SecurityInformation As Long, SecurityDescriptor As SECURITY_DESCRIPTOR) As Long Declare Function FindFirstChangeNotification Lib "kernel32" Alias "FindFirstChangeNotificationA" (ByVal lpPathName As String, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long) As Long Declare Function FindNextChangeNotification Lib "kernel32" Alias "FindNextChangeNotification" (ByVal hChangeHandle As Long) As Long Declare Function FindCloseChangeNotification Lib "kernel32" Alias "FindCloseChangeNotification" (ByVal hChangeHandle As Long) As Long Declare Function VirtualLock Lib "kernel32" Alias "VirtualLock" (lpAddress As Any, ByVal dwSize As Long) As Long Declare Function VirtualUnlock Lib "kernel32" Alias "VirtualUnlock" (lpAddress As Any, ByVal dwSize As Long) As Long Declare Function MapViewOfFileEx Lib "kernel32" Alias "MapViewOfFileEx" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long, lpBaseAddress As Any) As Long Declare Function SetPriorityClass Lib "kernel32" Alias "SetPriorityClass" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long Declare Function GetPriorityClass Lib "kernel32" Alias "GetPriorityClass" (ByVal hProcess As Long) As Long Type CONTEXT FltF0 As Double FltF1 As Double FltF2 As Double FltF3 As Double FltF4 As Double FltF5 As Double FltF6 As Double FltF7 As Double FltF8 As Double FltF9 As Double FltF10 As Double FltF11 As Double FltF12 As Double FltF13 As Double FltF14 As Double FltF15 As Double FltF16 As Double FltF17 As Double FltF18 As Double FltF19 As Double FltF20 As Double FltF21 As Double FltF22 As Double FltF23 As Double FltF24 As Double FltF25 As Double FltF26 As Double FltF27 As Double FltF28 As Double FltF29 As Double FltF30 As Double FltF31 As Double IntV0 As Double IntT0 As Double IntT1 As Double IntT2 As Double IntT3 As Double IntT4 As Double IntT5 As Double IntT6 As Double IntT7 As Double IntS0 As Double IntS1 As Double IntS2 As Double IntS3 As Double IntS4 As Double IntS5 As Double IntFp As Double IntA0 As Double IntA1 As Double IntA2 As Double IntA3 As Double IntA4 As Double IntA5 As Double IntT8 As Double IntT9 As Double IntT10 As Double IntT11 As Double IntRa As Double IntT12 As Double IntAt As Double IntGp As Double IntSp As Double IntZero As Double Fpcr As Double SoftFpcr As Double Fir As Double Psr As Long ContextFlags As Long Fill(4) As Long End Type Type EXCEPTION_POINTERS pExceptionRecord As EXCEPTION_RECORD ContextRecord As CONTEXT End Type Type LDT_BYTES ' Definido para su uso en el tipo LDT_ENTRY BaseMid As Byte Flags1 As Byte Flags2 As Byte BaseHi As Byte End Type Type LDT_ENTRY LimitLow As Integer BaseLow As Integer HighWord As Long ' Puede usar el tipo LDT_BYTES End Type Declare Sub FatalExit Lib "kernel32" Alias "FatalExit" (ByVal code As Long) Declare Function GetEnvironmentStrings Lib "kernel32" Alias "GetEnvironmentStringsA" () As String Declare Sub RaiseException Lib "kernel32" Alias "RaiseException" (ByVal dwExceptionCode As Long, ByVal dwExceptionFlags As Long, ByVal nNumberOfArguments As Long, lpArguments As Long) Declare Function UnhandledExceptionFilter Lib "kernel32" Alias "UnhandledExceptionFilter" (ExceptionInfo As EXCEPTION_POINTERS) As Long Declare Function CreateThread Lib "kernel32" Alias "CreateThread" (lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long Declare Function CreateRemoteThread Lib "kernel32" Alias "CreateRemoteThread" (ByVal hProcess As Long, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long Declare Function GetCurrentThread Lib "kernel32" Alias "GetCurrentThread" () As Long Declare Function GetCurrentThreadId Lib "kernel32" Alias "GetCurrentThreadId" () As Long Declare Function SetThreadPriority Lib "kernel32" Alias "SetThreadPriority" (ByVal hThread As Long, ByVal nPriority As Long) As Long Declare Function GetThreadPriority Lib "kernel32" Alias "GetThreadPriority" (ByVal hThread As Long) As Long Declare Function GetThreadTimes Lib "kernel32" Alias "GetThreadTimes" (ByVal hThread As Long, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long Declare Sub ExitThread Lib "kernel32" Alias "ExitThread" (ByVal dwExitCode As Long) Declare Function TerminateThread Lib "kernel32" Alias "TerminateThread" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long Declare Function GetExitCodeThread Lib "kernel32" Alias "GetExitCodeThread" (ByVal hThread As Long, lpExitCode As Long) As Long Declare Function GetThreadSelectorEntry Lib "kernel32" Alias "GetThreadSelectorEntry" (ByVal hThread As Long, ByVal dwSelector As Long, lpSelectorEntry As LDT_ENTRY) As Long ' Declaraciones de comunicaciones Declare Function SetCommState Lib "kernel32" Alias "SetCommState" (ByVal hCommDev As Long, lpDCB As DCB) As Long Declare Function SetCommTimeouts Lib "kernel32" Alias "SetCommTimeouts" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long Declare Function GetCommState Lib "kernel32" Alias "GetCommState" (ByVal nCid As Long, lpDCB As DCB) As Long Declare Function GetCommTimeouts Lib "kernel32" Alias "GetCommTimeouts" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long Declare Function PurgeComm Lib "kernel32" Alias "PurgeComm" (ByVal hFile As Long, ByVal dwFlags As Long) As Long Declare Function BuildCommDCB Lib "kernel32" Alias "BuildCommDCBA" (ByVal lpDef As String, lpDCB As DCB) As Long Declare Function BuildCommDCBAndTimeouts Lib "kernel32" Alias "BuildCommDCBAndTimeoutsA" (ByVal lpDef As String, lpDCB As DCB, lpCommTimeouts As COMMTIMEOUTS) As Long Declare Function TransmitCommChar Lib "kernel32" Alias "TransmitCommChar" (ByVal nCid As Long, ByVal cChar As Byte) As Long Declare Function SetCommBreak Lib "kernel32" Alias "SetCommBreak" (ByVal nCid As Long) As Long Declare Function SetCommMask Lib "kernel32" Alias "SetCommMask" (ByVal hFile As Long, ByVal dwEvtMask As Long) As Long Declare Function ClearCommBreak Lib "kernel32" Alias "ClearCommBreak" (ByVal nCid As Long) As Long Declare Function ClearCommError Lib "kernel32" Alias "ClearCommError" (ByVal hFile As Long, lpErrors As Long, lpStat As COMSTAT) As Long Declare Function SetupComm Lib "kernel32" Alias "SetupComm" (ByVal hFile As Long, ByVal dwInQueue As Long, ByVal dwOutQueue As Long) As Long Declare Function EscapeCommFunction Lib "kernel32" Alias "EscapeCommFunction" (ByVal nCid As Long, ByVal nFunc As Long) As Long Declare Function GetCommMask Lib "kernel32" Alias "GetCommMask" (ByVal hFile As Long, lpEvtMask As Long) As Long Declare Function GetCommProperties Lib "kernel32" Alias "GetCommProperties" (ByVal hFile As Long, lpCommProp As COMMPROP) As Long Declare Function GetCommModemStatus Lib "kernel32" Alias "GetCommModemStatus" (ByVal hFile As Long, lpModemStat As Long) As Long Declare Function WaitCommEvent Lib "kernel32" Alias "WaitCommEvent" (ByVal hFile As Long, lpEvtMask As Long, lpOverlapped As OVERLAPPED) As Long Declare Function SetTapePosition Lib "kernel32" Alias "SetTapePosition" (ByVal hDevice As Long, ByVal dwPositionMethod As Long, ByVal dwPartition As Long, ByVal dwOffsetLow As Long, ByVal dwOffsetHigh As Long, ByVal bimmediate As Long) As Long Declare Function GetTapePosition Lib "kernel32" Alias "GetTapePosition" (ByVal hDevice As Long, ByVal dwPositionType As Long, lpdwPartition As Long, lpdwOffsetLow As Long, lpdwOffsetHigh As Long) As Long Declare Function PrepareTape Lib "kernel32" Alias "PrepareTape" (ByVal hDevice As Long, ByVal dwOperation As Long, ByVal bimmediate As Long) As Long Declare Function EraseTape Lib "kernel32" Alias "EraseTape" (ByVal hDevice As Long, ByVal dwEraseType As Long, ByVal bimmediate As Long) As Long Declare Function CreateTapePartition Lib "kernel32" Alias "CreateTapePartition" (ByVal hDevice As Long, ByVal dwPartitionMethod As Long, ByVal dwCount As Long, ByVal dwSize As Long) As Long Declare Function WriteTapemark Lib "kernel32" Alias "WriteTapemark" (ByVal hDevice As Long, ByVal dwTapemarkType As Long, ByVal dwTapemarkCount As Long, ByVal bimmediate As Long) As Long Declare Function GetTapeStatus Lib "kernel32" Alias "GetTapeStatus" (ByVal hDevice As Long) As Long Declare Function GetTapeParameters Lib "kernel32" Alias "GetTapeParameters" (ByVal hDevice As Long, ByVal dwOperation As Long, lpdwSize As Long, lpTapeInformation As Any) As Long Const GET_TAPE_MEDIA_INFORMATION = 0 Const GET_TAPE_DRIVE_INFORMATION = 1 Declare Function SetTapeParameters Lib "kernel32" Alias "SetTapeParameters" (ByVal hDevice As Long, ByVal dwOperation As Long, lpTapeInformation As Any) As Long Const SET_TAPE_MEDIA_INFORMATION = 0 Const SET_TAPE_DRIVE_INFORMATION = 1 Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long Declare Function MulDiv Lib "kernel32" Alias "MulDiv" (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long Declare Sub GetSystemTime Lib "kernel32" Alias "GetSystemTime" (lpSystemTime As SYSTEMTIME) Declare Function SetSystemTime Lib "kernel32" Alias "SetSystemTime" (lpSystemTime As SYSTEMTIME) As Long Declare Sub GetLocalTime Lib "kernel32" Alias "GetLocalTime" (lpSystemTime As SYSTEMTIME) Declare Function SetLocalTime Lib "kernel32" Alias "SetLocalTime" (lpSystemTime As SYSTEMTIME) As Long Declare Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO) Type TIME_ZONE_INFORMATION Bias As Long StandardName(32) As Integer StandardDate As SYSTEMTIME StandardBias As Long DaylightName(32) As Integer DaylightDate As SYSTEMTIME DaylightBias As Long End Type Declare Function GetTimeZoneInformation Lib "kernel32" Alias "GetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long Declare Function SetTimeZoneInformation Lib "kernel32" Alias "SetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long ' Rutinas para convertir desde y hacia ' la hora del sistema y la hora del archivo Declare Function SystemTimeToFileTime Lib "kernel32" Alias "SystemTimeToFileTime" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long Declare Function FileTimeToLocalFileTime Lib "kernel32" Alias "FileTimeToLocalFileTime" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long Declare Function LocalFileTimeToFileTime Lib "kernel32" Alias "LocalFileTimeToFileTime" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long Declare Function FileTimeToSystemTime Lib "kernel32" Alias "FileTimeToSystemTime" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long Declare Function CompareFileTime Lib "kernel32" Alias "CompareFileTime" (lpFileTime1 As FILETIME, lpFileTime2 As FILETIME) As Long Declare Function FileTimeToDosDateTime Lib "kernel32" Alias "FileTimeToDosDateTime" (lpFileTime As FILETIME, ByVal lpFatDate As Long, ByVal lpFatTime As Long) As Long Declare Function DosDateTimeToFileTime Lib "kernel32" Alias "DosDateTimeToFileTime" (ByVal wFatDate As Long, ByVal wFatTime As Long, lpFileTime As FILETIME) As Long Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100 Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200 Const FORMAT_MESSAGE_FROM_STRING = &H400 Const FORMAT_MESSAGE_FROM_HMODULE = &H800 Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000 Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H2000 Const FORMAT_MESSAGE_MAX_WIDTH_MASK = &HFF Declare Function CreatePipe Lib "kernel32" Alias "CreatePipe" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long Declare Function ConnectNamedPipe Lib "kernel32" Alias "ConnectNamedPipe" (ByVal hNamedPipe As Long, lpOverlapped As OVERLAPPED) As Long Declare Function DisconnectNamedPipe Lib "kernel32" Alias "DisconnectNamedPipe" (ByVal hNamedPipe As Long) As Long Declare Function SetNamedPipeHandleState Lib "kernel32" Alias "SetNamedPipeHandleState" (ByVal hNamedPipe As Long, lpMode As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long) As Long Declare Function GetNamedPipeInfo Lib "kernel32" Alias "GetNamedPipeInfo" (ByVal hNamedPipe As Long, lpFlags As Long, lpOutBufferSize As Long, lpInBufferSize As Long, lpMaxInstances As Long) As Long Declare Function PeekNamedPipe Lib "kernel32" Alias "PeekNamedPipe" (ByVal hNamedPipe As Long, lpBuffer As Any, ByVal nBufferSize As Long, lpBytesRead As Long, lpTotalBytesAvail As Long, lpBytesLeftThisMessage As Long) As Long Declare Function TransactNamedPipe Lib "kernel32" Alias "TransactNamedPipe" (ByVal hNamedPipe As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesRead As Long, lpOverlapped As OVERLAPPED) As Long Declare Function CreateMailslot Lib "kernel32" Alias "CreateMailslotA" (ByVal lpName As String, ByVal nMaxMessageSize As Long, ByVal lReadTimeout As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long Declare Function GetMailslotInfo Lib "kernel32" Alias "GetMailslotInfo" (ByVal hMailslot As Long, lpMaxMessageSize As Long, lpNextSize As Long, lpMessageCount As Long, lpReadTimeout As Long) As Long Declare Function SetMailslotInfo Lib "kernel32" Alias "SetMailslotInfo" (ByVal hMailslot As Long, ByVal lReadTimeout As Long) As Long Declare Function MapViewOfFile Lib "kernel32" Alias "MapViewOfFile" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long Declare Function FlushViewOfFile Lib "kernel32" Alias "FlushViewOfFile" (lpBaseAddress As Any, ByVal dwNumberOfBytesToFlush As Long) As Long Declare Function UnmapViewOfFile Lib "kernel32" Alias "UnmapViewOfFile" (lpBaseAddress As Any) As Long Declare Function lstrcmp Lib "kernel32" Alias "lstrcmpA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long Declare Function lcreat Lib "kernel32" Alias "_lcreat" (ByVal lpPathName As String, ByVal iAttribute As Long) As Long Declare Function llseek Lib "kernel32" Alias "_llseek" (ByVal hFile As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long Declare Function lread Lib "kernel32" Alias "_lread" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long Declare Function lwrite Lib "kernel32" Alias "_lwrite" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal wBytes As Long) As Long Declare Function hread Lib "kernel32" Alias "_hread" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long Declare Function hwrite Lib "kernel32" Alias "_hwrite" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal lBytes As Long) As Long Declare Function TlsAlloc Lib "kernel32" Alias "TlsAlloc" () As Long Const TLS_OUT_OF_INDEXES = &HFFFF Declare Function TlsGetValue Lib "kernel32" Alias "TlsGetValue" (ByVal dwTlsIndex As Long) As Long Declare Function TlsSetValue Lib "kernel32" Alias "TlsSetValue" (ByVal dwTlsIndex As Long, lpTlsValue As Any) As Long Declare Function TlsFree Lib "kernel32" Alias "TlsFree" (ByVal dwTlsIndex As Long) As Long Declare Function SleepEx Lib "kernel32" Alias "SleepEx" (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long Declare Function WaitForSingleObjectEx Lib "kernel32" Alias "WaitForSingleObjectEx" (ByVal hHandle As Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long Declare Function WaitForMultipleObjectsEx Lib "kernel32" Alias "WaitForMultipleObjectsEx" (ByVal nCount As Long, lpHandles As Long, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long Declare Function BackupRead Lib "kernel32" Alias "BackupRead" (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, lpContext As Any) As Long Declare Function BackupSeek Lib "kernel32" Alias "BackupSeek" (ByVal hFile As Long, ByVal dwLowBytesToSeek As Long, ByVal dwHighBytesToSeek As Long, lpdwLowByteSeeked As Long, lpdwHighByteSeeked As Long, lpContext As Long) As Long Declare Function BackupWrite Lib "kernel32" Alias "BackupWrite" (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, lpContext As Long) As Long ' Tipo de Id. de Stream Type WIN32_STREAM_ID dwStreamID As Long dwStreamAttributes As Long dwStreamSizeLow As Long dwStreamSizeHigh As Long dwStreamNameSize As Long cStreamName As Byte End Type ' Identificadores de Stream Const BACKUP_DATA = &H1 Const BACKUP_EA_DATA = &H2 Const BACKUP_SECURITY_DATA = &H3 Const BACKUP_ALTERNATE_DATA = &H4 Const BACKUP_LINK = &H5 ' Atributos de Stream Const STREAM_MODIFIED_WHEN_READ = &H1 Const STREAM_CONTAINS_SECURITY = &H2 ' Bajo esta línea está la API de modo dual. También se incluyen los tipos de modo dual. Const STARTF_USESHOWWINDOW = &H1 Const STARTF_USESIZE = &H2 Const STARTF_USEPOSITION = &H4 Const STARTF_USECOUNTCHARS = &H8 Const STARTF_USEFILLATTRIBUTE = &H10 Const STARTF_RUNFULLSCREEN = &H20 ' se ignora para plataformas que no sean x86 Const STARTF_FORCEONFEEDBACK = &H40 Const STARTF_FORCEOFFFEEDBACK = &H80 Const STARTF_USESTDHANDLES = &H100 Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type Const SHUTDOWN_NORETRY = &H1 Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As Long Declare Function OpenMutex Lib "kernel32" Alias "OpenMutexA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As SECURITY_ATTRIBUTES, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Declare Function OpenEvent Lib "kernel32" Alias "OpenEventA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long Declare Function CreateSemaphore Lib "kernel32" Alias "CreateSemaphoreA" (lpSemaphoreAttributes As SECURITY_ATTRIBUTES, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As String) As Long Declare Function OpenSemaphore Lib "kernel32" Alias "OpenSemaphoreA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long Declare Function OpenFileMapping Lib "kernel32" Alias "OpenFileMappingA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Declare Function IsBadReadPtr Lib "kernel32" Alias "IsBadReadPtr" (lp As Any, ByVal ucb As Long) As Long Declare Function IsBadWritePtr Lib "kernel32" Alias "IsBadWritePtr" (lp As Any, ByVal ucb As Long) As Long Declare Function IsBadStringPtr Lib "kernel32" Alias "IsBadStringPtrA" (ByVal lpsz As String, ByVal ucchMax As Long) As Long Declare Function IsBadHugeReadPtr Lib "kernel32" Alias "IsBadHugeReadPtr" (lp As Any, ByVal ucb As Long) As Long Declare Function IsBadHugeWritePtr Lib "kernel32" Alias "IsBadHugeWritePtr" (lp As Any, ByVal ucb As Long) As Long Declare Function LookupAccountSid Lib "advapi32.dll" Alias "LookupAccountSidA" (ByVal lpSystemName As String, Sid As Any, ByVal name As String, cbName As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Integer) As Long Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (ByVal lpSystemName As String, ByVal lpAccountName As String, Sid As Long, cbSid As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Integer) As Long Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LARGE_INTEGER) As Long Declare Function LookupPrivilegeName Lib "advapi32.dll" Alias "LookupPrivilegeNameA" (ByVal lpSystemName As String, lpLuid As LARGE_INTEGER, ByVal lpName As String, cbName As Long) As Long Declare Function LookupPrivilegeDisplayName Lib "advapi32.dll" Alias "LookupPrivilegeDisplayNameA" (ByVal lpSystemName As String, ByVal lpName As String, ByVal lpDisplayName As String, cbDisplayName As Long, lpLanguageID As Long) As Long Declare Function AllocateLocallyUniqueId Lib "advapi32.dll" Alias "AllocateLocallyUniqueId" (Luid As LARGE_INTEGER) As Long Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long ' API de contador de rendimiento Declare Function QueryPerformanceCounter Lib "kernel32" Alias "QueryPerformanceCounter" (lpPerformanceCount As LARGE_INTEGER) As Long Declare Function QueryPerformanceFrequency Lib "kernel32" Alias "QueryPerformanceFrequency" (lpFrequency As LARGE_INTEGER) As Long ' Códigos de terminación anormal Const TC_NORMAL = 0 Const TC_HARDERR = 1 Const TC_GP_TRAP = 2 Const TC_SIGNAL = 3 ' Declaraciones de procedimiento, definiciones de constantes y ' macros para el componente NLS ' Máximos para longitud de cadena Const MAX_LEADBYTES = 12 ' 5 ranges, 2 bytes ea., 0 term. ' Indicadores de conversión de MBCS y Unicode. Const MB_PRECOMPOSED = &H1 ' usa caracteres precompuestos Const MB_COMPOSITE = &H2 ' usa caracteres compuestos Const MB_USEGLYPHCHARS = &H4 ' usa caracteres glyph, no caracteres CTRL Const WC_DEFAULTCHECK = &H100 ' comprueba el carácter predeterminado Const WC_COMPOSITECHECK = &H200 ' convierte el compuesto en precompuesto Const WC_DISCARDNS = &H10 ' descarta los caracteres sin espaciado Const WC_SEPCHARS = &H20 ' genera caracteres independientes Const WC_DEFAULTCHAR = &H40 ' sustituye con el carácter predeterminado ' Indicadores de tipo de carácter. Const CT_CTYPE1 = &H1 ' información de ctype 1 Const CT_CTYPE2 = &H2 ' información de ctype 2 Const CT_CTYPE3 = &H4 ' información de ctype 3 ' Bits indicadores de CType 1. Const C1_UPPER = &H1 ' mayúsculas Const C1_LOWER = &H2 ' minúsculas Const C1_DIGIT = &H4 ' dígitos decimales Const C1_SPACE = &H8 ' caracteres de espaciado Const C1_PUNCT = &H10 ' caracteres de puntuación Const C1_CNTRL = &H20 ' caracteres de control Const C1_BLANK = &H40 ' caracteres en blanco Const C1_XDIGIT = &H80 ' otros dígitos Const C1_ALPHA = &H100 ' cualquier letra ' Bits indicadores de CType 2. Const C2_LEFTTORIGHT = &H1 ' izquierda a derecha Const C2_RIGHTTOLEFT = &H2 ' derecha a izquierda Const C2_EUROPENUMBER = &H3 ' número, dígito europeo Const C2_EUROPESEPARATOR = &H4 ' separador numérico europeo Const C2_EUROPETERMINATOR = &H5 ' terminación numérica europea Const C2_ARABICNUMBER = &H6 ' número arábigo Const C2_COMMONSEPARATOR = &H7 ' separador numérico común Const C2_BLOCKSEPARATOR = &H8 ' separador de bloques Const C2_SEGMENTSEPARATOR = &H9 ' separador de segmentos Const C2_WHITESPACE = &HA ' espacio en blanco Const C2_OTHERNEUTRAL = &HB ' otros neutros Const C2_NOTAPPLICABLE = &H0 ' direccionalidad no implícita ' Bits indicadores de CType 3. Const C3_NONSPACING = &H1 ' carácter sin espaciado Const C3_DIACRITIC = &H2 ' marca diacrítica Const C3_VOWELMARK = &H4 ' marca de vocal Const C3_SYMBOL = &H8 ' símbolos Const C3_NOTAPPLICABLE = &H0 ' ctype 3 no es aplicable ' Indicadores de cadena. Const NORM_IGNORECASE = &H1 ' no distingue mayúsculas y minúsculas Const NORM_IGNORENONSPACE = &H2 ' pasa por alto los caracteres sin espaciado Const NORM_IGNORESYMBOLS = &H4 ' pasa por alto los símbolos ' Indicadores de asignación independientes de la configuración regional. Const MAP_FOLDCZONE = &H10 ' dobla los caracteres de zona de compatibilidad Const MAP_PRECOMPOSED = &H20 ' convierte a caracteres precompuestos Const MAP_COMPOSITE = &H40 ' convierte a caracteres compuestos Const MAP_FOLDDIGITS = &H80 ' convierte todos los dígitos a ASCII 0-9 ' Indicadores de asignación dependientes de la configuración regional. Const LCMAP_LOWERCASE = &H100 ' letras minúsculas Const LCMAP_UPPERCASE = &H200 ' letras mayúsculas Const LCMAP_SORTKEY = &H400 ' criterio de orden WC (normalizar) Const LCMAP_BYTEREV = &H800 ' inversión de bytes ' Indicadores de clasificación. Const SORT_STRINGSORT = &H1000 ' usa el método de orden cadena ' Valores predeterminados de la página de códigos. Const CP_ACP = 0 ' predetermina la página de códigos ANSI Const CP_OEMCP = 1 ' predetermina la página de códigos OEM ' Códigos de país. Const CTRY_DEFAULT = 0 Const CTRY_AUSTRALIA = 61 ' Australia Const CTRY_AUSTRIA = 43 ' Austria Const CTRY_BELGIUM = 32 ' Bélgica Const CTRY_BRAZIL = 55 ' Brasil Const CTRY_CANADA = 2 ' Canadá Const CTRY_DENMARK = 45 ' Dinamarca Const CTRY_FINLAND = 358 ' Finlandia Const CTRY_FRANCE = 33 ' Francia Const CTRY_GERMANY = 49 ' Alemania Const CTRY_ICELAND = 354 ' Islandia Const CTRY_IRELAND = 353 ' Irlanda Const CTRY_ITALY = 39 ' Italia Const CTRY_JAPAN = 81 ' Japón Const CTRY_MEXICO = 52 ' México Const CTRY_NETHERLANDS = 31 ' Países Bajos Const CTRY_NEW_ZEALAND = 64 ' Nueva Zelanda Const CTRY_NORWAY = 47 ' Noruega Const CTRY_PORTUGAL = 351 ' Portugal Const CTRY_PRCHINA = 86 ' República Popular de China Const CTRY_SOUTH_KOREA = 82 ' Corea del Sur Const CTRY_SPAIN = 34 ' España Const CTRY_SWEDEN = 46 ' Suecia Const CTRY_SWITZERLAND = 41 ' Suiza Const CTRY_TAIWAN = 886 ' Taiwan Const CTRY_UNITED_KINGDOM = 44 ' Reino Unido Const CTRY_UNITED_STATES = 1 ' Estados Unidos ' Tipos de configuración regional. ' Estos tipos se usan para la rutina de la API de NLS GetLocaleInfoW. ' LOCALE_NOUSEROVERRIDE se usa también en GetTimeFormatW y GetDateFormatW. Const LOCALE_NOUSEROVERRIDE = &H80000000 ' no usa sustituciones del usuario Const LOCALE_ILANGUAGE = &H1 ' Id. de idioma Const LOCALE_SLANGUAGE = &H2 ' nombre traducido del idioma Const LOCALE_SENGLANGUAGE = &H1001 ' nombre del idioma en inglés Const LOCALE_SABBREVLANGNAME = &H3 ' nombre del idioma abreviado Const LOCALE_SNATIVELANGNAME = &H4 ' nombre nativo del idioma Const LOCALE_ICOUNTRY = &H5 ' código del país Const LOCALE_SCOUNTRY = &H6 ' nombre traducido del país Const LOCALE_SENGCOUNTRY = &H1002 ' nombre del país en inglés Const LOCALE_SABBREVCTRYNAME = &H7 ' nombre abreviado del país Const LOCALE_SNATIVECTRYNAME = &H8 ' nombre nativo del país Const LOCALE_IDEFAULTLANGUAGE = &H9 ' Id. predeterminado del idioma Const LOCALE_IDEFAULTCOUNTRY = &HA ' código predeterminado del país Const LOCALE_IDEFAULTCODEPAGE = &HB ' página de códigos predeterminada Const LOCALE_SLIST = &HC ' separador de elementos de lista Const LOCALE_IMEASURE = &HD ' 0 = métrico, 1 = EE.UU. Const LOCALE_SDECIMAL = &HE ' separador de decimales Const LOCALE_STHOUSAND = &HF ' separador de miles Const LOCALE_SGROUPING = &H10 ' agrupación de dígitos Const LOCALE_IDIGITS = &H11 ' número de dígitos fraccionarios Const LOCALE_ILZERO = &H12 ' número de ceros iniciales de decimales Const LOCALE_SNATIVEDIGITS = &H13 ' ASCII 0-9 nativo Const LOCALE_SCURRENCY = &H14 ' símbolo de moneda local Const LOCALE_SINTLSYMBOL = &H15 ' símbolo de moneda internacional Const LOCALE_SMONDECIMALSEP = &H16 ' separador de decimales en moneda Const LOCALE_SMONTHOUSANDSEP = &H17 ' separador de miles en moneda Const LOCALE_SMONGROUPING = &H18 ' agrupación de moneda Const LOCALE_ICURRDIGITS = &H19 ' número de dígitos de la moneda local Const LOCALE_IINTLCURRDIGITS = &H1A ' nº de dígitos de la moneda internacional Const LOCALE_ICURRENCY = &H1B ' modo de moneda positiva Const LOCALE_INEGCURR = &H1C ' modo de moneda negativa Const LOCALE_SDATE = &H1D ' separador de fecha Const LOCALE_STIME = &H1E ' separador de hora Const LOCALE_SSHORTDATE = &H1F ' cadena de formato de fecha corta Const LOCALE_SLONGDATE = &H20 ' cadena de formato de fecha larga Const LOCALE_STIMEFORMAT = &H1003 ' cadena de formato de hora Const LOCALE_IDATE = &H21 ' orden del formato de fecha corta Const LOCALE_ILDATE = &H22 ' orden del formato de fecha larga Const LOCALE_ITIME = &H23 ' especificador de formato de hora Const LOCALE_ICENTURY = &H24 ' especificador de formato de siglo Const LOCALE_ITLZERO = &H25 ' número de ceros iniciales en el campo hora Const LOCALE_IDAYLZERO = &H26 ' número de ceros iniciales en el campo día Const LOCALE_IMONLZERO = &H27 ' número de ceros iniciales en el campo mes Const LOCALE_S1159 = &H28 ' designador de AM Const LOCALE_S2359 = &H29 ' designador de PM Const LOCALE_SDAYNAME1 = &H2A ' nombre largo para Lunes Const LOCALE_SDAYNAME2 = &H2B ' nombre largo para Martes Const LOCALE_SDAYNAME3 = &H2C ' nombre largo para Miércoles Const LOCALE_SDAYNAME4 = &H2D ' nombre largo para Jueves Const LOCALE_SDAYNAME5 = &H2E ' nombre largo para Viernes Const LOCALE_SDAYNAME6 = &H2F ' nombre largo para Sábado Const LOCALE_SDAYNAME7 = &H30 ' nombre largo para Domingo Const LOCALE_SABBREVDAYNAME1 = &H31 ' nombre abreviado para Lunes Const LOCALE_SABBREVDAYNAME2 = &H32 ' nombre abreviado para Martes Const LOCALE_SABBREVDAYNAME3 = &H33 ' nombre abreviado para Miércoles Const LOCALE_SABBREVDAYNAME4 = &H34 ' nombre abreviado para Jueves Const LOCALE_SABBREVDAYNAME5 = &H35 ' nombre abreviado para Viernes Const LOCALE_SABBREVDAYNAME6 = &H36 ' nombre abreviado para Sábado Const LOCALE_SABBREVDAYNAME7 = &H37 ' nombre abreviado para Domingo Const LOCALE_SMONTHNAME1 = &H38 ' nombre largo para Enero Const LOCALE_SMONTHNAME2 = &H39 ' nombre largo para Febrero Const LOCALE_SMONTHNAME3 = &H3A ' nombre largo para Marzo Const LOCALE_SMONTHNAME4 = &H3B ' nombre largo para Abril Const LOCALE_SMONTHNAME5 = &H3C ' nombre largo para Mayo Const LOCALE_SMONTHNAME6 = &H3D ' nombre largo para Junio Const LOCALE_SMONTHNAME7 = &H3E ' nombre largo para Julio Const LOCALE_SMONTHNAME8 = &H3F ' nombre largo para Agosto Const LOCALE_SMONTHNAME9 = &H40 ' nombre largo para Septiembre Const LOCALE_SMONTHNAME10 = &H41 ' nombre largo para Octubre Const LOCALE_SMONTHNAME11 = &H42 ' nombre largo para Noviembre Const LOCALE_SMONTHNAME12 = &H43 ' nombre largo para Diciembre Const LOCALE_SABBREVMONTHNAME1 = &H44 ' nombre abreviado para Enero Const LOCALE_SABBREVMONTHNAME2 = &H45 ' nombre abreviado para Febrero Const LOCALE_SABBREVMONTHNAME3 = &H46 ' nombre abreviado para Marzo Const LOCALE_SABBREVMONTHNAME4 = &H47 ' nombre abreviado para Abril Const LOCALE_SABBREVMONTHNAME5 = &H48 ' nombre abreviado para Mayo Const LOCALE_SABBREVMONTHNAME6 = &H49 ' nombre abreviado para Junio Const LOCALE_SABBREVMONTHNAME7 = &H4A ' nombre abreviado para Julio Const LOCALE_SABBREVMONTHNAME8 = &H4B ' nombre abreviado para Agosto Const LOCALE_SABBREVMONTHNAME9 = &H4C ' nombre abreviado para Septiembre Const LOCALE_SABBREVMONTHNAME10 = &H4D ' nombre abreviado para Octubre Const LOCALE_SABBREVMONTHNAME11 = &H4E ' nombre abreviado para Noviembre Const LOCALE_SABBREVMONTHNAME12 = &H4F ' nombre abreviado para Diciembre Const LOCALE_SABBREVMONTHNAME13 = &H100F Const LOCALE_SPOSITIVESIGN = &H50 ' signo positivo Const LOCALE_SNEGATIVESIGN = &H51 ' signo negativo Const LOCALE_IPOSSIGNPOSN = &H52 ' posición del signo positivo Const LOCALE_INEGSIGNPOSN = &H53 ' posición del signo negativo Const LOCALE_IPOSSYMPRECEDES = &H54 ' símbolo de moneda precede a cantidad positiva Const LOCALE_IPOSSEPBYSPACE = &H55 ' símbolo de moneda separado por un espacio de cantidad positiva Const LOCALE_INEGSYMPRECEDES = &H56 ' símbolo de moneda precede a cantidad negativa Const LOCALE_INEGSEPBYSPACE = &H57 ' símbolo de moneda separado por un espacio de cantidad negativa ' Indicadores de hora para GetTimeFormatW. Const TIME_NOMINUTESORSECONDS = &H1 ' no usa minutos ni segundos Const TIME_NOSECONDS = &H2 ' no usa segundos Const TIME_NOTIMEMARKER = &H4 ' no usa un marcador de hora Const TIME_FORCE24HOURFORMAT = &H8 ' usa siempre el formato de 24 horas ' Indicadores de fecha para GetDateFormatW. Const DATE_SHORTDATE = &H1 ' usa imagen de fecha corta Const DATE_LONGDATE = &H2 ' usa imagen de fecha larga ' API dependientes de la página de códigos Declare Function IsValidCodePage Lib "kernel32" Alias "IsValidCodePage" (ByVal CodePage As Long) As Long Declare Function GetACP Lib "kernel32" Alias "GetACP" () As Long Declare Function GetOEMCP Lib "kernel32" Alias "GetOEMCP" () As Long Declare Function GetCPInfo Lib "kernel32" Alias "GetCPInfo" (ByVal CodePage As Long, lpCPInfo As CPINFO) As Long Declare Function IsDBCSLeadByte Lib "kernel32" Alias "IsDBCSLeadByte" (ByVal bTestChar As Byte) As Long Declare Function MultiByteToWideChar Lib "kernel32" Alias "MultiByteToWideChar" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long) As Long Declare Function WideCharToMultiByte Lib "kernel32" Alias "WideCharToMultiByte" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long ' API dependientes de la configuración regional Declare Function CompareString Lib "kernel32" Alias "CompareStringA" (ByVal Locale As Long, ByVal dwCmpFlags As Long, ByVal lpString1 As String, ByVal cchCount1 As Long, ByVal lpString2 As String, ByVal cchCount2 As Long) As Long Declare Function LCMapString Lib "kernel32" Alias "LCMapStringA" (ByVal Locale As Long, ByVal dwMapFlags As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, ByVal lpDestStr As String, ByVal cchDest As Long) As Long Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long Declare Function GetTimeFormat Lib "kernel32" Alias "GetTimeFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpTime As SYSTEMTIME, ByVal lpFormat As String, ByVal lpTimeStr As String, ByVal cchTime As Long) As Long Declare Function GetDateFormat Lib "kernel32" Alias "GetDateFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpDate As SYSTEMTIME, ByVal lpFormat As String, ByVal lpDateStr As String, ByVal cchDate As Long) As Long Declare Function SetThreadLocale Lib "kernel32" Alias "SetThreadLocale" (ByVal Locale As Long) As Long Declare Function GetSystemDefaultLangID Lib "kernel32" Alias "GetSystemDefaultLangID" () As Integer Declare Function GetUserDefaultLangID Lib "kernel32" Alias "GetUserDefaultLangID" () As Integer Declare Function GetSystemDefaultLCID Lib "kernel32" Alias "GetSystemDefaultLCID" () As Long Declare Function GetUserDefaultLCID Lib "kernel32" Alias "GetUserDefaultLCID" () As Long ' API independientes de la configuración regional Declare Function GetStringTypeA Lib "kernel32" Alias "GetStringTypeA" (ByVal lcid As Long, ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Long) As Long Declare Function FoldString Lib "kernel32" Alias "FoldStringA" (ByVal dwMapFlags As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, ByVal lpDestStr As String, ByVal cchDest As Long) As Long ' ************************************************************************* ' * * ' * winnls.h -- Declaraciones, definiciones de constantes y macros del * ' * procedimiento NLS * ' * * ' * Copyright (c) 1991-1995, Microsoft Corp. Reservados todos los derechos. * ' * * ' **************************************************************************/ ' * Tipos de calendario. ' * ' * Estos tipos se usan para la rutina de la API de NLS GetALTCalendarInfoW. ' */ Const MAX_DEFAULTCHAR = 2 Const CAL_ICALINTVALUE = &H1 ' tipo de calendario Const CAL_SCALNAME = &H2 ' nombre nativo para calendario Const CAL_IYEAROFFSETRANGE = &H3 ' año en que comienzan las eras Const CAL_SERASTRING = &H4 ' nombre de era para IYearOffsetRanges Const CAL_SSHORTDATE = &H5 ' cadena de formato de fecha en enteros Const CAL_SLONGDATE = &H6 ' cadena de formato de fecha larga Const CAL_SDAYNAME1 = &H7 ' nombre nativo para Lunes Const CAL_SDAYNAME2 = &H8 ' nombre nativo para Martes Const CAL_SDAYNAME3 = &H9 ' nombre nativo para Miércoles Const CAL_SDAYNAME4 = &HA ' nombre nativo para Jueves Const CAL_SDAYNAME5 = &HB ' nombre nativo para Viernes Const CAL_SDAYNAME6 = &HC ' nombre nativo para Sábado Const CAL_SDAYNAME7 = &HD ' nombre nativo para Domingo Const CAL_SABBREVDAYNAME1 = &HE ' nombre abreviado para Lunes Const CAL_SABBREVDAYNAME2 = &HF ' nombre abreviado para Martes Const CAL_SABBREVDAYNAME3 = &H10 ' nombre abreviado para Miércoles Const CAL_SABBREVDAYNAME4 = &H11 ' nombre abreviado para Jueves Const CAL_SABBREVDAYNAME5 = &H12 ' nombre abreviado para Viernes Const CAL_SABBREVDAYNAME6 = &H13 ' nombre abreviado para Sábado Const CAL_SABBREVDAYNAME7 = &H14 ' nombre abreviado para Domingo Const CAL_SMONTHNAME1 = &H15 ' nombre nativo para Enero Const CAL_SMONTHNAME2 = &H16 ' nombre nativo para Febrero Const CAL_SMONTHNAME3 = &H17 ' nombre nativo para Marzo Const CAL_SMONTHNAME4 = &H18 ' nombre nativo para Abril Const CAL_SMONTHNAME5 = &H19 ' nombre nativo para Mayo Const CAL_SMONTHNAME6 = &H1A ' nombre nativo para Junio Const CAL_SMONTHNAME7 = &H1B ' nombre nativo para Julio Const CAL_SMONTHNAME8 = &H1C ' nombre nativo para Agosto Const CAL_SMONTHNAME9 = &H1D ' nombre nativo para Septiembre Const CAL_SMONTHNAME10 = &H1E ' nombre nativo para Octubre Const CAL_SMONTHNAME11 = &H1F ' nombre nativo para Noviembre Const CAL_SMONTHNAME12 = &H20 ' nombre nativo para Diciembre Const CAL_SMONTHNAME13 = &H21 ' nombre nativo para el 13º mes (si hay) Const CAL_SABBREVMONTHNAME1 = &H22 ' nombre abreviado para Enero Const CAL_SABBREVMONTHNAME2 = &H23 ' nombre abreviado para Febrero Const CAL_SABBREVMONTHNAME3 = &H24 ' nombre abreviado para Marzo Const CAL_SABBREVMONTHNAME4 = &H25 ' nombre abreviado para Abril Const CAL_SABBREVMONTHNAME5 = &H26 ' nombre abreviado para Mayo Const CAL_SABBREVMONTHNAME6 = &H27 ' nombre abreviado para Junio Const CAL_SABBREVMONTHNAME7 = &H28 ' nombre abreviado para Julio Const CAL_SABBREVMONTHNAME8 = &H29 ' nombre abreviado para Agosto Const CAL_SABBREVMONTHNAME9 = &H2A ' nombre abreviado para Septiembre Const CAL_SABBREVMONTHNAME10 = &H2B ' nombre abreviado para Octubre Const CAL_SABBREVMONTHNAME11 = &H2C ' nombre abreviado para Noviembre Const CAL_SABBREVMONTHNAME12 = &H2D ' nombre abreviado para Diciembre Const CAL_SABBREVMONTHNAME13 = &H2E ' nombre abreviado para el 13º mes (si hay) ' ' * Valor de enumeración del calendario. ' */ Const ENUM_ALL_CALENDARS = &HFFFF ' enumera todos los calendarios ' ' * Valores de Id. del calendario. ' */ Const CAL_GREGORIAN = 1 ' calendario gregoriano (traducido) Const CAL_GREGORIAN_US = 2 ' calendario gregoriano (EE.UU.) Const CAL_JAPAN = 3 ' calendario japonés de la era imperial Const CAL_TAIWAN = 4 ' calendario de la era de la República China Const CAL_KOREA = 5 ' calendario coreano de la era Tangun ' *************************************************************************** Typedefs ' * ' * Defina aquí todos los tipos para el componente NLS. ' \***************************************************************************/ ' ' * Información de CP. ' */ Type CPINFO MaxCharSize As Long ' longitud máxima (en bytes) de un carácter DefaultChar(MAX_DEFAULTCHAR) As Byte ' carácter predeterminado LeadByte(MAX_LEADBYTES) As Byte ' intervalos de bit inicial End Type Type NUMBERFMT NumDigits As Long ' número de dígitos decimales LeadingZero As Long ' si hay ceros iniciales en los campos decimales Grouping As Long ' tamaño del grupo a la izquierda del decimal lpDecimalSep As String ' puntero a la cadena del separador de decimales lpThousandSep As String ' puntero a la cadena del separador de miles NegativeOrder As Long ' orden de números negativos End Type ' ' * Formato de moneda. ' */ Type CURRENCYFMT NumDigits As Long ' número de dígitos decimales LeadingZero As Long ' si hay cero inicial en los campos decimales Grouping As Long ' tamaño del grupo a la izquierda del decimal lpDecimalSep As String ' puntero a la cadena del separador de decimales lpThousandSep As String ' puntero a la cadena del separador de miles NegativeOrder As Long ' orden de moneda negativa PositiveOrder As Long ' orden de moneda positiva lpCurrencySymbol As String ' puntero a la cadena de símbolo de moneda End Type Declare Function EnumTimeFormats Lib "KERNEL32" Alias "EnumTimeFormats" (ByVal lpTimeFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long Declare Function EnumDateFormats Lib "KERNEL32" Alias "EnumDateFormats" (ByVal lpDateFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long Declare Function IsValidLocale Lib "KERNEL32" Alias "IsValidLocale" (ByVal Locale As Long, ByVal dwFlags As Long) As Long Declare Function ConvertDefaultLocale Lib "KERNEL32" Alias "ConvertDefaultLocale" (ByVal Locale As Long) As Long Declare Function GetThreadLocale Lib "KERNEL32" Alias "GetThreadLocale" () As Long Declare Function EnumSystemLocales Lib "KERNEL32" Alias "EnumSystemLocales" (ByVal lpLocaleEnumProc As Long, ByVal dwFlags As Long) As Long Declare Function EnumSystemCodePages Lib "KERNEL32" Alias "EnumSystemCodePages" (ByVal lpCodePageEnumProc As Long, ByVal dwFlags As Long) As Long ' La sección siguiente contiene las estructuras de datos, tipos de datos y ' procedimientos públicos que exporta el subsistema de consola NT. Type COORD x As Integer y As Integer End Type Type SMALL_RECT Left As Integer Top As Integer Right As Integer Bottom As Integer End Type Type KEY_EVENT_RECORD bKeyDown As Long wRepeatCount As Integer wVirtualKeyCode As Integer wVirtualScanCode As Integer uChar As Byte dwControlKeyState As Long End Type ' Indicadores de ControlKeyState Const RIGHT_ALT_PRESSED = &H1 ' está presionada la tecla ALT derecha. Const LEFT_ALT_PRESSED = &H2 ' está presionada la tecla ALT izquierda. Const RIGHT_CTRL_PRESSED = &H4 ' está presionada la tecla CTRL derecha. Const LEFT_CTRL_PRESSED = &H8 ' está presionada la tecla CTRL izquierda. Const SHIFT_PRESSED = &H10 ' está presionada la tecla MAYÚS. Const NUMLOCK_ON = &H20 ' la luz de BLOQ. NÚM. está encendida. Const SCROLLLOCK_ON = &H40 ' la luz de BLOQ. DESPL. está encendida. Const CAPSLOCK_ON = &H80 ' la luz de BLOQ. MAYÚS. está encendida. Const ENHANCED_KEY = &H100 ' la tecla está ampliada. Type MOUSE_EVENT_RECORD dwMousePosition As COORD dwButtonState As Long dwControlKeyState As Long dwEventFlags As Long End Type ' Indicadores de ButtonState Const FROM_LEFT_1ST_BUTTON_PRESSED = &H1 Const RIGHTMOST_BUTTON_PRESSED = &H2 Const FROM_LEFT_2ND_BUTTON_PRESSED = &H4 Const FROM_LEFT_3RD_BUTTON_PRESSED = &H8 Const FROM_LEFT_4TH_BUTTON_PRESSED = &H10 ' Indicadores de evento Const MOUSE_MOVED = &H1 Const DOUBLE_CLICK = &H2 Type WINDOW_BUFFER_SIZE_RECORD dwSize As COORD End Type Type MENU_EVENT_RECORD dwCommandId As Long End Type Type FOCUS_EVENT_RECORD bSetFocus As Long End Type ' Indicadores de EventType: Const KEY_EVENT = &H1 ' el evento contiene un registro de evento de tecla Const mouse_eventC = &H2 ' el evento contiene un registro de evento de mouse Const WINDOW_BUFFER_SIZE_EVENT = &H4 ' el evento contiene un registro de evento de cambio de ventana Const MENU_EVENT = &H8 ' el evento contiene un registro de evento de menú Const FOCUS_EVENT = &H10 ' el evento contiene un cambio de enfoque Type CHAR_INFO Char As Integer Attributes As Integer End Type ' Indicadores de atributos: Const FOREGROUND_BLUE = &H1 ' el color del texto contiene azul. Const FOREGROUND_GREEN = &H2 ' el color del texto contiene verde. Const FOREGROUND_RED = &H4 ' el color del texto contiene rojo. Const FOREGROUND_INTENSITY = &H8 ' el color del texto está intensificado. Const BACKGROUND_BLUE = &H10 ' el color del fondo contiene azul. Const BACKGROUND_GREEN = &H20 ' el color del fondo contiene verde. Const BACKGROUND_RED = &H40 ' el color del fondo contiene rojo. Const BACKGROUND_INTENSITY = &H80 ' el color del fondo está intensificado. Type CONSOLE_SCREEN_BUFFER_INFO dwSize As COORD dwCursorPosition As COORD wAttributes As Integer srWindow As SMALL_RECT dwMaximumWindowSize As COORD End Type Type CONSOLE_CURSOR_INFO dwSize As Long bVisible As Long End Type Const CTRL_C_EVENT = 0 Const CTRL_BREAK_EVENT = 1 Const CTRL_CLOSE_EVENT = 2 ' 3 está reservado ' 4 está reservado Const CTRL_LOGOFF_EVENT = 5 Const CTRL_SHUTDOWN_EVENT = 6 ' Indicadores de modo de entrada: Const ENABLE_PROCESSED_INPUT = &H1 Const ENABLE_LINE_INPUT = &H2 Const ENABLE_ECHO_INPUT = &H4 Const ENABLE_WINDOW_INPUT = &H8 Const ENABLE_MOUSE_INPUT = &H10 ' Indicadores de modo de salida: Const ENABLE_PROCESSED_OUTPUT = &H1 Const ENABLE_WRAP_AT_EOL_OUTPUT = &H2 Declare Function ReadConsoleOutput Lib "kernel32" Alias "ReadConsoleOutputA" (ByVal hConsoleOutput As Long, lpBuffer As CHAR_INFO, dwBufferSize As COORD, dwBufferCoord As COORD, lpReadRegion As SMALL_RECT) As Long Declare Function WriteConsoleOutput Lib "kernel32" Alias "WriteConsoleOutputA" (ByVal hConsoleOutput As Long, lpBuffer As CHAR_INFO, dwBufferSize As COORD, dwBufferCoord As COORD, lpWriteRegion As SMALL_RECT) As Long Declare Function ReadConsoleOutputCharacter Lib "kernel32" Alias "ReadConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal lpCharacter As String, ByVal nLength As Long, dwReadCoord As COORD, lpNumberOfCharsRead As Long) As Long Declare Function ReadConsoleOutputAttribute Lib "kernel32" Alias "ReadConsoleOutputAttribute" (ByVal hConsoleOutput As Long, lpAttribute As Long, ByVal nLength As Long, dwReadCoord As COORD, lpNumberOfAttrsRead As Long) As Long Declare Function WriteConsoleOutputCharacter Lib "kernel32" Alias "WriteConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal lpCharacter As String, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfCharsWritten As Long) As Long Declare Function WriteConsoleOutputAttribute Lib "kernel32" Alias "WriteConsoleOutputAttribute" (ByVal hConsoleOutput As Long, lpAttribute As Integer, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfAttrsWritten As Long) As Long Declare Function FillConsoleOutputCharacter Lib "kernel32" Alias "FillConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal cCharacter As Byte, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfCharsWritten As Long) As Long Declare Function FillConsoleOutputAttribute Lib "kernel32" Alias "FillConsoleOutputAttribute" (ByVal hConsoleOutput As Long, ByVal wAttribute As Long, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfAttrsWritten As Long) As Long Declare Function GetConsoleMode Lib "kernel32" Alias "GetConsoleMode" (ByVal hConsoleHandle As Long, lpMode As Long) As Long Declare Function GetNumberOfConsoleInputEvents Lib "kernel32" Alias "GetNumberOfConsoleInputEvents" (ByVal hConsoleInput As Long, lpNumberOfEvents As Long) As Long Declare Function GetConsoleScreenBufferInfo Lib "kernel32" Alias "GetConsoleScreenBufferInfo" (ByVal hConsoleOutput As Long, lpConsoleScreenBufferInfo As CONSOLE_SCREEN_BUFFER_INFO) As Long Declare Function GetLargestConsoleWindowSize Lib "kernel32" Alias "GetLargestConsoleWindowSize" (ByVal hConsoleOutput As Long) As COORD Declare Function GetConsoleCursorInfo Lib "kernel32" Alias "GetConsoleCursorInfo" (ByVal hConsoleOutput As Long, lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As Long Declare Function GetNumberOfConsoleMouseButtons Lib "kernel32" Alias "GetNumberOfConsoleMouseButtons" (lpNumberOfMouseButtons As Long) As Long Declare Function SetConsoleMode Lib "kernel32" Alias "SetConsoleMode" (ByVal hConsoleHandle As Long, ByVal dwMode As Long) As Long Declare Function SetConsoleActiveScreenBuffer Lib "kernel32" Alias "SetConsoleActiveScreenBuffer" (ByVal hConsoleOutput As Long) As Long Declare Function FlushConsoleInputBuffer Lib "kernel32" Alias "FlushConsoleInputBuffer" (ByVal hConsoleInput As Long) As Long Declare Function SetConsoleScreenBufferSize Lib "kernel32" Alias "SetConsoleScreenBufferSize" (ByVal hConsoleOutput As Long, dwSize As COORD) As Long Declare Function SetConsoleCursorPosition Lib "kernel32" Alias "SetConsoleCursorPosition" (ByVal hConsoleOutput As Long, dwCursorPosition As COORD) As Long Declare Function SetConsoleCursorInfo Lib "kernel32" Alias "SetConsoleCursorInfo" (ByVal hConsoleOutput As Long, lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As Long Declare Function ScrollConsoleScreenBuffer Lib "kernel32" Alias "ScrollConsoleScreenBufferA" (ByVal hConsoleOutput As Long, lpScrollRectangle As SMALL_RECT, lpClipRectangle As SMALL_RECT, dwDestinationOrigin As COORD, lpFill As CHAR_INFO) As Long Declare Function SetConsoleWindowInfo Lib "kernel32" Alias "SetConsoleWindowInfo" (ByVal hConsoleOutput As Long, ByVal bAbsolute As Long, lpConsoleWindow As SMALL_RECT) As Long Declare Function SetConsoleTextAttribute Lib "kernel32" Alias "SetConsoleTextAttribute" (ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long Declare Function SetConsoleCtrlHandler Lib "kernel32" Alias "SetConsoleCtrlHandler" (ByVal HandlerRoutine As Long, ByVal Add As Long) As Long Declare Function GenerateConsoleCtrlEvent Lib "kernel32" Alias "GenerateConsoleCtrlEvent" (ByVal dwCtrlEvent As Long, ByVal dwProcessGroupId As Long) As Long Declare Function AllocConsole Lib "kernel32" Alias "AllocConsole" () As Long Declare Function FreeConsole Lib "kernel32" Alias "FreeConsole" () As Long Declare Function GetConsoleTitle Lib "kernel32" Alias "GetConsoleTitleA" (ByVal lpConsoleTitle As String, ByVal nSize As Long) As Long Declare Function SetConsoleTitle Lib "kernel32" Alias "SetConsoleTitleA" (ByVal lpConsoleTitle As String) As Long Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" (ByVal hConsoleInput As Long, lpBuffer As Any, ByVal nNumberOfCharsToRead As Long, lpNumberOfCharsRead As Long, lpReserved As Any) As Long Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long Const CONSOLE_TEXTMODE_BUFFER = 1 Declare Function CreateConsoleScreenBuffer Lib "kernel32" Alias "CreateConsoleScreenBuffer" (ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwFlags As Long, lpScreenBufferData As Any) As Long Declare Function GetConsoleCP Lib "kernel32" Alias "GetConsoleCP" () As Long Declare Function SetConsoleCP Lib "kernel32" Alias "SetConsoleCP" (ByVal wCodePageID As Long) As Long Declare Function GetConsoleOutputCP Lib "kernel32" Alias "GetConsoleOutputCP" () As Long Declare Function SetConsoleOutputCP Lib "kernel32" Alias "SetConsoleOutputCP" (ByVal wCodePageID As Long) As Long ' --------------- ' Sección de GDI ' --------------- ' Operaciones del explorador binario Const R2_BLACK = 1 ' 0 Const R2_NOTMERGEPEN = 2 ' DPon Const R2_MASKNOTPEN = 3 ' DPna Const R2_NOTCOPYPEN = 4 ' PN Const R2_MASKPENNOT = 5 ' PDna Const R2_NOT = 6 ' Dn Const R2_XORPEN = 7 ' DPx Const R2_NOTMASKPEN = 8 ' DPan Const R2_MASKPEN = 9 ' DPa Const R2_NOTXORPEN = 10 ' DPxn Const R2_NOP = 11 ' D Const R2_MERGENOTPEN = 12 ' DPno Const R2_COPYPEN = 13 ' P Const R2_MERGEPENNOT = 14 ' PDno Const R2_MERGEPEN = 15 ' DPo Const R2_WHITE = 16 ' 1 Const R2_LAST = 16 ' Operaciones del explorador ternario Const SRCCOPY = &HCC0020 ' (DWORD) dest = origen Const SRCPAINT = &HEE0086 ' (DWORD) dest = origen OR dest Const SRCAND = &H8800C6 ' (DWORD) dest = origen AND dest Const SRCINVERT = &H660046 ' (DWORD) dest = origen XOR dest Const SRCERASE = &H440328 ' (DWORD) dest = origen AND (NOT dest) Const NOTSRCCOPY = &H330008 ' (DWORD) dest = (NOT origen) Const NOTSRCERASE = &H1100A6 ' (DWORD) dest = (NOT origen) AND (NOT dest) Const MERGECOPY = &HC000CA ' (DWORD) dest = (origen AND patrón) Const MERGEPAINT = &HBB0226 ' (DWORD) dest = (NOT origen) OR dest Const PATCOPY = &HF00021 ' (DWORD) dest = patrón Const PATPAINT = &HFB0A09 ' (DWORD) dest = DPSnoo Const PATINVERT = &H5A0049 ' (DWORD) dest = patrón XOR dest Const DSTINVERT = &H550009 ' (DWORD) dest = (NOT dest) Const BLACKNESS = &H42 ' (DWORD) dest = BLACK Const WHITENESS = &HFF0062 ' (DWORD) dest = WHITE Const GDI_ERROR = &HFFFF Const HGDI_ERROR = &HFFFF ' Indicadores de región Const ERRORAPI = 0 Const NULLREGION = 1 Const SIMPLEREGION = 2 Const COMPLEXREGION = 3 ' Estilos de CombineRgn() Const RGN_AND = 1 Const RGN_OR = 2 Const RGN_XOR = 3 Const RGN_DIFF = 4 Const RGN_COPY = 5 Const RGN_MIN = RGN_AND Const RGN_MAX = RGN_COPY ' Modos de StretchBlt() Const BLACKONWHITE = 1 Const WHITEONBLACK = 2 Const COLORONCOLOR = 3 Const HALFTONE = 4 Const MAXSTRETCHBLTMODE = 4 ' Modos de PolyFill() Const ALTERNATE = 1 Const WINDING = 2 Const POLYFILL_LAST = 2 ' Opciones de alineación de texto Const TA_NOUPDATECP = 0 Const TA_UPDATECP = 1 Const TA_LEFT = 0 Const TA_RIGHT = 2 Const TA_CENTER = 6 Const TA_TOP = 0 Const TA_BOTTOM = 8 Const TA_BASELINE = 24 Const TA_MASK = (TA_BASELINE + TA_CENTER + TA_UPDATECP) Const VTA_BASELINE = TA_BASELINE Const VTA_LEFT = TA_BOTTOM Const VTA_RIGHT = TA_TOP Const VTA_CENTER = TA_CENTER Const VTA_BOTTOM = TA_RIGHT Const VTA_TOP = TA_LEFT Const ETO_GRAYED = 1 Const ETO_OPAQUE = 2 Const ETO_CLIPPED = 4 Const ASPECT_FILTERING = &H1 Const DCB_RESET = &H1 Const DCB_ACCUMULATE = &H2 Const DCB_DIRTY = DCB_ACCUMULATE Const DCB_SET = (DCB_RESET Or DCB_ACCUMULATE) Const DCB_ENABLE = &H4 Const DCB_DISABLE = &H8 ' Funciones de metarchivo Const META_SETBKCOLOR = &H201 Const META_SETBKMODE = &H102 Const META_SETMAPMODE = &H103 Const META_SETROP2 = &H104 Const META_SETRELABS = &H105 Const META_SETPOLYFILLMODE = &H106 Const META_SETSTRETCHBLTMODE = &H107 Const META_SETTEXTCHAREXTRA = &H108 Const META_SETTEXTCOLOR = &H209 Const META_SETTEXTJUSTIFICATION = &H20A Const META_SETWINDOWORG = &H20B Const META_SETWINDOWEXT = &H20C Const META_SETVIEWPORTORG = &H20D Const META_SETVIEWPORTEXT = &H20E Const META_OFFSETWINDOWORG = &H20F Const META_SCALEWINDOWEXT = &H410 Const META_OFFSETVIEWPORTORG = &H211 Const META_SCALEVIEWPORTEXT = &H412 Const META_LINETO = &H213 Const META_MOVETO = &H214 Const META_EXCLUDECLIPRECT = &H415 Const META_INTERSECTCLIPRECT = &H416 Const META_ARC = &H817 Const META_ELLIPSE = &H418 Const META_FLOODFILL = &H419 Const META_PIE = &H81A Const META_RECTANGLE = &H41B Const META_ROUNDRECT = &H61C Const META_PATBLT = &H61D Const META_SAVEDC = &H1E Const META_SETPIXEL = &H41F Const META_OFFSETCLIPRGN = &H220 Const META_TEXTOUT = &H521 Const META_BITBLT = &H922 Const META_STRETCHBLT = &HB23 Const META_POLYGON = &H324 Const META_POLYLINE = &H325 Const META_ESCAPE = &H626 Const META_RESTOREDC = &H127 Const META_FILLREGION = &H228 Const META_FRAMEREGION = &H429 Const META_INVERTREGION = &H12A Const META_PAINTREGION = &H12B Const META_SELECTCLIPREGION = &H12C Const META_SELECTOBJECT = &H12D Const META_SETTEXTALIGN = &H12E Const META_CHORD = &H830 Const META_SETMAPPERFLAGS = &H231 Const META_EXTTEXTOUT = &HA32 Const META_SETDIBTODEV = &HD33 Const META_SELECTPALETTE = &H234 Const META_REALIZEPALETTE = &H35 Const META_ANIMATEPALETTE = &H436 Const META_SETPALENTRIES = &H37 Const META_POLYPOLYGON = &H538 Const META_RESIZEPALETTE = &H139 Const META_DIBBITBLT = &H940 Const META_DIBSTRETCHBLT = &HB41 Const META_DIBCREATEPATTERNBRUSH = &H142 Const META_STRETCHDIB = &HF43 Const META_EXTFLOODFILL = &H548 Const META_DELETEOBJECT = &H1F0 Const META_CREATEPALETTE = &HF7 Const META_CREATEPATTERNBRUSH = &H1F9 Const META_CREATEPENINDIRECT = &H2FA Const META_CREATEFONTINDIRECT = &H2FB Const META_CREATEBRUSHINDIRECT = &H2FC Const META_CREATEREGION = &H6FF ' Escapes de GDI Const NEWFRAME = 1 Const AbortDocC = 2 Const NEXTBAND = 3 Const SETCOLORTABLE = 4 Const GETCOLORTABLE = 5 Const FLUSHOUTPUT = 6 Const DRAFTMODE = 7 Const QUERYESCSUPPORT = 8 Const SETABORTPROC = 9 Const StartDocC = 10 Const EndDocC = 11 Const GETPHYSPAGESIZE = 12 Const GETPRINTINGOFFSET = 13 Const GETSCALINGFACTOR = 14 Const MFCOMMENT = 15 Const GETPENWIDTH = 16 Const SETCOPYCOUNT = 17 Const SELECTPAPERSOURCE = 18 Const DEVICEDATA = 19 Const PASSTHROUGH = 19 Const GETTECHNOLGY = 20 Const GETTECHNOLOGY = 20 Const SETLINECAP = 21 Const SETLINEJOIN = 22 Const SetMiterLimitC = 23 Const BANDINFO = 24 Const DRAWPATTERNRECT = 25 Const GETVECTORPENSIZE = 26 Const GETVECTORBRUSHSIZE = 27 Const ENABLEDUPLEX = 28 Const GETSETPAPERBINS = 29 Const GETSETPRINTORIENT = 30 Const ENUMPAPERBINS = 31 Const SETDIBSCALING = 32 Const EPSPRINTING = 33 Const ENUMPAPERMETRICS = 34 Const GETSETPAPERMETRICS = 35 Const POSTSCRIPT_DATA = 37 Const POSTSCRIPT_IGNORE = 38 Const MOUSETRAILS = 39 Const GETDEVICEUNITS = 42 Const GETEXTENDEDTEXTMETRICS = 256 Const GETEXTENTTABLE = 257 Const GETPAIRKERNTABLE = 258 Const GETTRACKKERNTABLE = 259 Const ExtTextOutC = 512 Const GETFACENAME = 513 Const DOWNLOADFACE = 514 Const ENABLERELATIVEWIDTHS = 768 Const ENABLEPAIRKERNING = 769 Const SETKERNTRACK = 770 Const SETALLJUSTVALUES = 771 Const SETCHARSET = 772 Const StretchBltC = 2048 Const GETSETSCREENPARAMS = 3072 Const BEGIN_PATH = 4096 Const CLIP_TO_PATH = 4097 Const END_PATH = 4098 Const EXT_DEVICE_CAPS = 4099 Const RESTORE_CTM = 4100 Const SAVE_CTM = 4101 Const SET_ARC_DIRECTION = 4102 Const SET_BACKGROUND_COLOR = 4103 Const SET_POLY_MODE = 4104 Const SET_SCREEN_ANGLE = 4105 Const SET_SPREAD = 4106 Const TRANSFORM_CTM = 4107 Const SET_CLIP_BOX = 4108 Const SET_BOUNDS = 4109 Const SET_MIRROR_MODE = 4110 Const OPENCHANNEL = 4110 Const DOWNLOADHEADER = 4111 Const CLOSECHANNEL = 4112 Const POSTSCRIPT_PASSTHROUGH = 4115 Const ENCAPSULATED_POSTSCRIPT = 4116 ' Códigos de error del administrador de la cola de impresión Const SP_NOTREPORTED = &H4000 Const SP_ERROR = (-1) Const SP_APPABORT = (-2) Const SP_USERABORT = (-3) Const SP_OUTOFDISK = (-4) Const SP_OUTOFMEMORY = (-5) Const PR_JOBSTATUS = &H0 ' Definiciones de objetos para EnumObjects() Const OBJ_PEN = 1 Const OBJ_BRUSH = 2 Const OBJ_DC = 3 Const OBJ_METADC = 4 Const OBJ_PAL = 5 Const OBJ_FONT = 6 Const OBJ_BITMAP = 7 Const OBJ_REGION = 8 Const OBJ_METAFILE = 9 Const OBJ_MEMDC = 10 Const OBJ_EXTPEN = 11 Const OBJ_ENHMETADC = 12 Const OBJ_ENHMETAFILE = 13 ' xform Const MWT_IDENTITY = 1 Const MWT_LEFTMULTIPLY = 2 Const MWT_RIGHTMULTIPLY = 3 Const MWT_MIN = MWT_IDENTITY Const MWT_MAX = MWT_RIGHTMULTIPLY Type XFORM eM11 As Double eM12 As Double eM21 As Double eM22 As Double eDx As Double eDy As Double End Type ' Definición del encabezado del mapa de bits Type BITMAP '14 bytes bmType As Long bmWidth As Long bmHeight As Long bmWidthBytes As Long bmPlanes As Integer bmBitsPixel As Integer bmBits As Long End Type Type RGBTRIPLE rgbtBlue As Byte rgbtGreen As Byte rgbtRed As Byte End Type Type RGBQUAD rgbBlue As Byte rgbGreen As Byte rgbRed As Byte rgbReserved As Byte End Type ' Estructuras para definir los DIB Type BITMAPCOREHEADER '12 bytes bcSize As Long bcWidth As Integer bcHeight As Integer bcPlanes As Integer bcBitCount As Integer End Type Type BITMAPINFOHEADER '40 bytes biSize As Long biWidth As Long biHeight As Long biPlanes As Integer biBitCount As Integer biCompression As Long biSizeImage As Long biXPelsPerMeter As Long biYPelsPerMeter As Long biClrUsed As Long biClrImportant As Long End Type ' Constantes para el campo biCompression Const BI_RGB = 0& Const BI_RLE8 = 1& Const BI_RLE4 = 2& Const BI_bitfields = 3& Type BITMAPINFO bmiHeader As BITMAPINFOHEADER bmiColors As RGBQUAD End Type Type BITMAPCOREINFO bmciHeader As BITMAPCOREHEADER bmciColors As RGBTRIPLE End Type Type BITMAPFILEHEADER bfType As Integer bfSize As Long bfReserved1 As Integer bfReserved2 As Integer bfOffBits As Long End Type ' Estructura de la imagen de metarchivo del Portapapeles Type HANDLETABLE objectHandle(1) As Long End Type Type METARECORD rdSize As Long rdFunction As Integer rdParm(1) As Integer End Type Type METAFILEPICT mm As Long xExt As Long yExt As Long hMF As Long End Type Type METAHEADER mtType As Integer mtHeaderSize As Integer mtVersion As Integer mtSize As Long mtNoObjects As Integer mtMaxRecord As Long mtNoParameters As Integer End Type Type ENHMETARECORD iType As Long nSize As Long dParm(1) As Long End Type Type SIZEL cx As Long cy As Long End Type Type ENHMETAHEADER iType As Long nSize As Long rclBounds As RECTL rclFrame As RECTL dSignature As Long nVersion As Long nBytes As Long nRecords As Long nHandles As Integer sReserved As Integer nDescription As Long offDescription As Long nPalEntries As Long szlDevice As SIZEL szlMillimeters As SIZEL End Type Type TEXTMETRIC tmHeight As Long tmAscent As Long tmDescent As Long tmInternalLeading As Long tmExternalLeading As Long tmAveCharWidth As Long tmMaxCharWidth As Long tmWeight As Long tmOverhang As Long tmDigitizedAspectX As Long tmDigitizedAspectY As Long tmFirstChar As Byte tmLastChar As Byte tmDefaultChar As Byte tmBreakChar As Byte tmItalic As Byte tmUnderlined As Byte tmStruckOut As Byte tmPitchAndFamily As Byte tmCharSet As Byte End Type ' indicadores del campo ntmFlags Const NTM_REGULAR = &H40& Const NTM_BOLD = &H20& Const NTM_ITALIC = &H1& ' Estructura que se pasa a FONTENUMPROC ' NOTA: NEWTEXTMETRIC es lo mismo que TEXTMETRIC más 4 campos nuevos Type NEWTEXTMETRIC tmHeight As Long tmAscent As Long tmDescent As Long tmInternalLeading As Long tmExternalLeading As Long tmAveCharWidth As Long tmMaxCharWidth As Long tmWeight As Long tmOverhang As Long tmDigitizedAspectX As Long tmDigitizedAspectY As Long tmFirstChar As Byte tmLastChar As Byte tmDefaultChar As Byte tmBreakChar As Byte tmItalic As Byte tmUnderlined As Byte tmStruckOut As Byte tmPitchAndFamily As Byte tmCharSet As Byte ntmFlags As Long ntmSizeEM As Long ntmCellHeight As Long ntmAveWidth As Long End Type ' Indicadores de tmPitchAndFamily Const TMPF_FIXED_PITCH = &H1 Const TMPF_VECTOR = &H2 Const TMPF_DEVICE = &H8 Const TMPF_TRUETYPE = &H4 ' Objetos lógicos GDI: Type PELARRAY paXCount As Long paYCount As Long paXExt As Long paYExt As Long paRGBs As Integer End Type ' Pincel lógico (o patrón) Type LOGBRUSH lbStyle As Long lbColor As Long lbHatch As Long End Type ' Lápiz lógico Type LOGPEN lopnStyle As Long lopnWidth As POINTAPI lopnColor As Long End Type Type EXTLOGPEN elpPenStyle As Long elpWidth As Long elpBrushStyle As Long elpColor As Long elpHatch As Long elpNumEntries As Long elpStyleEntry(1) As Long End Type Type PALETTEENTRY peRed As Byte peGreen As Byte peBlue As Byte peFlags As Byte End Type ' Paleta lógica Type LOGPALETTE palVersion As Integer palNumEntries As Integer palPalEntry(1) As PALETTEENTRY End Type ' Fuente lógica Const LF_FACESIZE = 32 Const LF_FULLFACESIZE = 64 Type LOGFONT lfHeight As Long lfWidth As Long lfEscapement As Long lfOrientation As Long lfWeight As Long lfItalic As Byte lfUnderline As Byte lfStrikeOut As Byte lfCharSet As Byte lfOutPrecision As Byte lfClipPrecision As Byte lfQuality As Byte lfPitchAndFamily As Byte lfFaceName(1 To LF_FACESIZE) As Byte End Type Type NONCLIENTMETRICS cbSize As Long iBorderWidth As Long iScrollWidth As Long iScrollHeight As Long iCaptionWidth As Long iCaptionHeight As Long lfCaptionFont As LOGFONT iSMCaptionWidth As Long iSMCaptionHeight As Long lfSMCaptionFont As LOGFONT iMenuWidth As Long iMenuHeight As Long lfMenuFont As LOGFONT lfStatusFont As LOGFONT lfMessageFont As LOGFONT End Type Type ENUMLOGFONT elfLogFont As LOGFONT elfFullName(LF_FULLFACESIZE) As Byte elfStyle(LF_FACESIZE) As Byte End Type Const OUT_DEFAULT_PRECIS = 0 Const OUT_STRING_PRECIS = 1 Const OUT_CHARACTER_PRECIS = 2 Const OUT_STROKE_PRECIS = 3 Const OUT_TT_PRECIS = 4 Const OUT_DEVICE_PRECIS = 5 Const OUT_RASTER_PRECIS = 6 Const OUT_TT_ONLY_PRECIS = 7 Const OUT_OUTLINE_PRECIS = 8 Const CLIP_DEFAULT_PRECIS = 0 Const CLIP_CHARACTER_PRECIS = 1 Const CLIP_STROKE_PRECIS = 2 Const CLIP_MASK = &HF Const CLIP_LH_ANGLES = 16 Const CLIP_TT_ALWAYS = 32 Const CLIP_EMBEDDED = 128 Const DEFAULT_QUALITY = 0 Const DRAFT_QUALITY = 1 Const PROOF_QUALITY = 2 Const DEFAULT_PITCH = 0 Const FIXED_PITCH = 1 Const VARIABLE_PITCH = 2 Const ANSI_CHARSET = 0 Const DEFAULT_CHARSET = 1 Const SYMBOL_CHARSET = 2 Const SHIFTJIS_CHARSET = 128 Const HANGEUL_CHARSET = 129 Const CHINESEBIG5_CHARSET = 136 Const OEM_CHARSET = 255 ' Familias de fuentes ' Const FF_DONTCARE = 0 ' No se sabe o no importa. Const FF_ROMAN = 16 ' Ancho de trazo variable, con serif. ' Times Roman, Century Schoolbook, etc. Const FF_SWISS = 32 ' Ancho de trazo variable, sin serif. ' Helvetica, Swiss, etc. Const FF_MODERN = 48 ' Ancho de trazo constante, con o sin serif. ' Pica, Elite, Courier, etc. Const FF_SCRIPT = 64 ' Cursiva, etc. Const FF_DECORATIVE = 80 ' Old English, etc. ' Pesos de la fuente Const FW_DONTCARE = 0 Const FW_THIN = 100 Const FW_EXTRALIGHT = 200 Const FW_LIGHT = 300 Const FW_NORMAL = 400 Const FW_MEDIUM = 500 Const FW_SEMIBOLD = 600 Const FW_BOLD = 700 Const FW_EXTRABOLD = 800 Const FW_HEAVY = 900 Const FW_ULTRALIGHT = FW_EXTRALIGHT Const FW_REGULAR = FW_NORMAL Const FW_DEMIBOLD = FW_SEMIBOLD Const FW_ULTRABOLD = FW_EXTRABOLD Const FW_BLACK = FW_HEAVY Const PANOSE_COUNT = 10 Const PAN_FAMILYTYPE_INDEX = 0 Const PAN_SERIFSTYLE_INDEX = 1 Const PAN_WEIGHT_INDEX = 2 Const PAN_PROPORTION_INDEX = 3 Const PAN_CONTRAST_INDEX = 4 Const PAN_STROKEVARIATION_INDEX = 5 Const PAN_ARMSTYLE_INDEX = 6 Const PAN_LETTERFORM_INDEX = 7 Const PAN_MIDLINE_INDEX = 8 Const PAN_XHEIGHT_INDEX = 9 Const PAN_CULTURE_LATIN = 0 Type PANOSE ulculture As Long bFamilyType As Byte bSerifStyle As Byte bWeight As Byte bProportion As Byte bContrast As Byte bStrokeVariation As Byte bArmStyle As Byte bLetterform As Byte bMidline As Byte bXHeight As Byte End Type Const PAN_ANY = 0 ' Cualquiera Const PAN_NO_FIT = 1 ' Sin encajar Const PAN_FAMILY_TEXT_DISPLAY = 2 ' Texto y pantalla Const PAN_FAMILY_SCRIPT = 3 ' Índice Const PAN_FAMILY_DECORATIVE = 4 ' Decorativa Const PAN_FAMILY_PICTORIAL = 5 ' Pictórica Const PAN_SERIF_COVE = 2 ' Cove Const PAN_SERIF_OBTUSE_COVE = 3 ' Cove obtusa Const PAN_SERIF_SQUARE_COVE = 4 ' Cove cuadrada Const PAN_SERIF_OBTUSE_SQUARE_COVE = 5 ' Cove obtusa cuadrada Const PAN_SERIF_SQUARE = 6 ' Cuadrada Const PAN_SERIF_THIN = 7 ' Delgada Const PAN_SERIF_BONE = 8 ' Hueso Const PAN_SERIF_EXAGGERATED = 9 ' Exagerada Const PAN_SERIF_TRIANGLE = 10 ' Triángulo Const PAN_SERIF_NORMAL_SANS = 11 ' Sans normal Const PAN_SERIF_OBTUSE_SANS = 12 ' Sans obtusa Const PAN_SERIF_PERP_SANS = 13 ' Sans prep Const PAN_SERIF_FLARED = 14 ' Ensanchada Const PAN_SERIF_ROUNDED = 15 ' Redondeada Const PAN_WEIGHT_VERY_LIGHT = 2 ' Muy claro Const PAN_WEIGHT_LIGHT = 3 ' Claro Const PAN_WEIGHT_THIN = 4 ' Delgado Const PAN_WEIGHT_BOOK = 5 ' Libro Const PAN_WEIGHT_MEDIUM = 6 ' Medio Const PAN_WEIGHT_DEMI = 7 ' Semi Const PAN_WEIGHT_BOLD = 8 ' Negrita Const PAN_WEIGHT_HEAVY = 9 ' Fuerte Const PAN_WEIGHT_BLACK = 10 ' Negro Const PAN_WEIGHT_NORD = 11 ' Nord Const PAN_PROP_OLD_STYLE = 2 ' Old Style Const PAN_PROP_MODERN = 3 ' Modern Const PAN_PROP_EVEN_WIDTH = 4 ' Ancho igualado Const PAN_PROP_EXPANDED = 5 ' Expandida Const PAN_PROP_CONDENSED = 6 ' Condensada Const PAN_PROP_VERY_EXPANDED = 7 ' Muy expandida Const PAN_PROP_VERY_CONDENSED = 8 ' Muy condensada Const PAN_PROP_MONOSPACED = 9 ' Monoespaciada Const PAN_CONTRAST_NONE = 2 ' Ninguno Const PAN_CONTRAST_VERY_LOW = 3 ' Muy bajo Const PAN_CONTRAST_LOW = 4 ' Bajo Const PAN_CONTRAST_MEDIUM_LOW = 5 ' Medio bajo Const PAN_CONTRAST_MEDIUM = 6 ' Medio Const PAN_CONTRAST_MEDIUM_HIGH = 7 ' Medio alto Const PAN_CONTRAST_HIGH = 8 ' Alto Const PAN_CONTRAST_VERY_HIGH = 9 ' Muy alto Const PAN_STROKE_GRADUAL_DIAG = 2 ' Gradual/Diagonal Const PAN_STROKE_GRADUAL_TRAN = 3 ' Gradual/Transicional Const PAN_STROKE_GRADUAL_VERT = 4 ' Gradual/Vertical Const PAN_STROKE_GRADUAL_HORZ = 5 ' Gradual/Horizontal Const PAN_STROKE_RAPID_VERT = 6 ' Rápido/Vertical Const PAN_STROKE_RAPID_HORZ = 7 ' Rápido/Horizontal Const PAN_STROKE_INSTANT_VERT = 8 ' Instantáneo/Vertical Const PAN_STRAIGHT_ARMS_HORZ = 2 ' Brazos rectos/Horizontal Const PAN_STRAIGHT_ARMS_WEDGE = 3 ' Brazos rectos/Cuña Const PAN_STRAIGHT_ARMS_VERT = 4 ' Brazos rectos/Vertical Const PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 ' Brazos rectos/Serif único Const PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 ' Brazos rectos/Serif doble Const PAN_BENT_ARMS_HORZ = 7 ' Brazos no rectos/Horizontal Const PAN_BENT_ARMS_WEDGE = 8 ' Brazos no rectos/Cuña Const PAN_BENT_ARMS_VERT = 9 ' Brazos no rectos/Vertical Const PAN_BENT_ARMS_SINGLE_SERIF = 10 ' Brazos no rectos/Serif único Const PAN_BENT_ARMS_DOUBLE_SERIF = 11 ' Brazos no rectos/Serif doble Const PAN_LETT_NORMAL_CONTACT = 2 ' Normal/Contacto Const PAN_LETT_NORMAL_WEIGHTED = 3 ' Normal/Compensada Const PAN_LETT_NORMAL_BOXED = 4 ' Normal/Encajada Const PAN_LETT_NORMAL_FLATTENED = 5 ' Normal/Aplanada Const PAN_LETT_NORMAL_ROUNDED = 6 ' Normal/Redondeada Const PAN_LETT_NORMAL_OFF_CENTER = 7 ' Normal/Descentrada Const PAN_LETT_NORMAL_SQUARE = 8 ' Normal/Cuadrada Const PAN_LETT_OBLIQUE_CONTACT = 9 ' Oblicua/Contacto Const PAN_LETT_OBLIQUE_WEIGHTED = 10 ' Oblicua/Compensada Const PAN_LETT_OBLIQUE_BOXED = 11 ' Oblicua/Encajada Const PAN_LETT_OBLIQUE_FLATTENED = 12 ' Oblicua/Aplanada Const PAN_LETT_OBLIQUE_ROUNDED = 13 ' Oblicua/Redondeada Const PAN_LETT_OBLIQUE_OFF_CENTER = 14 ' Oblicua/Descentrada Const PAN_LETT_OBLIQUE_SQUARE = 15 ' Oblicua/Cuadrada Const PAN_MIDLINE_STANDARD_TRIMMED = 2 ' Estándar/Recortada Const PAN_MIDLINE_STANDARD_POINTED = 3 ' Estándar/Acentuada Const PAN_MIDLINE_STANDARD_SERIFED = 4 ' Estándar/Con serif Const PAN_MIDLINE_HIGH_TRIMMED = 5 ' Mayúscula/Recortada Const PAN_MIDLINE_HIGH_POINTED = 6 ' Mayúscula/Acentuada Const PAN_MIDLINE_HIGH_SERIFED = 7 ' Mayúscula/Con serif Const PAN_MIDLINE_CONSTANT_TRIMMED = 8 ' Constante/Recortada Const PAN_MIDLINE_CONSTANT_POINTED = 9 ' Constante/Acentuada Const PAN_MIDLINE_CONSTANT_SERIFED = 10 ' Constante/Con serif Const PAN_MIDLINE_LOW_TRIMMED = 11 ' Minúscula/Recortada Const PAN_MIDLINE_LOW_POINTED = 12 ' Minúscula/Acentuada Const PAN_MIDLINE_LOW_SERIFED = 13 ' Minúscula/Con serif Const PAN_XHEIGHT_CONSTANT_SMALL = 2 ' Constante/Pequeña Const PAN_XHEIGHT_CONSTANT_STD = 3 ' Constante/Estándar Const PAN_XHEIGHT_CONSTANT_LARGE = 4 ' Constante/Grande Const PAN_XHEIGHT_DUCKING_SMALL = 5 ' Sumergida/Pequeña Const PAN_XHEIGHT_DUCKING_STD = 6 ' Sumergida/Estándar Const PAN_XHEIGHT_DUCKING_LARGE = 7 ' Sumergida/Grande Const ELF_VENDOR_SIZE = 4 Type EXTLOGFONT elfLogFont As LOGFONT elfFullName(LF_FULLFACESIZE) As Byte elfStyle(LF_FACESIZE) As Byte elfVersion As Long elfStyleSize As Long elfMatch As Long elfReserved As Long elfVendorId(ELF_VENDOR_SIZE) As Byte elfCulture As Long elfPanose As PANOSE End Type Const ELF_VERSION = 0 Const ELF_CULTURE_LATIN = 0 ' Máscaras de EnumFonts Const RASTER_FONTTYPE = &H1 Const DEVICE_FONTTYPE = &H2 Const TRUETYPE_FONTTYPE = &H4 ' Indicadores de entrada de la paleta Const PC_RESERVED = &H1 ' índice de paleta que se usa para animación Const PC_EXPLICIT = &H2 ' índice de paleta explícito para dispositivo Const PC_NOCOLLAPSE = &H4 ' color no igual a la paleta del sistema ' Modos del fondo Const TRANSPARENT = 1 Const OPAQUE = 2 Const BKMODE_LAST = 2 ' Modos de gráficos Const GM_COMPATIBLE = 1 Const GM_ADVANCED = 2 Const GM_LAST = 2 ' Tipos de puntos PolyDraw y GetPath Const PT_CLOSEFIGURE = &H1 Const PT_LINETO = &H2 Const PT_BEZIERTO = &H4 Const PT_MOVETO = &H6 ' Modos de asignación Const MM_TEXT = 1 Const MM_LOMETRIC = 2 Const MM_HIMETRIC = 3 Const MM_LOENGLISH = 4 Const MM_HIENGLISH = 5 Const MM_TWIPS = 6 Const MM_ISOTROPIC = 7 Const MM_ANISOTROPIC = 8 ' Valores mínimo y máximo del modo de asignación Const MM_MIN = MM_TEXT Const MM_MAX = MM_ANISOTROPIC Const MM_MAX_FIXEDSCALE = MM_TWIPS ' Modos de coordenadas Const ABSOLUTE = 1 Const RELATIVE = 2 ' Objetos lógicos de Stock Const WHITE_BRUSH = 0 Const LTGRAY_BRUSH = 1 Const GRAY_BRUSH = 2 Const DKGRAY_BRUSH = 3 Const BLACK_BRUSH = 4 Const NULL_BRUSH = 5 Const HOLLOW_BRUSH = NULL_BRUSH Const WHITE_PEN = 6 Const BLACK_PEN = 7 Const NULL_PEN = 8 Const OEM_FIXED_FONT = 10 Const ANSI_FIXED_FONT = 11 Const ANSI_VAR_FONT = 12 Const SYSTEM_FONT = 13 Const DEVICE_DEFAULT_FONT = 14 Const DEFAULT_PALETTE = 15 Const SYSTEM_FIXED_FONT = 16 Const STOCK_LAST = 16 Const CLR_INVALID = &HFFFF ' Estilos de pincel Const BS_SOLID = 0 Const BS_NULL = 1 Const BS_HOLLOW = BS_NULL Const BS_HATCHED = 2 Const BS_PATTERN = 3 Const BS_INDEXED = 4 Const BS_DIBPATTERN = 5 Const BS_DIBPATTERNPT = 6 Const BS_PATTERN8X8 = 7 Const BS_DIBPATTERN8X8 = 8 ' Estilos de rayas Const HS_HORIZONTAL = 0 ' ----- Const HS_VERTICAL = 1 ' ||||| Const HS_FDIAGONAL = 2 ' \\\\\ Const HS_BDIAGONAL = 3 ' ///// Const HS_CROSS = 4 ' +++++ Const HS_DIAGCROSS = 5 ' xxxxx Const HS_FDIAGONAL1 = 6 Const HS_BDIAGONAL1 = 7 Const HS_SOLID = 8 Const HS_DENSE1 = 9 Const HS_DENSE2 = 10 Const HS_DENSE3 = 11 Const HS_DENSE4 = 12 Const HS_DENSE5 = 13 Const HS_DENSE6 = 14 Const HS_DENSE7 = 15 Const HS_DENSE8 = 16 Const HS_NOSHADE = 17 Const HS_HALFTONE = 18 Const HS_SOLIDCLR = 19 Const HS_DITHEREDCLR = 20 Const HS_SOLIDTEXTCLR = 21 Const HS_DITHEREDTEXTCLR = 22 Const HS_SOLIDBKCLR = 23 Const HS_DITHEREDBKCLR = 24 Const HS_API_MAX = 25 ' Estilos de lápiz Const PS_SOLID = 0 Const PS_DASH = 1 ' ------- Const PS_DOT = 2 ' ....... Const PS_DASHDOT = 3 ' _._._._ Const PS_DASHDOTDOT = 4 ' _.._.._ Const PS_NULL = 5 Const PS_INSIDEFRAME = 6 Const PS_USERSTYLE = 7 Const PS_ALTERNATE = 8 Const PS_STYLE_MASK = &HF Const PS_ENDCAP_ROUND = &H0 Const PS_ENDCAP_SQUARE = &H100 Const PS_ENDCAP_FLAT = &H200 Const PS_ENDCAP_MASK = &HF00 Const PS_JOIN_ROUND = &H0 Const PS_JOIN_BEVEL = &H1000 Const PS_JOIN_MITER = &H2000 Const PS_JOIN_MASK = &HF000 Const PS_COSMETIC = &H0 Const PS_GEOMETRIC = &H10000 Const PS_TYPE_MASK = &HF0000 Const AD_COUNTERCLOCKWISE = 1 Const AD_CLOCKWISE = 2 ' Parámetros de dispositivos para GetDeviceCaps() Const DRIVERVERSION = 0 ' Versión del controlador del dispositivo Const TECHNOLOGY = 2 ' Clasificación del dispositivo Const HORZSIZE = 4 ' Tamaño horizontal en milímetros Const VERTSIZE = 6 ' Tamaño vertical en milímetros Const HORZRES = 8 ' Ancho horizontal en píxeles Const VERTRES = 10 ' Ancho vertical en píxeles Const BITSPIXEL = 12 ' Número de bits por píxel Const PLANES = 14 ' Número de planos Const NUMBRUSHES = 16 ' Número de pinceles que tiene el dispositivo Const NUMPENS = 18 ' Número de lápices que tiene el dispositivo Const NUMMARKERS = 20 ' Número de marcadores que tiene el dispositivo Const NUMFONTS = 22 ' Número de fuentes que tiene el dispositivo Const NUMCOLORS = 24 ' Número de colores que admite el dispositivo Const PDEVICESIZE = 26 ' Tamaño requerido para el descriptor del dispositivo Const CURVECAPS = 28 ' Capacidad de trazar curvas Const LINECAPS = 30 ' Capacidad de trazar líneas Const POLYGONALCAPS = 32 ' Capacidad de trazar polígonos Const TEXTCAPS = 34 ' Capacidad de escribir texto Const CLIPCAPS = 36 ' Capacidad de recorte Const RASTERCAPS = 38 ' Capacidad de barrido de bits Const ASPECTX = 40 ' Longitud del eje X Const ASPECTY = 42 ' Longitud del eje Y Const ASPECTXY = 44 ' Longitud de la hipotenusa Const LOGPIXELSX = 88 ' Píxeles/pulgadas lógicas en X Const LOGPIXELSY = 90 ' Píxeles/pulgadas lógicas en Y Const SIZEPALETTE = 104 ' Número de entradas de la paleta física Const NUMRESERVED = 106 ' Número de entradas reservadas en la paleta Const COLORRES = 108 ' Resolución de color real ' DeviceCaps relacionadas con la impresión. Sustituyen a los Escapes apropiados Const PHYSICALWIDTH = 110 ' Ancho físico en unidades del dispositivo Const PHYSICALHEIGHT = 111 ' Alto físico en unidades del dispositivo Const PHYSICALOFFSETX = 112 ' Margen x del área física imprimible Const PHYSICALOFFSETY = 113 ' Margen y del área física imprimible Const SCALINGFACTORX = 114 ' Factor de escala x Const SCALINGFACTORY = 115 ' Factor de escala y ' Máscaras de capacidad del dispositivo: ' Tecnologías de dispositivos Const DT_PLOTTER = 0 ' Trazador gráfico de vectores Const DT_RASDISPLAY = 1 ' Pantalla de barrido Const DT_RASPRINTER = 2 ' Impresora de barrido Const DT_RASCAMERA = 3 ' Cámara de barrido Const DT_CHARSTREAM = 4 ' Flujo de caracteres, PLP Const DT_METAFILE = 5 ' Metarchivo, VDM Const DT_DISPFILE = 6 ' Archivo de pantalla ' Capacidad de trazar curvas Const CC_NONE = 0 ' No dibuja curvas Const CC_CIRCLES = 1 ' Puede hacer círculos Const CC_PIE = 2 ' Puede hacer cuñas de gráficos circulares Const CC_CHORD = 4 ' Puede hacer arcos de cuerda Const CC_ELLIPSES = 8 ' Puede hacer elipses Const CC_WIDE = 16 ' Puede hacer líneas anchas Const CC_STYLED = 32 ' Puede hacer líneas con estilo Const CC_WIDESTYLED = 64 ' Puede hacer líneas anchas con estilo Const CC_INTERIORS = 128 ' Puede hacer interiores Const CC_ROUNDRECT = 256 ' ' Capacidad de trazar líneas Const LC_NONE = 0 ' No dibuja líneas Const LC_POLYLINE = 2 ' Puede hacer líneas múltiples Const LC_MARKER = 4 ' Puede hacer marcadores Const LC_POLYMARKER = 8 ' Puede hacer marcadores múltiples Const LC_WIDE = 16 ' Puede hacer líneas anchas Const LC_STYLED = 32 ' Puede hacer líneas con estilo Const LC_WIDESTYLED = 64 ' Puede hacer líneas anchas con estilo Const LC_INTERIORS = 128 ' Puede hacer interiores ' Capacidad de trazar polígonos Const PC_NONE = 0 ' No dibuja polígonos Const PC_POLYGON = 1 ' Puede hacer polígonos Const PC_RECTANGLE = 2 ' Puede hacer rectángulos Const PC_WINDPOLYGON = 4 ' Puede hacer polígonos sinuosos Const PC_TRAPEZOID = 4 ' Puede hacer trapezoides Const PC_SCANLINE = 8 ' Puede hacer líneas de exploración Const PC_WIDE = 16 ' Puede hacer bordes anchos Const PC_STYLED = 32 ' Puede hacer bordes con estilo Const PC_WIDESTYLED = 64 ' Puede hacer bordes anchos con estilo Const PC_INTERIORS = 128 ' Puede hacer interiores ' Capacidad de trazar polígonos Const CP_NONE = 0 ' No se puede recortar lo dibujado Const CP_RECTANGLE = 1 ' Lo dibujado se puede recortar en rectángulos Const CP_REGION = 2 ' ' Capacidad de texto Const TC_OP_CHARACTER = &H1 ' Puede hacer precisión de salida del CARÁCTER Const TC_OP_STROKE = &H2 ' Puede hacer precisión de salida del TRAZO Const TC_CP_STROKE = &H4 ' Puede hacer precisión de recorte del TRAZO Const TC_CR_90 = &H8 ' Puede hacer capacidad de rotación de caracteres 90 Const TC_CR_ANY = &H10 ' Puede hacer CUALQUIER capacidad de rotación de caracteres Const TC_SF_X_YINDEP = &H20 ' Puede hacer libertad de escala INDEPENDIENTE DE X_Y Const TC_SA_DOUBLE = &H40 ' Puede hacer la capacidad de escala DOBLE Const TC_SA_INTEGER = &H80 ' Puede hacer la capacidad de escala ENTERO Const TC_SA_CONTIN = &H100 ' Puede hacer la capacidad de escala CONTINUA Const TC_EA_DOUBLE = &H200 ' Puede hacer la capacidad de negrita DOBLE Const TC_IA_ABLE = &H400 ' Puede hacer la capacidad de tamaño de cursiva ACTIVADA Const TC_UA_ABLE = &H800 ' Puede hacer la capacidad de subrayado ACTIVADA Const TC_SO_ABLE = &H1000 ' Puede hacer la capacidad de trazo doble ACTIVADA Const TC_RA_ABLE = &H2000 ' Puede hacer la capacidad de fuente raster ACTIVADA Const TC_VA_ABLE = &H4000 ' Puede hacer la capacidad de fuente vector ACTIVADA Const TC_RESERVED = &H8000 Const TC_SCROLLBLT = &H10000 ' Desplaza el texto con barrido ' Capacidad de barrido de bits Const RC_NONE = 0 Const RC_BITBLT = 1 ' Puede hacer el barrido estándar. Const RC_BANDING = 2 ' El dispositivo requiere soporte de banda Const RC_SCALING = 4 ' El dispositivo requiere soporte de escala Const RC_BITMAP64 = 8 ' El dispositivo admite mapas de bits >64K Const RC_GDI20_OUTPUT = &H10 ' tiene llamadas de salida 2.0 Const RC_GDI20_STATE = &H20 Const RC_SAVEBITMAP = &H40 Const RC_DI_BITMAP = &H80 H80 ' admite DIB en memoria Const RC_PALETTE = &H100 ' admite una paleta Const RC_DIBTODEV = &H200 H200 ' admite DIB en el dispositivo Const RC_BIGFONT = &H400 ' admite fuentes >64K Const RC_STRETCHBLT = &H800 ' admite barrido StretchBlt Const RC_FLOODFILL = &H1000 ' admite relleno FloodFill Const RC_STRETCHDIB = &H2000 ' admite DIB Stretch Const RC_OP_DX_OUTPUT = &H4000 Const RC_DEVBITS = &H8000 ' Identificadores de la tabla de color de DIB Const DIB_RGB_COLORS = 0 ' tabla de color en RGB (rojo-verde-azul) Const DIB_PAL_COLORS = 1 ' tabla de color en los índices de la paleta Const DIB_PAL_INDICES = 2 ' No hay índices de la tabla de color en la paleta de pantalla Const DIB_PAL_PHYSINDICES = 2 ' No hay índices de la tabla de color en la paleta de pantalla Const DIB_PAL_LOGINDICES = 4 ' No hay índices de la tabla de color en la paleta DC ' constantes para Get/SetSystemPaletteUse() Const SYSPAL_ERROR = 0 Const SYSPAL_STATIC = 1 Const SYSPAL_NOSTATIC = 2 ' constantes para CreateDIBitmap Const CBM_CREATEDIB = &H2 ' crea mapa de bits DIB Const CBM_INIT = &H4 ' inicializa mapa de bits ' Indicadores de estilo de ExtFloodFill Const FLOODFILLBORDER = 0 Const FLOODFILLSURFACE = 1 ' Tamaño de las cadenas de nombre de dispositivo Const CCHDEVICENAME = 32 ' Tamaño de las cadenas de nombre de formulario Const CCHFORMNAME = 32 Type DEVMODE dmDeviceName As String * CCHDEVICENAME dmSpecVersion As Integer dmDriverVersion As Integer dmSize As Integer dmDriverExtra As Integer dmFields As Long dmOrientation As Integer dmPaperSize As Integer dmPaperLength As Integer dmPaperWidth As Integer dmScale As Integer dmCopies As Integer dmDefaultSource As Integer dmPrintQuality As Integer dmColor As Integer dmDuplex As Integer dmYResolution As Integer dmTTOption As Integer dmCollate As Integer dmFormName As String * CCHFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Long dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type ' Versión actual de especificación Const DM_SPECVERSION = &H320 ' Bits de selección de campos Const DM_ORIENTATION = &H1& Const DM_PAPERSIZE = &H2& Const DM_PAPERLENGTH = &H4& Const DM_PAPERWIDTH = &H8& Const DM_SCALE = &H10& Const DM_COPIES = &H100& Const DM_DEFAULTSOURCE = &H200& Const DM_PRINTQUALITY = &H400& Const DM_COLOR = &H800& Const DM_DUPLEX = &H1000& Const DM_YRESOLUTION = &H2000& Const DM_TTOPTION = &H4000& Const DM_COLLATE As Long = &H8000 Const DM_FORMNAME As Long = &H10000 ' Selecciones de orientación Const DMORIENT_PORTRAIT = 1 Const DMORIENT_LANDSCAPE = 2 ' Selecciones de papel Const DMPAPER_LETTER = 1 Const DMPAPER_FIRST = DMPAPER_LETTER ' Carta 8 1/2 x 11 pulg. Const DMPAPER_LETTERSMALL = 2 ' Carta pequeña 8 1/2 x 11 pulg. Const DMPAPER_TABLOID = 3 ' Tabloide 11 x 17 pulg. Const DMPAPER_LEDGER = 4 ' Doble carta 17 x 11 pulg. Const DMPAPER_LEGAL = 5 ' Oficio 8 1/2 x 14 pulg. Const DMPAPER_STATEMENT = 6 ' Estamento 5 1/2 x 8 1/2 pulg. Const DMPAPER_EXECUTIVE = 7 ' Ejecutivo 7 1/4 x 10 1/2 pulg. Const DMPAPER_A3 = 8 ' A3 297 x 420 mm Const DMPAPER_A4 = 9 ' A4 210 x 297 mm Const DMPAPER_A4SMALL = 10 ' A4 Pequeño 210 x 297 mm Const DMPAPER_A5 = 11 ' A5 148 x 210 mm Const DMPAPER_B4 = 12 ' B4 250 x 354 Const DMPAPER_B5 = 13 ' B5 182 x 257 mm Const DMPAPER_FOLIO = 14 ' Folio 8 1/2 x 13 pulg. Const DMPAPER_QUARTO = 15 ' Cuarto 215 x 275 mm Const DMPAPER_10X14 = 16 ' 10x14 pulg. Const DMPAPER_11X17 = 17 ' 11x17 pulg. Const DMPAPER_NOTE = 18 ' Nota 8 1/2 x 11 pulg. Const DMPAPER_ENV_9 = 19 ' Sobre Nº 9 3 7/8 x 8 7/8 Const DMPAPER_ENV_10 = 20 ' Sobre Nº 10 4 1/8 x 9 1/2 Const DMPAPER_ENV_11 = 21 ' Sobre Nº 11 4 1/2 x 10 3/8 Const DMPAPER_ENV_12 = 22 ' Sobre Nº 12 4 \276 x 11 Const DMPAPER_ENV_14 = 23 ' Sobre Nº 14 5 x 11 1/2 Const DMPAPER_CSHEET = 24 ' Hoja tamaño C Const DMPAPER_DSHEET = 25 ' Hoja tamaño D Const DMPAPER_ESHEET = 26 ' Hoja tamaño E Const DMPAPER_ENV_DL = 27 ' Sobre DL 110 x 220mm Const DMPAPER_ENV_C5 = 28 ' Sobre C5 162 x 229 mm Const DMPAPER_ENV_C3 = 29 ' Sobre C3 324 x 458 mm Const DMPAPER_ENV_C4 = 30 ' Sobre C4 229 x 324 mm Const DMPAPER_ENV_C6 = 31 ' Sobre C6 114 x 162 mm Const DMPAPER_ENV_C65 = 32 ' Sobre C65 114 x 229 mm Const DMPAPER_ENV_B4 = 33 ' Sobre B4 250 x 353 mm Const DMPAPER_ENV_B5 = 34 ' Sobre B5 176 x 250 mm Const DMPAPER_ENV_B6 = 35 ' Sobre B6 176 x 125 mm Const DMPAPER_ENV_ITALY = 36 ' Sobre 110 x 230 mm Const DMPAPER_ENV_MONARCH = 37 ' Sobre monarca 3.875 x 7.5 pulg. Const DMPAPER_ENV_PERSONAL = 38 ' Sobre 6 3/4 3 5/8 x 6 1/2 pulg. Const DMPAPER_FANFOLD_US = 39 ' Continuo USA estándar 14 7/8 x 11 pulg. Const DMPAPER_FANFOLD_STD_GERMAN = 40 ' Continuo alemán estándar 8 1/2 x 12 pulg. Const DMPAPER_FANFOLD_LGL_GERMAN = 41 ' Continuo alemán oficio 8 1/2 x 13 pulg. Const DMPAPER_LAST = DMPAPER_FANFOLD_LGL_GERMAN Const DMPAPER_USER = 256 ' Selecciones de bandeja Const DMBIN_UPPER = 1 Const DMBIN_FIRST = DMBIN_UPPER Const DMBIN_ONLYONE = 1 Const DMBIN_LOWER = 2 Const DMBIN_MIDDLE = 3 Const DMBIN_MANUAL = 4 Const DMBIN_ENVELOPE = 5 Const DMBIN_ENVMANUAL = 6 Const DMBIN_AUTO = 7 Const DMBIN_TRACTOR = 8 Const DMBIN_SMALLFMT = 9 Const DMBIN_LARGEFMT = 10 Const DMBIN_LARGECAPACITY = 11 Const DMBIN_CASSETTE = 14 Const DMBIN_LAST = DMBIN_CASSETTE Const DMBIN_USER = 256 ' las bandejas específicas del dispositivo comienzan aquí ' Calidades de impresión Const DMRES_DRAFT = (-1) Const DMRES_LOW = (-2) Const DMRES_MEDIUM = (-3) Const DMRES_HIGH = (-4) ' Activar/desactivar el color para impresoras de color Const DMCOLOR_MONOCHROME = 1 Const DMCOLOR_COLOR = 2 ' Activación de impresión a doble cara Const DMDUP_SIMPLEX = 1 Const DMDUP_VERTICAL = 2 Const DMDUP_HORIZONTAL = 3 ' Opciones TrueType Const DMTT_BITMAP = 1 ' imprime las fuentes TT como gráficos Const DMTT_DOWNLOAD = 2 ' descarga las fuentes TT como fuentes transferibles Const DMTT_SUBDEV = 3 ' sustituye las fuentes del dispositivo por fuentes TT ' Selecciones de intercalado de copias Const DMCOLLATE_FALSE = 0 Const DMCOLLATE_TRUE = 1 ' Indicadores dmDisplayFlags de DEVMODE Const DM_GRAYSCALE = &H1 Const DM_INTERLACED = &H2 ' GetRegionData/ExtCreateRegion Const RDH_RECTANGLES = 1 Type RGNDATAHEADER dwSize As Long iType As Long nCount As Long nRgnSize As Long rcBound As Rect End Type Type RGNDATA rdh As RGNDATAHEADER Buffer As Byte End Type Type ABC abcA As Long abcB As Long abcC As Long End Type Type ABCFLOAT abcfA As Double abcfB As Double abcfC As Double End Type Type OUTLINETEXTMETRIC otmSize As Long otmTextMetrics As TEXTMETRIC otmFiller As Byte otmPanoseNumber As PANOSE otmfsSelection As Long otmfsType As Long otmsCharSlopeRise As Long otmsCharSlopeRun As Long otmItalicAngle As Long otmEMSquare As Long otmAscent As Long otmDescent As Long otmLineGap As Long otmsCapEmHeight As Long otmsXHeight As Long otmrcFontBox As Rect otmMacAscent As Long otmMacDescent As Long otmMacLineGap As Long otmusMinimumPPEM As Long otmptSubscriptSize As POINTAPI otmptSubscriptOffset As POINTAPI otmptSuperscriptSize As POINTAPI otmptSuperscriptOffset As POINTAPI otmsStrikeoutSize As Long otmsStrikeoutPosition As Long otmsUnderscorePosition As Long otmsUnderscoreSize As Long otmpFamilyName As String otmpFaceName As String otmpStyleName As String otmpFullName As String End Type Type POLYTEXT x As Long y As Long n As Long lpStr As String uiFlags As Long rcl As Rect pdx As Long End Type Type FIXED fract As Integer Value As Integer End Type Type MAT2 eM11 As FIXED eM12 As FIXED eM21 As FIXED eM22 As FIXED End Type Type GLYPHMETRICS gmBlackBoxX As Long gmBlackBoxY As Long gmptGlyphOrigin As POINTAPI gmCellIncX As Integer gmCellIncY As Integer End Type ' Constantes de GetGlyphOutline Const GGO_METRICS = 0 Const GGO_BITMAP = 1 Const GGO_NATIVE = 2 Const TT_POLYGON_TYPE = 24 Const TT_PRIM_LINE = 1 Const TT_PRIM_QSPLINE = 2 Type POINTFX x As FIXED y As FIXED End Type Type TTPOLYCURVE wType As Integer cpfx As Integer apfx As POINTFX End Type Type TTPOLYGONHEADER cb As Long dwType As Long pfxStart As POINTFX End Type Type RASTERIZER_STATUS nSize As Integer wFlags As Integer nLanguageID As Integer End Type ' Bits definidos en los indicadores wFlags de RASTERIZER_STATUS Const TT_AVAILABLE = &H1 Const TT_ENABLED = &H2 Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long Declare Function AnimatePalette Lib "gdi32" Alias "AnimatePaletteA" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteColors As PALETTEENTRY) As Long Declare Function Arc Lib "gdi32" Alias "Arc" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Declare Function CancelDC Lib "gdi32" Alias "CancelDC" (ByVal hdc As Long) As Long Declare Function Chord Lib "gdi32" Alias "Chord" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long Declare Function CloseMetaFile Lib "gdi32" Alias "CloseMetaFile" (ByVal hMF As Long) As Long Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long Declare Function CopyMetaFile Lib "gdi32" Alias "CopyMetaFileA" (ByVal hMF As Long, ByVal lpFileName As String) As Long Declare Function CreateBitmap Lib "gdi32" Alias "CreateBitmap" (ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long Declare Function CreateBitmapIndirect Lib "gdi32" Alias "CreateBitmapIndirect" (lpBitmap As BITMAP) As Long Declare Function CreateBrushIndirect Lib "gdi32" Alias "CreateBrushIndirect" (lpLogBrush As LOGBRUSH) As Long Declare Function CreateCompatibleBitmap Lib "gdi32" Alias "CreateCompatibleBitmap" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Declare Function CreateDiscardableBitmap Lib "gdi32" Alias "CreateDiscardableBitmap" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Declare Function CreateCompatibleDC Lib "gdi32" Alias "CreateCompatibleDC" (ByVal hdc As Long) As Long Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long Declare Function CreateDIBitmap Lib "gdi32" Alias "CreateDIBitmap" (ByVal hdc As Long, lpInfoHeader As BITMAPINFOHEADER, ByVal dwUsage As Long, lpInitBits As Any, lpInitInfo As BITMAPINFO, ByVal wUsage As Long) As Long Declare Function CreateDIBPatternBrush Lib "gdi32" Alias "CreateDIBPatternBrush" (ByVal hPackedDIB As Long, ByVal wUsage As Long) As Long Declare Function CreateDIBPatternBrushPt Lib "gdi32" Alias "CreateDIBPatternBrushPt" (lpPackedDIB As Any, ByVal iUsage As Long) As Long Declare Function CreateEllipticRgnIndirect Lib "gdi32" Alias "CreateEllipticRgnIndirect" (lpRect As Rect) As Long Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long Declare Function CreateHatchBrush Lib "gdi32" Alias "CreateHatchBrush" (ByVal nIndex As Long, ByVal crColor As Long) As Long Declare Function CreateIC Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long Declare Function CreateMetaFile Lib "gdi32" Alias "CreateMetaFileA" (ByVal lpString As String) As Long Declare Function CreatePalette Lib "gdi32" Alias "CreatePalette" (lpLogPalette As LOGPALETTE) As Long Declare Function CreatePen Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long Declare Function CreatePenIndirect Lib "gdi32" Alias "CreatePenIndirect" (lpLogPen As LOGPEN) As Long Declare Function CreateRectRgn Lib "gdi32" Alias "CreateRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function CreateRectRgnIndirect Lib "gdi32" Alias "CreateRectRgnIndirect" (lpRect As RECT) As Long Declare Function CreatePolyPolygonRgn Lib "gdi32" Alias "CreatePolyPolygonRgn" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Declare Function CreatePatternBrush Lib "gdi32" Alias "CreatePatternBrush" (ByVal hBitmap As Long) As Long Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long Declare Function CreateScalableFontResource Lib "gdi32" Alias "CreateScalableFontResourceA" (ByVal fHidden As Long, ByVal lpszResourceFile As String, ByVal lpszFontFile As String, ByVal lpszCurrentPath As String) As Long Declare Function CreateSolidBrush Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor As Long) As Long Declare Function DeleteDC Lib "gdi32" Alias "DeleteDC" (ByVal hdc As Long) As Long Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long Declare Function DeleteMetaFile Lib "gdi32" Alias "DeleteMetaFile" (ByVal hMF As Long) As Long ' Selección de modo para la función de modo del dispositivo Const DM_UPDATE = 1 Const DM_COPY = 2 Const DM_PROMPT = 4 Const DM_MODIFY = 8 Const DM_IN_BUFFER = DM_MODIFY Const DM_IN_PROMPT = DM_PROMPT Const DM_OUT_BUFFER = DM_COPY Const DM_OUT_DEFAULT = DM_UPDATE ' Índices de capacidades del dispositivo Const DC_FIELDS = 1 Const DC_PAPERS = 2 Const DC_PAPERSIZE = 3 Const DC_MINEXTENT = 4 Const DC_MAXEXTENT = 5 Const DC_BINS = 6 Const DC_DUPLEX = 7 Const DC_SIZE = 8 Const DC_EXTRA = 9 Const DC_VERSION = 10 Const DC_DRIVER = 11 Const DC_BINNAMES = 12 Const DC_ENUMRESOLUTIONS = 13 Const DC_FILEDEPENDENCIES = 14 Const DC_TRUETYPE = 15 Const DC_PAPERNAMES = 16 Const DC_ORIENTATION = 17 Const DC_COPIES = 18 ' Campos de bits del valor de retorno (DWORD) para DC_TRUETYPE Const DCTT_BITMAP = &H1& Const DCTT_DOWNLOAD = &H2& Const DCTT_SUBDEV = &H4& Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, ByVal lpOutput As String, lpDevMode As DEVMODE) As Long Declare Function Ellipse Lib "gdi32" Alias "Ellipse" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function EqualRgn Lib "gdi32" Alias "EqualRgn" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long Declare Function Escape Lib "gdi32" Alias "Escape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal nCount As Long, ByVal lpInData As String, lpOutData As Any) As Long Declare Function ExtEscape Lib "gdi32" Alias "ExtEscape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal cbInput As Long, ByVal lpszInData As String, ByVal cbOutput As Long, ByVal lpszOutData As String) As Long Declare Function DrawEscape Lib "gdi32" Alias "DrawEscape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal cbInput As Long, ByVal lpszInData As String) As Long Declare Function ExcludeClipRect Lib "gdi32" Alias "ExcludeClipRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function ExtCreateRegion Lib "gdi32" Alias "ExtCreateRegion" (lpXform As xform, ByVal nCount As Long, lpRgnData As RGNDATA) As Long Declare Function ExtFloodFill Lib "gdi32" Alias "ExtFloodFill" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long Declare Function FillRgn Lib "gdi32" Alias "FillRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long Declare Function FrameRgn Lib "gdi32" Alias "FrameRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Declare Function FloodFill Lib "gdi32" Alias "FloodFill" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long Declare Function GetROP2 Lib "gdi32" Alias "GetROP2" (ByVal hdc As Long) As Long Declare Function GetAspectRatioFilterEx Lib "gdi32" Alias "GetAspectRatioFilterEx" (ByVal hdc As Long, lpAspectRatio As SIZE) As Long Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" (ByVal hdc As Long) As Long Declare Function GetBkMode Lib "gdi32" Alias "GetBkMode" (ByVal hdc As Long) As Long Declare Function GetBitmapBits Lib "gdi32" Alias "GetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long Declare Function GetBitmapDimensionEx Lib "gdi32" Alias "GetBitmapDimensionEx" (ByVal hBitmap As Long, lpDimension As SIZE) As Long Declare Function GetBoundsRect Lib "gdi32" Alias "GetBoundsRect" (ByVal hdc As Long, lprcBounds As RECT, ByVal flags As Long) As Long Declare Function GetCharWidth Lib "gdi32" Alias "GetCharWidthA" (ByVal hdc As Long, ByVal wFirstChar As Long, ByVal wLastChar As Long, lpBuffer As Long) As Long Declare Function GetCharWidth32 Lib "gdi32" Alias "GetCharWidth32A" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, lpBuffer As Long) As Long Declare Function GetCharWidthFloat Lib "gdi32" Alias "GetCharWidthFloatA" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, pxBuffer As Double) As Long Declare Function GetCharABCWidths Lib "gdi32" Alias "GetCharABCWidthsA" (ByVal hdc As Long, ByVal uFirstChar As Long, ByVal uLastChar As Long, lpabc As ABC) As Long Declare Function GetCharABCWidthsFloat Lib "gdi32" Alias "GetCharABCWidthsFloatA" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, lpABCF As ABCFLOAT) As Long Declare Function GetClipBox Lib "gdi32" Alias "GetClipBox" (ByVal hdc As Long, lpRect As RECT) As Long Declare Function GetClipRgn Lib "gdi32" Alias "GetClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long Declare Function GetMetaRgn Lib "gdi32" Alias "GetMetaRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long Declare Function GetCurrentObject Lib "gdi32" Alias "GetCurrentObject" (ByVal hdc As Long, ByVal uObjectType As Long) As Long Declare Function GetCurrentPositionEx Lib "gdi32" Alias "GetCurrentPositionEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long Declare Function GetDIBits Lib "gdi32" Alias "GetDIBits" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long Declare Function GetFontData Lib "gdi32" Alias "GetFontDataA" (ByVal hdc As Long, ByVal dwTable As Long, ByVal dwOffset As Long, lpvBuffer As Any, ByVal cbData As Long) As Long Declare Function GetGlyphOutline Lib "gdi32" Alias "GetGlyphOutlineA" (ByVal hdc As Long, ByVal uChar As Long, ByVal fuFormat As Long, lpgm As GLYPHMETRICS, ByVal cbBuffer As Long, lpBuffer As Any, lpmat2 As MAT2) As Long Declare Function GetGraphicsMode Lib "gdi32" Alias "GetGraphicsMode" (ByVal hdc As Long) As Long Declare Function GetMapMode Lib "gdi32" Alias "GetMapMode" (ByVal hdc As Long) As Long Declare Function GetMetaFileBitsEx Lib "gdi32" Alias "GetMetaFileBitsEx" (ByVal hMF As Long, ByVal nSize As Long, lpvData As Any) As Long Declare Function GetMetaFile Lib "gdi32" Alias "GetMetaFileA" (ByVal lpFileName As String) As Long Declare Function GetNearestColor Lib "gdi32" Alias "GetNearestColor" (ByVal hdc As Long, ByVal crColor As Long) As Long Declare Function GetNearestPaletteIndex Lib "gdi32" Alias "GetNearestPaletteIndex" (ByVal hPalette As Long, ByVal crColor As Long) As Long Declare Function GetObjectType Lib "gdi32" Alias "GetObjectType" (ByVal hgdiobj As Long) As Long Declare Function GetOutlineTextMetrics Lib "gdi32" Alias "GetOutlineTextMetricsA" (ByVal hdc As Long, ByVal cbData As Long, lpotm As OUTLINETEXTMETRIC) As Long Declare Function GetPaletteEntries Lib "gdi32" Alias "GetPaletteEntries" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long Declare Function GetPolyFillMode Lib "gdi32" Alias "GetPolyFillMode" (ByVal hdc As Long) As Long Declare Function GetRasterizerCaps Lib "gdi32" Alias "GetRasterizerCaps" (lpraststat As RASTERIZER_STATUS, ByVal cb As Long) As Long Declare Function GetRegionData Lib "gdi32" Alias "GetRegionDataA" (ByVal hRgn As Long, ByVal dwCount As Long, lpRgnData As RgnData) As Long Declare Function GetRgnBox Lib "gdi32" Alias "GetRgnBox" (ByVal hRgn As Long, lpRect As RECT) As Long Declare Function GetStockObject Lib "gdi32" Alias "GetStockObject" (ByVal nIndex As Long) As Long Declare Function GetStretchBltMode Lib "gdi32" Alias "GetStretchBltMode" (ByVal hdc As Long) As Long Declare Function GetSystemPaletteEntries Lib "gdi32" Alias "GetSystemPaletteEntries" (ByVal hdc As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long Declare Function GetSystemPaletteUse Lib "gdi32" Alias "GetSystemPaletteUse" (ByVal hdc As Long) As Long Declare Function GetTextCharacterExtra Lib "gdi32" (ByVal hdc As Long) As Long Declare Function GetTextAlign Lib "gdi32" Alias "GetTextAlign" (ByVal hdc As Long) As Long Declare Function GetTextColor Lib "gdi32" Alias "GetTextColor" (ByVal hdc As Long) As Long Declare Function GetTextExtentPoint Lib "gdi32" Alias "GetTextExtentPointA" (ByVal hdc As Long, ByVal lpszString As String, ByVal cbString As Long, lpSize As SIZE) As Long Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As SIZE) As Long Declare Function GetTextExtentExPoint Lib "gdi32" Alias "GetTextExtentExPointA" (ByVal hdc As Long, ByVal lpszStr As String, ByVal cchString As Long, ByVal nMaxExtent As Long, lpnFit As Long, alpDx As Long, lpSize As SIZE) As Long Declare Function GetViewportExtEx Lib "gdi32" Alias "GetViewportExtEx" (ByVal hdc As Long, lpSize As SIZE) As Long Declare Function GetViewportOrgEx Lib "gdi32" Alias "GetViewportOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long Declare Function GetWindowExtEx Lib "gdi32" Alias "GetWindowExtEx" (ByVal hdc As Long, lpSize As SIZE) As Long Declare Function GetWindowOrgEx Lib "gdi32" Alias "GetWindowOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long Declare Function IntersectClipRect Lib "gdi32" Alias "IntersectClipRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function InvertRgn Lib "gdi32" Alias "InvertRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long Declare Function LineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long Declare Function MaskBlt Lib "gdi32" Alias "MaskBlt" (ByVal hdcDest As Long, ByVal nXDest As Long, ByVal nYDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long, ByVal dwRop As Long) As Long Declare Function PlgBlt Lib "gdi32" Alias "PlgBlt" (ByVal hdcDest As Long, lpPoint As POINTAPI, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long) As Long Declare Function OffsetClipRgn Lib "gdi32" Alias "OffsetClipRgn" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long Declare Function OffsetRgn Lib "gdi32" Alias "OffsetRgn" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long Declare Function PatBlt Lib "gdi32" Alias "PatBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal dwRop As Long) As Long Declare Function Pie Lib "gdi32" Alias "Pie" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long Declare Function PlayMetaFile Lib "gdi32" Alias "PlayMetaFile" (ByVal hdc As Long, ByVal hMF As Long) As Long Declare Function PaintRgn Lib "gdi32" Alias "PaintRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long Declare Function PolyPolygon Lib "gdi32" Alias "PolyPolygon" (ByVal hdc As Long, lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long) As Long Declare Function PtInRegion Lib "gdi32" Alias "PtInRegion" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long Declare Function PtVisible Lib "gdi32" Alias "PtVisible" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long Declare Function RectVisible Lib "gdi32" Alias "RectVisible" (ByVal hdc As Long, lpRect As RECT) As Long Declare Function RectInRegion Lib "gdi32" Alias "RectInRegion" (ByVal hRgn As Long, lpRect As RECT) As Long Declare Function Rectangle Lib "gdi32" Alias "Rectangle" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function RestoreDC Lib "gdi32" Alias "RestoreDC" (ByVal hdc As Long, ByVal nSavedDC As Long) As Long Declare Function ResetDC Lib "gdi32" Alias "ResetDCA" (ByVal hdc As Long, lpInitData As DEVMODE) As Long Declare Function RealizePalette Lib "gdi32" Alias "RealizePalette" (ByVal hdc As Long) As Long Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long Declare Function RoundRect Lib "gdi32" Alias "RoundRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long Declare Function ResizePalette Lib "gdi32" Alias "ResizePalette" (ByVal hPalette As Long, ByVal nNumEntries As Long) As Long Declare Function SaveDC Lib "gdi32" Alias "SaveDC" (ByVal hdc As Long) As Long Declare Function SelectClipRgn Lib "gdi32" Alias "SelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long Declare Function ExtSelectClipRgn Lib "gdi32" Alias "ExtSelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal fnMode As Long) As Long Declare Function SetMetaRgn Lib "gdi32" Alias "SetMetaRgn" (ByVal hdc As Long) As Long Declare Function SelectObject Lib "gdi32" Alias "SelectObject" (ByVal hdc As Long, ByVal hObject As Long) As Long Declare Function SelectPalette Lib "gdi32" Alias "SelectPalette" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long Declare Function SetBkColor Lib "gdi32" Alias "SetBkColor" (ByVal hdc As Long, ByVal crColor As Long) As Long Declare Function SetBkMode Lib "gdi32" Alias "SetBkMode" (ByVal hdc As Long, ByVal nBkMode As Long) As Long Declare Function SetBitmapBits Lib "gdi32" Alias "SetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long Declare Function SetBoundsRect Lib "gdi32" Alias "SetBoundsRect" (ByVal hdc As Long, lprcBounds As RECT, ByVal flags As Long) As Long Declare Function SetDIBits Lib "gdi32" Alias "SetDIBits" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long Declare Function SetDIBitsToDevice Lib "gdi32" Alias "SetDIBitsToDevice" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal Scan As Long, ByVal NumScans As Long, Bits As Any, BitsInfo As BITMAPINFO, ByVal wUsage As Long) As Long Declare Function SetMapperFlags Lib "gdi32" Alias "SetMapperFlags" (ByVal hdc As Long, ByVal dwFlag As Long) As Long Declare Function SetGraphicsMode Lib "gdi32" Alias "SetGraphicsMode" (ByVal hdc As Long, ByVal iMode As Long) As Long Declare Function SetMapMode Lib "gdi32" Alias "SetMapMode" (ByVal hdc As Long, ByVal nMapMode As Long) As Long Declare Function SetMetaFileBitsEx Lib "gdi32" Alias "SetMetaFileBitsEx" (ByVal nSize As Long, lpData As Byte) As Long Declare Function SetPaletteEntries Lib "gdi32" Alias "SetPaletteEntries" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long Declare Function SetPixelV Lib "gdi32" Alias "SetPixelV" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long Declare Function SetPolyFillMode Lib "gdi32" Alias "SetPolyFillMode" (ByVal hdc As Long, ByVal nPolyFillMode As Long) As Long Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long Declare Function SetRectRgn Lib "gdi32" Alias "SetRectRgn" (ByVal hRgn As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function StretchDIBits Lib "gdi32" Alias "StretchDIBits" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long Declare Function SetROP2 Lib "gdi32" Alias "SetROP2" (ByVal hdc As Long, ByVal nDrawMode As Long) As Long Declare Function SetStretchBltMode Lib "gdi32" Alias "SetStretchBltMode" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long Declare Function SetSystemPaletteUse Lib "gdi32" Alias "SetSystemPaletteUse" (ByVal hdc As Long, ByVal wUsage As Long) As Long Declare Function SetTextCharacterExtra Lib "gdi32" Alias "SetTextCharacterExtraA" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long Declare Function SetTextColor Lib "gdi32" Alias "SetTextColor" (ByVal hdc As Long, ByVal crColor As Long) As Long Declare Function SetTextAlign Lib "gdi32" Alias "SetTextAlign" (ByVal hdc As Long, ByVal wFlags As Long) As Long Declare Function SetTextJustification Lib "gdi32" Alias "SetTextJustification" (ByVal hdc As Long, ByVal nBreakExtra As Long, ByVal nBreakCount As Long) As Long Declare Function UpdateColors Lib "gdi32" Alias "UpdateColors" (ByVal hdc As Long) As Long Declare Function GetProcAddress Lib "kernel32" Alias "GetProcAddress" (ByVal hModule As Long, ByVal lpProcName As String) As Long Declare Function PlayMetaFileRecord Lib "gdi32" Alias "PlayMetaFileRecord" (ByVal hdc As Long, lpHandletable As HANDLETABLE, lpMetaRecord As METARECORD, ByVal nHandles As Long) As Long Declare Function CloseEnhMetaFile Lib "gdi32" Alias "CloseEnhMetaFile" (ByVal hdc As Long) As Long Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long Declare Function CreateEnhMetaFile Lib "gdi32" Alias "CreateEnhMetaFileA" (ByVal hdcRef As Long, ByVal lpFileName As String, lpRect As RECT, ByVal lpDescription As String) As Long Declare Function DeleteEnhMetaFile Lib "gdi32" Alias "DeleteEnhMetaFile" (ByVal hemf As Long) As Long Declare Function EnumEnhMetaFile Lib "gdi32" Alias "EnumEnhMetaFile" (ByVal hdc As Long, ByVal hemf As Long, ByVal lpEnhMetaFunc As Long, lpData As Any, lpRect As RECT) As Long Declare Function GetEnhMetaFile Lib "gdi32" Alias "GetEnhMetaFileA" (ByVal lpszMetaFile As String) As Long Declare Function GetEnhMetaFileBits Lib "gdi32" Alias "GetEnhMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long, lpbBuffer As Byte) As Long Declare Function GetEnhMetaFileDescription Lib "gdi32" Alias "GetEnhMetaFileDescriptionA" (ByVal hemf As Long, ByVal cchBuffer As Long, ByVal lpszDescription As String) As Long Declare Function GetEnhMetaFileHeader Lib "gdi32" Alias "GetEnhMetaFileHeader" (ByVal hemf As Long, ByVal cbBuffer As Long, lpemh As ENHMETAHEADER) As Long Declare Function GetEnhMetaFilePaletteEntries Lib "gdi32" Alias "GetEnhMetaFilePaletteEntries" (ByVal hemf As Long, ByVal cEntries As Long, lppe As PALETTEENTRY) As Long Declare Function GetWinMetaFileBits Lib "gdi32" Alias "GetWinMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long, lpbBuffer As Byte, ByVal fnMapMode As Long, ByVal hdcRef As Long) As Long Declare Function PlayEnhMetaFile Lib "gdi32" Alias "PlayEnhMetaFile" (ByVal hdc As Long, ByVal hemf As Long, lpRect As RECT) As Long Declare Function PlayEnhMetaFileRecord Lib "gdi32" Alias "PlayEnhMetaFileRecord" (ByVal hdc As Long, lpHandletable As HANDLETABLE, lpEnhMetaRecord As ENHMETARECORD, ByVal nHandles As Long) As Long Declare Function SetEnhMetaFileBits Lib "gdi32" Alias "SetEnhMetaFileBits" (ByVal cbBuffer As Long, lpData As Byte) As Long Declare Function SetWinMetaFileBits Lib "gdi32" Alias "SetWinMetaFileBits" (ByVal cbBuffer As Long, lpbBuffer As Byte, ByVal hdcRef As Long, lpmfp As METAFILEPICT) As Long Declare Function GdiComment Lib "gdi32" Alias "GdiComment" (ByVal hdc As Long, ByVal cbSize As Long, lpData As Byte) As Long Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" (ByVal hdc As Long, lpMetrics As TEXTMETRIC) As Long Declare Function AngleArc Lib "gdi32" Alias "AngleArc" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dwRadius As Long, ByVal eStartAngle As Double, ByVal eSweepAngle As Double) As Long Declare Function PolyPolyline Lib "gdi32" Alias "PolyPolyline" (ByVal hdc As Long, lppt As POINTAPI, lpdwPolyPoints As Long, ByVal cCount As Long) As Long Declare Function GetWorldTransform Lib "gdi32" Alias "GetWorldTransform" (ByVal hdc As Long, lpXform As xform) As Long Declare Function SetWorldTransform Lib "gdi32" Alias "SetWorldTransform" (ByVal hdc As Long, lpXform As xform) As Long Declare Function ModifyWorldTransform Lib "gdi32" Alias "ModifyWorldTransform" (ByVal hdc As Long, lpXform As xform, ByVal iMode As Long) As Long Declare Function CombineTransform Lib "gdi32" Alias "CombineTransform" (lpxformResult As xform, lpxform1 As xform, lpxform2 As xform) As Long ' Indicadores para COLORADJUSTMENT Const CA_NEGATIVE = &H1 Const CA_LOG_FILTER = &H2 ' Valores de IlluminantIndex Const ILLUMINANT_DEVICE_DEFAULT = 0 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_F2 = 8 Const ILLUMINANT_MAX_INDEX = ILLUMINANT_F2 Const ILLUMINANT_TUNGSTEN = ILLUMINANT_A Const ILLUMINANT_DAYLIGHT = ILLUMINANT_C Const ILLUMINANT_FLUORESCENT = ILLUMINANT_F2 Const ILLUMINANT_NTSC = ILLUMINANT_C ' Mínimo y máximo para RedGamma, GreenGamma, BlueGamma Const RGB_GAMMA_MIN = 2500 'words Const RGB_GAMMA_MAX = 65000 ' Mínimo y máximo para ReferenceBlack y ReferenceWhite Const REFERENCE_WHITE_MIN = 6000 ' palabras Const REFERENCE_WHITE_MAX = 10000 Const REFERENCE_BLACK_MIN = 0 Const REFERENCE_BLACK_MAX = 4000 ' Mínimo y máximo para Contrast, Brightness, Colorfulness, RedGreenTint Const COLOR_ADJ_MIN = -100 ' breves Const COLOR_ADJ_MAX = 100 Type COLORADJUSTMENT caSize As Integer caFlags As Integer caIlluminantIndex As Integer caRedGamma As Integer caGreenGamma As Integer caBlueGamma As Integer caReferenceBlack As Integer caReferenceWhite As Integer caContrast As Integer caBrightness As Integer caColorfulness As Integer caRedGreenTint As Integer End Type Declare Function SetColorAdjustment Lib "gdi32" Alias "SetColorAdjustment" (ByVal hdc As Long, lpca As COLORADJUSTMENT) As Long Declare Function GetColorAdjustment Lib "gdi32" Alias "GetColorAdjustment" (ByVal hdc As Long, lpca As COLORADJUSTMENT) As Long Declare Function CreateHalftonePalette Lib "gdi32" Alias "CreateHalftonePalette" (ByVal hdc As Long) As Long Type DOCINFO cbSize As Long lpszDocName As String lpszOutput As String End Type Declare Function StartDoc Lib "gdi32" Alias "StartDocA" (ByVal hdc As Long, lpdi As DOCINFO) As Long Declare Function StartPage Lib "gdi32" Alias "StartPage" (ByVal hdc As Long) As Long Declare Function EndPage Lib "gdi32" Alias "EndPage" (ByVal hdc As Long) As Long Declare Function EndDoc Lib "gdi32" Alias "EndDoc" (ByVal hdc As Long) As Long Declare Function AbortDoc Lib "gdi32" Alias "AbortDoc" (ByVal hdc As Long) As Long Declare Function AbortPath Lib "gdi32" Alias "AbortPath" (ByVal hdc As Long) As Long Declare Function ArcTo Lib "gdi32" Alias "ArcTo" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long Declare Function BeginPath Lib "gdi32" Alias "BeginPath" (ByVal hdc As Long) As Long Declare Function CloseFigure Lib "gdi32" Alias "CloseFigure" (ByVal hdc As Long) As Long Declare Function EndPath Lib "gdi32" Alias "EndPath" (ByVal hdc As Long) As Long Declare Function FillPath Lib "gdi32" Alias "FillPath" (ByVal hdc As Long) As Long Declare Function FlattenPath Lib "gdi32" Alias "FlattenPath" (ByVal hdc As Long) As Long Declare Function GetPath Lib "gdi32" Alias "GetPath" (ByVal hdc As Long, lpPoint As POINTAPI, lpTypes As Byte, ByVal nSize As Long) As Long Declare Function PathToRegion Lib "gdi32" Alias "PathToRegion" (ByVal hdc As Long) As Long Declare Function PolyDraw Lib "gdi32" Alias "PolyDraw" (ByVal hdc As Long, lppt As POINTAPI, lpbTypes As Byte, ByVal cCount As Long) As Long Declare Function SelectClipPath Lib "gdi32" Alias "SelectClipPath" (ByVal hdc As Long, ByVal iMode As Long) As Long Declare Function SetArcDirection Lib "gdi32" Alias "SetArcDirection" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long Declare Function SetMiterLimit Lib "gdi32" Alias "SetMiterLimit" (ByVal hdc As Long, ByVal eNewLimit As Double, peOldLimit As Double) As Long Declare Function StrokeAndFillPath Lib "gdi32" Alias "StrokeAndFillPath" (ByVal hdc As Long) As Long Declare Function StrokePath Lib "gdi32" Alias "StrokePath" (ByVal hdc As Long) As Long Declare Function WidenPath Lib "gdi32" Alias "WidenPath" (ByVal hdc As Long) As Long Declare Function ExtCreatePen Lib "gdi32" Alias "ExtCreatePen" (ByVal dwPenStyle As Long, ByVal dwWidth As Long, lplb As LOGBRUSH, ByVal dwStyleCount As Long, lpStyle As Long) As Long Declare Function GetMiterLimit Lib "gdi32" Alias "GetMiterLimit" (ByVal hdc As Long, peLimit As Double) As Long Declare Function GetArcDirection Lib "gdi32" Alias "GetArcDirection" (ByVal hdc As Long) As Long Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long Declare Function MoveToEx Lib "gdi32" Alias "MoveToEx" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long Declare Function ExtTextOut Lib "gdi32" Alias "ExtTextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal wOptions As Long, lpRect As Rect, ByVal lpString As String, ByVal nCount As Long, lpDx As Long) As Long Declare Function PolyTextOut Lib "gdi32" Alias "PolyTextOutA" (ByVal hdc As Long, pptxt As POLYTEXT, cStrings As Long) As Long Declare Function CreatePolygonRgn Lib "gdi32" Alias "CreatePolygonRgn" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Declare Function DPtoLP Lib "gdi32" Alias "DPtoLP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long Declare Function LPtoDP Lib "gdi32" Alias "LPtoDP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long Declare Function Polygon Lib "gdi32" Alias "Polygon" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long Declare Function PolyBezier Lib "gdi32" Alias "PolyBezier" (ByVal hdc As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long Declare Function PolyBezierTo Lib "gdi32" Alias "PolyBezierTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long Declare Function PolylineTo Lib "gdi32" Alias "PolylineTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long Declare Function SetViewportExtEx Lib "gdi32" Alias "SetViewportExtEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long Declare Function SetViewportOrgEx Lib "gdi32" Alias "SetViewportOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long Declare Function SetWindowOrgEx Lib "gdi32" Alias "SetWindowOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long Declare Function SetWindowExtEx Lib "gdi32" Alias "SetWindowExtEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long Declare Function OffsetViewportOrgEx Lib "gdi32" Alias "OffsetViewportOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long Declare Function OffsetWindowOrgEx Lib "gdi32" Alias "OffsetWindowOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long Declare Function ScaleWindowExtEx Lib "gdi32" Alias "ScaleWindowExtEx" (ByVal hdc As Long, ByVal nXnum As Long, ByVal nXdenom As Long, ByVal nYnum As Long, ByVal nYdenom As Long, lpSize As SIZE) As Long Declare Function ScaleViewportExtEx Lib "gdi32" Alias "ScaleViewportExtEx" (ByVal hdc As Long, ByVal nXnum As Long, ByVal nXdenom As Long, ByVal nYnum As Long, ByVal nYdenom As Long, lpSize As SIZE) As Long Declare Function SetBitmapDimensionEx Lib "gdi32" Alias "SetBitmapDimensionEx" (ByVal hbm As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long Declare Function SetBrushOrgEx Lib "gdi32" Alias "SetBrushOrgEx" (ByVal hdc As Long, ByVal nXOrg As Long, ByVal nYOrg As Long, lppt As POINTAPI) As Long Declare Function GetTextFace Lib "gdi32" Alias "GetTextFaceA" (ByVal hdc As Long, ByVal nCount As Long, ByVal lpFacename As String) As Long Const FONTMAPPER_MAX = 10 Type KERNINGPAIR wFirst As Integer wSecond As Integer iKernAmount As Long End Type Declare Function GetKerningPairs Lib "gdi32" Alias "GetKerningPairsA" (ByVal hdc As Long, ByVal cPairs As Long, lpkrnpair As KERNINGPAIR) As Long Declare Function GetDCOrgEx Lib "gdi32" Alias "GetDCOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long Declare Function UnrealizeObject Lib "gdi32" Alias "UnrealizeObject" (ByVal hObject As Long) As Long Declare Function GdiFlush Lib "gdi32" Alias "GdiFlush" () As Long Declare Function GdiSetBatchLimit Lib "gdi32" Alias "GdiSetBatchLimit" (ByVal dwLimit As Long) As Long Declare Function GdiGetBatchLimit Lib "gdi32" Alias "GdiGetBatchLimit" () As Long ' Constantes de metarchivo ampliadas Const ENHMETA_SIGNATURE = &H464D4520 ' Indicador de objeto almacenado que se usa en el índice del ' controlador de objeto en los registros de metarchivo ampliados. ' Por ejemplo, el índice del controlador de objeto (META_STOCK_OBJECT Or BLACK_BRUSH) ' representa el objeto almacenado BLACK_BRUSH. Const ENHMETA_STOCK_OBJECT = &H80000000 ' Tipos de registro de metarchivo ampliados. Const EMR_HEADER = 1 Const EMR_POLYBEZIER = 2 Const EMR_POLYGON = 3 Const EMR_POLYLINE = 4 Const EMR_POLYBEZIERTO = 5 Const EMR_POLYLINETO = 6 Const EMR_POLYPOLYLINE = 7 Const EMR_POLYPOLYGON = 8 Const EMR_SETWINDOWEXTEX = 9 Const EMR_SETWINDOWORGEX = 10 Const EMR_SETVIEWPORTEXTEX = 11 Const EMR_SETVIEWPORTORGEX = 12 Const EMR_SETBRUSHORGEX = 13 Const EMR_EOF = 14 Const EMR_SETPIXELV = 15 Const EMR_SETMAPPERFLAGS = 16 Const EMR_SETMAPMODE = 17 Const EMR_SETBKMODE = 18 Const EMR_SETPOLYFILLMODE = 19 Const EMR_SETROP2 = 20 Const EMR_SETSTRETCHBLTMODE = 21 Const EMR_SETTEXTALIGN = 22 Const EMR_SETCOLORADJUSTMENT = 23 Const EMR_SETTEXTCOLOR = 24 Const EMR_SETBKCOLOR = 25 Const EMR_OFFSETCLIPRGN = 26 Const EMR_MOVETOEX = 27 Const EMR_SETMETARGN = 28 Const EMR_EXCLUDECLIPRECT = 29 Const EMR_INTERSECTCLIPRECT = 30 Const EMR_SCALEVIEWPORTEXTEX = 31 Const EMR_SCALEWINDOWEXTEX = 32 Const EMR_SAVEDC = 33 Const EMR_RESTOREDC = 34 Const EMR_SETWORLDTRANSFORM = 35 Const EMR_MODIFYWORLDTRANSFORM = 36 Const EMR_SELECTOBJECT = 37 Const EMR_CREATEPEN = 38 Const EMR_CREATEBRUSHINDIRECT = 39 Const EMR_DELETEOBJECT = 40 Const EMR_ANGLEARC = 41 Const EMR_ELLIPSE = 42 Const EMR_RECTANGLE = 43 Const EMR_ROUNDRECT = 44 Const EMR_ARC = 45 Const EMR_CHORD = 46 Const EMR_PIE = 47 Const EMR_SELECTPALETTE = 48 Const EMR_CREATEPALETTE = 49 Const EMR_SETPALETTEENTRIES = 50 Const EMR_RESIZEPALETTE = 51 Const EMR_REALIZEPALETTE = 52 Const EMR_EXTFLOODFILL = 53 Const EMR_LINETO = 54 Const EMR_ARCTO = 55 Const EMR_POLYDRAW = 56 Const EMR_SETARCDIRECTION = 57 Const EMR_SETMITERLIMIT = 58 Const EMR_BEGINPATH = 59 Const EMR_ENDPATH = 60 Const EMR_CLOSEFIGURE = 61 Const EMR_FILLPATH = 62 Const EMR_STROKEANDFILLPATH = 63 Const EMR_STROKEPATH = 64 Const EMR_FLATTENPATH = 65 Const EMR_WIDENPATH = 66 Const EMR_SELECTCLIPPATH = 67 Const EMR_ABORTPATH = 68 Const EMR_GDICOMMENT = 70 Const EMR_FILLRGN = 71 Const EMR_FRAMERGN = 72 Const EMR_INVERTRGN = 73 Const EMR_PAINTRGN = 74 Const EMR_EXTSELECTCLIPRGN = 75 Const EMR_BITBLT = 76 Const EMR_STRETCHBLT = 77 Const EMR_MASKBLT = 78 Const EMR_PLGBLT = 79 Const EMR_SETDIBITSTODEVICE = 80 Const EMR_STRETCHDIBITS = 81 Const EMR_EXTCREATEFONTINDIRECTW = 82 Const EMR_EXTTEXTOUTA = 83 Const EMR_EXTTEXTOUTW = 84 Const EMR_POLYBEZIER16 = 85 Const EMR_POLYGON16 = 86 Const EMR_POLYLINE16 = 87 Const EMR_POLYBEZIERTO16 = 88 Const EMR_POLYLINETO16 = 89 Const EMR_POLYPOLYLINE16 = 90 Const EMR_POLYPOLYGON16 = 91 Const EMR_POLYDRAW16 = 92 Const EMR_CREATEMONOBRUSH = 93 Const EMR_CREATEDIBPATTERNBRUSHPT = 94 Const EMR_EXTCREATEPEN = 95 Const EMR_POLYTEXTOUTA = 96 Const EMR_POLYTEXTOUTW = 97 Const EMR_MIN = 1 Const EMR_MAX = 97 Type emr iType As Long nSize As Long End Type Type emrtext ptlReference As POINTL nchars As Long offString As Long fOptions As Long rcl As RECTL offDx As Long End Type Type EMRABORTPATH pEmr As emr End Type Type EMRBEGINPATH pEmr As emr End Type Type EMRENDPATH pEmr As emr End Type Type EMRCLOSEFIGURE pEmr As emr End Type Type EMRFLATTENPATH pEmr As emr End Type Type EMRWIDENPATH pEmr As emr End Type Type EMRSETMETARGN pEmr As emr End Type Type EMREMRSAVEDC pEmr As emr End Type Type EMRREALIZEPALETTE pEmr As emr End Type Type EMRSELECTCLIPPATH pEmr As emr iMode As Long End Type Type EMRSETBKMODE pEmr As emr iMode As Long End Type Type EMRSETMAPMODE pEmr As emr iMode As Long End Type Type EMRSETPOLYFILLMODE pEmr As emr iMode As Long End Type Type EMRSETROP2 pEmr As emr iMode As Long End Type Type EMRSETSTRETCHBLTMODE pEmr As emr iMode As Long End Type Type EMRSETTEXTALIGN pEmr As emr iMode As Long End Type Type EMRSETMITERLIMIT pEmr As emr eMiterLimit As Double End Type Type EMRRESTOREDC pEmr As emr iRelative As Long End Type Type EMRSETARCDIRECTION pEmr As emr iArcDirection As Long End Type Type EMRSETMAPPERFLAGS pEmr As emr dwFlags As Long End Type Type EMRSETTEXTCOLOR pEmr As emr crColor As Long End Type Type EMRSETBKCOLOR pEmr As emr crColor As Long End Type Type EMRSELECTOBJECT pEmr As emr ihObject As Long End Type Type EMRDELETEOBJECT pEmr As emr ihObject As Long End Type Type EMRSELECTPALETTE pEmr As emr ihPal As Long End Type Type EMRRESIZEPALETTE pEmr As emr ihPal As Long cEntries As Long End Type Type EMRSETPALETTEENTRIES pEmr As emr ihPal As Long iStart As Long cEntries As Long aPalEntries(1) As PALETTEENTRY End Type Type EMRSETCOLORADJUSTMENT pEmr As emr ColorAdjustment As ColorAdjustment End Type Type EMRGDICOMMENT pEmr As emr cbData As Long Data(1) As Integer End Type Type EMREOF pEmr As emr nPalEntries As Long offPalEntries As Long nSizeLast As Long End Type Type EMRLINETO pEmr As emr ptl As POINTL End Type Type EMRMOVETOEX pEmr As emr ptl As POINTL End Type Type EMROFFSETCLIPRGN pEmr As emr ptlOffset As POINTL End Type Type EMRFILLPATH pEmr As emr rclBounds As RECTL End Type Type EMRSTROKEANDFILLPATH pEmr As emr rclBounds As RECTL End Type Type EMRSTROKEPATH pEmr As emr rclBounds As RECTL End Type Type EMREXCLUDECLIPRECT pEmr As emr rclClip As RECTL End Type Type EMRINTERSECTCLIPRECT pEmr As emr rclClip As RECTL End Type Type EMRSETVIEWPORTORGEX pEmr As emr ptlOrigin As POINTL End Type Type EMRSETWINDOWORGEX pEmr As emr ptlOrigin As POINTL End Type Type EMRSETBRUSHORGEX pEmr As emr ptlOrigin As POINTL End Type Type EMRSETVIEWPORTEXTEX pEmr As emr szlExtent As SIZEL End Type Type EMRSETWINDOWEXTEX pEmr As emr szlExtent As SIZEL End Type Type EMRSCALEVIEWPORTEXTEX pEmr As emr xNum As Long xDenom As Long yNum As Long yDemon As Long End Type Type EMRSCALEWINDOWEXTEX pEmr As emr xNum As Long xDenom As Long yNum As Long yDemon As Long End Type Type EMRSETWORLDTRANSFORM pEmr As emr xform As XFORM End Type Type EMRMODIFYWORLDTRANSFORM pEmr As emr xform As XFORM iMode As Long End Type Type EMRSETPIXELV pEmr As emr ptlPixel As POINTL crColor As Long End Type Type EMREXTFLOODFILL pEmr As emr ptlStart As POINTL crColor As Long iMode As Long End Type Type EMRELLIPSE pEmr As emr rclBox As RECTL End Type Type EMRRECTANGLE pEmr As emr rclBox As RECTL End Type Type EMRROUNDRECT pEmr As emr rclBox As RECTL szlCorner As SIZEL End Type Type EMRARC pEmr As emr rclBox As RECTL ptlStart As POINTL ptlEnd As POINTL End Type Type EMRARCTO pEmr As emr rclBox As RECTL ptlStart As POINTL ptlEnd As POINTL End Type Type EMRCHORD pEmr As emr rclBox As RECTL ptlStart As POINTL ptlEnd As POINTL End Type Type EMRPIE pEmr As emr rclBox As RECTL ptlStart As POINTL ptlEnd As POINTL End Type Type EMRANGLEARC pEmr As emr ptlCenter As POINTL nRadius As Long eStartAngle As Double eSweepAngle As Double End Type Type EMRPOLYLINE pEmr As emr rclBounds As RECTL cptl As Long aptl(1) As POINTL End Type Type EMRPOLYBEZIER pEmr As emr rclBounds As RECTL cptl As Long aptl(1) As POINTL End Type Type EMRPOLYGON pEmr As emr rclBounds As RECTL cptl As Long aptl(1) As POINTL End Type Type EMRPOLYBEZIERTO pEmr As emr rclBounds As RECTL cptl As Long aptl(1) As POINTL End Type Type EMRPOLYLINE16 pEmr As emr rclBounds As RECTL cpts As Long apts(1) As POINTS End Type Type EMRPOLYBEZIER16 pEmr As emr rclBounds As RECTL cpts As Long apts(1) As POINTS End Type Type EMRPOLYGON16 pEmr As emr rclBounds As RECTL cpts As Long apts(1) As POINTS End Type Type EMRPLOYBEZIERTO16 pEmr As emr rclBounds As RECTL cpts As Long apts(1) As POINTS End Type Type EMRPOLYLINETO16 pEmr As emr rclBounds As RECTL cpts As Long apts(1) As POINTS End Type Type EMRPOLYDRAW pEmr As emr rclBounds As RECTL cptl As Long aptl(1) As POINTL abTypes(1) As Integer End Type Type EMRPOLYDRAW16 pEmr As emr rclBounds As RECTL cpts As Long apts(1) As POINTS abTypes(1) As Integer End Type Type EMRPOLYPOLYLINE pEmr As emr rclBounds As RECTL nPolys As Long cptl As Long aPolyCounts(1) As Long aptl(1) As POINTL End Type Type EMRPOLYPOLYGON pEmr As emr rclBounds As RECTL nPolys As Long cptl As Long aPolyCounts(1) As Long aptl(1) As POINTL End Type Type EMRPOLYPOLYLINE16 pEmr As emr rclBounds As RECTL nPolys As Long cpts As Long aPolyCounts(1) As Long apts(1) As POINTS End Type Type EMRPOLYPOLYGON16 pEmr As emr rclBounds As RECTL nPolys As Long cpts As Long aPolyCounts(1) As Long apts(1) As POINTS End Type Type EMRINVERTRGN pEmr As emr rclBounds As RECTL cbRgnData As Long RgnData(1) As Integer End Type Type EMRPAINTRGN pEmr As emr rclBounds As RECTL cbRgnData As Long RgnData(1) As Integer End Type Type EMRFILLRGN pEmr As emr rclBounds As RECTL cbRgnData As Long ihBrush As Long RgnData(1) As Integer End Type Type EMRFRAMERGN pEmr As emr rclBounds As RECTL cbRgnData As Long ihBrush As Long szlStroke As SIZEL RgnData(1) As Integer End Type Type EMREXTSELECTCLIPRGN pEmr As emr cbRgnData As Long iMode As Long RgnData(1) As Integer End Type Type EMREXTTEXTOUT pEmr As emr rclBounds As RECTL iGraphicsMode As Long exScale As Double eyScale As Double emrtext As emrtext End Type Type EMRBITBLT pEmr As emr rclBounds As RECTL xDest As Long yDest As Long cxDest As Long cyDest As Long dwRop As Long xSrc As Long ySrc As Long xformSrc As xform crBkColorSrc As Long iUsageSrc As Long offBmiSrc As Long cbBmiSrc As Long offBitsSrc As Long cbBitsSrc As Long End Type Type EMRSTRETCHBLT pEmr As emr rclBounds As RECTL xDest As Long yDest As Long cxDest As Long cyDest As Long dwRop As Long xSrc As Long ySrc As Long xformSrc As xform crBkColorSrc As Long iUsageSrc As Long offBmiSrc As Long cbBmiSrc As Long offBitsSrc As Long cbBitsSrc As Long cxSrc As Long cySrc As Long End Type Type EMRMASKBLT pEmr As emr rclBounds As RECTL xDest As Long yDest As Long cxDest As Long cyDest As Long dwRop As Long xSrc2 As Long cyDest2 As Long dwRop2 As Long xSrc As Long ySrc As Long xformSrc As XFORM crBkColorSrc As Long iUsageSrc As Long offBmiSrc As Long cbBmiSrc As Long offBitsSrc As Long cbBitsSrc As Long xMask As Long yMask As Long iUsageMask As Long offBmiMask As Long cbBmiMask As Long offBitsMask As Long cbBitsMask As Long End Type Type EMRPLGBLT pEmr As emr rclBounds As RECTL aptlDest(3) As POINTL xSrc As Long ySrc As Long cxSrc As Long cySrc As Long xformSrc As XFORM crBkColorSrc As Long iUsageSrc As Long offBmiSrc As Long cbBmiSrc As Long offBitsSrc As Long cbBitsSrc As Long xMask As Long yMask As Long iUsageMask As Long offBmiMask As Long cbBmiMask As Long offBitsMask As Long cbBitsMask As Long End Type Type EMRSETDIBITSTODEVICE pEmr As emr rclBounds As RECTL xDest As Long yDest As Long xSrc As Long ySrc As Long cxSrc As Long cySrc As Long offBmiSrc As Long cbBmiSrc As Long offBitsSrc As Long cbBitsSrc As Long iUsageSrc As Long iStartScan As Long cScans As Long End Type Type EMRSTRETCHDIBITS pEmr As emr rclBounds As RECTL xDest As Long yDest As Long xSrc As Long ySrc As Long cxSrc As Long cySrc As Long offBmiSrc As Long cbBmiSrc As Long offBitsSrc As Long cbBitsSrc As Long iUsageSrc As Long dwRop As Long cxDest As Long cyDest As Long End Type Type EMREXTCREATEFONTINDIRECT pEmr As emr ihFont As Long elfw As EXTLOGFONT End Type Type EMRCREATEPALETTE pEmr As emr ihPal As Long lgpl As LOGPALETTE End Type Type EMRCREATEPEN pEmr As emr ihPen As Long lopn As LOGPEN End Type Type EMREXTCREATEPEN pEmr As emr ihPen As Long offBmi As Long cbBmi As Long offBits As Long cbBits As Long elp As EXTLOGPEN End Type Type EMRCREATEBRUSHINDIRECT pEmr As emr ihBrush As Long lb As LOGBRUSH End Type Type EMRCREATEMONOBRUSH pEmr As emr ihBrush As Long iUsage As Long offBmi As Long cbBmi As Long offBits As Long cbBits As Long End Type Type EMRCREATEDIBPATTERNBRUSHPT pEmr As emr ihBursh As Long iUsage As Long offBmi As Long cbBmi As Long offBits As Long cbBits As Long End Type ' wingdi nuevo ' ************************************************************************* ' * * ' * wingdi.h -- Declaraciones, definición de constantes y macros del * ' * procedimiento GDI * ' * * ' * Copyright (c) 1985-1995, Microsoft Corp. Reservados todos los derechos. * ' * * ' **************************************************************************/ ' Modos de StretchBlt() Const STRETCH_ANDSCANS = 1 Const STRETCH_ORSCANS = 2 Const STRETCH_DELETESCANS = 3 Const STRETCH_HALFTONE = 4 Type BITMAPV4HEADER bV4Size As Long bV4Width As Long bV4Height As Long bV4Planes As Integer bV4BitCount As Integer bV4V4Compression As Long bV4SizeImage As Long bV4XPelsPerMeter As Long bV4YPelsPerMeter As Long bV4ClrUsed As Long bV4ClrImportant As Long bV4RedMask As Long bV4GreenMask As Long bV4BlueMask As Long bV4AlphaMask As Long bV4CSType As Long bV4Endpoints As Long bV4GammaRed As Long bV4GammaGreen As Long bV4GammaBlue As Long End Type Type FONTSIGNATURE fsUsb(4) As Long fsCsb(2) As Long End Type Type CHARSETINFO ciCharset As Long ciACP As Long fs As FONTSIGNATURE End Type Const TCI_SRCCHARSET = 1 Const TCI_SRCCODEPAGE = 2 Const TCI_SRCFONTSIG = 3 Type LOCALESIGNATURE lsUsb(4) As Long lsCsbDefault(2) As Long lsCsbSupported(2) As Long End Type Type NEWTEXTMETRICEX ntmTm As NEWTEXTMETRIC ntmFontSig As FONTSIGNATURE End Type Type ENUMLOGFONTEX elfLogFont As LOGFONT elfFullName(LF_FULLFACESIZE) As Byte elfStyle(LF_FACESIZE) As Byte elfScript(LF_FACESIZE) As Byte End Type Const MONO_FONT = 8 Const JOHAB_CHARSET = 130 Const HEBREW_CHARSET = 177 Const ARABIC_CHARSET = 178 Const GREEK_CHARSET = 161 Const TURKISH_CHARSET = 162 Const THAI_CHARSET = 222 Const EASTEUROPE_CHARSET = 238 Const RUSSIAN_CHARSET = 204 Const MAC_CHARSET = 77 Const BALTIC_CHARSET = 186 Const FS_LATIN1 = &H1& Const FS_LATIN2 = &H2& Const FS_CYRILLIC = &H4& Const FS_GREEK = &H8& Const FS_TURKISH = &H10& Const FS_HEBREW = &H20& Const FS_ARABIC = &H40& Const FS_BALTIC = &H80& Const FS_THAI = &H10000 Const FS_JISJAPAN = &H20000 Const FS_CHINESESIMP = &H40000 Const FS_WANSUNG = &H80000 Const FS_CHINESETRAD = &H100000 Const FS_JOHAB = &H200000 Const FS_SYMBOL = &H80000000 Const DEFAULT_GUI_FONT = 17 ' Versión actual de especificación Const DM_RESERVED1 = &H800000 Const DM_RESERVED2 = &H1000000 Const DM_ICMMETHOD = &H2000000 Const DM_ICMINTENT = &H4000000 Const DM_MEDIATYPE = &H8000000 Const DM_DITHERTYPE = &H10000000 Const DMPAPER_ISO_B4 = 42 ' B4 (ISO) 250 x 353 mm Const DMPAPER_JAPANESE_POSTCARD = 43 ' Tarjeta japonesa 100 x 148 mm Const DMPAPER_9X11 = 44 ' 9 x 11 pulg. Const DMPAPER_10X11 = 45 ' 10 x 11 pulg. Const DMPAPER_15X11 = 46 ' 15 x 11 pulg. Const DMPAPER_ENV_INVITE = 47 ' Sobre Invitación 220 x 220 mm Const DMPAPER_RESERVED_48 = 48 ' RESERVADO--NO LO USE Const DMPAPER_RESERVED_49 = 49 ' RESERVADO--NO LO USE Const DMPAPER_LETTER_EXTRA = 50 ' Carta Extra 9 \275 x 12 pulg. Const DMPAPER_LEGAL_EXTRA = 51 ' Oficio Extra 9 \275 x 15 pulg. Const DMPAPER_TABLOID_EXTRA = 52 ' Tabloide Extra 11.69 x 18 pulg. Const DMPAPER_A4_EXTRA = 53 ' A4 Extra 9.27 x 12.69 pulg. Const DMPAPER_LETTER_TRANSVERSE = 54 ' Carta Transversal 8 \275 x 11 pulg. Const DMPAPER_A4_TRANSVERSE = 55 ' A4 Transversal 210 x 297 mm Const DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 ' Carta Extra Transversal 9\275 x 12 pulg. Const DMPAPER_A_PLUS = 57 ' SuperA/SuperA/A4 227 x 356 mm Const DMPAPER_B_PLUS = 58 ' SuperB/SuperB/A3 305 x 487 mm Const DMPAPER_LETTER_PLUS = 59 ' Carta Plus 8.5 x 12.69 pulg. Const DMPAPER_A4_PLUS = 60 ' A4 Plus 210 x 330 mm Const DMPAPER_A5_TRANSVERSE = 61 ' A5 Transversal 148 x 210 mm Const DMPAPER_B5_TRANSVERSE = 62 ' B5 (JIS) Transversal 182 x 257 mm Const DMPAPER_A3_EXTRA = 63 ' A3 Extra 322 x 445 mm Const DMPAPER_A5_EXTRA = 64 ' A5 Extra 174 x 235 mm Const DMPAPER_B5_EXTRA = 65 ' B5 (ISO) Extra 201 x 276 mm Const DMPAPER_A2 = 66 ' A2 420 x 594 mm Const DMPAPER_A3_TRANSVERSE = 67 ' A3 Transversal 297 x 420 mm Const DMPAPER_A3_EXTRA_TRANSVERSE = 68 ' A3 Extra Transversal 322 x 445 mm Const DMTT_DOWNLOAD_OUTLINE = 4 ' descarga fuentes TT como transferibles de esquema ' Métodos ICM Const DMICMMETHOD_NONE = 1 ' ICM desactivado Const DMICMMETHOD_SYSTEM = 2 ' ICM controlado por el sistema Const DMICMMETHOD_DRIVER = 3 ' ICM controlado por el controlador Const DMICMMETHOD_DEVICE = 4 ' ICM controlado por el dispositivo Const DMICMMETHOD_USER = 256 ' Los métodos específicos del dispositivo comienzan aquí ' Intentos de ICM Const DMICM_SATURATE = 1 ' Maximiza la saturación del color Const DMICM_CONTRAST = 2 ' Maximiza el contraste de color Const DMICM_COLORMETRIC = 3 ' Usa una medida de color específica Const DMICM_USER = 256 ' Los intentos específicos del dispositivo comienzan aquí ' Tipos de medios Const DMMEDIA_STANDARD = 1 ' Papel estándar Const DMMEDIA_GLOSSY = 2 ' Papel satinado Const DMMEDIA_TRANSPARENCY = 3 ' Transparencia Const DMMEDIA_USER = 256 ' Los soportes específicos del dispositivo comienzan aquí ' Tipos de difuminado Const DMDITHER_NONE = 1 ' Sin difuminado Const DMDITHER_COARSE = 2 ' Difumina con un pincel grueso Const DMDITHER_FINE = 3 ' Difumina con un pincel fino Const DMDITHER_LINEART = 4 ' Difuminado con arte de líneas Const DMDITHER_GRAYSCALE = 5 ' El dispositivo hace la escala de gris Const DMDITHER_USER = 256 ' Los difuminados específicos del dispositivo comienzan aquí Const GGO_GRAY2_BITMAP = 4 Const GGO_GRAY4_BITMAP = 5 Const GGO_GRAY8_BITMAP = 6 Const GGO_GLYPH_INDEX = &H80 Const GCP_DBCS = &H1 Const GCP_REORDER = &H2 Const GCP_USEKERNING = &H8 Const GCP_GLYPHSHAPE = &H10 Const GCP_LIGATE = &H20 Const GCP_DIACRITIC = &H100 Const GCP_KASHIDA = &H400 Const GCP_ERROR = &H8000 Const FLI_MASK = &H103B Const GCP_JUSTIFY = &H10000 Const GCP_NODIACRITICS = &H20000 Const FLI_GLYPHS = &H40000 Const GCP_CLASSIN = &H80000 Const GCP_MAXEXTENT = &H100000 Const GCP_JUSTIFYIN = &H200000 Const GCP_DISPLAYZWG = &H400000 Const GCP_SYMSWAPOFF = &H800000 Const GCP_NUMERICOVERRIDE = &H1000000 Const GCP_NEUTRALOVERRIDE = &H2000000 Const GCP_NUMERICSLATIN = &H4000000 Const GCP_NUMERICSLOCAL = &H8000000 Const GCPCLASS_LATIN = 1 Const GCPCLASS_HEBREW = 2 Const GCPCLASS_ARABIC = 2 Const GCPCLASS_NEUTRAL = 3 Const GCPCLASS_LOCALNUMBER = 4 Const GCPCLASS_LATINNUMBER = 5 Const GCPCLASS_LATINNUMERICTERMINATOR = 6 Const GCPCLASS_LATINNUMERICSEPARATOR = 7 Const GCPCLASS_NUMERICSEPARATOR = 8 Const GCPCLASS_PREBOUNDRTL = &H80 Const GCPCLASS_PREBOUNDLTR = &H40 Type GCP_RESULTS lStructSize As Long lpOutString As String lpOrder As Long lpDX As Long lpCaretPos As Long lpClass As String lpGlyphs As String nGlyphs As Long nMaxFit As Long End Type Const DC_BINADJUST = 19 Const DC_EMF_COMPLIANT = 20 Const DC_DATATYPE_PRODUCED = 21 Const DC_COLLATE = 22 Const DCTT_DOWNLOAD_OUTLINE = &H8& ' Valores de retorno para DC_BINADJUST Const DCBA_FACEUPNONE = &H0 Const DCBA_FACEUPCENTER = &H1 Const DCBA_FACEUPLEFT = &H2 Const DCBA_FACEUPRIGHT = &H3 Const DCBA_FACEDOWNNONE = &H100 Const DCBA_FACEDOWNCENTER = &H101 Const DCBA_FACEDOWNLEFT = &H102 Const DCBA_FACEDOWNRIGHT = &H103 Declare Function EnumFontFamilies Lib "gdi32" Alias "EnumFontFamiliesA" (ByVal hdc As Long, ByVal lpszFamily As String, ByVal lpEnumFontFamProc As Long, ByVal lParam As Long) As Long Declare Function EnumFontFamiliesEx Lib "gdi32" Alias "EnumFontFamiliesExA" (ByVal hdc As Long, lpLogFont As LOGFONT, ByVal lpEnumFontProc As Long, ByVal lParam As Long, ByVal dw As Long) As Long Declare Function GetTextCharset Lib "gdi32" Alias "GetTextCharset" (ByVal hdc As Long) As Long Declare Function GetTextCharsetInfo Lib "gdi32" Alias "GetTextCharsetInfo" (ByVal hdc As Long, lpSig As FONTSIGNATURE, ByVal dwFlags As Long) As Long Declare Function TranslateCharsetInfo Lib "gdi32" Alias "TranslateCharsetInfo" (lpSrc As Long, lpcs As CHARSETINFO, ByVal dwFlags As Long) As Long Declare Function GetFontLanguageInfo Lib "gdi32" Alias "GetFontLanguageInfo" (ByVal hdc As Long) As Long Declare Function GetCharacterPlacement Lib "gdi32" Alias " GetCharacterPlacementA" (ByVal hdc As Long, ByVal lpsz As String, ByVal n1 As Long, ByVal n2 As Long, lpGcpResults As GCP_RESULTS, ByVal dw As Long) As Long Const ICM_OFF = 1 Const ICM_ON = 2 Const ICM_QUERY = 3 Type CIEXYZ ciexyzX As Long ciexyzY As Long ciexyzZ As Long End Type Type CIEXYZTRIPLE ciexyzRed As CIEXYZ ciexyzGreen As CIEXYZ ciexyBlue As CIEXYZ End Type Type LOGCOLORSPACE lcsSignature As Long lcsVersion As Long lcsSize As Long lcsCSType As Long lcsIntent As Long lcsEndPoints As CIEXYZTRIPLE lcsGammaRed As Long lcsGammaGreen As Long lcsGammaBlue As Long lcsFileName As String * MAX_PATH End Type Declare Function SetICMMode Lib "gdi32" Alias "SetICMMode" (ByVal hdc As Long, ByVal n As Long) As Long Declare Function CheckColorsInGamut Lib "gdi32" Alias "CheckColorsInGamut" (ByVal hdc As Long, lpv As Any, lpv2 As Any, ByVal dw As Long) As Long Declare Function GetLogColorSpace Lib "gdi32" Alias "GetLogColorSpaceA" (ByVal hcolorspace As Long, ByVal lplogcolorspace As LOGCOLORSPACE, ByVal dw As Long) As Long Declare Function GetColorSpace Lib "gdi32" Alias "GetColorSpace" (ByVal hdc As Long) As Long Declare Function CreateColorSpace Lib "gdi32" Alias "CreateColorSpaceA" (lplogcolorspace As LOGCOLORSPACE) As Long Declare Function SetColorSpace Lib "gdi32" Alias "SetColorSpace" (ByVal hdc As Long, ByVal hcolorspace As Long) As Long Declare Function DeleteColorSpace Lib "gdi32" Alias "DeleteColorSpace" (ByVal hcolorspace As Long) As Long Declare Function GetICMProfile Lib "gdi32" Alias "GetICMProfileA" (ByVal hdc As Long, ByVal dw As Long, ByVal lpStr As String) As Long Declare Function SetICMProfile Lib "gdi32" Alias "SetICMProfileA" (ByVal hdc As Long, ByVal lpStr As String) As Long Declare Function GetDeviceGammaRamp Lib "gdi32" Alias "GetDeviceGammaRamp" (ByVal hdc As Long, lpv As Any) As Long Declare Function SetDeviceGammaRamp Lib "gdi32" Alias "SetDeviceGammaRamp" (ByVal hdc As Long, lpv As Any) As Long Declare Function ColorMatchToTarget Lib "gdi32" Alias "ColorMatchToTarget" (ByVal hdc As Long, ByVal hdc2 As Long, ByVal dw As Long) As Long Declare Function EnumICMProfiles Lib "gdi32" Alias "EnumICMProfilesA" (ByVal hdc As Long, ByVal icmEnumProc As Long, ByVal lParam As Long) As Long Const EMR_SETICMMODE = 98 Const EMR_CREATECOLORSPACE = 99 Const EMR_SETCOLORSPACE = 100 Const EMR_DELETECOLORSPACE = 101 Type EMRSELECTCOLORSPACE pEmr As emr ihCS As Long ' Índice del controlador ColorSpace End Type Type EMRCREATECOLORSPACE pEmr As emr ihCS As Long ' Índice del controlador ColorSpace lcs As LOGCOLORSPACE End Type ' -------------- ' Sección USER ' -------------- ' Constantes de barra de desplazamiento Const SB_HORZ = 0 Const SB_VERT = 1 Const SB_CTL = 2 Const SB_BOTH = 3 ' Comandos de barra de desplazamiento Const SB_LINEUP = 0 Const SB_LINELEFT = 0 Const SB_LINEDOWN = 1 Const SB_LINERIGHT = 1 Const SB_PAGEUP = 2 Const SB_PAGELEFT = 2 Const SB_PAGEDOWN = 3 Const SB_PAGERIGHT = 3 Const SB_THUMBPOSITION = 4 Const SB_THUMBTRACK = 5 Const SB_TOP = 6 Const SB_LEFT = 6 Const SB_BOTTOM = 7 Const SB_RIGHT = 7 Const SB_ENDSCROLL = 8 ' Comandos de ShowWindow() Const SW_HIDE = 0 Const SW_SHOWNORMAL = 1 Const SW_NORMAL = 1 Const SW_SHOWMINIMIZED = 2 Const SW_SHOWMAXIMIZED = 3 Const SW_MAXIMIZE = 3 Const SW_SHOWNOACTIVATE = 4 Const SW_SHOW = 5 Const SW_MINIMIZE = 6 Const SW_SHOWMINNOACTIVE = 7 Const SW_SHOWNA = 8 Const SW_RESTORE = 9 Const SW_SHOWDEFAULT = 10 Const SW_MAX = 10 ' Antiguos comandos de ShowWindow() Const HIDE_WINDOW = 0 Const SHOW_OPENWINDOW = 1 Const SHOW_ICONWINDOW = 2 Const SHOW_FULLSCREEN = 3 Const SHOW_OPENNOACTIVATE = 4 ' Identificadores para el mensaje WM_SHOWWINDOW Const SW_PARENTCLOSING = 1 Const SW_OTHERZOOM = 2 Const SW_PARENTOPENING = 3 Const SW_OTHERUNZOOM = 4 ' Indicadores WM_KEYUP/DOWN/CHAR HIWORD(lParam) Const KF_EXTENDED = &H100 Const KF_DLGMODE = &H800 Const KF_MENUMODE = &H1000 Const KF_ALTDOWN = &H2000 Const KF_REPEAT = &H4000 Const KF_UP = &H8000 ' Teclas virtuales, juego estándar Const VK_LBUTTON = &H1 Const VK_RBUTTON = &H2 Const VK_CANCEL = &H3 Const VK_MBUTTON = &H4 ' NO es contiguo a L RBUTTON Const VK_BACK = &H8 Const VK_TAB = &H9 Const VK_CLEAR = &HC Const VK_RETURN = &HD Const VK_SHIFT = &H10 Const VK_CONTROL = &H11 Const VK_MENU = &H12 Const VK_PAUSE = &H13 Const VK_CAPITAL = &H14 Const VK_ESCAPE = &H1B Const VK_SPACE = &H20 Const VK_PRIOR = &H21 Const VK_NEXT = &H22 Const VK_END = &H23 Const VK_HOME = &H24 Const VK_LEFT = &H25 Const VK_UP = &H26 Const VK_RIGHT = &H27 Const VK_DOWN = &H28 Const VK_SELECT = &H29 Const VK_PRINT = &H2A Const VK_EXECUTE = &H2B Const VK_SNAPSHOT = &H2C Const VK_INSERT = &H2D Const VK_DELETE = &H2E Const VK_HELP = &H2F ' VK_A hasta VK_Z son iguales que sus equivalentes ASCII: 'A' hasta 'Z' ' VK_0 hasta VK_9 son iguales que sus equivalentes en ASCII: '0' hasta '9' Const VK_NUMPAD0 = &H60 Const VK_NUMPAD1 = &H61 Const VK_NUMPAD2 = &H62 Const VK_NUMPAD3 = &H63 Const VK_NUMPAD4 = &H64 Const VK_NUMPAD5 = &H65 Const VK_NUMPAD6 = &H66 Const VK_NUMPAD7 = &H67 Const VK_NUMPAD8 = &H68 Const VK_NUMPAD9 = &H69 Const VK_MULTIPLY = &H6A Const VK_ADD = &H6B Const VK_SEPARATOR = &H6C Const VK_SUBTRACT = &H6D Const VK_DECIMAL = &H6E Const VK_DIVIDE = &H6F Const VK_F1 = &H70 Const VK_F2 = &H71 Const VK_F3 = &H72 Const VK_F4 = &H73 Const VK_F5 = &H74 Const VK_F6 = &H75 Const VK_F7 = &H76 Const VK_F8 = &H77 Const VK_F9 = &H78 Const VK_F10 = &H79 Const VK_F11 = &H7A Const VK_F12 = &H7B Const VK_F13 = &H7C Const VK_F14 = &H7D Const VK_F15 = &H7E Const VK_F16 = &H7F Const VK_F17 = &H80 Const VK_F18 = &H81 Const VK_F19 = &H82 Const VK_F20 = &H83 Const VK_F21 = &H84 Const VK_F22 = &H85 Const VK_F23 = &H86 Const VK_F24 = &H87 Const VK_NUMLOCK = &H90 Const VK_SCROLL = &H91 ' ' VK_L VK_R - teclas virtuales ALT, CTRL y MAYÚS izquierda y derecha. ' Se usan sólo como parámetros para GetAsyncKeyState() y GetKeyState(). ' Ninguna otra API ni mensaje distingue las teclas derecha e izquierda de esta forma. ' / Const VK_LSHIFT = &HA0 Const VK_RSHIFT = &HA1 Const VK_LCONTROL = &HA2 Const VK_RCONTROL = &HA3 Const VK_LMENU = &HA4 Const VK_RMENU = &HA5 Const VK_ATTN = &HF6 Const VK_CRSEL = &HF7 Const VK_EXSEL = &HF8 Const VK_EREOF = &HF9 Const VK_PLAY = &HFA Const VK_ZOOM = &HFB Const VK_NONAME = &HFC Const VK_PA1 = &HFD Const VK_OEM_CLEAR = &HFE ' Códigos de SetWindowsHook() Const WH_MIN = (-1) Const WH_MSGFILTER = (-1) Const WH_JOURNALRECORD = 0 Const WH_JOURNALPLAYBACK = 1 Const WH_KEYBOARD = 2 Const WH_GETMESSAGE = 3 Const WH_CALLWNDPROC = 4 Const WH_CBT = 5 Const WH_SYSMSGFILTER = 6 Const WH_MOUSE = 7 Const WH_HARDWARE = 8 Const WH_DEBUG = 9 Const WH_SHELL = 10 Const WH_FOREGROUNDIDLE = 11 Const WH_MAX = 11 ' Códigos de enlace Const HC_ACTION = 0 Const HC_GETNEXT = 1 Const HC_SKIP = 2 Const HC_NOREMOVE = 3 Const HC_NOREM = HC_NOREMOVE Const HC_SYSMODALON = 4 Const HC_SYSMODALOFF = 5 ' Códigos de enlace CBT Const HCBT_MOVESIZE = 0 Const HCBT_MINMAX = 1 Const HCBT_QS = 2 Const HCBT_CREATEWND = 3 Const HCBT_DESTROYWND = 4 Const HCBT_ACTIVATE = 5 Const HCBT_CLICKSKIPPED = 6 Const HCBT_KEYSKIPPED = 7 Const HCBT_SYSCOMMAND = 8 Const HCBT_SETFOCUS = 9 ' Estructura HCBT_ACTIVATE indicada por lParam Type CBTACTIVATESTRUCT fMouse As Long hWndActive As Long End Type ' Códigos de procesamiento del filtro WH_MSGFILTER Const MSGF_DIALOGBOX = 0 Const MSGF_MESSAGEBOX = 1 Const MSGF_MENU = 2 Const MSGF_MOVE = 3 Const MSGF_SIZE = 4 Const MSGF_SCROLLBAR = 5 Const MSGF_NEXTWINDOW = 6 Const MSGF_MAINLOOP = 8 Const MSGF_MAX = 8 Const MSGF_USER = 4096 Const HSHELL_WINDOWCREATED = 1 Const HSHELL_WINDOWDESTROYED = 2 Const HSHELL_ACTIVATESHELLWINDOW = 3 ' Estructura de mensajes que se usa en los diarios Type EVENTMSG message As Long paramL As Long paramH As Long time As Long hwnd As Long End Type Type CWPSTRUCT lParam As Long wParam As Long message As Long hwnd As Long End Type Type DEBUGHOOKINFO hModuleHook As Long Reserved As Long lParam As Long wParam As Long code As Long End Type Type MOUSEHOOKSTRUCT pt As POINTAPI hwnd As Long wHitTestCode As Long dwExtraInfo As Long End Type ' API de diseño del teclado Const HKL_PREV = 0 Const HKL_NEXT = 1 Const KLF_ACTIVATE = &H1 Const KLF_SUBSTITUTE_OK = &H2 Const KLF_UNLOADPREVIOUS = &H4 Const KLF_REORDER = &H8 ' Tamaño de KeyboardLayoutName (número de caracteres), incluida la terminación null Const KL_NAMELENGTH = 9 Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long Declare Function ActivateKeyboardLayout Lib "user32" Alias "ActivateKeyboardLayout" (ByVal HKL As Long, ByVal flags As Long) As Long Declare Function UnloadKeyboardLayout Lib "user32" Alias "UnloadKeyboardLayout" (ByVal HKL As Long) As Long Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long ' Indicadores de acceso específicos del escritorio Const DESKTOP_READOBJECTS = &H1& Const DESKTOP_CREATEWINDOW = &H2& Const DESKTOP_CREATEMENU = &H4& Const DESKTOP_HOOKCONTROL = &H8& Const DESKTOP_JOURNALRECORD = &H10& Const DESKTOP_JOURNALPLAYBACK = &H20& Const DESKTOP_ENUMERATE = &H40& Const DESKTOP_WRITEOBJECTS = &H80& Declare Function GetThreadDesktop Lib "user32" Alias "GetThreadDesktop" (ByVal dwThread As Long) As Long ' Indicadores de acceso específicos de la estación Windows Const WINSTA_ENUMDESKTOPS = &H1& Const WINSTA_READATTRIBUTES = &H2& Const WINSTA_ACCESSCLIPBOARD = &H4& Const WINSTA_CREATEDESKTOP = &H8& Const WINSTA_WRITEATTRIBUTES = &H10& Const WINSTA_ACCESSPUBLICATOMS = &H20& Const WINSTA_EXITWINDOWS = &H40& Const WINSTA_ENUMERATE = &H100& Const WINSTA_READSCREEN = &H200& Declare Function GetProcessWindowStation Lib "user32" Alias "GetProcessWindowStation" () As Long Declare Function SetUserObjectSecurity Lib "user32" Alias "SetUserObjectSecurity" (ByVal hObj As Long, pSIRequested As Long, pSd As SECURITY_DESCRIPTOR) As Long Declare Function GetUserObjectSecurity Lib "user32" Alias "GetUserObjectSecurity" (ByVal hObj As Long, pSIRequested As Long, pSd As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long ' Estructura de los mensajes ' Desplazamientos de los campos de ventana para GetWindowLong() y GetWindowWord() Const GWL_WNDPROC = (-4) Const GWL_HINSTANCE = (-6) Const GWL_HWNDPARENT = (-8) Const GWL_STYLE = (-16) Const GWL_EXSTYLE = (-20) Const GWL_USERDATA = (-21) Const GWL_ID = (-12) ' Desplazamientos de los campos de clase para GetClassLong() y GetClassWord() Const GCL_MENUNAME = (-8) Const GCL_HBRBACKGROUND = (-10) Const GCL_HCURSOR = (-12) Const GCL_HICON = (-14) Const GCL_HMODULE = (-16) Const GCL_CBWNDEXTRA = (-18) Const GCL_CBCLSEXTRA = (-20) Const GCL_WNDPROC = (-24) Const GCL_STYLE = (-26) Const GCW_ATOM = (-32) ' Mensajes de ventana Const WM_NULL = &H0 Const WM_CREATE = &H1 Const WM_DESTROY = &H2 Const WM_MOVE = &H3 Const WM_SIZE = &H5 Const WM_ACTIVATE = &H6 ' ' Valores de estado de WM_ACTIVATE Const WA_INACTIVE = 0 Const WA_ACTIVE = 1 Const WA_CLICKACTIVE = 2 Const WM_SETFOCUS = &H7 Const WM_KILLFOCUS = &H8 Const WM_ENABLE = &HA Const WM_SETREDRAW = &HB Const WM_SETTEXT = &HC Const WM_GETTEXT = &HD Const WM_GETTEXTLENGTH = &HE Const WM_PAINT = &HF Const WM_CLOSE = &H10 Const WM_QUERYENDSESSION = &H11 Const WM_QUIT = &H12 Const WM_QUERYOPEN = &H13 Const WM_ERASEBKGND = &H14 Const WM_SYSCOLORCHANGE = &H15 Const WM_ENDSESSION = &H16 Const WM_SHOWWINDOW = &H18 Const WM_WININICHANGE = &H1A Const WM_DEVMODECHANGE = &H1B Const WM_ACTIVATEAPP = &H1C Const WM_FONTCHANGE = &H1D Const WM_TIMECHANGE = &H1E Const WM_CANCELMODE = &H1F Const WM_SETCURSOR = &H20 Const WM_MOUSEACTIVATE = &H21 Const WM_CHILDACTIVATE = &H22 Const WM_QUEUESYNC = &H23 Const WM_GETMINMAXINFO = &H24 Type MINMAXINFO ptReserved As POINTAPI ptMaxSize As POINTAPI ptMaxPosition As POINTAPI ptMinTrackSize As POINTAPI ptMaxTrackSize As POINTAPI End Type Const WM_PAINTICON = &H26 Const WM_ICONERASEBKGND = &H27 Const WM_NEXTDLGCTL = &H28 Const WM_SPOOLERSTATUS = &H2A Const WM_DRAWITEM = &H2B Const WM_MEASUREITEM = &H2C Const WM_DELETEITEM = &H2D Const WM_VKEYTOITEM = &H2E Const WM_CHARTOITEM = &H2F Const WM_SETFONT = &H30 Const WM_GETFONT = &H31 Const WM_SETHOTKEY = &H32 Const WM_GETHOTKEY = &H33 Const WM_QUERYDRAGICON = &H37 Const WM_COMPAREITEM = &H39 Const WM_COMPACTING = &H41 Const WM_OTHERWINDOWCREATED = &H42 ' ya no se admite Const WM_OTHERWINDOWDESTROYED = &H43 ' ya no se admite Const WM_COMMNOTIFY = &H44 ' ya no se admite ' Notificaciones pasadas en palabra baja de lParam en mensajes WM_COMMNOTIFY Const CN_RECEIVE = &H1 Const CN_TRANSMIT = &H2 Const CN_EVENT = &H4 Const WM_WINDOWPOSCHANGING = &H46 Const WM_WINDOWPOSCHANGED = &H47 Const WM_POWER = &H48 ' ' wParam para el mensaje de ventana WM_POWER y la notificación de controlador DRV_POWER Const PWR_OK = 1 Const PWR_FAIL = (-1) Const PWR_SUSPENDREQUEST = 1 Const PWR_SUSPENDRESUME = 2 Const PWR_CRITICALRESUME = 3 Const WM_COPYDATA = &H4A Const WM_CANCELJOURNAL = &H4B Type COPYDATASTRUCT dwData As Long cbData As Long lpData As Long End Type Const WM_NCCREATE = &H81 Const WM_NCDESTROY = &H82 Const WM_NCCALCSIZE = &H83 Const WM_NCHITTEST = &H84 Const WM_NCPAINT = &H85 Const WM_NCACTIVATE = &H86 Const WM_GETDLGCODE = &H87 Const WM_NCMOUSEMOVE = &HA0 Const WM_NCLBUTTONDOWN = &HA1 Const WM_NCLBUTTONUP = &HA2 Const WM_NCLBUTTONDBLCLK = &HA3 Const WM_NCRBUTTONDOWN = &HA4 Const WM_NCRBUTTONUP = &HA5 Const WM_NCRBUTTONDBLCLK = &HA6 Const WM_NCMBUTTONDOWN = &HA7 Const WM_NCMBUTTONUP = &HA8 Const WM_NCMBUTTONDBLCLK = &HA9 Const WM_KEYFIRST = &H100 Const WM_KEYDOWN = &H100 Const WM_KEYUP = &H101 Const WM_CHAR = &H102 Const WM_DEADCHAR = &H103 Const WM_SYSKEYDOWN = &H104 Const WM_SYSKEYUP = &H105 Const WM_SYSCHAR = &H106 Const WM_SYSDEADCHAR = &H107 Const WM_KEYLAST = &H108 Const WM_INITDIALOG = &H110 Const WM_COMMAND = &H111 Const WM_SYSCOMMAND = &H112 Const WM_TIMER = &H113 Const WM_HSCROLL = &H114 Const WM_VSCROLL = &H115 Const WM_INITMENU = &H116 Const WM_INITMENUPOPUP = &H117 Const WM_MENUSELECT = &H11F Const WM_MENUCHAR = &H120 Const WM_ENTERIDLE = &H121 Const WM_CTLCOLORMSGBOX = &H132 Const WM_CTLCOLOREDIT = &H133 Const WM_CTLCOLORLISTBOX = &H134 Const WM_CTLCOLORBTN = &H135 Const WM_CTLCOLORDLG = &H136 Const WM_CTLCOLORSCROLLBAR = &H137 Const WM_CTLCOLORSTATIC = &H138 Const WM_MOUSEFIRST = &H200 Const WM_MOUSEMOVE = &H200 Const WM_LBUTTONDOWN = &H201 Const WM_LBUTTONUP = &H202 Const WM_LBUTTONDBLCLK = &H203 Const WM_RBUTTONDOWN = &H204 Const WM_RBUTTONUP = &H205 Const WM_RBUTTONDBLCLK = &H206 Const WM_MBUTTONDOWN = &H207 Const WM_MBUTTONUP = &H208 Const WM_MBUTTONDBLCLK = &H209 Const WM_MOUSELAST = &H209 Const WM_PARENTNOTIFY = &H210 Const WM_ENTERMENULOOP = &H211 Const WM_EXITMENULOOP = &H212 Const WM_MDICREATE = &H220 Const WM_MDIDESTROY = &H221 Const WM_MDIACTIVATE = &H222 Const WM_MDIRESTORE = &H223 Const WM_MDINEXT = &H224 Const WM_MDIMAXIMIZE = &H225 Const WM_MDITILE = &H226 Const WM_MDICASCADE = &H227 Const WM_MDIICONARRANGE = &H228 Const WM_MDIGETACTIVE = &H229 Const WM_MDISETMENU = &H230 Const WM_DROPFILES = &H233 Const WM_MDIREFRESHMENU = &H234 Const WM_CUT = &H300 Const WM_COPY = &H301 Const WM_PASTE = &H302 Const WM_CLEAR = &H303 Const WM_UNDO = &H304 Const WM_RENDERFORMAT = &H305 Const WM_RENDERALLFORMATS = &H306 Const WM_DESTROYCLIPBOARD = &H307 Const WM_DRAWCLIPBOARD = &H308 Const WM_PAINTCLIPBOARD = &H309 Const WM_VSCROLLCLIPBOARD = &H30A Const WM_SIZECLIPBOARD = &H30B Const WM_ASKCBFORMATNAME = &H30C Const WM_CHANGECBCHAIN = &H30D Const WM_HSCROLLCLIPBOARD = &H30E Const WM_QUERYNEWPALETTE = &H30F Const WM_PALETTEISCHANGING = &H310 Const WM_PALETTECHANGED = &H311 Const WM_HOTKEY = &H312 Const WM_PENWINFIRST = &H380 Const WM_PENWINLAST = &H38F ' NOTA: Todos los números de mensajes por debajo de 0x0400 están RESERVADOS. ' Los mensajes de ventana privados comienzan aquí: Const WM_USER = &H400 ' Comandos de WM_SYNCTASK Const ST_BEGINSWP = 0 Const ST_ENDSWP = 1 ' Códigos de posición del mouse WM_NCHITTEST y MOUSEHOOKSTRUCT Const HTERROR = (-2) Const HTTRANSPARENT = (-1) Const HTNOWHERE = 0 Const HTCLIENT = 1 Const HTCAPTION = 2 Const HTSYSMENU = 3 Const HTGROWBOX = 4 Const HTSIZE = HTGROWBOX Const HTMENU = 5 Const HTHSCROLL = 6 Const HTVSCROLL = 7 Const HTMINBUTTON = 8 Const HTMAXBUTTON = 9 Const HTLEFT = 10 Const HTRIGHT = 11 Const HTTOP = 12 Const HTTOPLEFT = 13 Const HTTOPRIGHT = 14 Const HTBOTTOM = 15 Const HTBOTTOMLEFT = 16 Const HTBOTTOMRIGHT = 17 Const HTBORDER = 18 Const HTREDUCE = HTMINBUTTON Const HTZOOM = HTMAXBUTTON Const HTSIZEFIRST = HTLEFT Const HTSIZELAST = HTBOTTOMRIGHT ' Valores de SendMessageTimeout Const SMTO_NORMAL = &H0 Const SMTO_BLOCK = &H1 Const SMTO_ABORTIFHUNG = &H2 ' ' Códigos de retorno de WM_MOUSEACTIVATE Const MA_ACTIVATE = 1 Const MA_ACTIVATEANDEAT = 2 Const MA_NOACTIVATE = 3 Const MA_NOACTIVATEANDEAT = 4 Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long ' Valores de wParam del mensaje WM_SIZE Const SIZE_RESTORED = 0 Const SIZE_MINIMIZED = 1 Const SIZE_MAXIMIZED = 2 Const SIZE_MAXSHOW = 3 Const SIZE_MAXHIDE = 4 ' Nombres de constantes obsoletos Const SIZENORMAL = SIZE_RESTORED Const SIZEICONIC = SIZE_MINIMIZED Const SIZEFULLSCREEN = SIZE_MAXIMIZED Const SIZEZOOMSHOW = SIZE_MAXSHOW Const SIZEZOOMHIDE = SIZE_MAXHIDE ' Estructura WM_WINDOWPOSCHANGING/CHANGED indicada por lParam Type WINDOWPOS hwnd As Long hWndInsertAfter As Long x As Long y As Long cx As Long cy As Long flags As Long End Type ' Indicadores de retorno de WM_NCCALCSIZE Const WVR_ALIGNTOP = &H10 Const WVR_ALIGNLEFT = &H20 Const WVR_ALIGNBOTTOM = &H40 Const WVR_ALIGNRIGHT = &H80 Const WVR_HREDRAW = &H100 Const WVR_VREDRAW = &H200 Const WVR_REDRAW = (WVR_HREDRAW Or WVR_VREDRAW) Const WVR_VALIDRECTS = &H400 ' Máscaras de estado de las teclas para mensajes del mouse Const MK_LBUTTON = &H1 Const MK_RBUTTON = &H2 Const MK_SHIFT = &H4 Const MK_CONTROL = &H8 Const MK_MBUTTON = &H10 ' Estilos de ventana Const WS_OVERLAPPED = &H0& Const WS_POPUP = &H80000000 Const WS_CHILD = &H40000000 Const WS_MINIMIZE = &H20000000 Const WS_VISIBLE = &H10000000 Const WS_DISABLED = &H8000000 Const WS_CLIPSIBLINGS = &H4000000 Const WS_CLIPCHILDREN = &H2000000 Const WS_MAXIMIZE = &H1000000 Const WS_CAPTION = &HC00000 ' WS_BORDER O WS_DLGFRAME Const WS_BORDER = &H800000 Const WS_DLGFRAME = &H400000 Const WS_VSCROLL = &H200000 Const WS_HSCROLL = &H100000 Const WS_SYSMENU = &H80000 Const WS_THICKFRAME = &H40000 Const WS_GROUP = &H20000 Const WS_TABSTOP = &H10000 Const WS_MINIMIZEBOX = &H20000 Const WS_MAXIMIZEBOX = &H10000 Const WS_TILED = WS_OVERLAPPED Const WS_ICONIC = WS_MINIMIZE Const WS_SIZEBOX = WS_THICKFRAME Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX) Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW ' ' Estilos de ventana comunes ' / Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU) Const WS_CHILDWINDOW = (WS_CHILD) ' Estilos de ventana ampliada Const WS_EX_DLGMODALFRAME = &H1& Const WS_EX_NOPARENTNOTIFY = &H4& Const WS_EX_TOPMOST = &H8& Const WS_EX_ACCEPTFILES = &H10& Const WS_EX_TRANSPARENT = &H20& ' Estilos de clase Const CS_VREDRAW = &H1 Const CS_HREDRAW = &H2 Const CS_KEYCVTWINDOW = &H4 Const CS_DBLCLKS = &H8 Const CS_OWNDC = &H20 Const CS_CLASSDC = &H40 Const CS_PARENTDC = &H80 Const CS_NOKEYCVT = &H100 Const CS_NOCLOSE = &H200 Const CS_SAVEBITS = &H800 Const CS_BYTEALIGNCLIENT = &H1000 Const CS_BYTEALIGNWINDOW = &H2000 Const CS_PUBLICCLASS = &H4000 ' Formatos predefinidos del Portapapeles Const CF_TEXT = 1 Const CF_BITMAP = 2 Const CF_METAFILEPICT = 3 Const CF_SYLK = 4 Const CF_DIF = 5 Const CF_TIFF = 6 Const CF_OEMTEXT = 7 Const CF_DIB = 8 Const CF_PALETTE = 9 Const CF_PENDATA = 10 Const CF_RIFF = 11 Const CF_WAVE = 12 Const CF_UNICODETEXT = 13 Const CF_ENHMETAFILE = 14 Const CF_OWNERDISPLAY = &H80 Const CF_DSPTEXT = &H81 Const CF_DSPBITMAP = &H82 Const CF_DSPMETAFILEPICT = &H83 Const CF_DSPENHMETAFILE = &H8E ' Formatos "Private" que no se liberan Const CF_PRIVATEFIRST = &H200 Const CF_PRIVATELAST = &H2FF ' Formatos de "GDIOBJ" que se eliminan como objetos Const CF_GDIOBJFIRST = &H300 Const CF_GDIOBJLAST = &H3FF ' Definiciones para el campo fVirt de la estructura de la tabla Accelerator. Const FVIRTKEY = True ' Se supone que está establecido a == TRUE Const FNOINVERT = &H2 Const FSHIFT = &H4 Const FCONTROL = &H8 Const FALT = &H10 Type ACCEL fVirt As Byte key As Integer cmd As Integer End Type Type PAINTSTRUCT hdc As Long fErase As Long rcPaint As Rect fRestore As Long fIncUpdate As Long rgbReserved(32) As Byte End Type Type CREATESTRUCT lpCreateParams As Long hInstance As Long hMenu As Long hWndParent As Long cy As Long cx As Long y As Long x As Long style As Long lpszName As String lpszClass As String ExStyle As Long End Type ' Parámetros HCBT_CREATEWND indicados por lParam Type CBT_CREATEWND lpcs As CREATESTRUCT hWndInsertAfter As Long End Type Type WINDOWPLACEMENT Length As Long flags As Long showCmd As Long ptMinPosition As POINTAPI ptMaxPosition As POINTAPI rcNormalPosition As Rect End Type Const WPF_SETMINPOSITION = &H1 Const WPF_RESTORETOMAXIMIZED = &H2 ' Tipos de control de dibujo del propietario Const ODT_MENU = 1 Const ODT_LISTBOX = 2 Const ODT_COMBOBOX = 3 Const ODT_BUTTON = 4 ' Acciones de dibujo del propietario Const ODA_DRAWENTIRE = &H1 Const ODA_SELECT = &H2 Const ODA_FOCUS = &H4 ' Estado de dibujo del propietario Const ODS_SELECTED = &H1 Const ODS_GRAYED = &H2 Const ODS_DISABLED = &H4 Const ODS_CHECKED = &H8 Const ODS_FOCUS = &H10 ' MEASUREITEMSTRUCT para dibujo de propietario Type MEASUREITEMSTRUCT CtlType As Long CtlID As Long itemID As Long itemWidth As Long itemHeight As Long itemData As Long End Type ' DRAWITEMSTRUCT para dibujo de propietario Type DRAWITEMSTRUCT CtlType As Long CtlID As Long itemID As Long itemAction As Long itemState As Long hwndItem As Long hdc As Long rcItem As Rect itemData As Long End Type ' DELETEITEMSTRUCT para dibujo de propietario Type DELETEITEMSTRUCT CtlType As Long CtlID As Long itemID As Long hwndItem As Long itemData As Long End Type ' COMPAREITEMSTRUCT para el orden del dibujo de propietario Type COMPAREITEMSTRUCT CtlType As Long CtlID As Long hwndItem As Long itemID1 As Long itemData1 As Long itemID2 As Long itemData2 As Long End Type ' Plantillas de las funciones de mensajes Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long Declare Function TranslateMessage Lib "user32" Alias "TranslateMessage" (lpMsg As MSG) As Long Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As MSG) As Long Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long ' Opciones de PeekMessage() Const PM_NOREMOVE = &H0 Const PM_REMOVE = &H1 Const PM_NOYIELD = &H2 Declare Function RegisterHotKey Lib "user32" Alias "RegisterHotKey" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long Declare Function UnregisterHotKey Lib "user32" Alias "UnregisterHotKey" (ByVal hwnd As Long, ByVal id As Long) As Long Const MOD_ALT = &H1 Const MOD_CONTROL = &H2 Const MOD_SHIFT = &H4 Const IDHOT_SNAPWINDOW = (-1) ' SHIFT-PRINTSCRN Const IDHOT_SNAPDESKTOP = (-2) ' PRINTSCRN Const EWX_LOGOFF = 0 Const EWX_SHUTDOWN = 1 Const EWX_REBOOT = 2 Const EWX_FORCE = 4 Const READAPI = 0 ' Indicadores para _lopen Const WRITEAPI = 1 Const READ_WRITE = 2 Declare Function ExitWindows Lib "user32" Alias "ExitWindows" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Declare Function SwapMouseButton Lib "user32" Alias "SwapMouseButton" (ByVal bSwap As Long) As Long Declare Function GetMessagePos Lib "user32" Alias "GetMessagePos" () As Long Declare Function GetMessageTime Lib "user32" Alias "GetMessageTime" () As Long Declare Function GetMessageExtraInfo Lib "user32" Alias "GetMessageExtraInfo" () As Long Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long Declare Function SendNotifyMessage Lib "user32" Alias "SendNotifyMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function SendMessageCallback Lib "user32" Alias "SendMessageCallbackA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal lpResultCallBack As Long, ByVal dwData As Long) As Long Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function PostThreadMessage Lib "user32" Alias "PostThreadMessageA" (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long ' Valor de HWND especial para usarlo con PostMessage y SendMessage Const HWND_BROADCAST = &HFFFF& Type WNDCLASS style As Long lpfnwndproc As Long cbClsextra As Long cbWndExtra2 As Long hInstance As Long hIcon As Long hCursor As Long hbrBackground As Long lpszMenuName As String lpszClassName As String End Type Declare Function AttachThreadInput Lib "user32" Alias "AttachThreadInput" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long Declare Function ReplyMessage Lib "user32" Alias "ReplyMessage" (ByVal lReply As Long) As Long Declare Function WaitMessage Lib "user32" Alias "WaitMessage" () As Long Declare Function WaitForInputIdle Lib "user32" Alias "WaitForInputIdle" (ByVal hProcess As Long, ByVal dwMilliseconds As Long) As Long Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Sub PostQuitMessage Lib "user32" Alias "PostQuitMessage" (ByVal nExitCode As Long) Declare Function InSendMessage Lib "user32" Alias "InSendMessage" () As Long Private Declare Function InitCommonControls Lib "COMCTL32" () As Long Private Declare Function ImageList_Create Lib "COMCTL32" (ByVal MinCx As Long, ByVal MinCy As Long, ByVal flags As Long, ByVal cInitial As Long, ByVal cGrow As Long) As Long Private Declare Function ImageList_AddIcon Lib "COMCTL32" (ByVal himl As Long, ByVal hIcon As Long) As Long Private Declare Function ImageList_GetIcon Lib "COMCTL32" (ByVal HIMAGELIST As Long, ByVal ImgIndex As Long, hbmMask As Long) As Long Private Declare Function ImageList_Draw Lib "COMCTL32" (ByVal HIMAGELIST As Long, ByVal ImgIndex As Long, ByVal hDCDest As Long, ByVal xDest As Long, ByVal yDest As Long, ByVal lStyle As Long) As Long Declare Function GetDoubleClickTime Lib "user32" Alias "GetDoubleClickTime" () As Long Declare Function SetDoubleClickTime Lib "user32" Alias "SetDoubleClickTime" (ByVal wCount As Long) As Long Declare Function RegisterClass Lib "user32" Alias "RegisterClassA" (Class As WNDCLASS) As Long Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" (ByVal lpClassName As String, ByVal hInstance As Long) As Long Declare Function GetClassInfo Lib "user32" Alias "GetClassInfoA" (ByVal hInstance As Long, ByVal lpClassName As String, lpWndClass As WNDCLASS) As Long Const CW_USEDEFAULT = &H80000000 Const HWND_DESKTOP = 0 Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long Declare Function IsWindow Lib "user32" Alias "IsWindow" (ByVal hwnd As Long) As Long Declare Function IsMenu Lib "user32" Alias "IsMenu" (ByVal hMenu As Long) As Long Declare Function IsChild Lib "user32" Alias "IsChild" (ByVal hWndParent As Long, ByVal hwnd As Long) As Long Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Declare Function FlashWindow Lib "user32" Alias "FlashWindow" (ByVal hwnd As Long, ByVal bInvert As Long) As Long Declare Function ShowOwnedPopups Lib "user32" Alias "ShowOwnedPopups" (ByVal hwnd As Long, ByVal fShow As Long) As Long Declare Function OpenIcon Lib "user32" Alias "OpenIcon" (ByVal hwnd As Long) As Long Declare Function CloseWindow Lib "user32" Alias "CloseWindow" (ByVal hwnd As Long) As Long Declare Function MoveWindow Lib "user32" Alias "MoveWindow" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Declare Function GetWindowPlacement Lib "user32" Alias "GetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long Declare Function SetWindowPlacement Lib "user32" Alias "SetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long Declare Function BeginDeferWindowPos Lib "user32" Alias "BeginDeferWindowPos" (ByVal nNumWindows As Long) As Long Declare Function DeferWindowPos Lib "user32" Alias "DeferWindowPos" (ByVal hWinPosInfo As Long, ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Declare Function EndDeferWindowPos Lib "user32" Alias "EndDeferWindowPos" (ByVal hWinPosInfo As Long) As Long Declare Function IsWindowVisible Lib "user32" Alias "IsWindowVisible" (ByVal hwnd As Long) As Long Declare Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As Long) As Long Declare Function AnyPopup Lib "user32" Alias "AnyPopup" () As Long Declare Function BringWindowToTop Lib "user32" Alias "BringWindowToTop" (ByVal hwnd As Long) As Long Declare Function IsZoomed Lib "user32" Alias "IsZoomed" (ByVal hwnd As Long) As Long ' Indicadores de SetWindowPos Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Const SWP_NOZORDER = &H4 Const SWP_NOREDRAW = &H8 Const SWP_NOACTIVATE = &H10 Const SWP_FRAMECHANGED = &H20 ' Cambió el marco: enviar WM_NCCALCSIZE Const SWP_SHOWWINDOW = &H40 Const SWP_HIDEWINDOW = &H80 Const SWP_NOCOPYBITS = &H100 Const SWP_NOOWNERZORDER = &H200 ' No usar el orden Z del propietario Const SWP_DRAWFRAME = SWP_FRAMECHANGED Const SWP_NOREPOSITION = SWP_NOOWNERZORDER ' Valores hwndInsertAfter de SetWindowPos() Const HWND_TOP = 0 Const HWND_BOTTOM = 1 Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 Type DLGTEMPLATE style As Long dwExtendedStyle As Long cdit As Integer x As Integer y As Integer cx As Integer cy As Integer End Type Type DLGITEMTEMPLATE style As Long dwExtendedStyle As Long x As Integer y As Integer cx As Integer cy As Integer id As Integer End Type Declare Function EndDialog Lib "user32" Alias "EndDialog" (ByVal hDlg As Long, ByVal nResult As Long) As Long Declare Function GetDlgItem Lib "user32" Alias "GetDlgItem" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long Declare Function SetDlgItemInt Lib "user32" Alias "SetDlgItemInt" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wValue As Long, ByVal bSigned As Long) As Long Declare Function GetDlgItemInt Lib "user32" Alias "GetDlgItemInt" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpTranslated As Long, ByVal bSigned As Long) As Long Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String) As Long Declare Function GetDlgItemText Lib "user32" Alias "GetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long Declare Function CheckDlgButton Lib "user32" Alias "CheckDLGButtonA" (ByVal hDlg As Long, ByVal nIDButton As Long, ByVal wCheck As Long) As Long Declare Function CheckRadioButton Lib "user32" Alias "CheckRadioButtonA" (ByVal hDlg As Long, ByVal nIDFirstButton As Long, ByVal nIDLastButton As Long, ByVal nIDCheckButton As Long) As Long Declare Function IsDlgButtonChecked Lib "user32" Alias "IsDlgButtonChecked" (ByVal hDlg As Long, ByVal nIDButton As Long) As Long Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function GetNextDlgGroupItem Lib "user32" Alias "GetNextDlgGroupItem" (ByVal hDlg As Long, ByVal hCtl As Long, ByVal bPrevious As Long) As Long Declare Function GetNextDlgTabItem Lib "user32" Alias "GetNextDlgTabItem" (ByVal hDlg As Long, ByVal hCtl As Long, ByVal bPrevious As Long) As Long Declare Function GetDlgCtrlID Lib "user32" Alias "GetDlgCtrlID" (ByVal hwnd As Long) As Long Declare Function GetDialogBaseUnits Lib "user32" Alias "GetDialogBaseUnits" () As Long Declare Function DefDlgProc Lib "user32" Alias "DefDlgProcA" (ByVal hDlg As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Const DLGWINDOWEXTRA = 30 ' Bytes extra de ventana necesarios para clases de diálogo privadas Declare Function CallMsgFilter Lib "user32" Alias "CallMsgFilterA" (lpMsg As MSG, ByVal ncode As Long) As Long ' Funciones del administrador del Portapapeles Declare Function OpenClipboard Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As Long Declare Function CloseClipboard Lib "user32" Alias "CloseClipboard" () As Long Declare Function GetClipboardOwner Lib "user32" Alias "GetClipboardOwner" () As Long Declare Function SetClipboardViewer Lib "user32" Alias "SetClipboardViewer" (ByVal hwnd As Long) As Long Declare Function GetClipboardViewer Lib "user32" Alias "GetClipboardViewer" () As Long Declare Function ChangeClipboardChain Lib "user32" Alias "ChangeClipboardChain" (ByVal hwnd As Long, ByVal hWndNext As Long) As Long Declare Function SetClipboardData Lib "user32" Alias "SetClipboardDataA" (ByVal wFormat As Long, ByVal hMem As Long) As Long Declare Function GetClipboardData Lib "user32" Alias "GetClipboardDataA" (ByVal wFormat As Long) As Long Declare Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA" (ByVal lpString As String) As Long Declare Function CountClipboardFormats Lib "user32" Alias "CountClipboardFormats" () As Long Declare Function EnumClipboardFormats Lib "user32" Alias "EnumClipboardFormats" (ByVal wFormat As Long) As Long Declare Function GetClipboardFormatName Lib "user32" Alias "GetClipboardFormatNameA" (ByVal wFormat As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long Declare Function EmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long Declare Function IsClipboardFormatAvailable Lib "user32" Alias "IsClipboardFormatAvailable" (ByVal wFormat As Long) As Long Declare Function GetPriorityClipboardFormat Lib "user32" Alias "GetPriorityClipboardFormat" (lpPriorityList As Long, ByVal nCount As Long) As Long Declare Function GetOpenClipboardWindow Lib "user32" Alias "GetOpenClipboardWindow" () As Long Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long Declare Function CharUpper Lib "user32" Alias "CharUpperA" (ByVal lpsz As String) As String Declare Function CharUpperBuff Lib "user32" Alias "CharUpperBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long Declare Function CharLower Lib "user32" Alias "CharLowerA" (ByVal lpsz As String) As String Declare Function CharLowerBuff Lib "user32" Alias "CharLowerBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long Declare Function CharNext Lib "user32" Alias "CharNextA" (ByVal lpsz As String) As String Declare Function CharPrev Lib "user32" Alias "CharPrevA" (ByVal lpszStart As String, ByVal lpszCurrent As String) As String ' Rutinas que dependen del idioma Declare Function IsCharAlpha Lib "user32" Alias "IsCharAlphaA" (ByVal cChar As Byte) As Long Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" (ByVal cChar As Byte) As Long Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" (ByVal cChar As Byte) As Long Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" (ByVal cChar As Byte) As Long Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long ' Rutinas de información del teclado Declare Function GetKBCodePage Lib "user32" Alias "GetKBCodePage" () As Long Declare Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal nVirtKey As Long) As Integer Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long Declare Function SetKeyboardState Lib "user32" Alias "SetKeyboardState" (lppbKeyState As Byte) As Long Declare Function GetKeyboardType Lib "user32" Alias "GetKeyboardType" (ByVal nTypeFlag As Long) As Long Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long Declare Function ToAscii Lib "user32" Alias "ToAscii" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpbKeyState As Byte, lpwTransKey As Long, ByVal fuState As Long) As Long Declare Function ToUnicode Lib "user32" Alias "ToUnicode" (ByVal wVirtKey As Long, ByVal wScanCode As Long, lpKeyState As Byte, ByVal pwszBuff As String, ByVal cchBuff As Long, ByVal wFlags As Long) As Long Declare Function OemKeyScan Lib "user32" Alias "OemKeyScan" (ByVal wOemChar As Long) As Long Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA" (ByVal cChar As Byte) As Integer Const KEYEVENTF_EXTENDEDKEY = &H1 Const KEYEVENTF_KEYUP = &H2 Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Const MOUSEEVENTF_MOVE = &H1 ' movimiento del mouse Const MOUSEEVENTF_LEFTDOWN = &H2 ' botón izquierdo presionado Const MOUSEEVENTF_LEFTUP = &H4 ' botón izquierdo soltado Const MOUSEEVENTF_RIGHTDOWN = &H8 ' botón derecho presionado Const MOUSEEVENTF_RIGHTUP = &H10 ' botón derecho soltado Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' botón central presionado Const MOUSEEVENTF_MIDDLEUP = &H40 ' botón central soltado Const MOUSEEVENTF_ABSOLUTE = &H8000 ' movimiento absoluto Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long Declare Function GetInputState Lib "user32" Alias "GetInputState" () As Long Declare Function GetQueueStatus Lib "user32" Alias "GetQueueStatus" (ByVal fuFlags As Long) As Long Declare Function GetCapture Lib "user32" Alias "GetCapture" () As Long Declare Function SetCapture Lib "user32" Alias "SetCapture" (ByVal hwnd As Long) As Long Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long Declare Function MsgWaitForMultipleObjects Lib "user32" Alias "MsgWaitForMultipleObjects" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long ' Indicadores de GetQueueStatus Const QS_KEY = &H1 Const QS_MOUSEMOVE = &H2 Const QS_MOUSEBUTTON = &H4 Const QS_POSTMESSAGE = &H8 Const QS_TIMER = &H10 Const QS_PAINT = &H20 Const QS_SENDMESSAGE = &H40 Const QS_HOTKEY = &H80 Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON) Const QS_INPUT = (QS_MOUSE Or QS_KEY) Const QS_ALLEVENTS = (QS_INPUT Or QS_POSTMESSAGE Or QS_TIMER Or QS_PAINT Or QS_HOTKEY) Const QS_ALLINPUT = (QS_SENDMESSAGE Or QS_PAINT Or QS_TIMER Or QS_POSTMESSAGE Or QS_MOUSEBUTTON Or QS_MOUSEMOVE Or QS_HOTKEY Or QS_KEY) ' Funciones de Windows Declare Function KillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Declare Function IsWindowUnicode Lib "user32" Alias "IsWindowUnicode" (ByVal hwnd As Long) As Long Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long Declare Function IsWindowEnabled Lib "user32" Alias "IsWindowEnabled" (ByVal hwnd As Long) As Long Declare Function LoadAccelerators Lib "user32" Alias "LoadAcceleratorsA" (ByVal hInstance As Long, ByVal lpTableName As String) As Long Declare Function CreateAcceleratorTable Lib "user32" Alias "CreateAcceleratorTableA" (lpaccl As ACCEL, ByVal cEntries As Long) As Long Declare Function DestroyAcceleratorTable Lib "user32" Alias "DestroyAcceleratorTable" (ByVal haccel As Long) As Long Declare Function CopyAcceleratorTable Lib "user32" Alias "CopyAcceleratorTableA" (ByVal hAccelSrc As Long, lpAccelDst As ACCEL, ByVal cAccelEntries As Long) As Long Declare Function TranslateAccelerator Lib "user32" Alias "TranslateAcceleratorA" (ByVal hwnd As Long, ByVal hAccTable As Long, lpMsg As MSG) As Long ' Códigos de GetSystemMetrics() Const SM_CXSCREEN = 0 Const SM_CYSCREEN = 1 Const SM_CXVSCROLL = 2 Const SM_CYHSCROLL = 3 Const SM_CYCAPTION = 4 Const SM_CXBORDER = 5 Const SM_CYBORDER = 6 Const SM_CXDLGFRAME = 7 Const SM_CYDLGFRAME = 8 Const SM_CYVTHUMB = 9 Const SM_CXHTHUMB = 10 Const SM_CXICON = 11 Const SM_CYICON = 12 Const SM_CXCURSOR = 13 Const SM_CYCURSOR = 14 Const SM_CYMENU = 15 Const SM_CXFULLSCREEN = 16 Const SM_CYFULLSCREEN = 17 Const SM_CYKANJIWINDOW = 18 Const SM_MOUSEPRESENT = 19 Const SM_CYVSCROLL = 20 Const SM_CXHSCROLL = 21 Const SM_DEBUG = 22 Const SM_SWAPBUTTON = 23 Const SM_RESERVED1 = 24 Const SM_RESERVED2 = 25 Const SM_RESERVED3 = 26 Const SM_RESERVED4 = 27 Const SM_CXMIN = 28 Const SM_CYMIN = 29 Const SM_CXSIZE = 30 Const SM_CYSIZE = 31 Const SM_CXFRAME = 32 Const SM_CYFRAME = 33 Const SM_CXMINTRACK = 34 Const SM_CYMINTRACK = 35 Const SM_CXDOUBLECLK = 36 Const SM_CYDOUBLECLK = 37 Const SM_CXICONSPACING = 38 Const SM_CYICONSPACING = 39 Const SM_MENUDROPALIGNMENT = 40 Const SM_PENWINDOWS = 41 Const SM_DBCSENABLED = 42 Const SM_CMOUSEBUTTONS = 43 Const SM_CMETRICS = 44 Const SM_CXSIZEFRAME = SM_CXFRAME Const SM_CYSIZEFRAME = SM_CYFRAME Const SM_CXFIXEDFRAME = SM_CXDLGFRAME Const SM_CYFIXEDFRAME = SM_CYDLGFRAME Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long Declare Function LoadMenu Lib "user32" Alias "LoadMenuA" (ByVal hInstance As Long, ByVal lpString As String) As Long Declare Function LoadMenuIndirect Lib "user32" Alias "LoadMenuIndirectA" (ByVal lpMenuTemplate As Long) As Long Declare Function GetMenu Lib "user32" Alias "GetMenu" (ByVal hwnd As Long) As Long Declare Function SetMenu Lib "user32" Alias "SetMenu" (ByVal hwnd As Long, ByVal hMenu As Long) As Long Declare Function HiliteMenuItem Lib "user32" Alias "HiliteMenuItem" (ByVal hwnd As Long, ByVal hMenu As Long, ByVal wIDHiliteItem As Long, ByVal wHilite As Long) As Long Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long Declare Function GetMenuState Lib "user32" Alias "GetMenuState" (ByVal hMenu As Long, ByVal wID As Long, ByVal wFlags As Long) As Long Declare Function DrawMenuBar Lib "user32" Alias "DrawMenuBar" (ByVal hwnd As Long) As Long Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Declare Function CreateMenu Lib "user32" Alias "CreateMenu" () As Long Declare Function CreatePopupMenu Lib "user32" Alias "CreatePopupMenu" () As Long Declare Function DestroyMenu Lib "user32" Alias "DestroyMenu" (ByVal hMenu As Long) As Long Declare Function CheckMenuItem Lib "user32" Alias "CheckMenuItem" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long Declare Function EnableMenuItem Lib "user32" Alias "EnableMenuItem" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long Declare Function GetSubMenu Lib "user32" Alias "GetSubMenu" (ByVal hMenu As Long, ByVal nPos As Long) As Long Declare Function GetMenuItemID Lib "user32" Alias "GetMenuItemID" (ByVal hMenu As Long, ByVal nPos As Long) As Long Declare Function GetMenuItemCount Lib "user32" Alias "GetMenuItemCount" (ByVal hMenu As Long) As Long Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As Long Declare Function RemoveMenu Lib "user32" Alias "RemoveMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Declare Function SetMenuItemBitmaps Lib "user32" Alias "SetMenuItemBitmaps" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long Declare Function GetMenuCheckMarkDimensions Lib "user32" Alias "GetMenuCheckMarkDimensions" () As Long Declare Function TrackPopupMenu Lib "user32" Alias "TrackPopupMenu" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As Rect) As Long ' Indicadores de TrackPopupMenu Const TPM_LEFTBUTTON = &H0& Const TPM_RIGHTBUTTON = &H2& Const TPM_LEFTALIGN = &H0& Const TPM_CENTERALIGN = &H4& Const TPM_RIGHTALIGN = &H8& Declare Function DrawIcon Lib "user32" Alias "DrawIcon" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long ' Indicadores de formato de DrawText() Const DT_TOP = &H0 Const DT_LEFT = &H0 Const DT_CENTER = &H1 Const DT_RIGHT = &H2 Const DT_VCENTER = &H4 Const DT_BOTTOM = &H8 Const DT_WORDBREAK = &H10 Const DT_SINGLELINE = &H20 Const DT_EXPANDTABS = &H40 Const DT_TABSTOP = &H80 Const DT_NOCLIP = &H100 Const DT_EXTERNALLEADING = &H200 Const DT_CALCRECT = &H400 Const DT_NOPREFIX = &H800 Const DT_INTERNAL = &H1000 Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long Declare Function TabbedTextOut Lib "user32" Alias "TabbedTextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long, ByVal nTabPositions As Long, lpnTabStopPositions As Long, ByVal nTabOrigin As Long) As Long Declare Function GetTabbedTextExtent Lib "user32" Alias "GetTabbedTextExtentA" (ByVal hdc As Long, ByVal lpString As String, ByVal nCount As Long, ByVal nTabPositions As Long, lpnTabStopPositions As Long) As Long Declare Function UpdateWindow Lib "user32" Alias "UpdateWindow" (ByVal hwnd As Long) As Long Declare Function SetActiveWindow Lib "user32" Alias "SetActiveWindow" (ByVal hwnd As Long) As Long Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long Declare Function WindowFromDC Lib "user32" Alias "WindowFromDC" (ByVal hdc As Long) As Long Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long Declare Function GetDCEx Lib "user32" Alias "GetDCEx" (ByVal hwnd As Long, ByVal hrgnclip As Long, ByVal fdwOptions As Long) As Long Const DCX_WINDOW = &H1& Const DCX_CACHE = &H2& Const DCX_NORESETATTRS = &H4& Const DCX_CLIPCHILDREN = &H8& Const DCX_CLIPSIBLINGS = &H10& Const DCX_PARENTCLIP = &H20& Const DCX_EXCLUDERGN = &H40& Const DCX_INTERSECTRGN = &H80& Const DCX_EXCLUDEUPDATE = &H100& Const DCX_INTERSECTUPDATE = &H200& Const DCX_LOCKWINDOWUPDATE = &H400& Const DCX_NORECOMPUTE = &H100000 Const DCX_VALIDATE = &H200000 Declare Function GetWindowDC Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Long) As Long Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long Declare Function BeginPaint Lib "user32" Alias "BeginPaint" (ByVal hwnd As Long, lpPaint As PAINTSTRUCT) As Long Declare Function EndPaint Lib "user32" Alias "EndPaint" (ByVal hwnd As Long, lpPaint As PAINTSTRUCT) As Long Declare Function GetUpdateRect Lib "user32" Alias "GetUpdateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long Declare Function GetUpdateRgn Lib "user32" Alias "GetUpdateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal fErase As Long) As Long Declare Function ExcludeUpdateRgn Lib "user32" Alias "ExcludeUpdateRgn" (ByVal hdc As Long, ByVal hwnd As Long) As Long Declare Function InvalidateRect Lib "user32" Alias "InvalidateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long Declare Function ValidateRect Lib "user32" Alias "ValidateRect" (ByVal hwnd As Long, lpRect As RECT) As Long Declare Function InvalidateRgn Lib "user32" Alias "InvalidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bErase As Long) As Long Declare Function ValidateRgn Lib "user32" Alias "ValidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long) As Long Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long Const RDW_INVALIDATE = &H1 Const RDW_INTERNALPAINT = &H2 Const RDW_ERASE = &H4 Const RDW_VALIDATE = &H8 Const RDW_NOINTERNALPAINT = &H10 Const RDW_NOERASE = &H20 Const RDW_NOCHILDREN = &H40 Const RDW_ALLCHILDREN = &H80 Const RDW_UPDATENOW = &H100 Const RDW_ERASENOW = &H200 Const RDW_FRAME = &H400 Const RDW_NOFRAME = &H800 Declare Function LockWindowUpdate Lib "user32" Alias "LockWindowUpdate" (ByVal hwndLock As Long) As Long Declare Function ScrollWindow Lib "user32" Alias "ScrollWindow" (ByVal hWnd As Long, ByVal XAmount As Long, ByVal YAmount As Long, lpRect As RECT, lpClipRect As RECT) As Long Declare Function ScrollDC Lib "user32" Alias "ScrollDC" (ByVal hdc As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT) As Long Declare Function ScrollWindowEx Lib "user32" Alias "ScrollWindowEx" (ByVal hwnd As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT, ByVal fuScroll As Long) As Long Const SW_SCROLLCHILDREN = &H1 Const SW_INVALIDATE = &H2 Const SW_ERASE = &H4 Declare Function SetScrollPos Lib "user32" Alias "SetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nPos As Long, ByVal bRedraw As Long) As Long Declare Function GetScrollPos Lib "user32" Alias "GetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long) As Long Declare Function SetScrollRange Lib "user32" Alias "SetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nMinPos As Long, ByVal nMaxPos As Long, ByVal bRedraw As Long) As Long Declare Function GetScrollRange Lib "user32" Alias "GetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As Long Declare Function ShowScrollBar Lib "user32" Alias "ShowScrollBar" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long Declare Function EnableScrollBar Lib "user32" Alias "EnableScrollBar" (ByVal hwnd As Long, ByVal wSBflags As Long, ByVal wArrows As Long) As Long ' Indicadores de EnableScrollBar() Const ESB_ENABLE_BOTH = &H0 Const ESB_DISABLE_BOTH = &H3 Const ESB_DISABLE_LEFT = &H1 Const ESB_DISABLE_RIGHT = &H2 Const ESB_DISABLE_UP = &H1 Const ESB_DISABLE_DOWN = &H2 Const ESB_DISABLE_LTUP = ESB_DISABLE_LEFT Const ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hwnd As Long, ByVal lpString As String) As Long Declare Function RemoveProp Lib "user32" Alias "RemovePropA" (ByVal hwnd As Long, ByVal lpString As String) As Long Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Declare Function GetClientRect Lib "user32" Alias "GetClientRect" (ByVal hwnd As Long, lpRect As RECT) As Long Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long Declare Function AdjustWindowRect Lib "user32" Alias "AdjustWindowRect" (lpRect As RECT, ByVal dwStyle As Long, ByVal bMenu As Long) As Long Declare Function AdjustWindowRectEx Lib "user32" Alias "AdjustWindowRectEx" (lpRect As RECT, ByVal dsStyle As Long, ByVal bMenu As Long, ByVal dwEsStyle As Long) As Long ' Indicadores de MessageBox() Const MB_OK = &H0& Const MB_OKCANCEL = &H1& Const MB_ABORTRETRYIGNORE = &H2& Const MB_YESNOCANCEL = &H3& Const MB_YESNO = &H4& Const MB_RETRYCANCEL = &H5& Const MB_ICONHAND = &H10& Const MB_ICONQUESTION = &H20& Const MB_ICONEXCLAMATION = &H30& Const MB_ICONASTERISK = &H40& Const MB_ICONINFORMATION = MB_ICONASTERISK Const MB_ICONSTOP = MB_ICONHAND Const MB_DEFBUTTON1 = &H0& Const MB_DEFBUTTON2 = &H100& Const MB_DEFBUTTON3 = &H200& Const MB_APPLMODAL = &H0& Const MB_SYSTEMMODAL = &H1000& Const MB_TASKMODAL = &H2000& Const MB_NOFOCUS = &H8000& Const MB_SETFOREGROUND = &H10000 Const MB_DEFAULT_DESKTOP_ONLY = &H20000 Const MB_TYPEMASK = &HF& Const MB_ICONMASK = &HF0& Const MB_DEFMASK = &HF00& Const MB_MODEMASK = &H3000& Const MB_MISCMASK = &HC000& Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long Declare Function MessageBoxEx Lib "user32" Alias "MessageBoxExA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long, ByVal wLanguageId As Long) As Long Declare Function MessageBeep Lib "user32" Alias "MessageBeep" (ByVal wType As Long) As Long Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Long) As Long Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long Declare Function SetCursor Lib "user32" Alias "SetCursor" (ByVal hCursor As Long) As Long Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long Declare Function GetCursor Lib "user32" Alias "GetCursor" () As Long Declare Function GetClipCursor Lib "user32" Alias "GetClipCursor" (lprc As RECT) As Long Declare Function CreateCaret Lib "user32" Alias "CreateCaret" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Declare Function GetCaretBlinkTime Lib "user32" Alias "GetCaretBlinkTime" () As Long Declare Function SetCaretBlinkTime Lib "user32" Alias "SetCaretBlinkTime" (ByVal wMSeconds As Long) As Long Declare Function DestroyCaret Lib "user32" Alias "DestroyCaret" () As Long Declare Function HideCaret Lib "user32" Alias "HideCaret" (ByVal hwnd As Long) As Long Declare Function ShowCaret Lib "user32" Alias "ShowCaret" (ByVal hwnd As Long) As Long Declare Function SetCaretPos Lib "user32" Alias "SetCaretPos" (ByVal x As Long, ByVal y As Long) As Long Declare Function GetCaretPos Lib "user32" Alias "GetCaretPos" (lpPoint As POINTAPI) As Long Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long Declare Function MapWindowPoints Lib "user32" Alias "MapWindowPoints" (ByVal hwndFrom As Long, ByVal hwndTo As Long, lppt As Any, ByVal cPoints As Long) As Long Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long Declare Function ChildWindowFromPoint Lib "user32" Alias "ChildWindowFromPoint" (ByVal hWnd As Long, ByVal xPoint As Long, ByVal yPoint As Long) As Long ' Tipos de color Const CTLCOLOR_MSGBOX = 0 Const CTLCOLOR_EDIT = 1 Const CTLCOLOR_LISTBOX = 2 Const CTLCOLOR_BTN = 3 Const CTLCOLOR_DLG = 4 Const CTLCOLOR_SCROLLBAR = 5 Const CTLCOLOR_STATIC = 6 Const CTLCOLOR_MAX = 8 ' tres bits como máximo Const COLOR_SCROLLBAR = 0 Const COLOR_BACKGROUND = 1 Const COLOR_ACTIVECAPTION = 2 Const COLOR_INACTIVECAPTION = 3 Const COLOR_MENU = 4 Const COLOR_WINDOW = 5 Const COLOR_WINDOWFRAME = 6 Const COLOR_MENUTEXT = 7 Const COLOR_WINDOWTEXT = 8 Const COLOR_CAPTIONTEXT = 9 Const COLOR_ACTIVEBORDER = 10 Const COLOR_INACTIVEBORDER = 11 Const COLOR_APPWORKSPACE = 12 Const COLOR_HIGHLIGHT = 13 Const COLOR_HIGHLIGHTTEXT = 14 Const COLOR_BTNFACE = 15 Const COLOR_BTNSHADOW = 16 Const COLOR_GRAYTEXT = 17 Const COLOR_BTNTEXT = 18 Const COLOR_INACTIVECAPTIONTEXT = 19 Const COLOR_BTNHIGHLIGHT = 20 Declare Function GetSysColor Lib "user32" Alias "GetSysColor" (ByVal nIndex As Long) As Long Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal hdc As Long, lpRect As RECT) As Long Declare Function FillRect Lib "user32" Alias "FillRect" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long Declare Function FrameRect Lib "user32" Alias "FrameRect" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long Declare Function InvertRect Lib "user32" Alias "InvertRect" (ByVal hdc As Long, lpRect As RECT) As Long Declare Function SetRect Lib "user32" Alias "SetRect" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function SetRectEmpty Lib "user32" Alias "SetRectEmpty" (lpRect As RECT) As Long Declare Function CopyRect Lib "user32" Alias "CopyRect" (lpDestRect As RECT, lpSourceRect As RECT) As Long Declare Function InflateRect Lib "user32" Alias "InflateRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long Declare Function IntersectRect Lib "user32" Alias "IntersectRect" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long Declare Function UnionRect Lib "user32" Alias "UnionRect" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long Declare Function SubtractRect Lib "user32" Alias "SubtractRect" (lprcDst As RECT, lprcSrc1 As RECT, lprcSrc2 As RECT) As Long Declare Function OffsetRect Lib "user32" Alias "OffsetRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long Declare Function IsRectEmpty Lib "user32" Alias "IsRectEmpty" (lpRect As RECT) As Long Declare Function EqualRect Lib "user32" Alias "EqualRect" (lpRect1 As RECT, lpRect2 As RECT) As Long Declare Function PtInRect Lib "user32" Alias "PtInRect" (lpRect As RECT, pt As POINTAPI) As Long Declare Function GetWindowWord Lib "user32" Alias "GetWindowWord" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer Declare Function SetWindowWord Lib "user32" Alias "SetWindowWord" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Declare Function GetClassWord Lib "user32" Alias "GetClassWord" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Declare Function SetClassWord Lib "user32" Alias "SetClassWord" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Declare Function GetTopWindow Lib "user32" Alias "GetTopWindow" (ByVal hwnd As Long) As Long Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Declare Function GetLastActivePopup Lib "user32" Alias "GetLastActivePopup" (ByVal hwndOwnder As Long) As Long ' Constantes de GetWindow() Const GW_HWNDFIRST = 0 Const GW_HWNDLAST = 1 Const GW_HWNDNEXT = 2 Const GW_HWNDPREV = 3 Const GW_OWNER = 4 Const GW_CHILD = 5 Const GW_MAX = 5 Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Declare Function UnhookWindowsHookEx Lib "user32" Alias "UnhookWindowsHookEx" (ByVal hHook As Long) As Long Declare Function CallNextHookEx Lib "user32" Alias "CallNextHookEx" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long ' Indicadores de menú para Agregar/Verificar/Activar elemento del Const MF_INSERT = &H0& Const MF_CHANGE = &H80& Const MF_APPEND = &H100& Const MF_DELETE = &H200& Const MF_REMOVE = &H1000& Const MF_BYCOMMAND = &H0& Const MF_BYPOSITION = &H400& Const MF_SEPARATOR = &H800& Const MF_ENABLED = &H0& Const MF_GRAYED = &H1& Const MF_DISABLED = &H2& Const MF_UNCHECKED = &H0& Const MF_CHECKED = &H8& Const MF_USECHECKBITMAPS = &H200& Const MF_STRING = &H0& Const MF_BITMAP = &H4& Const MF_OWNERDRAW = &H100& Const MF_POPUP = &H10& Const MF_MENUBARBREAK = &H20& Const MF_MENUBREAK = &H40& Const MF_UNHILITE = &H0& Const MF_HILITE = &H80& Const MF_SYSMENU = &H2000& Const MF_HELP = &H4000& Const MF_MOUSESELECT = &H8000& ' Formato de recurso de los elementos de menú Type MENUITEMTEMPLATEHEADER versionNumber As Integer offset As Integer End Type Type MENUITEMTEMPLATE mtOption As Integer mtID As Integer mtString As Byte End Type Const MF_END = &H80 ' Valores de los comandos de menú del sistema Const SC_SIZE = &HF000& Const SC_MOVE = &HF010& Const SC_MINIMIZE = &HF020& Const SC_MAXIMIZE = &HF030& Const SC_NEXTWINDOW = &HF040& Const SC_PREVWINDOW = &HF050& Const SC_CLOSE = &HF060& Const SC_VSCROLL = &HF070& Const SC_HSCROLL = &HF080& Const SC_MOUSEMENU = &HF090& Const SC_KEYMENU = &HF100& Const SC_ARRANGE = &HF110& Const SC_RESTORE = &HF120& Const SC_TASKLIST = &HF130& Const SC_SCREENSAVE = &HF140& Const SC_HOTKEY = &HF150& ' Nombres obsoletos Const SC_ICON = SC_MINIMIZE Const SC_ZOOM = SC_MAXIMIZE ' Rutinas de carga de recursos Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As String) As Long Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As String) As Long Declare Function CreateCursor Lib "user32" Alias "CreateCursor" (ByVal hInstance As Long, ByVal nXhotspot As Long, ByVal nYhotspot As Long, ByVal nWidth As Long, ByVal nHeight As Long, lpANDbitPlane As Any, lpXORbitPlane As Any) As Long Declare Function DestroyCursor Lib "user32" Alias "DestroyCursor" (ByVal hCursor As Long) As Long Declare Function CopyCursor Lib "user32" Alias "CopyCursor" (ByVal hcur As Long) As Long ' Id. de los cursores estándar Const IDC_ARROW = 32512& Const IDC_IBEAM = 32513& Const IDC_WAIT = 32514& Const IDC_CROSS = 32515& Const IDC_UPARROW = 32516& Const IDC_SIZE = 32640& Const IDC_ICON = 32641& Const IDC_SIZENWSE = 32642& Const IDC_SIZENESW = 32643& Const IDC_SIZEWE = 32644& Const IDC_SIZENS = 32645& Const IDC_SIZEALL = 32646& Const IDC_NO = 32648& Const IDC_APPSTARTING = 32650& Type ICONINFO fIcon As Long xHotspot As Long yHotspot As Long hbmMask As Long hbmColor As Long End Type Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As String) As Long Declare Function CreateIcon Lib "user32" Alias "CreateIcon" (ByVal hInstance As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Byte, ByVal nBitsPixel As Byte, lpANDbits As Byte, lpXORbits As Byte) As Long Declare Function DestroyIcon Lib "user32" Alias "DestroyIcon" (ByVal hIcon As Long) As Long Declare Function LookupIconIdFromDirectory Lib "user32" Alias "LookupIconIdFromDirectory" (presbits As Byte, ByVal fIcon As Long) As Long Declare Function CreateIconIndirect Lib "user32" Alias "CreateIconIndirect" (piconinfo As ICONINFO) As Long Declare Function CopyIcon Lib "user32" Alias "CopyIcon" (ByVal hIcon As Long) As Long Declare Function GetIconInfo Lib "user32" Alias "GetIconInfo" (ByVal hIcon As Long, piconinfo As ICONINFO) As Long ' Números ordinales de recurso OEM Const OBM_CLOSE = 32754 Const OBM_UPARROW = 32753 Const OBM_DNARROW = 32752 Const OBM_RGARROW = 32751 Const OBM_LFARROW = 32750 Const OBM_REDUCE = 32749 Const OBM_ZOOM = 32748 Const OBM_RESTORE = 32747 Const OBM_REDUCED = 32746 Const OBM_ZOOMD = 32745 Const OBM_RESTORED = 32744 Const OBM_UPARROWD = 32743 Const OBM_DNARROWD = 32742 Const OBM_RGARROWD = 32741 Const OBM_LFARROWD = 32740 Const OBM_MNARROW = 32739 Const OBM_COMBO = 32738 Const OBM_UPARROWI = 32737 Const OBM_DNARROWI = 32736 Const OBM_RGARROWI = 32735 Const OBM_LFARROWI = 32734 Const OBM_OLD_CLOSE = 32767 Const OBM_SIZE = 32766 Const OBM_OLD_UPARROW = 32765 Const OBM_OLD_DNARROW = 32764 Const OBM_OLD_RGARROW = 32763 Const OBM_OLD_LFARROW = 32762 Const OBM_BTSIZE = 32761 Const OBM_CHECK = 32760 Const OBM_CHECKBOXES = 32759 Const OBM_BTNCORNERS = 32758 Const OBM_OLD_REDUCE = 32757 Const OBM_OLD_ZOOM = 32756 Const OBM_OLD_RESTORE = 32755 Const OCR_NORMAL = 32512 Const OCR_IBEAM = 32513 Const OCR_WAIT = 32514 Const OCR_CROSS = 32515 Const OCR_UP = 32516 Const OCR_SIZE = 32640 Const OCR_ICON = 32641 Const OCR_SIZENWSE = 32642 Const OCR_SIZENESW = 32643 Const OCR_SIZEWE = 32644 Const OCR_SIZENS = 32645 Const OCR_SIZEALL = 32646 Const OCR_ICOCUR = 32647 Const OCR_NO = 32648 ' no en win3.1 Const OIC_SAMPLE = 32512 Const OIC_HAND = 32513 Const OIC_QUES = 32514 Const OIC_BANG = 32515 Const OIC_NOTE = 32516 Const ORD_LANGDRIVER = 1 ' Número ordinal para el punto de entrada de los ' controladores de idioma. ' Id. de los iconos estándar Const IDI_APPLICATION = 32512& Const IDI_HAND = 32513& Const IDI_QUESTION = 32514& Const IDI_EXCLAMATION = 32515& Const IDI_ASTERISK = 32516& Declare Function LoadString Lib "user32" Alias "LoadStringA" (ByVal hInstance As Long, ByVal wID As Long, ByVal lpBuffer As String, ByVal nBufferMax As Long) As Long ' Id. de los comandos de cuadro de diálogo Const IDOK = 1 Const IDCANCEL = 2 Const IDABORT = 3 Const IDRETRY = 4 Const IDIGNORE = 5 Const IDYES = 6 Const IDNO = 7 ' Estructuras y definiciones del administrador de control ' Estilos del control Edit Const ES_LEFT = &H0& Const ES_CENTER = &H1& Const ES_RIGHT = &H2& Const ES_MULTILINE = &H4& Const ES_UPPERCASE = &H8& Const ES_LOWERCASE = &H10& Const ES_PASSWORD = &H20& Const ES_AUTOVSCROLL = &H40& Const ES_AUTOHSCROLL = &H80& Const ES_NOHIDESEL = &H100& Const ES_OEMCONVERT = &H400& Const ES_READONLY = &H800& Const ES_WANTRETURN = &H1000& ' Códigos de notificación del control Edit Const EN_SETFOCUS = &H100 Const EN_KILLFOCUS = &H200 Const EN_CHANGE = &H300 Const EN_UPDATE = &H400 Const EN_ERRSPACE = &H500 Const EN_MAXTEXT = &H501 Const EN_HSCROLL = &H601 Const EN_VSCROLL = &H602 ' Mensajes del control Edit Const EM_GETSEL = &HB0 Const EM_SETSEL = &HB1 Const EM_GETRECT = &HB2 Const EM_SETRECT = &HB3 Const EM_SETRECTNP = &HB4 Const EM_SCROLL = &HB5 Const EM_LINESCROLL = &HB6 Const EM_SCROLLCARET = &HB7 Const EM_GETMODIFY = &HB8 Const EM_SETMODIFY = &HB9 Const EM_GETLINECOUNT = &HBA Const EM_LINEINDEX = &HBB Const EM_SETHANDLE = &HBC Const EM_GETHANDLE = &HBD Const EM_GETTHUMB = &HBE Const EM_LINELENGTH = &HC1 Const EM_REPLACESEL = &HC2 Const EM_GETLINE = &HC4 Const EM_LIMITTEXT = &HC5 Const EM_CANUNDO = &HC6 Const EM_UNDO = &HC7 Const EM_FMTLINES = &HC8 Const EM_LINEFROMCHAR = &HC9 Const EM_SETTABSTOPS = &HCB Const EM_SETPASSWORDCHAR = &HCC Const EM_EMPTYUNDOBUFFER = &HCD Const EM_GETFIRSTVISIBLELINE = &HCE Const EM_SETREADONLY = &HCF Const EM_SETWORDBREAKPROC = &HD0 Const EM_GETWORDBREAKPROC = &HD1 Const EM_GETPASSWORDCHAR = &HD2 ' Valores del código EDITWORDBREAKPROC Const WB_LEFT = 0 Const WB_RIGHT = 1 Const WB_ISDELIMITER = 2 ' Estilos del control Button Const BS_PUSHBUTTON = &H0& Const BS_DEFPUSHBUTTON = &H1& Const BS_CHECKBOX = &H2& Const BS_AUTOCHECKBOX = &H3& Const BS_RADIOBUTTON = &H4& Const BS_3STATE = &H5& Const BS_AUTO3STATE = &H6& Const BS_GROUPBOX = &H7& Const BS_USERBUTTON = &H8& Const BS_AUTORADIOBUTTON = &H9& Const BS_OWNERDRAW = &HB& Const BS_LEFTTEXT = &H20& ' Códigos de notificación del botón de usuario Const BN_CLICKED = 0 Const BN_PAINT = 1 Const BN_HILITE = 2 Const BN_UNHILITE = 3 Const BN_DISABLE = 4 Const BN_DOUBLECLICKED = 5 ' Mensajes del control Button Const BM_GETCHECK = &HF0 Const BM_SETCHECK = &HF1 Const BM_GETSTATE = &HF2 Const BM_SETSTATE = &HF3 Const BM_SETSTYLE = &HF4 ' Constantes del control Static Const SS_LEFT = &H0& Const SS_CENTER = &H1& Const SS_RIGHT = &H2& Const SS_ICON = &H3& Const SS_BLACKRECT = &H4& Const SS_GRAYRECT = &H5& Const SS_WHITERECT = &H6& Const SS_BLACKFRAME = &H7& Const SS_GRAYFRAME = &H8& Const SS_WHITEFRAME = &H9& Const SS_USERITEM = &HA& Const SS_SIMPLE = &HB& Const SS_LEFTNOWORDWRAP = &HC& Const SS_NOPREFIX = &H80 ' No convierte el carácter "&" ' Mensajes del control Static Const STM_SETICON = &H170 Const STM_GETICON = &H171 Const STM_MSGMAX = &H172 Const WC_DIALOG = 8002& ' Desplazamientos de Get/SetWindowWord/Long para usar con las ventanas WC_DIALOG Const DWL_MSGRESULT = 0 Const DWL_DLGPROC = 4 Const DWL_USER = 8 ' Rutinas del administrador de diálogos Declare Function IsDialogMessage Lib "user32" Alias "IsDialogMessageA" (ByVal hDlg As Long, lpMsg As MSG) As Long Declare Function MapDialogRect Lib "user32" Alias "MapDialogRect" (ByVal hDlg As Long, lpRect As RECT) As Long Declare Function DlgDirList Lib "user32" Alias "DlgDirListA" (ByVal hDlg As Long, ByVal lpPathSpec As String, ByVal nIDListBox As Long, ByVal nIDStaticPath As Long, ByVal wFileType As Long) As Long ' Valores de los indicadores DlgDirList, DlgDirListComboBox Const DDL_READWRITE = &H0 Const DDL_READONLY = &H1 Const DDL_HIDDEN = &H2 Const DDL_SYSTEM = &H4 Const DDL_DIRECTORY = &H10 Const DDL_ARCHIVE = &H20 Const DDL_POSTMSGS = &H2000 Const DDL_DRIVES = &H4000 Const DDL_EXCLUSIVE = &H8000 Declare Function DlgDirSelectEx Lib "user32" Alias "DlgDirSelectExA" (ByVal hWndDlg As Long, ByVal lpszPath As String, ByVal cbPath As Long, ByVal idListBox As Long) As Long Declare Function DlgDirListComboBox Lib "user32" Alias "DlgDirListComboBoxA" (ByVal hDlg As Long, ByVal lpPathSpec As String, ByVal nIDComboBox As Long, ByVal nIDStaticPath As Long, ByVal wFileType As Long) As Long Declare Function DlgDirSelectComboBoxEx Lib "user32" Alias "DlgDirSelectComboBoxExA" (ByVal hWndDlg As Long, ByVal lpszPath As String, ByVal cbPath As Long, ByVal idComboBox As Long) As Long ' Estilos de diálogos Const DS_ABSALIGN = &H1& Const DS_SYSMODAL = &H2& Const DS_LOCALEDIT = &H20 ' Los elementos editados se almacenan localmente. Const DS_SETFONT = &H40 ' Fuente especificada por el usuario para los controles Dlg Const DS_MODALFRAME = &H80 ' Se puede combinar con WS_CAPTION Const DS_NOIDLEMSG = &H100 ' El mensaje WM_ENTERIDLE no se enviará Const DS_SETFOREGROUND = &H200 ' No está en win3.1 Const DM_GETDEFID = WM_USER + 0 Const DM_SETDEFID = WM_USER + 1 Const DC_HASDEFID = &H534 '0x534B ' Códigos de diálogo Const DLGC_WANTARROWS = &H1 ' El control precisa teclas de dirección Const DLGC_WANTTAB = &H2 ' El control precisa teclas de tabulación Const DLGC_WANTALLKEYS = &H4 ' El control precisa todas las teclas Const DLGC_WANTMESSAGE = &H4 ' Pasa un mensaje al control Const DLGC_HASSETSEL = &H8 ' Entiende el mensaje EM_SETSEL Const DLGC_DEFPUSHBUTTON = &H10 ' Botón de comando predeterminado Const DLGC_UNDEFPUSHBUTTON = &H20 ' Botón de comando no predeterminado Const DLGC_RADIOBUTTON = &H40 ' Botón de opción Const DLGC_WANTCHARS = &H80 ' Precisa mensajes WM_CHAR Const DLGC_STATIC = &H100 ' Elemento estático: no incluir Const DLGC_BUTTON = &H2000 ' Elemento de botón: se puede activar Const LB_CTLCODE = 0& ' Valores de retorno del control Listbox Const LB_OKAY = 0 Const LB_ERR = (-1) Const LB_ERRSPACE = (-2) ' El parámetro idStaticPath para DlgDirList puede tener los valores siguientes ' con OR si el cuadro de lista tiene que mostrar otros detalles de los archivos ' junto con el nombre de los archivos; ' devolverá también todos los demás detalles ' Códigos de notificación de Listbox Const LBN_ERRSPACE = (-2) Const LBN_SELCHANGE = 1 Const LBN_DBLCLK = 2 Const LBN_SELCANCEL = 3 Const LBN_SETFOCUS = 4 Const LBN_KILLFOCUS = 5 ' Mensajes del control Listbox Const LB_ADDSTRING = &H180 Const LB_INSERTSTRING = &H181 Const LB_DELETESTRING = &H182 Const LB_SELITEMRANGEEX = &H183 Const LB_RESETCONTENT = &H184 Const LB_SETSEL = &H185 Const LB_SETCURSEL = &H186 Const LB_GETSEL = &H187 Const LB_GETCURSEL = &H188 Const LB_GETTEXT = &H189 Const LB_GETTEXTLEN = &H18A Const LB_GETCOUNT = &H18B Const LB_SELECTSTRING = &H18C Const LB_DIR = &H18D Const LB_GETTOPINDEX = &H18E Const LB_FINDSTRING = &H18F Const LB_GETSELCOUNT = &H190 Const LB_GETSELITEMS = &H191 Const LB_SETTABSTOPS = &H192 Const LB_GETHORIZONTALEXTENT = &H193 Const LB_SETHORIZONTALEXTENT = &H194 Const LB_SETCOLUMNWIDTH = &H195 Const LB_ADDFILE = &H196 Const LB_SETTOPINDEX = &H197 Const LB_GETITEMRECT = &H198 Const LB_GETITEMDATA = &H199 Const LB_SETITEMDATA = &H19A Const LB_SELITEMRANGE = &H19B Const LB_SETANCHORINDEX = &H19C Const LB_GETANCHORINDEX = &H19D Const LB_SETCARETINDEX = &H19E Const LB_GETCARETINDEX = &H19F Const LB_SETITEMHEIGHT = &H1A0 Const LB_GETITEMHEIGHT = &H1A1 Const LB_FINDSTRINGEXACT = &H1A2 Const LB_SETLOCALE = &H1A5 Const LB_GETLOCALE = &H1A6 Const LB_SETCOUNT = &H1A7 Const LB_MSGMAX = &H1A8 ' Estilos de cuadro de lista Const LBS_NOTIFY = &H1& Const LBS_SORT = &H2& Const LBS_NOREDRAW = &H4& Const LBS_MULTIPLESEL = &H8& Const LBS_OWNERDRAWFIXED = &H10& Const LBS_OWNERDRAWVARIABLE = &H20& Const LBS_HASSTRINGS = &H40& Const LBS_USETABSTOPS = &H80& Const LBS_NOINTEGRALHEIGHT = &H100& Const LBS_MULTICOLUMN = &H200& Const LBS_WANTKEYBOARDINPUT = &H400& Const LBS_EXTENDEDSEL = &H800& Const LBS_DISABLENOSCROLL = &H1000& Const LBS_NODATA = &H2000& Const LBS_STANDARD = (LBS_NOTIFY Or LBS_SORT Or WS_VSCROLL Or WS_BORDER) ' Valores de retorno del control ComboBox Const CB_OKAY = 0 Const CB_ERR = (-1) Const CB_ERRSPACE = (-2) ' Códigos de notificación del control ComboBox Const CBN_ERRSPACE = (-1) Const CBN_SELCHANGE = 1 Const CBN_DBLCLK = 2 Const CBN_SETFOCUS = 3 Const CBN_KILLFOCUS = 4 Const CBN_EDITCHANGE = 5 Const CBN_EDITUPDATE = 6 Const CBN_DROPDOWN = 7 Const CBN_CLOSEUP = 8 Const CBN_SELENDOK = 9 Const CBN_SELENDCANCEL = 10 ' Estilos del control ComboBox Const CBS_SIMPLE = &H1& Const CBS_DROPDOWN = &H2& Const CBS_DROPDOWNLIST = &H3& Const CBS_OWNERDRAWFIXED = &H10& Const CBS_OWNERDRAWVARIABLE = &H20& Const CBS_AUTOHSCROLL = &H40& Const CBS_OEMCONVERT = &H80& Const CBS_SORT = &H100& Const CBS_HASSTRINGS = &H200& Const CBS_NOINTEGRALHEIGHT = &H400& Const CBS_DISABLENOSCROLL = &H800& ' Mensajes del control ComboBox Const CB_GETEDITSEL = &H140 Const CB_LIMITTEXT = &H141 Const CB_SETEDITSEL = &H142 Const CB_ADDSTRING = &H143 Const CB_DELETESTRING = &H144 Const CB_DIR = &H145 Const CB_GETCOUNT = &H146 Const CB_GETCURSEL = &H147 Const CB_GETLBTEXT = &H148 Const CB_GETLBTEXTLEN = &H149 Const CB_INSERTSTRING = &H14A Const CB_RESETCONTENT = &H14B Const CB_FINDSTRING = &H14C Const CB_SELECTSTRING = &H14D Const CB_SETCURSEL = &H14E Const CB_SHOWDROPDOWN = &H14F Const CB_GETITEMDATA = &H150 Const CB_SETITEMDATA = &H151 Const CB_GETDROPPEDCONTROLRECT = &H152 Const CB_SETITEMHEIGHT = &H153 Const CB_GETITEMHEIGHT = &H154 Const CB_SETEXTENDEDUI = &H155 Const CB_GETEXTENDEDUI = &H156 Const CB_GETDROPPEDSTATE = &H157 Const CB_FINDSTRINGEXACT = &H158 Const CB_SETLOCALE = &H159 Const CB_GETLOCALE = &H15A Const CB_MSGMAX = &H15B ' Estilos del control ScrollBar Const SBS_HORZ = &H0& Const SBS_VERT = &H1& Const SBS_TOPALIGN = &H2& Const SBS_LEFTALIGN = &H2& Const SBS_BOTTOMALIGN = &H4& Const SBS_RIGHTALIGN = &H4& Const SBS_SIZEBOXTOPLEFTALIGN = &H2& Const SBS_SIZEBOXBOTTOMRIGHTALIGN = &H4& Const SBS_SIZEBOX = &H8& ' Mensajes del control ScrollBar Const SBM_SETPOS = &HE0 ' no en win3.1 Const SBM_GETPOS = &HE1 ' no en win3.1 Const SBM_SETRANGE = &HE2 ' no en win3.1 Const SBM_SETRANGEREDRAW = &HE6 ' no en win3.1 Const SBM_GETRANGE = &HE3 ' no en win3.1 Const SBM_ENABLE_ARROWS = &HE4 ' no en win3.1 Const MDIS_ALLCHILDSTYLES = &H1 ' Valores de wParam para los mensajes WM_MDITILE y WM_MDICASCADE. Const MDITILE_VERTICAL = &H0 Const MDITILE_HORIZONTAL = &H1 Const MDITILE_SKIPDISABLED = &H2 Type MDICREATESTRUCT szClass As String szTitle As String hOwner As Long x As Long y As Long cx As Long cy As Long style As Long lParam As Long End Type Type CLIENTCREATESTRUCT hWindowMenu As Long idFirstChild As Long End Type Declare Function DefFrameProc Lib "user32" Alias "DefFrameProcA" (ByVal hwnd As Long, ByVal hWndMDIClient As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function DefMDIChildProc Lib "user32" Alias "DefMDIChildProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function TranslateMDISysAccel Lib "user32" Alias "TranslateMDISysAccel" (ByVal hWndClient As Long, lpMsg As MSG) As Long Declare Function ArrangeIconicWindows Lib "user32" Alias "ArrangeIconicWindows" (ByVal hwnd As Long) As Long Declare Function CreateMDIWindow Lib "user32" Alias "CreateMDIWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hInstance As Long, ByVal lParam As Long) As Long ' Sección del motor de la Ayuda. Type MULTIKEYHELP mkSize As Long mkKeylist As Byte szKeyphrase As String * 253 ' La longitud de matriz es arbitraria; se puede cambiar End Type Type HELPWININFO wStructSize As Long x As Long y As Long dx As Long dy As Long wMax As Long rgchMember As String * 2 End Type ' Comandos para pasar a WinHelp() Const HELP_CONTEXT = &H1 ' Presenta un tema en ulTopic Const HELP_QUIT = &H2 ' Termina la ayuda Const HELP_INDEX = &H3 ' Presenta el índice Const HELP_CONTENTS = &H3& Const HELP_HELPONHELP = &H4 ' Presenta ayuda sobre el uso de la ayuda Const HELP_SETINDEX = &H5 ' Establece el índice activo para ayuda de múltiples índices Const HELP_SETCONTENTS = &H5& Const HELP_CONTEXTPOPUP = &H8& Const HELP_FORCEFILE = &H9& Const HELP_KEY = &H101 ' Presenta el tema para una palabra clave de offabData Const HELP_COMMAND = &H102& Const HELP_PARTIALKEY = &H105& Const HELP_MULTIKEY = &H201& Const HELP_SETWINPOS = &H203& Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long ' Parámetro para SystemParametersInfo() Const SPI_GETBEEP = 1 Const SPI_SETBEEP = 2 Const SPI_GETMOUSE = 3 Const SPI_SETMOUSE = 4 Const SPI_GETBORDER = 5 Const SPI_SETBORDER = 6 Const SPI_GETKEYBOARDSPEED = 10 Const SPI_SETKEYBOARDSPEED = 11 Const SPI_LANGDRIVER = 12 Const SPI_ICONHORIZONTALSPACING = 13 Const SPI_GETSCREENSAVETIMEOUT = 14 Const SPI_SETSCREENSAVETIMEOUT = 15 Const SPI_GETSCREENSAVEACTIVE = 16 Const SPI_SETSCREENSAVEACTIVE = 17 Const SPI_GETGRIDGRANULARITY = 18 Const SPI_SETGRIDGRANULARITY = 19 Const SPI_SETDESKWALLPAPER = 20 Const SPI_SETDESKPATTERN = 21 Const SPI_GETKEYBOARDDELAY = 22 Const SPI_SETKEYBOARDDELAY = 23 Const SPI_ICONVERTICALSPACING = 24 Const SPI_GETICONTITLEWRAP = 25 Const SPI_SETICONTITLEWRAP = 26 Const SPI_GETMENUDROPALIGNMENT = 27 Const SPI_SETMENUDROPALIGNMENT = 28 Const SPI_SETDOUBLECLKWIDTH = 29 Const SPI_SETDOUBLECLKHEIGHT = 30 Const SPI_GETICONTITLELOGFONT = 31 Const SPI_SETDOUBLECLICKTIME = 32 Const SPI_SETMOUSEBUTTONSWAP = 33 Const SPI_SETICONTITLELOGFONT = 34 Const SPI_GETFASTTASKSWITCH = 35 Const SPI_SETFASTTASKSWITCH = 36 Const SPI_SETDRAGFULLWINDOWS = 37 Const SPI_GETDRAGFULLWINDOWS = 38 Const SPI_GETNONCLIENTMETRICS = 41 Const SPI_SETNONCLIENTMETRICS = 42 Const SPI_GETMINIMIZEDMETRICS = 43 Const SPI_SETMINIMIZEDMETRICS = 44 Const SPI_GETICONMETRICS = 45 Const SPI_SETICONMETRICS = 46 Const SPI_SETWORKAREA = 47 Const SPI_GETWORKAREA = 48 Const SPI_SETPENWINDOWS = 49 Const SPI_GETFILTERKEYS = 50 Const SPI_SETFILTERKEYS = 51 Const SPI_GETTOGGLEKEYS = 52 Const SPI_SETTOGGLEKEYS = 53 Const SPI_GETMOUSEKEYS = 54 Const SPI_SETMOUSEKEYS = 55 Const SPI_GETSHOWSOUNDS = 56 Const SPI_SETSHOWSOUNDS = 57 Const SPI_GETSTICKYKEYS = 58 Const SPI_SETSTICKYKEYS = 59 Const SPI_GETACCESSTIMEOUT = 60 Const SPI_SETACCESSTIMEOUT = 61 Const SPI_GETSERIALKEYS = 62 Const SPI_SETSERIALKEYS = 63 Const SPI_GETSOUNDSENTRY = 64 Const SPI_SETSOUNDSENTRY = 65 Const SPI_GETHIGHCONTRAST = 66 Const SPI_SETHIGHCONTRAST = 67 Const SPI_GETKEYBOARDPREF = 68 Const SPI_SETKEYBOARDPREF = 69 Const SPI_GETSCREENREADER = 70 Const SPI_SETSCREENREADER = 71 Const SPI_GETANIMATION = 72 Const SPI_SETANIMATION = 73 Const SPI_GETFONTSMOOTHING = 74 Const SPI_SETFONTSMOOTHING = 75 Const SPI_SETDRAGWIDTH = 76 Const SPI_SETDRAGHEIGHT = 77 Const SPI_SETHANDHELD = 78 Const SPI_GETLOWPOWERTIMEOUT = 79 Const SPI_GETPOWEROFFTIMEOUT = 80 Const SPI_SETLOWPOWERTIMEOUT = 81 Const SPI_SETPOWEROFFTIMEOUT = 82 Const SPI_GETLOWPOWERACTIVE = 83 Const SPI_GETPOWEROFFACTIVE = 84 Const SPI_SETLOWPOWERACTIVE = 85 Const SPI_SETPOWEROFFACTIVE = 86 Const SPI_SETCURSORS = 87 Const SPI_SETICONS = 88 Const SPI_GETDEFAULTINPUTLANG = 89 Const SPI_SETDEFAULTINPUTLANG = 90 Const SPI_SETLANGTOGGLE = 91 Const SPI_GETWINDOWSEXTENSION = 92 Const SPI_SETMOUSETRAILS = 93 Const SPI_GETMOUSETRAILS = 94 Const SPI_SCREENSAVERRUNNING = 97 ' Indicadores de SystemParametersInfo Const SPIF_UPDATEINIFILE = &H1 Const SPIF_SENDWININICHANGE = &H2 Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long ' Mensajes de la ventana DDE Const WM_DDE_FIRST = &H3E0 Const WM_DDE_INITIATE = (WM_DDE_FIRST) Const WM_DDE_TERMINATE = (WM_DDE_FIRST + 1) Const WM_DDE_ADVISE = (WM_DDE_FIRST + 2) Const WM_DDE_UNADVISE = (WM_DDE_FIRST + 3) Const WM_DDE_ACK = (WM_DDE_FIRST + 4) Const WM_DDE_DATA = (WM_DDE_FIRST + 5) Const WM_DDE_REQUEST = (WM_DDE_FIRST + 6) Const WM_DDE_POKE = (WM_DDE_FIRST + 7) Const WM_DDE_EXECUTE = (WM_DDE_FIRST + 8) Const WM_DDE_LAST = (WM_DDE_FIRST + 8) ' ***************************************************************************** * ' * dde.h - Estructuras y definiciones de Intercambio dinámico de datos (DDE) * ' * * ' * Copyright (c) 1993-1995, Microsoft Corp. Reservados todos los derechos * ' * * ' \*****************************************************************************/ ' ---------------------------------------------------------------------------- ' Estructura DDEACK ' ' Estructura de of wStatus (LOWORD(lParam)) en el mensaje WM_DDE_ACK ' que se envía como respuesta a un mensaje WM_DDE_DATA, WM_DDE_REQUEST, ' WM_DDE_POKE, WM_DDE_ADVISE o WM_DDE_UNADVISE. ' ' ----------------------------------------------------------------------------*/ Type DDEACK bAppReturnCode As Integer Reserved As Integer fbusy As Integer fack As Integer End Type ' ---------------------------------------------------------------------------- ' Estructura DDEADVISE ' ' Estructura del parámetro WM_DDE_ADVISE para hOptions (LOWORD(lParam)) ' ' ----------------------------------------------------------------------------*/ Type DDEADVISE Reserved As Integer fDeferUpd As Integer fAckReq As Integer cfFormat As Integer End Type ' ---------------------------------------------------------------------------- ' Estructura DDEDATA ' ' Estructura del parámetro WM_DDE_DATA para hData (LOWORD(lParam)). ' El tamaño real de esta estructura depende del tamaño de la ' matriz Value. ' ' ----------------------------------------------------------------------------*/ Type DDEDATA unused As Integer fresponse As Integer fRelease As Integer Reserved As Integer fAckReq As Integer cfFormat As Integer Value(1) As Byte End Type ' ---------------------------------------------------------------------------- ' Estructura DDEPOKE ' ' Estructura del parámetro WM_DDE_POKE para hData (LOWORD(lParam)). ' El tamaño real de esta estructura depende del tamaño de la ' matriz Value. ' ' ----------------------------------------------------------------------------*/ Type DDEPOKE unused As Integer fRelease As Integer fReserved As Integer cfFormat As Integer Value(1) As Byte End Type ' ---------------------------------------------------------------------------- ' Las siguientes definiciones de tipos se han usado en versiones anteriores ' del SDK de Windows. Aún son válidas. Las definiciones de tipos anteriores ' definen exactamente las mismas estructuras que las siguientes. Pero es ' recomendable usar los nombres de las anteriores porque son más ' significativos. ' Observe que la estructura DDEPOKE cuyo tipo estaba definido en versiones ' anteriores de DDE.H, no define correctamente las posiciones de los bits. ' ----------------------------------------------------------------------------*/ Type DDELN unused As Integer fRelease As Integer fDeferUpd As Integer fAckReq As Integer cfFormat As Integer End Type Type DDEUP unused As Integer fAck As Integer fRelease As Integer fReserved As Integer fAckReq As Integer cfFormat As Integer rgb(1) As Byte End Type Declare Function DdeSetQualityOfService Lib "user32" Alias "DdeSetQualityOfService" (ByVal hWndClient As Long, pqosNew As SECURITY_QUALITY_OF_SERVICE, pqosPrev As SECURITY_QUALITY_OF_SERVICE) As Long Declare Function ImpersonateDdeClientWindow Lib "user32" Alias "ImpersonateDdeClientWindow" (ByVal hWndClient As Long, ByVal hWndServer As Long) As Long Declare Function PackDDElParam Lib "user32" Alias "PackDDElParam" (ByVal msg As Long, ByVal uiLo As Long, ByVal uiHi As Long) As Long Declare Function UnpackDDElParam Lib "user32" Alias "UnpackDDElParam" (ByVal msg As Long, ByVal lParam As Long, puiLo As Long, puiHi As Long) As Long Declare Function FreeDDElParam Lib "user32" Alias "FreeDDElParam" (ByVal msg As Long, ByVal lParam As Long) As Long Declare Function ReuseDDElParam Lib "user32" Alias "ReuseDDElParam" (ByVal lParam As Long, ByVal msgIn As Long, ByVal msgOut As Long, ByVal uiLo As Long, ByVal uiHi As Long) As Long Type HSZPAIR hszSvc As Long hszTopic As Long End Type '// '// Calidad de servicio '// Type SECURITY_QUALITY_OF_SERVICE Length As Long Impersonationlevel As Integer ContextTrackingMode As Integer EffectiveOnly As Long End Type Type CONVCONTEXT cb As Long wFlags As Long wCountryID As Long iCodePage As Long dwLangID As Long dwSecurity As Long qos As SECURITY_QUALITY_OF_SERVICE End Type Type CONVINFO cb As Long hUser As Long hConvPartner As Long hszSvcPartner As Long hszServiceReq As Long hszTopic As Long hszItem As Long wFmt As Long wType As Long wStatus As Long wConvst As Long wLastError As Long hConvList As Long ConvCtxt As CONVCONTEXT hwnd As Long hwndPartner As Long End Type ' Estados de conversación (usState) Const XST_NULL = 0 ' estados de inmovilidad Const XST_INCOMPLETE = 1 Const XST_CONNECTED = 2 Const XST_INIT1 = 3 ' estados de medio-iniciación Const XST_INIT2 = 4 Const XST_REQSENT = 5 ' estados de conversación activa Const XST_DATARCVD = 6 Const XST_POKESENT = 7 Const XST_POKEACKRCVD = 8 Const XST_EXECSENT = 9 Const XST_EXECACKRCVD = 10 Const XST_ADVSENT = 11 Const XST_UNADVSENT = 12 Const XST_ADVACKRCVD = 13 Const XST_UNADVACKRCVD = 14 Const XST_ADVDATASENT = 15 Const XST_ADVDATAACKRCVD = 16 ' se usa en LOWORD(dwData1) de las devoluciones de llamada XTYP_ADVREQ... Const CADV_LATEACK = &HFFFF ' Bits de estado de conversación (fsStatus) Const ST_CONNECTED = &H1 Const ST_ADVISE = &H2 Const ST_ISLOCAL = &H4 Const ST_BLOCKED = &H8 Const ST_CLIENT = &H10 Const ST_TERMINATED = &H20 Const ST_INLIST = &H40 Const ST_BLOCKNEXT = &H80 Const ST_ISSELF = &H100 ' Constantes DDE para el campo wStatus Const DDE_FACK = &H8000 Const DDE_FBUSY = &H4000 Const DDE_FDEFERUPD = &H4000 Const DDE_FACKREQ = &H8000 Const DDE_FRELEASE = &H2000 Const DDE_FREQUESTED = &H1000 Const DDE_FAPPSTATUS = &HFF Const DDE_FNOTPROCESSED = &H0 Const DDE_FACKRESERVED = (Not (DDE_FACK Or DDE_FBUSY Or DDE_FAPPSTATUS)) Const DDE_FADVRESERVED = (Not (DDE_FACKREQ Or DDE_FDEFERUPD)) Const DDE_FDATRESERVED = (Not (DDE_FACKREQ Or DDE_FRELEASE Or DDE_FREQUESTED)) Const DDE_FPOKRESERVED = (Not (DDE_FRELEASE)) ' Tipos de enlace de los filtros de mensajes Const MSGF_DDEMGR = &H8001 ' Constantes de la página de códigos Const CP_WINANSI = 1004 ' página de códigos predeterminada para conversaciones DDE antiguas de Windows. Const CP_WINUNICODE = 1200 ' Tipos de transacción Const XTYPF_NOBLOCK = &H2 ' CBR_BLOCK no funcionará Const XTYPF_NODATA = &H4 ' DDE_FDEFERUPD Const XTYPF_ACKREQ = &H8 ' DDE_FACKREQ Const XCLASS_MASK = &HFC00 Const XCLASS_BOOL = &H1000 Const XCLASS_DATA = &H2000 Const XCLASS_FLAGS = &H4000 Const XCLASS_NOTIFICATION = &H8000 Const XTYP_ERROR = (&H0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) Const XTYP_ADVDATA = (&H10 Or XCLASS_FLAGS) Const XTYP_ADVREQ = (&H20 Or XCLASS_DATA Or XTYPF_NOBLOCK) Const XTYP_ADVSTART = (&H30 Or XCLASS_BOOL) Const XTYP_ADVSTOP = (&H40 Or XCLASS_NOTIFICATION) Const XTYP_EXECUTE = (&H50 Or XCLASS_FLAGS) Const XTYP_CONNECT = (&H60 Or XCLASS_BOOL Or XTYPF_NOBLOCK) Const XTYP_CONNECT_CONFIRM = (&H70 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) Const XTYP_XACT_COMPLETE = (&H80 Or XCLASS_NOTIFICATION) Const XTYP_POKE = (&H90 Or XCLASS_FLAGS) 'GMC-1969 CR Const XTYP_REGISTER = (&HA0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) Const XTYP_REQUEST = (&HB0 Or XCLASS_DATA) Const XTYP_DISCONNECT = (&HC0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) Const XTYP_UNREGISTER = (&HD0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) Const XTYP_WILDCONNECT = (&HE0 Or XCLASS_DATA Or XTYPF_NOBLOCK) Const XTYP_MASK = &HF0 Const XTYP_SHIFT = 4 ' cambia para convertir XTYP_ en un índice ' Constantes de tiempo de espera Const TIMEOUT_ASYNC = &HFFFF ' Constantes de Id. de transacción Const QID_SYNC = &HFFFF ' Cadenas públicas que se usan en DDE Const SZDDESYS_TOPIC = "System" Const SZDDESYS_ITEM_TOPICS = "Topics" Const SZDDESYS_ITEM_SYSITEMS = "SysItems" Const SZDDESYS_ITEM_RTNMSG = "ReturnMessage" Const SZDDESYS_ITEM_STATUS = "Status" Const SZDDESYS_ITEM_FORMATS = "Formats" Const SZDDESYS_ITEM_HELP = "Help" Const SZDDE_ITEM_ITEMLIST = "TopicItemList" Const CBR_BLOCK = &HFFFF ' Indicadores de filtro de devolución de llamada para su uso con aplicaciones estándar. Const CBF_FAIL_SELFCONNECTIONS = &H1000 Const CBF_FAIL_CONNECTIONS = &H2000 Const CBF_FAIL_ADVISES = &H4000 Const CBF_FAIL_EXECUTES = &H8000 Const CBF_FAIL_POKES = &H10000 Const CBF_FAIL_REQUESTS = &H20000 Const CBF_FAIL_ALLSVRXACTIONS = &H3F000 Const CBF_SKIP_CONNECT_CONFIRMS = &H40000 Const CBF_SKIP_REGISTRATIONS = &H80000 Const CBF_SKIP_UNREGISTRATIONS = &H100000 Const CBF_SKIP_DISCONNECTS = &H200000 Const CBF_SKIP_ALLNOTIFICATIONS = &H3C0000 ' Indicadores de comando de aplicación Const APPCMD_CLIENTONLY = &H10& Const APPCMD_FILTERINITS = &H20& Const APPCMD_MASK = &HFF0& ' Indicadores de clasificación de aplicación Const APPCLASS_STANDARD = &H0& Const APPCLASS_MASK = &HF& Declare Function DdeUninitialize Lib "user32" Alias "DdeUninitialize" (ByVal idInst As Long) As Long ' Funciones de enumeración de conversaciones Declare Function DdeConnectList Lib "user32" Alias "DdeConnectList" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, ByVal hConvList As Long, pCC As CONVCONTEXT) As Long Declare Function DdeQueryNextServer Lib "user32" Alias "DdeQueryNextServer" (ByVal hConvList As Long, ByVal hConvPrev As Long) As Long Declare Function DdeDisconnectList Lib "user32" Alias "DdeDisconnectList" (ByVal hConvList As Long) As Long ' Funciones de control de conversaciones Declare Function DdeConnect Lib "user32" Alias "DdeConnect" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, pCC As CONVCONTEXT) As Long Declare Function DdeDisconnect Lib "user32" Alias "DdeDisconnect" (ByVal hConv As Long) As Long Declare Function DdeReconnect Lib "user32" Alias "DdeReconnect" (ByVal hConv As Long) As Long Declare Function DdeQueryConvInfo Lib "user32" Alias "DdeQueryConvInfo" (ByVal hConv As Long, ByVal idTransaction As Long, pConvInfo As CONVINFO) As Long Declare Function DdeSetUserHandle Lib "user32" Alias "DdeSetUserHandle" (ByVal hConv As Long, ByVal id As Long, ByVal hUser As Long) As Long Declare Function DdeAbandonTransaction Lib "user32" Alias "DdeAbandonTransaction" (ByVal idInst As Long, ByVal hConv As Long, ByVal idTransaction As Long) As Long ' Funciones de interfaz del servidor de la aplicación Declare Function DdePostAdvise Lib "user32" Alias "DdePostAdvise" (ByVal idInst As Long, ByVal hszTopic As Long, ByVal hszItem As Long) As Long Declare Function DdeEnableCallback Lib "user32" Alias "DdeEnableCallback" (ByVal idInst As Long, ByVal hConv As Long, ByVal wCmd As Long) As Long Declare Function DdeImpersonateClient Lib "user32" Alias "DdeImpersonateClient" (ByVal hConv As Long) As Long Const EC_ENABLEALL = 0 Const EC_ENABLEONE = ST_BLOCKNEXT Const EC_DISABLE = ST_BLOCKED Const EC_QUERYWAITING = 2 Declare Function DdeNameService Lib "user32" Alias "DdeNameService" (ByVal idInst As Long, ByVal hsz1 As Long, ByVal hsz2 As Long, ByVal afCmd As Long) As Long Const DNS_REGISTER = &H1 Const DNS_UNREGISTER = &H2 Const DNS_FILTERON = &H4 Const DNS_FILTEROFF = &H8 ' Funciones de interfaz del cliente de las aplicaciones Declare Function DdeClientTransaction Lib "user32" Alias "DdeClientTransaction" (pData As Byte, ByVal cbData As Long, ByVal hConv As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal wType As Long, ByVal dwTimeout As Long, pdwResult As Long) As Long ' Funciones de transferencia de datos Declare Function DdeCreateDataHandle Lib "user32" Alias "DdeCreateDataHandle" (ByVal idInst As Long, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal afCmd As Long) As Long Declare Function DdeAddData Lib "user32" Alias "DdeAddDataA" (ByVal hData As Long, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long) As Long Declare Function DdeGetData Lib "user32" Alias "DdeGetDataA" (ByVal hData As Long, pDst As Byte, ByVal cbMax As Long, ByVal cbOff As Long) As Long Declare Function DdeAccessData Lib "user32" Alias "DdeAccessDataA" (ByVal hData As Long, pcbDataSize As Long) As Long Declare Function DdeUnaccessData Lib "user32" Alias "DdeUnaccessDataA" (ByVal hData As Long) As Long Declare Function DdeFreeDataHandle Lib "user32" Alias "DdeFreeDataHandle" (ByVal hData As Long) As Long Const HDATA_APPOWNED = &H1 Declare Function DdeGetLastError Lib "user32" Alias "DdeGetLastError" (ByVal idInst As Long) As Long Const DMLERR_NO_ERROR = 0 ' debe ser 0 Const DMLERR_FIRST = &H4000 Const DMLERR_ADVACKTIMEOUT = &H4000 Const DMLERR_BUSY = &H4001 Const DMLERR_DATAACKTIMEOUT = &H4002 Const DMLERR_DLL_NOT_INITIALIZED = &H4003 Const DMLERR_DLL_USAGE = &H4004 Const DMLERR_EXECACKTIMEOUT = &H4005 Const DMLERR_INVALIDPARAMETER = &H4006 Const DMLERR_LOW_MEMORY = &H4007 Const DMLERR_MEMORY_ERROR = &H4008 Const DMLERR_NOTPROCESSED = &H4009 Const DMLERR_NO_CONV_ESTABLISHED = &H400A Const DMLERR_POKEACKTIMEOUT = &H400B Const DMLERR_POSTMSG_FAILED = &H400C Const DMLERR_REENTRANCY = &H400D Const DMLERR_SERVER_DIED = &H400E Const DMLERR_SYS_ERROR = &H400F Const DMLERR_UNADVACKTIMEOUT = &H4010 Const DMLERR_UNFOUND_QUEUE_ID = &H4011 Const DMLERR_LAST = &H4011 Declare Function DdeCreateStringHandle Lib "user32" Alias "DdeCreateStringHandleA" (ByVal idInst As Long, ByVal psz As String, ByVal iCodePage As Long) As Long Declare Function DdeQueryString Lib "user32" Alias "DdeQueryStringA" (ByVal idInst As Long, ByVal hsz As Long, ByVal psz As String, ByVal cchMax As Long, ByVal iCodePage As Long) As Long Declare Function DdeFreeStringHandle Lib "user32" Alias "DdeFreeStringHandle" (ByVal idInst As Long, ByVal hsz As Long) As Long Declare Function DdeKeepStringHandle Lib "user32" Alias "DdeKeepStringHandle" (ByVal idInst As Long, ByVal hsz As Long) As Long Declare Function DdeCmpStringHandles Lib "user32" Alias "DdeCmpStringHandles" (ByVal hsz1 As Long, ByVal hsz2 As Long) As Long Type DDEML_MSG_HOOK_DATA ' nuevo para NT uiLo As Long ' partes altas y bajas no empaquetadas de lParam uiHi As Long cbData As Long ' cantidad de datos de un mensaje, si los tiene. Puede ser > 32 bytes. Data(8) As Long ' la consulta rápida de datos por DDESPY está limitada a 32 bytes. End Type Type MONMSGSTRUCT cb As Long hwndTo As Long dwTime As Long htask As Long wMsg As Long wParam As Long lParam As Long dmhd As DDEML_MSG_HOOK_DATA ' nuevo para NT End Type Type MONCBSTRUCT cb As Long dwTime As Long htask As Long dwRet As Long wType As Long wFmt As Long hConv As Long hsz1 As Long hsz2 As Long hData As Long dwData1 As Long dwData2 As Long cc As CONVCONTEXT ' nuevo para NT para las devoluciones de llamada XTYP_CONNECT cbData As Long ' nuevo para NT para la consulta rápida de datos Data(8) As Long ' nuevo para NT para la consulta rápida de datos End Type Type MONHSZSTRUCT cb As Long fsAction As Long ' Valor de MH_ dwTime As Long hsz As Long htask As Long str As Byte End Type Const MH_CREATE = 1 Const MH_KEEP = 2 Const MH_DELETE = 3 Const MH_CLEANUP = 4 Type MONERRSTRUCT cb As Long wLastError As Long dwTime As Long htask As Long End Type Type MONLINKSTRUCT cb As Long dwTime As Long htask As Long fEstablished As Long fNoData As Long hszSvc As Long hszTopic As Long hszItem As Long wFmt As Long fServer As Long hConvServer As Long hConvClient As Long End Type Type MONCONVSTRUCT cb As Long fConnect As Long dwTime As Long htask As Long hszSvc As Long hszTopic As Long hConvClient As Long ' Valor único global != hConv local de aplicaciones hConvServer As Long ' Valor único global != hConv local de aplicaciones End Type Const MAX_MONITORS = 4 Const APPCLASS_MONITOR = &H1& Const XTYP_MONITOR = (&HF0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) ' Indicadores de filtro de devolución de llamada para su uso con aplicaciones de MONITOR - 0 implica que no hay devolución de llamadas del monitor Const MF_HSZ_INFO = &H1000000 Const MF_SENDMSGS = &H2000000 Const MF_POSTMSGS = &H4000000 Const MF_CALLBACKS = &H8000000 Const MF_ERRORS = &H10000000 Const MF_LINKS = &H20000000 Const MF_CONV = &H40000000 Const MF_MASK = &HFF000000 ' --------------------------------------------------- ' Definiciones de códigos de error de la API de Win32 ' --------------------------------------------------- ' Esta sección contiene las definiciones de códigos de error para las funciones de la API de Win32. ' NO_ERROR Const NO_ERROR = 0 ' dderror ' La operación de la base de datos del registro de configuración se ha completado correctamente. Const ERROR_SUCCESS = 0& ' Función incorrecta. Const ERROR_INVALID_FUNCTION = 1 ' dderror ' El sistema no puede encontrar el archivo especificado. Const ERROR_FILE_NOT_FOUND = 2& ' El sistema no puede encontrar la ruta de acceso especificada. Const ERROR_PATH_NOT_FOUND = 3& ' El sistema no puede abrir el archivo. Const ERROR_TOO_MANY_OPEN_FILES = 4& ' Acceso denegado. Const ERROR_ACCESS_DENIED = 5& ' El controlador no es válido. Const ERROR_INVALID_HANDLE = 6& ' Se destruyeron los bloques de control de almacenamiento. Const ERROR_ARENA_TRASHED = 7& ' No hay espacio suficiente de almacenamiento para procesar este comando. Const ERROR_NOT_ENOUGH_MEMORY = 8 ' dderror ' La dirección del bloque de control de almacenamiento no es válida. Const ERROR_INVALID_BLOCK = 9& ' El entorno es incorrecto. Const ERROR_BAD_ENVIRONMENT = 10& ' Ha intentado cargar un programa con un ' formato incorrecto. Const ERROR_BAD_FORMAT = 11& ' El código de acceso no es válido. Const ERROR_INVALID_ACCESS = 12& ' Los datos no son válidos. Const ERROR_INVALID_DATA = 13& ' No hay espacio suficiente de almacenamiento para completar la operación. Const ERROR_OUTOFMEMORY = 14& ' El sistema no puede encontrar la unidad especificada. Const ERROR_INVALID_DRIVE = 15& ' No se puede quitar el directorio. Const ERROR_CURRENT_DIRECTORY = 16& ' El sistema no puede mover el archivo ' a una unidad de disco diferente. Const ERROR_NOT_SAME_DEVICE = 17& ' No hay más archivos. Const ERROR_NO_MORE_FILES = 18& ' El medio está protegido contra escritura. Const ERROR_WRITE_PROTECT = 19& ' El sistema no puede encontrar el dispositivo especificado. Const ERROR_BAD_UNIT = 20& ' El dispositivo no está listo. Const ERROR_NOT_READY = 21& ' El dispositivo no reconoce el comando. Const ERROR_BAD_COMMAND = 22& ' Error de datos (comprobación de redundancia cíclica) Const ERROR_CRC = 23& ' El programa ha emitido un comando, pero ' la longitud del comando es incorrecta. Const ERROR_BAD_LENGTH = 24& ' La unidad no puede encontrar un área o una pista ' específica en el disco. Const ERROR_SEEK = 25& ' No se pudo tener acceso al disco o disquete especificado. Const ERROR_NOT_DOS_DISK = 26& ' La unidad no puede encontrar el sector solicitado. Const ERROR_SECTOR_NOT_FOUND = 27& ' La impresora se ha quedado sin papel. Const ERROR_OUT_OF_PAPER = 28& ' El sistema no puede escribir en el dispositivo especificado. Const ERROR_WRITE_FAULT = 29& ' El sistema no puede leer del dispositivo especificado. Const ERROR_READ_FAULT = 30& ' Un dispositivo conectado al sistema no funciona. Const ERROR_GEN_FAILURE = 31& ' El proceso no puede tener acceso al archivo porque ' lo está usando otro proceso. Const ERROR_SHARING_VIOLATION = 32& ' El proceso no puede tener acceso al archivo porque ' otro proceso ha bloqueado una parte del archivo. Const ERROR_LOCK_VIOLATION = 33& ' El disquete insertado en la unidad es erróneo. ' Inserte %2 (Número de serie del volumen: %3) ' en la unidad %1. Const ERROR_WRONG_DISK = 34& ' Hay demasiados archivos abiertos para compartir. Const ERROR_SHARING_BUFFER_EXCEEDED = 36& ' Se ha llegado al final del archivo. Const ERROR_HANDLE_EOF = 38& ' Disco lleno. Const ERROR_HANDLE_DISK_FULL = 39& ' La petición de red no es compatible. Const ERROR_NOT_SUPPORTED = 50& ' El equipo remoto no está disponible. Const ERROR_REM_NOT_LIST = 51& ' Existe un nombre duplicado en la red. Const ERROR_DUP_NAME = 52& ' No se ha encontrado la ruta de acceso a la red. Const ERROR_BAD_NETPATH = 53& ' La red está ocupada. Const ERROR_NETWORK_BUSY = 54& ' El recurso o dispositivo de red especificado ya no ' está disponible. Const ERROR_DEV_NOT_EXIST = 55 ' dderror ' Se ha alcanzado el límite del comando BIOS de la red. Const ERROR_TOO_MANY_CMDS = 56& ' Error en el hardware adaptador de red. Const ERROR_ADAP_HDW_ERR = 57& ' El servidor especificado no puede efectuar la operación ' solicitada. Const ERROR_BAD_NET_RESP = 58& ' Error inesperado en la red. Const ERROR_UNEXP_NET_ERR = 59& ' El adaptador remoto no es compatible. Const ERROR_BAD_REM_ADAP = 60& ' La cola de impresión está llena. Const ERROR_PRINTQ_FULL = 61& ' No hay espacio disponible en el servidor para guardar ' el archivo en espera de imprimir. Const ERROR_NO_SPOOL_SPACE = 62& ' Se ha eliminado el archivo que esperaba para imprimir. Const ERROR_PRINT_CANCELLED = 63& ' El nombre de red especificado ya no está disponible. Const ERROR_NETNAME_DELETED = 64& ' Denegado el acceso a la red. Const ERROR_NETWORK_ACCESS_DENIED = 65& ' El tipo de recurso de red no es correcto. Const ERROR_BAD_DEV_TYPE = 66& ' No se puede encontrar el nombre de red. Const ERROR_BAD_NET_NAME = 67& ' Se ha excedido el límite de nombres para la tarjeta ' adaptadora de red del equipo local. Const ERROR_TOO_MANY_NAMES = 68& ' Se ha excedido el límite de sesión BIOS de la red. Const ERROR_TOO_MANY_SESS = 69& ' El servidor remoto está en pausa o se está iniciando. Const ERROR_SHARING_PAUSED = 70& ' La petición de red no fue aceptada. Const ERROR_REQ_NOT_ACCEP = 71& ' La unidad de disco o la impresora solicitada está en pausa. Const ERROR_REDIR_PAUSED = 72& ' El archivo ya existe. Const ERROR_FILE_EXISTS = 80& ' Imposible crear el directorio o el archivo. Const ERROR_CANNOT_MAKE = 82& ' Fallo en INT 24 Const ERROR_FAIL_I24 = 83& ' No hay espacio de almacenamiento disponible para ' procesar esta petición. Const ERROR_OUT_OF_STRUCTURES = 84& ' Ya se está usando el nombre de dispositivo local. Const ERROR_ALREADY_ASSIGNED = 85& ' La contraseña de red especificada no es correcta. Const ERROR_INVALID_PASSWORD = 86& ' El parámetro es incorrecto. Const ERROR_INVALID_PARAMETER = 87 ' dderror ' Error de escritura en la red. Const ERROR_NET_WRITE_FAULT = 88& ' El sistema no puede iniciar otro proceso ' en este momento. Const ERROR_NO_PROC_SLOTS = 89& ' Imposible crear otro semáforo de sistema. Const ERROR_TOO_MANY_SEMAPHORES = 100& ' El semáforo exclusivo es propiedad de otro proceso. Const ERROR_EXCL_SEM_ALREADY_OWNED = 101& ' El semáforo está establecido y no se puede cerrar. Const ERROR_SEM_IS_SET = 102& ' No se puede establecer el semáforo otra vez. Const ERROR_TOO_MANY_SEM_REQUESTS = 103& ' No puede pedir semáforos exclusivos en tiempo de interrupción. Const ERROR_INVALID_AT_INTERRUPT_TIME = 104& ' El propietario anterior de este semáforo ha terminado de usarlo. Const ERROR_SEM_OWNER_DIED = 105& ' Inserte el disco para la unidad %1. Const ERROR_SEM_USER_LIMIT = 106& ' El programa se detuvo porque el disquete alternativo no estaba insertado. Const ERROR_DISK_CHANGE = 107& ' Otro proceso está usando el disco o lo ha bloqueado. Const ERROR_DRIVE_LOCKED = 108& ' La canalización ha terminado. Const ERROR_BROKEN_PIPE = 109& ' El sistema no puede abrir el ' dispositivo o archivo especificado. Const ERROR_OPEN_FAILED = 110& ' El nombre de archivo es demasiado largo. Const ERROR_BUFFER_OVERFLOW = 111& ' No hay espacio suficiente en el disco. Const ERROR_DISK_FULL = 112& ' No hay más identificadores de archivos internos disponibles. Const ERROR_NO_MORE_SEARCH_HANDLES = 113& ' El identificador del archivo interno de destino es incorrecto. Const ERROR_INVALID_TARGET_HANDLE = 114& ' La llamada IOCTL efectuada por el programa de aplicación ' no es correcta. Const ERROR_INVALID_CATEGORY = 117& ' El valor del parámetro de opción comprobar al escribir ' no es correcto. Const ERROR_INVALID_VERIFY_SWITCH = 118& ' El sistema no admite el comando solicitado. Const ERROR_BAD_DRIVER_LEVEL = 119& ' Esta función sólo es válida en modo de Windows NT. Const ERROR_CALL_NOT_IMPLEMENTED = 120& ' Ha terminado el período de tiempo de espera del semáforo. Const ERROR_SEM_TIMEOUT = 121& ' El área de datos pasada a una llamada de sistema es ' demasiado pequeña. Const ERROR_INSUFFICIENT_BUFFER = 122 ' dderror ' La sintaxis del nombre de archivo, del directorio o de la ' etiqueta del volumen es incorrecta. Const ERROR_INVALID_NAME = 123& ' El nivel de llamada del sistema no es correcto. Const ERROR_INVALID_LEVEL = 124& ' El disco no tiene etiqueta de volumen. Const ERROR_NO_VOLUME_LABEL = 125& ' No se pudo encontrar el módulo especificado. Const ERROR_MOD_NOT_FOUND = 126& ' No se pudo encontrar el procedimiento especificado. Const ERROR_PROC_NOT_FOUND = 127& ' No hay procesos secundarios en espera. Const ERROR_WAIT_NO_CHILDREN = 128& ' La aplicación %1 no se puede ejecutar en el modo de Windows NT. Const ERROR_CHILD_NOT_COMPLETE = 129& ' Se ha intentado usar un controlador de archivos para una partición ' de disco abierta para una operación distinta de la E/S de disco. Const ERROR_DIRECT_ACCESS_HANDLE = 130& ' Se ha intentado mover el puntero del archivo a un punto anterior al comienzo del archivo. Const ERROR_NEGATIVE_SEEK = 131& ' No se pudo establecer el puntero de archivo en el dispositivo o archivo especificado. Const ERROR_SEEK_ON_DEVICE = 132& ' No se puede usar un comando JOIN o SUBST ' para una unidad que contiene unidades ' combinadas previamente. Const ERROR_IS_JOIN_TARGET = 133& ' Se ha intentado usar un comando JOIN o ' SUBST en una unidad ya combinada. Const ERROR_IS_JOINED = 134& ' Se ha intentado usar un comando JOIN o ' SUBST en una unidad ya sustituida. Const ERROR_IS_SUBSTED = 135& ' El sistema ha intentado eliminar el comando JOIN ' de una unidad que no está combinada. Const ERROR_NOT_JOINED = 136& ' El sistema ha intentado eliminar la ' sustitución de una unidad que no está sustituida. Const ERROR_NOT_SUBSTED = 137& ' El sistema ha intentado combinar una unidad ' con un directorio en una unidad ya combinada. Const ERROR_JOIN_TO_JOIN = 138& ' El sistema ha intentado sustituir una unidad ' en un directorio de una unidad ya sustituida. Const ERROR_SUBST_TO_SUBST = 139& ' El sistema ha intentado combinar una unidad ' en un directorio de una unidad ya sustituida. Const ERROR_JOIN_TO_SUBST = 140& ' El sistema ha intentado sustituir una unidad ' en un directorio de una unidad combinada. Const ERROR_SUBST_TO_JOIN = 141& ' El sistema no puede ejecutar JOIN o SUBST en este momento. Const ERROR_BUSY_DRIVE = 142& ' El sistema no puede combinar o sustituir una ' unidad en o para un directorio de la misma unidad. Const ERROR_SAME_DRIVE = 143& ' El directorio no es un subdirectorio del directorio raíz. Const ERROR_DIR_NOT_ROOT = 144& ' El directorio no está vacío. Const ERROR_DIR_NOT_EMPTY = 145& ' La ruta de acceso especificada se está usando ' en un substituto. Const ERROR_IS_SUBST_PATH = 146& ' No hay suficientes recursos disponibles para ' procesar este comando. Const ERROR_IS_JOIN_PATH = 147& ' La ruta de acceso especificada no se puede usar en este momento. Const ERROR_PATH_BUSY = 148& ' Se ha intentado combinar o sustituir ' una unidad para la que hay un ' directorio en la unidad que es el ' destino de un sustituto anterior. Const ERROR_IS_SUBST_TARGET = 149& ' No está especificada la información de seguimiento ' del sistema en el archivo CONFIG.SYS, ' o no está permitido el seguimiento. Const ERROR_SYSTEM_TRACE = 150& ' El número de eventos de semáforo especificados para ' DosMuxSemWait no es correcto. Const ERROR_INVALID_EVENT_COUNT = 151& ' DosMuxSemWait no se ha ejecutado; hay demasiados ' semáforos establecidos. Const ERROR_TOO_MANY_MUXWAITERS = 152& ' La lista DosMuxSemWait no es correcta. Const ERROR_INVALID_LIST_FORMAT = 153& ' La etiqueta del volumen especificada supera el límite de ' 11 caracteres. Los 11 primeros caracteres se escribieron ' en disco. Los caracteres restantes, que superan el límite ' de 11, se eliminaron automáticamente. Const ERROR_LABEL_TOO_LONG = 154& ' Imposible crear otro subproceso. Const ERROR_TOO_MANY_TCBS = 155& ' El proceso receptor ha rechazado la señal. Const ERROR_SIGNAL_REFUSED = 156& ' El segmento ya está descartado y no se puede bloquear. Const ERROR_DISCARDED = 157& ' El segmento ya está desbloqueado. Const ERROR_NOT_LOCKED = 158& ' La dirección para el Id. de subproceso no es correcta. Const ERROR_BAD_THREADID_ADDR = 159& ' La cadena de argumento pasada a DosExecPgm no es correcta. Const ERROR_BAD_ARGUMENTS = 160& ' La ruta de acceso especificada no es válida. Const ERROR_BAD_PATHNAME = 161& ' Ya hay una señal pendiente. Const ERROR_SIGNAL_PENDING = 162& ' No se pueden crear más subprocesos en el sistema. Const ERROR_MAX_THRDS_REACHED = 164& ' Imposible bloquear una región de un archivo. Const ERROR_LOCK_FAILED = 167& ' El recurso solicitado está en uso. Const ERROR_BUSY = 170& ' No había una solicitud de bloqueo pendiente para la región de cancelación dada. Const ERROR_CANCEL_VIOLATION = 173& ' El sistema de archivos no admite cambios individuales en el tipo de bloqueo. Const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174& ' El sistema detectó un número de segmento incorrecto. Const ERROR_INVALID_SEGMENT_NUMBER = 180& ' El sistema operativo no puede ejecutar %1. Const ERROR_INVALID_ORDINAL = 182& ' Imposible crear un archivo que ya existe. Const ERROR_ALREADY_EXISTS = 183& ' El indicador pasado no es correcto. Const ERROR_INVALID_FLAG_NUMBER = 186& ' No se ha encontrado el nombre especificado de semáforo del sistema. Const ERROR_SEM_NOT_FOUND = 187& ' El sistema operativo no puede ejecutar %1. Const ERROR_INVALID_STARTING_CODESEG = 188& ' El sistema operativo no puede ejecutar %1. Const ERROR_INVALID_STACKSEG = 189& ' El sistema operativo no puede ejecutar %1. Const ERROR_INVALID_MODULETYPE = 190& ' Imposible ejecutar %1 en modo de Windows NT. Const ERROR_INVALID_EXE_SIGNATURE = 191& ' El sistema operativo no puede ejecutar %1. Const ERROR_EXE_MARKED_INVALID = 192& ' %1 no es una aplicación válida de Windows NT. Const ERROR_BAD_EXE_FORMAT = 193& ' El sistema operativo no puede ejecutar %1. Const ERROR_ITERATED_DATA_EXCEEDS_64k = 194& ' El sistema operativo no puede ejecutar %1. Const ERROR_INVALID_MINALLOCSIZE = 195& ' El sistema operativo no puede ejecutar ' este programa de aplicación. Const ERROR_DYNLINK_FROM_INVALID_RING = 196& ' El sistema operativo no está configurado ' actualmente para ejecutar esta aplicación. Const ERROR_IOPL_NOT_ENABLED = 197& ' El sistema operativo no puede ejecutar %1. Const ERROR_INVALID_SEGDPL = 198& ' El sistema operativo no puede ejecutar ' este programa de aplicación. Const ERROR_AUTODATASEG_EXCEEDS_64k = 199& ' El segmento de código no puede ser mayor o igual que 64 KB. Const ERROR_RING2SEG_MUST_BE_MOVABLE = 200& ' El sistema operativo no puede ejecutar %1. Const ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201& ' El sistema operativo no puede ejecutar %1. Const ERROR_INFLOOP_IN_RELOC_CHAIN = 202& ' El sistema no pudo encontrar la opción de ' entorno especificada. Const ERROR_ENVVAR_NOT_FOUND = 203& ' Ningún proceso del subárbol de comandos tiene ' controlador de señales. Const ERROR_NO_SIGNAL_SENT = 205& ' El nombre de archivo o la extensión son demasiado largos. Const ERROR_FILENAME_EXCED_RANGE = 206& ' La pila de llamada 2 ya está en uso. Const ERROR_RING2_STACK_IN_USE = 207& ' Se han especificado caracteres de nombre de archivo global o ? ' incorrectamente o se han especificado demasiados caracteres ' de nombre de archivo global. Const ERROR_META_EXPANSION_TOO_LONG = 208& ' La señal que se está enviando no es correcta. Const ERROR_INVALID_SIGNAL_NUMBER = 209& ' Imposible establecer el controlador de señal. Const ERROR_THREAD_1_INACTIVE = 210& ' El segmento está bloqueado y no se puede volver a asignar. Const ERROR_LOCKED = 212& ' Hay demasiados módulos de vínculos dinámicos adjuntos ' a este programa o módulo de vínculos dinámicos. Const ERROR_TOO_MANY_MODULES = 214& ' Imposible anidar llamadas para LoadModule. Const ERROR_NESTING_NOT_ALLOWED = 215& ' El estado de canalización no es válido. Const ERROR_BAD_PIPE = 230& ' Todas las instancias de canalización están ocupadas. Const ERROR_PIPE_BUSY = 231& ' Se está cerrando la canalización. Const ERROR_NO_DATA = 232& ' No hay ningún proceso en el otro extremo de la canalización. Const ERROR_PIPE_NOT_CONNECTED = 233& ' Hay más datos disponibles. Const ERROR_MORE_DATA = 234 ' dderror ' Se canceló la sesión. Const ERROR_VC_DISCONNECTED = 240& ' El nombre de atributo ampliado especificado no era válido. Const ERROR_INVALID_EA_NAME = 254& ' Los atributos ampliados no son coherentes. Const ERROR_EA_LIST_INCONSISTENT = 255& ' No hay más datos disponibles. Const ERROR_NO_MORE_ITEMS = 259& ' No se puede usar la API de copia. Const ERROR_CANNOT_COPY = 266& ' El nombre de directorio no es válido. Const ERROR_DIRECTORY = 267& ' Los atributos ampliados no caben en el búfer. Const ERROR_EAS_DIDNT_FIT = 275& ' El archivo de atributos ampliado del sistema de archivos ' montado está dañado. Const ERROR_EA_FILE_CORRUPT = 276& ' El archivo de tabla de atributos ampliado está lleno. Const ERROR_EA_TABLE_FULL = 277& ' El controlador especificado para el atributo ampliado no es válido. Const ERROR_INVALID_EA_HANDLE = 278& ' El sistema de archivos montado no admite atributos ampliados. Const ERROR_EAS_NOT_SUPPORTED = 282& ' El intento de liberar mutex no pertenece al que llama. Const ERROR_NOT_OWNER = 288& ' Se han efectuado demasiados envíos a un semáforo. Const ERROR_TOO_MANY_POSTS = 298& ' El sistema no puede encontrar el mensaje ' correspondiente al número 0x%1 en el archivo de mensajes para %2. Const ERROR_MR_MID_NOT_FOUND = 317& ' Intento de tener acceso a una dirección no válida. Const ERROR_INVALID_ADDRESS = 487& ' El resultado aritmético superó los 32 bits. Const ERROR_ARITHMETIC_OVERFLOW = 534& ' Hay un proceso al otro extremo de la canalización. Const ERROR_PIPE_CONNECTED = 535& ' Esperando a que un proceso abra el otro extremo de la canalización. Const ERROR_PIPE_LISTENING = 536& ' Acceso denegado al atributo ampliado. Const ERROR_EA_ACCESS_DENIED = 994& ' Se ha interrumpido la operación de E/S a causa de una salida del ' subproceso o de una petición de la aplicación. Const ERROR_OPERATION_ABORTED = 995& ' El evento de E/S superpuesto no está en el estado señalado. Const ERROR_IO_INCOMPLETE = 996& ' La operación de E/S superpuesta está en ejecución. Const ERROR_IO_PENDING = 997 ' dderror ' Acceso no válido a la ubicación de memoria. Const ERROR_NOACCESS = 998& ' Error al efectuar la operación inpage. Const ERROR_SWAPERROR = 999& ' Recursividad demasiado profunda; se ha desbordado la pila. Const ERROR_STACK_OVERFLOW = 1001& ' La ventana no puede actuar sobre el mensaje enviado. Const ERROR_INVALID_MESSAGE = 1002& ' Imposible completar esta función. Const ERROR_CAN_NOT_COMPLETE = 1003& ' Indicadores no válidos. Const ERROR_INVALID_FLAGS = 1004& ' El volumen no contiene un sistema de archivos reconocido. ' Asegúrese de que están cargados todos los controladores necesarios ' del sistema de archivos y de que el volumen no está dañado. Const ERROR_UNRECOGNIZED_VOLUME = 1005& ' El volumen para un archivo se ha modificado externamente; ' por eso el archivo abierto ya no es válido. Const ERROR_FILE_INVALID = 1006& ' Imposible realizar la operación solicitada en modo de pantalla completa. Const ERROR_FULLSCREEN_MODE = 1007& ' Se intentó hacer referencia a un símbolo que no existe. Const ERROR_NO_TOKEN = 1008& ' La base de datos del registro de configuración está dañada. Const ERROR_BADDB = 1009& ' La clave del registro de configuración no es válida. Const ERROR_BADKEY = 1010& ' No se pudo abrir la clave del registro de configuración. Const ERROR_CANTOPEN = 1011& ' No se pudo leer la clave del registro de configuración. Const ERROR_CANTREAD = 1012& ' No se pudo escribir la clave del registro de configuración. Const ERROR_CANTWRITE = 1013& ' Se ha tenido que recuperar uno de los archivos de la base de ' datos del Registro usando un registro o una copia alternativa. ' La recuperación se ha efectuado sin problemas. Const ERROR_REGISTRY_RECOVERED = 1014& ' El Registro está dañado. La estructura de uno de los archivos que ' contiene datos del Registro está dañada, la imagen del sistema ' del archivo en memoria está dañada o no se pudo recuperar el ' archivo porque la copia alternativa o el registro no estaba presente ' o estaba dañado. Const ERROR_REGISTRY_CORRUPT = 1015& ' Ha fallado de forma irrecuperable una operación de E/S iniciada por ' el Registro. El Registro no ha podido leer, escribir o vaciar ' uno de los archivos que contienen la imagen del sistema del Registro. Const ERROR_REGISTRY_IO_FAILED = 1016& ' El sistema ha intentado cargar o restaurar un archivo en el Registro, ' pero el archivo especificado no tiene formato de archivo de registro. Const ERROR_NOT_REGISTRY_FILE = 1017& ' Se ha intentado efectuar una operación no permitida en una clave ' del Registro marcada para su eliminación. Const ERROR_KEY_DELETED = 1018& ' El sistema no pudo asignar el espacio requerido en un archivo ' de Registro. Const ERROR_NO_LOG_SPACE = 1019& ' Imposible e crear un vínculo simbólico en una clave de Registro ' que ya tiene subclaves o valores. Const ERROR_KEY_HAS_CHILDREN = 1020& ' Imposible crear una subclave estable bajo una clave primaria volátil. Const ERROR_CHILD_MUST_BE_VOLATILE = 1021& ' Se está terminando una petición de cambio de notificación y el búfer ' del que llama no devuelve la información. El que llama tiene que ' enumerar ahora los archivos para encontrar los cambios. Const ERROR_NOTIFY_ENUM_DIR = 1022& ' Se ha enviado un control de parada a un servicio del que dependen ' otros servicios en ejecución. Const ERROR_DEPENDENT_SERVICES_RUNNING = 1051& ' El control solicitado no es válido para este servicio. Const ERROR_INVALID_SERVICE_CONTROL = 1052& ' El servicio no ha respondido a la petición de control o inicio en el ' tiempo apropiado. Const ERROR_SERVICE_REQUEST_TIMEOUT = 1053& ' Imposible crear un subproceso para el servicio. Const ERROR_SERVICE_NO_THREAD = 1054& ' La base de datos del servicio está bloqueada. Const ERROR_SERVICE_DATABASE_LOCKED = 1055& ' Ya se está ejecutando una instancia del servicio. Const ERROR_SERVICE_ALREADY_RUNNING = 1056& ' El nombre de cuenta no es válido o no existe. Const ERROR_INVALID_SERVICE_ACCOUNT = 1057& ' El servicio especificado está desactivado y no se puede iniciar. Const ERROR_SERVICE_DISABLED = 1058& ' Se ha especificado una dependencia de servicio circular. Const ERROR_CIRCULAR_DEPENDENCY = 1059& ' El servicio especificado no existe como servicio instalado. Const ERROR_SERVICE_DOES_NOT_EXIST = 1060& ' El servicio no puede aceptar mensajes de control en este momento. Const ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061& ' El servicio no se ha iniciado. Const ERROR_SERVICE_NOT_ACTIVE = 1062& ' El proceso de servicio no se pudo conectar con el controlador de servicio. Const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063& ' Se ha producido una excepción en el servicio al tratar la petición del control. Const ERROR_EXCEPTION_IN_SERVICE = 1064& ' La base de datos especificada no existe. Const ERROR_DATABASE_DOES_NOT_EXIST = 1065& ' El servicio ha devuelto un código de error específico del servicio. Const ERROR_SERVICE_SPECIFIC_ERROR = 1066& ' El proceso terminó inesperadamente. Const ERROR_PROCESS_ABORTED = 1067& ' No se ha iniciado el servicio o grupo de dependencia. Const ERROR_SERVICE_DEPENDENCY_FAIL = 1068& ' El servicio no se ha iniciado debido a un fallo de inicio de sesión. Const ERROR_SERVICE_LOGON_FAILED = 1069& ' Después de iniciarse, el servicio quedó bloqueado en estado pendiente ' de inicio. Const ERROR_SERVICE_START_HANG = 1070& ' El bloqueo de base de datos del servicio especificado no es válido. Const ERROR_INVALID_SERVICE_LOCK = 1071& ' El servicio especificado está marcado para eliminación. Const ERROR_SERVICE_MARKED_FOR_DELETE = 1072& ' El servicio especificado ya existe. Const ERROR_SERVICE_EXISTS = 1073& ' El sistema se está ejecutando actualmente con la última configuración válida conocida. Const ERROR_ALREADY_RUNNING_LKG = 1074& ' El servicio de dependencia no existe o está marcado ' para eliminación. Const ERROR_SERVICE_DEPENDENCY_DELETED = 1075& ' Ya se ha aceptado el uso de la inicialización actual ' como mejor conjunto de controles conocido. Const ERROR_BOOT_ALREADY_ACCEPTED = 1076& ' No se ha intentado iniciar el servicio ninguna vez desde la última inicialización. Const ERROR_SERVICE_NEVER_STARTED = 1077& ' Ya se está usando el nombre como nombre de servicio o ' de pantalla de servicio. Const ERROR_DUPLICATE_SERVICE_NAME = 1078& ' Se ha llegado al final físico de la cinta. Const ERROR_END_OF_MEDIA = 1100& ' Un acceso de cinta ha alcanzado una marca de archivo. Const ERROR_FILEMARK_DETECTED = 1101& ' Se encontró el comienzo de la cinta o partición. Const ERROR_BEGINNING_OF_MEDIA = 1102& ' Un acceso de cinta ha llegado al final del conjunto de archivos. Const ERROR_SETMARK_DETECTED = 1103& ' No hay más datos en esta cinta. Const ERROR_NO_DATA_DETECTED = 1104& ' Imposible hacer particiones en la cinta. Const ERROR_PARTITION_FAILURE = 1105& ' Cuando se está teniendo acceso a una cinta nueva de una partición ' multivolumen, el tamaño de bloque activo es incorrecto. Const ERROR_INVALID_BLOCK_LENGTH = 1106& ' No se puede encontrar la información de partición de cinta ' al cargar una cinta. Const ERROR_DEVICE_NOT_PARTITIONED = 1107& ' Imposible bloquear el mecanismo para expulsar el medio. Const ERROR_UNABLE_TO_LOCK_MEDIA = 1108& ' Imposible descargar el medio. Const ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109& ' Puede que se haya cambiado el medio que está en la unidad. Const ERROR_MEDIA_CHANGED = 1110& ' Se restableció el bus de E/S. Const ERROR_BUS_RESET = 1111& ' No hay ningún medio en la unidad. Const ERROR_NO_MEDIA_IN_DRIVE = 1112& ' No existe ninguna asignación para el carácter Unicode en la ' página de códigos multibyte de destino. Const ERROR_NO_UNICODE_TRANSLATION = 1113& ' Ha fallado la rutina de inicialización de una biblioteca ' de vínculos dinámicos (DLL). Const ERROR_DLL_INIT_FAILED = 1114& ' Se está efectuando un cierre del sistema. Const ERROR_SHUTDOWN_IN_PROGRESS = 1115& ' Imposible anular el cierre del sistema porque no se estaba ' efectuando ningún cierre. Const ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116& ' No se pudo efectuar la petición a causa de un error en el dispositivo de E/S. Const ERROR_IO_DEVICE = 1117& ' No se ha inicializado correctamente ningún dispositivo serie. ' Se descargará el controlador serie. Const ERROR_SERIAL_NO_DEVICE = 1118& ' Imposible abrir un dispositivo que compartía una petición de interrupción (IRQ) ' con otros dispositivos. Al menos uno de los otros dispositivos que usa dicho IRQ ' ya estaba abierto. Const ERROR_IRQ_BUSY = 1119& ' Se ha terminado una operación de E/S serie escribiendo otra vez en el puerto serie. ' (El contador IOCTL_SERIAL_XOFF_COUNTER ha llegado a cero.) Const ERROR_MORE_WRITES = 1120& ' Se ha terminado una operación de E/S serie porque ha expirado el tiempo de espera. ' (El contador IOCTL_SERIAL_XOFF_COUNTER no ha llegado a cero.) Const ERROR_COUNTER_TIMEOUT = 1121& ' No se ha encontrado la marca de dirección de Id. en el disquete. Const ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122& ' No coincide el campo de Id. de sector de disquete con la dirección ' de pista del controlador del disquete. Const ERROR_FLOPPY_WRONG_CYLINDER = 1123& ' El controlador del disquete ha informado de un error no ' reconocido por la unidad de disquete. Const ERROR_FLOPPY_UNKNOWN_ERROR = 1124& ' El controlador del disquete devolvió resultados incoherentes en sus registros. Const ERROR_FLOPPY_BAD_REGISTERS = 1125& ' Mientras se tenía acceso al disco duro, falló una operación de recalibrado, ' incluso después de varios intentos. Const ERROR_DISK_RECALIBRATE_FAILED = 1126& ' Mientras se tenía acceso al disco duro, falló una operación de disco, ' incluso después de varios intentos. Const ERROR_DISK_OPERATION_FAILED = 1127& ' Mientras se tenía acceso al disco duro, fue necesario reiniciar el ' controlador de disco, pero también ha fallado. Const ERROR_DISK_RESET_FAILED = 1128& ' Se encontró el final físico de la cinta. Const ERROR_EOM_OVERFLOW = 1129& ' No hay espacio de almacenamiento suficiente en el servidor para procesar este comando. Const ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130& ' Se ha detectado una posible condición de conflicto. Const ERROR_POSSIBLE_DEADLOCK = 1131& ' La dirección de base o el desplazamiento de archivo especificados no ' tienen la alineación apropiada. Const ERROR_MAPPED_ALIGNMENT = 1132& ' NUEVO para Win32 Const ERROR_INVALID_PIXEL_FORMAT = 2000 Const ERROR_BAD_DRIVER = 2001 Const ERROR_INVALID_WINDOW_STYLE = 2002 Const ERROR_METAFILE_NOT_SUPPORTED = 2003 Const ERROR_TRANSFORM_NOT_SUPPORTED = 2004 Const ERROR_CLIPPING_NOT_SUPPORTED = 2005 Const ERROR_UNKNOWN_PRINT_MONITOR = 3000 Const ERROR_PRINTER_DRIVER_IN_USE = 3001 Const ERROR_SPOOL_FILE_NOT_FOUND = 3002 Const ERROR_SPL_NO_STARTDOC = 3003 Const ERROR_SPL_NO_ADDJOB = 3004 Const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005 Const ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006 Const ERROR_WINS_INTERNAL = 4000 Const ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001 Const ERROR_STATIC_INIT = 4002 Const ERROR_INC_BACKUP = 4003 Const ERROR_FULL_BACKUP = 4004 Const ERROR_REC_NON_EXISTENT = 4005 Const ERROR_RPL_NOT_ALLOWED = 4006 Const SEVERITY_SUCCESS = 0 Const SEVERITY_ERROR = 1 Const FACILITY_NT_BIT = &H10000000 Const NOERROR = 0 Const E_UNEXPECTED = &H8000FFFF Const E_NOTIMPL = &H80004001 Const E_OUTOFMEMORY = &H8007000E Const E_INVALIDARG = &H80070057 Const E_NOINTERFACE = &H80004002 Const E_POINTER = &H80004003 Const E_HANDLE = &H80070006 Const E_ABORT = &H80004004 Const E_FAIL = &H80004005 Const E_ACCESSDENIED = &H80070005 Const CO_E_INIT_TLS = &H80004006 Const CO_E_INIT_SHARED_ALLOCATOR = &H80004007 Const CO_E_INIT_MEMORY_ALLOCATOR = &H80004008 Const CO_E_INIT_CLASS_CACHE = &H80004009 Const CO_E_INIT_RPC_CHANNEL = &H8000400A Const CO_E_INIT_TLS_SET_CHANNEL_CONTROL = &H8000400B Const CO_E_INIT_TLS_CHANNEL_CONTROL = &H8000400C Const CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = &H8000400D Const CO_E_INIT_SCM_MUTEX_EXISTS = &H8000400E Const CO_E_INIT_SCM_FILE_MAPPING_EXISTS = &H8000400F Const CO_E_INIT_SCM_MAP_VIEW_OF_FILE = &H80004010 Const CO_E_INIT_SCM_EXEC_FAILURE = &H80004011 Const CO_E_INIT_ONLY_SINGLE_THREADED = &H80004012 Const S_OK = &H0 Const S_FALSE = &H1 Const OLE_E_FIRST = &H80040000 Const OLE_E_LAST = &H800400FF Const OLE_S_FIRST = &H40000 Const OLE_S_LAST = &H400FF Const OLE_E_OLEVERB = &H80040000 Const OLE_E_ADVF = &H80040001 Const OLE_E_ENUM_NOMORE = &H80040002 Const OLE_E_ADVISENOTSUPPORTED = &H80040003 Const OLE_E_NOCONNECTION = &H80040004 Const OLE_E_NOTRUNNING = &H80040005 Const OLE_E_NOCACHE = &H80040006 Const OLE_E_BLANK = &H80040007 Const OLE_E_CLASSDIFF = &H80040008 Const OLE_E_CANT_GETMONIKER = &H80040009 Const OLE_E_CANT_BINDTOSOURCE = &H8004000A Const OLE_E_STATIC = &H8004000B Const OLE_E_PROMPTSAVECANCELLED = &H8004000C Const OLE_E_INVALIDRECT = &H8004000D Const OLE_E_WRONGCOMPOBJ = &H8004000E Const OLE_E_INVALIDHWND = &H8004000F Const OLE_E_NOT_INPLACEACTIVE = &H80040010 Const OLE_E_CANTCONVERT = &H80040011 Const OLE_E_NOSTORAGE = &H80040012 Const DV_E_FORMATETC = &H80040064 Const DV_E_DVTARGETDEVICE = &H80040065 Const DV_E_STGMEDIUM = &H80040066 Const DV_E_STATDATA = &H80040067 Const DV_E_LINDEX = &H80040068 Const DV_E_TYMED = &H80040069 Const DV_E_CLIPFORMAT = &H8004006A Const DV_E_DVASPECT = &H8004006B Const DV_E_DVTARGETDEVICE_SIZE = &H8004006C Const DV_E_NOIVIEWOBJECT = &H8004006D Const DRAGDROP_E_FIRST = &H80040100 Const DRAGDROP_E_LAST = &H8004010F Const DRAGDROP_S_FIRST = &H40100 Const DRAGDROP_S_LAST = &H4010F Const DRAGDROP_E_NOTREGISTERED = &H80040100 Const DRAGDROP_E_ALREADYREGISTERED = &H80040101 Const DRAGDROP_E_INVALIDHWND = &H80040102 Const CLASSFACTORY_E_FIRST = &H80040110 Const CLASSFACTORY_E_LAST = &H8004011F Const CLASSFACTORY_S_FIRST = &H40110 Const CLASSFACTORY_S_LAST = &H4011F Const CLASS_E_NOAGGREGATION = &H80040110 Const CLASS_E_CLASSNOTAVAILABLE = &H80040111 Const MARSHAL_E_FIRST = &H80040120 Const MARSHAL_E_LAST = &H8004012F Const MARSHAL_S_FIRST = &H40120 Const MARSHAL_S_LAST = &H4012F Const DATA_E_FIRST = &H80040130 Const DATA_E_LAST = &H8004013F Const DATA_S_FIRST = &H40130 Const DATA_S_LAST = &H4013F Const VIEW_E_FIRST = &H80040140 Const VIEW_E_LAST = &H8004014F Const VIEW_S_FIRST = &H40140 Const VIEW_S_LAST = &H4014F Const VIEW_E_DRAW = &H80040140 Const REGDB_E_FIRST = &H80040150 Const REGDB_E_LAST = &H8004015F Const REGDB_S_FIRST = &H40150 Const REGDB_S_LAST = &H4015F Const REGDB_E_READREGDB = &H80040150 Const REGDB_E_WRITEREGDB = &H80040151 Const REGDB_E_KEYMISSING = &H80040152 Const REGDB_E_INVALIDVALUE = &H80040153 Const REGDB_E_CLASSNOTREG = &H80040154 Const REGDB_E_IIDNOTREG = &H80040155 Const CACHE_E_FIRST = &H80040170 Const CACHE_E_LAST = &H8004017F Const CACHE_S_FIRST = &H40170 Const CACHE_S_LAST = &H4017F Const CACHE_E_NOCACHE_UPDATED = &H80040170 Const OLEOBJ_E_FIRST = &H80040180 Const OLEOBJ_E_LAST = &H8004018F Const OLEOBJ_S_FIRST = &H40180 Const OLEOBJ_S_LAST = &H4018F Const OLEOBJ_E_NOVERBS = &H80040180 Const OLEOBJ_E_INVALIDVERB = &H80040181 Const CLIENTSITE_E_FIRST = &H80040190 Const CLIENTSITE_E_LAST = &H8004019F Const CLIENTSITE_S_FIRST = &H40190 Const CLIENTSITE_S_LAST = &H4019F Const INPLACE_E_NOTUNDOABLE = &H800401A0 Const INPLACE_E_NOTOOLSPACE = &H800401A1 Const INPLACE_E_FIRST = &H800401A0 Const INPLACE_E_LAST = &H800401AF Const INPLACE_S_FIRST = &H401A0 Const INPLACE_S_LAST = &H401AF Const ENUM_E_FIRST = &H800401B0 Const ENUM_E_LAST = &H800401BF Const ENUM_S_FIRST = &H401B0 Const ENUM_S_LAST = &H401BF Const CONVERT10_E_FIRST = &H800401C0 Const CONVERT10_E_LAST = &H800401CF Const CONVERT10_S_FIRST = &H401C0 Const CONVERT10_S_LAST = &H401CF Const CONVERT10_E_OLESTREAM_GET = &H800401C0 Const CONVERT10_E_OLESTREAM_PUT = &H800401C1 Const CONVERT10_E_OLESTREAM_FMT = &H800401C2 Const CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = &H800401C3 Const CONVERT10_E_STG_FMT = &H800401C4 Const CONVERT10_E_STG_NO_STD_STREAM = &H800401C5 Const CONVERT10_E_STG_DIB_TO_BITMAP = &H800401C6 Const CLIPBRD_E_FIRST = &H800401D0 Const CLIPBRD_E_LAST = &H800401DF Const CLIPBRD_S_FIRST = &H401D0 Const CLIPBRD_S_LAST = &H401DF Const CLIPBRD_E_CANT_OPEN = &H800401D0 Const CLIPBRD_E_CANT_EMPTY = &H800401D1 Const CLIPBRD_E_CANT_SET = &H800401D2 Const CLIPBRD_E_BAD_DATA = &H800401D3 Const CLIPBRD_E_CANT_CLOSE = &H800401D4 Const MK_E_FIRST = &H800401E0 Const MK_E_LAST = &H800401EF Const MK_S_FIRST = &H401E0 Const MK_S_LAST = &H401EF Const MK_E_CONNECTMANUALLY = &H800401E0 Const MK_E_EXCEEDEDDEADLINE = &H800401E1 Const MK_E_NEEDGENERIC = &H800401E2 Const MK_E_UNAVAILABLE = &H800401E3 Const MK_E_SYNTAX = &H800401E4 Const MK_E_NOOBJECT = &H800401E5 Const MK_E_INVALIDEXTENSION = &H800401E6 Const MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = &H800401E7 Const MK_E_NOTBINDABLE = &H800401E8 Const MK_E_NOTBOUND = &H800401E9 Const MK_E_CANTOPENFILE = &H800401EA Const MK_E_MUSTBOTHERUSER = &H800401EB Const MK_E_NOINVERSE = &H800401EC Const MK_E_NOSTORAGE = &H800401ED Const MK_E_NOPREFIX = &H800401EE Const MK_E_ENUMERATION_FAILED = &H800401EF Const CO_E_FIRST = &H800401F0 Const CO_E_LAST = &H800401FF Const CO_S_FIRST = &H401F0 Const CO_S_LAST = &H401FF Const CO_E_NOTINITIALIZED = &H800401F0 Const CO_E_ALREADYINITIALIZED = &H800401F1 Const CO_E_CANTDETERMINECLASS = &H800401F2 Const CO_E_CLASSSTRING = &H800401F3 Const CO_E_IIDSTRING = &H800401F4 Const CO_E_APPNOTFOUND = &H800401F5 Const CO_E_APPSINGLEUSE = &H800401F6 Const CO_E_ERRORINAPP = &H800401F7 Const CO_E_DLLNOTFOUND = &H800401F8 Const CO_E_ERRORINDLL = &H800401F9 Const CO_E_WRONGOSFORAPP = &H800401FA Const CO_E_OBJNOTREG = &H800401FB Const CO_E_OBJISREG = &H800401FC Const CO_E_OBJNOTCONNECTED = &H800401FD Const CO_E_APPDIDNTREG = &H800401FE Const CO_E_RELEASED = &H800401FF Const OLE_S_USEREG = &H40000 Const OLE_S_STATIC = &H40001 Const OLE_S_MAC_CLIPFORMAT = &H40002 Const DRAGDROP_S_DROP = &H40100 Const DRAGDROP_S_CANCEL = &H40101 Const DRAGDROP_S_USEDEFAULTCURSORS = &H40102 Const DATA_S_SAMEFORMATETC = &H40130 Const VIEW_S_ALREADY_FROZEN = &H40140 Const CACHE_S_FORMATETC_NOTSUPPORTED = &H40170 Const CACHE_S_SAMECACHE = &H40171 Const CACHE_S_SOMECACHES_NOTUPDATED = &H40172 Const OLEOBJ_S_INVALIDVERB = &H40180 Const OLEOBJ_S_CANNOT_DOVERB_NOW = &H40181 Const OLEOBJ_S_INVALIDHWND = &H40182 Const INPLACE_S_TRUNCATED = &H401A0 Const CONVERT10_S_NO_PRESENTATION = &H401C0 Const MK_S_REDUCED_TO_SELF = &H401E2 Const MK_S_ME = &H401E4 Const MK_S_HIM = &H401E5 Const MK_S_US = &H401E6 Const MK_S_MONIKERALREADYREGISTERED = &H401E7 Const CO_E_CLASS_CREATE_FAILED = &H80080001 Const CO_E_SCM_ERROR = &H80080002 Const CO_E_SCM_RPC_FAILURE = &H80080003 Const CO_E_BAD_PATH = &H80080004 Const CO_E_SERVER_EXEC_FAILURE = &H80080005 Const CO_E_OBJSRV_RPC_FAILURE = &H80080006 Const MK_E_NO_NORMALIZED = &H80080007 Const CO_E_SERVER_STOPPING = &H80080008 Const MEM_E_INVALID_ROOT = &H80080009 Const MEM_E_INVALID_LINK = &H80080010 Const MEM_E_INVALID_SIZE = &H80080011 Const DISP_E_UNKNOWNINTERFACE = &H80020001 Const DISP_E_MEMBERNOTFOUND = &H80020003 Const DISP_E_PARAMNOTFOUND = &H80020004 Const DISP_E_TYPEMISMATCH = &H80020005 Const DISP_E_UNKNOWNNAME = &H80020006 Const DISP_E_NONAMEDARGS = &H80020007 Const DISP_E_BADVARTYPE = &H80020008 Const DISP_E_EXCEPTION = &H80020009 Const DISP_E_OVERFLOW = &H8002000A Const DISP_E_BADINDEX = &H8002000B Const DISP_E_UNKNOWNLCID = &H8002000C Const DISP_E_ARRAYISLOCKED = &H8002000D Const DISP_E_BADPARAMCOUNT = &H8002000E Const DISP_E_PARAMNOTOPTIONAL = &H8002000F Const DISP_E_BADCALLEE = &H80020010 Const DISP_E_NOTACOLLECTION = &H80020011 Const TYPE_E_BUFFERTOOSMALL = &H80028016 Const TYPE_E_INVDATAREAD = &H80028018 Const TYPE_E_UNSUPFORMAT = &H80028019 Const TYPE_E_REGISTRYACCESS = &H8002801C Const TYPE_E_LIBNOTREGISTERED = &H8002801D Const TYPE_E_UNDEFINEDTYPE = &H80028027 Const TYPE_E_QUALIFIEDNAMEDISALLOWED = &H80028028 Const TYPE_E_INVALIDSTATE = &H80028029 Const TYPE_E_WRONGTYPEKIND = &H8002802A Const TYPE_E_ELEMENTNOTFOUND = &H8002802B Const TYPE_E_AMBIGUOUSNAME = &H8002802C Const TYPE_E_NAMECONFLICT = &H8002802D Const TYPE_E_UNKNOWNLCID = &H8002802E Const TYPE_E_DLLFUNCTIONNOTFOUND = &H8002802F Const TYPE_E_BADMODULEKIND = &H800288BD Const TYPE_E_SIZETOOBIG = &H800288C5 Const TYPE_E_DUPLICATEID = &H800288C6 Const TYPE_E_INVALIDID = &H800288CF Const TYPE_E_TYPEMISMATCH = &H80028CA0 Const TYPE_E_OUTOFBOUNDS = &H80028CA1 Const TYPE_E_IOERROR = &H80028CA2 Const TYPE_E_CANTCREATETMPFILE = &H80028CA3 Const TYPE_E_CANTLOADLIBRARY = &H80029C4A Const TYPE_E_INCONSISTENTPROPFUNCS = &H80029C83 Const TYPE_E_CIRCULARTYPE = &H80029C84 Const STG_E_INVALIDFUNCTION = &H80030001 Const STG_E_FILENOTFOUND = &H80030002 Const STG_E_PATHNOTFOUND = &H80030003 Const STG_E_TOOMANYOPENFILES = &H80030004 Const STG_E_ACCESSDENIED = &H80030005 Const STG_E_INVALIDHANDLE = &H80030006 Const STG_E_INSUFFICIENTMEMORY = &H80030008 Const STG_E_INVALIDPOINTER = &H80030009 Const STG_E_NOMOREFILES = &H80030012 Const STG_E_DISKISWRITEPROTECTED = &H80030013 Const STG_E_SEEKERROR = &H80030019 Const STG_E_WRITEFAULT = &H8003001D Const STG_E_READFAULT = &H8003001E Const STG_E_SHAREVIOLATION = &H80030020 Const STG_E_LOCKVIOLATION = &H80030021 Const STG_E_FILEALREADYEXISTS = &H80030050 Const STG_E_INVALIDPARAMETER = &H80030057 Const STG_E_MEDIUMFULL = &H80030070 Const STG_E_ABNORMALAPIEXIT = &H800300FA Const STG_E_INVALIDHEADER = &H800300FB Const STG_E_INVALIDNAME = &H800300FC Const STG_E_UNKNOWN = &H800300FD Const STG_E_UNIMPLEMENTEDFUNCTION = &H800300FE Const STG_E_INVALIDFLAG = &H800300FF Const STG_E_INUSE = &H80030100 Const STG_E_NOTCURRENT = &H80030101 Const STG_E_REVERTED = &H80030102 Const STG_E_CANTSAVE = &H80030103 Const STG_E_OLDFORMAT = &H80030104 Const STG_E_OLDDLL = &H80030105 Const STG_E_SHAREREQUIRED = &H80030106 Const STG_E_NOTFILEBASEDSTORAGE = &H80030107 Const STG_E_EXTANTMARSHALLINGS = &H80030108 Const STG_S_CONVERTED = &H30200 Const RPC_E_CALL_REJECTED = &H80010001 Const RPC_E_CALL_CANCELED = &H80010002 Const RPC_E_CANTPOST_INSENDCALL = &H80010003 Const RPC_E_CANTCALLOUT_INASYNCCALL = &H80010004 Const RPC_E_CANTCALLOUT_INEXTERNALCALL = &H80010005 Const RPC_E_CONNECTION_TERMINATED = &H80010006 Const RPC_E_SERVER_DIED = &H80010007 Const RPC_E_CLIENT_DIED = &H80010008 Const RPC_E_INVALID_DATAPACKET = &H80010009 Const RPC_E_CANTTRANSMIT_CALL = &H8001000A Const RPC_E_CLIENT_CANTMARSHAL_DATA = &H8001000B Const RPC_E_CLIENT_CANTUNMARSHAL_DATA = &H8001000C Const RPC_E_SERVER_CANTMARSHAL_DATA = &H8001000D Const RPC_E_SERVER_CANTUNMARSHAL_DATA = &H8001000E Const RPC_E_INVALID_DATA = &H8001000F Const RPC_E_INVALID_PARAMETER = &H80010010 Const RPC_E_CANTCALLOUT_AGAIN = &H80010011 Const RPC_E_SERVER_DIED_DNE = &H80010012 Const RPC_E_SYS_CALL_FAILED = &H80010100 Const RPC_E_OUT_OF_RESOURCES = &H80010101 Const RPC_E_ATTEMPTED_MULTITHREAD = &H80010102 Const RPC_E_NOT_REGISTERED = &H80010103 Const RPC_E_FAULT = &H80010104 Const RPC_E_SERVERFAULT = &H80010105 Const RPC_E_CHANGED_MODE = &H80010106 Const RPC_E_INVALIDMETHOD = &H80010107 Const RPC_E_DISCONNECTED = &H80010108 Const RPC_E_RETRY = &H80010109 Const RPC_E_SERVERCALL_RETRYLATER = &H8001010A Const RPC_E_SERVERCALL_REJECTED = &H8001010B Const RPC_E_INVALID_CALLDATA = &H8001010C Const RPC_E_CANTCALLOUT_ININPUTSYNCCALL = &H8001010D Const RPC_E_WRONG_THREAD = &H8001010E Const RPC_E_THREAD_NOT_INIT = &H8001010F Const RPC_E_UNEXPECTED = &H8001FFFF ' //////////////////////////////// ' // ' Códigos de estado de Winnet32 // ' // ' //////////////////////////////// ' El nombre de usuario especificado no es válido. Const ERROR_BAD_USERNAME = 2202& ' Esta conexión de red no existe. Const ERROR_NOT_CONNECTED = 2250& ' Esta conexión de red tiene archivos abiertos o peticiones pendientes. Const ERROR_OPEN_FILES = 2401& ' Un proceso activo está usando el dispositivo y éste no se puede desconectar. Const ERROR_DEVICE_IN_USE = 2404& ' El nombre de dispositivo especificado no es válido. Const ERROR_BAD_DEVICE = 1200& ' El dispositivo no está conectado ahora pero tiene una conexión recordada. Const ERROR_CONNECTION_UNAVAIL = 1201& ' Se ha intentado recordar un dispositivo que ya se había recordado previamente. Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202& ' Ningún proveedor de red ha aceptado la ruta de acceso a red dada. Const ERROR_NO_NET_OR_BAD_PATH = 1203& ' El nombre de proveedor de red especificado no es válido. Const ERROR_BAD_PROVIDER = 1204& ' Imposible abrir el perfil de conexión de la red. Const ERROR_CANNOT_OPEN_PROFILE = 1205& ' El perfil de conexión de la red está dañado. Const ERROR_BAD_PROFILE = 1206& ' Imposible enumerar un no contenedor. Const ERROR_NOT_CONTAINER = 1207& ' Se ha producido un error ampliado. Const ERROR_EXTENDED_ERROR = 1208& ' El formato del nombre de grupo especificado no es válido. Const ERROR_INVALID_GROUPNAME = 1209& ' El formato del nombre de equipo especificado no es válido. Const ERROR_INVALID_COMPUTERNAME = 1210& ' El formato del nombre de evento especificado no es válido. Const ERROR_INVALID_EVENTNAME = 1211& ' El formato del nombre de dominio especificado no es válido. Const ERROR_INVALID_DOMAINNAME = 1212& ' El formato del nombre de servicio especificado no es válido. Const ERROR_INVALID_SERVICENAME = 1213& ' El formato del nombre de red especificado no es válido. Const ERROR_INVALID_NETNAME = 1214& ' El formato del nombre de recurso compartido especificado no es válido. Const ERROR_INVALID_SHARENAME = 1215& ' El formato de la contraseña especificada no es válido. Const ERROR_INVALID_PASSWORDNAME = 1216& ' El formato del nombre de mensaje especificado no es válido. Const ERROR_INVALID_MESSAGENAME = 1217& ' El formato del destino de mensaje especificado no es válido. Const ERROR_INVALID_MESSAGEDEST = 1218& ' Las credenciales suministradas entran en conflicto con un conjunto ' de credenciales existente. Const ERROR_SESSION_CREDENTIAL_CONFLICT = 1219& ' Se ha intentado establecer una sesión a un servidor de Lan Manager, ' pero ya hay demasiadas sesiones establecidas para ese servidor. Const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220& ' El nombre de grupo de trabajo o dominio ya está en uso por ' otro equipo de la red. Const ERROR_DUP_DOMAINNAME = 1221& ' La red no está presente o no está iniciada. Const ERROR_NO_NETWORK = 1222& ' ////////////////////////////////// ' // ' Códigos de estado de seguridad // ' // ' ////////////////////////////////// ' No todos los privilegios a los que se ha hecho referencia ' están asignados al que llama. Const ERROR_NOT_ALL_ASSIGNED = 1300& ' No se han hecho algunas asignaciones entre nombres de cuenta e Id. de seguridad. Const ERROR_SOME_NOT_MAPPED = 1301& ' No hay límites de cuota de sistema establecidos específicamente para esta cuenta. Const ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302& ' No hay disponible ninguna clave de codificación. Se ha devuelto una clave ' de codificación conocida. Const ERROR_LOCAL_USER_SESSION_KEY = 1303& ' La contraseña de NT es demasiado compleja para convertirla en contraseña ' de LAN Manager. La contraseña de LAN Manager devuelta es una cadena NULL. Const ERROR_NULL_LM_PASSWORD = 1304& ' Nivel de revisión desconocido. Const ERROR_UNKNOWN_REVISION = 1305& ' Indica que dos niveles de revisión son incompatibles. Const ERROR_REVISION_MISMATCH = 1306& ' Puede que este Id. de seguridad no esté asignado como propietario de este objeto. Const ERROR_INVALID_OWNER = 1307& ' Puede que este Id. de seguridad no esté asignado como grupo primario de un objeto. Const ERROR_INVALID_PRIMARY_GROUP = 1308& ' Se ha intentado operar en un símbolo de representación a través de un ' subproceso que no representa actualmente a ningún cliente. Const ERROR_NO_IMPERSONATION_TOKEN = 1309& ' Puede que el grupo no esté desactivado. Const ERROR_CANT_DISABLE_MANDATORY = 1310& ' No hay servidores de inicio de sesión disponibles para ' dar servicio a la petición de inicio de sesión. Const ERROR_NO_LOGON_SERVERS = 1311& ' No existe una sesión de inicio especificada. Es posible que ' alguien la haya terminado. Const ERROR_NO_SUCH_LOGON_SESSION = 1312& ' No existe un privilegio especificado. Const ERROR_NO_SUCH_PRIVILEGE = 1313& ' El cliente no tiene el privilegio requerido. Const ERROR_PRIVILEGE_NOT_HELD = 1314& ' El nombre dado no es un nombre de cuenta formado correctamente. Const ERROR_INVALID_ACCOUNT_NAME = 1315& ' El usuario especificado ya existe. Const ERROR_USER_EXISTS = 1316& ' El usuario especificado no existe. Const ERROR_NO_SUCH_USER = 1317& ' El grupo especificado ya existe. Const ERROR_GROUP_EXISTS = 1318& ' El grupo especificado no existe. Const ERROR_NO_SUCH_GROUP = 1319& ' La cuenta de usuario especificada ya es un miembro del grupo ' especificado o el grupo especificado no se puede eliminar porque ' contiene un miembro. Const ERROR_MEMBER_IN_GROUP = 1320& ' La cuenta de usuario especificada no es miembro de la cuenta del grupo especificado. Const ERROR_MEMBER_NOT_IN_GROUP = 1321& ' La última cuenta de administración que queda no se puede ' desactivar ni eliminar. Const ERROR_LAST_ADMIN = 1322& ' Imposible actualizar la contraseña. El valor proporcionado ' como contraseña actual es incorrecto. Const ERROR_WRONG_PASSWORD = 1323& ' Imposible actualizar la contraseña. El valor proporcionado ' para la contraseña nueva contiene valores que no están permitidos ' en las contraseñas. Const ERROR_ILL_FORMED_PASSWORD = 1324& ' Imposible actualizar la contraseña porque se ha infringido una ' norma de la actualización de contraseñas. Const ERROR_PASSWORD_RESTRICTION = 1325& ' Fallo en el inicio de sesión: nombre de usuario desconocido o contraseña incorrecta. Const ERROR_LOGON_FAILURE = 1326& ' Fallo en el inicio de sesión: restricción de la cuenta de usuario. Const ERROR_ACCOUNT_RESTRICTION = 1327& ' Fallo en el inicio de sesión: infracción de la restricción de hora para inicio de sesión. Const ERROR_INVALID_LOGON_HOURS = 1328& ' Fallo en el inicio de sesión: no se permite al usuario iniciar la sesión en este equipo. Const ERROR_INVALID_WORKSTATION = 1329& ' Fallo en el inicio de sesión: la contraseña de cuenta especificada ha caducado. Const ERROR_PASSWORD_EXPIRED = 1330& ' Fallo en el inicio de sesión: cuenta desactivada actualmente. Const ERROR_ACCOUNT_DISABLED = 1331& ' No se realizó ninguna asignación entre nombres de cuenta e Id. de seguridad. Const ERROR_NONE_MAPPED = 1332& ' Se han solicitado al mismo tiempo demasiados identificadores de usuario local (LUID). Const ERROR_TOO_MANY_LUIDS_REQUESTED = 1333& ' No hay más identificadores de usuario local (LUID) disponibles. Const ERROR_LUIDS_EXHAUSTED = 1334& ' La parte de subautoridad de un Id. de seguridad no es válida para este uso concreto. Const ERROR_INVALID_SUB_AUTHORITY = 1335& ' La estructura de la lista de control de acceso (ACL) no es válida. Const ERROR_INVALID_ACL = 1336& ' La estructura del Id. de seguridad no es válida. Const ERROR_INVALID_SID = 1337& ' La estructura del descriptor de seguridad no es válida. Const ERROR_INVALID_SECURITY_DESCR = 1338& ' No se puede generar la lista de control de acceso (ACL) o la entrada ' de control de acceso (ACE) heredada. Const ERROR_BAD_INHERITANCE_ACL = 1340& ' El servidor está desactivado actualmente. Const ERROR_SERVER_DISABLED = 1341& ' El servidor está activado actualmente. Const ERROR_SERVER_NOT_DISABLED = 1342& ' El valor proporcionado era un valor no válido para una autoridad de identificador. Const ERROR_INVALID_ID_AUTHORITY = 1343& ' No hay más memoria disponible para actualizar la información de seguridad. Const ERROR_ALLOTTED_SPACE_EXCEEDED = 1344& ' Los atributos especificados no son válidos o son incompatibles con los ' atributos del grupo en conjunto. Const ERROR_INVALID_GROUP_ATTRIBUTES = 1345& ' No se ha proporcionado un nivel de representación requerido o ' el nivel de representación proporcionado no es válido. Const ERROR_BAD_IMPERSONATION_LEVEL = 1346& ' Imposible abrir un símbolo de seguridad de nivel anónimo. Const ERROR_CANT_OPEN_ANONYMOUS = 1347& ' La clase de información de validación solicitada no era válida. Const ERROR_BAD_VALIDATION_CLASS = 1348& ' El tipo del símbolo no es apropiado para el uso que intenta darle. Const ERROR_BAD_TOKEN_TYPE = 1349& ' Imposible efectuar una operación de seguridad en un objeto ' que no tiene seguridad asociada. Const ERROR_NO_SECURITY_ON_OBJECT = 1350& ' Indica que no se ha podido contactar con Windows NT Advanced ' Server o que los objetos pertenecientes al dominio están ' protegidos de forma que no se puede recuperar información necesaria. Const ERROR_CANT_ACCESS_DOMAIN_INFO = 1351& ' El administrador de cuentas de seguridad (SAM) o el servidor de ' autoridad de seguridad local (LSA) estaban en un estado incorrecto ' para realizar la operación de seguridad. Const ERROR_INVALID_SERVER_STATE = 1352& ' El dominio estaba en un estado incorrecto para realizar la operación de seguridad. Const ERROR_INVALID_DOMAIN_STATE = 1353& ' Esta operación sólo es válida para el controlador principal del dominio. Const ERROR_INVALID_DOMAIN_ROLE = 1354& ' El dominio especificado no existía. Const ERROR_NO_SUCH_DOMAIN = 1355& ' El dominio especificado ya existe. Const ERROR_DOMAIN_EXISTS = 1356& ' Se ha intentado superar el límite de número de dominios por servidor. Const ERROR_DOMAIN_LIMIT_EXCEEDED = 1357& ' Imposible completar la operación solicitada porque ha habido un fallo ' catastrófico del medio o se han dañado las estructuras de datos en el disco. Const ERROR_INTERNAL_DB_CORRUPTION = 1358& ' La base de datos de cuentas de seguridad contiene una incoherencia interna. Const ERROR_INTERNAL_ERROR = 1359& ' Los tipos de acceso genéricos estaban incluidos en una máscara de acceso ' que ya debería estar asignada a tipos no genéricos. Const ERROR_GENERIC_NOT_MAPPED = 1360& ' Un descriptor de seguridad no tiene el formato correcto (absoluto o relativo a sí mismo). Const ERROR_BAD_DESCRIPTOR_FORMAT = 1361& ' El uso de la acción solicitada está restringido a los procesos de inicio de ' sesión. El proceso de llamada no está registrado como proceso de inicio de sesión. Const ERROR_NOT_LOGON_PROCESS = 1362& ' Imposible iniciar una sesión de inicio con un Id. que ya se está usando. Const ERROR_LOGON_SESSION_EXISTS = 1363& ' Un paquete de autentificación especificado es desconocido. Const ERROR_NO_SUCH_PACKAGE = 1364& ' La sesión de inicio no está en el estado que corresponde ' a la operación solicitada. Const ERROR_BAD_LOGON_SESSION_STATE = 1365& ' El Id. de inicio de sesión ya se está usando. Const ERROR_LOGON_SESSION_COLLISION = 1366& ' Una solicitud de inicio de sesión contenía un valor ' de tipo de inicio de sesión no válido. Const ERROR_INVALID_LOGON_TYPE = 1367& ' Imposible representar mediante una canalización con nombre ' hasta que se hayan leído los datos de esa canalización. Const ERROR_CANNOT_IMPERSONATE = 1368& ' El estado de transacción de un subárbol del Registro ' es incompatible con la operación solicitada. Const ERROR_RXACT_INVALID_STATE = 1369& ' Se ha encontrado un daño interno en la base de datos de seguridad. Const ERROR_RXACT_COMMIT_FAILURE = 1370& ' Imposible realizar esta operación en las cuentas incorporadas. Const ERROR_SPECIAL_ACCOUNT = 1371& ' Imposible realizar esta operación en este grupo especial incorporado. Const ERROR_SPECIAL_GROUP = 1372& ' Imposible realizar esta operación en este usuario especial incorporado. Const ERROR_SPECIAL_USER = 1373& ' No se puede quitar el usuario de un grupo porque éste es ' ahora el grupo primario del usuario. Const ERROR_MEMBERS_PRIMARY_GROUP = 1374& ' El símbolo ya se está usando como símbolo primario. Const ERROR_TOKEN_ALREADY_IN_USE = 1375& ' El grupo local especificado no existe. Const ERROR_NO_SUCH_ALIAS = 1376& ' El nombre de cuenta especificado no es miembro del grupo local. Const ERROR_MEMBER_NOT_IN_ALIAS = 1377& ' El nombre de cuenta especificado ya es miembro del grupo local. Const ERROR_MEMBER_IN_ALIAS = 1378& ' El grupo local especificado ya existe. Const ERROR_ALIAS_EXISTS = 1379& ' Fallo en el inicio de sesión: no se ha otorgado al usuario el tipo de ' inicio de sesión solicitado en su PC. Const ERROR_LOGON_NOT_GRANTED = 1380& ' Se ha superado el número máximo de secretos que se pueden ' almacenar en un único sistema. Const ERROR_TOO_MANY_SECRETS = 1381& ' La longitud de un secreto supera la longitud máxima permitida. Const ERROR_SECRET_TOO_LONG = 1382& ' La base de datos de autoridad de seguridad local contiene una incoherencia interna. Const ERROR_INTERNAL_DB_ERROR = 1383& ' Durante un intento de inicio de sesión, el contexto de seguridad del usuario ' ha acumulado demasiados Id. de seguridad. Const ERROR_TOO_MANY_CONTEXT_IDS = 1384& ' Fallo en el inicio de sesión: no se ha otorgado al usuario el tipo de ' inicio de sesión solicitado en su PC. Const ERROR_LOGON_TYPE_NOT_GRANTED = 1385& ' Es necesario usar una contraseña codificada para cambiar una contraseña de usuario. Const ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386& ' No se pudo agregar un miembro nuevo al grupo ' local porque el miembro no existe. Const ERROR_NO_SUCH_MEMBER = 1387& ' No se pudo agregar un miembro nuevo al grupo local ' porque el miembro tiene un tipo de cuenta incorrecto. Const ERROR_INVALID_MEMBER = 1388& ' Hay demasiados Id. de seguridad especificados. Const ERROR_TOO_MANY_SIDS = 1389& ' Es necesario usar una contraseña codificada para cambiar ' la contraseña de este usuario. Const ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390& ' Indica que una ACL no contiene componentes transferibles. Const ERROR_NO_INHERITANCE = 1391& ' El archivo o el directorio está dañado y no se puede leer. Const ERROR_FILE_CORRUPT = 1392& ' La estructura del disco está dañada y no se puede leer. Const ERROR_DISK_CORRUPT = 1393& ' No hay ninguna clave de sesión de usuario para la sesión de inicio especificada. Const ERROR_NO_USER_SESSION_KEY = 1394& ' Fin de los códigos de error de seguridad ' ///////////////////////////////// ' // ' Códigos de error de WinUser // ' // ' ///////////////////////////////// ' El controlador de ventana no es válido. Const ERROR_INVALID_WINDOW_HANDLE = 1400& ' El controlador de menú no es válido. Const ERROR_INVALID_MENU_HANDLE = 1401& ' El controlador de cursor no es válido. Const ERROR_INVALID_CURSOR_HANDLE = 1402& ' El controlador de la tabla de aceleradoras no es válido. Const ERROR_INVALID_ACCEL_HANDLE = 1403& ' El controlador del enlace no es válido. Const ERROR_INVALID_HOOK_HANDLE = 1404& ' Controlador no válido para una estructura de posición de ventanas múltiples. Const ERROR_INVALID_DWP_HANDLE = 1405& ' Imposible crear una ventana secundaria de nivel superior. Const ERROR_TLW_WITH_WSCHILD = 1406& ' Imposible encontrar la clase de ventana. Const ERROR_CANNOT_FIND_WND_CLASS = 1407& ' Ventana no válida; pertenece a otro subproceso. Const ERROR_WINDOW_OF_OTHER_THREAD = 1408& ' La tecla de acceso rápido ya está registrada. Const ERROR_HOTKEY_ALREADY_REGISTERED = 1409& ' Ya existe esta clase. Const ERROR_CLASS_ALREADY_EXISTS = 1410& ' La clase no existe. Const ERROR_CLASS_DOES_NOT_EXIST = 1411& ' La clase tiene todavía ventanas abiertas. Const ERROR_CLASS_HAS_WINDOWS = 1412& ' El índice no es válido. Const ERROR_INVALID_INDEX = 1413& ' El controlador de iconos no es válido. Const ERROR_INVALID_ICON_HANDLE = 1414& ' Usando las palabras de la ventana privada de DIÁLOGO. Const ERROR_PRIVATE_DIALOG_INDEX = 1415& ' No se encontró el identificador del cuadro de lista. Const ERROR_LISTBOX_ID_NOT_FOUND = 1416& ' No se encontraron caracteres comodín. Const ERROR_NO_WILDCARD_CHARACTERS = 1417& ' El subproceso no tiene un portapapeles abierto. Const ERROR_CLIPBOARD_NOT_OPEN = 1418& ' La tecla de acceso rápido no está registrada. Const ERROR_HOTKEY_NOT_REGISTERED = 1419& ' La ventana no es una ventana de diálogo válida. Const ERROR_WINDOW_NOT_DIALOG = 1420& ' No se encontró el Id. del control. Const ERROR_CONTROL_ID_NOT_FOUND = 1421& ' Mensaje no válido para un cuadro combinado, porque no tiene un control de edición. Const ERROR_INVALID_COMBOBOX_MESSAGE = 1422& ' La ventana no es un cuadro combinado. Const ERROR_WINDOW_NOT_COMBOBOX = 1423& ' El alto tiene que ser inferior a 256. Const ERROR_INVALID_EDIT_HEIGHT = 1424& ' El controlador del contexto de dispositivo (DC) no es válido. Const ERROR_DC_NOT_FOUND = 1425& ' El tipo de procedimiento de enlace no es válido. Const ERROR_INVALID_HOOK_FILTER = 1426& ' El procedimiento de enlace no es válido. Const ERROR_INVALID_FILTER_PROC = 1427& ' Imposible establecer un enlace no local sin un controlador de módulos. Const ERROR_HOOK_NEEDS_HMOD = 1428& ' Este procedimiento de enlace sólo se puede establecer globalmente. Const ERROR_PUBLIC_ONLY_HOOK = 1429& ' El procedimiento de enlace de diario ya está instalado. Const ERROR_JOURNAL_HOOK_SET = 1430& ' El procedimiento de enlace no está instalado. Const ERROR_HOOK_NOT_INSTALLED = 1431& ' El mensaje no es válido para un cuadro de lista de selección única. Const ERROR_INVALID_LB_MESSAGE = 1432& ' Se envió LB_SETCOUNT a un cuadro de lista activo. Const ERROR_SETCOUNT_ON_BAD_LB = 1433& ' Este cuadro de lista no admite tabuladores. Const ERROR_LB_WITHOUT_TABSTOPS = 1434& ' Imposible destruir un objeto creado por otro subproceso. Const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435& ' Las ventanas secundarias no pueden tener menús. Const ERROR_CHILD_WINDOW_MENU = 1436& ' La ventana no tiene un menú de sistema. Const ERROR_NO_SYSTEM_MENU = 1437& ' El estilo de cuadro de mensajes no es válido. Const ERROR_INVALID_MSGBOX_STYLE = 1438& ' El parámetro (SPI_) de nivel de sistema no es válido. Const ERROR_INVALID_SPI_VALUE = 1439& ' La pantalla ya está bloqueada. Const ERROR_SCREEN_ALREADY_LOCKED = 1440& ' Todos los controladores para ventanas de una estructura de posición ' de ventanas múltiples deben tener la misma ventana primaria. Const ERROR_HWNDS_HAVE_DIFF_PARENT = 1441& ' La ventana no es una ventana secundaria. Const ERROR_NOT_CHILD_WINDOW = 1442& ' El comando GW_ no es válido. Const ERROR_INVALID_GW_COMMAND = 1443& ' El identificador del subproceso no es válido. Const ERROR_INVALID_THREAD_ID = 1444& ' Imposible procesar un mensaje desde una ventana que no es una ' ventana con interfaz de documentos múltiples (MDI). Const ERROR_NON_MDICHILD_WINDOW = 1445& ' El menú emergente ya está activo. Const ERROR_POPUP_ALREADY_ACTIVE = 1446& ' La ventana no tiene barras de desplazamiento. Const ERROR_NO_SCROLLBARS = 1447& ' El intervalo de la barra de desplazamiento no puede ser mayor que 0x7FFF. Const ERROR_INVALID_SCROLLBAR_RANGE = 1448& ' No se puede mostrar o quitar la ventana de la forma especificada. Const ERROR_INVALID_SHOWWIN_COMMAND = 1449& ' Fin de los códigos de error de WinUser ' ///////////////////////////////////////////// ' // ' Códigos de estado del registro de sucesos // ' // ' ///////////////////////////////////////////// ' El archivo del registro de sucesos está dañado. Const ERROR_EVENTLOG_FILE_CORRUPT = 1500& ' No se pudo abrir ningún archivo del registro de sucesos; por eso ' no se ha iniciado el servicio de registro. Const ERROR_EVENTLOG_CANT_START = 1501& ' El archivo del registro de sucesos está lleno. Const ERROR_LOG_FILE_FULL = 1502& ' El archivo del registro de sucesos ha cambiado entre dos lecturas. Const ERROR_EVENTLOG_FILE_CHANGED = 1503& ' Fin de los códigos de error del registro de sucesos ' //////////////////////////////// ' // ' Códigos de estado de RPC // ' // ' //////////////////////////////// ' El enlace de la cadena no es válido. Const RPC_S_INVALID_STRING_BINDING = 1700& ' El controlador de enlaces no es del tipo correcto. Const RPC_S_WRONG_KIND_OF_BINDING = 1701& ' El controlador de enlaces no es válido. Const RPC_S_INVALID_BINDING = 1702& ' La secuencia del protocolo RPC no es compatible. Const RPC_S_PROTSEQ_NOT_SUPPORTED = 1703& ' La secuencia del protocolo RPC no es válida. Const RPC_S_INVALID_RPC_PROTSEQ = 1704& ' El identificador único universal (UUID) de cadenas no es válido. Const RPC_S_INVALID_STRING_UUID = 1705& ' El formato del punto final no es válido. Const RPC_S_INVALID_ENDPOINT_FORMAT = 1706& ' La dirección de red no es válida. Const RPC_S_INVALID_NET_ADDR = 1707& ' No se encontró ningún punto final. Const RPC_S_NO_ENDPOINT_FOUND = 1708& ' El valor de tiempo de espera no es válido. Const RPC_S_INVALID_TIMEOUT = 1709& ' No se encontró el identificador único universal (UUID) de objetos. Const RPC_S_OBJECT_NOT_FOUND = 1710& ' El identificador único universal (UUID) de objetos ya se ha registrado. Const RPC_S_ALREADY_REGISTERED = 1711& ' El identificador único universal (UUID) de tipos ya se ha registrado. Const RPC_S_TYPE_ALREADY_REGISTERED = 1712& ' El servidor RPC ya está en espera. Const RPC_S_ALREADY_LISTENING = 1713& ' No se han registrado secuencias de protocolo. Const RPC_S_NO_PROTSEQS_REGISTERED = 1714& ' El servidor RPC no está en espera. Const RPC_S_NOT_LISTENING = 1715& ' Tipo de administrador desconocido. Const RPC_S_UNKNOWN_MGR_TYPE = 1716& ' Interfaz desconocida. Const RPC_S_UNKNOWN_IF = 1717& ' No hay enlaces. Const RPC_S_NO_BINDINGS = 1718& ' No hay secuencias de protocolo. Const RPC_S_NO_PROTSEQS = 1719& ' Imposible crear el punto final. Const RPC_S_CANT_CREATE_ENDPOINT = 1720& ' No hay recursos suficientes disponibles para completar esta operación. Const RPC_S_OUT_OF_RESOURCES = 1721& ' El servidor RPC no está disponible. Const RPC_S_SERVER_UNAVAILABLE = 1722& ' El servidor RPC está demasiado ocupado para completar esta operación. Const RPC_S_SERVER_TOO_BUSY = 1723& ' Las opciones de red no son válidas. Const RPC_S_INVALID_NETWORK_OPTIONS = 1724& ' No hay una llamada activa a procedimiento remoto en este subproceso. Const RPC_S_NO_CALL_ACTIVE = 1725& ' Falló la llamada a procedimiento remoto. Const RPC_S_CALL_FAILED = 1726& ' La llamada a procedimiento remoto falló y no se ha ejecutado. Const RPC_S_CALL_FAILED_DNE = 1727& ' Se ha producido un error de protocolo de llamada a procedimiento remoto (RPC). Const RPC_S_PROTOCOL_ERROR = 1728& ' El servidor RPC no admite la sintaxis de transferencia. Const RPC_S_UNSUPPORTED_TRANS_SYN = 1730& ' El tipo de identificador único universal (UUID) no es compatible. Const RPC_S_UNSUPPORTED_TYPE = 1732& ' La etiqueta no es válida. Const RPC_S_INVALID_TAG = 1733& ' Los límites de la matriz no son válidos. Const RPC_S_INVALID_BOUND = 1734& ' El enlace no contiene un nombre de entrada. Const RPC_S_NO_ENTRY_NAME = 1735& ' La sintaxis del nombre no es válida. Const RPC_S_INVALID_NAME_SYNTAX = 1736& ' La sintaxis del nombre no es compatible. Const RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737& ' No hay ninguna dirección de red disponible para generar un ' identificador único universal (UUID). Const RPC_S_UUID_NO_ADDRESS = 1739& ' El punto final es un duplicado. Const RPC_S_DUPLICATE_ENDPOINT = 1740& ' Tipo de autentificación desconocido. Const RPC_S_UNKNOWN_AUTHN_TYPE = 1741& ' El número máximo de llamadas es demasiado reducido. Const RPC_S_MAX_CALLS_TOO_SMALL = 1742& ' La cadena es demasiado larga. Const RPC_S_STRING_TOO_LONG = 1743& ' No se encontró la secuencia del protocolo RPC. Const RPC_S_PROTSEQ_NOT_FOUND = 1744& ' El número de procedimiento está fuera del intervalo. Const RPC_S_PROCNUM_OUT_OF_RANGE = 1745& ' El enlace no contiene información de autentificación. Const RPC_S_BINDING_HAS_NO_AUTH = 1746& ' Servicio de autentificación desconocido. Const RPC_S_UNKNOWN_AUTHN_SERVICE = 1747& ' Nivel de autentificación desconocido. Const RPC_S_UNKNOWN_AUTHN_LEVEL = 1748& ' El contexto de seguridad no es válido. Const RPC_S_INVALID_AUTH_IDENTITY = 1749& ' Servicio de autorización desconocido. Const RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750& ' La entrada no es válida. Const EPT_S_INVALID_ENTRY = 1751& ' El punto final del servidor no puede realizar la operación. Const EPT_S_CANT_PERFORM_OP = 1752& ' No hay más puntos finales disponibles en el asignador de puntos finales. Const EPT_S_NOT_REGISTERED = 1753& ' No se ha exportado ninguna interfaz. Const RPC_S_NOTHING_TO_EXPORT = 1754& ' El nombre de la entrada está incompleto. Const RPC_S_INCOMPLETE_NAME = 1755& ' La opción de la versión no es válida. Const RPC_S_INVALID_VERS_OPTION = 1756& ' No hay más miembros. Const RPC_S_NO_MORE_MEMBERS = 1757& ' No hay nada que desexportar. Const RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758& ' No se encontró la interfaz. Const RPC_S_INTERFACE_NOT_FOUND = 1759& ' La entrada ya existe. Const RPC_S_ENTRY_ALREADY_EXISTS = 1760& ' No se encontró la entrada. Const RPC_S_ENTRY_NOT_FOUND = 1761& ' Nombre de servicio no disponible. Const RPC_S_NAME_SERVICE_UNAVAILABLE = 1762& ' La familia de direcciones de red no es válida. Const RPC_S_INVALID_NAF_ID = 1763& ' La operación solicitada no es compatible. Const RPC_S_CANNOT_SUPPORT = 1764& ' No hay ningún contexto de seguridad disponible para permitir la representación. Const RPC_S_NO_CONTEXT_AVAILABLE = 1765& ' Error interno en una llamada a procedimiento remoto (RPC). Const RPC_S_INTERNAL_ERROR = 1766& ' El servidor RPC intentó dividir un entero entre cero. Const RPC_S_ZERO_DIVIDE = 1767& ' Error de direccionamiento en el servidor RPC. Const RPC_S_ADDRESS_ERROR = 1768& ' Una operación de punto flotante causó una división ' entre cero en el servidor RPC. Const RPC_S_FP_DIV_ZERO = 1769& ' Se ha producido un desbordamiento de límite inferior a ' causa de un punto flotante en el servidor RPC. Const RPC_S_FP_UNDERFLOW = 1770& ' Se ha producido un desbordamiento de límite superior a ' causa de un punto flotante en el servidor RPC. Const RPC_S_FP_OVERFLOW = 1771& ' Se ha agotado la lista de servidores RPC disponibles para ' el enlace de auto-controladores. Const RPC_X_NO_MORE_ENTRIES = 1772& ' Imposible abrir el archivo de la tabla de conversión de caracteres. Const RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773& ' El archivo que contiene la tabla de conversión de caracteres ' tiene menos de 512 bytes. Const RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774& ' Se ha pasado un controlador de contexto nulo del cliente al ' host durante una llamada a procedimiento remoto. Const RPC_X_SS_IN_NULL_CONTEXT = 1775& ' El controlador de contexto cambió durante una llamada a ' procedimiento remoto. Const RPC_X_SS_CONTEXT_DAMAGED = 1777& ' Los controladores de enlace pasados a una llamada a ' procedimiento remoto no coinciden. Const RPC_X_SS_HANDLES_MISMATCH = 1778& ' La etiqueta no pudo obtener el controlador de llamada a ' procedimiento remoto. Const RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779& ' Se ha pasado un puntero de referencia nulo a la etiqueta. Const RPC_X_NULL_REF_POINTER = 1780& ' El valor de enumeración está fuera del intervalo. Const RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781& ' El recuento de bytes es demasiado bajo. Const RPC_X_BYTE_COUNT_TOO_SMALL = 1782& ' La etiqueta recibió datos erróneos. Const RPC_X_BAD_STUB_DATA = 1783& ' El búfer de usuario proporcionado no es válido para la operación solicitada. Const ERROR_INVALID_USER_BUFFER = 1784& ' No se reconoce el medio de disco. Puede que no esté formateado. Const ERROR_UNRECOGNIZED_MEDIA = 1785& ' No se ha confiado ningún secreto a la estación de trabajo. Const ERROR_NO_TRUST_LSA_SECRET = 1786& ' La base de datos SAM de Windows NT Advanced Server no tiene cuenta ' de PC para esta relación de confianza con la estación de trabajo. Const ERROR_NO_TRUST_SAM_ACCOUNT = 1787& ' Falló la relación de confianza entre el dominio principal y el ' dominio de confianza. Const ERROR_TRUSTED_DOMAIN_FAILURE = 1788& ' Falló la relación de confianza entre esta estación de trabajo ' y el dominio principal. Const ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789& ' Falló el inicio de sesión en red. Const ERROR_TRUST_FAILURE = 1790& ' Ya se está efectuando una llamada a procedimiento remoto para este subproceso. Const RPC_S_CALL_IN_PROGRESS = 1791& ' Se ha intentado iniciar la sesión, pero el servicio de inicio de ' sesión en red no estaba iniciado. Const ERROR_NETLOGON_NOT_STARTED = 1792& ' Ha caducado la cuenta del usuario. Const ERROR_ACCOUNT_EXPIRED = 1793& ' El redirector está en uso y no se puede descargar. Const ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794& ' El controlador de impresora especificado ya está instalado. Const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795& ' Puerto especificado desconocido. Const ERROR_UNKNOWN_PORT = 1796& ' Controlador de impresora desconocido. Const ERROR_UNKNOWN_PRINTER_DRIVER = 1797& ' Procesador de impresión desconocido. Const ERROR_UNKNOWN_PRINTPROCESSOR = 1798& ' El archivo separador especificado no es válido. Const ERROR_INVALID_SEPARATOR_FILE = 1799& ' La prioridad especificada no es válida. Const ERROR_INVALID_PRIORITY = 1800& ' El nombre de impresora no es válido. Const ERROR_INVALID_PRINTER_NAME = 1801& ' La impresora ya existe. Const ERROR_PRINTER_ALREADY_EXISTS = 1802& ' El comando de impresora no es válido. Const ERROR_INVALID_PRINTER_COMMAND = 1803& ' El tipo de datos especificado no es válido. Const ERROR_INVALID_DATATYPE = 1804& ' El entorno especificado no es válido. Const ERROR_INVALID_ENVIRONMENT = 1805& ' No hay más enlaces. Const RPC_S_NO_MORE_BINDINGS = 1806& ' La cuenta utilizada es una cuenta de confianza entre dominios. Use la ' cuenta de usuario global o la cuenta de usuario local para tener ' acceso a este servidor. Const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807& ' La cuenta utilizada es una cuenta de PC. Use la cuenta de usuario global ' o la cuenta de usuario local para tener acceso a este servidor. Const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808& ' La cuenta utilizada es una cuenta de confianza de servidor. Use la ' cuenta de usuario global o la cuenta de usuario local para tener ' acceso a este servidor. Const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809& ' El nombre o el Id. de seguridad (SID) del dominio especificado no es coherente ' con la información de confianza para ese dominio. Const ERROR_DOMAIN_TRUST_INCONSISTENT = 1810& ' El servidor está en uso y no se puede descargar. Const ERROR_SERVER_HAS_OPEN_HANDLES = 1811& ' El archivo de imagen especificado no contenía una sección de recursos. Const ERROR_RESOURCE_DATA_NOT_FOUND = 1812& ' No se puede encontrar el tipo de recurso especificado en el archivo de imagen. Const ERROR_RESOURCE_TYPE_NOT_FOUND = 1813& ' No se puede encontrar el nombre de recurso especificado en el archivo de imagen. Const ERROR_RESOURCE_NAME_NOT_FOUND = 1814& ' No se puede encontrar el Id. de idioma del recurso especificado en el archivo de imagen. Const ERROR_RESOURCE_LANG_NOT_FOUND = 1815& ' No hay cuota suficiente para procesar este comando. Const ERROR_NOT_ENOUGH_QUOTA = 1816& ' No se encontró el miembro del grupo. Const RPC_S_GROUP_MEMBER_NOT_FOUND = 1898& ' Imposible crear la base de datos del asignador de puntos finales. Const EPT_S_CANT_CREATE = 1899& ' El identificador único universal (UUID) de objetos es el UUID nulo. Const RPC_S_INVALID_OBJECT = 1900& ' La hora especificada no es válida. Const ERROR_INVALID_TIME = 1901& ' El nombre de formulario especificado no es válido. Const ERROR_INVALID_FORM_NAME = 1902& ' El tamaño de formulario especificado no es válido Const ERROR_INVALID_FORM_SIZE = 1903& ' Ya se está esperando al controlador de impresora especificado Const ERROR_ALREADY_WAITING = 1904& ' Se ha eliminado la impresora especificada Const ERROR_PRINTER_DELETED = 1905& ' El estado de la impresora no es válido Const ERROR_INVALID_PRINTER_STATE = 1906& ' No está disponible en este momento la lista de servidores para este grupo de trabajo Const ERROR_NO_BROWSER_SERVERS_FOUND = 6118& ' ------------------------- ' Sección MMSystem ' ------------------------- ' En esta sección se define toda la ayuda técnica para las aplicaciones Multimedia. ' constantes generales Const MAXPNAMELEN = 32 ' longitud máx. del nombre del producto (incluido NULL) Const MAXERRORLENGTH = 128 ' longitud máx. del texto de error (incluido NULL final) Type smpte hour As Byte min As Byte sec As Byte frame As Byte fps As Byte dummy As Byte pad(2) As Byte End Type Type midi songptrpos As Long End Type Type MMTIME wType As Long u As Long End Type ' Valores para el campo wType en la estructura MMTIME Const TIME_MS = &H1 ' hora en milisegundos Const TIME_SAMPLES = &H2 ' número de muestras de ondas Const TIME_BYTES = &H4 ' desplazamiento de bytes actual Const TIME_SMPTE = &H8 ' hora SMPTE Const TIME_MIDI = &H10 ' hora MIDI ' Mensajes de ventana multimedia Const MM_JOY1MOVE = &H3A0 ' joystick Const MM_JOY2MOVE = &H3A1 Const MM_JOY1ZMOVE = &H3A2 Const MM_JOY2ZMOVE = &H3A3 Const MM_JOY1BUTTONDOWN = &H3B5 Const MM_JOY2BUTTONDOWN = &H3B6 Const MM_JOY1BUTTONUP = &H3B7 Const MM_JOY2BUTTONUP = &H3B8 Const MM_MCINOTIFY = &H3B9 ' MCI Const MM_MCISYSTEM_STRING = &H3CA Const MM_WOM_OPEN = &H3BB ' salida de forma de onda Const MM_WOM_CLOSE = &H3BC Const MM_WOM_DONE = &H3BD Const MM_WIM_OPEN = &H3BE ' entrada de forma de onda Const MM_WIM_CLOSE = &H3BF Const MM_WIM_DATA = &H3C0 Const MM_MIM_OPEN = &H3C1 ' entrada MIDI Const MM_MIM_CLOSE = &H3C2 Const MM_MIM_DATA = &H3C3 Const MM_MIM_LONGDATA = &H3C4 Const MM_MIM_ERROR = &H3C5 Const MM_MIM_LONGERROR = &H3C6 Const MM_MOM_OPEN = &H3C7 ' salida MIDI Const MM_MOM_CLOSE = &H3C8 Const MM_MOM_DONE = &H3C9 ' Bases de números de recursos de cadena (uso interno) Const MMSYSERR_BASE = 0 Const WAVERR_BASE = 32 Const MIDIERR_BASE = 64 Const TIMERR_BASE = 96 ' era 128; se cambió para que coincidiera con Win 31 Sonic Const JOYERR_BASE = 160 Const MCIERR_BASE = 256 Const MCI_STRING_OFFSET = 512 ' si se cambia este número, TIENE que ' modificar la lista MCI_DEVTYPE_... que está más abajo Const MCI_VD_OFFSET = 1024 Const MCI_CD_OFFSET = 1088 Const MCI_WAVE_OFFSET = 1152 Const MCI_SEQ_OFFSET = 1216 ' Valores de retorno de los errores generales Const MMSYSERR_NOERROR = 0 ' ningún error Const MMSYSERR_ERROR = (MMSYSERR_BASE + 1) ' error no especificado Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2) ' Id. de dispositivo fuera del intervalo Const MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3) ' fallo en dispositivo: activar Const MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4) ' dispositivo ya asignado Const MMSYSERR_INVALHANDLE = (MMSYSERR_BASE + 5) ' controlador de dispositivo no válido Const MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6) ' no está presente el controlador de dispositivo Const MMSYSERR_NOMEM = (MMSYSERR_BASE + 7) ' error de asignación de memoria Const MMSYSERR_NOTSUPPORTED = (MMSYSERR_BASE + 8) ' función no compatible Const MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9) ' valor de error fuera del intervalo Const MMSYSERR_INVALFLAG = (MMSYSERR_BASE + 10) ' pasado indicador no válido Const MMSYSERR_INVALPARAM = (MMSYSERR_BASE + 11) ' pasado parámetro no válido Const MMSYSERR_HANDLEBUSY = (MMSYSERR_BASE + 12) ' el controlador se está usando ' simultáneamente en otro subproceso ' (por ejemplo, devolución de llamada) Const MMSYSERR_INVALIDALIAS = (MMSYSERR_BASE + 13) ' "Alias especificado no encontrado en WIN.INI Const MMSYSERR_LASTERROR = (MMSYSERR_BASE + 13) ' último error del intervalo Const MM_MOM_POSITIONCB = &H3CA ' Devolución de llamada para MEVT_POSITIONCB Const MM_MCISIGNAL = &H3CB Const MM_MIM_MOREDATA = &H3CC ' MIM_DONE con eventos pendientes Const MIDICAPS_STREAM = &H8 ' el controlador admite midiStreamOut directamente Type MIDIEVENT dwDeltaTime As Long ' Marcas desde el último evento dwStreamID As Long ' Reservado; tiene que ser cero dwEvent As Long ' Tipo y parámetros del evento dwParms(1) As Long ' Parámetros si es un evento Long End Type Type MIDISTRMBUFFVER dwVersion As Long ' Versión del formato del búfer de transferencia dwMid As Long ' Id. del fabricante definido en MMREG.H dwOEMVersion As Long ' Versión del fabricante para las ampliaciones End Type ' Códigos de tipos que van en el byte superior del evento DWORD de un búfer de transferencia ' Los códigos de tipos 00-7F contienen parámetros que se encuentran en los 24 bits inferiores ' Los códigos de tipos 80-FF contienen una longitud de su parámetro en los 24 bits inferiores, ' seguida por sus datos de parámetro en el búfer. El evento DWORD contiene la longitud ' de byte exacta; hay que poner caracteres de relleno en los datos del parámetro ' para que sea un par con longitud múltiplo de 4 bytes. ' Const MEVT_F_SHORT = &H0& Const MEVT_F_LONG = &H80000000 Const MEVT_F_CALLBACK = &H40000000 Const MIDISTRM_ERROR = -2 ' ' Estructuras y definiciones para midiStreamProperty ' Const MIDIPROP_SET = &H80000000 Const MIDIPROP_GET = &H40000000 ' Ambos son distintos de cero intencionalmente para que la aplicación no pueda abandonar ' la operación accidentalmente y parezca que está trabajando debido a una acción ' predeterminada. Const MIDIPROP_TIMEDIV = &H1& Const MIDIPROP_TEMPO = &H2& Type MIDIPROPTIMEDIV cbStruct As Long dwTimeDiv As Long End Type Type MIDIPROPTEMPO cbStruct As Long dwTempo As Long End Type ' Prototipos de funciones MIDI * ' *************************************************************************** ' Compatibilidad del mezclador ' ************************************************************************** Const MIXER_SHORT_NAME_CHARS = 16 Const MIXER_LONG_NAME_CHARS = 64 ' ' Valores de retorno de error MMRESULT específicos de la API del mezclador ' ' Const MIXERR_BASE = 1024 Const MIXERR_INVALLINE = (MIXERR_BASE + 0) Const MIXERR_INVALCONTROL = (MIXERR_BASE + 1) Const MIXERR_INVALVALUE = (MIXERR_BASE + 2) Const MIXERR_LASTERROR = (MIXERR_BASE + 2) Const MIXER_OBJECTF_HANDLE = &H80000000 Const MIXER_OBJECTF_MIXER = &H0& Const MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIXER) Const MIXER_OBJECTF_WAVEOUT = &H10000000 Const MIXER_OBJECTF_HWAVEOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEOUT) Const MIXER_OBJECTF_WAVEIN = &H20000000 Const MIXER_OBJECTF_HWAVEIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEIN) Const MIXER_OBJECTF_MIDIOUT = &H30000000 Const MIXER_OBJECTF_HMIDIOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIOUT) Const MIXER_OBJECTF_MIDIIN = &H40000000 Const MIXER_OBJECTF_HMIDIIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIIN) Const MIXER_OBJECTF_AUX = &H50000000 Declare Function mixerGetNumDevs Lib "winmm.dll" Alias "mixerGetNumDevs" () As Long Type MIXERCAPS wMid As Integer ' id. del fabricante wPid As Integer ' id. del producto vDriverVersion As Long ' versión del controlador szPname As String * MAXPNAMELEN ' nombre del producto fdwSupport As Long ' bits de soporte de uso general cDestinations As Long ' recuento de destinos End Type Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" (ByVal uMxId As Long, ByVal pmxcaps As MIXERCAPS, ByVal cbmxcaps As Long) As Long Declare Function mixerOpen Lib "winmm.dll" Alias "mixerOpen" (phmx As Long, ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long Declare Function mixerClose Lib "winmm.dll" Alias "mixerClose" (ByVal hmx As Long) As Long Declare Function mixerMessage Lib "winmm.dll" Alias "mixerMessage" (ByVal hmx As Long, ByVal uMsg As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Long) As Long Type Target ' para usarlo en MIXERLINE y otros (estructura incrustada) dwType As Long ' MIXERLINE_TARGETTYPE_xxxx dwDeviceID As Long ' id. de dispositivo de destino del tipo de dispositivo wMid As Integer ' del dispositivo de destino wPid As Integer ' " vDriverVersion As Long ' " szPname As String * MAXPNAMELEN End Type Type MIXERLINE cbStruct As Long ' tamaño de la estructura MIXERLINE dwDestination As Long ' índice de destino con base cero dwSource As Long ' índice de origen con base cero (si hay origen) dwLineID As Long ' id. de línea única para el dispositivo mezclador fdwLine As Long ' estado e información sobre la línea dwUser As Long ' información específica del controlador dwComponentType As Long ' la línea de tipo del componente se conecta a cChannels As Long ' número de canales que admite la línea cConnections As Long ' número de conexiones (posibles) cControls As Long ' número de controles que hay en esta línea szShortName As String * MIXER_SHORT_NAME_CHARS szName As String * MIXER_LONG_NAME_CHARS tTarget As Target End Type ' MIXERLINE.fdwLine Const MIXERLINE_LINEF_ACTIVE = &H1& Const MIXERLINE_LINEF_DISCONNECTED = &H8000& Const MIXERLINE_LINEF_SOURCE = &H80000000 ' MIXERLINE.dwComponentType ' tipos de componentes para destinos y orígenes Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0& Const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0) Const MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1) Const MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2) Const MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3) Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4) Const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5) Const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6) Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7) Const MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8) Const MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8) Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000& Const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0) Const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1) Const MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2) Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3) Const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4) Const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5) Const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6) Const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7) Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8) Const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9) Const MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10) Const MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10) ' ' MIXERLINE.Target.dwType ' ' Const MIXERLINE_TARGETTYPE_UNDEFINED = 0 Const MIXERLINE_TARGETTYPE_WAVEOUT = 1 Const MIXERLINE_TARGETTYPE_WAVEIN = 2 Const MIXERLINE_TARGETTYPE_MIDIOUT = 3 Const MIXERLINE_TARGETTYPE_MIDIIN = 4 Const MIXERLINE_TARGETTYPE_AUX = 5 Declare Function mixerGetLineInfo Lib "winmm.dll" Alias "mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long Const MIXER_GETLINEINFOF_DESTINATION = &H0& Const MIXER_GETLINEINFOF_SOURCE = &H1& Const MIXER_GETLINEINFOF_LINEID = &H2& Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3& Const MIXER_GETLINEINFOF_TARGETTYPE = &H4& Const MIXER_GETLINEINFOF_QUERYMASK = &HF& Declare Function mixerGetID Lib "winmm.dll" Alias "mixerGetID" (ByVal hmxobj As Long, pumxID As Long, ByVal fdwId As Long) As Long ' MIXERCONTROL Type MIXERCONTROL cbStruct As Long ' tamaño en bytes de MIXERCONTROL dwControlID As Long ' id. exclusivo del control para el dispositivo mezclador dwControlType As Long ' MIXERCONTROL_CONTROLTYPE_xxx fdwControl As Long ' MIXERCONTROL_CONTROLF_xxx cMultipleItems As Long ' si se establece MIXERCONTROL_CONTROLF_MULTIPLE szShortName As String * MIXER_SHORT_NAME_CHARS szName As String * MIXER_LONG_NAME_CHARS Bounds(1 To 6) As Long ' Miembro más largo de la unión Bounds Metrics(1 To 6) As Long ' Miembro más largo de la unión Metrics End Type ' ' MIXERCONTROL.fdwControl Const MIXERCONTROL_CONTROLF_UNIFORM = &H1& Const MIXERCONTROL_CONTROLF_MULTIPLE = &H2& Const MIXERCONTROL_CONTROLF_DISABLED = &H80000000 ' Definiciones de los bloques de generación MIXERCONTROL_CONTROLTYPE_xxx Const MIXERCONTROL_CT_CLASS_MASK = &HF0000000 Const MIXERCONTROL_CT_CLASS_CUSTOM = &H0& Const MIXERCONTROL_CT_CLASS_METER = &H10000000 Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000 Const MIXERCONTROL_CT_CLASS_NUMBER = &H30000000 Const MIXERCONTROL_CT_CLASS_SLIDER = &H40000000 Const MIXERCONTROL_CT_CLASS_FADER = &H50000000 Const MIXERCONTROL_CT_CLASS_TIME = &H60000000 Const MIXERCONTROL_CT_CLASS_LIST = &H70000000 Const MIXERCONTROL_CT_SUBCLASS_MASK = &HF000000 Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0& Const MIXERCONTROL_CT_SC_SWITCH_BUTTON = &H1000000 Const MIXERCONTROL_CT_SC_METER_POLLED = &H0& Const MIXERCONTROL_CT_SC_TIME_MICROSECS = &H0& Const MIXERCONTROL_CT_SC_TIME_MILLISECS = &H1000000 Const MIXERCONTROL_CT_SC_LIST_SINGLE = &H0& Const MIXERCONTROL_CT_SC_LIST_MULTIPLE = &H1000000 Const MIXERCONTROL_CT_UNITS_MASK = &HFF0000 Const MIXERCONTROL_CT_UNITS_CUSTOM = &H0& Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000 Const MIXERCONTROL_CT_UNITS_SIGNED = &H20000 Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000 Const MIXERCONTROL_CT_UNITS_DECIBELS = &H40000 ' in 10ths Const MIXERCONTROL_CT_UNITS_PERCENT = &H50000 ' in 10ths ' ' Tipos de controles que se suelen usar para especificar MIXERCONTROL.dwControlType ' Const MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM Or MIXERCONTROL_CT_UNITS_CUSTOM) Const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_BOOLEAN) Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_SIGNED) Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1) Const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_UNSIGNED) Const MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or MIXERCONTROL_CT_UNITS_BOOLEAN) Const MIXERCONTROL_CONTROLTYPE_ONOFF = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1) Const MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2) Const MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3) Const MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4) Const MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5) Const MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BUTTON Or MIXERCONTROL_CT_UNITS_BOOLEAN) Const MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_DECIBELS) Const MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_SIGNED) Const MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_UNSIGNED) Const MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_PERCENT) Const MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER Or MIXERCONTROL_CT_UNITS_SIGNED) Const MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 1) Const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 2) Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED) Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1) Const MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER + 2) Const MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER + 3) Const MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER + 4) Const MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_SINGLE Or MIXERCONTROL_CT_UNITS_BOOLEAN) Const MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1) Const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_MULTIPLE Or MIXERCONTROL_CT_UNITS_BOOLEAN) Const MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1) Const MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MICROSECS Or MIXERCONTROL_CT_UNITS_UNSIGNED) Const MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MILLISECS Or MIXERCONTROL_CT_UNITS_UNSIGNED) ' ' MIXERLINECONTROLS ' Type MIXERLINECONTROLS cbStruct As Long ' tamaño en bytes de MIXERLINECONTROLS dwLineID As Long ' id. de línea (desde MIXERLINE.dwLineID) ' MIXER_GETLINECONTROLSF_ONEBYID o dwControl As Long ' MIXER_GETLINECONTROLSF_ONEBYTYPE cControls As Long ' recuento de puntos pmxctrl de los controles para cbmxctrl As Long ' el tamaño en bytes de _un_ MIXERCONTROL pamxctrl As MIXERCONTROL ' puntero a la primera matriz MIXERCONTROL End Type Declare Function mixerGetLineControls Lib "winmm.dll" Alias "mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As MIXERLINECONTROLS, ByVal fdwControls As Long) As Long Const MIXER_GETLINECONTROLSF_ALL = &H0& Const MIXER_GETLINECONTROLSF_ONEBYID = &H1& Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2& Const MIXER_GETLINECONTROLSF_QUERYMASK = &HF& Type MIXERCONTROLDETAILS cbStruct As Long ' tamaño en bytes de MIXERCONTROLDETAILS dwControlID As Long ' id. del control para obtener/establecer detalles sobre cChannels As Long ' número de canales contenidos en la matriz paDetails item As Long ' hwndOwner o cMultipleItems cbDetails As Long ' tamaño de la estructura de_un_detalle_XX paDetails As Long ' puntero que indica una matriz de estructuras de los detalles_XX End Type ' MIXER_GETCONTROLDETAILSF_LISTTEXT Type MIXERCONTROLDETAILS_LISTTEXT dwParam1 As Long dwParam2 As Long szName As String * MIXER_LONG_NAME_CHARS End Type ' MIXER_GETCONTROLDETAILSF_VALUE Type MIXERCONTROLDETAILS_BOOLEAN fValue As Long End Type Type MIXERCONTROLDETAILS_SIGNED lValue As Long End Type Type MIXERCONTROLDETAILS_UNSIGNED dwValue As Long End Type Declare Function mixerGetControlDetails Lib "winmm.dll" Alias "mixerGetControlDetailsA" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long Const MIXER_GETCONTROLDETAILSF_VALUE = &H0& Const MIXER_GETCONTROLDETAILSF_LISTTEXT = &H1& Const MIXER_GETCONTROLDETAILSF_QUERYMASK = &HF& Declare Function mixerSetControlDetails Lib "winmm.dll" Alias "mixerSetControlDetails" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long Const MIXER_SETCONTROLDETAILSF_VALUE = &H0& Const MIXER_SETCONTROLDETAILSF_CUSTOM = &H1& Const MIXER_SETCONTROLDETAILSF_QUERYMASK = &HF& ' constantes que se usan con JOYINFOEX Const JOY_BUTTON5 = &H10& Const JOY_BUTTON6 = &H20& Const JOY_BUTTON7 = &H40& Const JOY_BUTTON8 = &H80& Const JOY_BUTTON9 = &H100& Const JOY_BUTTON10 = &H200& Const JOY_BUTTON11 = &H400& Const JOY_BUTTON12 = &H800& Const JOY_BUTTON13 = &H1000& Const JOY_BUTTON14 = &H2000& Const JOY_BUTTON15 = &H4000& Const JOY_BUTTON16 = &H8000& Const JOY_BUTTON17 = &H10000 Const JOY_BUTTON18 = &H20000 Const JOY_BUTTON19 = &H40000 Const JOY_BUTTON20 = &H80000 Const JOY_BUTTON21 = &H100000 Const JOY_BUTTON22 = &H200000 Const JOY_BUTTON23 = &H400000 Const JOY_BUTTON24 = &H800000 Const JOY_BUTTON25 = &H1000000 Const JOY_BUTTON26 = &H2000000 Const JOY_BUTTON27 = &H4000000 Const JOY_BUTTON28 = &H8000000 Const JOY_BUTTON29 = &H10000000 Const JOY_BUTTON30 = &H20000000 Const JOY_BUTTON31 = &H40000000 Const JOY_BUTTON32 = &H80000000 ' constantes que se usan con la estructura JOYINFOEX Const JOY_POVCENTERED = -1 Const JOY_POVFORWARD = 0 Const JOY_POVRIGHT = 9000 Const JOY_POVBACKWARD = 18000 Const JOY_POVLEFT = 27000 Const JOY_RETURNX = &H1& Const JOY_RETURNY = &H2& Const JOY_RETURNZ = &H4& Const JOY_RETURNR = &H8& Const JOY_RETURNU = &H10 ' eje 5 Const JOY_RETURNV = &H20 ' eje 6 Const JOY_RETURNPOV = &H40& Const JOY_RETURNBUTTONS = &H80& Const JOY_RETURNRAWDATA = &H100& Const JOY_RETURNPOVCTS = &H200& Const JOY_RETURNCENTERED = &H400& Const JOY_USEDEADZONE = &H800& Const JOY_RETURNALL = (JOY_RETURNX Or JOY_RETURNY Or JOY_RETURNZ Or JOY_RETURNR Or JOY_RETURNU Or JOY_RETURNV Or JOY_RETURNPOV Or JOY_RETURNBUTTONS) Const JOY_CAL_READALWAYS = &H10000 Const JOY_CAL_READXYONLY = &H20000 Const JOY_CAL_READ3 = &H40000 Const JOY_CAL_READ4 = &H80000 Const JOY_CAL_READXONLY = &H100000 Const JOY_CAL_READYONLY = &H200000 Const JOY_CAL_READ5 = &H400000 Const JOY_CAL_READ6 = &H800000 Const JOY_CAL_READZONLY = &H1000000 Const JOY_CAL_READRONLY = &H2000000 Const JOY_CAL_READUONLY = &H4000000 Const JOY_CAL_READVONLY = &H8000000 Declare Function joyGetPos Lib "winmm.dll" Alias "joyGetPos" (ByVal uJoyID As Long, pji As JOYINFO) As Long Declare Function joyGetPosEx Lib "winmm.dll" Alias "joyGetPosEx" (ByVal uJoyID As Long, pji As JOYINFOEX) As Long Const WAVE_FORMAT_QUERY = &H1 Const SND_PURGE = &H40 ' depura los eventos no estáticos para la tarea Const SND_APPLICATION = &H80 ' busca la asociación específica de la aplicación Const WAVE_MAPPED = &H4 Const WAVE_FORMAT_DIRECT = &H8 Const WAVE_FORMAT_DIRECT_QUERY = (WAVE_FORMAT_QUERY Or WAVE_FORMAT_DIRECT) Const MIM_MOREDATA = MM_MIM_MOREDATA Const MOM_POSITIONCB = MM_MOM_POSITIONCB ' flags for dwFlags parm of midiInOpen() Const MIDI_IO_STATUS = &H20& Declare Function midiStreamOpen Lib "winmm.dll" Alias "midiStreamOpen" (phms As Long, puDeviceID As Long, ByVal cMidi As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long Declare Function midiStreamClose Lib "winmm.dll" Alias "midiStreamClose" (ByVal hms As Long) As Long Declare Function midiStreamProperty Lib "winmm.dll" Alias "midiStreamProperty" (ByVal hms As Long, lppropdata As Byte, ByVal dwProperty As Long) As Long Declare Function midiStreamPosition Lib "winmm.dll" Alias "midiStreamPosition" (ByVal hms As Long, lpmmt As MMTIME, ByVal cbmmt As Long) As Long Declare Function midiStreamOut Lib "winmm.dll" Alias "midiStreamOut" (ByVal hms As Long, pmh As MIDIHDR, ByVal cbmh As Long) As Long Declare Function midiStreamPause Lib "winmm.dll" Alias "midiStreamPause" (ByVal hms As Long) As Long Declare Function midiStreamRestart Lib "winmm.dll" Alias "midiStreamRestart" (ByVal hms As Long) As Long Declare Function midiStreamStop Lib "winmm.dll" Alias "midiStreamStop" (ByVal hms As Long) As Long Declare Function midiConnect Lib "winmm.dll" Alias "midiConnect" (ByVal hmi As Long, ByVal hmo As Long, pReserved As Any) As Long Declare Function midiDisconnect Lib "winmm.dll" Alias "midiDisconnect" (ByVal hmi As Long, ByVal hmo As Long, pReserved As Any) As Long Type JOYINFOEX dwSize As Long ' tamaño de la estructura dwFlags As Long ' indicadores de lo que hay que devolver dwXpos As Long ' posición x dwYpos As Long ' posición y dwZpos As Long ' posición z dwRpos As Long ' timón/posición del 4º eje dwUpos As Long ' posición del 5º eje dwVpos As Long ' posición del 6º eje dwButtons As Long ' estado de los botones dwButtonNumber As Long ' número del botón que está presionado ahora dwPOV As Long ' estado del punto de vista dwReserved1 As Long ' reservado para la comunicación del controlador winmm dwReserved2 As Long ' reservado para expansión futura End Type ' Compatibilidad del controlador instalable ' Mensajes del controlador Const DRV_LOAD = &H1 Const DRV_ENABLE = &H2 Const DRV_OPEN = &H3 Const DRV_CLOSE = &H4 Const DRV_DISABLE = &H5 Const DRV_FREE = &H6 Const DRV_CONFIGURE = &H7 Const DRV_QUERYCONFIGURE = &H8 Const DRV_INSTALL = &H9 Const DRV_REMOVE = &HA Const DRV_EXITSESSION = &HB Const DRV_POWER = &HF Const DRV_RESERVED = &H800 Const DRV_USER = &H4000 Type DRVCONFIGINFO dwDCISize As Long lpszDCISectionName As String lpszDCIAliasName As String dnDevNode As Long End Type ' Valores de retorno admitidos para el mensaje DRV_CONFIGURE Const DRVCNF_CANCEL = &H0 Const DRVCNF_OK = &H1 Const DRVCNF_RESTART = &H2 ' valores de retorno desde la función DriverProc() Const DRV_CANCEL = DRVCNF_CANCEL Const DRV_OK = DRVCNF_OK Const DRV_RESTART = DRVCNF_RESTART Declare Function CloseDriver Lib "winmm.dll" Alias "CloseDriver" (ByVal hDriver As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long Declare Function OpenDriver Lib "winmm.dll" Alias "OpenDriver" (ByVal szDriverName As String, ByVal szSectionName As String, ByVal lParam2 As Long) As Long Declare Function SendDriverMessage Lib "winmm.dll" Alias "SendDriverMessage" (ByVal hDriver As Long, ByVal message As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long Declare Function DrvGetModuleHandle Lib "winmm.dll" Alias "DrvGetModuleHandle" (ByVal hDriver As Long) As Long Declare Function GetDriverModuleHandle Lib "winmm.dll" Alias "GetDriverModuleHandle" (ByVal hDriver As Long) As Long Declare Function DefDriverProc Lib "winmm.dll" Alias "DefDriverProc" (ByVal dwDriverIdentifier As Long, ByVal hdrvr As Long, ByVal uMsg As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long Const DRV_MCI_FIRST = DRV_RESERVED Const DRV_MCI_LAST = DRV_RESERVED + &HFFF ' Compatibilidad de devolución de llamada del controlador ' indicadores que se usan con waveOutOpen(), waveInOpen(), midiInOpen() y ' midiOutOpen() para especificar el tipo del parámetro dwCallback. Const CALLBACK_TYPEMASK = &H70000 ' máscara del tipo de devolución de llamada Const CALLBACK_NULL = &H0 ' sin devolución de llamada Const CALLBACK_WINDOW = &H10000 ' dwCallback es un HWND Const CALLBACK_TASK = &H20000 ' dwCallback es un HTASK Const CALLBACK_FUNCTION = &H30000 ' dwCallback es un FARPROC ' Id. de los fabricantes Const MM_MICROSOFT = 1 ' Microsoft Corp. ' Id. de los productos Const MM_MIDI_MAPPER = 1 ' MIDI Mapper Const MM_WAVE_MAPPER = 2 ' Wave Mapper Const MM_SNDBLST_MIDIOUT = 3 ' puerto de salida MIDI de Sound Blaster Const MM_SNDBLST_MIDIIN = 4 ' puerto de entrada MIDI de Sound Blaster Const MM_SNDBLST_SYNTH = 5 ' sintetizador interno de Sound Blaster Const MM_SNDBLST_WAVEOUT = 6 ' salida de forma de onda de Sound Blaster Const MM_SNDBLST_WAVEIN = 7 ' entrada de forma de onda de Sound Blaster Const MM_ADLIB = 9 ' cualquier sintetizador compatible con Ad Lib Const MM_MPU401_MIDIOUT = 10 ' puerto de salida MIDI compatible con MPU401 Const MM_MPU401_MIDIIN = 11 ' puerto de entrada MIDI compatible con MPU401 Const MM_PC_JOYSTICK = 12 ' adaptador del joystick Declare Function mmsystemGetVersion Lib "winmm.dll" Alias "mmsystemGetVersion" () As Long Declare Sub OutputDebugStr Lib "winmm.dll" Alias "OutputDebugStr" (ByVal lpszOutputString As String) Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long ' valores de los indicadores para el parámetro uFlags Const SND_SYNC = &H0 ' reproducción síncrona (predeterminado) Const SND_ASYNC = &H1 ' reproducción asíncrona Const SND_NODEFAULT = &H2 ' silencio no predeterminado, si no se encuentra sonido Const SND_MEMORY = &H4 ' lpszSoundName apunta a un archivo de memoria Const SND_ALIAS = &H10000 ' el nombre es una entrada WIN.INI [sounds] Const SND_FILENAME = &H20000 ' el nombre es de archivo Const SND_RESOURCE = &H40004 ' el nombre es de recurso o átomo Const SND_ALIAS_ID = &H110000 ' el nombre es identificador de entrada de WIN.INI [sounds] Const SND_ALIAS_START = 0 ' debe ser > 4096 para guardar las cadenas en la misma sección del archivo de recursos Const SND_LOOP = &H8 ' bucle de sonido hasta el próximo sndPlaySound Const SND_NOSTOP = &H10 ' no detiene ningún sonido que se esté reproduciendo Const SND_VALID = &H1F ' indicadores válidos / ;Interno / Const SND_NOWAIT = &H2000 ' no espera si el controlador está ocupado Const SND_VALIDFLAGS = &H17201F ' Conjunto de bits de indicadores válidos. ' Cualquier valor que esté fuera de este intervalo produce un error Const SND_RESERVED = &HFF000000 ' Estos indicadores están reservados especialmente Const SND_TYPE_MASK = &H170007 Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long ' valores de retorno de los errores de audio de forma de onda Const WAVERR_BADFORMAT = (WAVERR_BASE + 0) ' formato de onda no compatible Const WAVERR_STILLPLAYING = (WAVERR_BASE + 1) ' todavía reproduce algo Const WAVERR_UNPREPARED = (WAVERR_BASE + 2) ' encabezado no preparado Const WAVERR_SYNC = (WAVERR_BASE + 3) ' dispositivo síncrono Const WAVERR_LASTERROR = (WAVERR_BASE + 3) ' último error del intervalo ' mensajes de devolución de llamada de onda Const WOM_OPEN = MM_WOM_OPEN Const WOM_CLOSE = MM_WOM_CLOSE Const WOM_DONE = MM_WOM_DONE Const WIM_OPEN = MM_WIM_OPEN Const WIM_CLOSE = MM_WIM_CLOSE Const WIM_DATA = MM_WIM_DATA ' Id. del dispositivo para el mapeador de dispositivos de onda Const WAVE_MAPPER = -1& ' indicadores para el parámetro dwFlags de waveOutOpen() y waveInOpen() Const WAVE_ALLOWSYNC = &H2 Const WAVE_VALID = &H3 ' ;Interno Type WAVEHDR lpData As String dwBufferLength As Long dwBytesRecorded As Long dwUser As Long dwFlags As Long dwLoops As Long lpNext As Long Reserved As Long End Type ' indicadores para el campo dwFlags de WAVEHDR Const WHDR_DONE = &H1 ' bit terminado Const WHDR_PREPARED = &H2 ' establece si se ha preparado este encabezado Const WHDR_BEGINLOOP = &H4 ' bucle del bloque de inicio Const WHDR_ENDLOOP = &H8 ' bucle del bloque final Const WHDR_INQUEUE = &H10 ' reservado para el controlador Const WHDR_VALID = &H1F ' indicadores válidos / ;Interno / Type WAVEOUTCAPS wMid As Integer wPid As Integer vDriverVersion As Long szPname As String * MAXPNAMELEN dwFormats As Long wChannels As Integer dwSupport As Long End Type ' indicadores para el campo dwSupport de WAVEOUTCAPS Const WAVECAPS_PITCH = &H1 ' admite control de tono Const WAVECAPS_PLAYBACKRATE = &H2 ' admite control de velocidad de reproducción Const WAVECAPS_VOLUME = &H4 ' admite control de volumen Const WAVECAPS_LRVOLUME = &H8 ' control separado de volumen derecho e izquierdo Const WAVECAPS_SYNC = &H10 Type WAVEINCAPS wMid As Integer wPid As Integer vDriverVersion As Long szPname As String * MAXPNAMELEN dwFormats As Long wChannels As Integer End Type ' definiciones para el campo dwFormat de WAVEINCAPS y WAVEOUTCAPS Const WAVE_INVALIDFORMAT = &H0 ' formato no válido Const WAVE_FORMAT_1M08 = &H1 ' 11,025 KHz, Mono, 8 bits Const WAVE_FORMAT_1S08 = &H2 ' 11,025 KHz, Estéreo, 8 bitss Const WAVE_FORMAT_1M16 = &H4 ' 11,025 KHz, Mono, 16 bits Const WAVE_FORMAT_1S16 = &H8 ' 11,025 KHz, Estéreo, 16 bits Const WAVE_FORMAT_2M08 = &H10 ' 22,05 KHz, Mono, 8 bits Const WAVE_FORMAT_2S08 = &H20 ' 22,05 KHz, Estéreo, 8 bits Const WAVE_FORMAT_2M16 = &H40 ' 22,05 KHz, Mono, 16 bits Const WAVE_FORMAT_2S16 = &H80 ' 22,05 KHz, Estéreo, 16 bits Const WAVE_FORMAT_4M08 = &H100 ' 44,1 KHz, Mono, 8 bits Const WAVE_FORMAT_4S08 = &H200 ' 44,1 KHz, Estéreo, 8 bits Const WAVE_FORMAT_4M16 = &H400 ' 44,1 KHz, Mono, 16 bits Const WAVE_FORMAT_4S16 = &H800 ' 44,1 KHz, Estéreo, 16 bits ' indicadores para el campo wFormatTag de WAVEFORMAT Const WAVE_FORMAT_PCM = 1 ' Necesario en archivos de recursos para #ifndef RC_INVOKED Type WAVEFORMAT wFormatTag As Integer nChannels As Integer nSamplesPerSec As Long nAvgBytesPerSec As Long nBlockAlign As Integer End Type Type PCMWAVEFORMAT wf As WAVEFORMAT wBitsPerSample As Integer End Type Declare Function waveOutGetNumDevs Lib "winmm.dll" Alias "waveOutGetNumDevs" () As Long Declare Function waveOutGetDevCaps Lib "winmm.dll" Alias "waveOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEOUTCAPS, ByVal uSize As Long) As Long Declare Function waveOutGetVolume Lib "winmm.dll" Alias "waveOutGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long Declare Function waveOutSetVolume Lib "winmm.dll" Alias "waveOutSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long Declare Function waveOutGetErrorText Lib "winmm.dll" Alias "waveOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long Declare Function waveOutOpen Lib "winmm.dll" Alias "waveOutOpen" (lphWaveOut As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long Declare Function waveOutClose Lib "winmm.dll" Alias "waveOutClose" (ByVal hWaveOut As Long) As Long Declare Function waveOutPrepareHeader Lib "winmm.dll" Alias "waveOutPrepareHeader" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long Declare Function waveOutUnprepareHeader Lib "winmm.dll" Alias "waveOutUnprepareHeader" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long Declare Function waveOutWrite Lib "winmm.dll" Alias "waveOutWrite" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long Declare Function waveOutPause Lib "winmm.dll" Alias "waveOutPause" (ByVal hWaveOut As Long) As Long Declare Function waveOutRestart Lib "winmm.dll" Alias "waveOutRestart" (ByVal hWaveOut As Long) As Long Declare Function waveOutReset Lib "winmm.dll" Alias "waveOutReset" (ByVal hWaveOut As Long) As Long Declare Function waveOutBreakLoop Lib "winmm.dll" Alias "waveOutBreakLoop" (ByVal hWaveOut As Long) As Long Declare Function waveOutGetPosition Lib "winmm.dll" Alias "waveOutGetPosition" (ByVal hWaveOut As Long, lpInfo As MMTIME, ByVal uSize As Long) As Long Declare Function waveOutGetPitch Lib "winmm.dll" Alias "waveOutGetPitch" (ByVal hWaveOut As Long, lpdwPitch As Long) As Long Declare Function waveOutSetPitch Lib "winmm.dll" Alias "waveOutSetPitch" (ByVal hWaveOut As Long, ByVal dwPitch As Long) As Long Declare Function waveOutGetPlaybackRate Lib "winmm.dll" Alias "waveOutGetPlaybackRate" (ByVal hWaveOut As Long, lpdwRate As Long) As Long Declare Function waveOutSetPlaybackRate Lib "winmm.dll" Alias "waveOutSetPlaybackRate" (ByVal hWaveOut As Long, ByVal dwRate As Long) As Long Declare Function waveOutGetID Lib "winmm.dll" Alias "waveOutGetID" (ByVal hWaveOut As Long, lpuDeviceID As Long) As Long Declare Function waveOutMessage Lib "winmm.dll" Alias "waveOutMessage" (ByVal hWaveOut As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long Declare Function waveInGetNumDevs Lib "winmm.dll" Alias "waveInGetNumDevs" () As Long Declare Function waveInGetDevCaps Lib "winmm.dll" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEINCAPS, ByVal uSize As Long) As Long Declare Function waveInGetErrorText Lib "winmm.dll" Alias "waveInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long Declare Function waveInOpen Lib "winmm.dll" Alias "waveInOpen" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long Declare Function waveInClose Lib "winmm.dll" Alias "waveInClose" (ByVal hWaveIn As Long) As Long Declare Function waveInPrepareHeader Lib "winmm.dll" Alias "waveInPrepareHeader" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long Declare Function waveInUnprepareHeader Lib "winmm.dll" Alias "waveInUnprepareHeader" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long Declare Function waveInAddBuffer Lib "winmm.dll" Alias "waveInAddBuffer" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long Declare Function waveInStart Lib "winmm.dll" Alias "waveInStart" (ByVal hWaveIn As Long) As Long Declare Function waveInStop Lib "winmm.dll" Alias "waveInStop" (ByVal hWaveIn As Long) As Long Declare Function waveInReset Lib "winmm.dll" Alias "waveInReset" (ByVal hWaveIn As Long) As Long Declare Function waveInGetPosition Lib "winmm.dll" Alias "waveInGetPosition" (ByVal hWaveIn As Long, lpInfo As MMTIME, ByVal uSize As Long) As Long Declare Function waveInGetID Lib "winmm.dll" Alias "waveInGetID" (ByVal hWaveIn As Long, lpuDeviceID As Long) As Long Declare Function waveInMessage Lib "winmm.dll" Alias "waveInMessage" (ByVal hWaveIn As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long ' Valores de retorno de los errores de MIDI Const MIDIERR_UNPREPARED = (MIDIERR_BASE + 0) ' encabezado no preparado Const MIDIERR_STILLPLAYING = (MIDIERR_BASE + 1) ' aún se está reproduciendo algo Const MIDIERR_NOMAP = (MIDIERR_BASE + 2) ' no hay mapa activo Const MIDIERR_NOTREADY = (MIDIERR_BASE + 3) ' el hardware está ocupado Const MIDIERR_NODEVICE = (MIDIERR_BASE + 4) ' el puerto ya no está conectado Const MIDIERR_INVALIDSETUP = (MIDIERR_BASE + 5) ' configuración no válida Const MIDIERR_LASTERROR = (MIDIERR_BASE + 5) ' último error del intervalo ' Mensajes de devolución de llamada de MIDI Const MIM_OPEN = MM_MIM_OPEN Const MIM_CLOSE = MM_MIM_CLOSE Const MIM_DATA = MM_MIM_DATA Const MIM_LONGDATA = MM_MIM_LONGDATA Const MIM_ERROR = MM_MIM_ERROR Const MIM_LONGERROR = MM_MIM_LONGERROR Const MOM_OPEN = MM_MOM_OPEN Const MOM_CLOSE = MM_MOM_CLOSE Const MOM_DONE = MM_MOM_DONE ' Id. de dispositivo para el mapeador MIDI Const MIDIMAPPER = (-1) ' Imposible establecer a DWORD porque RC da error Const MIDI_MAPPER = -1& ' indicadores para el parámetro wFlags de midiOutCachePatches(), midiOutCacheDrumPatches() Const MIDI_CACHE_ALL = 1 Const MIDI_CACHE_BESTFIT = 2 Const MIDI_CACHE_QUERY = 3 Const MIDI_UNCACHE = 4 Const MIDI_CACHE_VALID = (MIDI_CACHE_ALL Or MIDI_CACHE_BESTFIT Or MIDI_CACHE_QUERY Or MIDI_UNCACHE) ' ;Interno Type MIDIOUTCAPS wMid As Integer wPid As Integer vDriverVersion As Long szPname As String * MAXPNAMELEN wTechnology As Integer wVoices As Integer wNotes As Integer wChannelMask As Integer dwSupport As Long End Type ' indicadores para el campo wTechnology de la estructura MIDIOUTCAPS Const MOD_MIDIPORT = 1 ' puerto de salida Const MOD_SYNTH = 2 ' sintetizador interno genérico Const MOD_SQSYNTH = 3 ' sintetizador interno de onda rectangular Const MOD_FMSYNTH = 4 ' sintetizador interno FM Const MOD_MAPPER = 5 ' mapeador MIDI ' indicadores para el campo dwSupport de MIDIOUTCAPS Const MIDICAPS_VOLUME = &H1 ' admite control de volumen Const MIDICAPS_LRVOLUME = &H2 ' separa controles de volumen izquierdo y derecho Const MIDICAPS_CACHE = &H4 Type MIDIINCAPS wMid As Integer wPid As Integer vDriverVersion As Long szPname As String * MAXPNAMELEN End Type Type MIDIHDR lpData As String dwBufferLength As Long dwBytesRecorded As Long dwUser As Long dwFlags As Long lpNext As Long Reserved As Long End Type ' indicadores para el campo dwFlags de la estructura MIDIHDR Const MHDR_DONE = &H1 ' bit terminado Const MHDR_PREPARED = &H2 ' establece si el encabezado está preparado Const MHDR_INQUEUE = &H4 ' reservado para el controlador Const MHDR_VALID = &H7 ' indicadores válidos / ;Interno / Declare Function midiOutGetDevCaps Lib "winmm.dll" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As Long Declare Function midiOutGetVolume Lib "winmm.dll" Alias "midiOutGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long Declare Function midiOutSetVolume Lib "winmm.dll" Alias "midiOutSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long Declare Function midiOutGetErrorText Lib "winmm.dll" Alias "midiOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long Declare Function midiOutOpen Lib "winmm.dll" Alias "midiOutOpen" (lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long Declare Function midiOutClose Lib "winmm.dll" Alias "midiOutClose" (ByVal hMidiOut As Long) As Long Declare Function midiOutPrepareHeader Lib "winmm.dll" Alias "midiOutPrepareHeader" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long Declare Function midiOutUnprepareHeader Lib "winmm.dll" Alias "midiOutUnprepareHeader" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long Declare Function midiOutShortMsg Lib "winmm.dll" Alias "midiOutShortMsg" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As Long Declare Function midiOutLongMsg Lib "winmm.dll" Alias "midiOutLongMsg" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long Declare Function midiOutReset Lib "winmm.dll" Alias "midiOutReset" (ByVal hMidiOut As Long) As Long Declare Function midiOutCachePatches Lib "winmm.dll" Alias "midiOutCachePatches" (ByVal hMidiOut As Long, ByVal uBank As Long, lpPatchArray As Long, ByVal uFlags As Long) As Long Declare Function midiOutCacheDrumPatches Lib "winmm.dll" Alias "midiOutCacheDrumPatches" (ByVal hMidiOut As Long, ByVal uPatch As Long, lpKeyArray As Long, ByVal uFlags As Long) As Long Declare Function midiOutGetID Lib "winmm.dll" Alias "midiOutGetID" (ByVal hMidiOut As Long, lpuDeviceID As Long) As Long Declare Function midiOutMessage Lib "winmm.dll" Alias "midiOutMessage" (ByVal hMidiOut As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long Declare Function midiInGetNumDevs Lib "winmm.dll" Alias "midiInGetNumDevs" () As Long Declare Function midiInGetDevCaps Lib "winmm.dll" Alias "midiInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIINCAPS, ByVal uSize As Long) As Long Declare Function midiInGetErrorText Lib "winmm.dll" Alias "midiInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long Declare Function midiInOpen Lib "winmm.dll" Alias "midiInOpen" (lphMidiIn As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long Declare Function midiInClose Lib "winmm.dll" Alias "midiInClose" (ByVal hMidiIn As Long) As Long Declare Function midiInPrepareHeader Lib "winmm.dll" Alias "midiInPrepareHeader" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long Declare Function midiInUnprepareHeader Lib "winmm.dll" Alias "midiInUnprepareHeader" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long Declare Function midiInAddBuffer Lib "winmm.dll" Alias "midiInAddBuffer" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long Declare Function midiInStart Lib "winmm.dll" Alias "midiInStart" (ByVal hMidiIn As Long) As Long Declare Function midiInStop Lib "winmm.dll" Alias "midiInStop" (ByVal hMidiIn As Long) As Long Declare Function midiInReset Lib "winmm.dll" Alias "midiInReset" (ByVal hMidiIn As Long) As Long Declare Function midiInGetID Lib "winmm.dll" Alias "midiInGetID" (ByVal hMidiIn As Long, lpuDeviceID As Long) As Long Declare Function midiInMessage Lib "winmm.dll" Alias "midiInMessage" (ByVal hMidiIn As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long ' Id. de dispositivo para el asignador de dispositivo auxiliar Const AUX_MAPPER = -1& Type AUXCAPS wMid As Integer wPid As Integer vDriverVersion As Long szPname As String * MAXPNAMELEN wTechnology As Integer dwSupport As Long End Type ' indicadores para el campo wTechnology de la estructura AUXCAPS Const AUXCAPS_CDAUDIO = 1 ' audio desde la unidad de CD-ROM interna Const AUXCAPS_AUXIN = 2 ' audio desde los conectores auxiliares de entrada ' indicadores para el campo dwSupport de la estructura AUXCAPS Const AUXCAPS_VOLUME = &H1 ' admite control de volumen Const AUXCAPS_LRVOLUME = &H2 ' separa los controles de volumen izquierdo y derecho Declare Function auxGetNumDevs Lib "winmm.dll" Alias "auxGetNumDevs" () As Long Declare Function auxGetDevCaps Lib "winmm.dll" Alias "auxGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As AUXCAPS, ByVal uSize As Long) As Long Declare Function auxSetVolume Lib "winmm.dll" Alias "auxSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long Declare Function auxGetVolume Lib "winmm.dll" Alias "auxGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long Declare Function auxOutMessage Lib "winmm.dll" Alias "auxOutMessage" (ByVal uDeviceID As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long ' Valores de retorno de los errores del cronómetro Const TIMERR_NOERROR = (0) ' ningún error Const TIMERR_NOCANDO = (TIMERR_BASE + 1) ' petición no terminada Const TIMERR_STRUCT = (TIMERR_BASE + 33) ' tamaño de la estructura de hora ' indicadores para el parámetro wFlags de la función timeSetEvent() Const TIME_ONESHOT = 0 ' cronómetro del programa para eventos únicos Const TIME_PERIODIC = 1 ' programa para eventos periódicos continuos Type TIMECAPS wPeriodMin As Long wPeriodMax As Long End Type Declare Function timeGetSystemTime Lib "winmm.dll" Alias "timeGetSystemTime" (lpTime As MMTIME, ByVal uSize As Long) As Long Declare Function timeGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long Declare Function timeSetEvent Lib "winmm.dll" Alias "timeSetEvent" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long Declare Function timeKillEvent Lib "winmm.dll" Alias "timeKillEvent" (ByVal uID As Long) As Long Declare Function timeGetDevCaps Lib "winmm.dll" Alias "timeGetDevCaps" (lpTimeCaps As TIMECAPS, ByVal uSize As Long) As Long Declare Function timeBeginPeriod Lib "winmm.dll" Alias "timeBeginPeriod" (ByVal uPeriod As Long) As Long Declare Function timeEndPeriod Lib "winmm.dll" Alias "timeEndPeriod" (ByVal uPeriod As Long) As Long ' Valores de retorno de errores del joystick Const JOYERR_NOERROR = (0) ' ningún error Const JOYERR_PARMS = (JOYERR_BASE + 5) ' parámetros incorrectos Const JOYERR_NOCANDO = (JOYERR_BASE + 6) ' petición no completada Const JOYERR_UNPLUGGED = (JOYERR_BASE + 7) ' el joystick está desconectado ' constantes utilizadas con la estructura JOYINFO y mensajes MM_JOY Const JOY_BUTTON1 = &H1 Const JOY_BUTTON2 = &H2 Const JOY_BUTTON3 = &H4 Const JOY_BUTTON4 = &H8 Const JOY_BUTTON1CHG = &H100 Const JOY_BUTTON2CHG = &H200 Const JOY_BUTTON3CHG = &H400 Const JOY_BUTTON4CHG = &H800 ' constantes de Id. del joystick Const JOYSTICKID1 = 0 Const JOYSTICKID2 = 1 Type JOYCAPS wMid As Integer wPid As Integer szPname As String * MAXPNAMELEN wXmin As Integer wXmax As Integer wYmin As Integer wYmax As Integer wZmin As Integer wZmax As Integer wNumButtons As Integer wPeriodMin As Integer wPeriodMax As Integer End Type Type JOYINFO wXpos As Long wYpos As Long wZpos As Long wButtons As Long End Type Declare Function joyGetDevCaps Lib "winmm.dll" Alias "joyGetDevCapsA" (ByVal id As Long, lpCaps As JOYCAPS, ByVal uSize As Long) As Long Declare Function joyGetNumDevs Lib "winmm.dll" Alias "joyGetNumDev" () As Long Declare Function joyGetThreshold Lib "winmm.dll" Alias "joyGetThreshold" (ByVal id As Long, lpuThreshold As Long) As Long Declare Function joyReleaseCapture Lib "winmm.dll" Alias "joyReleaseCapture" (ByVal id As Long) As Long Declare Function joySetCapture Lib "winmm.dll" Alias "joySetCapture" (ByVal hwnd As Long, ByVal uID As Long, ByVal uPeriod As Long, ByVal bChanged As Long) As Long Declare Function joySetThreshold Lib "winmm.dll" Alias "joySetThreshold" (ByVal id As Long, ByVal uThreshold As Long) As Long ' Valores de retorno de los errores de MMIO Const MMIOERR_BASE = 256 Const MMIOERR_FILENOTFOUND = (MMIOERR_BASE + 1) ' archivo no encontrado Const MMIOERR_OUTOFMEMORY = (MMIOERR_BASE + 2) ' no hay suficiente memoria Const MMIOERR_CANNOTOPEN = (MMIOERR_BASE + 3) ' no se puede abrir Const MMIOERR_CANNOTCLOSE = (MMIOERR_BASE + 4) ' no se puede cerrar Const MMIOERR_CANNOTREAD = (MMIOERR_BASE + 5) ' no se puede leer Const MMIOERR_CANNOTWRITE = (MMIOERR_BASE + 6) ' no se puede escribir Const MMIOERR_CANNOTSEEK = (MMIOERR_BASE + 7) ' no se puede buscar Const MMIOERR_CANNOTEXPAND = (MMIOERR_BASE + 8) ' no se puede ampliar archivo Const MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE + 9) ' parte no encontrada Const MMIOERR_UNBUFFERED = (MMIOERR_BASE + 10) ' archivo no almacenado en búfer ' Constantes de MMIO Const CFSEPCHAR = "+" ' carácter separador de nombre de archivo compuesto Type MMIOINFO dwFlags As Long fccIOProc As Long pIOProc As Long wErrorRet As Long htask As Long cchBuffer As Long pchBuffer As String pchNext As String pchEndRead As String pchEndWrite As String lBufOffset As Long lDiskOffset As Long adwInfo(4) As Long dwReserved1 As Long dwReserved2 As Long hmmio As Long End Type Const MMIO_RWMODE = &H3 ' máscara para obtener los bits que se usan para abrir ' un archivo y leerlo/escribirlo/ambos Const MMIO_SHAREMODE = &H70 ' número de modo de uso compartido de archivos ' constantes para el campo dwFlags de MMIOINFO Const MMIO_CREATE = &H1000 ' crea un archivo nuevo (o trunca el archivo) Const MMIO_PARSE = &H100 ' analiza la ruta de acceso del retorno de un archivo nuevo Const MMIO_DELETE = &H200 ' crea un archivo nuevo (o trunca el archivo) Const MMIO_EXIST = &H4000 ' comprueba que el archivo existe Const MMIO_ALLOCBUF = &H10000 ' mmioOpen() debe asignar un búfer Const MMIO_GETTEMP = &H20000 ' mmioOpen() debe recuperar el nombre temporal Const MMIO_DIRTY = &H10000000 ' El búfer de E/S está sucio ' MMIO_DIRTY se usa también en el campo de la estructura MMCKINFO Const MMIO_OPEN_VALID = &H3FFFF ' indicadores válidos para mmioOpen / ;Interno / ' números de modo de lectura/escritura (campo de bits MMIO_RWMODE) Const MMIO_READ = &H0 ' abre el archivo sólo para lectura Const MMIO_WRITE = &H1 ' abre el archivo sólo para escritura Const MMIO_READWRITE = &H2 ' abre el archivo para lectura y escritura ' números de modo de los archivos compartidos (campo de bits MMIO_SHAREMODE) Const MMIO_COMPAT = &H0 ' modo de compatibilidad Const MMIO_EXCLUSIVE = &H10 ' modo de acceso exclusivo Const MMIO_DENYWRITE = &H20 ' deniega la escritura a otros procesos Const MMIO_DENYREAD = &H30 ' deniega la lectura a otros procesos Const MMIO_DENYNONE = &H40 ' no deniega nada a otros procesos ' indicadores para otras funciones Const MMIO_FHOPEN = &H10 ' mmioClose(): mantiene abierto el controlador del archivo Const MMIO_EMPTYBUF = &H10 ' mmioFlush(): vacía el búfer de E/S Const MMIO_TOUPPER = &H10 ' mmioStringToFOURCC(): cambia a mayúsculas Const MMIO_INSTALLPROC = &H10000 ' mmioInstallIOProc(): instala MMIOProc Const MMIO_PUBLICPROC = &H10000000 ' mmioInstallIOProc: instala globalmente Const MMIO_UNICODEPROC = &H1000000 ' mmioInstallIOProc(): Unicode MMIOProc Const MMIO_REMOVEPROC = &H20000 ' mmioInstallIOProc(): quita MMIOProc Const MMIO_FINDPROC = &H40000 ' mmioInstallIOProc(): encuentra un MMIOProc Const MMIO_FINDCHUNK = &H10 ' mmioDescend(): encuentra una parte por Id. Const MMIO_FINDRIFF = &H20 ' mmioDescend(): encuentra una parte de LISTA Const MMIO_FINDLIST = &H40 ' mmioDescend():encuentra una parte de RIFF Const MMIO_CREATERIFF = &H20 ' mmioCreateChunk(): hace una parte de LISTA Const MMIO_CREATELIST = &H40 ' mmioCreateChunk():hace una parte de RIFF Const MMIO_VALIDPROC = &H11070000 ' válido para mmioInstallIOProc / ;Interno / ' números de los mensajes para las funciones del procedimiento de E/S MMIOPROC Const MMIOM_READ = MMIO_READ ' lectura (tiene que ser igual que MMIO_READ) Const MMIOM_WRITE = MMIO_WRITE ' escritura (tiene que ser igual que MMIO_WRITE) Const MMIOM_SEEK = 2 ' busca una posición nueva en el archivo Const MMIOM_OPEN = 3 ' abre un archivo Const MMIOM_CLOSE = 4 ' cierra un archivo Const MMIOM_WRITEFLUSH = 5 ' escribe y vacía Const MMIOM_RENAME = 6 ' cambia el nombre del archivo especificado Const MMIOM_USER = &H8000 ' comienzo de los mensajes definidos por el usuario ' indicadores para mmioSeek() Const SEEK_SET = 0 ' busca hasta una posición absoluta Const SEEK_CUR = 1 ' busca desde la posición actual Const SEEK_END = 2 ' busca desde el fin del archivo ' otras constantes Const MMIO_DEFAULTBUFFER = 8192 ' tamaño predeterminado del búfer Type MMCKINFO ckid As Long ckSize As Long fccType As Long dwDataOffset As Long dwFlags As Long End Type Declare Function mmioStringToFOURCC Lib "winmm.dll" Alias "mmioStringToFOURCCA" (ByVal sz As String, ByVal uFlags As Long) As Long Declare Function mmioOpen Lib "winmm.dll" Alias "mmioOpenA" (ByVal szFileName As String, lpmmioinfo As MMIOINFO, ByVal dwOpenFlags As Long) As Long Declare Function mmioRename Lib "winmm.dll" Alias "mmioRenameA" (ByVal szFileName As String, ByVal SzNewFileName As String, lpmmioinfo As MMIOINFO, ByVal dwRenameFlags As Long) As Long Declare Function mmioClose Lib "winmm.dll" Alias "mmioClose" (ByVal hmmio As Long, ByVal uFlags As Long) As Long Declare Function mmioRead Lib "winmm.dll" Alias "mmioRead" (ByVal hmmio As Long, ByVal pch As String, ByVal cch As Long) As Long Declare Function mmioWrite Lib "winmm.dll" Alias "mmioWrite" (ByVal hmmio As Long, ByVal pch As String, ByVal cch As Long) As Long Declare Function mmioSeek Lib "winmm.dll" Alias "mmioSeek" (ByVal hmmio As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long Declare Function mmioGetInfo Lib "winmm.dll" Alias "mmioGetInfo" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long Declare Function mmioSetInfo Lib "winmm.dll" Alias "mmioSetInfo" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long Declare Function mmioSetBuffer Lib "winmm.dll" Alias "mmioSetBuffer" (ByVal hmmio As Long, ByVal pchBuffer As String, ByVal cchBuffer As Long, ByVal uFlags As Long) As Long Declare Function mmioFlush Lib "winmm.dll" Alias "mmioFlush" (ByVal hmmio As Long, ByVal uFlags As Long) As Long Declare Function mmioAdvance Lib "winmm.dll" Alias "mmioAdvance" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long Declare Function mmioSendMessage Lib "winmm.dll" Alias "mmioSendMessage" (ByVal hmmio As Long, ByVal uMsg As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long Declare Function mmioDescend Lib "winmm.dll" Alias "mmioDescend" (ByVal hmmio As Long, lpck As MMCKINFO, lpckParent As MMCKINFO, ByVal uFlags As Long) As Long Declare Function mmioAscend Lib "winmm.dll" Alias "mmioAscend" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long Declare Function mmioCreateChunk Lib "winmm.dll" Alias "mmioCreateChunk" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long ' Funciones de MCI Declare Function mciSendCommand Lib "winmm.dll" Alias "mciSendCommandA" (ByVal wDeviceID As Long, ByVal uMessage As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Any) As Long Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Declare Function mciGetCreatorTask Lib "winmm.dll" Alias "mciGetCreatorTask" (ByVal wDeviceID As Long) As Long Declare Function mciGetDeviceID Lib "winmm.dll" Alias "mciGetDeviceIDA" (ByVal lpstrName As String) As Long Declare Function mciGetDeviceIDFromElementID Lib "winmm.dll" Alias "mciGetDeviceIDFromElementIDA" (ByVal dwElementID As Long, ByVal lpstrType As String) As Long Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long ' Valores de retorno de los errores de MCI Const MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE + 1) Const MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE + 3) Const MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE + 5) Const MCIERR_HARDWARE = (MCIERR_BASE + 6) Const MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE + 7) Const MCIERR_OUT_OF_MEMORY = (MCIERR_BASE + 8) Const MCIERR_DEVICE_OPEN = (MCIERR_BASE + 9) Const MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE + 10) Const MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE + 11) Const MCIERR_PARAM_OVERFLOW = (MCIERR_BASE + 12) Const MCIERR_MISSING_STRING_ARGUMENT = (MCIERR_BASE + 13) Const MCIERR_BAD_INTEGER = (MCIERR_BASE + 14) Const MCIERR_PARSER_INTERNAL = (MCIERR_BASE + 15) Const MCIERR_DRIVER_INTERNAL = (MCIERR_BASE + 16) Const MCIERR_MISSING_PARAMETER = (MCIERR_BASE + 17) Const MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE + 18) Const MCIERR_FILE_NOT_FOUND = (MCIERR_BASE + 19) Const MCIERR_DEVICE_NOT_READY = (MCIERR_BASE + 20) Const MCIERR_INTERNAL = (MCIERR_BASE + 21) Const MCIERR_DRIVER = (MCIERR_BASE + 22) Const MCIERR_CANNOT_USE_ALL = (MCIERR_BASE + 23) Const MCIERR_MULTIPLE = (MCIERR_BASE + 24) Const MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE + 25) Const MCIERR_OUTOFRANGE = (MCIERR_BASE + 26) Const MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE + 28) Const MCIERR_FILE_NOT_SAVED = (MCIERR_BASE + 30) Const MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE + 31) Const MCIERR_DEVICE_LOCKED = (MCIERR_BASE + 32) Const MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE + 33) Const MCIERR_BAD_CONSTANT = (MCIERR_BASE + 34) Const MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE + 35) Const MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE + 36) Const MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE + 37) Const MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE + 38) Const MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE + 39) Const MCIERR_INVALID_FILE = (MCIERR_BASE + 40) Const MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE + 41) Const MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE + 42) Const MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE + 43) Const MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE + 44) Const MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE + 45) Const MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE + 46) Const MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE + 47) Const MCIERR_FILENAME_REQUIRED = (MCIERR_BASE + 48) Const MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE + 49) Const MCIERR_DEVICE_NOT_INSTALLED = (MCIERR_BASE + 50) Const MCIERR_GET_CD = (MCIERR_BASE + 51) Const MCIERR_SET_CD = (MCIERR_BASE + 52) Const MCIERR_SET_DRIVE = (MCIERR_BASE + 53) Const MCIERR_DEVICE_LENGTH = (MCIERR_BASE + 54) Const MCIERR_DEVICE_ORD_LENGTH = (MCIERR_BASE + 55) Const MCIERR_NO_INTEGER = (MCIERR_BASE + 56) Const MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE + 64) Const MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE + 65) Const MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE + 66) Const MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE + 67) Const MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE + 68) Const MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE + 69) Const MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE + 70) Const MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE + 71) Const MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE + 72) Const MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE + 73) Const MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE + 80) Const MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE + 81) Const MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE + 82) Const MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE + 83) Const MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE + 84) Const MCIERR_SEQ_TIMER = (MCIERR_BASE + 85) Const MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE + 86) Const MCIERR_SEQ_NOMIDIPRESENT = (MCIERR_BASE + 87) Const MCIERR_NO_WINDOW = (MCIERR_BASE + 90) Const MCIERR_CREATEWINDOW = (MCIERR_BASE + 91) Const MCIERR_FILE_READ = (MCIERR_BASE + 92) Const MCIERR_FILE_WRITE = (MCIERR_BASE + 93) ' Todos los errores personalizados del controlador del dispositivo tienen que ser >= este valor Const MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE + 256) ' Los números de mensaje tienen que estar en el intervalo entre MCI_FIRST y MCI_LAST Const MCI_FIRST = &H800 ' Los mensajes 0x801 y 0x802 están reservados Const MCI_OPEN = &H803 Const MCI_CLOSE = &H804 Const MCI_ESCAPE = &H805 Const MCI_PLAY = &H806 Const MCI_SEEK = &H807 Const MCI_STOP = &H808 Const MCI_PAUSE = &H809 Const MCI_INFO = &H80A Const MCI_GETDEVCAPS = &H80B Const MCI_SPIN = &H80C Const MCI_SET = &H80D Const MCI_STEP = &H80E Const MCI_RECORD = &H80F Const MCI_SYSINFO = &H810 Const MCI_BREAK = &H811 Const MCI_SOUND = &H812 Const MCI_SAVE = &H813 Const MCI_STATUS = &H814 Const MCI_CUE = &H830 Const MCI_REALIZE = &H840 Const MCI_WINDOW = &H841 Const MCI_PUT = &H842 Const MCI_WHERE = &H843 Const MCI_FREEZE = &H844 Const MCI_UNFREEZE = &H845 Const MCI_LOAD = &H850 Const MCI_CUT = &H851 Const MCI_COPY = &H852 Const MCI_PASTE = &H853 Const MCI_UPDATE = &H854 Const MCI_RESUME = &H855 Const MCI_DELETE = &H856 Const MCI_LAST = &HFFF ' los Id. de los mensajes 0x400 siguientes están reservados para los controladores personalizados ' todos los mensajes personalizados de comando MCI tienen que ser >= que este valor Const MCI_USER_MESSAGES = (&H400 + MCI_FIRST) Const MCI_ALL_DEVICE_ID = - 1 ' Coinciden todos los dispositivos MCI ' constantes para los tipos predefinidos del dispositivo MCI Const MCI_DEVTYPE_VCR = 513 Const MCI_DEVTYPE_VIDEODISC = 514 Const MCI_DEVTYPE_OVERLAY = 515 Const MCI_DEVTYPE_CD_AUDIO = 516 Const MCI_DEVTYPE_DAT = 517 Const MCI_DEVTYPE_SCANNER = 518 Const MCI_DEVTYPE_ANIMATION = 519 Const MCI_DEVTYPE_DIGITAL_VIDEO = 520 Const MCI_DEVTYPE_OTHER = 521 Const MCI_DEVTYPE_WAVEFORM_AUDIO = 522 Const MCI_DEVTYPE_SEQUENCER = 523 Const MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR Const MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER Const MCI_DEVTYPE_FIRST_USER = &H1000 ' valores de retorno para el comando de 'modo de estado' Const MCI_MODE_NOT_READY = (MCI_STRING_OFFSET + 12) Const MCI_MODE_STOP = (MCI_STRING_OFFSET + 13) Const MCI_MODE_PLAY = (MCI_STRING_OFFSET + 14) Const MCI_MODE_RECORD = (MCI_STRING_OFFSET + 15) Const MCI_MODE_SEEK = (MCI_STRING_OFFSET + 16) Const MCI_MODE_PAUSE = (MCI_STRING_OFFSET + 17) Const MCI_MODE_OPEN = (MCI_STRING_OFFSET + 18) ' constantes que se usan en los comandos 'establecer formato de hora' y 'formato de la hora de estado' Const MCI_FORMAT_MILLISECONDS = 0 Const MCI_FORMAT_HMS = 1 Const MCI_FORMAT_MSF = 2 Const MCI_FORMAT_FRAMES = 3 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_BYTES = 8 Const MCI_FORMAT_SAMPLES = 9 Const MCI_FORMAT_TMSF = 10 ' indicadores para el parámetro wParam del mensaje MM_MCINOTIFY Const MCI_NOTIFY_SUCCESSFUL = &H1 Const MCI_NOTIFY_SUPERSEDED = &H2 Const MCI_NOTIFY_ABORTED = &H4 Const MCI_NOTIFY_FAILURE = &H8 ' indicadores comunes para el parámetro dwFlags de los mensajes de comando MCI Const MCI_NOTIFY = &H1& Const MCI_WAIT = &H2& Const MCI_FROM = &H4& Const MCI_TO = &H8& Const MCI_TRACK = &H10& ' indicadores para el parámetro dwFlags de los mensajes del comando MCI_OPEN Const MCI_OPEN_SHAREABLE = &H100& Const MCI_OPEN_ELEMENT = &H200& Const MCI_OPEN_ALIAS = &H400& Const MCI_OPEN_ELEMENT_ID = &H800& Const MCI_OPEN_TYPE_ID = &H1000& Const MCI_OPEN_TYPE = &H2000& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_SEEK Const MCI_SEEK_TO_START = &H100& Const MCI_SEEK_TO_END = &H200& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_STATUS Const MCI_STATUS_ITEM = &H100& Const MCI_STATUS_START = &H200& ' indicadores para el campo dwItem del bloque de parámetros MCI_STATUS_PARMS Const MCI_STATUS_LENGTH = &H1& Const MCI_STATUS_POSITION = &H2& Const MCI_STATUS_NUMBER_OF_TRACKS = &H3& Const MCI_STATUS_MODE = &H4& Const MCI_STATUS_MEDIA_PRESENT = &H5& Const MCI_STATUS_TIME_FORMAT = &H6& Const MCI_STATUS_READY = &H7& Const MCI_STATUS_CURRENT_TRACK = &H8& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_INFO Const MCI_INFO_PRODUCT = &H100& Const MCI_INFO_FILE = &H200& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_GETDEVCAPS Const MCI_GETDEVCAPS_ITEM = &H100& ' indicadores para el campo dwItem del bloque de parámetros MCI_GETDEVCAPS_PARMS Const MCI_GETDEVCAPS_CAN_RECORD = &H1& Const MCI_GETDEVCAPS_HAS_AUDIO = &H2& Const MCI_GETDEVCAPS_HAS_VIDEO = &H3& Const MCI_GETDEVCAPS_DEVICE_TYPE = &H4& Const MCI_GETDEVCAPS_USES_FILES = &H5& Const MCI_GETDEVCAPS_COMPOUND_DEVICE = &H6& Const MCI_GETDEVCAPS_CAN_EJECT = &H7& Const MCI_GETDEVCAPS_CAN_PLAY = &H8& Const MCI_GETDEVCAPS_CAN_SAVE = &H9& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_SYSINFO Const MCI_SYSINFO_QUANTITY = &H100& Const MCI_SYSINFO_OPEN = &H200& Const MCI_SYSINFO_NAME = &H400& Const MCI_SYSINFO_INSTALLNAME = &H800& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_SET Const MCI_SET_DOOR_OPEN = &H100& Const MCI_SET_DOOR_CLOSED = &H200& Const MCI_SET_TIME_FORMAT = &H400& Const MCI_SET_AUDIO = &H800& Const MCI_SET_VIDEO = &H1000& Const MCI_SET_ON = &H2000& Const MCI_SET_OFF = &H4000& ' indicadores para el campo dwAudio de MCI_SET_PARMS o MCI_SEQ_SET_PARMS Const MCI_SET_AUDIO_ALL = &H4001& Const MCI_SET_AUDIO_LEFT = &H4002& Const MCI_SET_AUDIO_RIGHT = &H4003& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_BREAK Const MCI_BREAK_KEY = &H100& Const MCI_BREAK_HWND = &H200& Const MCI_BREAK_OFF = &H400& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_RECORD Const MCI_RECORD_INSERT = &H100& Const MCI_RECORD_OVERWRITE = &H200& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_SOUND Const MCI_SOUND_NAME = &H100& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_SAVE Const MCI_SAVE_FILE = &H100& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_LOAD Const MCI_LOAD_FILE = &H100& Type MCI_GENERIC_PARMS dwCallback As Long End Type Type MCI_OPEN_PARMS dwCallback As Long wDeviceID As Long lpstrDeviceType As String lpstrElementName As String lpstrAlias As String End Type Type MCI_PLAY_PARMS dwCallback As Long dwFrom As Long dwTo As Long End Type Type MCI_SEEK_PARMS dwCallback As Long dwTo As Long End Type Type MCI_STATUS_PARMS dwCallback As Long dwReturn As Long dwItem As Long dwTrack As Integer End Type Type MCI_INFO_PARMS dwCallback As Long lpstrReturn As String dwRetSize As Long End Type Type MCI_GETDEVCAPS_PARMS dwCallback As Long dwReturn As Long dwIten As Long End Type Type MCI_SYSINFO_PARMS dwCallback As Long lpstrReturn As String dwRetSize As Long dwNumber As Long wDeviceType As Long End Type Type MCI_SET_PARMS dwCallback As Long dwTimeFormat As Long dwAudio As Long End Type Type MCI_BREAK_PARMS dwCallback As Long nVirtKey As Long hwndBreak As Long End Type Type MCI_SOUND_PARMS dwCallback As Long lpstrSoundName As String End Type Type MCI_SAVE_PARMS dwCallback As Long lpFileName As String End Type Type MCI_LOAD_PARMS dwCallback As Long lpFileName As String End Type Type MCI_RECORD_PARMS dwCallback As Long dwFrom As Long dwTo As Long End Type Const MCI_VD_MODE_PARK = (MCI_VD_OFFSET + 1) ' Id. de retorno para el comando MCI_GETDEVCAPS de videodisco ' indicadores para el campo dwReturn de MCI_STATUS_PARMS ' comando MCI_STATUS, (dwItem == MCI_VD_STATUS_MEDIA_TYPE) Const MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET + 2) Const MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET + 3) Const MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET + 4) Const MCI_VD_FORMAT_TRACK = &H4001 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_PLAY Const MCI_VD_PLAY_REVERSE = &H10000 Const MCI_VD_PLAY_FAST = &H20000 Const MCI_VD_PLAY_SPEED = &H40000 Const MCI_VD_PLAY_SCAN = &H80000 Const MCI_VD_PLAY_SLOW = &H100000 ' indicador para el parámetro dwFlags del mensaje del comando MCI_SEEK Const MCI_VD_SEEK_REVERSE = &H10000 ' indicadores para el campo dwItem del bloque de parámetros MCI_STATUS_PARMS Const MCI_VD_STATUS_SPEED = &H4002& Const MCI_VD_STATUS_FORWARD = &H4003& Const MCI_VD_STATUS_MEDIA_TYPE = &H4004& Const MCI_VD_STATUS_SIDE = &H4005& Const MCI_VD_STATUS_DISC_SIZE = &H4006& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_GETDEVCAPS Const MCI_VD_GETDEVCAPS_CLV = &H10000 Const MCI_VD_GETDEVCAPS_CAV = &H20000 Const MCI_VD_SPIN_UP = &H10000 Const MCI_VD_SPIN_DOWN = &H20000 ' indicadores para el campo dwItem del bloque de parámetros MCI_GETDEVCAPS_PARMS Const MCI_VD_GETDEVCAPS_CAN_REVERSE = &H4002& Const MCI_VD_GETDEVCAPS_FAST_RATE = &H4003& Const MCI_VD_GETDEVCAPS_SLOW_RATE = &H4004& Const MCI_VD_GETDEVCAPS_NORMAL_RATE = &H4005& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_STEP Const MCI_VD_STEP_FRAMES = &H10000 Const MCI_VD_STEP_REVERSE = &H20000 ' indicador para el mensaje de comando MCI_ESCAPE Const MCI_VD_ESCAPE_STRING = &H100& Type MCI_VD_PLAY_PARMS dwCallback As Long dwFrom As Long dwTo As Long dwSpeed As Long End Type Type MCI_VD_STEP_PARMS dwCallback As Long dwFrames As Long End Type Type MCI_VD_ESCAPE_PARMS dwCallback As Long lpstrCommand As String End Type Const MCI_WAVE_PCM = (MCI_WAVE_OFFSET + 0) Const MCI_WAVE_MAPPER = (MCI_WAVE_OFFSET + 1) ' indicador para el parámetro dwFlags del mensaje del comando MCI_OPEN Const MCI_WAVE_OPEN_BUFFER = &H10000 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_SET Const MCI_WAVE_SET_FORMATTAG = &H10000 Const MCI_WAVE_SET_CHANNELS = &H20000 Const MCI_WAVE_SET_SAMPLESPERSEC = &H40000 Const MCI_WAVE_SET_AVGBYTESPERSEC = &H80000 Const MCI_WAVE_SET_BLOCKALIGN = &H100000 Const MCI_WAVE_SET_BITSPERSAMPLE = &H200000 ' indicadores para el parámetro dwFlags de los mensajes del comando MCI_STATUS, MCI_SET Const MCI_WAVE_INPUT = &H400000 Const MCI_WAVE_OUTPUT = &H800000 ' indicadores para el campo dwItem del bloque de parámetros MCI_STATUS_PARMS Const MCI_WAVE_STATUS_FORMATTAG = &H4001& Const MCI_WAVE_STATUS_CHANNELS = &H4002& Const MCI_WAVE_STATUS_SAMPLESPERSEC = &H4003& Const MCI_WAVE_STATUS_AVGBYTESPERSEC = &H4004& Const MCI_WAVE_STATUS_BLOCKALIGN = &H4005& Const MCI_WAVE_STATUS_BITSPERSAMPLE = &H4006& Const MCI_WAVE_STATUS_LEVEL = &H4007& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_SET Const MCI_WAVE_SET_ANYINPUT = &H4000000 Const MCI_WAVE_SET_ANYOUTPUT = &H8000000 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_GETDEVCAPS Const MCI_WAVE_GETDEVCAPS_INPUTS = &H4001& Const MCI_WAVE_GETDEVCAPS_OUTPUTS = &H4002& Type MCI_WAVE_OPEN_PARMS dwCallback As Long wDeviceID As Long lpstrDeviceType As String lpstrElementName As String lpstrAlias As String dwBufferSeconds As Long End Type Type MCI_WAVE_DELETE_PARMS dwCallback As Long dwFrom As Long dwTo As Long End Type Type MCI_WAVE_SET_PARMS dwCallback As Long dwTimeFormat As Long dwAudio As Long wInput As Long wOutput As Long wFormatTag As Integer wReserved2 As Integer nChannels As Integer wReserved3 As Integer nSamplesPerSec As Long nAvgBytesPerSec As Long nBlockAlign As Integer wReserved4 As Integer wBitsPerSample As Integer wReserved5 As Integer End Type ' indicadores para el campo dwReturn del bloque de parámetros MCI_STATUS_PARMS ' comando MCI_STATUS, (dwItem == MCI_SEQ_STATUS_DIVTYPE) Const MCI_SEQ_DIV_PPQN = (0 + MCI_SEQ_OFFSET) Const MCI_SEQ_DIV_SMPTE_24 = (1 + MCI_SEQ_OFFSET) Const MCI_SEQ_DIV_SMPTE_25 = (2 + MCI_SEQ_OFFSET) Const MCI_SEQ_DIV_SMPTE_30DROP = (3 + MCI_SEQ_OFFSET) Const MCI_SEQ_DIV_SMPTE_30 = (4 + MCI_SEQ_OFFSET) ' indicadores para el campo dwMaster del bloque de parámetros MCI_SEQ_SET_PARMS ' comando MCI_SET, (dwFlags == MCI_SEQ_SET_MASTER) Const MCI_SEQ_FORMAT_SONGPTR = &H4001 Const MCI_SEQ_FILE = &H4002 Const MCI_SEQ_MIDI = &H4003 Const MCI_SEQ_SMPTE = &H4004 Const MCI_SEQ_NONE = 65533 Const MCI_SEQ_MAPPER = 65535 ' indicadores para el campo dwItem del bloque de parámetros MCI_STATUS_PARMS Const MCI_SEQ_STATUS_TEMPO = &H4002& Const MCI_SEQ_STATUS_PORT = &H4003& Const MCI_SEQ_STATUS_SLAVE = &H4007& Const MCI_SEQ_STATUS_MASTER = &H4008& Const MCI_SEQ_STATUS_OFFSET = &H4009& Const MCI_SEQ_STATUS_DIVTYPE = &H400A& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_SET Const MCI_SEQ_SET_TEMPO = &H10000 Const MCI_SEQ_SET_PORT = &H20000 Const MCI_SEQ_SET_SLAVE = &H40000 Const MCI_SEQ_SET_MASTER = &H80000 Const MCI_SEQ_SET_OFFSET = &H1000000 Type MCI_SEQ_SET_PARMS dwCallback As Long dwTimeFormat As Long dwAudio As Long dwTempo As Long dwPort As Long dwSlave As Long dwMaster As Long dwOffset As Long End Type ' indicadores para el parámetro dwFlags del mensaje del comando MCI_OPEN Const MCI_ANIM_OPEN_WS = &H10000 Const MCI_ANIM_OPEN_PARENT = &H20000 Const MCI_ANIM_OPEN_NOSTATIC = &H40000 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_PLAY Const MCI_ANIM_PLAY_SPEED = &H10000 Const MCI_ANIM_PLAY_REVERSE = &H20000 Const MCI_ANIM_PLAY_FAST = &H40000 Const MCI_ANIM_PLAY_SLOW = &H80000 Const MCI_ANIM_PLAY_SCAN = &H100000 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_STEP Const MCI_ANIM_STEP_REVERSE = &H10000 Const MCI_ANIM_STEP_FRAMES = &H20000 ' indicadores para el campo dwItem del bloque de parámetros MCI_STATUS_PARMS Const MCI_ANIM_STATUS_SPEED = &H4001& Const MCI_ANIM_STATUS_FORWARD = &H4002& Const MCI_ANIM_STATUS_HWND = &H4003& Const MCI_ANIM_STATUS_HPAL = &H4004& Const MCI_ANIM_STATUS_STRETCH = &H4005& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_INFO Const MCI_ANIM_INFO_TEXT = &H10000 ' indicadores para el campo dwItem del bloque de parámetros MCI_GETDEVCAPS_PARMS Const MCI_ANIM_GETDEVCAPS_CAN_REVERSE = &H4001& Const MCI_ANIM_GETDEVCAPS_FAST_RATE = &H4002& Const MCI_ANIM_GETDEVCAPS_SLOW_RATE = &H4003& Const MCI_ANIM_GETDEVCAPS_NORMAL_RATE = &H4004& Const MCI_ANIM_GETDEVCAPS_PALETTES = &H4006& Const MCI_ANIM_GETDEVCAPS_CAN_STRETCH = &H4007& Const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = &H4008& ' indicadores para el mensaje del comando MCI_REALIZE Const MCI_ANIM_REALIZE_NORM = &H10000 Const MCI_ANIM_REALIZE_BKGD = &H20000 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_WINDOW Const MCI_ANIM_WINDOW_HWND = &H10000 Const MCI_ANIM_WINDOW_STATE = &H40000 Const MCI_ANIM_WINDOW_TEXT = &H80000 Const MCI_ANIM_WINDOW_ENABLE_STRETCH = &H100000 Const MCI_ANIM_WINDOW_DISABLE_STRETCH = &H200000 ' indicadores para el campo hWnd del bloque de parámetros MCI_ANIM_WINDOW_PARMS ' mensaje del comando MCI_WINDOW, (dwFlags == MCI_ANIM_WINDOW_HWND) Const MCI_ANIM_WINDOW_DEFAULT = &H0& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_PUT Const MCI_ANIM_RECT = &H10000 Const MCI_ANIM_PUT_SOURCE = &H20000 ' también MCI_WHERE Const MCI_ANIM_PUT_DESTINATION = &H40000 ' también MCI_WHERE ' indicadores para el parámetro dwFlags del mensaje del comando MCI_WHERE Const MCI_ANIM_WHERE_SOURCE = &H20000 Const MCI_ANIM_WHERE_DESTINATION = &H40000 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_UPDATE Const MCI_ANIM_UPDATE_HDC = &H20000 Type MCI_ANIM_OPEN_PARMS dwCallback As Long wDeviceID As Long lpstrDeviceType As String lpstrElementName As String lpstrAlias As String dwStyle As Long hWndParent As Long End Type Type MCI_ANIM_PLAY_PARMS dwCallback As Long dwFrom As Long dwTo As Long dwSpeed As Long End Type Type MCI_ANIM_STEP_PARMS dwCallback As Long dwFrames As Long End Type Type MCI_ANIM_WINDOW_PARMS dwCallback As Long hwnd As Long nCmdShow As Long lpstrText As String End Type Type MCI_ANIM_RECT_PARMS dwCallback As Long rc As Rect End Type Type MCI_ANIM_UPDATE_PARMS dwCallback As Long rc As Rect hdc As Long End Type ' indicadores para el parámetro dwFlags del mensaje del comando MCI_OPEN Const MCI_OVLY_OPEN_WS = &H10000 Const MCI_OVLY_OPEN_PARENT = &H20000 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_STATUS Const MCI_OVLY_STATUS_HWND = &H4001& Const MCI_OVLY_STATUS_STRETCH = &H4002& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_INFO Const MCI_OVLY_INFO_TEXT = &H10000 ' indicadores para el campo dwItem del bloque de parámetros MCI_GETDEVCAPS_PARMS Const MCI_OVLY_GETDEVCAPS_CAN_STRETCH = &H4001& Const MCI_OVLY_GETDEVCAPS_CAN_FREEZE = &H4002& Const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = &H4003& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_WINDOW Const MCI_OVLY_WINDOW_HWND = &H10000 Const MCI_OVLY_WINDOW_STATE = &H40000 Const MCI_OVLY_WINDOW_TEXT = &H80000 Const MCI_OVLY_WINDOW_ENABLE_STRETCH = &H100000 Const MCI_OVLY_WINDOW_DISABLE_STRETCH = &H200000 ' indicadores para el parámetro hWnd del bloque de parámetros MCI_OVLY_WINDOW_PARMS Const MCI_OVLY_WINDOW_DEFAULT = &H0& ' indicadores para el parámetro dwFlags del mensaje del comando MCI_PUT Const MCI_OVLY_RECT = &H10000 Const MCI_OVLY_PUT_SOURCE = &H20000 Const MCI_OVLY_PUT_DESTINATION = &H40000 Const MCI_OVLY_PUT_FRAME = &H80000 Const MCI_OVLY_PUT_VIDEO = &H100000 ' indicadores para el parámetro dwFlags del mensaje del comando MCI_WHERE Const MCI_OVLY_WHERE_SOURCE = &H20000 Const MCI_OVLY_WHERE_DESTINATION = &H40000 Const MCI_OVLY_WHERE_FRAME = &H80000 Const MCI_OVLY_WHERE_VIDEO = &H100000 Type MCI_OVLY_OPEN_PARMS dwCallback As Long wDeviceID As Long lpstrDeviceType As String lpstrElementName As String lpstrAlias As String dwStyle As Long hWndParent As Long End Type Type MCI_OVLY_WINDOW_PARMS dwCallback As Long hwnd As Long nCmdShow As Long lpstrText As String End Type Type MCI_OVLY_RECT_PARMS dwCallback As Long rc As Rect End Type Type MCI_OVLY_SAVE_PARMS dwCallback As Long lpFileName As String rc As Rect End Type Type MCI_OVLY_LOAD_PARMS dwCallback As Long lpFileName As String rc As Rect End Type Const CAPS1 = 94 ' otras mayúsculas Const C1_TRANSPARENT = &H1 ' nueva mayúscula de barrido Const NEWTRANSPARENT = 3 ' úselo con SetBkMode() Const QUERYROPSUPPORT = 40 ' úselo para determinar la compatibilidad ROP Const SELECTDIB = 41 ' escape del archivo DIB.DRV seleccionado ' ---------------- ' Funciones de administración de bases de datos de asociación shell ' ----------------- ' valores de error para ShellExecute() superior a los códigos WinExec() normales Const SE_ERR_SHARE = 26 Const SE_ERR_ASSOCINCOMPLETE = 27 Const SE_ERR_DDETIMEOUT = 28 Const SE_ERR_DDEFAIL = 29 Const SE_ERR_DDEBUSY = 30 Const SE_ERR_NOASSOC = 31 ' ---------------- ' API de impresión ' ---------------- Type PRINTER_INFO_1 flags As Long pDescription As String pName As String pComment As String End Type Type PRINTER_INFO_2 pServerName As String pPrinterName As String pShareName As String pPortName As String pDriverName As String pComment As String pLocation As String pDevMode As DEVMODE pSepFile As String pPrintProcessor As String pDatatype As String pParameters As String pSecurityDescriptor As SECURITY_DESCRIPTOR Attributes As Long Priority As Long DefaultPriority As Long StartTime As Long UntilTime As Long Status As Long cJobs As Long AveragePPM As Long End Type Type PRINTER_INFO_3 pSecurityDescriptor As SECURITY_DESCRIPTOR End Type Const PRINTER_CONTROL_PAUSE = 1 Const PRINTER_CONTROL_RESUME = 2 Const PRINTER_CONTROL_PURGE = 3 Const PRINTER_STATUS_PAUSED = &H1 Const PRINTER_STATUS_ERROR = &H2 Const PRINTER_STATUS_PENDING_DELETION = &H4 Const PRINTER_STATUS_PAPER_JAM = &H8 Const PRINTER_STATUS_PAPER_OUT = &H10 Const PRINTER_STATUS_MANUAL_FEED = &H20 Const PRINTER_STATUS_PAPER_PROBLEM = &H40 Const PRINTER_STATUS_OFFLINE = &H80 Const PRINTER_STATUS_IO_ACTIVE = &H100 Const PRINTER_STATUS_BUSY = &H200 Const PRINTER_STATUS_PRINTING = &H400 Const PRINTER_STATUS_OUTPUT_BIN_FULL = &H800 Const PRINTER_STATUS_NOT_AVAILABLE = &H1000 Const PRINTER_STATUS_WAITING = &H2000 Const PRINTER_STATUS_PROCESSING = &H4000 Const PRINTER_STATUS_INITIALIZING = &H8000 Const PRINTER_STATUS_WARMING_UP = &H10000 Const PRINTER_STATUS_TONER_LOW = &H20000 Const PRINTER_STATUS_NO_TONER = &H40000 Const PRINTER_STATUS_PAGE_PUNT = &H80000 Const PRINTER_STATUS_USER_INTERVENTION = &H100000 Const PRINTER_STATUS_OUT_OF_MEMORY = &H200000 Const PRINTER_STATUS_DOOR_OPEN = &H400000 Const PRINTER_ATTRIBUTE_QUEUED = &H1 Const PRINTER_ATTRIBUTE_DIRECT = &H2 Const PRINTER_ATTRIBUTE_DEFAULT = &H4 Const PRINTER_ATTRIBUTE_SHARED = &H8 Const PRINTER_ATTRIBUTE_NETWORK = &H10 Const PRINTER_ATTRIBUTE_HIDDEN = &H20 Const PRINTER_ATTRIBUTE_LOCAL = &H40 Const NO_PRIORITY = 0 Const MAX_PRIORITY = 99 Const MIN_PRIORITY = 1 Const DEF_PRIORITY = 1 Type JOB_INFO_1 JobId As Long pPrinterName As String pMachineName As String pUserName As String pDocument As String pDatatype As String pStatus As String Status As Long Priority As Long Position As Long TotalPages As Long PagesPrinted As Long Submitted As SYSTEMTIME End Type Type JOB_INFO_2 JobId As Long pPrinterName As String pMachineName As String pUserName As String pDocument As String pNotifyName As String pDatatype As String pPrintProcessor As String pParameters As String pDriverName As String pDevMode As DEVMODE pStatus As String pSecurityDescriptor As SECURITY_DESCRIPTOR Status As Long Priority As Long Position As Long StartTime As Long UntilTime As Long TotalPages As Long Size As Long Submitted As SYSTEMTIME time As Long PagesPrinted As Long End Type Const JOB_CONTROL_PAUSE = 1 Const JOB_CONTROL_RESUME = 2 Const JOB_CONTROL_CANCEL = 3 Const JOB_CONTROL_RESTART = 4 Const JOB_STATUS_PAUSED = &H1 Const JOB_STATUS_ERROR = &H2 Const JOB_STATUS_DELETING = &H4 Const JOB_STATUS_SPOOLING = &H8 Const JOB_STATUS_PRINTING = &H10 Const JOB_STATUS_OFFLINE = &H20 Const JOB_STATUS_PAPEROUT = &H40 Const JOB_STATUS_PRINTED = &H80 Const JOB_POSITION_UNSPECIFIED = 0 Type ADDJOB_INFO_1 Path As String JobId As Long End Type Type DRIVER_INFO_1 pName As String End Type Type DRIVER_INFO_2 cVersion As Long pName As String pEnvironment As String pDriverPath As String pDataFile As String pConfigFile As String End Type Type DOC_INFO_1 pDocName As String pOutputFile As String pDatatype As String End Type Type FORM_INFO_1 pName As String Size As SIZEL ImageableArea As RECTL End Type Const FORM_BUILTIN = &H1 Type PRINTPROCESSOR_INFO_1 pName As String End Type Type PORT_INFO_1 pName As String End Type Type MONITOR_INFO_1 pName As String End Type Type MONITOR_INFO_2 pName As String pEnvironment As String pDLLName As String End Type Type DATATYPES_INFO_1 pName As String End Type Type PRINTER_DEFAULTS pDatatype As String pDevMode As DEVMODE DesiredAccess As Long End Type Type PRINTER_INFO_4 pPrinterName As String pServerName As String Attributes As Long End Type Type PRINTER_INFO_5 pPrinterName As String pPortName As String Attributes As Long DeviceNotSelectedTimeout As Long TransmissionRetryTimeout As Long End Type Const PRINTER_CONTROL_SET_STATUS = 4 Const PRINTER_ATTRIBUTE_WORK_OFFLINE = &H400 Const PRINTER_ATTRIBUTE_ENABLE_BIDI = &H800 Const JOB_CONTROL_DELETE = 5 Const JOB_STATUS_USER_INTERVENTION = &H10000 Type DRIVER_INFO_3 cVersion As Long pName As String ' QMS 810 pEnvironment As String ' Win32 x86 pDriverPath As String ' c:\drivers\pscript.dll pDataFile As String ' c:\drivers\QMS810.PPD pConfigFile As String ' c:\drivers\PSCRPTUI.DLL pHelpFile As String ' c:\drivers\PSCRPTUI.HLP pDependentFiles As String ' pMonitorName As String ' "PJL monitor" pDefaultDataType As String ' "EMF" End Type Type DOC_INFO_2 pDocName As String pOutputFile As String pDatatype As String dwMode As Long JobId As Long End Type Const DI_CHANNEL = 1 ' inicia el canal de lectura/escritura directas, Const DI_READ_SPOOL_JOB = 3 Type PORT_INFO_2 pPortName As String pMonitorName As String pDescription As String fPortType As Long Reserved As Long End Type Const PORT_TYPE_WRITE = &H1 Const PORT_TYPE_READ = &H2 Const PORT_TYPE_REDIRECTED = &H4 Const PORT_TYPE_NET_ATTACHED = &H8 Declare Function EnumPrinters Lib "winspool.drv" Alias "EnumPrintersA" (ByVal flags As Long, ByVal name As String, ByVal Level As Long, pPrinterEnum As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long Declare Function EnumPrinterPropertySheets Lib "winspool.drv" Alias "EnumPrinterPropertySheets" (hPrinter As Long, hwnd As Long, lpfnAdd As Long, ByVal lParam As Long) As Long Const PRINTER_ENUM_DEFAULT = &H1 Const PRINTER_ENUM_LOCAL = &H2 Const PRINTER_ENUM_CONNECTIONS = &H4 Const PRINTER_ENUM_FAVORITE = &H4 Const PRINTER_ENUM_NAME = &H8 Const PRINTER_ENUM_REMOTE = &H10 Const PRINTER_ENUM_SHARED = &H20 Const PRINTER_ENUM_NETWORK = &H40 Const PRINTER_ENUM_EXPAND = &H4000 Const PRINTER_ENUM_CONTAINER = &H8000 Const PRINTER_ENUM_ICONMASK = &HFF0000 Const PRINTER_ENUM_ICON1 = &H10000 Const PRINTER_ENUM_ICON2 = &H20000 Const PRINTER_ENUM_ICON3 = &H40000 Const PRINTER_ENUM_ICON4 = &H80000 Const PRINTER_ENUM_ICON5 = &H100000 Const PRINTER_ENUM_ICON6 = &H200000 Const PRINTER_ENUM_ICON7 = &H400000 Const PRINTER_ENUM_ICON8 = &H800000 Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long Declare Function ResetPrinter Lib "winspool.drv" Alias "ResetPrinterA" (ByVal hPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long Declare Function SetJob Lib "winspool.drv" Alias "SetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal Command As Long) As Long Declare Function GetJob Lib "winspool.drv" Alias "GetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long Declare Function AddPrinter Lib "winspool.drv" Alias "AddPrinterA" (ByVal pName As String, ByVal Level As Long, pPrinter As Any) As Long Declare Function AddPrinterDriver Lib "winspool.drv" Alias "AddPrinterDriverA" (ByVal pName As String, ByVal Level As Long, pDriverInfo As Any) As Long Declare Function EnumPrinterDrivers Lib "winspool.drv" Alias "EnumPrinterDriversA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcRetruned As Long) As Long Declare Function GetPrinterDriver Lib "winspool.drv" Alias "GetPrinterDriverA" (ByVal hPrinter As Long, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long Declare Function GetPrinterDriverDirectory Lib "winspool.drv" Alias "GetPrinterDriverDirectoryA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pDriverDirectory As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long Declare Function DeletePrinterDriver Lib "winspool.drv" Alias "DeletePrinterDriverA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pDriverName As String) As Long Declare Function AddPrintProcessor Lib "winspool.drv" Alias "AddPrintProcessorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPathName As String, ByVal pPrintProcessorName As String) As Long Declare Function EnumPrintProcessors Lib "winspool.drv" Alias "EnumPrintProcessorsA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pPrintProcessorInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long Declare Function GetPrintProcessorDirectory Lib "winspool.drv" Alias "GetPrintProcessorDirectoryA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, ByVal pPrintProcessorInfo As String, ByVal cdBuf As Long, pcbNeeded As Long) As Long Declare Function EnumPrintProcessorDatatypes Lib "winspool.drv" Alias "EnumPrintProcessorDatatypesA" (ByVal pName As String, ByVal pPrintProcessorName As String, ByVal Level As Long, pDatatypes As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcRetruned As Long) As Long Declare Function DeletePrintProcessor Lib "winspool.drv" Alias "DeletePrintProcessorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProcessorName As String) As Long Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As Byte) As Long Declare Function StartPagePrinter Lib "winspool.drv" Alias "StartPagePrinter" (ByVal hPrinter As Long) As Long Declare Function WritePrinter Lib "winspool.drv" Alias "WritePrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long Declare Function EndPagePrinter Lib "winspool.drv" Alias "EndPagePrinter" (ByVal hPrinter As Long) As Long Declare Function AbortPrinter Lib "winspool.drv" Alias "AbortPrinter" (ByVal hPrinter As Long) As Long Declare Function ReadPrinter Lib "winspool.drv" Alias "ReadPrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pNoBytesRead As Long) As Long Declare Function EndDocPrinter Lib "winspool.drv" Alias "EndDocPrinter" (ByVal hPrinter As Long) As Long Declare Function AddJob Lib "winspool.drv" Alias "AddJobA" (ByVal hPrinter As Long, ByVal Level As Long, pData As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long Declare Function ScheduleJob Lib "winspool.drv" Alias "ScheduleJob" (ByVal hPrinter As Long, ByVal JobId As Long) As Long Declare Function PrinterProperties Lib "winspool.drv" Alias "PrinterProperties" (ByVal hwnd As Long, ByVal hPrinter As Long) As Long Declare Function DocumentProperties Lib "winspool.drv" Alias "DocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, pDevModeOutput As DEVMODE, pDevModeInput As DEVMODE, ByVal fMode As Long) As Long Declare Function AdvancedDocumentProperties Lib "winspool.drv" Alias "AdvancedDocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, pDevModeOutput As DEVMODE, pDevModeInput As DEVMODE) As Long Declare Function GetPrinterData Lib "winspool.drv" Alias "GetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, pType As Long, pData As Byte, ByVal nSize As Long, pcbNeeded As Long) As Long Declare Function SetPrinterData Lib "winspool.drv" Alias "SetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, ByVal dwType As Long, pData As Byte, ByVal cbData As Long) As Long Declare Function WaitForPrinterChange Lib "winspool.drv" Alias "WaitForPrinterChange" (ByVal hPrinter As Long, ByVal flags As Long) As Long Const PRINTER_CHANGE_ADD_PRINTER = &H1 Const PRINTER_CHANGE_SET_PRINTER = &H2 Const PRINTER_CHANGE_DELETE_PRINTER = &H4 Const PRINTER_CHANGE_PRINTER = &HFF Const PRINTER_CHANGE_ADD_JOB = &H100 Const PRINTER_CHANGE_SET_JOB = &H200 Const PRINTER_CHANGE_DELETE_JOB = &H400 Const PRINTER_CHANGE_WRITE_JOB = &H800 Const PRINTER_CHANGE_JOB = &HFF00 Const PRINTER_CHANGE_ADD_FORM = &H10000 Const PRINTER_CHANGE_SET_FORM = &H20000 Const PRINTER_CHANGE_DELETE_FORM = &H40000 Const PRINTER_CHANGE_FORM = &H70000 Const PRINTER_CHANGE_ADD_PORT = &H100000 Const PRINTER_CHANGE_CONFIGURE_PORT = &H200000 Const PRINTER_CHANGE_DELETE_PORT = &H400000 Const PRINTER_CHANGE_PORT = &H700000 Const PRINTER_CHANGE_ADD_PRINT_PROCESSOR = &H1000000 Const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = &H4000000 Const PRINTER_CHANGE_PRINT_PROCESSOR = &H7000000 Const PRINTER_CHANGE_ADD_PRINTER_DRIVER = &H10000000 Const PRINTER_CHANGE_DELETE_PRINTER_DRIVER = &H40000000 Const PRINTER_CHANGE_PRINTER_DRIVER = &H70000000 Const PRINTER_CHANGE_TIMEOUT = &H80000000 Const PRINTER_CHANGE_ALL = &H7777FFFF Declare Function PrinterMessageBox Lib "winspool.drv" Alias "PrinterMessageBoxA" (ByVal hPrinter As Long, ByVal error As Long, ByVal hwnd As Long, ByVal pText As String, ByVal pCaption As String, ByVal dwType As Long) As Long Const PRINTER_ERROR_INFORMATION = &H80000000 Const PRINTER_ERROR_WARNING = &H40000000 Const PRINTER_ERROR_SEVERE = &H20000000 Const PRINTER_ERROR_OUTOFPAPER = &H1 Const PRINTER_ERROR_JAM = &H2 Const PRINTER_ERROR_OUTOFTONER = &H4 Declare Function ClosePrinter Lib "winspool.drv" Alias "ClosePrinter" (ByVal hPrinter As Long) As Long Declare Function AddForm Lib "winspool.drv" Alias "AddFormA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte) As Long Declare Function DeleteForm Lib "winspool.drv" Alias "DeleteFormA" (ByVal hPrinter As Long, ByVal pFormName As String) As Long Declare Function GetForm Lib "winspool.drv" Alias "GetFormA" (ByVal hPrinter As Long, ByVal pFormName As String, ByVal Level As Long, pForm As Byte, ByVal cbBuf As Long, pcbNeeded As Long) As Long Declare Function SetForm Lib "winspool.drv" Alias "SetFormA" (ByVal hPrinter As Long, ByVal pFormName As String, ByVal Level As Long, pForm As Byte) As Long Declare Function EnumForms Lib "winspool.drv" Alias "EnumFormsA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long Declare Function EnumMonitors Lib "winspool.drv" Alias "EnumMonitorsA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long Declare Function AddMonitor Lib "winspool.drv" Alias "AddMonitorA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte) As Long Declare Function DeleteMonitor Lib "winspool.drv" Alias "DeleteMonitorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pMonitorName As String) As Long Declare Function EnumPorts Lib "winspool.drv" Alias "EnumPortsA" (ByVal pName As String, ByVal Level As Long, ByVal lpbPorts As Long, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long Declare Function AddPort Lib "winspool.drv" Alias "AddPortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pMonitorName As String) As Long Declare Function ConfigurePort Lib "winspool.drv" Alias "ConfigurePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long Declare Function DeletePort Lib "winspool.drv" Alias "DeletePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long Declare Function AddPrinterConnection Lib "winspool.drv" Alias "AddPrinterConnectionA" (ByVal pName As String) As Long Declare Function DeletePrinterConnection Lib "winspool.drv" Alias "DeletePrinterConnectionA" (ByVal pName As String) As Long Declare Function ConnectToPrinterDlg Lib "winspool.drv" Alias "ConnectToPrinterDlg" (ByVal hwnd As Long, ByVal flags As Long) As Long Type PROVIDOR_INFO_1 pName As String pEnvironment As String pDLLName As String End Type Declare Function AddPrintProvidor Lib "winspool.drv" Alias "AddPrintProvidorA" (ByVal pName As String, ByVal Level As Long, pProvidorInfo As Byte) As Long Declare Function DeletePrintProvidor Lib "winspool.drv" Alias "DeletePrintProvidorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProvidorName As String) As Long Const SERVER_ACCESS_ADMINISTER = &H1 Const SERVER_ACCESS_ENUMERATE = &H2 Const PRINTER_ACCESS_ADMINISTER = &H4 Const PRINTER_ACCESS_USE = &H8 Const JOB_ACCESS_ADMINISTER = &H10 ' Derechos de acceso para servidores de impresión Const SERVER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SERVER_ACCESS_ADMINISTER Or SERVER_ACCESS_ENUMERATE) Const SERVER_READ = (STANDARD_RIGHTS_READ Or SERVER_ACCESS_ENUMERATE) Const SERVER_WRITE = (STANDARD_RIGHTS_WRITE Or SERVER_ACCESS_ADMINISTER Or SERVER_ACCESS_ENUMERATE) Const SERVER_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or SERVER_ACCESS_ENUMERATE) ' Derechos de acceso para impresoras Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE) Const PRINTER_READ = (STANDARD_RIGHTS_READ Or PRINTER_ACCESS_USE) Const PRINTER_WRITE = (STANDARD_RIGHTS_WRITE Or PRINTER_ACCESS_USE) Const PRINTER_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or PRINTER_ACCESS_USE) ' Derechos de acceso para trabajos Const JOB_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or JOB_ACCESS_ADMINISTER) Const JOB_READ = (STANDARD_RIGHTS_READ Or JOB_ACCESS_ADMINISTER) Const JOB_WRITE = (STANDARD_RIGHTS_WRITE Or JOB_ACCESS_ADMINISTER) Const JOB_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or JOB_ACCESS_ADMINISTER) ' Compatibilidad de red de Windows ' ENUMERACIÓN DE RECURSOS Const RESOURCE_CONNECTED = &H1 Const RESOURCE_PUBLICNET = &H2 Const RESOURCE_REMEMBERED = &H3 Const RESOURCETYPE_ANY = &H0 Const RESOURCETYPE_DISK = &H1 Const RESOURCETYPE_PRINT = &H2 Const RESOURCETYPE_UNKNOWN = &HFFFF Const RESOURCEUSAGE_CONNECTABLE = &H1 Const RESOURCEUSAGE_CONTAINER = &H2 Const RESOURCEUSAGE_RESERVED = &H80000000 Const RESOURCEDISPLAYTYPE_GENERIC = &H0 Const RESOURCEDISPLAYTYPE_DOMAIN = &H1 Const RESOURCEDISPLAYTYPE_SERVER = &H2 Const RESOURCEDISPLAYTYPE_SHARE = &H3 Const RESOURCEDISPLAYTYPE_FILE = &H4 Const RESOURCEDISPLAYTYPE_GROUP = &H5 Type NETRESOURCE dwScope As Long dwType As Long dwDisplayType As Long dwUsage As Long lpLocalName As String lpRemoteName As String lpComment As String lpProvider As String End Type Const CONNECT_UPDATE_PROFILE = &H1 Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As NETRESOURCE, lphEnum As Long) As Long Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As Any, lpBufferSize As Long) As Long Declare Function WNetCloseEnum Lib "mpr.dll" Alias "WNetCloseEnum" (ByVal hEnum As Long) As Long Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long Declare Function WNetConnectionDialog Lib "mpr.dll" Alias "WNetConnectionDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long Declare Function WNetDisconnectDialog Lib "mpr.dll" Alias "WNetDisconnectDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long Declare Function WNetGetLastError Lib "mpr.dll" Alias "WNetGetLastErrorA" (lpError As Long, ByVal lpErrorBuf As String, ByVal nErrorBufSize As Long, ByVal lpNameBuf As String, ByVal nNameBufSize As Long) As Long ' Códigos de estado ' Esta sección proporciona compatibilidad con versiones anteriores. Es preferible usar códigos ' ERROR_. Puede que los códigos de error WN_ no estén disponibles en futuras versiones. ' General Const WN_SUCCESS = NO_ERROR Const WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED Const WN_NET_ERROR = ERROR_UNEXP_NET_ERR Const WN_MORE_DATA = ERROR_MORE_DATA Const WN_BAD_POINTER = ERROR_INVALID_ADDRESS Const WN_BAD_VALUE = ERROR_INVALID_PARAMETER Const WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD Const WN_ACCESS_DENIED = ERROR_ACCESS_DENIED Const WN_FUNCTION_BUSY = ERROR_BUSY Const WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR Const WN_BAD_USER = ERROR_BAD_USERNAME Const WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY Const WN_NO_NETWORK = ERROR_NO_NETWORK Const WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR ' Conexión Const WN_NOT_CONNECTED = ERROR_NOT_CONNECTED Const WN_OPEN_FILES = ERROR_OPEN_FILES Const WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE Const WN_BAD_NETNAME = ERROR_BAD_NET_NAME Const WN_BAD_LOCALNAME = ERROR_BAD_DEVICE Const WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED Const WN_DEVICE_ERROR = ERROR_GEN_FAILURE Const WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL Const WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH Const WN_BAD_PROVIDER = ERROR_BAD_PROVIDER Const WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE Const WN_BAD_PROFILE = ERROR_BAD_PROFILE ' Enumeración Const WN_BAD_HANDLE = ERROR_INVALID_HANDLE Const WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS Const WN_NOT_CONTAINER = ERROR_NOT_CONTAINER Const WN_NO_ERROR = NO_ERROR ' Esta sección contiene las definiciones ' para el soporte de NetBIOS 3.0 portátil Const NCBNAMSZ = 16 ' longitud absoluta del nombre de red Const MAX_LANA = 254 ' LANA que están en el intervalo 0 a MAX_LANA Type NCB ncb_command As Integer ncb_retcode As Integer ncb_lsn As Integer ncb_num As Integer ncb_buffer As String ncb_length As Integer ncb_callname As String * NCBNAMSZ ncb_name As String * NCBNAMSZ ncb_rto As Integer ncb_sto As Integer ncb_post As Long ncb_lana_num As Integer ncb_cmd_cplt As Integer ncb_reserve(10) As Byte ' Reservado, tiene que ser 0 ncb_event As Long End Type Type ADAPTER_STATUS adapter_address As String * 6 rev_major As Integer reserved0 As Integer adapter_type As Integer rev_minor As Integer duration As Integer frmr_recv As Integer frmr_xmit As Integer iframe_recv_err As Integer xmit_aborts As Integer xmit_success As Long recv_success As Long iframe_xmit_err As Integer recv_buff_unavail As Integer t1_timeouts As Integer ti_timeouts As Integer Reserved1 As Long free_ncbs As Integer max_cfg_ncbs As Integer max_ncbs As Integer xmit_buf_unavail As Integer max_dgram_size As Integer pending_sess As Integer max_cfg_sess As Integer max_sess As Integer max_sess_pkt_size As Integer name_count As Integer End Type Type NAME_BUFFER name As String * NCBNAMSZ name_num As Integer name_flags As Integer End Type ' valores para los bits name_flags. Const NAME_FLAGS_MASK = &H87 Const GROUP_NAME = &H80 Const UNIQUE_NAME = &H0 Const REGISTERING = &H0 Const REGISTERED = &H4 Const DEREGISTERED = &H5 Const DUPLICATE = &H6 Const DUPLICATE_DEREG = &H7 Type SESSION_HEADER sess_name As Integer num_sess As Integer rcv_dg_outstanding As Integer rcv_any_outstanding As Integer End Type Type SESSION_BUFFER lsn As Integer State As Integer local_name As String * NCBNAMSZ remote_name As String * NCBNAMSZ rcvs_outstanding As Integer sends_outstanding As Integer End Type ' Valores para el estado Const LISTEN_OUTSTANDING = &H1 Const CALL_PENDING = &H2 Const SESSION_ESTABLISHED = &H3 Const HANGUP_PENDING = &H4 Const HANGUP_COMPLETE = &H5 Const SESSION_ABORTED = &H6 Type LANA_ENUM Length As Integer lana(MAX_LANA) As Integer End Type Type FIND_NAME_HEADER node_count As Integer Reserved As Integer unique_group As Integer End Type Type FIND_NAME_BUFFER Length As Integer access_control As Integer frame_control As Integer destination_addr(6) As Integer source_addr(6) As Integer routing_info(18) As Integer End Type Type ACTION_HEADER transport_id As Long action_code As Integer Reserved As Integer End Type ' Valores para transport_id Const ALL_TRANSPORTS = "M\0\0\0" Const MS_NBF = "MNBF" ' Códigos del comando NCB Const NCBCALL = &H10 ' NCB LLAMAR Const NCBLISTEN = &H11 ' NCB ESCUCHAR Const NCBHANGUP = &H12 ' NCB COLGAR Const NCBSEND = &H14 ' NCB ENVIAR Const NCBRECV = &H15 ' NCB RECIBIR Const NCBRECVANY = &H16 ' NCB RECIBIR CUALQUIERA Const NCBCHAINSEND = &H17 ' NCB ENVIAR CADENA Const NCBDGSEND = &H20 ' NCB ENVIAR DATAGRAMA Const NCBDGRECV = &H21 ' NCB RECIBIR DATAGRAMA Const NCBDGSENDBC = &H22 ' NCB ENVIAR DATAGRAMA DE DIFUSIÓN Const NCBDGRECVBC = &H23 ' NCB RECIBIR DATAGRAMA DE DIFUSIÓN Const NCBADDNAME = &H30 ' NCB AGREGAR NOMBRE Const NCBDELNAME = &H31 ' NCB ELIMINAR NOMBRE Const NCBRESET = &H32 ' NCB RESTABLECER Const NCBASTAT = &H33 ' NCB ESTADO DE ADAPTADOR Const NCBSSTAT = &H34 ' NCB ESTADO DE SESIÓN Const NCBCANCEL = &H35 ' NCB CANCELAR Const NCBADDGRNAME = &H36 ' NCB AGREGAR NOMBRE DE GRUPO Const NCBENUM = &H37 ' NCB ENUMERAR NÚMEROS LANA Const NCBUNLINK = &H70 ' NCB DESVINCULAR Const NCBSENDNA = &H71 ' NCB NO ENVIAR ACK Const NCBCHAINSENDNA = &H72 ' NCB CADENA ENVIADA NO ES ACK Const NCBLANSTALERT = &H73 ' NCB ALERTA DEL ESTADO DE LAN Const NCBACTION = &H77 ' NCB ACCIÓN Const NCBFINDNAME = &H78 ' NCB ENCONTRAR NOMBRE Const NCBTRACE = &H79 ' NCB SEGUIR PASO A PASO Const ASYNCH = &H80 ' conjunto de bits superiores == asíncrono ' Códigos de retorno de NCB Const NRC_GOODRET = &H0 ' valor devuelto válido ' se devuelve también al aceptar la solicitud de ASYNCH Const NRC_BUFLEN = &H1 ' longitud de búfer no permitida Const NRC_ILLCMD = &H3 ' comando no permitido Const NRC_CMDTMO = &H5 ' finalizado el tiempo de espera del comando Const NRC_INCOMP = &H6 ' mensaje incompleto, envíe otro comando Const NRC_BADDR = &H7 ' dirección de búfer no permitida Const NRC_SNUMOUT = &H8 ' número de sesión fuera del intervalo Const NRC_NORES = &H9 ' no hay recursos disponibles Const NRC_SCLOSED = &HA ' sesión cerrada Const NRC_CMDCAN = &HB ' comando cancelado Const NRC_DUPNAME = &HD ' nombre duplicado Const NRC_NAMTFUL = &HE ' tabla de nombres llena Const NRC_ACTSES = &HF ' no se puede eliminar; el nombre tiene sesiones activas Const NRC_LOCTFUL = &H11 ' tabla de sesiones locales llena Const NRC_REMTFUL = &H12 ' tabla de sesiones remotas llena Const NRC_ILLNN = &H13 ' número de nombre no permitido Const NRC_NOCALL = &H14 ' no hay nombre de llamada Const NRC_NOWILD = &H15 ' no se puede poner en NCB_NAME Const NRC_INUSE = &H16 ' el nombre se está usando en el adaptador remoto Const NRC_NAMERR = &H17 ' nombre eliminado Const NRC_SABORT = &H18 ' sesión finalizada anormalmente Const NRC_NAMCONF = &H19 ' detectado conflicto de nombres Const NRC_IFBUSY = &H21 ' interfaz ocupada, use IRET antes de intentar de nuevo Const NRC_TOOMANY = &H22 ' hay demasiados comandos pendientes, inténtelo más tarde Const NRC_BRIDGE = &H23 ' campo ncb_lana_num no válido Const NRC_CANOCCR = &H24 ' comando terminado mientras se producía la cancelación Const NRC_CANCEL = &H26 ' no es válido cancelar el comando Const NRC_DUPENV = &H30 ' nombre definido por otro proceso local Const NRC_ENVNOTDEF = &H34 ' entorno sin definir. Es necesario RESTABLECER Const NRC_OSRESNOTAV = &H35 ' agotados los recursos necesarios del SO Const NRC_MAXAPPS = &H36 ' superado el número máximo de aplicaciones Const NRC_NOSAPS = &H37 ' no hay saps disponibles para netbios Const NRC_NORESOURCES = &H38 ' los recursos solicitados no están disponibles Const NRC_INVADDRESS = &H39 ' dirección ncb no válida o longitud > segmento Const NRC_INVDDID = &H3B ' NCB DDID no válido Const NRC_LOCKFAIL = &H3C ' fallo de bloqueo en el área del usuario Const NRC_OPENERR = &H3F ' NETBIOS no cargado Const NRC_SYSTEM = &H40 ' error del sistema Const NRC_PENDING = &HFF ' el comando asíncrono no ha terminado ' ' NetAPIs de Win32. ' Declare Function NetUserChangePassword Lib "Netapi32.dll" (Domain As Any, User As Any, OldPass As Byte, NewPass As Byte) As Long Declare Function NetUserGetInfo Lib "Netapi32.dll" (lpServer As Any, UserName As Byte, ByVal Level As Long, lpBuffer As Long) As Long Declare Function NetUserGetGroups Lib "Netapi32.dll" (lpServer As Any, UserName As Byte, ByVal Level As Long, lpBuffer As Long, ByVal PrefMaxLen As Long, lpEntriesRead As Long, lpTotalEntries As Long) As Long Declare Function NetUserGetLocalGroups Lib "Netapi32.dll" (lpServer As Any, UserName As Byte, ByVal Level As Long, ByVal Flags As Long, lpBuffer As Long, ByVal MaxLen As Long, lpEntriesRead As Long, lpTotalEntries As Long) As Long Declare Function NetUserAdd Lib "netapi32" (lpServer As Any, ByVal Level As Long, lpUser As USER_INFO_3_API, lpError As Long) As Long Declare Function NetWkstaGetInfo Lib "Netapi32.dll" (lpServer As Any, ByVal Level As Long, lpBuffer As Any) As Long Declare Function NetWkstaUserGetInfo Lib "Netapi32.dll" (ByVal reserved As Any, ByVal Level As Long, lpBuffer As Any) As Long Declare Function NetApiBufferFree Lib "Netapi32.dll" (ByVal lpBuffer As Long) As Long Declare Function NetRemoteTOD Lib "Netapi32.dll" (yServer As Any, pBuffer As Long) As Long Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Declare Function GetUserNameW Lib "advapi32.dll" (lpBuffer As Byte, nSize As Long) As Long Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long Declare Function GetComputerNameW Lib "kernel32" (lpBuffer As Any, nSize As Long) As Long Declare Function GetCurrentProcess Lib "kernel32" () As Long Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long Declare Function GetTokenInformation Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal TokenInformationClass As Long, TokenInformation As Any, ByVal TokenInformationLength As Long, ReturnLength As Long) As Long Declare Function LookupAccountSid Lib "advapi32.dll" Alias "LookupAccountSidW" (ByVal lpSystemName As Any, Sid As Any, Name As Any, cbName As Long, ReferencedDomainName As Any, cbReferencedDomainName As Long, peUse As Integer) As Long Declare Function NetLocalGroupDelMembers Lib "netapi32.dll" (ByVal psServer As Long, ByVal psLocalGroup As Long, ByVal lLevel As Long, uMember As LOCALGROUP_MEMBERS_INFO_0, ByVal lMemberCount As Long) As Long Declare Function NetLocalGroupGetMembers Lib "netapi32.dll" (ByVal psServer As Long, ByVal psLocalGroup As Long, ByVal lLevel As Long, pBuffer As Long, ByVal lMaxLength As Long, plEntriesRead As Long, plTotalEntries As Long, phResume As Long) As Long Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As Any, lphEnum As Long) As Long Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As NETRESOURCE, lpBufferSize As Long) As Long Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum As Long) As Long Declare Function Netbios Lib "netapi32.dll" Alias "Netbios" (pncb As NCB) As Byte Type USER_INFO_3 ' El nivel 0 comienza aquí Name As Long ' El nivel 1 comienza aquí Password As Long PasswordAge As Long Privilege As Long HomeDir As Long Comment As Long Flags As Long ScriptPath As Long ' El nivel 2 comienza aquí AuthFlags As Long FullName As Long UserComment As Long Parms As Long Workstations As Long LastLogon As Long LastLogoff As Long AcctExpires As Long MaxStorage As Long UnitsPerWeek As Long LogonHours As Long BadPwCount As Long NumLogons As Long LogonServer As Long CountryCode As Long CodePage As Long ' El nivel 3 comienza aquí UserID As Long PrimaryGroupID As Long Profile As Long HomeDirDrive As Long PasswordExpired As Long End Type Type GROUP_INFO_2 Name As Long Comment As Long GroupID As Long Attributes As Long End Type Type LOCALGROUP_MEMBERS_INFO_0 pSID As Long End Type Type LOCALGROUP_MEMBERS_INFO_1 'El nivel 0 comienza aquí pSID As Long 'El nivel 1 comienza aquí eUsage As g_netSID_NAME_USE psName As Long End Type Type WKSTA_INFO_102 wki102_platform_id As Long wki102_computername As Long wki102_langroup As Long wki102_ver_major As Long wki102_ver_minor As Long wki102_lanroot As Long wki102_logged_on_users As Long End Type Type WKSTA_USER_INFO_1 wkui1_username As Long wkui1_logon_domain As Long wkui1_oth_domains As Long wkui1_logon_server As Long End Type Type NETRESOURCE dwScope As Long dwType As Long dwDisplayType As Long dwUsage As Long pLocalName As Long pRemoteName As Long pComment As Long pProvider As Long End Type Enum g_netSID_NAME_USE SidTypeUser = 1& SidTypeGroup = 2& SidTypeDomain = 3& SidTypeAlias = 4& SidTypeWellKnownGroup = 5& SidTypeDeletedAccount = 6& SidTypeInvalid = 7& SidTypeUnknown = 8& End Enum Const FILTER_TEMP_DUPLICATE_ACCOUNT As Long = &H1& Const FILTER_NORMAL_ACCOUNT As Long = &H2& Const FILTER_PROXY_ACCOUNT As Long = &H4& Const FILTER_INTERDOMAIN_TRUST_ACCOUNT As Long = &H8& Const FILTER_WORKSTATION_TRUST_ACCOUNT As Long = &H10& Const FILTER_SERVER_TRUST_ACCOUNT As Long = &H20& Const TIMEQ_FOREVER = -1& '((tipo long sin signo) -1L) Const USER_MAXSTORAGE_UNLIMITED = -1& '((tipo long sin signo) -1L) Const USER_NO_LOGOFF = -1& '((tipo long sin signo) -1L) Const UNITS_PER_DAY = 24 Const UNITS_PER_WEEK = UNITS_PER_DAY * 7 Const USER_PRIV_MASK = 3 Const USER_PRIV_GUEST = 0 Const USER_PRIV_USER = 1 Const USER_PRIV_ADMIN = 2 Const UNLEN = 256 ' Longitud máxima para el usuario Const GNLEN = UNLEN ' Longitud máxima para el nombre del grupo Const CNLEN = 15 ' Longitud máxima para el nombre del equipo Const PWLEN = 256 ' Longitud máxima para la contraseña Const LM20_PWLEN = 14 ' Longitud máxima para la contraseña LM 2.0 Const MAXCOMMENTSZ = 256 ' Longitud para comentarios de propósito múltiple Const LG_INCLUDE_INDIRECT As Long = &H1& Const UF_SCRIPT = &H1 Const UF_ACCOUNTDISABLE = &H2 Const UF_HOMEDIR_REQUIRED = &H8 Const UF_LOCKOUT = &H10 Const UF_PASSWD_NOTREQD = &H20 Const UF_PASSWD_CANT_CHANGE = &H40 Const LG_INCLUDE_INDIRECT As Long = &H1& Const NERR_Success As Long = 0& Const NERR_BASE = 2100 Const NERR_InvalidComputer = (NERR_BASE + 251) Const NERR_NotPrimary = (NERR_BASE + 126) Const NERR_GroupExists = (NERR_BASE + 123) Const NERR_UserExists = (NERR_BASE + 124) Const NERR_PasswordTooShort = (NERR_BASE + 145) Const RESOURCE_CONNECTED As Long = &H1& Const RESOURCE_GLOBALNET As Long = &H2& Const RESOURCE_REMEMBERED As Long = &H3& Const RESOURCE_ENUM_ALL As Long = &HFFFF Const RESOURCEDISPLAYTYPE_DOMAIN As Long = &H1& Const RESOURCEDISPLAYTYPE_FILE As Long = &H4& Const RESOURCEDISPLAYTYPE_GENERIC As Long = &H0& Const RESOURCEDISPLAYTYPE_GROUP As Long = &H5& Const RESOURCEDISPLAYTYPE_SERVER As Long = &H2& Const RESOURCEDISPLAYTYPE_SHARE As Long = &H3& Const RESOURCETYPE_ANY As Long = &H0& Const RESOURCETYPE_DISK As Long = &H1& Const RESOURCETYPE_PRINT As Long = &H2& Const RESOURCETYPE_UNKNOWN As Long = &HFFFF& Const RESOURCEUSAGE_ALL As Long = &H0& Const RESOURCEUSAGE_CONNECTABLE As Long = &H1& Const RESOURCEUSAGE_CONTAINER As Long = &H2& Const RESOURCEUSAGE_RESERVED As Long = &H80000000 ' Valores permitidos para la expresión contenida en except(). Const EXCEPTION_EXECUTE_HANDLER = 1 Const EXCEPTION_CONTINUE_SEARCH = 0 Const EXCEPTION_CONTINUE_EXECUTION = -1 ' Constantes y tipos de diálogo UI ' ----Constantes-------------------------------------------------------------- Const ctlFirst = &H400 Const ctlLast = &H4FF ' Botones de comando Const psh1 = &H400 Const psh2 = &H401 Const psh3 = &H402 Const psh4 = &H403 Const psh5 = &H404 Const psh6 = &H405 Const psh7 = &H406 Const psh8 = &H407 Const psh9 = &H408 Const psh10 = &H409 Const psh11 = &H40A Const psh12 = &H40B Const psh13 = &H40C Const psh14 = &H40D Const psh15 = &H40E Const pshHelp = psh15 Const psh16 = &H40F ' Casillas de verificación Const chx1 = &H410 Const chx2 = &H411 Const chx3 = &H412 Const chx4 = &H413 Const chx5 = &H414 Const chx6 = &H415 Const chx7 = &H416 Const chx8 = &H417 Const chx9 = &H418 Const chx10 = &H419 Const chx11 = &H41A Const chx12 = &H41B Const chx13 = &H41C Const chx14 = &H41D Const chx15 = &H41E Const chx16 = &H41D ' Botones de opción Const rad1 = &H420 Const rad2 = &H421 Const rad3 = &H422 Const rad4 = &H423 Const rad5 = &H424 Const rad6 = &H425 Const rad7 = &H426 Const rad8 = &H427 Const rad9 = &H428 Const rad10 = &H429 Const rad11 = &H42A Const rad12 = &H42B Const rad13 = &H42C Const rad14 = &H42D Const rad15 = &H42E Const rad16 = &H42F ' Grupos, marcos, rectángulos e iconos Const grp1 = &H430 Const grp2 = &H431 Const grp3 = &H432 Const grp4 = &H433 Const frm1 = &H434 Const frm2 = &H435 Const frm3 = &H436 Const frm4 = &H437 Const rct1 = &H438 Const rct2 = &H439 Const rct3 = &H43A Const rct4 = &H43B Const ico1 = &H43C Const ico2 = &H43D Const ico3 = &H43E Const ico4 = &H43F ' Texto estático Const stc1 = &H440 Const stc2 = &H441 Const stc3 = &H442 Const stc4 = &H443 Const stc5 = &H444 Const stc6 = &H445 Const stc7 = &H446 Const stc8 = &H447 Const stc9 = &H448 Const stc10 = &H449 Const stc11 = &H44A Const stc12 = &H44B Const stc13 = &H44C Const stc14 = &H44D Const stc15 = &H44E Const stc16 = &H44F Const stc17 = &H450 Const stc18 = &H451 Const stc19 = &H452 Const stc20 = &H453 Const stc21 = &H454 Const stc22 = &H455 Const stc23 = &H456 Const stc24 = &H457 Const stc25 = &H458 Const stc26 = &H459 Const stc27 = &H45A Const stc28 = &H45B Const stc29 = &H45C Const stc30 = &H45D Const stc31 = &H45E Const stc32 = &H45F ' Cuadros de lista Const lst1 = &H460 Const lst2 = &H461 Const lst3 = &H462 Const lst4 = &H463 Const lst5 = &H464 Const lst6 = &H465 Const lst7 = &H466 Const lst8 = &H467 Const lst9 = &H468 Const lst10 = &H469 Const lst11 = &H46A Const lst12 = &H46B Const lst13 = &H46C Const lst14 = &H46D Const lst15 = &H46E Const lst16 = &H46F ' Cuadros combinados Const cmb1 = &H470 Const cmb2 = &H471 Const cmb3 = &H472 Const cmb4 = &H473 Const cmb5 = &H474 Const cmb6 = &H475 Const cmb7 = &H476 Const cmb8 = &H477 Const cmb9 = &H478 Const cmb10 = &H479 Const cmb11 = &H47A Const cmb12 = &H47B Const cmb13 = &H47C Const cmb14 = &H47D Const cmb15 = &H47E Const cmb16 = &H47F ' Controles de edición Const edt1 = &H480 Const edt2 = &H481 Const edt3 = &H482 Const edt4 = &H483 Const edt5 = &H484 Const edt6 = &H485 Const edt7 = &H486 Const edt8 = &H487 Const edt9 = &H488 Const edt10 = &H489 Const edt11 = &H48A Const edt12 = &H48B Const edt13 = &H48C Const edt14 = &H48D Const edt15 = &H48E Const edt16 = &H48F ' Barras de desplazamiento Const scr1 = &H490 Const scr2 = &H491 Const scr3 = &H492 Const scr4 = &H493 Const scr5 = &H494 Const scr6 = &H495 Const scr7 = &H496 Const scr8 = &H497 Const FILEOPENORD = 1536 Const MULTIFILEOPENORD = 1537 Const PRINTDLGORD = 1538 Const PRNSETUPDLGORD = 1539 Const FINDDLGORD = 1540 Const REPLACEDLGORD = 1541 Const FONTDLGORD = 1542 Const FORMATDLGORD31 = 1543 Const FORMATDLGORD30 = 1544 Type CRGB bRed As Byte bGreen As Byte bBlue As Byte bExtra As Byte End Type ' ----------------- ' ADVAPI32 ' ----------------- ' definiciones de prototipos de funciones, constantes y tipos ' para la API del Registro de Windows de 32 bits Const HKEY_CLASSES_ROOT = &H80000000 Const HKEY_CURRENT_USER = &H80000001 Const HKEY_LOCAL_MACHINE = &H80000002 Const HKEY_USERS = &H80000003 Const HKEY_PERFORMANCE_DATA = &H80000004 Const HKEY_CURRENT_CONFIG = &H80000005 Const HKEY_DYN_DATA = &H80000006 ' Prototipos de la API del Registro Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long Declare Function RegConnectRegistry Lib "advapi32.dll" Alias "RegConnectRegistryA" (ByVal lpMachineName As String, ByVal hKey As Long, phkResult As Long) As Long Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long Declare Function RegFlushKey Lib "advapi32.dll" Alias "RegFlushKey" (ByVal hKey As Long) As Long Declare Function RegGetKeySecurity Lib "advapi32.dll" Alias "RegGetKeySecurity" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, lpcbSecurityDescriptor As Long) As Long Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long Declare Function RegNotifyChangeKeyValue Lib "advapi32.dll" Alias "RegNotifyChangeKeyValue" (ByVal hKey As Long, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long, ByVal hEvent As Long, ByVal fAsynchronus As Long) As Long Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, ByVal lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As Long Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value. Declare Function RegReplaceKey Lib "advapi32.dll" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long Declare Function RegRestoreKey Lib "advapi32.dll" Alias "RegRestoreKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal dwFlags As Long) As Long Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long Declare Function RegSetKeySecurity Lib "advapi32.dll" Alias "RegSetKeySecurity" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value. Declare Function RegUnLoadKey Lib "advapi32.dll" Alias "RegUnLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias "InitiateSystemShutdownA" (ByVal lpMachineName As String, ByVal lpMessage As String, ByVal dwTimeout As Long, ByVal bForceAppsClosed As Long, ByVal bRebootAfterShutdown As Long) As Long Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Long ' Nombres de las bases de datos de servicio Const SERVICES_ACTIVE_DATABASE = "ServicesActive" Const SERVICES_FAILED_DATABASE = "ServicesFailed" ' Valor para indicar que no se efectúa ningún cambio en un parámetro opcional Const SERVICE_NO_CHANGE = &HFFFF ' Estado del servicio -- para peticiones de Enum (máscara de bits) Const SERVICE_ACTIVE = &H1 Const SERVICE_INACTIVE = &H2 Const SERVICE_STATE_ALL = (SERVICE_ACTIVE Or SERVICE_INACTIVE) ' Controles Const SERVICE_CONTROL_STOP = &H1 Const SERVICE_CONTROL_PAUSE = &H2 Const SERVICE_CONTROL_CONTINUE = &H3 Const SERVICE_CONTROL_INTERROGATE = &H4 Const SERVICE_CONTROL_SHUTDOWN = &H5 ' Estado del servicio -- para CurrentState Const SERVICE_STOPPED = &H1 Const SERVICE_START_PENDING = &H2 Const SERVICE_STOP_PENDING = &H3 Const SERVICE_RUNNING = &H4 Const SERVICE_CONTINUE_PENDING = &H5 Const SERVICE_PAUSE_PENDING = &H6 Const SERVICE_PAUSED = &H7 ' Controles aceptados (máscara de bits) Const SERVICE_ACCEPT_STOP = &H1 Const SERVICE_ACCEPT_PAUSE_CONTINUE = &H2 Const SERVICE_ACCEPT_SHUTDOWN = &H4 ' Tipo de acceso específico del objeto Administrador de control del servicio Const SC_MANAGER_CONNECT = &H1 Const SC_MANAGER_CREATE_SERVICE = &H2 Const SC_MANAGER_ENUMERATE_SERVICE = &H4 Const SC_MANAGER_LOCK = &H8 Const SC_MANAGER_QUERY_LOCK_STATUS = &H10 Const SC_MANAGER_MODIFY_BOOT_CONFIG = &H20 Const SC_MANAGER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SC_MANAGER_CONNECT Or SC_MANAGER_CREATE_SERVICE Or SC_MANAGER_ENUMERATE_SERVICE Or SC_MANAGER_LOCK Or SC_MANAGER_QUERY_LOCK_STATUS Or SC_MANAGER_MODIFY_BOOT_CONFIG) ' Tipo de acceso específico del objeto Service Const SERVICE_QUERY_CONFIG = &H1 Const SERVICE_CHANGE_CONFIG = &H2 Const SERVICE_QUERY_STATUS = &H4 Const SERVICE_ENUMERATE_DEPENDENTS = &H8 Const SERVICE_START = &H10 Const SERVICE_STOP = &H20 Const SERVICE_PAUSE_CONTINUE = &H40 Const SERVICE_INTERROGATE = &H80 Const SERVICE_USER_DEFINED_CONTROL = &H100 Const SERVICE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SERVICE_QUERY_CONFIG Or SERVICE_CHANGE_CONFIG Or SERVICE_QUERY_STATUS Or SERVICE_ENUMERATE_DEPENDENTS Or SERVICE_START Or SERVICE_STOP Or SERVICE_PAUSE_CONTINUE Or SERVICE_INTERROGATE Or SERVICE_USER_DEFINED_CONTROL) Type SERVICE_STATUS dwServiceType As Long dwCurrentState As Long dwControlsAccepted As Long dwWin32ExitCode As Long dwServiceSpecificExitCode As Long dwCheckPoint As Long dwWaitHint As Long End Type Type ENUM_SERVICE_STATUS lpServiceName As String lpDisplayName As String ServiceStatus As SERVICE_STATUS End Type Type QUERY_SERVICE_LOCK_STATUS fIsLocked As Long lpLockOwner As String dwLockDuration As Long End Type Type QUERY_SERVICE_CONFIG dwServiceType As Long dwStartType As Long dwErrorControl As Long lpBinaryPathName As String lpLoadOrderGroup As String dwTagId As Long lpDependencies As String lpServiceStartName As String lpDisplayName As String End Type Type SERVICE_TABLE_ENTRY lpServiceName As String lpServiceProc As Long End Type ' ++ Versión: 0010 ' Incremente este número si una modificación tiene efectos globales ' Copyright (c) 1995 Microsoft Corporation ' Nombre de módulo: ' winsvc.h ' Resumen: ' Archivo de encabezado para el Administrador de control del servicio ' Entorno: ' Modo de usuario - Win32 ' --*/ ' ' Constantes ' Carácter que designa que un nombre es un grupo ' Const SC_GROUP_IDENTIFIER = "+" ' Prototipo para la función de controlador de control de servicio ' ///////////////////////////////////////////////////////////////////////// ' Prototipos de las funciones de la API ' ///////////////////////////////////////////////////////////////////////// Declare Function ChangeServiceConfig Lib "advapi32.dll" Alias "ChangeServiceConfigA" (ByVal hService As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lpServiceStartName As String, ByVal lpPassword As String, ByVal lpDisplayName As String) As Long Declare Function CloseServiceHandle Lib "advapi32.dll" Alias "CloseServiceHandle" (ByVal hSCObject As Long) As Long Declare Function ControlService Lib "advapi32.dll" Alias "ControlService" (ByVal hService As Long, ByVal dwControl As Long, lpServiceStatus As SERVICE_STATUS) As Long Declare Function CreateService Lib "advapi32.dll" Alias "CreateServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal lpDisplayName As String, ByVal dwDesiredAccess As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lp As String, ByVal lpPassword As String) As Long Declare Function DeleteService Lib "advapi32.dll" Alias "DeleteService" (ByVal hService As Long) As Long Declare Function EnumDependentServices Lib "advapi32.dll" Alias "EnumDependentServicesA" (ByVal hService As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long) As Long Declare Function EnumServicesStatus Lib "advapi32.dll" Alias "EnumServicesStatusA" (ByVal hSCManager As Long, ByVal dwServiceType As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long, lpResumeHandle As Long) As Long Declare Function GetServiceKeyName Lib "advapi32.dll" Alias "GetServiceKeyNameA" (ByVal hSCManager As Long, ByVal lpDisplayName As String, ByVal lpServiceName As String, lpcchBuffer As Long) As Long Declare Function GetServiceDisplayName Lib "advapi32.dll" Alias "GetServiceDisplayNameA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal lpDisplayName As String, lpcchBuffer As Long) As Long Declare Function LockServiceDatabase Lib "advapi32.dll" Alias "LockServiceDatabase" (ByVal hSCManager As Long) As Long Declare Function NotifyBootConfigStatus Lib "advapi32.dll" Alias "NotifyBootConfigStatus" (ByVal BootAcceptable As Long) As Long Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" (ByVal lpMachineName As String, ByVal lpDatabaseName As String, ByVal dwDesiredAccess As Long) As Long Declare Function OpenService Lib "advapi32.dll" Alias "OpenServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal dwDesiredAccess As Long) As Long Declare Function QueryServiceConfig Lib "advapi32.dll" Alias "QueryServiceConfigA" (ByVal hService As Long, lpServiceConfig As QUERY_SERVICE_CONFIG, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long Declare Function QueryServiceLockStatus Lib "advapi32.dll" Alias "QueryServiceLockStatusA" (ByVal hSCManager As Long, lpLockStatus As QUERY_SERVICE_LOCK_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long Declare Function QueryServiceObjectSecurity Lib "advapi32.dll" Alias "QueryServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long Declare Function QueryServiceStatus Lib "advapi32.dll" Alias "QueryServiceStatus" (ByVal hService As Long, lpServiceStatus As SERVICE_STATUS) As Long Declare Function RegisterServiceCtrlHandler Lib "advapi32.dll" Alias "RegisterServiceCtrlHandlerA" (ByVal lpServiceName As String, ByVal lpHandlerProc As Long) As Long Declare Function SetServiceObjectSecurity Lib "advapi32.dll" Alias "SetServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any) As Long Declare Function SetServiceStatus Lib "advapi32.dll" Alias "SetServiceStatus" (ByVal hServiceStatus As Long, lpServiceStatus As SERVICE_STATUS) As Long Declare Function StartServiceCtrlDispatcher Lib "advapi32.dll" Alias "StartServiceCtrlDispatcherA" (lpServiceStartTable As SERVICE_TABLE_ENTRY) As Long Declare Function StartService Lib "advapi32.dll" Alias "StartServiceA" (ByVal hService As Long, ByVal dwNumServiceArgs As Long, ByVal lpServiceArgVectors As Long) As Long Declare Function UnlockServiceDatabase Lib "advapi32.dll" Alias "UnlockServiceDatabase" (ScLock As Any) As Long Type LARGE_INTEGER lowpart As Long highpart As Long End Type ' Sección para los datos del Monitor del sistema Const PERF_DATA_VERSION = 1 Const PERF_DATA_REVISION = 1 Type PERF_DATA_BLOCK Signature As String * 4 LittleEndian As Long Version As Long Revision As Long TotalByteLength As Long HeaderLength As Long NumObjectTypes As Long DefaultObject As Long SystemTime As SYSTEMTIME PerfTime As LARGE_INTEGER PerfFreq As LARGE_INTEGER PerTime100nSec As LARGE_INTEGER SystemNameLength As Long SystemNameOffset As Long End Type Type PERF_OBJECT_TYPE TotalByteLength As Long DefinitionLength As Long HeaderLength As Long ObjectNameTitleIndex As Long ObjectNameTitle As String ObjectHelpTitleIndex As Long ObjectHelpTitle As String DetailLevel As Long NumCounters As Long DefaultCounter As Long NumInstances As Long CodePage As Long PerfTime As LARGE_INTEGER PerfFreq As LARGE_INTEGER End Type Const PERF_NO_INSTANCES = -1 ' no hay instancias ' El tipo de contador es la palabra "or" de los valores siguientes, como se describe a continuación ' ' seleccione uno de los valores siguientes para indicar el tamaño de datos del contador Const PERF_SIZE_DWORD = &H0 Const PERF_SIZE_LARGE = &H100 Const PERF_SIZE_ZERO = &H200 ' para los campos de longitud cero Const PERF_SIZE_VARIABLE_LEN = &H300 ' la longitud está en el campo CounterLength de la estructura Counter Definition ' seleccione uno de los valores siguientes para indicar el uso del campo contador Const PERF_TYPE_NUMBER = &H0 ' número (no un contador) Const PERF_TYPE_COUNTER = &H400 ' valor numérico que aumenta Const PERF_TYPE_TEXT = &H800 ' campo de texto Const PERF_TYPE_ZERO = &HC00 ' presenta un cero ' Si ha seleccionado el campo PERF_TYPE_NUMBER, seleccione uno de los ' valores siguientes para describir el número Const PERF_NUMBER_HEX = &H0 ' lo presenta como valor hexadecimal Const PERF_NUMBER_DECIMAL = &H10000 ' lo presenta como entero decimal Const PERF_NUMBER_DEC_1000 = &H20000 ' lo presenta como decimal/1000 ' ' Si ha seleccionado el valor PERF_TYPE_COUNTER, seleccione uno de los ' valores siguientes para indicar el tipo de contador Const PERF_COUNTER_VALUE = &H0 ' presenta el valor del contador Const PERF_COUNTER_RATE = &H10000 ' divide la hora de contador / delta Const PERF_COUNTER_FRACTION = &H20000 ' divide el contador / base Const PERF_COUNTER_BASE = &H30000 ' valor básico que se usa en las fracciones Const PERF_COUNTER_ELAPSED = &H40000 ' resta el contador de la hora actual Const PERF_COUNTER_QUEUELEN = &H50000 ' usa la func. de procesamiento Queuelen Const PERF_COUNTER_HISTOGRAM = &H60000 ' el contador comienza o termina un histograma ' Si ha seleccionado el valor PERF_TYPE_TEXT, seleccione uno de los ' valores siguientes para indicar el tipo de datos TEXT. Const PERF_TEXT_UNICODE = &H0 ' tipo de texto contenido en el campo de texto Const PERF_TEXT_ASCII = &H10000 ' ASCII usando el campo CodePage ' Subtipos de cronómetro Const PERF_TIMER_TICK = &H0 ' usa como base la frecuencia de ejecución del sistema Const PERF_TIMER_100NS = &H100000 ' usa unidades base de hora del cronómetro 100 NS Const PERF_OBJECT_TIMER = &H200000 ' usa la frecuencia del cronómetro del objeto ' Cualquiera de los tipos que efectúan cálculos puede usar uno o más de los indicadores ' de modificación de cálculos, que aparecen en la lista siguiente: Const PERF_DELTA_COUNTER = &H400000 ' calcula primero la diferencia Const PERF_DELTA_BASE = &H800000 ' calcula también la diferencia de la base Const PERF_INVERSE_COUNTER = &H1000000 ' muestra cantidad como valor 1.00 (asume que: Const PERF_MULTI_COUNTER = &H2000000 ' suma de instancias múltiples ' Seleccione uno de los valores siguientes para indicar el sufijo de presentación (si lo hay) Const PERF_DISPLAY_NO_SUFFIX = &H0 ' sin sufijo Const PERF_DISPLAY_PER_SEC = &H10000000 ' "/s" Const PERF_DISPLAY_PERCENT = &H20000000 ' "%" Const PERF_DISPLAY_SECONDS = &H30000000 ' "s" Const PERF_DISPLAY_NOSHOW = &H40000000 ' no se presenta el valor ' Tipos de contadores predefinidos ' Contador de 32 bits. Divide delta entre hora delta. Presenta el sufijo: "/s" Const PERF_COUNTER_COUNTER = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_PER_SEC) ' Cronómetro de 64 bits. Divide delta entre hora delta. Presenta el sufijo: "%" Const PERF_COUNTER_TIMER = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_PERCENT) ' Producto Espacio-Tiempo de longitud de cola. Divide delta entre hora delta. No presenta sufijo. Const PERF_COUNTER_QUEUELEN_TYPE = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_QUEUELEN Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_NO_SUFFIX) ' Contador de 64 bits. Divide delta entre hora delta. Presenta el sufijo: "/s" Const PERF_COUNTER_BULK_COUNT = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_PER_SEC) ' Indica que el contador no es propiamente un contador, sino una cadena Unicode presentada como texto. Const PERF_COUNTER_TEXT = (PERF_SIZE_VARIABLE_LEN Or PERF_TYPE_TEXT Or PERF_TEXT_UNICODE Or PERF_DISPLAY_NO_SUFFIX) ' Indica que los datos son un contador que no se debe ' usar como media de tiempo en la presentación (como un ' contador de errores de una línea en serie) ' Lo presenta tal cual. No presenta sufijo. Const PERF_COUNTER_RAWCOUNT = (PERF_SIZE_DWORD Or PERF_TYPE_NUMBER Or PERF_NUMBER_DECIMAL Or PERF_DISPLAY_NO_SUFFIX) ' Contador que es 1 ó 0 en cada interrupción del muestreo (% ocupado) ' Divide delta entre base delta. Presenta el sufijo: "%" Const PERF_SAMPLE_FRACTION = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DELTA_COUNTER Or PERF_DELTA_BASE Or PERF_DISPLAY_PERCENT) ' Contador que se muestrea en cada interrupción del muestreo (longitud de cola) ' Divide delta entre hora delta. No presenta sufijo. Const PERF_SAMPLE_COUNTER = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_NO_SUFFIX) ' Etiqueta: no hay datos asociados con este contador (tiene longitud 0) ' No se presenta. Const PERF_COUNTER_NODATA = (PERF_SIZE_ZERO Or PERF_DISPLAY_NOSHOW) ' Cronómetro de 64 bits invertido (es decir, mide la inactividad, pero presenta ocupado As Integer) ' Presenta 100 deltas divididos entre hora delta. Presenta el sufijo: "%" Const PERF_COUNTER_TIMER_INV = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_INVERSE_COUNTER Or PERF_DISPLAY_PERCENT) ' Divisor para una muestra, usado con el contador anterior para formar un ' % de muestra. Debe comprobar que los valores son >0 antes de dividir. Este ' contador sigue directamente al contador numerador. No se debe mostrar al usuario. Const PERF_SAMPLE_BASE = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_DISPLAY_NOSHOW Or &H1) ' por compatibilidad con versiones anteriores a la beta ' Cronómetro que, cuando se divide entre una base media, da como resultado ' un tiempo en segundos que es el tiempo medio de una operación. Este ' cronómetro da el tiempo de operaciones totales y la base es el número de ' operaciones. Presenta el sufijo: "s" Const PERF_AVERAGE_TIMER = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_SECONDS) ' Se usa como denominador en el cálculo de medias de tiempo o de contador. ' Tiene que seguir directamente al contador numerador. No se muestra al ' usuario. Const PERF_AVERAGE_BASE = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_DISPLAY_NOSHOW Or &H2) ' por compatibilidad con versiones anteriores a la beta ' Contador masivo que, cuando se divide (normalmente) entre el número de ' operaciones, da (normalmente) el número de bytes por operación. ' No presenta sufijo. Const PERF_AVERAGE_BULK = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_NOSHOW) ' Cronómetro de 64 bits en unidades de 100 ns. Presenta delta divido entre ' hora delta. Presenta el sufijo: "%" Const PERF_100NSEC_TIMER = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_100NS Or PERF_DELTA_COUNTER Or PERF_DISPLAY_PERCENT) ' Cronómetro de 64 bits invertido (es decir, mide la inactividad, pero presenta ocupado As Integer) ' Presenta 100 deltas divididos entre hora delta. Presenta el sufijo: "%" Const PERF_100NSEC_TIMER_INV = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_100NS Or PERF_DELTA_COUNTER Or PERF_INVERSE_COUNTER Or PERF_DISPLAY_PERCENT) ' Cronómetro de 64 bits. Divide delta entre hora delta. Presenta el sufijo: "%" ' Cronómetro para múltiples instancias; por eso el resultado puede ser superior al 100%. Const PERF_COUNTER_MULTI_TIMER = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_DELTA_COUNTER Or PERF_TIMER_TICK Or PERF_MULTI_COUNTER Or PERF_DISPLAY_PERCENT) ' Cronómetro de 64 bits invertido (es decir, mide la inactividad, pero presenta ocupado ' As Integer). Presenta 100 _MULTI_BASE delta divido entre hora delta. ' Presenta el sufijo: "%". Cronómetro para múltiples instancias; por eso el ' resultado puede ser superior al 100%. Seguido de un contador de tipo _MULTI_BASE. Const PERF_COUNTER_MULTI_TIMER_INV = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_DELTA_COUNTER Or PERF_MULTI_COUNTER Or PERF_TIMER_TICK Or PERF_INVERSE_COUNTER Or PERF_DISPLAY_PERCENT) ' Número de instancias a las que se aplica el contador _MULTI_..._INV ' anterior. Se usa como factor para obtener el porcentaje. Const PERF_COUNTER_MULTI_BASE = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_MULTI_COUNTER Or PERF_DISPLAY_NOSHOW) ' Cronómetro de 64 bits en unidades de 100 ns. Presenta delta divido entre hora delta. ' Presenta el sufijo: "%" . Cronómetro para múltiples instancias; por eso el ' resultado puede ser superior al 100%. Const PERF_100NSEC_MULTI_TIMER = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_DELTA_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_100NS Or PERF_MULTI_COUNTER Or PERF_DISPLAY_PERCENT) ' Cronómetro de 64 bits invertido (es decir, mide la inactividad, pero presenta ocupado ' As Integer). Presenta 100 _MULTI_BASE delta divido entre hora delta. ' Presenta el sufijo: "%". Cronómetro para múltiples instancias; por eso el ' resultado puede ser superior al 100%. Seguido de un contador de tipo _MULTI_BASE. Const PERF_100NSEC_MULTI_TIMER_INV = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_DELTA_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_100NS Or PERF_MULTI_COUNTER Or PERF_INVERSE_COUNTER Or PERF_DISPLAY_PERCENT) ' Indica que los datos son una fracción del contador siguiente, que ' no se debe usar como media de tiempo de presentación (como espacio libre ' sobre espacio total). Lo presenta tal cual. Presenta el cociente como "%". Const PERF_RAW_FRACTION = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_PERCENT) ' Indica que los datos son la base para el contador anterior, que ' no se debe usar como media de tiempo de presentación (como espacio libre ' sobre espacio total). Const PERF_RAW_BASE = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_DISPLAY_NOSHOW Or &H3) ' por compatibilidad con versiones anteriores a la beta ' Los datos reunidos por este contador son en realidad la hora de inicio del ' elemento que se está midiendo. Para presentarlos, los datos se restan del ' tiempo de muestreo para dar el tiempo transcurrido como diferencia entre ' ambos. En la definición siguiente, el campo PerfTime del objeto contiene ' el tiempo de muestreo como lo indica el bit PERF_OBJECT_TIMER y ' el campo PerfFreq del objeto escala la diferencia para convertir ' las unidades de hora en segundos. Const PERF_ELAPSED_TIME = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_ELAPSED Or PERF_OBJECT_TIMER Or PERF_DISPLAY_SECONDS) ' Puede usar el tipo de contador siguiente con los tipos anteriores para ' definir un intervalo de valores que se presentarán en un histograma. Const PERF_COUNTER_HISTOGRAM_TYPE = &H80000000 ' El contador comienza o termina un histograma. ' Los valores siguientes se usan para determinar el nivel de detalle ' asociado al contador. El usuario podrá establecer el nivel de ' detalle que se debe mostrar en cualquier momento. Const PERF_DETAIL_NOVICE = 100 ' Pueden entenderlo los principiantes Const PERF_DETAIL_ADVANCED = 200 ' Para usuarios avanzados Const PERF_DETAIL_EXPERT = 300 ' Para usuarios expertos Const PERF_DETAIL_WIZARD = 400 ' Para el programador del sistema Type PERF_COUNTER_DEFINITION ByteLength As Long CounterNameTitleIndex As Long CounterNameTitle As String CounterHelpTitleIndex As Long CounterHelpTitle As String DefaultScale As Long DetailLevel As Long CounterType As Long CounterSize As Long CounterOffset As Long End Type Const PERF_NO_UNIQUE_ID = -1 Type PERF_INSTANCE_DEFINITION ByteLength As Long ParentObjectTitleIndex As Long ParentObjectInstance As Long UniqueID As Long NameOffset As Long NameLength As Long End Type Type PERF_COUNTER_BLOCK ByteLength As Long End Type Const CDERR_DIALOGFAILURE = &HFFFF Const CDERR_GENERALCODES = &H0 Const CDERR_STRUCTSIZE = &H1 Const CDERR_INITIALIZATION = &H2 Const CDERR_NOTEMPLATE = &H3 Const CDERR_NOHINSTANCE = &H4 Const CDERR_LOADSTRFAILURE = &H5 Const CDERR_FINDRESFAILURE = &H6 Const CDERR_LOADRESFAILURE = &H7 Const CDERR_LOCKRESFAILURE = &H8 Const CDERR_MEMALLOCFAILURE = &H9 Const CDERR_MEMLOCKFAILURE = &HA Const CDERR_NOHOOK = &HB Const CDERR_REGISTERMSGFAIL = &HC Const PDERR_PRINTERCODES = &H1000 Const PDERR_SETUPFAILURE = &H1001 Const PDERR_PARSEFAILURE = &H1002 Const PDERR_RETDEFFAILURE = &H1003 Const PDERR_LOADDRVFAILURE = &H1004 Const PDERR_GETDEVMODEFAIL = &H1005 Const PDERR_INITFAILURE = &H1006 Const PDERR_NODEVICES = &H1007 Const PDERR_NODEFAULTPRN = &H1008 Const PDERR_DNDMMISMATCH = &H1009 Const PDERR_CREATEICFAILURE = &H100A Const PDERR_PRINTERNOTFOUND = &H100B Const PDERR_DEFAULTDIFFERENT = &H100C Const CFERR_CHOOSEFONTCODES = &H2000 Const CFERR_NOFONTS = &H2001 Const CFERR_MAXLESSTHANMIN = &H2002 Const FNERR_FILENAMECODES = &H3000 Const FNERR_SUBCLASSFAILURE = &H3001 Const FNERR_INVALIDFILENAME = &H3002 Const FNERR_BUFFERTOOSMALL = &H3003 Const FRERR_FINDREPLACECODES = &H4000 Const FRERR_BUFFERLENGTHZERO = &H4001 Const CCERR_CHOOSECOLORCODES = &H5000 ' Interfaz pública para LZEXP?.LIB ' Códigos de devolución de errores LZEXPAND Const LZERROR_BADINHANDLE = (-1) ' controlador de entrada no válido Const LZERROR_BADOUTHANDLE = (-2) ' controlador de salida no válido Const LZERROR_READ = (-3) ' formato de archivo comprimido dañado Const LZERROR_WRITE = (-4) ' no hay memoria para el archivo de salida Const LZERROR_PUBLICLOC = (-5) ' memoria insuficiente para la estructura LZFile Const LZERROR_GLOBLOCK = (-6) ' controlador global incorrecto Const LZERROR_BADVALUE = (-7) ' parámetro de entrada fuera del intervalo Const LZERROR_UNKNOWNALG = (-8) ' algoritmo de compresión no reconocible Declare Function LZCopy Lib "lz32.dll" Alias "LZCopy" (ByVal hfSource As Long, ByVal hfDest As Long) As Long Declare Function LZInit Lib "lz32.dll" Alias "LZInit" (ByVal hfSrc As Long) As Long Declare Function GetExpandedName Lib "lz32.dll" Alias "GetExpandedNameA" (ByVal lpszSource As String, ByVal lpszBuffer As String) As Long Declare Function LZOpenFile Lib "lz32.dll" Alias "LZOpenFileA" (ByVal lpszFile As String, lpOf As OFSTRUCT, ByVal style As Long) As Long Declare Function LZSeek Lib "lz32.dll" Alias "LZSeek" (ByVal hfFile As Long, ByVal lOffset As Long, ByVal nOrigin As Long) As Long Declare Function LZRead Lib "lz32.dll" Alias "LZRead" (ByVal hfFile As Long, ByVal lpvBuf As String, ByVal cbread As Long) As Long Declare Sub LZClose Lib "lz32.dll" Alias "LZClose" (ByVal hfFile As Long) ' ******************************************************************** ' IMM.H - Definiciones del administrador de métodos de entrada ' ' Copyright (c) 1993-1995 Microsoft Corporation ' ******************************************************************** Const VK_PROCESSKEY = &HE5 Type COMPOSITIONFORM dwStyle As Long ptCurrentPos As POINTAPI rcArea As Rect End Type Type CANDIDATEFORM dwIndex As Long dwStyle As Long ptCurrentPos As POINTAPI rcArea As Rect End Type Type CANDIDATELIST dwSize As Long dwStyle As Long dwCount As Long dwSelection As Long dwPageStart As Long dwPageSize As Long dwOffset(1) As Long End Type Const STYLE_DESCRIPTION_SIZE = 32 Type STYLEBUF dwStyle As Long szDescription As String * STYLE_DESCRIPTION_SIZE End Type ' prototipo de la API de IMM Declare Function ImmInstallIME Lib "imm32.dll" Alias "ImmInstallIMEA" (ByVal lpszIMEFileName As String, ByVal lpszLayoutText As String) As Long Declare Function ImmGetDefaultIMEWnd Lib "imm32.dll" Alias "ImmGetDefaultIMEWnd" (ByVal hwnd As Long) As Long Declare Function ImmGetDescription Lib "imm32.dll" Alias "ImmGetDescriptionA" (ByVal hkl As Long, ByVal lpsz As String, ByVal uBufLen As Long) As Long Declare Function ImmGetIMEFileName Lib "imm32.dll" Alias "ImmGetIMEFileNameA" (ByVal hkl As Long, ByVal lpStr As String, ByVal uBufLen As Long) As Long Declare Function ImmGetProperty Lib "imm32.dll" Alias "ImmGetProperty" (ByVal hkl As Long, ByVal dw As Long) As Long Declare Function ImmIsIME Lib "imm32.dll" Alias "ImmIsIME" (ByVal hkl As Long) As Long Declare Function ImmSimulateHotKey Lib "imm32.dll" Alias "ImmSimulateHotKey" (ByVal hwnd As Long, ByVal dw As Long) As Long Declare Function ImmCreateContext Lib "imm32.dll" Alias "ImmCreateContext" () As Long Declare Function ImmDestroyContext Lib "imm32.dll" Alias "ImmDestroyContext" (ByVal himc As Long) As Long Declare Function ImmGetContext Lib "imm32.dll" Alias "ImmGetContext" (ByVal hwnd As Long) As Long Declare Function ImmReleaseContext Lib "imm32.dll" Alias "ImmReleaseContext" (ByVal hwnd As Long, ByVal himc As Long) As Long Declare Function ImmAssociateContext Lib "imm32.dll" Alias "ImmAssociateContext" (ByVal hwnd As Long, ByVal himc As Long) As Long Declare Function ImmGetCompositionString Lib "imm32.dll" Alias "ImmGetCompositionStringA" (ByVal himc As Long, ByVal dw As Long, lpv As Any, ByVal dw2 As Long) As Long Declare Function ImmSetCompositionString Lib "imm32.dll" Alias "ImmSetCompositionStringA" (ByVal himc As Long, ByVal dwIndex As Long, lpComp As Any, ByVal dw As Long, lpRead As Any, ByVal dw2 As Long) As Long Declare Function ImmGetCandidateListCount Lib "imm32.dll" Alias "ImmGetCandidateListCountA" (ByVal himc As Long, lpdwListCount As Long) As Long Declare Function ImmGetCandidateList Lib "imm32.dll" Alias "ImmGetCandidateListA" (ByVal himc As Long, ByVal deIndex As Long, lpCandidateList As CANDIDATELIST, ByVal dwBufLen As Long) As Long Declare Function ImmGetGuideLine Lib "imm32.dll" Alias " ImmGetGuideLineA" (ByVal himc As Long, ByVal dwIndex As Long, ByVal lpStr As String, ByVal dwBufLen As Long) As Long Declare Function ImmGetConversionStatus Lib "imm32.dll" Alias "ImmGetConversionStatus" (ByVal himc As Long, lpdw As Long, lpdw2 As Long) As Long Declare Function ImmSetConversionStatus Lib "imm32.dll" Alias "ImmSetConversionStatus" (ByVal himc As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long Declare Function ImmGetOpenStatus Lib "imm32.dll" Alias "ImmGetOpenStatus" (ByVal himc As Long) As Long Declare Function ImmSetOpenStatus Lib "imm32.dll" Alias "ImmSetOpenStatus" (ByVal himc As Long, ByVal b As Long) As Long Declare Function ImmGetCompositionFont Lib "imm32.dll" Alias "ImmGetCompositionFontA" (ByVal himc As Long, lpLogFont As LOGFONT) As Long Declare Function ImmSetCompositionFont Lib "imm32.dll" Alias "ImmSetCompositionFontA" (ByVal himc As Long, lpLogFont As LOGFONT) As Long Declare Function ImmConfigureIME Lib "imm32.dll" Alias "ImmConfigureIME" (ByVal hkl As Long, ByVal hwnd As Long, ByVal dw As Long) As Long Declare Function ImmEscape Lib "imm32.dll" Alias "ImmEscapeA" (ByVal hkl As Long, ByVal himc As Long, ByVal un As Long, lpv As Any) As Long Declare Function ImmGetConversionList Lib "imm32.dll" Alias "ImmGetConversionListA" (ByVal hkl As Long, ByVal himc As Long, ByVal lpsz As String, lpCandidateList As CANDIDATELIST, ByVal dwBufLen As Long, ByVal uFlag As Long) As Long Declare Function ImmNotifyIME Lib "imm32.dll" Alias "ImmNotifyIME" (ByVal himc As Long, ByVal dwAction As Long, ByVal dwIndex As Long, ByVal dwValue As Long) As Long Declare Function ImmGetStatusWindowPos Lib "imm32.dll" Alias "ImmGetStatusWindowPos" (ByVal himc As Long, lpPoint As POINTAPI) As Long Declare Function ImmSetStatusWindowPos Lib "imm32.dll" Alias "ImmSetStatusWindowPos" (ByVal himc As Long, lpPoint As POINTAPI) As Long Declare Function ImmGetCompositionWindow Lib "imm32.dll" Alias "ImmGetCompositionWindow" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long Declare Function ImmSetCompositionWindow Lib "imm32.dll" Alias "ImmSetCompositionWindow" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long Declare Function ImmGetCandidateWindow Lib "imm32.dll" Alias "ImmGetCandidateWindow" (ByVal himc As Long, ByVal dw As Long, lpCandidateForm As CANDIDATEFORM) As Long Declare Function ImmSetCandidateWindow Lib "imm32.dll" Alias "ImmSetCandidateWindow" (ByVal himc As Long, lpCandidateForm As CANDIDATEFORM) As Long Declare Function ImmIsUIMessage Lib "imm32.dll" Alias "ImmIsUIMessageA" (ByVal hwnd As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function ImmGetVirtualKey Lib "imm32.dll" Alias "ImmGetVirtualKey" (ByVal hwnd As Long) As Long Declare Function ImmRegisterWord Lib "imm32.dll" Alias "ImmRegisterWordA" (ByVal hkl As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszRegister As String) As Long Declare Function ImmUnregisterWord Lib "imm32.dll" Alias "ImmUnregisterWordA" (ByVal hkl As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszUnregister As String) As Long Declare Function ImmGetRegisterWordStyle Lib "imm32.dll" Alias " ImmGetRegisterWordStyleA" (ByVal hkl As Long, ByVal nItem As Long, lpStyleBuf As STYLEBUF) As Long Declare Function ImmEnumRegisterWord Lib "imm32.dll" Alias "ImmEnumRegisterWordA" (ByVal hkl As Long, ByVal RegisterWordEnumProc As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszRegister As String, lpv As Any) As Long ' mensajes relacionados con IME Const WM_CONVERTREQUESTEX = &H108 Const WM_IME_STARTCOMPOSITION = &H10D Const WM_IME_ENDCOMPOSITION = &H10E Const WM_IME_COMPOSITION = &H10F Const WM_IME_KEYLAST = &H10F Const WM_IME_SETCONTEXT = &H281 Const WM_IME_NOTIFY = &H282 Const WM_IME_CONTROL = &H283 Const WM_IME_COMPOSITIONFULL = &H284 Const WM_IME_SELECT = &H285 Const WM_IME_CHAR = &H286 Const WM_IME_KEYDOWN = &H290 Const WM_IME_KEYUP = &H291 ' wParam para WM_IME_CONTROL Const IMC_GETCANDIDATEPOS = &H7 Const IMC_SETCANDIDATEPOS = &H8 Const IMC_GETCOMPOSITIONFONT = &H9 Const IMC_SETCOMPOSITIONFONT = &HA Const IMC_GETCOMPOSITIONWINDOW = &HB Const IMC_SETCOMPOSITIONWINDOW = &HC Const IMC_GETSTATUSWINDOWPOS = &HF Const IMC_SETSTATUSWINDOWPOS = &H10 Const IMC_CLOSESTATUSWINDOW = &H21 Const IMC_OPENSTATUSWINDOW = &H22 ' wParam para WM_IME_CONTROL del teclado ' dwAction para ImmNotifyIME Const NI_OPENCANDIDATE = &H10 Const NI_CLOSECANDIDATE = &H11 Const NI_SELECTCANDIDATESTR = &H12 Const NI_CHANGECANDIDATELIST = &H13 Const NI_FINALIZECONVERSIONRESULT = &H14 Const NI_COMPOSITIONSTR = &H15 Const NI_SETCANDIDATE_PAGESTART = &H16 Const NI_SETCANDIDATE_PAGESIZE = &H17 ' lParam para WM_IME_SETCONTEXT Const ISC_SHOWUICANDIDATEWINDOW = &H1 Const ISC_SHOWUICOMPOSITIONWINDOW = &H80000000 Const ISC_SHOWUIGUIDELINE = &H40000000 Const ISC_SHOWUIALLCANDIDATEWINDOW = &HF Const ISC_SHOWUIALL = &HC000000F ' dwIndex para ImmNotifyIME/NI_COMPOSITIONSTR Const CPS_COMPLETE = &H1 Const CPS_CONVERT = &H2 Const CPS_REVERT = &H3 Const CPS_CANCEL = &H4 ' Id. de las teclas aceleradoras de la edición china simplificada de Windows desde 0x10 - 0x2F Const IME_CHOTKEY_IME_NONIME_TOGGLE = &H10 Const IME_CHOTKEY_SHAPE_TOGGLE = &H11 Const IME_CHOTKEY_SYMBOL_TOGGLE = &H12 ' Id. de las teclas aceleradoras de la edición japonesa de Windows desde 0x30 - 0x4F Const IME_JHOTKEY_CLOSE_OPEN = &H30 ' Id. de las teclas aceleradoras de la edición coreana de Windows desde 0x50 - 0x6F Const IME_KHOTKEY_SHAPE_TOGGLE = &H50 Const IME_KHOTKEY_HANJACONVERT = &H51 Const IME_KHOTKEY_ENGLISH = &H52 ' Id. de las teclas aceleradoras de la edición china tradicional de Windows desde 0x70 - 0x8F Const IME_THOTKEY_IME_NONIME_TOGGLE = &H70 Const IME_THOTKEY_SHAPE_TOGGLE = &H71 Const IME_THOTKEY_SYMBOL_TOGGLE = &H72 ' Id. de la tecla aceleradora de cambio directo desde 0x100 - 0x11F Const IME_HOTKEY_DSWITCH_FIRST = &H100 Const IME_HOTKEY_DSWITCH_LAST = &H11F ' tecla aceleradora IME privada desde 0x200 - 0x21F Const IME_ITHOTKEY_RESEND_RESULTSTR = &H200 Const IME_ITHOTKEY_PREVIOUS_COMPOSITION = &H201 Const IME_ITHOTKEY_UISTYLE_TOGGLE = &H202 ' parámetro de ImmGetCompositionString Const GCS_COMPREADSTR = &H1 Const GCS_COMPREADATTR = &H2 Const GCS_COMPREADCLAUSE = &H4 Const GCS_COMPSTR = &H8 Const GCS_COMPATTR = &H10 Const GCS_COMPCLAUSE = &H20 Const GCS_CURSORPOS = &H80 Const GCS_DELTASTART = &H100 Const GCS_RESULTREADSTR = &H200 Const GCS_RESULTREADCLAUSE = &H400 Const GCS_RESULTSTR = &H800 Const GCS_RESULTCLAUSE = &H1000 ' indicadores de bits de estilo para WM_IME_COMPOSITION Const CS_INSERTCHAR = &H2000 Const CS_NOMOVECARET = &H4000 ' bits de fdwInit de INPUTCONTEXT ' Bits de la propiedad IME Const IME_PROP_AT_CARET = &H10000 Const IME_PROP_SPECIAL_UI = &H20000 Const IME_PROP_CANDLIST_START_FROM_1 = &H40000 Const IME_PROP_UNICODE = &H80000 ' Bits de capacidad IME UI Const UI_CAP_2700 = &H1 Const UI_CAP_ROT90 = &H2 Const UI_CAP_ROTANY = &H4 ' Bits de capacidad ImmSetCompositionString Const SCS_CAP_COMPSTR = &H1 Const SCS_CAP_MAKEREAD = &H2 ' Bits de capacidad heredada IME WM_IME_SELECT Const SELECT_CAP_CONVERSION = &H1 Const SELECT_CAP_SENTENCE = &H2 ' Id. para deIndex de ImmGetGuideLine Const GGL_LEVEL = &H1 Const GGL_INDEX = &H2 Const GGL_STRING = &H3 Const GGL_PRIVATE = &H4 ' Id. para dwLevel de la estructura GUIDELINE Const GL_LEVEL_NOGUIDELINE = &H0 Const GL_LEVEL_FATAL = &H1 Const GL_LEVEL_ERROR = &H2 Const GL_LEVEL_WARNING = &H3 Const GL_LEVEL_INFORMATION = &H4 ' Id. para dwIndex de la estructura GUIDELINE Const GL_ID_UNKNOWN = &H0 Const GL_ID_NOMODULE = &H1 Const GL_ID_NODICTIONARY = &H10 Const GL_ID_CANNOTSAVE = &H11 Const GL_ID_NOCONVERT = &H20 Const GL_ID_TYPINGERROR = &H21 Const GL_ID_TOOMANYSTROKE = &H22 Const GL_ID_READINGCONFLICT = &H23 Const GL_ID_INPUTREADING = &H24 Const GL_ID_INPUTRADICAL = &H25 Const GL_ID_INPUTCODE = &H26 Const GL_ID_INPUTSYMBOL = &H27 Const GL_ID_CHOOSECANDIDATE = &H28 Const GL_ID_REVERSECONVERSION = &H29 Const GL_ID_PRIVATE_FIRST = &H8000 Const GL_ID_PRIVATE_LAST = &HFFFF ' Id. para dwIndex de ImmGetProperty Const IGP_PROPERTY = &H4 Const IGP_CONVERSION = &H8 Const IGP_SENTENCE = &HC Const IGP_UI = &H10 Const IGP_SETCOMPSTR = &H14 Const IGP_SELECT = &H18 ' dwIndex para la API de ImmSetCompositionString Const SCS_SETSTR = (GCS_COMPREADSTR Or GCS_COMPSTR) Const SCS_CHANGEATTR = (GCS_COMPREADATTR Or GCS_COMPATTR) Const SCS_CHANGECLAUSE = (GCS_COMPREADCLAUSE Or GCS_COMPCLAUSE) ' atributo para la estructura COMPOSITIONSTRING Const ATTR_INPUT = &H0 Const ATTR_TARGET_CONVERTED = &H1 Const ATTR_CONVERTED = &H2 Const ATTR_TARGET_NOTCONVERTED = &H3 Const ATTR_INPUT_ERROR = &H4 ' campo de bit para IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW Const CFS_DEFAULT = &H0 Const CFS_RECT = &H1 Const CFS_POINT = &H2 Const CFS_SCREEN = &H4 Const CFS_FORCE_POSITION = &H20 Const CFS_CANDIDATEPOS = &H40 Const CFS_EXCLUDE = &H80 ' dirección de conversión para ImmGetConversionList Const GCL_CONVERSION = &H1 Const GCL_REVERSECONVERSION = &H2 Const GCL_REVERSE_LENGTH = &H3 ' campo de bits para el modo de conversión Const IME_CMODE_ALPHANUMERIC = &H0 Const IME_CMODE_NATIVE = &H1 Const IME_CMODE_CHINESE = IME_CMODE_NATIVE Const IME_CMODE_HANGEUL = IME_CMODE_NATIVE Const IME_CMODE_JAPANESE = IME_CMODE_NATIVE Const IME_CMODE_KATAKANA = &H2 ' sólo en vigor bajo IME_CMODE_NATIVE Const IME_CMODE_LANGUAGE = &H3 Const IME_CMODE_FULLSHAPE = &H8 Const IME_CMODE_ROMAN = &H10 Const IME_CMODE_CHARCODE = &H20 Const IME_CMODE_HANJACONVERT = &H40 Const IME_CMODE_SOFTKBD = &H80 Const IME_CMODE_NOCONVERSION = &H100 Const IME_CMODE_EUDC = &H200 Const IME_CMODE_SYMBOL = &H400 Const IME_SMODE_NONE = &H0 Const IME_SMODE_PLAURALCLAUSE = &H1 Const IME_SMODE_SINGLECONVERT = &H2 Const IME_SMODE_AUTOMATIC = &H4 Const IME_SMODE_PHRASEPREDICT = &H8 ' estilo de candidato Const IME_CAND_UNKNOWN = &H0 Const IME_CAND_READ = &H1 Const IME_CAND_CODE = &H2 Const IME_CAND_MEANING = &H3 Const IME_CAND_RADICAL = &H4 Const IME_CAND_STROKE = &H5 ' wParam de la notificación de mensajes informativos WM_IME_NOTIFY Const IMN_CLOSESTATUSWINDOW = &H1 Const IMN_OPENSTATUSWINDOW = &H2 Const IMN_CHANGECANDIDATE = &H3 Const IMN_CLOSECANDIDATE = &H4 Const IMN_OPENCANDIDATE = &H5 Const IMN_SETCONVERSIONMODE = &H6 Const IMN_SETSENTENCEMODE = &H7 Const IMN_SETOPENSTATUS = &H8 Const IMN_SETCANDIDATEPOS = &H9 Const IMN_SETCOMPOSITIONFONT = &HA Const IMN_SETCOMPOSITIONWINDOW = &HB Const IMN_SETSTATUSWINDOWPOS = &HC Const IMN_GUIDELINE = &HD Const IMN_PRIVATE = &HE ' código de error de ImmGetCompositionString Const IMM_ERROR_NODATA = (-1) Const IMM_ERROR_GENERAL = (-2) ' modo de diálogo de ImmConfigureIME Const IME_CONFIG_GENERAL = 1 Const IME_CONFIG_REGISTERWORD = 2 Const IME_CONFIG_SELECTDICTIONARY = 3 ' modo de diálogo de ImmEscape Const IME_ESC_QUERY_SUPPORT = &H3 Const IME_ESC_RESERVED_FIRST = &H4 Const IME_ESC_RESERVED_LAST = &H7FF Const IME_ESC_PRIVATE_FIRST = &H800 Const IME_ESC_PRIVATE_LAST = &HFFF Const IME_ESC_SEQUENCE_TO_INTERNAL = &H1001 Const IME_ESC_GET_EUDC_DICTIONARY = &H1003 Const IME_ESC_SET_EUDC_DICTIONARY = &H1004 Const IME_ESC_MAX_KEY = &H1005 Const IME_ESC_IME_NAME = &H1006 Const IME_ESC_SYNC_HOTKEY = &H1007 Const IME_ESC_HANJA_MODE = &H1008 ' estilo del registro de palabras Const IME_REGWORD_STYLE_EUDC = &H1 Const IME_REGWORD_STYLE_USER_FIRST = &H80000000 Const IME_REGWORD_STYLE_USER_LAST = &HFFFF ' tipo de teclado ' para la edición de Chino tradicional de Windows Const SOFTKEYBOARD_TYPE_T1 = &H1 ' para la edición de Chino simplificado de Windows Const SOFTKEYBOARD_TYPE_C1 = &H2 ' *************************************************************************** ' * * ' * mcx.h -- Este módulo define las API MCX de Windows de 32 bits * ' * * ' * Copyright (c) 1990-1995, Microsoft Corp. Reservados todos los derechos. * ' * * ' **************************************************************************/ Type MODEMDEVCAPS dwActualSize As Long dwRequiredSize As Long dwDevSpecificOffset As Long dwDevSpecificSize As Long ' identificación del producto y la versión dwModemProviderVersion As Long dwModemManufacturerOffset As Long dwModemManufacturerSize As Long dwModemModelOffset As Long dwModemModelSize As Long dwModemVersionOffset As Long dwModemVersionSize As Long ' capacidades de opción local dwDialOptions As Long ' mapa de bits de los valores admitidos dwCallSetupFailTimer As Long ' máximo en segundos dwInactivityTimeout As Long ' máximo en segundos dwSpeakerVolume As Long ' mapa de bits de los valores admitidos dwSpeakerMode As Long ' mapa de bits de los valores admitidos dwModemOptions As Long ' mapa de bits de los valores admitidos dwMaxDTERate As Long ' valor máximo en bits/s dwMaxDCERate As Long ' valor máximo en bits/s ' Parte variable para ampliación de patente abVariablePortion(1) As Byte End Type Type MODEMSETTINGS dwActualSize As Long dwRequiredSize As Long dwDevSpecificOffset As Long dwDevSpecificSize As Long ' opciones estáticas locales (lectura/escritura) dwCallSetupFailTimer As Long ' segundos dwInactivityTimeout As Long ' segundos dwSpeakerVolume As Long ' nivel dwSpeakerMode As Long ' modo dwPreferredModemOptions As Long ' mapa de bits ' opciones negociadas (sólo lectura) para la llamada actual o para la última dwNegotiatedModemOptions As Long ' mapa de bits dwNegotiatedDCERate As Long ' bits/s ' Parte variable para ampliación de patente abVariablePortion(1) As Byte End Type ' Opciones de marcar Const DIALOPTION_BILLING = &H40 ' Admite espera para "$" de llamada Const DIALOPTION_QUIET = &H80 ' Admite espera para "@" silenciosa Const DIALOPTION_DIALTONE = &H100 ' Admite espera para "W" de tono de llamada ' Volumen de altavoz para MODEMDEVCAPS Const MDMVOLFLAG_LOW = &H1 Const MDMVOLFLAG_MEDIUM = &H2 Const MDMVOLFLAG_HIGH = &H4 ' Volumen de altavoz para MODEMSETTINGS Const MDMVOL_LOW = &H0 Const MDMVOL_MEDIUM = &H1 Const MDMVOL_HIGH = &H2 ' Volumen de altavoz para MODEMDEVCAPS Const MDMSPKRFLAG_OFF = &H1 Const MDMSPKRFLAG_DIAL = &H2 Const MDMSPKRFLAG_ON = &H4 Const MDMSPKRFLAG_CALLSETUP = &H8 ' Volumen de altavoz para MODEMSETTINGS Const MDMSPKR_OFF = &H0 Const MDMSPKR_DIAL = &H1 Const MDMSPKR_ON = &H2 Const MDMSPKR_CALLSETUP = &H3 ' Opciones del módem Const MDM_COMPRESSION = &H1 Const MDM_ERROR_CONTROL = &H2 Const MDM_FORCED_EC = &H4 Const MDM_CELLULAR = &H8 Const MDM_FLOWCONTROL_HARD = &H10 Const MDM_FLOWCONTROL_SOFT = &H20 Const MDM_CCITT_OVERRIDE = &H40 Const MDM_SPEED_ADJUST = &H80 Const MDM_TONE_DIAL = &H100 Const MDM_BLIND_DIAL = &H200 Const MDM_V23_OVERRIDE = &H400 ' ***************************************************************************** * ' * shellapi.h - Funciones, tipos y definiciones de SHELL.DLL * ' * * ' * Copyright (c) 1992-1995, Microsoft Corp. Reservados todos los derechos * ' * * ' \*****************************************************************************/ Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal HDROP As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long Declare Function DragQueryPoint Lib "shell32.dll" Alias "DragQueryPoint" (ByVal HDROP As Long, lpPoint As POINTAPI) As Long Declare Sub DragFinish Lib "shell32.dll" Alias "DragFinish" (ByVal hDrop As Long) Declare Sub DragAcceptFiles Lib "shell32.dll" Alias "DragAcceptFiles" (ByVal hwnd As Long, ByVal fAccept As Long) Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long Declare Function DuplicateIcon Lib "shell32.dll" Alias "DuplicateIcon" (ByVal hInst As Long, ByVal hIcon As Long) As Long Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociateIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long Type DRAGINFO uSize As Long ' init con el tamaño de (DRAGINFO) pt As POINTAPI fNC As Long lpFileList As String grfKeyState As Long End Type ' // Contenido de la barra de aplicaciones (AppBar) Const ABM_NEW = &H0 Const ABM_REMOVE = &H1 Const ABM_QUERYPOS = &H2 Const ABM_SETPOS = &H3 Const ABM_GETSTATE = &H4 Const ABM_GETTASKBARPOS = &H5 Const ABM_ACTIVATE = &H6 ' lParam == TRUE/FALSE significa activar/desactivar Const ABM_GETAUTOHIDEBAR = &H7 Const ABM_SETAUTOHIDEBAR = &H8 ' puede fallar en cualquier momento. DEBE verificar el resultado ' lParam = TRUE/FALSE Establecido/No establecido ' uEdge = borde específico Const ABM_WINDOWPOSCHANGED = &H9 ' los siguiente se colocan en wparam de los mensajes de devolución de llamada Const ABN_STATECHANGE = &H0 Const ABN_POSCHANGED = &H1 Const ABN_FULLSCREENAPP = &H2 Const ABN_WINDOWARRANGE = &H3 ' lParam == TRUE significa ocultar ' indicadores para obtener el estado Const ABS_AUTOHIDE = &H1 Const ABS_ALWAYSONTOP = &H2 Const ABE_LEFT = 0 Const ABE_TOP = 1 Const ABE_RIGHT = 2 Const ABE_BOTTOM = 3 Type APPBARDATA cbSize As Long hwnd As Long uCallbackMessage As Long uEdge As Long rc As Rect lParam As Long ' específico del mensaje End Type Declare Function SHAppBarMessage Lib "shell32.dll" Alias "SHAppBarMessage" (ByVal dwMessage As Long, pData As APPBARDATA) As Long ' // EndAppBar Declare Function DoEnvironmentSubst Lib "shell32.dll" Alias "DoEnvironmentSubstA" (ByVal szString As String, ByVal cbString As Long) As Long Declare Function FindEnvironmentString Lib "shell32.dll" Alias "FindEnvironmentStringA" (ByVal szEnvVar As String) As String Const EIRESID = -1 Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long ' // Operaciones de archivo de Shell Const FO_MOVE = &H1 Const FO_COPY = &H2 Const FO_DELETE = &H3 Const FO_RENAME = &H4 Const FOF_MULTIDESTFILES = &H1 Const FOF_CONFIRMMOUSE = &H2 Const FOF_SILENT = &H4 ' no crear avance/informe Const FOF_RENAMEONCOLLISION = &H8 Const FOF_NOCONFIRMATION = &H10 ' No pedir confirmación al usuario. Const FOF_WANTMAPPINGHANDLE = &H20 ' Llenar SHFILEOPSTRUCT.hNameMappings ' Hay que liberarlo mediante SHFreeNameMappings Const FOF_ALLOWUNDO = &H40 Const FOF_FILESONLY = &H80 ' en *.*, sólo archivos Const FOF_SIMPLEPROGRESS = &H100 ' significa no mostrar nombres de archivos Const FOF_NOCONFIRMMKDIR = &H200 ' no confirmar al crear directorios necesarios Public Const PO_DELETE = &H13 ' está eliminando la impresora Const PO_RENAME = &H14 ' está cambiando el nombre de la impresora Const PO_PORTCHANGE = &H20 ' cambiando el puerto donde está conectada la impresora ' si está establecido este id., las cadenas que recibe ' el enlace de copia son una lista de cadenas de ' terminación nula doble. El primero es el nombre de la ' impresora y el segundo, el puerto de la impresora. Const PO_REN_PORT = &H34 ' PO_RENAME y PO_PORTCHANGE al mismo tiempo. ' no hay indicadores POF_ flags definidos actualmente ' los parámetros implícitos son: ' si pFrom o pTo son nombres sin cualificar, los directorios actuales ' se toman de la configuración de unidad/directorio global actual ' administrada por Get/SetCurrentDrive/Directory ' ' valores globales de confirmación Type SHFILEOPSTRUCT hwnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAnyOperationsAborted As Long hNameMappings As Long lpszProgressTitle As String ' sólo se usa si FOF_SIMPLEPROGRESS End Type Declare Function SHFileOperation Lib "shell32.dll" Alias " SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long Declare Sub SHFreeNameMappings Lib "shell32.dll" Alias "SHFreeNameMappings" (ByVal hNameMappings As Long) Type SHNAMEMAPPING pszOldPath As String pszNewPath As String cchOldPath As Long cchNewPath As Long End Type ' // Fin de las operaciones de archivo de Shell ' // Comienzo de ShellExecuteEx y familia ' Códigos de error de ShellExecute() y ShellExecuteEx() ' Códigos normales de WinExec() Const SE_ERR_FNF = 2 ' archivo no encontrado Const SE_ERR_PNF = 3 ' ruta no encontrada Const SE_ERR_ACCESSDENIED = 5 ' acceso denegado Const SE_ERR_OOM = 8 ' no hay suficiente memoria Const SE_ERR_DLLNOTFOUND = 32 ' Observe que CLASSKEY ignora CLASSNAME Const SEE_MASK_CLASSNAME = &H1 Const SEE_MASK_CLASSKEY = &H3 ' Observe que INVOKEIDLIST ignora IDLIST Const SEE_MASK_IDLIST = &H4 Const SEE_MASK_INVOKEIDLIST = &HC Const SEE_MASK_ICON = &H10 Const SEE_MASK_HOTKEY = &H20 Const SEE_MASK_NOCLOSEPROCESS = &H40 Const SEE_MASK_CONNECTNETDRV = &H80 Const SEE_MASK_FLAG_DDEWAIT = &H100 Const SEE_MASK_DOENVSUBST = &H200 Const SEE_MASK_FLAG_NO_UI = &H400 Type SHELLEXECUTEINFO cbSize As Long fMask As Long hwnd As Long lpVerb As String lpFile As String lpParameters As String lpDirectory As String nShow As Long hInstApp As Long ' campos opcionales lpIDList As Long lpClass As String hkeyClass As Long dwHotKey As Long hIcon As Long hProcess As Long End Type Declare Sub WinExecError Lib "shell32.dll" Alias "WinExecErrorA" (ByVal hwnd As Long, ByVal error As Long, ByVal lpstrFileName As String, ByVal lpstrTitle As String) ' // Fin de ShellExecuteEx y familia ' // Definiciones de notificación de bandeja Type NOTIFYICONDATA cbSize As Long hwnd As Long uID As Long uFlags As Long uCallbackMessage As Long hIcon As Long szTip As String * 64 End Type Const NIM_ADD = &H0 Const NIM_MODIFY = &H1 Const NIM_DELETE = &H2 Const NIF_MESSAGE = &H1 Const NIF_ICON = &H2 Const NIF_TIP = &H4 Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long ' // Fin de los iconos de notificación de bandeja ' // Comienzo de SHGetFileInfo ' * La API de SHGetFileInfo proporciona una manera fácil de obtener atributos ' * para el nombre de ruta de un archivo dado. ' * ' * PARÁMETROS ' * ' * pszPath nombre del archivo sobre el que desea información ' * dwFileAttributes atributos del archivo; sólo se usa con SHGFI_USEFILEATTRIBUTES ' * psfi posición para devolver la información del archivo ' * cbFileInfo tamaño de la estructura ' * uFlags indicadores ' * ' * DEVUELVE ' * TRUE si ha funcionado bien ' */ Type SHFILEINFO hIcon As Long ' salida: icono iIcon As Long ' salida: índice del icono dwAttributes As Long ' salida: indicadores SFGAO_ flags szDisplayName As String * MAX_PATH ' salida: nombre de presentación (o ruta) szTypeName As String * 80 ' salida: nombre de tipo End Type Const SHGFI_ICON = &H100 ' obtiene un icono Const SHGFI_DISPLAYNAME = &H200 ' obtiene el nombre de presentación Const SHGFI_TYPENAME = &H400 ' obtiene el nombre de tipo Const SHGFI_ATTRIBUTES = &H800 ' obtiene atributos Const SHGFI_ICONLOCATION = &H1000 ' obtiene la ubicación del icono Const SHGFI_EXETYPE = &H2000 ' devuelve el tipo de archivo exe Const SHGFI_SYSICONINDEX = &H4000 ' obtiene el índice de un icono del sistema Const SHGFI_LINKOVERLAY = &H8000 ' coloca superposición de vínculo en icono Const SHGFI_SELECTED = &H10000 ' muestra el icono en estado de seleccionado Const SHGFI_LARGEICON = &H0 ' obtiene un icono grande Const SHGFI_SMALLICON = &H1 ' obtiene un icono pequeño Const SHGFI_OPENICON = &H2 ' obtiene un icono abierto Const SHGFI_SHELLICONSIZE = &H4 ' obtiene icono de tamaño shell Const SHGFI_PIDL = &H8 ' pszPath es un pidl Const SHGFI_USEFILEATTRIBUTES = &H10 ' usa el atributo dwFileAttribute pasado Declare Function SHGetFileInfo Lib "shell32.dll" Alias " SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long Declare Function SHGetNewLinkInfo Lib "shell32.dll" Alias "SHGetNewLinkInfoA" (ByVal pszLinkto As String, ByVal pszDir As String, ByVal pszName As String, pfMustCopy As Long, ByVal uFlags As Long) As Long Const SHGNLI_PIDL = &H1 ' pszLinkTo es un pidl Const SHGNLI_PREFIXNAME = &H2 ' Crea nombre "Abreviatura de xxx" ' // Fin de SHGetFileInfo ' Copyright (C) 1993 - 1995 Microsoft Corporation ' Nombre del módulo: ' winperf.h ' Resumen: ' Archivo de encabezado para los datos del Monitor del sistema. ' Este archivo contiene las definiciones de las estructuras de datos que ' devuelve el Registro de configuración como respuesta a una petición de ' datos de rendimiento. El Registro de configuración y el Monitor del ' sistema usan este archivo para definir su interfaz. A continuación ' se describe la interfaz completa, a excepción del nombre ' del nodo para consultar en el registro, que es: ' HKEY_PERFORMANCE_DATA. ' Si consulta ese nodo con una subclave global, el que llama ' recuperará las estructuras descritas aquí. ' No es necesario registrar una clave de apertura con RegOpenKey() para ' el controlador reservado HKEY_PERFORMANCE_DATA, pero el ' que llama debe registrar una clave de cierre con RegCloseKey() para ' el controlador, para poder quitar o instalar transportes y controladores ' de red (lo que no puede suceder mientras están abiertos para ' su supervisión). Primero hay que registrar las conexiones remotas con ' RegConnectRegistry(). ' --*/ ' Definiciones de estructuras de datos. ' Para que los datos se devuelvan a través del Registro de configuración ' de manera independiente del sistema, tiene que estar autodefinido. ' Todos los desplazamientos siguientes están en bytes. ' ' Los datos se devuelven a través del Registro de configuración en un ' bloque de datos que comienza con una estructura _PERF_DATA_BLOCK. ' ' Después de la estructura _PERF_DATA_BLOCK está el NumObjectTypes ' de las secciones de datos, uno por cada tipo de objeto medido. Cada sección ' de tipo de objeto comienza con una estructura _PERF_OBJECT_TYPE. ' ***************************************************************************** * ' * winver.h - Funciones, tipos y definiciones de administración de versión * ' * * ' * Incluye archivo para VER.DLL. Esta biblioteca está diseñada * ' * para poder marcar las versiones de los archivos ejecutables * ' * de Windows y los archivos .VER especiales para los archivos * ' * ejecutables de DOS. * ' * * ' * Copyright (c) 1993, Microsoft Corp. Reservados todos los derechos. * ' * * ' \*****************************************************************************/ ' ----- Símbolos ----- Const VS_VERSION_INFO = 1 Const VS_USER_DEFINED = 100 ' ----- VS_VERSION.dwFileFlags ----- Const VS_FFI_SIGNATURE = &HFEEF04BD Const VS_FFI_STRUCVERSION = &H10000 Const VS_FFI_FILEFLAGSMASK = &H3F& ' ----- VS_VERSION.dwFileFlags ----- Const VS_FF_DEBUG = &H1& Const VS_FF_PRERELEASE = &H2& Const VS_FF_PATCHED = &H4& Const VS_FF_PRIVATEBUILD = &H8& Const VS_FF_INFOINFERRED = &H10& Const VS_FF_SPECIALBUILD = &H20& ' ----- VS_VERSION.dwFileOS ----- Const VOS_UNKNOWN = &H0& Const VOS_DOS = &H10000 Const VOS_OS216 = &H20000 Const VOS_OS232 = &H30000 Const VOS_NT = &H40000 Const VOS__BASE = &H0& Const VOS__WINDOWS16 = &H1& Const VOS__PM16 = &H2& Const VOS__PM32 = &H3& Const VOS__WINDOWS32 = &H4& Const VOS_DOS_WINDOWS16 = &H10001 Const VOS_DOS_WINDOWS32 = &H10004 Const VOS_OS216_PM16 = &H20002 Const VOS_OS232_PM32 = &H30003 Const VOS_NT_WINDOWS32 = &H40004 ' ----- VS_VERSION.dwFileType ----- Const VFT_UNKNOWN = &H0& Const VFT_APP = &H1& Const VFT_DLL = &H2& Const VFT_DRV = &H3& Const VFT_FONT = &H4& Const VFT_VXD = &H5& Const VFT_STATIC_LIB = &H7& ' ----- VS_VERSION.dwFileSubtype para VFT_WINDOWS_DRV ----- Const VFT2_UNKNOWN = &H0& Const VFT2_DRV_PRINTER = &H1& Const VFT2_DRV_KEYBOARD = &H2& Const VFT2_DRV_LANGUAGE = &H3& Const VFT2_DRV_DISPLAY = &H4& Const VFT2_DRV_MOUSE = &H5& Const VFT2_DRV_NETWORK = &H6& Const VFT2_DRV_SYSTEM = &H7& Const VFT2_DRV_INSTALLABLE = &H8& Const VFT2_DRV_SOUND = &H9& Const VFT2_DRV_COMM = &HA& Const VFT2_DRV_INPUTMETHOD = &HB& ' ----- VS_VERSION.dwFileSubtype para VFT_WINDOWS_FONT ----- Const VFT2_FONT_RASTER = &H1& Const VFT2_FONT_VECTOR = &H2& Const VFT2_FONT_TRUETYPE = &H3& ' ----- Indicadores de VerFindFile() ----- Const VFFF_ISSHAREDFILE = &H1 Const VFF_CURNEDEST = &H1 Const VFF_FILEINUSE = &H2 Const VFF_BUFFTOOSMALL = &H4 ' ----- Indicadores de VerInstallFile() ----- Const VIFF_FORCEINSTALL = &H1 Const VIFF_DONTDELETEOLD = &H2 Const VIF_TEMPFILE = &H1& Const VIF_MISMATCH = &H2& Const VIF_SRCOLD = &H4& Const VIF_DIFFLANG = &H8& Const VIF_DIFFCODEPG = &H10& Const VIF_DIFFTYPE = &H20& Const VIF_WRITEPROT = &H40& Const VIF_FILEINUSE = &H80& Const VIF_OUTOFSPACE = &H100& Const VIF_ACCESSVIOLATION = &H200& Const VIF_SHARINGVIOLATION = &H400& Const VIF_CANNOTCREATE = &H800& Const VIF_CANNOTDELETE = &H1000& Const VIF_CANNOTRENAME = &H2000& Const VIF_CANNOTDELETECUR = &H4000& Const VIF_OUTOFMEMORY = &H8000& Const VIF_CANNOTREADSRC = &H10000 Const VIF_CANNOTREADDST = &H20000 Const VIF_BUFFTOOSMALL = &H40000 ' ----- Tipos y estructuras ----- Type VS_FIXEDFILEINFO dwSignature As Long dwStrucVersion As Long ' p. ej. 0x00000042 = "0,42" dwFileVersionMS As Long ' p. ej. 0x00030075 = "3,75" dwFileVersionLS As Long ' p. ej. 0x00000031 = "0,31" dwProductVersionMS As Long ' p. ej. 0x00030010 = "3,10" dwProductVersionLS As Long ' p. ej. 0x00000031 = "0,31" dwFileFlagsMask As Long ' = 0x3F para la versión "0,42" dwFileFlags As Long ' p. ej. VFF_DEBUG Or VFF_PRERELEASE dwFileOS As Long ' p. ej. VOS_DOS_WINDOWS16 dwFileType As Long ' p. ej. VFT_DRIVER dwFileSubtype As Long ' p. ej. VFT2_DRV_KEYBOARD dwFileDateMS As Long ' p. ej. 0 dwFileDateLS As Long ' p. ej. 0 End Type ' ----- Prototipos de funciones ----- Declare Function VerFindFile Lib "version.dll" Alias "VerFindFileA" (ByVal uFlags As Long, ByVal szFileName As String, ByVal szWinDir As String, ByVal szAppDir As String, ByVal szCurDir As String, lpuCurDirLen As Long, ByVal szDestDir As String, lpuDestDirLen As Long) As Long Declare Function VerInstallFile Lib "version.dll" Alias " VerInstallFileA" (ByVal uFlags As Long, ByVal szSrcFileName As String, ByVal szDestFileName As String, ByVal szSrcDir As String, ByVal szDestDir As String, ByVal szCurDir As String, ByVal szTmpFile As String, lpuTmpFileLen As Long) As Long ' Devuelve el tamaño de la información de la versión en bytes Declare Function GetFileVersionInfoSize Lib "version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long ' Lee la información de la versión en el búfer ' /* Longitud del búfer para información * ' /* Información desde GetFileVersionSize * ' /* Nombre del archivo con marca de versión * Declare Function GetFileVersionInfo Lib "version.dll" Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwHandle As Long, ByVal dwLen As Long, lpData As Any) As Long Declare Function VerLanguageName Lib "kernel32" Alias "VerLanguageNameA" (ByVal wLang As Long, ByVal szLang As String, ByVal nSize As Long) As Long Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValue" (pBlock As Any, ByVal lpSubBlock As String, ByVal lplpBuffer As Long, puLen As Long) As Long ' ************************************************************************** ' * * ' * winbase.h -- Este módulo define las API base de Windows de 32 bits * ' * * ' * Copyright (c) 1990-1995, Microsoft Corp. Reservados todos los derechos. * ' * * ' **************************************************************************/ Type ICONMETRICS cbSize As Long iHorzSpacing As Long iVertSpacing As Long iTitleWrap As Long lfFont As LOGFONT End Type Type HELPINFO cbSize As Long iContextType As Long iCtrlId As Long hItemHandle As Long dwContextId As Long MousePos As POINTAPI End Type Type ANIMATIONINFO cbSize As Long iMinAnimate As Long End Type Type MINIMIZEDMETRICS cbSize As Long iWidth As Long iHorzGap As Long iVertGap As Long iArrange As Long lfFont As LOGFONT End Type ' Define los accesorios de la API para la importación directa de referencias de la DLL. Declare Function HeapValidate Lib "kernel32" Alias "HeapValidate" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long Declare Function HeapCompact Lib "kernel32" Alias "HeapCompact" (ByVal hHeap As Long, ByVal dwFlags As Long) As Long Const PROCESS_HEAP_REGION = &H1 Const PROCESS_HEAP_UNCOMMITTED_RANGE = &H2 Const PROCESS_HEAP_ENTRY_BUSY = &H4 Const PROCESS_HEAP_ENTRY_MOVEABLE = &H10 Const PROCESS_HEAP_ENTRY_DDESHARE = &H20 Declare Function HeapLock Lib "kernel32" Alias "HeapLock" (ByVal hHeap As Long) As Long Declare Function HeapUnlock Lib "kernel32" Alias "HeapUnlock" (ByVal hHeap As Long) As Long ' Valores de retorno de GetBinaryType. Const SCS_32BIT_BINARY = 0 Const SCS_DOS_BINARY = 1 Const SCS_WOW_BINARY = 2 Const SCS_PIF_BINARY = 3 Const SCS_POSIX_BINARY = 4 Const SCS_OS216_BINARY = 5 Declare Function GetBinaryType Lib "kernel32" Alias "GetBinaryTypeA" (ByVal lpApplicationName As String, lpBinaryType As Long) As Long Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long Declare Function GetProcessAffinityMask Lib "kernel32" Alias "GetProcessAffinityMask" (ByVal hProcess As Long, lpProcessAffinityMask As Long, SystemAffinityMask As Long) As Long ' API de soporte de inicio de sesión Const LOGON32_LOGON_INTERACTIVE = 2 Const LOGON32_LOGON_BATCH = 4 Const LOGON32_LOGON_SERVICE = 5 Const LOGON32_PROVIDER_DEFAULT = 0 Const LOGON32_PROVIDER_WINNT35 = 1 Declare Function LogonUser Lib "kernel32" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, phToken As Long) As Long Declare Function ImpersonateLoggedOnUser Lib "kernel32" Alias "ImpersonateLoggedOnUser" (ByVal hToken As Long) As Long Declare Function CreateProcessAsUser Lib "advapi32.dll" Alias "CreateProcessAsUserA" (ByVal hToken As Long, ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As SECURITY_ATTRIBUTES, ByVal lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As String, ByVal lpCurrentDirectory As String, ByVal lpStartupInfo As STARTUPINFO, ByVal lpProcessInformation As PROCESS_INFORMATION) As Long ' API del contador del sistema Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 ' Cadena de mantenimiento para uso de PSS End Type ' Definiciones de dwPlatformId: ' Const VER_PLATFORM_WIN32s = 0 Const VER_PLATFORM_WIN32_WINDOWS = 1 Const VER_PLATFORM_WIN32_NT = 2 Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByVal lpVersionInformation As OSVERSIONINFO) As Long ' API de administración de alimentación Const AC_LINE_OFFLINE = &H0 Const AC_LINE_ONLINE = &H1 Const AC_LINE_BACKUP_POWER = &H2 Const AC_LINE_UNKNOWN = &HFF Const BATTERY_FLAG_HIGH = &H1 Const BATTERY_FLAG_LOW = &H2 Const BATTERY_FLAG_CRITICAL = &H4 Const BATTERY_FLAG_CHARGING = &H8 Const BATTERY_FLAG_NO_BATTERY = &H80 Const BATTERY_FLAG_UNKNOWN = &HFF Const BATTERY_PERCENTAGE_UNKNOWN = &HFF Const BATTERY_LIFE_UNKNOWN = &HFFFF Type SYSTEM_POWER_STATUS ACLineStatus As Byte BatteryFlag As Byte BatteryLifePercent As Byte Reserved1 As Byte BatteryLifeTime As Long BatteryFullLifeTime As Long End Type Declare Function GetSystemPowerStatus Lib "kernel32" Alias "GetSystemPowerStatus" (lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long Declare Function SetSystemPowerState Lib "kernel32" Alias "SetSystemPowerState" (ByVal fSuspend As Long, ByVal fForce As Long) As Long ' * commdlg.h -- Este módulo define las API de diálogo común de 32 bits * Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer Const OFN_READONLY = &H1 Const OFN_OVERWRITEPROMPT = &H2 Const OFN_HIDEREADONLY = &H4 Const OFN_NOCHANGEDIR = &H8 Const OFN_SHOWHELP = &H10 Const OFN_ENABLEHOOK = &H20 Const OFN_ENABLETEMPLATE = &H40 Const OFN_ENABLETEMPLATEHANDLE = &H80 Const OFN_NOVALIDATE = &H100 Const OFN_ALLOWMULTISELECT = &H200 Const OFN_EXTENSIONDIFFERENT = &H400 Const OFN_PATHMUSTEXIST = &H800 Const OFN_FILEMUSTEXIST = &H1000 Const OFN_CREATEPROMPT = &H2000 Const OFN_SHAREAWARE = &H4000 Const OFN_NOREADONLYRETURN = &H8000 Const OFN_NOTESTFILECREATE = &H10000 Const OFN_NONETWORKBUTTON = &H20000 Const OFN_NOLONGNAMES = &H40000 ' exige nombre no largos para módulos 4.x Const OFN_EXPLORER = &H80000 ' nueva apariencia de commdlg Const OFN_NODEREFERENCELINKS = &H100000 Const OFN_LONGNAMES = &H200000 ' exige nombres largos para módulos 3.x Const OFN_SHAREFALLTHROUGH = 2 Const OFN_SHARENOWARN = 1 Const OFN_SHAREWARN = 0 Type NMHDR hwndFrom As Long idfrom As Long code As Long End Type Type OFNOTIFY hdr As NMHDR lpOFN As OPENFILENAME pszFile As String ' Puede ser NULL End Type Const CDM_FIRST = (WM_USER + 100) Const CDM_LAST = (WM_USER + 200) Const CDM_GETSPEC = (CDM_FIRST + &H0) Const CDM_GETFILEPATH = (CDM_FIRST + &H1) Const CDM_GETFOLDERPATH = (CDM_FIRST + &H2) Const CDM_GETFOLDERIDLIST = (CDM_FIRST + &H3) Const CDM_SETCONTROLTEXT = (CDM_FIRST + &H4) Const CDM_HIDECONTROL = (CDM_FIRST + &H5) Const CDM_SETDEFEXT = (CDM_FIRST + &H6) Type CHOOSECOLOR lStructSize As Long hwndOwner As Long hInstance As Long rgbResult As Long lpCustColors As Long flags As Long lCustData As Long lpfnHook As Long lpTemplateName As String End Type Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long Const CC_RGBINIT = &H1 Const CC_FULLOPEN = &H2 Const CC_PREVENTFULLOPEN = &H4 Const CC_SHOWHELP = &H8 Const CC_ENABLEHOOK = &H10 Const CC_ENABLETEMPLATE = &H20 Const CC_ENABLETEMPLATEHANDLE = &H40 Const CC_SOLIDCOLOR = &H80 Const CC_ANYCOLOR = &H100 Type FINDREPLACE lStructSize As Long ' tamaño de esta estructura 0x20 hwndOwner As Long ' controlador para la ventana del propietario hInstance As Long ' controlador de instancias de .EXE que ' contiene una plantilla de diálogo personalizado flags As Long ' uno o más FR_?? lpstrFindWhat As String ' puntero a cadena de búsqueda lpstrReplaceWith As String ' puntero a cadena de reemplazo wFindWhatLen As Integer ' tamaño del búfer de búsqueda wReplaceWithLen As Integer ' tamaño del búfer de reemplazo lCustData As Long ' datos que pasan a la función enlazada lpfnHook As Long ' puntero a la función enlazada o NULL lpTemplateName As String ' nombre de la plantilla personalizada End Type Const FR_DOWN = &H1 Const FR_WHOLEWORD = &H2 Const FR_MATCHCASE = &H4 Const FR_FINDNEXT = &H8 Const FR_REPLACE = &H10 Const FR_REPLACEALL = &H20 Const FR_DIALOGTERM = &H40 Const FR_SHOWHELP = &H80 Const FR_ENABLEHOOK = &H100 Const FR_ENABLETEMPLATE = &H200 Const FR_NOUPDOWN = &H400 Const FR_NOMATCHCASE = &H800 Const FR_NOWHOLEWORD = &H1000 Const FR_ENABLETEMPLATEHANDLE = &H2000 Const FR_HIDEUPDOWN = &H4000 Const FR_HIDEMATCHCASE = &H8000 Const FR_HIDEWHOLEWORD = &H10000 Declare Function FindText Lib "comdlg32.dll" Alias "FindTextA " (pFindreplace As FINDREPLACE) As Long Declare Function ReplaceText Lib "comdlg32.dll" Alias "ReplaceTextA" (pFindreplace As FINDREPLACE) As Long Type CHOOSEFONT lStructSize As Long hwndOwner As Long ' controlador de ventana del que llama hdc As Long ' impresora DC/IC o NULL lpLogFont As Long iPointSize As Long ' 10 * tamaño de fuente seleccionada en puntos flags As Long ' indicadores de tipo enumerados rgbColors As Long ' color de texto que se devuelve lCustData As Long ' datos pasados a la función enlazada lpfnHook As Long ' puntero a función enlazada lpTemplateName As String ' nombre de la plantilla personalizada hInstance As Long ' controlador de instancias de .EXE que ' contiene una plantilla de diálogo personalizada lpszStyle As String ' aquí devuelve el campo de estilo ' debe ser LF_FACESIZE o mayor nFontType As Integer ' el mismo valor que el enviado a EnumFonts ' vuelve a llamar con los bits extra de FONTTYPE_ ' agregados MISSING_ALIGNMENT As Integer nSizeMin As Long ' tamaño de puntos mínimo permitido & nSizeMax As Long ' tamaño de puntos máximo si ' se usa CF_LIMITSIZE End Type Declare Function ChooseFont Lib "comdlg32.dll" Alias "ChooseFontA" (pChoosefont As CHOOSEFONT) As Long Const CF_SCREENFONTS = &H1 Const CF_PRINTERFONTS = &H2 Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS) Const CF_SHOWHELP = &H4& Const CF_ENABLEHOOK = &H8& Const CF_ENABLETEMPLATE = &H10& Const CF_ENABLETEMPLATEHANDLE = &H20& Const CF_INITTOLOGFONTSTRUCT = &H40& Const CF_USESTYLE = &H80& Const CF_EFFECTS = &H100& Const CF_APPLY = &H200& Const CF_ANSIONLY = &H400& Const CF_SCRIPTSONLY = CF_ANSIONLY Const CF_NOVECTORFONTS = &H800& Const CF_NOOEMFONTS = CF_NOVECTORFONTS Const CF_NOSIMULATIONS = &H1000& Const CF_LIMITSIZE = &H2000& Const CF_FIXEDPITCHONLY = &H4000& Const CF_WYSIWYG = &H8000 ' debe tener también CF_SCREENFONTS CF_PRINTERFONTS Const CF_FORCEFONTEXIST = &H10000 Const CF_SCALABLEONLY = &H20000 Const CF_TTONLY = &H40000 Const CF_NOFACESEL = &H80000 Const CF_NOSTYLESEL = &H100000 Const CF_NOSIZESEL = &H200000 Const CF_SELECTSCRIPT = &H400000 Const CF_NOSCRIPTSEL = &H800000 Const CF_NOVERTFONTS = &H1000000 Const SIMULATED_FONTTYPE = &H8000 Const PRINTER_FONTTYPE = &H4000 Const SCREEN_FONTTYPE = &H2000 Const BOLD_FONTTYPE = &H100 Const ITALIC_FONTTYPE = &H200 Const REGULAR_FONTTYPE = &H400 Const WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1) Const WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101) Const WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102) Const LBSELCHSTRING = "commdlg_LBSelChangedNotify" Const SHAREVISTRING = "commdlg_ShareViolation" Const FILEOKSTRING = "commdlg_FileNameOK" Const COLOROKSTRING = "commdlg_ColorOK" Const SETRGBSTRING = "commdlg_SetRGBColor" Const HELPMSGSTRING = "commdlg_help" Const FINDMSGSTRING = "commdlg_FindReplace" Const CD_LBSELNOITEMS = -1 Const CD_LBSELCHANGE = 0 Const CD_LBSELSUB = 1 Const CD_LBSELADD = 2 Type PRINTDLG lStructSize As Long hwndOwner As Long hDevMode As Long hDevNames As Long hdc As Long flags As Long nFromPage As Integer nToPage As Integer nMinPage As Integer nMaxPage As Integer nCopies As Integer hInstance As Long lCustData As Long lpfnPrintHook As Long lpfnSetupHook As Long lpPrintTemplateName As String lpSetupTemplateName As String hPrintTemplate As Long hSetupTemplate As Long End Type Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PRINTDLG) As Long Const PD_ALLPAGES = &H0 Const PD_SELECTION = &H1 Const PD_PAGENUMS = &H2 Const PD_NOSELECTION = &H4 Const PD_NOPAGENUMS = &H8 Const PD_COLLATE = &H10 Const PD_PRINTTOFILE = &H20 Const PD_PRINTSETUP = &H40 Const PD_NOWARNING = &H80 Const PD_RETURNDC = &H100 Const PD_RETURNIC = &H200 Const PD_RETURNDEFAULT = &H400 Const PD_SHOWHELP = &H800 Const PD_ENABLEPRINTHOOK = &H1000 Const PD_ENABLESETUPHOOK = &H2000 Const PD_ENABLEPRINTTEMPLATE = &H4000 Const PD_ENABLESETUPTEMPLATE = &H8000 Const PD_ENABLEPRINTTEMPLATEHANDLE = &H10000 Const PD_ENABLESETUPTEMPLATEHANDLE = &H20000 Const PD_USEDEVMODECOPIES = &H40000 Const PD_USEDEVMODECOPIESANDCOLLATE = &H40000 Const PD_DISABLEPRINTTOFILE = &H80000 Const PD_HIDEPRINTTOFILE = &H100000 Const PD_NONETWORKBUTTON = &H200000 Type DEVNAMES wDriverOffset As Integer wDeviceOffset As Integer wOutputOffset As Integer wDefault As Integer End Type Const DN_DEFAULTPRN = &H1 Declare Function CommDlgExtendedError Lib "comdlg32.dll" Alias "CommDlgExtendedError" () As Long Const WM_PSD_PAGESETUPDLG = (WM_USER) Const WM_PSD_FULLPAGERECT = (WM_USER + 1) Const WM_PSD_MINMARGINRECT = (WM_USER + 2) Const WM_PSD_MARGINRECT = (WM_USER + 3) Const WM_PSD_GREEKTEXTRECT = (WM_USER + 4) Const WM_PSD_ENVSTAMPRECT = (WM_USER + 5) Const WM_PSD_YAFULLPAGERECT = (WM_USER + 6) Type PAGESETUPDLG lStructSize As Long hwndOwner As Long hDevMode As Long hDevNames As Long flags As Long ptPaperSize As POINTAPI rtMinMargin As Rect rtMargin As Rect hInstance As Long lCustData As Long lpfnPageSetupHook As Long lpfnPagePaintHook As Long lpPageSetupTemplateName As String hPageSetupTemplate As Long End Type Declare Function PageSetupDlg Lib "comdlg32.dll" Alias "PageSetupDlgA" (pPagesetupdlg As PAGESETUPDLG) As Long Const PSD_DEFAULTMINMARGINS = &H0 ' predeterminado (por la impresora) Const PSD_INWININIINTLMEASURE = &H0 ' primero de 4 posibles Const PSD_MINMARGINS = &H1 ' usa los del que llama Const PSD_MARGINS = &H2 ' usa los del que llama Const PSD_INTHOUSANDTHSOFINCHES = &H4 ' segundo de 4 posibles Const PSD_INHUNDREDTHSOFMILLIMETERS = &H8 ' tercero de 4 posibles Const PSD_DISABLEMARGINS = &H10 Const PSD_DISABLEPRINTER = &H20 Const PSD_NOWARNING = &H80 ' debe ser igual que PD_* Const PSD_DISABLEORIENTATION = &H100 Const PSD_RETURNDEFAULT = &H400 ' debe ser igual que PD_* Const PSD_DISABLEPAPER = &H200 Const PSD_SHOWHELP = &H800 ' debe ser igual que PD_* Const PSD_ENABLEPAGESETUPHOOK = &H2000 ' debe ser igual que PD_* Const PSD_ENABLEPAGESETUPTEMPLATE = &H8000 ' debe ser igual que PD_* Const PSD_ENABLEPAGESETUPTEMPLATEHANDLE = &H20000 ' debe ser igual que PD_* Const PSD_ENABLEPAGEPAINTHOOK = &H40000 Const PSD_DISABLEPAGEPAINTING = &H80000 Declare Function DdeInitialize Lib "user32" Alias "DdeInitializeA" (pidInst As Long, ByVal pfnCallback As Long, ByVal afCmd As Long, ByVal ulRes As Long) As Integer Declare Function SetServiceBits Lib "advapi32" Alias "SetServiceBits" (ByVal hServiceStatus As Long, ByVal dwServiceBits As Long, ByVal bSetBitsOn As Boolean, ByVal bUpdateImmediately As Boolean) As Long Declare Function CopyLZFile Lib "lz32" Alias "CopyLZFile" (ByVal n1 As Long, ByVal n2 As Long) As Long Declare Function LZStart Lib "lz32" Alias "LZStart" () As Long Declare Sub LZDone Lib "lz32" Alias "LZDone" () Declare Function mciGetYieldProc Lib "winmm" Alias "mciGetYieldProc" (ByVal mciId As Long, pdwYieldData As Long) As Long Declare Function mciSetYieldProc Lib "winmm" Alias "mciSetYieldProc" (ByVal mciId As Long, ByVal fpYieldProc As Long, ByVal dwYieldData As Long) As Long Declare Function midiOutGetNumDevs Lib "winmm" Alias "midiOutGetNumDevs" () As Integer Declare Function mmioInstallIOProcA Lib "winmm" Alias "mmioInstallIOProcA" (ByVal fccIOProc As String * 4, ByVal pIOProc As Long, ByVal dwFlags As Long) As Long Declare Function CommandLineToArgv Lib "shell32" Alias "CommandLineToArgvW" (ByVal lpCmdLine As String, pNumArgs As Integer) As Long Declare Function IsTextUnicode Lib "advapi32" Alias "IsTextUnicode" (lpBuffer As Any, ByVal cb As Long, lpi As Long) As Long Declare Function NotifyChangeEventLog Lib "advapi32" Alias "NotifyChangeEventLog" (ByVal hEventLog As Long, ByVal hEvent As Long) As Long Declare Function SetThreadToken Lib "advapi32" Alias "SetThreadToken" (Thread As Long, ByVal Token As Long) As Long Type COMMCONFIG dwSize As Long wVersion As Integer wReserved As Integer dcbx As DCB dwProviderSubType As Long dwProviderOffset As Long dwProviderSize As Long wcProviderData As Byte End Type Declare Function CommConfigDialog Lib "kernel32" Alias "CommConfigDialogA" (ByVal lpszName As String, ByVal hWnd As Long, lpCC As COMMCONFIG) As Long Declare Function CreateIoCompletionPort Lib "kernel32" Alias "CreateIoCompletionPort" (ByVal FileHandle As Long, ByVal ExistingCompletionPort As Long, ByVal CompletionKey As Long, ByVal NumberOfConcurrentThreads As Long) As Long Declare Function DisableThreadLibraryCalls Lib "kernel32" Alias "DisableThreadLibraryCalls" (ByVal hLibModule As Long) As Long Declare Function EnumResourceLanguages Lib "kernel32" Alias "EnumResourceLanguagesA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function EnumResourceNames Lib "kernel32" Alias "EnumResourceNamesA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function EnumResourceTypes Lib "kernel32" Alias "EnumResourceTypesA" (ByVal hModule As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function FreeEnvironmentStrings Lib "kernel32" Alias "FreeEnvironmentStringsA" (ByVal lpsz As String) As Long Declare Sub FreeLibraryAndExitThread Lib "kernel32" Alias "FreeLibraryAndExitThread" (ByVal hLibModule As Long, ByVal dwExitCode As Long) Declare Function FreeResource Lib "kernel32" Alias "FreeResource" (ByVal hResData As Long) As Long Declare Function GetCommConfig Lib "kernel32" Alias "GetCommConfig" (ByVal hCommDev As Long, lpCC As COMMCONFIG, lpdwSize As Long) As Long Declare Function GetCompressedFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName As String, lpFileSizeHigh As Long) As Long Declare Function GetDefaultCommConfig Lib "kernel32" Alias "GetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, lpdwSize As Long) As Long Declare Function GetHandleInformation Lib "kernel32" Alias "GetHandleInformation" (ByVal hObject As Long, lpdwFlags As Long) As Long Declare Function GetProcessHeaps Lib "kernel32" Alias "GetProcessHeaps" (ByVal NumberOfHeaps As Long, ProcessHeaps As Long) As Long Declare Function GetProcessWorkingSetSize Lib "kernel32" Alias "GetProcessWorkingSetSize" (ByVal hProcess As Long, lpMinimumWorkingSetSize As Long, lpMaximumWorkingSetSize As Long) As Long Declare Function GetQueuedCompletionStatus Lib "kernel32" Alias "GetQueuedCompletionStatus" (ByVal CompletionPort As Long, lpNumberOfBytesTransferred As Long, lpCompletionKey As Long, lpOverlapped As Long, ByVal dwMilliseconds As Long) As Long Declare Function GetSystemTimeAdjustment Lib "kernel32" Alias "GetSystemTimeAdjustment" (lpTimeAdjustment As Long, lpTimeIncrement As Long, lpTimeAdjustmentDisabled As Long) As Long Declare Function GlobalCompact Lib "kernel32" Alias "GlobalCompact" (ByVal dwMinFree As Long) As Long Declare Sub GlobalFix Lib "kernel32" Alias "GlobalFix" (ByVal hMem As Long) Declare Sub GlobalUnfix Lib "kernel32" Alias "GlobalUnfix" (ByVal hMem As Long) Declare Function GlobalWire Lib "kernel32" Alias "GlobalWire" (ByVal hMem As Long) As Long Declare Function GlobalUnWire Lib "kernel32" Alias "GlobalUnWire" (ByVal hMem As Long) As Long Declare Function IsBadCodePtr Lib "kernel32" Alias "IsBadCodePtr" (ByVal lpfn As Long) As Long Declare Function LocalCompact Lib "kernel32" Alias "LocalCompact" (ByVal uMinFree As Long) As Long Declare Function LocalShrink Lib "kernel32" Alias "LocalShrink" (ByVal hMem As Long, ByVal cbNewSize As Long) As Long Declare Sub ZeroMemory Lib "KERNEL32" Alias "RtlMoveMemory" (dest As Any, ByVal numBytes As Long) Declare Function ReadFileEx Lib "kernel32" Alias "ReadFileEx" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpOverlapped As OVERLAPPED, ByVal lpCompletionRoutine As Long) As Long Declare Function SetCommConfig Lib "kernel32" Alias "SetCommConfig" (ByVal hCommDev As Long, lpCC As COMMCONFIG, ByVal dwSize As Long) As Long Declare Function SetDefaultCommConfig Lib "kernel32" Alias "SetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, ByVal dwSize As Long) As Long Declare Sub SetFileApisToANSI Lib "kernel32" Alias "SetFileApisToANSI" () Declare Function SetHandleInformation Lib "kernel32" Alias "SetHandleInformation" (ByVal hObject As Long, ByVal dwMask As Long, ByVal dwFlags As Long) As Long Declare Function SetProcessWorkingSetSize Lib "kernel32" Alias "SetProcessWorkingSetSize" (ByVal hProcess As Long, ByVal dwMinimumWorkingSetSize As Long, ByVal dwMaximumWorkingSetSize As Long) As Long Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long Declare Function lstrcpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As String, ByVal lpString2 As String, ByVal iMaxLength As Long) As Long Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long Declare Function SetSystemTimeAdjustment Lib "kernel32" Alias "SetSystemTimeAdjustment" (ByVal dwTimeAdjustment As Long, ByVal bTimeAdjustmentDisabled As Boolean) As Long Declare Function SetThreadAffinityMask Lib "kernel32" Alias "SetThreadAffinityMask" (ByVal hThread As Long, ByVal dwThreadAffinityMask As Long) As Long Declare Function SetUnhandledExceptionFilter Lib "kernel32" Alias "SetUnhandledExceptionFilter" (ByVal lpTopLevelExceptionFilter As Long) As Long Declare Function SystemTimeToTzSpecificLocalTime Lib "kernel32" Alias "SystemTimeToTzSpecificLocalTime" (lpTimeZoneInformation As TIME_ZONE_INFORMATION, lpUniversalTime As SYSTEMTIME, lpLocalTime As SYSTEMTIME) As Long Declare Function WriteFileEx Lib "kernel32" Alias "WriteFileEx" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpOverlapped As OVERLAPPED, ByVal lpCompletionRoutine As Long) As Long Type PIXELFORMATDESCRIPTOR nSize As Integer nVersion As Integer dwFlags As Long iPixelType As Byte cColorBits As Byte cRedBits As Byte cRedShift As Byte cGreenBits As Byte cGreenShift As Byte cBlueBits As Byte cBlueShift As Byte cAlphaBits As Byte cAlphaShift As Byte cAccumBits As Byte cAccumRedBits As Byte cAccumGreenBits As Byte cAccumBlueBits As Byte cAccumAlphaBits As Byte cDepthBits As Byte cStencilBits As Byte cAuxBuffers As Byte iLayerType As Byte bReserved As Byte dwLayerMask As Long dwVisibleMask As Long dwDamageMask As Long End Type Declare Function ChoosePixelFormat Lib "gdi32" Alias "ChoosePixelFormat" (ByVal hDC As Long, pPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long Declare Function CreateDIBSection Lib "gdi32" Alias "CreateDIBSection" (ByVal hDC As Long, pBitmapInfo As BITMAPINFO, ByVal un As Long, ByVal lplpVoid As Long, ByVal handle As Long, ByVal dw As Long) As Long Declare Function DescribePixelFormat Lib "gdi32" Alias "DescribePixelFormat" (ByVal hDC As Long, ByVal n As Long, ByVal un As Long, lpPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long Declare Function EndDoc Lib "gdi32" Alias "EndDoc" (ByVal hDC As Long) As Long Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long, ByVal lParam As Long) As Long Declare Function EnumMetaFile Lib "gdi32" Alias "EnumMetaFile" (ByVal hDC As Long, ByVal hMetafile As Long, ByVal lpMFEnumProc As Long, ByVal lParam As Long) As Long Declare Function EnumObjects Lib "gdi32" Alias "EnumObjects" (ByVal hDC As Long, ByVal n As Long, ByVal lpGOBJEnumProc As Long, lpVoid As Any) As Long Declare Function FixBrushOrgEx Lib "gdi32" Alias "FixBrushOrgEx" (ByVal hDC As Long, ByVal n1 As Long, ByVal n2 As Long, lpPoint As POINTAPI) As Long Declare Function GetBrushOrgEx Lib "gdi32" Alias "GetBrushOrgEx" (ByVal hDC As Long, lpPoint As POINTAPI) As Long Declare Function GetDIBColorTable Lib "gdi32" Alias "GetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pRGBQuad As RGBQUAD) As Long Declare Function GetPixelFormat Lib "gdi32" Alias "GetPixelFormat" (ByVal hDC As Long) As Long Declare Function LineDDA Lib "gdi32" Alias "LineDDA" (ByVal n1 As Long, ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal lpLineDDAProc As Long, ByVal lParam As Long) As Long Declare Function SetAbortProc Lib "gdi32" Alias "SetAbortProc" (ByVal hDC As Long, ByVal lpAbortProc As Long) As Long Declare Function SetDIBColorTable Lib "gdi32" Alias "SetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD) As Long Declare Function SetPixelFormat Lib "gdi32" Alias "SetPixelFormat" (ByVal hDC As Long, ByVal n As Long, pcPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long Declare Function SwapBuffers Lib "gdi32" Alias "SwapBuffers" (ByVal hDC As Long) As Long Declare Function EnumCalendarInfo Lib "kernel32" Alias "EnumCalendarInfoA" (ByVal lpCalInfoEnumProc As Long, ByVal Locale As Long, ByVal Calendar As Long, ByVal CalType As Long) As Long Declare Function GetCurrencyFormat Lib "kernel32" Alias "GetCurrencyFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, lpFormat As CURRENCYFMT, ByVal lpCurrencyStr As String, ByVal cchCurrency As Long) As Long Declare Function GetNumberFormat Lib "kernel32" Alias "GetNumberFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, lpFormat As NUMBERFMT, ByVal lpNumberStr As String, ByVal cchNumber As Long) As Long Declare Function GetStringTypeEx Lib "kernel32" Alias "GetStringTypeExA" (ByVal Locale As Long, ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Integer) As Long Declare Function GetStringTypeW Lib "kernel32" Alias "GetStringTypeW" (ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Integer) As Long Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long Declare Function DeletePrinter Lib "winspool.drv" Alias "DeletePrinter" (ByVal hPrinter As Long) As Long Declare Function FindClosePrinterChangeNotification Lib "winspool.drv" Alias "FindClosePrinterChangeNotification" (ByVal hChange As Long) As Long Declare Function FindFirstPrinterChangeNotification Lib "winspool.drv" Alias "FindFirstPrinterChangeNotification" (ByVal hPrinter As Long, ByVal fdwFlags As Long, ByVal fdwOptions As Long, ByVal pPrinterNotifyOptions As String) As Long Declare Function FindNextPrinterChangeNotification Lib "winspool.drv" Alias "FindNextPrinterChangeNotification" (ByVal hChange As Long, pdwChange As Long, ByVal pvReserved As String, ByVal ppPrinterNotifyInfo As Long) As Long Declare Function GetPrinter Lib "winspool.drv" Alias "GetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal cbBuf As Long, pcbNeeded As Long) As Long Declare Function SetPrinter Lib "winspool.drv" Alias "SetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Byte, ByVal Command As Long) As Long Declare Function BroadcastSystemMessage Lib "user32" Alias "BroadcastSystemMessage" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function CascadeWindows Lib "user32" Alias "CascadeWindows" (ByVal hwndParent As Long, ByVal wHow As Long, ByVal lpRect As RECT, ByVal cKids As Long, lpkids As Long) As Integer Declare Function ChangeMenu Lib "user32" Alias "ChangeMenuA" (ByVal hMenu As Long, ByVal cmd As Long, ByVal lpszNewItem As String, ByVal cmdInsert As Long, ByVal flags As Long) As Long Declare Function CheckMenuRadioItem Lib "user32" Alias "CheckMenuRadioItem" (ByVal hMenu As Long, ByVal un1 As Long, ByVal un2 As Long, ByVal un3 As Long, ByVal un4 As Long) As Long Declare Function ChildWindowFromPoint Lib "user32" Alias "ChildWindowFromPoint" (ByVal hWndParent As Long, ByVal pt As POINTAPI) As Long Declare Function ChildWindowFromPointEx Lib "user32" Alias "ChildWindowFromPointEx" (ByVal hWnd As Long, ByVal pt As POINTAPI, ByVal un As Long) As Long Declare Function CloseDesktop Lib "user32" Alias "CloseDesktop" (ByVal hDesktop As Long) As Long Declare Function CloseWindowStation Lib "user32" Alias "CloseWindowStation" (ByVal hWinSta As Long) As Long Declare Function CopyImage Lib "user32" Alias "CopyImage" (ByVal handle As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long Declare Function CreateDesktop Lib "user32" Alias "CreateDesktopA" (ByVal lpszDesktop As String, ByVal lpszDevice As String, pDevmode As DEVMODE, ByVal dwFlags As Long, ByVal dwDesiredAccess As Long, lpsa As SECURITY_ATTRIBUTES) As Long Declare Function CreateDialogIndirectParam Lib "user32" Alias "CreateDialogIndirectParamA" (ByVal hInstance As Long, lpTemplate As DLGTEMPLATE, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Long Declare Function CreateDialogParam Lib "user32" Alias "CreateDialogParamA" (ByVal hInstance As Long, ByVal lpName As String, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal lParamInit As Long) As Long Declare Function CreateIconFromResource Lib "user32" Alias "CreateIconFromResource" (presbits As Byte, ByVal dwResSize As Long, ByVal fIcon As Long, ByVal dwVer As Long) As Long Declare Function DialogBoxIndirectParam Lib "user32" Alias "DialogBoxIndirectParamA" (ByVal hInstance As Long, hDialogTemplate As DLGTEMPLATE, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Long Declare Function DragDetect Lib "user32" Alias "DragDetect" (ByVal hWnd As Long, ByVal pt As POINTAPI) As Long Declare Function DragObject Lib "user32" Alias "DragObject" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal un As Long, ByVal dw As Long, ByVal hCursor As Long) As Long Declare Function DrawAnimatedRects Lib "user32" Alias "DrawAnimatedRects" (ByVal hwnd As Long, ByVal idAni As Long, lprcFrom As Rect, lprcTo As Rect) As Long Declare Function DrawCaption Lib "user32" Alias "DrawCaption" (ByVal hWnd As Long, ByVal hDC As Long, pcRect As Rect, ByVal un As Long) As Long Declare Function DrawEdge Lib "user32" Alias "DrawEdge" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long Declare Function DrawFrameControl Lib "user32" Alias "DrawFrameControl" (ByVal hDC As Long, lpRect As RECT, ByVal un1 As Long, ByVal un2 As Long) As Long Declare Function DrawIconEx Lib "user32" Alias "DrawIconEx" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long Declare Function DrawState Lib "user32" Alias "DrawStateA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpDrawStateProc As Long, ByVal lParam As Long, ByVal wParam As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal un As Long) As Long Type DRAWTEXTPARAMS cbSize As Long iTabLength As Long iLeftMargin As Long iRightMargin As Long uiLengthDrawn As Long End Type Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" (ByVal hDC As Long, ByVal lpsz As String, ByVal n As Long, lpRect As RECT, ByVal un As Long, lpDrawTextParams As DRAWTEXTPARAMS) As Long Declare Function EnumChildWindows Lib "user32" Alias "EnumChildWindows" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function EnumDesktops Lib "user32" Alias "EnumDesktopsA" (ByVal hwinsta As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function EnumDesktopWindows Lib "user32" Alias "EnumDesktopWindows" (ByVal hDesktop As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long Declare Function EnumPropsEx Lib "user32" Alias "EnumPropsExA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function EnumProps Lib "user32" Alias "EnumPropsA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long) As Long Declare Function EnumThreadWindows Lib "user32" Alias "EnumThreadWindows" (ByVal dwThreadId As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function EnumWindowStations Lib "user32" Alias "EnumWindowStationsA" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Declare Function GetKeyboardLayoutList Lib "user32" Alias "GetKeyboardLayoutList" (ByVal nBuff As Long, lpList As Long) As Long Declare Function GetKeyboardLayout Lib "user32" Alias "GetKeyboardLayout" (ByVal dwLayout As Long) As Long Declare Function GetMenuContextHelpId Lib "user32" Alias "GetMenuContextHelpId" (ByVal hMenu As Long) As Long Declare Function GetMenuDefaultItem Lib "user32" Alias "GetMenuDefaultItem" (ByVal hMenu As Long, ByVal fByPos As Long, ByVal gmdiFlags As Long) As Long Type MENUITEMINFO cbSize As Long fMask As Long fType As Long fState As Long wID As Long hSubMenu As Long hbmpChecked As Long hbmpUnchecked As Long dwItemData As Long dwTypeData As String cch As Long End Type Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Long, lpMenuItemInfo As MENUITEMINFO) As Long Declare Function GetMenuItemRect Lib "user32" Alias "GetMenuItemRect" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal uItem As Long, lprcItem As RECT) As Long Type SCROLLINFO cbSize As Long fMask As Long nMin As Long nMax As Long nPage As Long nPos As Long nTrackPos As Long End Type Declare Function GetScrollInfo Lib "user32" Alias "GetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long Declare Function GetSysColorBrush Lib "user32" Alias "GetSysColorBrush" (ByVal nIndex As Long) As Long Declare Function GetUserObjectInformation Lib "user32" Alias "GetUserObjectInformationA" (ByVal hObj As Long, ByVal nIndex As Long, pvInfo As Any, ByVal nLength As Long, lpnLengthNeeded As Long) As Long Declare Function GetWindowContextHelpId Lib "user32" Alias "GetWindowContextHelpId" (ByVal hWnd As Long) As Long Declare Function GetWindowRgn Lib "user32" Alias "GetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long) As Long Declare Function GrayString Lib "user32" Alias "GrayStringA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpOutputFunc As Long, ByVal lpData As Long, ByVal nCount As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long Declare Function LookupIconIdFromDirectoryEx Lib "user32" Alias "LookupIconIdFromDirectoryEx" (presbits As Byte, ByVal fIcon As Boolean, ByVal cxDesired As Long, ByVal cyDesired As Long, ByVal Flags As Long) As Long Declare Function MapVirtualKeyEx Lib "user32" Alias "MapVirtualKeyExA" (ByVal uCode As Long, ByVal uMapType As Long, ByVal dwhkl As Long) As Long Declare Function MenuItemFromPoint Lib "user32" Alias "MenuItemFromPoint" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal ptScreen As POINTAPI) As Long Type MSGBOXPARAMS cbSize As Long hwndOwner As Long hInstance As Long lpszText As String lpszCaption As String dwStyle As Long lpszIcon As String dwContextHelpId As Long lpfnMsgBoxCallback As Long dwLanguageId As Long End Type Declare Function MessageBoxIndirect Lib "user32" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long Declare Function OpenDesktop Lib "user32" Alias "OpenDesktopA" (ByVal lpszDesktop As String, ByVal dwFlags As Long, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long Declare Function OpenInputDesktop Lib "user32" Alias "OpenInputDesktop" (ByVal dwFlags As Long, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long Declare Function OpenWindowStation Lib "user32" Alias "OpenWindowStationA" (ByVal lpszWinSta As String, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long Declare Function PaintDesktop Lib "user32" Alias "PaintDesktop" (ByVal hdc As Long) As Long Type WNDCLASSEX cbSize As Long style As Long lpfnWndProc As Long cbClsExtra As Long cbWndExtra As Long hInstance As Long hIcon As Long hCursor As Long hbrBackground As Long lpszMenuName As String lpszClassName As String hIconSm As Long End Type Declare Function RegisterClassEx Lib "user32" Alias "RegisterClassExA" (pcWndClassEx As WNDCLASSEX) As Integer Declare Function SetMenuContextHelpId Lib "user32" Alias "SetMenuContextHelpId" (ByVal hMenu As Long, ByVal dw As Long) As Long Declare Function SetMenuDefaultItem Lib "user32" Alias "SetMenuDefaultItem" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long Declare Function SetMessageExtraInfo Lib "user32" Alias "SetMessageExtraInfo" (ByVal lParam As Long) As Long Declare Function SetMessageQueue Lib "user32" Alias "SetMessageQueue" (ByVal cMessagesMax As Long) As Long Declare Function SetProcessWindowStation Lib "user32" Alias "SetProcessWindowStation" (ByVal hWinSta As Long) As Long Declare Function SetScrollInfo Lib "user32" Alias "SetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpcScrollInfo As SCROLLINFO, ByVal bool As Boolean) As Long Declare Function SetSystemCursor Lib "user32" Alias "SetSystemCursor" (ByVal hcur As Long, ByVal id As Long) As Long Declare Function SetThreadDesktop Lib "user32" Alias "SetThreadDesktop" (ByVal hDesktop As Long) As Long Declare Function SetTimer Lib "user32" Alias "SetTimer" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Declare Function SetUserObjectInformation Lib "user32" Alias "SetUserObjectInformationA" (ByVal hObj As Long, ByVal nIndex As Long, pvInfo As Any, ByVal nLength As Long) As Long Declare Function SetWindowContextHelpId Lib "user32" Alias "SetWindowContextHelpId" (ByVal hWnd As Long, ByVal dw As Long) As Long Declare Function SetWindowRgn Lib "user32" Alias "SetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Declare Function SetWindowsHook Lib "user32" Alias "SetWindowsHookA" (ByVal nFilterType As Long, ByVal pfnFilterProc As Long) As Long Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Declare Function ShowWindowAsync Lib "user32" Alias "ShowWindowAsync" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Declare Function SwitchDesktop Lib "user32" Alias "SwitchDesktop" (ByVal hDesktop As Long) As Long Declare Function TileWindows Lib "user32" Alias "TileWindows" (ByVal hwndParent As Long, ByVal wHow As Long, lpRect As Rect, ByVal cKids As Long, lpKids As Long) As Integer Declare Function ToAsciiEx Lib "user32" Alias "ToAsciiEx" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpKeyState As Byte, lpChar As Integer, ByVal uFlags As Long, ByVal dwhkl As Long) As Long Type TPMPARAMS cbSize As Long rcExclude As Rect End Type Declare Function TrackPopupMenuEx Lib "user32" Alias "TrackPopupMenuEx" (ByVal hMenu As Long, ByVal un As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal hWnd As Long, lpTPMParams As TPMPARAMS) As Long Declare Function UnhookWindowsHook Lib "user32" Alias "UnhookWindowsHook" (ByVal nCode As Long, ByVal pfnFilterProc As Long) As Long Declare Function VkKeyScanEx Lib "user32" Alias "VkKeyScanExA" (ByVal ch As Byte, ByVal dwhkl As Long) As Integer Declare Function WNetGetUniversalName Lib "mpr" Alias "WNetGetUniversalNameA" (ByVal lpLocalPath As String, ByVal dwInfoLevel As Long, lpBuffer As Any, lpBufferSize As Long) As Long Const INVALID_HANDLE_VALUE = -1 ' Constantes de DrawEdge Const BDR_RAISEDOUTER = &H1 Const BDR_SUNKENOUTER = &H2 Const BDR_RAISEDINNER = &H4 Const BDR_SUNKENINNER = &H8 Const BDR_OUTER = &H3 Const BDR_INNER = &HC Const BDR_RAISED = &H5 Const BDR_SUNKEN = &HA Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER) Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER) Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER) Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER) Const BF_LEFT = &H1 Const BF_TOP = &H2 Const BF_RIGHT = &H4 Const BF_BOTTOM = &H8 Const BF_TOPLEFT = (BF_TOP Or BF_LEFT) Const BF_TOPRIGHT = (BF_TOP Or BF_RIGHT) Const BF_BOTTOMLEFT = (BF_BOTTOM Or BF_LEFT) Const BF_BOTTOMRIGHT = (BF_BOTTOM Or BF_RIGHT) Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM) Const BF_DIAGONAL = &H10 ' Para líneas diagonales, los indicadores BF_RECT especifican el punto final del ' vector enlazado por el parámetro de rectángulo. Const BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL Or BF_TOP Or BF_RIGHT) Const BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL Or BF_TOP Or BF_LEFT) Const BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL Or BF_BOTTOM Or BF_LEFT) Const BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL Or BF_BOTTOM Or BF_RIGHT) Const BF_MIDDLE = &H800 ' Llena en el centro. Const BF_SOFT = &H1000 ' Se usa para botones más blandos. Const BF_ADJUST = &H2000 ' Calcula el espacio que hay a la izquierda. Const BF_FLAT = &H4000 ' Para bordes planos, no 3D. Const BF_MONO = &H8000 ' Para bordes monocromos.