;-- TIME_STAMP 2018-12-30 10:59:48 v 0.1 ;~ ConsoleWrite('MSDN: PTCHAR, AutoIt: ' & _MSDNDataType('PTCHAR') & @CRLF) ; https://www.autoitscript.com/forum/topic/113824-windows-data-types/ ; https://www.autoitscript.com/forum/topic/113824-windows-data-types/?do=findComment&comment=979380 Func _MSDNDataType($sType, $bShowErrorMessage = True) ; Idea by wolf9228, code by guinness, modified by Bitnugger. ; ~ : ['UCHAR', 'BYTE'] --> ['UCHAR', 'UBYTE'] ; + : ['LPSECURITY_ATTRIBUTES', 'STRUCT*'] LOCAL CONST $ATYPE = [[157, 2],['ATOM', 'WORD'],['BOOL', 'BOOL'],['BOOLEAN', 'BOOLEAN'],['BYTE', 'BYTE'],['CHAR', 'STR'], _ ['COLORREF', 'DWORD'],['CONST', 'CONST'],['DWORD', 'DWORD'],['DWORDLONG', 'ULONG'],['DWORD_PTR', 'DWORD_PTR'], _ ['DWORD32', 'UINT'],['DWORD64', 'INT64'],['FLOAT', 'FLOAT'],['HACCEL', 'HANDLE'],['HALF_PTR', 'PTR'], _ ['HANDLE', 'HANDLE'],['HBITMAP', 'HANDLE'],['HBRUSH', 'HANDLE'],['HCONV', 'HANDLE'],['HCONVLIST', 'HANDLE'], _ ['HCURSOR', 'HANDLE'],['HDC', 'HANDLE'],['HDDEDATA', 'HANDLE'],['HDESK', 'HANDLE'],['HDROP', 'HANDLE'], _ ['HDWP', 'HANDLE'],['HENHMETAFILE', 'HANDLE'],['HFILE', 'INT'],['HFONT', 'HANDLE'],['HGIDOBJ', 'HANDLE'], _ ['HGLOBAL', 'HANDLE'],['HHOOK', 'HANDLE'],['HICON', 'HANDLE'],['HINSTANCE', 'HANDLE'],['HKEY', 'HANDLE'], _ ['HKL', 'HANDLE'],['HLOCAL', 'HANDLE'],['HMENU', 'HANDLE'],['HMETAFILE', 'HANDLE'],['HMODULE', 'HANDLE'], _ ['HMONITOR', 'HANDLE'],['HPALETTE', 'HANDLE'],['HPEN', 'HANDLE'],['HRESULT', 'LONG'],['HRGN', 'HANDLE'], _ ['HRSRC', 'HANDLE'],['HSZ', 'HANDLE'],['HWINSTA', 'HANDLE'],['HWND', 'HWND'],['INT_PTR', 'INT_PTR'], _ ['INT32', 'INT'],['INT64', 'INT64'],['LANGID', 'WORD'],['LCID', 'DWORD'],['LGRPID', 'DWORD'], _ ['LONG', 'LONG'],['LONGLONG', 'INT64'],['LONG_PTR', 'LONG_PTR'],['LONG32', 'INT'],['LONG64', 'INT64'], _ ['LPARAM', 'LPARAM'],['LPBOOL', 'INT*'],['LPBYTE', 'INT*'],['LPCOLORREF', 'DWORD*'],['LPCSTR', 'STR'], _ ['LPCTSTR', 'STR'],['LPCWSTR', 'WSTR'],['LPDWORD', 'DWORD*'],['LPHANDLE', 'HANDLE*'],['LPINT', 'INT*'], _ ['LPLONG', 'LONG*'],['LPSECURITY_ATTRIBUTES', 'STRUCT*'],['LPSTR', 'STR'],['LPTSTR', 'STR'],['LPVOID', 'PTR'],['LPWORD', 'WORD*'], _ ['LPWSTR', 'WSTR'],['LRESULT', 'LRESULT'],['PBOOL', 'BOOL*'],['PBOOLEAN', 'BOOLEAN*'],['PBYTE', 'BYTE*'], _ ['PCHAR', 'STR'],['PCSTR', 'STR'],['PCTSTR', 'STR'],['PCWSTR', 'WSTR'],['PDWORD', 'DWORD*'], _ ['PDWORDLONG', 'UINT64'],['PDWORD_PTR', 'DWORD_PTR*'],['PDWORD32', 'UINT*'],['PDWORD64', 'INT64*'],['PFLOAT', 'FLOAT*'], _ ['PHALF_PTR', 'PTR'],['PHANDLE', 'HANDLE*'],['PHKEY', 'HANDLE*'],['PINT', 'INT*'],['PINT_PTR', 'INT_PTR*'], _ ['PINT32', 'INT*'],['PINT64', 'INT64*'],['PLCID', 'DWORD*'],['PLONG', 'LONG*'],['PLONGLONG', 'INT64*'], _ ['PLONG_PTR', 'LONG_PTR*'],['PLONG32', 'LONG*'],['PLONG64', 'INT64*'],['POINTER_32', 'PTR'],['POINTER_64', 'PTR'], _ ['POINTER_SIGNED', 'PTR'],['POINTER_UNSIGNED', 'ULONG_PTR'],['PSHORT', 'SHORT*'],['PSIZE_T', 'ULONG_PTR*'],['PSSIZE_T', 'LONG_PTR*'], _ ['PSTR', 'STR'],['PTBYTE', 'BYTE*'],['PTCHAR', 'WSTR'],['PTSTR', 'WSTR'],['PUCHAR', 'BYTE*'], _ ['PUHALF_PTR', 'PTR*'],['PUINT', 'UINT*'],['PUINT_PTR', 'UINT_PTR*'],['PUINT32', 'UINT*'],['PUINT64', 'UINT64*'], _ ['PULONG', 'ULONG*'],['PULONGLONG', 'UINT64*'],['PULONG_PTR', 'ULONG_PTR*'],['PULONG32', 'ULONG*'],['PULONG64', 'UINT64*'], _ ['PUSHORT', 'USHORT*'],['PVOID', 'PTR'],['PWCHAR', 'WSTR'],['PWORD', 'WORD*'],['PWSTR', 'WSTR'], _ ['SC_HANDLE', 'HANDLE'],['SC_LOCK', 'PTR'],['SERVICE_STATUS_HANDLE', 'HANDLE'],['SHORT', 'SHORT'],['SIZE_T', 'ULONG_PTR'], _ ['SSIZE_T', 'LONG_PTR'],['TBYTE', 'WSTR'],['TCHAR', 'WSTR'],['UCHAR', 'UBYTE'],['UHALF_PTR', 'PTR'], _ ['UINT', 'UINT'],['UINT_PTR', 'UINT_PTR'],['UINT32', 'UINT'],['UINT64', 'UINT64'],['ULONG', 'ULONG'], _ ['ULONGLONG', 'UINT64'],['ULONG_PTR', 'ULONG_PTR'],['ULONG32', 'ULONG'],['ULONG64', 'UINT64'],['UNICODE_STRING', 'PTR'], _ ['USHORT', 'USHORT'],['USN', 'INT64'],['VOID', 'NONE'],['WCHAR', 'WSTR'],['WORD', 'WORD'], _ ['WPARAM', 'WPARAM']] If StringStripWS($sType, 8) <> '' Then For $i = 1 To $aType[0][0] If $sType = $aType[$i][0] Then Return $aType[$i][1] EndIf Next If $bShowErrorMessage Then MsgBox(BitOR(16, 4096), '_MSDNDataType', 'Unknown Type: ' & $sType) EndIf Return SetError(1, 0, '') EndFunc ;==>_MSDNDataType