From 6e2699957c773bf47921545784cc776a9aa281a6 Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Sun, 18 Jan 2009 15:59:21 +0000 Subject: [PATCH] - Fix WINEVENTPROC -- it is stdcall, not cdecl! - Correct the way FONTENUMPROC is defined, and type-cast accordingly in gdi32 - PSECURITY_DESCRIPTOR is an opaque pointer -- use PISECURITY_DESCRIPTOR instead where necessary - raddr2line: Fix a warning under Linux host svn path=/trunk/; revision=38898 --- reactos/base/system/services/rpcserver.c | 4 +- reactos/dll/win32/advapi32/token/token.c | 2 +- reactos/dll/win32/gdi32/objects/font.c | 12 ++--- reactos/include/psdk/winable.h | 2 +- reactos/include/psdk/wingdi.h | 59 +++++++++++++++++++----- reactos/include/psdk/winnt.h | 3 +- reactos/include/psdk/winuser.h | 2 +- reactos/lib/rtl/bootdata.c | 2 +- reactos/lib/rtl/debug.c | 46 +++++++++--------- reactos/lib/rtl/sd.c | 4 +- reactos/tools/raddr2line.c | 4 +- 11 files changed, 88 insertions(+), 52 deletions(-) diff --git a/reactos/base/system/services/rpcserver.c b/reactos/base/system/services/rpcserver.c index a2a16f003ee..e109a593bb8 100644 --- a/reactos/base/system/services/rpcserver.c +++ b/reactos/base/system/services/rpcserver.c @@ -851,11 +851,11 @@ DWORD RSetServiceObjectSecurity( DesiredAccess |= WRITE_OWNER; if ((dwSecurityInformation & OWNER_SECURITY_INFORMATION) && - (((PSECURITY_DESCRIPTOR)lpSecurityDescriptor)->Owner == NULL)) + (((PISECURITY_DESCRIPTOR)lpSecurityDescriptor)->Owner == NULL)) return ERROR_INVALID_PARAMETER; if ((dwSecurityInformation & GROUP_SECURITY_INFORMATION) && - (((PSECURITY_DESCRIPTOR)lpSecurityDescriptor)->Group == NULL)) + (((PISECURITY_DESCRIPTOR)lpSecurityDescriptor)->Group == NULL)) return ERROR_INVALID_PARAMETER; if (!RtlAreAllAccessesGranted(hSvc->Handle.DesiredAccess, diff --git a/reactos/dll/win32/advapi32/token/token.c b/reactos/dll/win32/advapi32/token/token.c index 9cc8b575611..8ed48af0ac8 100644 --- a/reactos/dll/win32/advapi32/token/token.c +++ b/reactos/dll/win32/advapi32/token/token.c @@ -339,7 +339,7 @@ CheckTokenMembership(IN HANDLE ExistingTokenHandle, IN PSID SidToCheck, OUT PBOOL IsMember) { - PSECURITY_DESCRIPTOR SecurityDescriptor = NULL; + PISECURITY_DESCRIPTOR SecurityDescriptor = NULL; ACCESS_MASK GrantedAccess; struct { diff --git a/reactos/dll/win32/gdi32/objects/font.c b/reactos/dll/win32/gdi32/objects/font.c index 3ae1ee55ca2..5e9002ae0ef 100644 --- a/reactos/dll/win32/gdi32/objects/font.c +++ b/reactos/dll/win32/gdi32/objects/font.c @@ -325,8 +325,8 @@ IntEnumFontFamilies(HDC Dc, LPLOGFONTW LogFont, PVOID EnumProc, LPARAM lParam, if (Unicode) { Ret = ((FONTENUMPROCW) EnumProc)( - &Info[i].EnumLogFontEx, - &Info[i].NewTextMetricEx, + (VOID*)&Info[i].EnumLogFontEx, + (VOID*)&Info[i].NewTextMetricEx, Info[i].FontType, lParam); } else @@ -341,8 +341,8 @@ IntEnumFontFamilies(HDC Dc, LPLOGFONTW LogFont, PVOID EnumProc, LPARAM lParam, NewTextMetricExW2A(&NewTextMetricExA, &Info[i].NewTextMetricEx); Ret = ((FONTENUMPROCA) EnumProc)( - &EnumLogFontExA, - &NewTextMetricExA, + (VOID*)&EnumLogFontExA, + (VOID*)&NewTextMetricExA, Info[i].FontType, lParam); } } @@ -1903,8 +1903,8 @@ NewEnumFontFamiliesExW( { PNTMW_INTERNAL pNtmwi = (PNTMW_INTERNAL)((ULONG_PTR)pEfdw + pEfdw->ulNtmwiOffset); - ret = lpEnumFontFamExProcW(&pEfdw->elfexdv.elfEnumLogfontEx, - &pNtmwi->ntmw, + ret = lpEnumFontFamExProcW((VOID*)&pEfdw->elfexdv.elfEnumLogfontEx, + (VOID*)&pNtmwi->ntmw, pEfdw->dwFontType, lParam); diff --git a/reactos/include/psdk/winable.h b/reactos/include/psdk/winable.h index 3f296c4595c..a4c4d50e83d 100644 --- a/reactos/include/psdk/winable.h +++ b/reactos/include/psdk/winable.h @@ -65,7 +65,7 @@ typedef struct tagINPUT { } INPUT,*PINPUT,*LPINPUT; #endif /* (_WIN32_WINNT < 0x0403) */ #if (WINVER < 0x0500) -typedef VOID (*WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,DWORD,DWORD); +typedef VOID (CALLBACK* WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,DWORD,DWORD); typedef struct tagGUITHREADINFO { DWORD cbSize; DWORD flags; diff --git a/reactos/include/psdk/wingdi.h b/reactos/include/psdk/wingdi.h index 15aebe93d73..c8b71b71ef3 100644 --- a/reactos/include/psdk/wingdi.h +++ b/reactos/include/psdk/wingdi.h @@ -2697,23 +2697,62 @@ typedef struct _ENUMTEXTMETRICW } ENUMTEXTMETRICW, *PENUMTEXTMETRICW, *LPENUMTEXTMETRICW; +#if defined(STRICT) + +#if !defined(NOTEXTMETRIC) + +typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM); +typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM); + +#else + +typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM); +typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST VOID *, DWORD, LPARAM); + +#endif + +#ifdef UNICODE +#define OLDFONTENUMPROC OLDFONTENUMPROCW +#else +#define OLDFONTENUMPROC OLDFONTENUMPROCA +#endif -typedef BOOL (CALLBACK *ABORTPROC)(HDC,int); -typedef int (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM); -typedef int (CALLBACK *ENHMFENUMPROC)(HDC,HANDLETABLE*,const ENHMETARECORD*,int,LPARAM); -typedef int (CALLBACK *OLDFONTENUMPROCA)(ENUMLOGFONTEXA*,NEWTEXTMETRICEXA*,DWORD,LPARAM); -typedef int (CALLBACK *OLDFONTENUMPROCW)(ENUMLOGFONTEXW*,NEWTEXTMETRICEXW*,DWORD,LPARAM); typedef OLDFONTENUMPROCA FONTENUMPROCA; typedef OLDFONTENUMPROCW FONTENUMPROCW; + #ifdef UNICODE -#define OLDFONTENUMPROC OLDFONTENUMPROCW +typedef FONTENUMPROCW FONTENUMPROC; #else -#define OLDFONTENUMPROC OLDFONTENUMPROCA +typedef FONTENUMPROCA FONTENUMPROC; #endif + +typedef INT (CALLBACK *GOBJENUMPROC)(LPVOID, LPARAM); +typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM); + +#else // defined(STRICT) + +typedef FARPROC OLDFONTENUMPROC; +typedef FARPROC FONTENUMPROCA; +typedef FARPROC FONTENUMPROCW; + +#ifdef UNICODE +typedef FONTENUMPROCW FONTENUMPROC; +#else +typedef FONTENUMPROCA FONTENUMPROC; +#endif + +typedef FARPROC GOBJENUMPROC; +typedef FARPROC LINEDDAPROC; + +#endif + + +typedef BOOL (CALLBACK *ABORTPROC)(HDC,int); + +typedef int (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM); +typedef int (CALLBACK *ENHMFENUMPROC)(HDC,HANDLETABLE*,const ENHMETARECORD*,int,LPARAM); typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM); typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM); -typedef void (CALLBACK *GOBJENUMPROC)(LPVOID,LPARAM); -typedef void (CALLBACK *LINEDDAPROC)(int,int,LPARAM); typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,UINT); typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODEA); @@ -3114,7 +3153,6 @@ typedef DOCINFOW DOCINFO, *LPDOCINFO; typedef LOGFONTW LOGFONT,*PLOGFONT,*LPLOGFONT; typedef TEXTMETRICW TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC; #define ICMENUMPROC ICMENUMPROCW -#define FONTENUMPROC FONTENUMPROCW typedef DEVMODEW DEVMODE,*PDEVMODE,*LPDEVMODE; typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; @@ -3196,7 +3234,6 @@ typedef DOCINFOA DOCINFO, *LPDOCINFO; typedef LOGFONTA LOGFONT,*PLOGFONT,*LPLOGFONT; typedef TEXTMETRICA TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC; #define ICMENUMPROC ICMENUMPROCA -#define FONTENUMPROC FONTENUMPROCA typedef DEVMODEA DEVMODE,*PDEVMODE,*LPDEVMODE; typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; diff --git a/reactos/include/psdk/winnt.h b/reactos/include/psdk/winnt.h index b9bd3478b81..dec430e0142 100644 --- a/reactos/include/psdk/winnt.h +++ b/reactos/include/psdk/winnt.h @@ -3025,7 +3025,8 @@ typedef struct _SECURITY_DESCRIPTOR { PSID Group; PACL Sacl; PACL Dacl; -} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; +} SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; +typedef PVOID PSECURITY_DESCRIPTOR; #endif typedef struct _SECURITY_DESCRIPTOR_RELATIVE { BYTE Revision; diff --git a/reactos/include/psdk/winuser.h b/reactos/include/psdk/winuser.h index 82b607edd6e..3f373b0b6ca 100644 --- a/reactos/include/psdk/winuser.h +++ b/reactos/include/psdk/winuser.h @@ -3525,7 +3525,7 @@ typedef struct tagGUITHREADINFO { HWND hwndCaret; RECT rcCaret; } GUITHREADINFO,*PGUITHREADINFO,*LPGUITHREADINFO; -typedef VOID (*WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,DWORD,DWORD); +typedef VOID (CALLBACK *WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,DWORD,DWORD); #endif /* (WINVER >= 0x0500) */ #if (_WIN32_WINNT >= 0x0501) typedef struct { diff --git a/reactos/lib/rtl/bootdata.c b/reactos/lib/rtl/bootdata.c index bfbdff9006e..f143b823a23 100644 --- a/reactos/lib/rtl/bootdata.c +++ b/reactos/lib/rtl/bootdata.c @@ -17,7 +17,7 @@ static SID_IDENTIFIER_AUTHORITY LocalSystemAuthority = {SECURITY_NT_AUTHORITY}; static NTSTATUS -RtlpSysVolCreateSecurityDescriptor(OUT PSECURITY_DESCRIPTOR *SecurityDescriptor, +RtlpSysVolCreateSecurityDescriptor(OUT PISECURITY_DESCRIPTOR *SecurityDescriptor, OUT PSID *SystemSid) { PSECURITY_DESCRIPTOR AbsSD = NULL; diff --git a/reactos/lib/rtl/debug.c b/reactos/lib/rtl/debug.c index 9470fe819e1..c491a46906b 100644 --- a/reactos/lib/rtl/debug.c +++ b/reactos/lib/rtl/debug.c @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS Run-Time Library - * FILE: ntoskrnl/rtl/dbgprint.c + * FILE: lib/rtl/debug.c * PURPOSE: Debug Print and Prompt routines * PROGRAMMERS: Alex Ionescu (alex@relsoft.net) * Royce Mitchel III @@ -203,19 +203,19 @@ __cdecl DbgPrint(PCCH Format, ...) { - ULONG n; + ULONG n; va_list ap; /* Call the internal routine that also handles ControlC */ va_start(ap, Format); n = vDbgPrintExWithPrefixInternal("", - -1, - DPFLTR_ERROR_LEVEL, - Format, - ap, - TRUE); + -1, + DPFLTR_ERROR_LEVEL, + Format, + ap, + TRUE); va_end(ap); - return n; + return n; } /* @@ -228,19 +228,19 @@ DbgPrintEx(IN ULONG ComponentId, IN PCCH Format, ...) { - ULONG n; + ULONG n; va_list ap; /* Call the internal routine that also handles ControlC */ va_start(ap, Format); n = vDbgPrintExWithPrefixInternal("", - ComponentId, - Level, - Format, - ap, - TRUE); + ComponentId, + Level, + Format, + ap, + TRUE); va_end(ap); - return n; + return n; } /* @@ -251,19 +251,19 @@ __cdecl DbgPrintReturnControlC(PCH Format, ...) { - ULONG n; + ULONG n; va_list ap; /* Call the internal routine that also handles ControlC */ va_start(ap, Format); n = vDbgPrintExWithPrefixInternal("", - -1, - DPFLTR_ERROR_LEVEL, - Format, - ap, - FALSE); + -1, + DPFLTR_ERROR_LEVEL, + Format, + ap, + FALSE); va_end(ap); - return n; + return n; } /* @@ -369,5 +369,3 @@ DbgUnLoadImageSymbols(IN PANSI_STRING Name, /* Load the symbols */ DebugService2(Name, &SymbolInfo, BREAKPOINT_UNLOAD_SYMBOLS); } - -/* EOF */ diff --git a/reactos/lib/rtl/sd.c b/reactos/lib/rtl/sd.c index 383973b2d41..37a183c6931 100644 --- a/reactos/lib/rtl/sd.c +++ b/reactos/lib/rtl/sd.c @@ -1018,7 +1018,7 @@ RtlSelfRelativeToAbsoluteSD2(IN OUT PSECURITY_DESCRIPTOR SelfRelativeSD, * @implemented */ BOOLEAN NTAPI -RtlValidRelativeSecurityDescriptor(IN PISECURITY_DESCRIPTOR SecurityDescriptorInput, +RtlValidRelativeSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptorInput, IN ULONG SecurityDescriptorLength, IN SECURITY_INFORMATION RequiredInformation) { @@ -1027,7 +1027,7 @@ RtlValidRelativeSecurityDescriptor(IN PISECURITY_DESCRIPTOR SecurityDescriptorIn PAGED_CODE_RTL(); if (SecurityDescriptorLength < sizeof(SECURITY_DESCRIPTOR_RELATIVE) || - SecurityDescriptorInput->Revision != SECURITY_DESCRIPTOR_REVISION1 || + pSD->Revision != SECURITY_DESCRIPTOR_REVISION1 || !(pSD->Control & SE_SELF_RELATIVE)) { return FALSE; diff --git a/reactos/tools/raddr2line.c b/reactos/tools/raddr2line.c index 576e96c6508..ffe7f34682e 100644 --- a/reactos/tools/raddr2line.c +++ b/reactos/tools/raddr2line.c @@ -85,9 +85,9 @@ find_and_print_offset ( else { PROSSYM_ENTRY e = &Entries[i]; - printf ( "%s:%lu (%s)\n", + printf ( "%s:%u (%s)\n", &Strings[e->FileOffset], - e->SourceLine, + (unsigned int)e->SourceLine, &Strings[e->FunctionOffset] ); return 0; }