diff --git a/reactos/include/psdk/winnt.h b/reactos/include/psdk/winnt.h index d177ddc3865..9fe6023a334 100644 --- a/reactos/include/psdk/winnt.h +++ b/reactos/include/psdk/winnt.h @@ -2969,12 +2969,14 @@ typedef union _ULARGE_INTEGER { typedef struct _LUID { LARGE_INTEGER_ORDER(LONG) } LUID, *PLUID; -#pragma pack(push,4) + +#include typedef struct _LUID_AND_ATTRIBUTES { LUID Luid; DWORD Attributes; } LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES; -#pragma pack(pop) +#include + typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; typedef struct _PRIVILEGE_SET { @@ -3073,6 +3075,8 @@ typedef enum tagTOKEN_TYPE { TokenPrimary = 1, TokenImpersonation } TOKEN_TYPE,*PTOKEN_TYPE; + +#include typedef struct _TOKEN_STATISTICS { LUID TokenId; LUID AuthenticationId; @@ -3085,6 +3089,8 @@ typedef struct _TOKEN_STATISTICS { DWORD PrivilegeCount; LUID ModifiedId; } TOKEN_STATISTICS, *PTOKEN_STATISTICS; +#include + typedef struct _TOKEN_USER { SID_AND_ATTRIBUTES User; } TOKEN_USER, *PTOKEN_USER; @@ -3419,6 +3425,7 @@ typedef struct _EVENTLOGRECORD { DWORD DataLength; DWORD DataOffset; } EVENTLOGRECORD,*PEVENTLOGRECORD; + typedef struct _OSVERSIONINFOA { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; @@ -3427,6 +3434,7 @@ typedef struct _OSVERSIONINFOA { DWORD dwPlatformId; CHAR szCSDVersion[128]; } OSVERSIONINFOA,*POSVERSIONINFOA,*LPOSVERSIONINFOA; + typedef struct _OSVERSIONINFOW { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; @@ -3435,6 +3443,7 @@ typedef struct _OSVERSIONINFOW { DWORD dwPlatformId; WCHAR szCSDVersion[128]; } OSVERSIONINFOW,*POSVERSIONINFOW,*LPOSVERSIONINFOW; + typedef struct _OSVERSIONINFOEXA { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; @@ -3448,6 +3457,7 @@ typedef struct _OSVERSIONINFOEXA { BYTE wProductType; BYTE wReserved; } OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; + typedef struct _OSVERSIONINFOEXW { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; @@ -3461,7 +3471,8 @@ typedef struct _OSVERSIONINFOEXW { BYTE wProductType; BYTE wReserved; } OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW; -#pragma pack(push,2) + +#include typedef struct _IMAGE_VXD_HEADER { WORD e32_magic; BYTE e32_border; @@ -3515,8 +3526,8 @@ typedef struct _IMAGE_VXD_HEADER { WORD e32_devid; WORD e32_ddkver; } IMAGE_VXD_HEADER,*PIMAGE_VXD_HEADER; -#pragma pack(pop) -#pragma pack(push,4) +#include + typedef struct _IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; @@ -3526,10 +3537,12 @@ typedef struct _IMAGE_FILE_HEADER { WORD SizeOfOptionalHeader; WORD Characteristics; } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; + typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; DWORD Size; } IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY; + typedef struct _IMAGE_OPTIONAL_HEADER32 { WORD Magic; BYTE MajorLinkerVersion; @@ -3563,6 +3576,7 @@ typedef struct _IMAGE_OPTIONAL_HEADER32 { DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER32,*PIMAGE_OPTIONAL_HEADER32; + typedef struct _IMAGE_OPTIONAL_HEADER64 { WORD Magic; BYTE MajorLinkerVersion; @@ -3595,6 +3609,7 @@ typedef struct _IMAGE_OPTIONAL_HEADER64 { DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER64,*PIMAGE_OPTIONAL_HEADER64; + typedef struct _IMAGE_ROM_OPTIONAL_HEADER { WORD Magic; BYTE MajorLinkerVersion; @@ -3610,8 +3625,8 @@ typedef struct _IMAGE_ROM_OPTIONAL_HEADER { DWORD CprMask[4]; DWORD GpValue; } IMAGE_ROM_OPTIONAL_HEADER,*PIMAGE_ROM_OPTIONAL_HEADER; -#pragma pack(pop) -#pragma pack(push,2) + +#include typedef struct _IMAGE_DOS_HEADER { WORD e_magic; WORD e_cblp; @@ -3633,6 +3648,7 @@ typedef struct _IMAGE_DOS_HEADER { WORD e_res2[10]; LONG e_lfanew; } IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER; + typedef struct _IMAGE_OS2_HEADER { WORD ne_magic; CHAR ne_ver; @@ -3665,18 +3681,20 @@ typedef struct _IMAGE_OS2_HEADER { WORD ne_swaparea; WORD ne_expver; } IMAGE_OS2_HEADER,*PIMAGE_OS2_HEADER; -#pragma pack(pop) -#pragma pack(push,4) +#include + typedef struct _IMAGE_NT_HEADERS32 { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32,*PIMAGE_NT_HEADERS32; + typedef struct _IMAGE_NT_HEADERS64 { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER64 OptionalHeader; } IMAGE_NT_HEADERS64,*PIMAGE_NT_HEADERS64; + #ifdef _WIN64 typedef IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER; typedef PIMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER; @@ -3688,10 +3706,12 @@ typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; #endif + typedef struct _IMAGE_ROM_HEADERS { IMAGE_FILE_HEADER FileHeader; IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; } IMAGE_ROM_HEADERS,*PIMAGE_ROM_HEADERS; + typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; union { @@ -3707,8 +3727,8 @@ typedef struct _IMAGE_SECTION_HEADER { WORD NumberOfLinenumbers; DWORD Characteristics; } IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER; -#pragma pack(pop) -#pragma pack(push,2) + +#include typedef struct _IMAGE_SYMBOL { union { BYTE ShortName[8]; @@ -3724,6 +3744,15 @@ typedef struct _IMAGE_SYMBOL { BYTE StorageClass; BYTE NumberOfAuxSymbols; } IMAGE_SYMBOL,*PIMAGE_SYMBOL; + +typedef struct _IMAGE_LINENUMBER { + union { + DWORD SymbolTableIndex; + DWORD VirtualAddress; + } Type; + WORD Linenumber; +} IMAGE_LINENUMBER,*PIMAGE_LINENUMBER; + typedef union _IMAGE_AUX_SYMBOL { struct { DWORD TagIndex; @@ -3824,6 +3853,7 @@ typedef struct _IMAGE_COFF_SYMBOLS_HEADER { DWORD RvaToFirstByteOfData; DWORD RvaToLastByteOfData; } IMAGE_COFF_SYMBOLS_HEADER,*PIMAGE_COFF_SYMBOLS_HEADER; + typedef struct _IMAGE_RELOCATION { _ANONYMOUS_UNION union { DWORD VirtualAddress; @@ -3832,23 +3862,13 @@ typedef struct _IMAGE_RELOCATION { DWORD SymbolTableIndex; WORD Type; } IMAGE_RELOCATION,*PIMAGE_RELOCATION; -#pragma pack(pop) -#pragma pack(push,4) +#include + typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; } IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION; -#pragma pack(pop) -#pragma pack(push,2) -typedef struct _IMAGE_LINENUMBER { - union { - DWORD SymbolTableIndex; - DWORD VirtualAddress; - } Type; - WORD Linenumber; -} IMAGE_LINENUMBER,*PIMAGE_LINENUMBER; -#pragma pack(pop) -#pragma pack(push,4) + typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { BYTE Name[16]; BYTE Date[12]; @@ -3858,6 +3878,7 @@ typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { BYTE Size[10]; BYTE EndHeader[2]; } IMAGE_ARCHIVE_MEMBER_HEADER,*PIMAGE_ARCHIVE_MEMBER_HEADER; + typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; @@ -3871,11 +3892,13 @@ typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD AddressOfNames; DWORD AddressOfNameOrdinals; } IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY; + typedef struct _IMAGE_IMPORT_BY_NAME { WORD Hint; BYTE Name[1]; } IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME; -#include "pshpack8.h" + +#include typedef struct _IMAGE_THUNK_DATA64 { union { ULONGLONG ForwarderString; @@ -3885,7 +3908,7 @@ typedef struct _IMAGE_THUNK_DATA64 { } u1; } IMAGE_THUNK_DATA64; typedef IMAGE_THUNK_DATA64 *PIMAGE_THUNK_DATA64; -#include "poppack.h" +#include typedef struct _IMAGE_THUNK_DATA32 { union { @@ -3954,16 +3977,19 @@ typedef struct _IMAGE_IMPORT_DESCRIPTOR { DWORD Name; ULONG FirstThunk; } IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR; + typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { DWORD TimeDateStamp; WORD OffsetModuleName; WORD NumberOfModuleForwarderRefs; } IMAGE_BOUND_IMPORT_DESCRIPTOR,*PIMAGE_BOUND_IMPORT_DESCRIPTOR; + typedef struct _IMAGE_BOUND_FORWARDER_REF { DWORD TimeDateStamp; WORD OffsetModuleName; WORD Reserved; } IMAGE_BOUND_FORWARDER_REF,*PIMAGE_BOUND_FORWARDER_REF; + typedef struct _IMAGE_RESOURCE_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; @@ -3992,20 +4018,24 @@ _ANONYMOUS_STRUCT typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { } DUMMYSTRUCTNAME3; } DUMMYUNIONNAME2; } IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY; + typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { WORD Length; CHAR NameString[1]; } IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING; + typedef struct _IMAGE_RESOURCE_DIR_STRING_U { WORD Length; WCHAR NameString[1]; } IMAGE_RESOURCE_DIR_STRING_U,*PIMAGE_RESOURCE_DIR_STRING_U; + typedef struct _IMAGE_RESOURCE_DATA_ENTRY { DWORD OffsetToData; DWORD Size; DWORD CodePage; DWORD Reserved; } IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY; + typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY { DWORD Size; DWORD TimeDateStamp; @@ -4028,6 +4058,7 @@ typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY { DWORD SEHandlerTable; DWORD SEHandlerCount; } IMAGE_LOAD_CONFIG_DIRECTORY,*PIMAGE_LOAD_CONFIG_DIRECTORY; + typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY { DWORD BeginAddress; DWORD EndAddress; @@ -4035,6 +4066,7 @@ typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY { PVOID HandlerData; DWORD PrologEndAddress; } IMAGE_RUNTIME_FUNCTION_ENTRY,*PIMAGE_RUNTIME_FUNCTION_ENTRY; + typedef struct _IMAGE_DEBUG_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; @@ -4045,6 +4077,7 @@ typedef struct _IMAGE_DEBUG_DIRECTORY { DWORD AddressOfRawData; DWORD PointerToRawData; } IMAGE_DEBUG_DIRECTORY,*PIMAGE_DEBUG_DIRECTORY; + typedef struct _FPO_DATA { DWORD ulOffStart; DWORD cbProcSize; @@ -4057,6 +4090,7 @@ typedef struct _FPO_DATA { WORD reserved:1; WORD cbFrame:2; } FPO_DATA,*PFPO_DATA; + typedef struct _IMAGE_DEBUG_MISC { DWORD DataType; DWORD Length; @@ -4064,11 +4098,13 @@ typedef struct _IMAGE_DEBUG_MISC { BYTE Reserved[3]; BYTE Data[1]; } IMAGE_DEBUG_MISC,*PIMAGE_DEBUG_MISC; + typedef struct _IMAGE_FUNCTION_ENTRY { DWORD StartingAddress; DWORD EndingAddress; DWORD EndOfPrologue; } IMAGE_FUNCTION_ENTRY,*PIMAGE_FUNCTION_ENTRY; + typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { WORD Signature; WORD Flags; @@ -4084,7 +4120,7 @@ typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { DWORD SectionAlignment; DWORD Reserved[2]; } IMAGE_SEPARATE_DEBUG_HEADER,*PIMAGE_SEPARATE_DEBUG_HEADER; -#pragma pack(pop) + typedef enum _CM_SERVICE_NODE_TYPE { DriverType=SERVICE_KERNEL_DRIVER, FileSystemType=SERVICE_FILE_SYSTEM_DRIVER, @@ -4093,6 +4129,7 @@ typedef enum _CM_SERVICE_NODE_TYPE { AdapterType=SERVICE_ADAPTER, RecognizerType=SERVICE_RECOGNIZER_DRIVER } SERVICE_NODE_TYPE; + typedef enum _CM_SERVICE_LOAD_TYPE { BootLoad=SERVICE_BOOT_START, SystemLoad=SERVICE_SYSTEM_START, @@ -4100,12 +4137,14 @@ typedef enum _CM_SERVICE_LOAD_TYPE { DemandLoad=SERVICE_DEMAND_START, DisableLoad=SERVICE_DISABLED } SERVICE_LOAD_TYPE; + typedef enum _CM_ERROR_CONTROL_TYPE { IgnoreError=SERVICE_ERROR_IGNORE, NormalError=SERVICE_ERROR_NORMAL, SevereError=SERVICE_ERROR_SEVERE, CriticalError=SERVICE_ERROR_CRITICAL } SERVICE_ERROR_TYPE; + typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; @@ -4118,6 +4157,7 @@ typedef struct _NT_TIB { PVOID ArbitraryUserPointer; struct _NT_TIB *Self; } NT_TIB,*PNT_TIB; + typedef struct _REPARSE_GUID_DATA_BUFFER { DWORD ReparseTag; WORD ReparseDataLength; @@ -4127,6 +4167,7 @@ typedef struct _REPARSE_GUID_DATA_BUFFER { BYTE DataBuffer[1]; } GenericReparseBuffer; } REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER; + typedef struct _REPARSE_POINT_INFORMATION { WORD ReparseDataLength; WORD UnparsedNameLength; @@ -4234,14 +4275,17 @@ typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { DWORD PriorityClass; DWORD SchedulingClass; } JOBOBJECT_BASIC_LIMIT_INFORMATION,*PJOBOBJECT_BASIC_LIMIT_INFORMATION; + typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { DWORD NumberOfAssignedProcesses; DWORD NumberOfProcessIdsInList; ULONG_PTR ProcessIdList[1]; } JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST; + typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { DWORD UIRestrictionsClass; } JOBOBJECT_BASIC_UI_RESTRICTIONS,*PJOBOBJECT_BASIC_UI_RESTRICTIONS; + /* Steven you are my hero when you fix the w32api ddk! */ #ifndef _NTDDK_ typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { @@ -4252,17 +4296,21 @@ typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { PTOKEN_GROUPS RestrictedSids; } JOBOBJECT_SECURITY_LIMIT_INFORMATION,*PJOBOBJECT_SECURITY_LIMIT_INFORMATION; #endif + typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { DWORD EndOfJobTimeAction; } JOBOBJECT_END_OF_JOB_TIME_INFORMATION,*PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; + typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { PVOID CompletionKey; HANDLE CompletionPort; } JOBOBJECT_ASSOCIATE_COMPLETION_PORT,*PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; + typedef struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; IO_COUNTERS IoInfo; } JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION,*PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; + typedef struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; IO_COUNTERS IoInfo; @@ -4271,6 +4319,7 @@ typedef struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { SIZE_T PeakProcessMemoryUsed; SIZE_T PeakJobMemoryUsed; } JOBOBJECT_EXTENDED_LIMIT_INFORMATION,*PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; + typedef struct _JOBOBJECT_JOBSET_INFORMATION { DWORD MemberLevel; } JOBOBJECT_JOBSET_INFORMATION,*PJOBOBJECT_JOBSET_INFORMATION; diff --git a/reactos/include/psdk/winuser.h b/reactos/include/psdk/winuser.h index 4237993503c..128c09b3112 100644 --- a/reactos/include/psdk/winuser.h +++ b/reactos/include/psdk/winuser.h @@ -2780,20 +2780,24 @@ typedef void(CALLBACK *SENDASYNCPROC)(HWND,UINT,DWORD,LRESULT); DECLARE_HANDLE(HHOOK); DECLARE_HANDLE(HDWP); DECLARE_HANDLE(HDEVNOTIFY); + typedef struct tagACCEL { BYTE fVirt; WORD key; WORD cmd; } ACCEL,*LPACCEL; + typedef struct tagACCESSTIMEOUT { UINT cbSize; DWORD dwFlags; DWORD iTimeOutMSec; } ACCESSTIMEOUT, *LPACCESSTIMEOUT; + typedef struct tagANIMATIONINFO { UINT cbSize; int iMinAnimate; } ANIMATIONINFO,*LPANIMATIONINFO; + typedef struct tagCREATESTRUCTA { LPVOID lpCreateParams; HINSTANCE hInstance; @@ -2808,6 +2812,7 @@ typedef struct tagCREATESTRUCTA { LPCSTR lpszClass; DWORD dwExStyle; } CREATESTRUCTA,*LPCREATESTRUCTA; + typedef struct tagCREATESTRUCTW { LPVOID lpCreateParams; HINSTANCE hInstance; @@ -2822,22 +2827,27 @@ typedef struct tagCREATESTRUCTW { LPCWSTR lpszClass; DWORD dwExStyle; } CREATESTRUCTW,*LPCREATESTRUCTW; + typedef struct tagCBT_CREATEWNDA { LPCREATESTRUCTA lpcs; HWND hwndInsertAfter; } CBT_CREATEWNDA, *LPCBT_CREATEWNDA; + typedef struct tagCBT_CREATEWNDW { LPCREATESTRUCTW lpcs; HWND hwndInsertAfter; } CBT_CREATEWNDW, *LPCBT_CREATEWNDW; + typedef struct tagCBTACTIVATESTRUCT { BOOL fMouse; HWND hWndActive; } CBTACTIVATESTRUCT,*LPCBTACTIVATESTRUCT; + typedef struct tagCLIENTCREATESTRUCT { HANDLE hWindowMenu; UINT idFirstChild; } CLIENTCREATESTRUCT,*LPCLIENTCREATESTRUCT; + typedef struct tagCOMPAREITEMSTRUCT { UINT CtlType; UINT CtlID; @@ -2848,11 +2858,13 @@ typedef struct tagCOMPAREITEMSTRUCT { ULONG_PTR itemData2; DWORD dwLocaleId; } COMPAREITEMSTRUCT,*LPCOMPAREITEMSTRUCT; + typedef struct tagCOPYDATASTRUCT { ULONG_PTR dwData; DWORD cbData; PVOID lpData; } COPYDATASTRUCT,*PCOPYDATASTRUCT; + typedef struct tagCURSORSHAPE { int xHotSpot; int yHotSpot; @@ -2862,6 +2874,7 @@ typedef struct tagCURSORSHAPE { BYTE Planes; BYTE BitsPixel; } CURSORSHAPE,*LPCURSORSHAPE; + typedef struct tagCWPRETSTRUCT { LRESULT lResult; LPARAM lParam; @@ -2869,12 +2882,14 @@ typedef struct tagCWPRETSTRUCT { DWORD message; HWND hwnd; } CWPRETSTRUCT,*PCWPRETSTRUCT, *LPCWPRETSTRUCT; + typedef struct tagCWPSTRUCT { LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd; } CWPSTRUCT,*PCWPSTRUCT, *LPCWPSTRUCT; + typedef struct tagDEBUGHOOKINFO { DWORD idThread; DWORD idThreadInstaller; @@ -2882,6 +2897,7 @@ typedef struct tagDEBUGHOOKINFO { WPARAM wParam; int code; } DEBUGHOOKINFO,*PDEBUGHOOKINFO,*LPDEBUGHOOKINFO; + typedef struct tagDELETEITEMSTRUCT { UINT CtlType; UINT CtlID; @@ -2889,7 +2905,8 @@ typedef struct tagDELETEITEMSTRUCT { HWND hwndItem; ULONG_PTR itemData; } DELETEITEMSTRUCT,*PDELETEITEMSTRUCT,*LPDELETEITEMSTRUCT; -#pragma pack(push,2) + +#include typedef struct { DWORD style; DWORD dwExtendedStyle; @@ -2899,6 +2916,7 @@ typedef struct { short cy; WORD id; } DLGITEMTEMPLATE,*LPDLGITEMTEMPLATE; + typedef struct { DWORD style; DWORD dwExtendedStyle; @@ -2908,14 +2926,17 @@ typedef struct { short cx; short cy; } DLGTEMPLATE,*LPDLGTEMPLATE,*LPDLGTEMPLATEA,*LPDLGTEMPLATEW; + typedef const DLGTEMPLATE *LPCDLGTEMPLATEA; typedef const DLGTEMPLATE *LPCDLGTEMPLATEW; + #ifdef UNICODE typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE; #else typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE; #endif // UNICODE -#pragma pack(pop) +#include + typedef struct tagDRAWITEMSTRUCT { UINT CtlType; UINT CtlID; @@ -2927,6 +2948,7 @@ typedef struct tagDRAWITEMSTRUCT { RECT rcItem; ULONG_PTR itemData; } DRAWITEMSTRUCT,*LPDRAWITEMSTRUCT,*PDRAWITEMSTRUCT; + typedef struct { UINT cbSize; int iTabLength; @@ -2934,6 +2956,7 @@ typedef struct { int iRightMargin; UINT uiLengthDrawn; } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS; + typedef struct tagPAINTSTRUCT { HDC hdc; BOOL fErase; @@ -2942,6 +2965,7 @@ typedef struct tagPAINTSTRUCT { BOOL fIncUpdate; BYTE rgbReserved[32]; } PAINTSTRUCT,*LPPAINTSTRUCT; + typedef struct tagMSG { HWND hwnd; UINT message; @@ -2950,6 +2974,7 @@ typedef struct tagMSG { DWORD time; POINT pt; } MSG,*LPMSG,*PMSG; + typedef struct _ICONINFO { BOOL fIcon; DWORD xHotspot; @@ -2957,11 +2982,13 @@ typedef struct _ICONINFO { HBITMAP hbmMask; HBITMAP hbmColor; } ICONINFO,*PICONINFO; + typedef struct tagNMHDR { HWND hwndFrom; UINT_PTR idFrom; UINT code; } NMHDR,*LPNMHDR; + typedef struct _WNDCLASSA { UINT style; WNDPROC lpfnWndProc; @@ -2974,6 +3001,7 @@ typedef struct _WNDCLASSA { LPCSTR lpszMenuName; LPCSTR lpszClassName; } WNDCLASSA,*LPWNDCLASSA,*PWNDCLASSA; + typedef struct _WNDCLASSW { UINT style; WNDPROC lpfnWndProc; @@ -2986,6 +3014,7 @@ typedef struct _WNDCLASSW { LPCWSTR lpszMenuName; LPCWSTR lpszClassName; } WNDCLASSW,*LPWNDCLASSW,*PWNDCLASSW; + typedef struct _WNDCLASSEXA { UINT cbSize; UINT style; @@ -3000,6 +3029,7 @@ typedef struct _WNDCLASSEXA { LPCSTR lpszClassName; HICON hIconSm; } WNDCLASSEXA,*LPWNDCLASSEXA,*PWNDCLASSEXA; + typedef struct _WNDCLASSEXW { UINT cbSize; UINT style; @@ -3014,6 +3044,7 @@ typedef struct _WNDCLASSEXW { LPCWSTR lpszClassName; HICON hIconSm; } WNDCLASSEXW,*LPWNDCLASSEXW,*PWNDCLASSEXW; + typedef struct tagMENUITEMINFOA { UINT cbSize; UINT fMask; @@ -3031,6 +3062,7 @@ typedef struct tagMENUITEMINFOA { #endif } MENUITEMINFOA,*LPMENUITEMINFOA; typedef const MENUITEMINFOA *LPCMENUITEMINFOA; + typedef struct tagMENUITEMINFOW { UINT cbSize; UINT fMask; @@ -3047,7 +3079,9 @@ typedef struct tagMENUITEMINFOW { HBITMAP hbmpItem; #endif } MENUITEMINFOW,*LPMENUITEMINFOW; + typedef const MENUITEMINFOW *LPCMENUITEMINFOW; + typedef struct tagSCROLLINFO { UINT cbSize; UINT fMask; @@ -3058,6 +3092,7 @@ typedef struct tagSCROLLINFO { int nTrackPos; } SCROLLINFO,*LPSCROLLINFO; typedef const SCROLLINFO *LPCSCROLLINFO; + typedef struct _WINDOWPLACEMENT { UINT length; UINT flags; @@ -3066,16 +3101,20 @@ typedef struct _WINDOWPLACEMENT { POINT ptMaxPosition; RECT rcNormalPosition; } WINDOWPLACEMENT,*LPWINDOWPLACEMENT,*PWINDOWPLACEMENT; + typedef struct { WORD versionNumber; WORD offset; } MENUITEMTEMPLATEHEADER; + typedef struct { WORD mtOption; WORD mtID; WCHAR mtString[1]; } MENUITEMTEMPLATE; + typedef void MENUTEMPLATE,MENUTEMPLATEA,MENUTEMPLATEW,*LPMENUTEMPLATEA,*LPMENUTEMPLATEW,*LPMENUTEMPLATE; + typedef struct tagHELPINFO { UINT cbSize; int iContextType; @@ -3084,7 +3123,9 @@ typedef struct tagHELPINFO { DWORD_PTR dwContextId; POINT MousePos; } HELPINFO,*LPHELPINFO; + typedef void(CALLBACK *MSGBOXCALLBACK)(LPHELPINFO); + typedef struct { UINT cbSize; HWND hwndOwner; @@ -3097,6 +3138,7 @@ typedef struct { MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } MSGBOXPARAMSA,*PMSGBOXPARAMSA,*LPMSGBOXPARAMSA; + typedef struct { UINT cbSize; HWND hwndOwner; @@ -3109,11 +3151,13 @@ typedef struct { MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } MSGBOXPARAMSW,*PMSGBOXPARAMSW,*LPMSGBOXPARAMSW; + typedef struct tagUSEROBJECTFLAGS { BOOL fInherit; BOOL fReserved; DWORD dwFlags; } USEROBJECTFLAGS; + typedef struct tagFILTERKEYS { UINT cbSize; DWORD dwFlags; @@ -3122,16 +3166,19 @@ typedef struct tagFILTERKEYS { DWORD iRepeatMSec; DWORD iBounceMSec; } FILTERKEYS, *LPFILTERKEYS; + typedef struct tagHIGHCONTRASTA { UINT cbSize; DWORD dwFlags; LPSTR lpszDefaultScheme; } HIGHCONTRASTA,*LPHIGHCONTRASTA; + typedef struct tagHIGHCONTRASTW { UINT cbSize; DWORD dwFlags; LPWSTR lpszDefaultScheme; } HIGHCONTRASTW,*LPHIGHCONTRASTW; + #if defined(_WINGDI_) && !defined(NOGDI) typedef struct tagICONMETRICSA { UINT cbSize; @@ -3140,6 +3187,7 @@ typedef struct tagICONMETRICSA { int iTitleWrap; LOGFONTA lfFont; } ICONMETRICSA,*LPICONMETRICSA; + typedef struct tagICONMETRICSW { UINT cbSize; int iHorzSpacing; @@ -3147,12 +3195,14 @@ typedef struct tagICONMETRICSW { int iTitleWrap; LOGFONTW lfFont; } ICONMETRICSW,*LPICONMETRICSW; + #ifdef UNICODE typedef ICONMETRICSW ICONMETRICS,*LPICONMETRICS; #else /* UNICODE */ typedef ICONMETRICSA ICONMETRICS,*LPICONMETRICS; #endif /* UNICODE */ #endif /* NOGDI */ + typedef struct tagMINIMIZEDMETRICS { UINT cbSize; int iWidth; @@ -3160,6 +3210,7 @@ typedef struct tagMINIMIZEDMETRICS { int iVertGap; int iArrange; } MINIMIZEDMETRICS,*LPMINIMIZEDMETRICS; + typedef struct tagMOUSEKEYS{ UINT cbSize; DWORD dwFlags; @@ -3169,6 +3220,7 @@ typedef struct tagMOUSEKEYS{ DWORD dwReserved1; DWORD dwReserved2; } MOUSEKEYS,*LPMOUSEKEYS; + #if defined(_WINGDI_) && !defined(NOGDI) typedef struct tagNONCLIENTMETRICSA { UINT cbSize; @@ -3187,6 +3239,7 @@ typedef struct tagNONCLIENTMETRICSA { LOGFONTA lfStatusFont; LOGFONTA lfMessageFont; } NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA; + typedef struct tagNONCLIENTMETRICSW { UINT cbSize; int iBorderWidth; @@ -3204,12 +3257,14 @@ typedef struct tagNONCLIENTMETRICSW { LOGFONTW lfStatusFont; LOGFONTW lfMessageFont; } NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW; + #ifdef UNICODE typedef NONCLIENTMETRICSW NONCLIENTMETRICS,*LPNONCLIENTMETRICS; #else /* UNICODE */ typedef NONCLIENTMETRICSA NONCLIENTMETRICS,*LPNONCLIENTMETRICS; #endif /* UNICODE */ #endif + typedef struct tagSERIALKEYSA { UINT cbSize; DWORD dwFlags; @@ -3219,6 +3274,7 @@ typedef struct tagSERIALKEYSA { UINT iPortState; UINT iActive; } SERIALKEYSA,*LPSERIALKEYSA; + typedef struct tagSERIALKEYSW { UINT cbSize; DWORD dwFlags; @@ -3228,6 +3284,7 @@ typedef struct tagSERIALKEYSW { UINT iPortState; UINT iActive; } SERIALKEYSW,*LPSERIALKEYSW; + typedef struct tagSOUNDSENTRYA { UINT cbSize; DWORD dwFlags; @@ -3242,6 +3299,7 @@ typedef struct tagSOUNDSENTRYA { LPSTR lpszWindowsEffectDLL; DWORD iWindowsEffectOrdinal; } SOUNDSENTRYA,*LPSOUNDSENTRYA; + typedef struct tagSOUNDSENTRYW { UINT cbSize; DWORD dwFlags; @@ -3256,20 +3314,24 @@ typedef struct tagSOUNDSENTRYW { LPWSTR lpszWindowsEffectDLL; DWORD iWindowsEffectOrdinal; } SOUNDSENTRYW,*LPSOUNDSENTRYW; + typedef struct tagSTICKYKEYS { DWORD cbSize; DWORD dwFlags; } STICKYKEYS,*LPSTICKYKEYS; + typedef struct tagTOGGLEKEYS { DWORD cbSize; DWORD dwFlags; } TOGGLEKEYS, *LPTOGGLEKEYS; + typedef struct tagMOUSEHOOKSTRUCT { POINT pt; HWND hwnd; UINT wHitTestCode; ULONG_PTR dwExtraInfo; } MOUSEHOOKSTRUCT,*LPMOUSEHOOKSTRUCT,*PMOUSEHOOKSTRUCT; + #if ( _WIN32_WINNT >= 0x0500 ) #ifdef __cplusplus typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT @@ -3284,16 +3346,19 @@ typedef struct tagMOUSEHOOKSTRUCTEX } MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX; #endif #endif + typedef struct tagTRACKMOUSEEVENT { DWORD cbSize; DWORD dwFlags; HWND hwndTrack; DWORD dwHoverTime; } TRACKMOUSEEVENT,*LPTRACKMOUSEEVENT; + typedef struct tagTPMPARAMS { UINT cbSize; RECT rcExclude; } TPMPARAMS,*LPTPMPARAMS; + typedef struct tagEVENTMSG { UINT message; UINT paramL; @@ -3301,6 +3366,7 @@ typedef struct tagEVENTMSG { DWORD time; HWND hwnd; } EVENTMSG,*PEVENTMSGMSG,*LPEVENTMSGMSG,*PEVENTMSG,*LPEVENTMSG; + typedef struct _WINDOWPOS { HWND hwnd; HWND hwndInsertAfter; @@ -3310,10 +3376,12 @@ typedef struct _WINDOWPOS { int cy; UINT flags; } WINDOWPOS,*PWINDOWPOS,*LPWINDOWPOS; + typedef struct tagNCCALCSIZE_PARAMS { RECT rgrc[3]; PWINDOWPOS lppos; } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; + typedef struct tagMDICREATESTRUCTA { LPCSTR szClass; LPCSTR szTitle; @@ -3325,6 +3393,7 @@ typedef struct tagMDICREATESTRUCTA { DWORD style; LPARAM lParam; } MDICREATESTRUCTA,*LPMDICREATESTRUCTA; + typedef struct tagMDICREATESTRUCTW { LPCWSTR szClass; LPCWSTR szTitle; @@ -3336,6 +3405,7 @@ typedef struct tagMDICREATESTRUCTW { DWORD style; LPARAM lParam; } MDICREATESTRUCTW,*LPMDICREATESTRUCTW; + typedef struct tagMINMAXINFO { POINT ptReserved; POINT ptMaxSize; @@ -3343,11 +3413,13 @@ typedef struct tagMINMAXINFO { POINT ptMinTrackSize; POINT ptMaxTrackSize; } MINMAXINFO,*PMINMAXINFO,*LPMINMAXINFO; + typedef struct tagMDINEXTMENU { HMENU hmenuIn; HMENU hmenuNext; HWND hwndNext; } MDINEXTMENU,*PMDINEXTMENU,*LPMDINEXTMENU; + typedef struct tagMEASUREITEMSTRUCT { UINT CtlType; UINT CtlID; @@ -3356,6 +3428,7 @@ typedef struct tagMEASUREITEMSTRUCT { UINT itemHeight; ULONG_PTR itemData; } MEASUREITEMSTRUCT,*PMEASUREITEMSTRUCT,*LPMEASUREITEMSTRUCT; + typedef struct tagDROPSTRUCT { HWND hwndSource; HWND hwndSink; @@ -3364,17 +3437,20 @@ typedef struct tagDROPSTRUCT { POINT ptDrop; DWORD dwControlData; } DROPSTRUCT,*PDROPSTRUCT,*LPDROPSTRUCT; + typedef DWORD HELPPOLY; typedef struct tagMULTIKEYHELPA { DWORD mkSize; CHAR mkKeylist; CHAR szKeyphrase[1]; } MULTIKEYHELPA,*PMULTIKEYHELPA,*LPMULTIKEYHELPA; + typedef struct tagMULTIKEYHELPW { DWORD mkSize; WCHAR mkKeylist; WCHAR szKeyphrase[1]; } MULTIKEYHELPW,*PMULTIKEYHELPW,*LPMULTIKEYHELPW; + typedef struct tagHELPWININFOA { int wStructSize; int x; @@ -3384,6 +3460,7 @@ typedef struct tagHELPWININFOA { int wMax; CHAR rgchMember[2]; } HELPWININFOA,*PHELPWININFOA,*LPHELPWININFOA; + typedef struct tagHELPWININFOW { int wStructSize; int x; @@ -3393,10 +3470,12 @@ typedef struct tagHELPWININFOW { int wMax; WCHAR rgchMember[2]; } HELPWININFOW,*PHELPWININFOW,*LPHELPWININFOW; + typedef struct tagSTYLESTRUCT { DWORD styleOld; DWORD styleNew; } STYLESTRUCT,*LPSTYLESTRUCT; + typedef struct tagALTTABINFO { DWORD cbSize; int cItems; @@ -3408,6 +3487,7 @@ typedef struct tagALTTABINFO { int cyItem; POINT ptStart; } ALTTABINFO,*PALTTABINFO,*LPALTTABINFO; + typedef struct tagCOMBOBOXINFO { DWORD cbSize; RECT rcItem; @@ -3417,12 +3497,14 @@ typedef struct tagCOMBOBOXINFO { HWND hwndItem; HWND hwndList; } COMBOBOXINFO,*PCOMBOBOXINFO,*LPCOMBOBOXINFO; + typedef struct tagCURSORINFO { DWORD cbSize; DWORD flags; HCURSOR hCursor; POINT ptScreenPos; } CURSORINFO,*PCURSORINFO,*LPCURSORINFO; + typedef struct tagMENUBARINFO { DWORD cbSize; RECT rcBar; @@ -3431,6 +3513,7 @@ typedef struct tagMENUBARINFO { BOOL fBarFocused:1; BOOL fFocused:1; } MENUBARINFO,*PMENUBARINFO; + typedef struct tagMENUINFO { DWORD cbSize; DWORD fMask; @@ -3440,8 +3523,10 @@ typedef struct tagMENUINFO { DWORD dwContextHelpID; ULONG_PTR dwMenuData; } MENUINFO,*LPMENUINFO; + typedef MENUINFO CONST *LPCMENUINFO; #define CCHILDREN_SCROLLBAR 5 + typedef struct tagSCROLLBARINFO { DWORD cbSize; RECT rcScrollBar; @@ -3451,12 +3536,15 @@ typedef struct tagSCROLLBARINFO { int reserved; DWORD rgstate[CCHILDREN_SCROLLBAR+1]; } SCROLLBARINFO,*PSCROLLBARINFO,*LPSCROLLBARINFO; + #define CCHILDREN_TITLEBAR 5 + typedef struct tagTITLEBARINFO { DWORD cbSize; RECT rcTitleBar; DWORD rgstate[CCHILDREN_TITLEBAR+1]; } TITLEBARINFO,*PTITLEBARINFO,*LPTITLEBARINFO; + typedef struct tagWINDOWINFO { DWORD cbSize; RECT rcWindow; @@ -3469,16 +3557,19 @@ typedef struct tagWINDOWINFO { ATOM atomWindowType; WORD wCreatorVersion; } WINDOWINFO,*PWINDOWINFO,*LPWINDOWINFO; + typedef struct tagLASTINPUTINFO { UINT cbSize; DWORD dwTime; } LASTINPUTINFO,*PLASTINPUTINFO; + typedef struct tagMONITORINFO { DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; } MONITORINFO,*LPMONITORINFO; + #define CCHDEVICENAME 32 typedef struct tagMONITORINFOEXA { DWORD cbSize; @@ -3487,6 +3578,7 @@ typedef struct tagMONITORINFOEXA { DWORD dwFlags; CHAR szDevice[CCHDEVICENAME]; } MONITORINFOEXA,*LPMONITORINFOEXA; + typedef struct tagMONITORINFOEXW { DWORD cbSize; RECT rcMonitor; @@ -3494,6 +3586,7 @@ typedef struct tagMONITORINFOEXW { DWORD dwFlags; WCHAR szDevice[CCHDEVICENAME]; } MONITORINFOEXW,*LPMONITORINFOEXW; + typedef struct tagKBDLLHOOKSTRUCT { DWORD vkCode; DWORD scanCode; @@ -3501,6 +3594,7 @@ typedef struct tagKBDLLHOOKSTRUCT { DWORD time; ULONG_PTR dwExtraInfo; } KBDLLHOOKSTRUCT,*LPKBDLLHOOKSTRUCT,*PKBDLLHOOKSTRUCT; + typedef struct tagMSLLHOOKSTRUCT { POINT pt; @@ -3509,6 +3603,7 @@ typedef struct tagMSLLHOOKSTRUCT DWORD time; ULONG_PTR dwExtraInfo; } MSLLHOOKSTRUCT, *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT; + #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410) typedef struct { UINT cbSize; @@ -3518,6 +3613,7 @@ typedef struct { DWORD dwTimeout; } FLASHWINFO,*PFLASHWINFO; #endif /* (WINVER >= 0x0500 || _WIN32_WINDOWS >= 0x0410) */ + #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0490) typedef struct tagMOUSEMOVEPOINT { int x; @@ -3526,6 +3622,7 @@ typedef struct tagMOUSEMOVEPOINT { ULONG_PTR dwExtraInfo; } MOUSEMOVEPOINT,*PMOUSEMOVEPOINT,*LPMOUSEMOVEPOINT; #endif + #if (_WIN32_WINNT >= 0x0400) typedef struct tagMOUSEINPUT { LONG dx; @@ -3535,6 +3632,7 @@ typedef struct tagMOUSEINPUT { DWORD time; ULONG_PTR dwExtraInfo; } MOUSEINPUT,*PMOUSEINPUT; + typedef struct tagKEYBDINPUT { WORD wVk; WORD wScan; @@ -3542,11 +3640,13 @@ typedef struct tagKEYBDINPUT { DWORD time; ULONG_PTR dwExtraInfo; } KEYBDINPUT,*PKEYBDINPUT; + typedef struct tagHARDWAREINPUT { DWORD uMsg; WORD wParamL; WORD wParamH; } HARDWAREINPUT,*PHARDWAREINPUT; + typedef struct tagINPUT { DWORD type; _ANONYMOUS_UNION union { @@ -3556,6 +3656,7 @@ typedef struct tagINPUT { } DUMMYUNIONNAME; } INPUT,*PINPUT,*LPINPUT; #endif /* (_WIN32_WINNT >= 0x0400) */ + #if (WINVER >= 0x0500) typedef struct tagGUITHREADINFO { DWORD cbSize; @@ -3568,8 +3669,10 @@ typedef struct tagGUITHREADINFO { HWND hwndCaret; RECT rcCaret; } GUITHREADINFO,*PGUITHREADINFO,*LPGUITHREADINFO; + typedef VOID (CALLBACK *WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,DWORD,DWORD); #endif /* (WINVER >= 0x0500) */ + #if (_WIN32_WINNT >= 0x0501) typedef struct { UINT cbSize; @@ -3578,12 +3681,14 @@ typedef struct { LUID luid; } BSMINFO,*PBSMINFO; DECLARE_HANDLE(HRAWINPUT); + typedef struct tagRAWINPUTHEADER { DWORD dwType; DWORD dwSize; HANDLE hDevice; WPARAM wParam; } RAWINPUTHEADER,*PRAWINPUTHEADER; + typedef struct tagRAWMOUSE { USHORT usFlags; _ANONYMOUS_UNION union { @@ -3598,6 +3703,7 @@ typedef struct tagRAWMOUSE { LONG lLastY; ULONG ulExtraInformation; } RAWMOUSE,*PRAWMOUSE,*LPRAWMOUSE; + typedef struct tagRAWKEYBOARD { USHORT MakeCode; USHORT Flags; @@ -3606,11 +3712,13 @@ typedef struct tagRAWKEYBOARD { UINT Message; ULONG ExtraInformation; } RAWKEYBOARD,*PRAWKEYBOARD,*LPRAWKEYBOARD; + typedef struct tagRAWHID { DWORD dwSizeHid; DWORD dwCount; BYTE bRawData; } RAWHID,*PRAWHID,*LPRAWHID; + typedef struct tagRAWINPUT { RAWINPUTHEADER header; union { @@ -3619,13 +3727,16 @@ typedef struct tagRAWINPUT { RAWHID hid; } data; } RAWINPUT,*PRAWINPUT,*LPRAWINPUT; + typedef struct tagRAWINPUTDEVICE { USHORT usUsagePage; USHORT usUsage; DWORD dwFlags; HWND hwndTarget; } RAWINPUTDEVICE,*PRAWINPUTDEVICE,*LPRAWINPUTDEVICE; + typedef const RAWINPUTDEVICE *PCRAWINPUTDEVICE; + typedef struct tagRAWINPUTDEVICELIST { HANDLE hDevice; DWORD dwType;