I thought it would be useful to quickly lookup a type seen in MSDN (structure fields, function parameters...), so I copied it, put in a text file, edited it a bit, sorted by type size, etc.
I could just use the Find function of my text editor, but it wouldn't have been fun, so I wrote a little GUI to ease such lookups.
For once, the listing isn't so big, so I paste it here, but you can download it: WindowsDataTypes.ahk, reading the file WindowsDataTypes.txt.
/* WindowsDataTypes.ahk A program to look up a data type defined in the Windows API, to give information on it, including the AutoHotkey type to use in DllCall. // by Philippe Lhoste <PhiLho(a)GMX.net> http://Phi.Lho.free.fr // File/Project history: 1.00.000 -- 2006/08/25 (PL) -- Creation. */ /* Copyright notice: See the PhiLhoSoftLicence.txt file for details. This file is distributed under the zlib/libpng license. Copyright (c) 2006 Philippe Lhoste / PhiLhoSoft */ #SingleInstance Force #NoEnv definitionFile = WindowsDataTypes.txt #equiv?V0 = N/A #equiv?S8 = Char #equiv?U8 = UChar #equiv?S16 = Short #equiv?U16 = UShort #equiv?S32 = Int #equiv?U32 = UInt #equiv?F32 = Float #equiv?S64 = Int64 #equiv?U64 = UInt64 #equiv?D64 = Double Gui Add, Edit, x10 y10 w150 vsearchedString gIncrementalSearch Gui Add, ListBox, x10 y40 w150 h350 vtypeList gClickInList +Sort Gui Add, Text, x170 y18 w100, Equivalence Gui Add, Edit, x280 y15 w50 vequivalence Gui Add, Text, x170 y58 w100, AutoHotkey Format Gui Add, Edit, x280 y55 w50 vahkFormat Gui Add, Text, x170 y98 w100, Description Gui Add, Edit, x280 y95 w200 h90 vdescription Gui Add, Text, x170 y206 w100, Include file where it is defined Gui Add, Edit, x280 y206 w150 vincludeFile Gui Add, Text, x170 y248 w100, Definition Gui Add, Edit, x280 y245 w200 h120 vdefinition Gui, Add, StatusBar Gui Show, , Windows Data Types Gosub FillListBox Return FillListBox: GuiControl -Redraw, typeList defNb := 0 Loop Read, %definitionFile% { StringLeft fc, A_LoopReadLine, 1 If (fc = ";") Continue ; Comment If (fc = "") { ; Start of a definition defPos := 0 defNb++ Continue } defPos++ If (defPos = 1) { definitions%defNb%?typeName := A_LoopReadLine GuiControl, , typeList, %A_LoopReadLine% } Else If (defPos = 2) { definitions%defNb%?equivalence := A_LoopReadLine } Else If (defPos = 3) { definitions%defNb%?description := A_LoopReadLine } Else If (defPos = 4) { definitions%defNb%?includeFile := A_LoopReadLine } Else If (defPos > 4) { definitions%defNb%?definition := definitions%defNb%?definition . A_LoopReadLine . "`n" } } SB_SetText(defNb . " definitions found!") GuiControl +Redraw, typeList Return IncrementalSearch: Gui Submit, NoHide len := StrLen(searchedString) itemNb := 0 Loop %defNb% { StringLeft part, definitions%A_Index%?typeName, len If (part = searchedString) { itemNb := A_Index Break } } If (itemNb != 0) { part := definitions%itemNb%?typeName GuiControl Choose, typeList, %part% Goto ClickInList } Return ClickInList: GuiControlGet type, , typeList Loop %defNb% { If (type = definitions%A_Index%?typeName) { equiv := definitions%A_Index%?equivalence GuiControl, , equivalence, %equiv% ahkType := #equiv?%equiv% GuiControl, , ahkFormat, %ahkType% t := definitions%A_Index%?description GuiControl, , description, %t% t := definitions%A_Index%?includeFile GuiControl, , includeFile, %t% t := definitions%A_Index%?definition GuiControl, , definition, %t% Break } } Return GuiEscape: GuiClose: ExitAppExcerpt of data:
VOID V0 Any type. WinNT.h #define VOID void CHAR S8 8-bit Windows (ANSI) character. WinNT.h typedef char CHAR; TCHAR S8 A WCHAR if UNICODE is defined, a CHAR otherwise. WinNT.h #ifdef UNICODE typedef WCHAR TCHAR; #else typedef char TCHAR; #endif UCHAR U8 Unsigned CHAR. WinDef.h typedef unsigned char UCHAR; BYTE U8 Byte (8 bits). WinDef.h typedef unsigned char BYTE;Note that this program can be easily adapted to lookup any kind of information based on some keyword.