;AutoIt Windows datatype converter. ;Jonathan López Mendoza. ;06/05/2012. ;---------- ; - Función de conversión de tipo de datos de Windows original: "GeTType()". ;Por wolf9228: ;http://www.autoitscript.com/forum/topic/113824-windows-data-types/. #Include ;Incluir "EditConstants.au3". #Include ;Incluir "GUIConstants.au3". #Include ;Incluir "WindowsConstants.au3". Global $GUIFile ;Ventana del programa. Global $GUI_MSG ;Mensajes de la ventana del programa. Global $WinDataTypeEdit ;Control para introducir el tipo de dato de Windows. Global $AuDataTypeEdit ;Control para mostrar el tipo de dato de AutoIt. Global $BuffLastValRead="" ;Buffer para almacenar el último valor leído en "$WinDataTypeEdit". Global $WinDataTypeEditRead ;Lee el contenido de "$WinDataTypeEdit". $GUIFile=GuiCreate("AutoIt Windows datatype converter", 360, 628, -1, -1, $WS_CAPTION) ;Crea la ventana del programa. GuiCtrlCreateLabel("Tipo de dato (Windows)", 20, 25, 130, 50) ;Texto estático para los tipos de dato de Windows. $WinDataTypeEdit=GuiCtrlCreateEdit("", 10, 95, 150, 40, $WS_TABSTOP) ;Crea el control para introducir los tipos de dato de Windows. GuiCtrlCreateLabel("Tipo de dato (AutoIt)", 210, 25, 130, 50) ;Texto estático para los tipos de dato de AutoIt. $AuDataTypeEdit=GuiCtrlCreateEdit("", 200, 95, 150, 40, $ES_READONLY+$WS_TABSTOP) ;Crea el control para introducir los tipos de dato de Windows. GuiCtrlCreateLabel("Introducir tipo de dato de Windows."&@CRLF&"Automáticamente se mostrará su equivalente en AutoIt.", 30, 165, 300, 90) ;Texto estático para las instrucciones del programa. GuiCtrlSetState($WinDataTypeEdit, $GUI_FOCUS) ;Fija el foco en "$WinDataTypeEdit" por defecto. GuiSetState(@SW_SHOW) ;Mostrar ventana. While 1 ;Bucle de mantenimiento. $GUI_MSG=GuiGetMsg() ;Recibe mensajes de la ventana del programa. Switch($GUI_MSG) ;Verifica mensajes de la ventana del programa. Case $GUI_EVENT_CLOSE ;Cerrar ventana. Exit ;Sale del programa. EndSwitch ;End -> Verifica mensajes de la ventana del programa. $WinDataTypeEditRead=GuiCtrlRead($WinDataTypeEdit) ;Lee el tipo de dato de Windows. If $WinDataTypeEditRead=="" Then ;Si no hay ningún tipo de dato de Windows. $BuffLastValRead="" ;Elimina el contenido de "$BuffLastValRead". GuiCtrlSetData($AuDataTypeEdit, "") ;Elimina el equivalente en AutoIt del tipo de dato de Windows. ElseIf ($WinDataTypeEditRead<>"" And $WinDataTypeEditRead<>$BuffLastValRead) Then ;Si hay tipo de dato de Windows, y este es distinto al último leído. $BuffLastValRead=$WinDataTypeEditRead ;Actualiza el último tipo de dato de Windows leído. If GuiCtrlRead($AuDataTypeEdit)<>GetWinDataType($WinDataTypeEditRead) Then ;Si el equivalente del último tipo de dato de Windows en AutoIt es distinto del actual. GuiCtrlSetData($AuDataTypeEdit, GetWinDataType($WinDataTypeEditRead)) ;Actualiza el equivalente en AutoIt del tipo de dato de Windows. EndIf ;End -> Si el equivalente del último tipo de dato de Windows en AutoIt es distinto del actual. EndIf ;End -> Si no hay ningún tipo de dato de Windows. Sleep(5) ;Pausa la ejecución del programa cinco milisegundos. Wend ;End -> Bucle de mantenimiento. Func GetWinDataType($MSDN_Type) Switch($MSDN_Type) Case "ATOM" Return "WORD" Case "BOOL" Return "BOOL" Case "BOOLEAN" Return "BOOLEAN" Case "BYTE" Return "BYTE" Case "CHAR" Return "str" Case "COLORREF" Return "DWORD" Case "CONST" Return "const" Case "DWORD" Return "DWORD" Case "DWORDLONG" Return "ULONG" Case "DWORD_PTR" Return "DWORD_PTR" Case "DWORD32" Return "UINT" Case "DWORD64" Return "INT64" Case "FLOAT" Return "FLOAT" Case "HACCEL" Return "HANDLE" Case "HALF_PTR" Return "ptr" Case "HANDLE" Return "HANDLE" Case "HBITMAP" Return "HANDLE" Case "HBRUSH" Return "HANDLE" Case "HCONV" Return "HANDLE" Case "HCONVLIST" Return "HANDLE" Case "HCURSOR" Return "HICON" Case "HDC" Return "HANDLE" Case "HDDEDATA" Return "HANDLE" Case "HDESK" Return "HANDLE" Case "HDROP" Return "HANDLE" Case "HDWP" Return "HANDLE" Case "HENHMETAFILE" Return "HANDLE" Case "HFILE" Return "int" Case "HFONT" Return "HANDLE" Case "HGIDOBJ" Return "HANDLE" Case "HGLOBAL" Return "HANDLE" Case "HHOOK" Return "HANDLE" Case "HICON" Return "HANDLE" Case "HINSTANCE" Return "HANDLE" Case "HKEY" Return "HANDLE" Case "HKL" Return "HANDLE" Case "HLOCAL" Return "HANDLE" Case "HMENU" Return "HANDLE" Case "HMETAFILE" Return "HANDLE" Case "HMODULE" Return "HANDLE" Case "HMONITOR" Return "HANDLE" Case "HPALETTE" Return "HANDLE" Case "HPEN" Return "HANDLE" Case "HRESULT" Return "LONG" Case "HRGN" Return "HANDLE" Case "HRSRC" Return "HANDLE" Case "HSZ" Return "HANDLE" Case "HWINSTA" Return "HANDLE" Case "HWND" Return "HWND" Case "INT_PTR" Return "INT_PTR" Case "INT32" Return "int" Case "INT64" Return "INT64" Case "LANGID" Return "WORD" Case "LCID" Return "DWORD" Case "LGRPID" Return "DWORD" Case "LONG" Return "LONG" Case "LONGLONG" Return "INT64" Case "LONG_PTR" Return "LONG_PTR" Case "LONG32" Return "int" Case "LONG64" Return "INT64" Case "LPARAM" Return "LPARAM" Case "LPBOOL" Return "int*" Case "LPBYTE" Return "int*" Case "LPCOLORREF" Return "DWORD*" Case "LPCSTR" Return "str" Case "LPCTSTR" Return "str" Case "LPCWSTR" Return "wstr" Case "LPDWORD" Return "DWORD*" Case "LPHANDLE" Return "HANDLE*" Case "LPINT" Return "int*" Case "LPLONG" Return "long*" Case "LPSTR" Return "str" Case "LPTSTR" Return "str" Case "LPVOID" Return "ptr" Case "LPWORD" Return "WORD*" Case "LPWSTR" Return "wstr" Case "LRESULT" Return "LRESULT" Case "PBOOL" Return "BOOL*" Case "PBOOLEAN" Return "BOOLEAN*" Case "PBYTE" Return "BYTE*" Case "PCHAR" Return "str" Case "PCSTR" Return "str" Case "PCTSTR" Return "str" Case "PCWSTR" Return "wstr" Case "PDWORD" Return "DWORD*" Case "PDWORDLONG" Return "UINT64" Case "PDWORD_PTR" Return "DWORD_PTR*" Case "PDWORD32" Return "UINT*" Case "PDWORD64" Return "INT64*" Case "PFLOAT" Return "FLOAT*" Case "PHALF_PTR" Return "ptr" Case "PHANDLE" Return "HANDLE*" Case "PHKEY" Return "HANDLE*" Case "PINT" Return "int*" Case "PINT_PTR" Return "INT_PTR*" Case "PINT32" Return "int*" Case "PINT64" Return "INT64*" Case "PLCID" Return "DWORD*" Case "PLONG" Return "LONG*" Case "PLONGLONG" Return "INT64*" Case "PLONG_PTR" Return "LONG_PTR*" Case "PLONG32" Return "long*" Case "PLONG64" Return "INT64*" Case "POINTER_32" Return "ptr" Case "POINTER_64" Return "ptr" Case "POINTER_SIGNED" Return "ptr" Case "POINTER_UNSIGNED" Return "ULONG_PTR" Case "PSHORT" Return "SHORT*" Case "PSIZE_T" Return "ULONG_PTR*" Case "PSSIZE_T" Return "LONG_PTR*" Case "PSTR" Return "str" Case "PTBYTE" Return "BYTE*" Case "PTCHAR" Return "wstr" Case "PTSTR" Return "wstr" Case "PUCHAR" Return "BYTE*" Case "PUHALF_PTR" Return "ptr*" Case "PUINT" Return "UINT*" Case "PUINT_PTR" Return "UINT_PTR*" Case "PUINT32" Return "UINT*" Case "PUINT64" Return "UINT64*" Case "PULONG" Return "ULONG*" Case "PULONGLONG" Return "UINT64*" Case "PULONG_PTR" Return "ULONG_PTR*" Case "PULONG32" Return "ULONG*" Case "PULONG64" Return "UINT64*" Case "PUSHORT" Return "USHORT*" Case "PVOID" Return "ptr" Case "PWCHAR" Return "wstr" Case "PWORD" Return "WORD*" Case "PWSTR" Return "wstr" Case "SC_HANDLE" Return "HANDLE" Case "SC_LOCK" Return "ptr" Case "SERVICE_STATUS_HANDLE" Return "HANDLE" Case "SHORT" Return "SHORT" Case "SIZE_T" Return "ULONG_PTR" Case "SSIZE_T" Return "LONG_PTR" Case "TBYTE" Return "wstr" Case "TCHAR" Return "wstr" Case "UCHAR" Return "BYTE" Case "UHALF_PTR" Return "ptr" Case "UINT" Return "UINT" Case "UINT_PTR" Return "UINT_PTR" Case "UINT32" Return "UINT" Case "UINT64" Return "UINT64" Case "ULONG" Return "ULONG" Case "ULONGLONG" Return "UINT64" Case "ULONG_PTR" Return "ULONG_PTR" Case "ULONG32" Return "ULONG" Case "ULONG64" Return "UINT64" Case "UNICODE_STRING" Return "ptr" Case "USHORT" Return "USHORT" Case "USN" Return "INT64" Case "VOID" Return "none" Case "WCHAR" Return "wstr" Case "WORD" Return "WORD" Case "WPARAM" Return "WPARAM" Case Else Return "*Desconocido ("&$MSDN_Type&")." EndSwitch EndFunc