ANSI/UNICODE struct separation patch by Royce3, ANSI/UNICODE WNDCLASS separation and new gdi32 functions by Jonathan Wilson

svn path=/trunk/; revision=5422
This commit is contained in:
Thomas Bluemel 2003-08-05 15:41:03 +00:00
parent d932b77179
commit 64c31c759c
46 changed files with 2649 additions and 1552 deletions

View file

@ -1,4 +1,3 @@
@echo off
set BOOTCD_DIR=..\bootcd
set FREELDR_DIR=..\freeldr
set ROSAPPS_DIR=..\rosapps

View file

@ -360,7 +360,7 @@ NtUserGetCapture 0
NtUserGetCaretBlinkTime 0
NtUserGetCaretPos 1
NtUserGetClassInfo 5
NtUserGetClassLong 2
NtUserGetClassLong 3
NtUserGetClassName 3
NtUserGetClientOrigin 2
NtUserGetClientRect 2
@ -412,7 +412,7 @@ NtUserGetUpdateRect 3
NtUserGetUpdateRgn 3
NtUserGetWindowDC 1
NtUserGetWindowPlacement 2
NtUserGetWindowLong 2
NtUserGetWindowLong 3
NtUserGetWindowRect 2
NtUserGetWOWClass 2
NtUserHideCaret 1

View file

@ -1525,7 +1525,7 @@ InsertMenuItemA(
HMENU,
UINT,
WINBOOL,
LPCMENUITEMINFO
LPCMENUITEMINFOA
);
WINBOOL
@ -1534,7 +1534,7 @@ GetMenuItemInfoA(
HMENU,
UINT,
WINBOOL,
LPMENUITEMINFO
LPMENUITEMINFOA
);
WINBOOL
@ -1543,7 +1543,7 @@ SetMenuItemInfoA(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFO lpmii);
LPMENUITEMINFOA lpmii);
int
STDCALL
@ -1886,15 +1886,15 @@ DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD,
int
STDCALL
EnumFontFamiliesExA(HDC, LPLOGFONTA, FONTENUMEXPROC, LPARAM,DWORD);
EnumFontFamiliesExA(HDC, LPLOGFONTA, FONTENUMEXPROCA, LPARAM,DWORD);
int
STDCALL
EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROC, LPARAM);
EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
int
STDCALL
EnumFontsA(HDC, LPCSTR, FONTENUMPROC, LPARAM);
EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
WINBOOL
STDCALL
@ -1959,7 +1959,7 @@ GetTextExtentExPointA(
DWORD
STDCALL
GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTS, DWORD);
GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD);
HDC
STDCALL
@ -1991,7 +1991,7 @@ GetTextMetricsA(HDC, LPTEXTMETRICA);
int
STDCALL
StartDocA(HDC, CONST DOCINFO *);
StartDocA(HDC, CONST DOCINFOA *);
int
STDCALL
@ -2007,7 +2007,7 @@ ExtTextOutA(HDC, int, int, UINT, CONST RECT *,LPCSTR, UINT, CONST INT *);
WINBOOL
STDCALL
PolyTextOutA(HDC, CONST POLYTEXT *, int);
PolyTextOutA(HDC, CONST POLYTEXTA *, int);
int
STDCALL
@ -2019,11 +2019,11 @@ GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR);
HCOLORSPACE
STDCALL
CreateColorSpaceA(LPLOGCOLORSPACE);
CreateColorSpaceA(LPLOGCOLORSPACEA);
WINBOOL
STDCALL
GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACE,DWORD);
GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
WINBOOL
STDCALL
@ -2043,7 +2043,7 @@ EnumICMProfilesA(HDC,ICMENUMPROC,LPARAM);
int
STDCALL
PropertySheetA(LPCPROPSHEETHEADER lppsph);
PropertySheetA(LPCPROPSHEETHEADERA lppsph);
HIMAGELIST
STDCALL
@ -2059,11 +2059,11 @@ DrawStatusTextA(HDC hDC, LPRECT lprc, LPCSTR pszText, UINT uFlags);
WINBOOL
STDCALL
GetOpenFileNameA(LPOPENFILENAME);
GetOpenFileNameA(LPOPENFILENAMEA);
WINBOOL
STDCALL
GetSaveFileNameA(LPOPENFILENAME);
GetSaveFileNameA(LPOPENFILENAMEA);
short
STDCALL
@ -2071,27 +2071,27 @@ GetFileTitleA(LPCSTR, LPSTR, WORD);
WINBOOL
STDCALL
ChooseColorA(LPCHOOSECOLOR);
ChooseColorA(LPCHOOSECOLORA);
HWND
STDCALL
FindTextA(LPFINDREPLACE);
FindTextA(LPFINDREPLACEA);
HWND
STDCALL
ReplaceTextA(LPFINDREPLACE);
ReplaceTextA(LPFINDREPLACEA);
WINBOOL
STDCALL
ChooseFontA(LPCHOOSEFONT);
ChooseFontA(LPCHOOSEFONTA);
WINBOOL
STDCALL
PrintDlgA(LPPRINTDLG);
PrintDlgA(LPPRINTDLGA);
WINBOOL
STDCALL
PageSetupDlgA( LPPAGESETUPDLG );
PageSetupDlgA( LPPAGESETUPDLGA );
WINBOOL
STDCALL
@ -2130,14 +2130,14 @@ HANDLE
STDCALL
FindFirstFileA(
LPCSTR lpFileName,
LPWIN32_FIND_DATA lpFindFileData
LPWIN32_FIND_DATAA lpFindFileData
);
WINBOOL
STDCALL
FindNextFileA(
HANDLE hFindFile,
LPWIN32_FIND_DATA lpFindFileData
LPWIN32_FIND_DATAA lpFindFileData
);
WINBOOL
@ -2361,7 +2361,7 @@ LONG
STDCALL
RegQueryMultipleValuesA (
HKEY hKey,
PVALENT val_list,
PVALENTA val_list,
DWORD num_vals,
LPSTR lpValueBuf,
LPDWORD ldwTotsize
@ -2508,7 +2508,7 @@ GetNumberFormatA(
LCID Locale,
DWORD dwFlags,
LPCSTR lpValue,
CONST NUMBERFMT *lpFormat,
CONST NUMBERFMTA *lpFormat,
LPSTR lpNumberStr,
int cchNumber);
@ -2518,7 +2518,7 @@ GetCurrencyFormatA(
LCID Locale,
DWORD dwFlags,
LPCSTR lpValue,
CONST CURRENCYFMT *lpFormat,
CONST CURRENCYFMTA *lpFormat,
LPSTR lpCurrencyStr,
int cchCurrency);
@ -2713,7 +2713,7 @@ WNetAddConnectionA(
DWORD STDCALL
WNetAddConnection2A(
LPNETRESOURCE lpNetResource,
LPNETRESOURCEA lpNetResource,
LPCSTR lpPassword,
LPCSTR lpUserName,
DWORD dwFlags
@ -2722,7 +2722,7 @@ WNetAddConnection2A(
DWORD STDCALL
WNetAddConnection3A(
HWND hwndOwner,
LPNETRESOURCE lpNetResource,
LPNETRESOURCEA lpNetResource,
LPCSTR lpPassword,
LPCSTR lpUserName,
DWORD dwFlags
@ -2751,7 +2751,7 @@ WNetGetConnectionA(
DWORD STDCALL
WNetUseConnectionA(
HWND hwndOwner,
LPNETRESOURCE lpNetResource,
LPNETRESOURCEA lpNetResource,
LPCSTR lpUserID,
LPCSTR lpPassword,
DWORD dwFlags,
@ -2769,12 +2769,12 @@ WNetSetConnectionA(
DWORD STDCALL
WNetConnectionDialog1A(
LPCONNECTDLGSTRUCT lpConnDlgStruct
LPCONNECTDLGSTRUCTA lpConnDlgStruct
);
DWORD STDCALL
WNetDisconnectDialog1A(
LPDISCDLGSTRUCT lpConnDlgStruct
LPDISCDLGSTRUCTA lpConnDlgStruct
);
DWORD STDCALL
@ -2782,7 +2782,7 @@ WNetOpenEnumA(
DWORD dwScope,
DWORD dwType,
DWORD dwUsage,
LPNETRESOURCE lpNetResource,
LPNETRESOURCEA lpNetResource,
LPHANDLE lphEnum
);
@ -2833,7 +2833,7 @@ WNetGetLastErrorA(
DWORD STDCALL
MultinetGetConnectionPerformanceA(
LPNETRESOURCE lpNetResource,
LPNETRESOURCEA lpNetResource,
LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct
);

View file

@ -6474,7 +6474,7 @@ ColorMatchToTarget(HDC,HDC,DWORD);
HPROPSHEETPAGE
STDCALL
CreatePropertySheetPageA(LPCPROPSHEETPAGE lppsp);
CreatePropertySheetPageA(LPCPROPSHEETPAGEA lppsp);
WINBOOL
STDCALL
@ -7547,7 +7547,10 @@ void WINAPI
SHChangeNotify (LONG, UINT, LPCVOID, LPCVOID);
int WINAPI
SHFileOperation (LPSHFILEOPSTRUCT);
SHFileOperationA (LPSHFILEOPSTRUCTA);
int WINAPI
SHFileOperationW (LPSHFILEOPSTRUCTW);
void WINAPI
SHFreeNameMappings (HANDLE);

File diff suppressed because it is too large Load diff

View file

@ -1522,7 +1522,7 @@ InsertMenuItemW(
HMENU,
UINT,
WINBOOL,
LPCMENUITEMINFO
LPCMENUITEMINFOW
);
WINBOOL
@ -1531,7 +1531,7 @@ GetMenuItemInfoW(
HMENU,
UINT,
WINBOOL,
LPMENUITEMINFO
LPMENUITEMINFOW
);
WINBOOL
@ -1540,7 +1540,7 @@ SetMenuItemInfoW(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFO lpmii);
LPMENUITEMINFOW lpmii);
int
STDCALL
@ -1897,15 +1897,15 @@ DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD,
int
STDCALL
EnumFontFamiliesExW(HDC, LPLOGFONTW, FONTENUMEXPROC, LPARAM, DWORD);
EnumFontFamiliesExW(HDC, LPLOGFONTW, FONTENUMEXPROCW, LPARAM, DWORD);
int
STDCALL
EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROC, LPARAM);
EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
int
STDCALL
EnumFontsW(HDC, LPCWSTR, FONTENUMPROC, LPARAM);
EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
WINBOOL
STDCALL
@ -1970,7 +1970,7 @@ GetTextExtentExPointW(
DWORD
STDCALL
GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTS, DWORD);
GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD);
HDC
STDCALL
@ -2002,7 +2002,7 @@ GetTextMetricsW(HDC, LPTEXTMETRICW);
int
STDCALL
StartDocW(HDC, CONST DOCINFO *);
StartDocW(HDC, CONST DOCINFOW *);
int
STDCALL
@ -2018,7 +2018,7 @@ ExtTextOutW(HDC, int, int, UINT, CONST RECT *,LPCWSTR, UINT, CONST INT *);
WINBOOL
STDCALL
PolyTextOutW(HDC, CONST POLYTEXT *, int);
PolyTextOutW(HDC, CONST POLYTEXTW *, int);
int
STDCALL
@ -2030,11 +2030,11 @@ GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR);
WINBOOL
STDCALL
GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACE,DWORD);
GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
HCOLORSPACE
STDCALL
CreateColorSpaceW(LPLOGCOLORSPACE);
CreateColorSpaceW(LPLOGCOLORSPACEW);
WINBOOL
STDCALL
@ -2054,11 +2054,11 @@ EnumICMProfilesW(HDC,ICMENUMPROC,LPARAM);
HPROPSHEETPAGE
STDCALL
CreatePropertySheetPageW(LPCPROPSHEETPAGE lppsp);
CreatePropertySheetPageW(LPCPROPSHEETPAGEW lppsp);
int
STDCALL
PropertySheetW(LPCPROPSHEETHEADER lppsph);
PropertySheetW(LPCPROPSHEETHEADERW lppsph);
HIMAGELIST
STDCALL
@ -2080,11 +2080,11 @@ DrawStatusTextW(HDC hDC, LPRECT lprc, LPCWSTR pszText, UINT uFlags);
WINBOOL
STDCALL
GetOpenFileNameW(LPOPENFILENAME);
GetOpenFileNameW(LPOPENFILENAMEW);
WINBOOL
STDCALL
GetSaveFileNameW(LPOPENFILENAME);
GetSaveFileNameW(LPOPENFILENAMEW);
short
STDCALL
@ -2092,27 +2092,27 @@ GetFileTitleW(LPCWSTR, LPWSTR, WORD);
WINBOOL
STDCALL
ChooseColorW(LPCHOOSECOLOR);
ChooseColorW(LPCHOOSECOLORW);
HWND
STDCALL
ReplaceTextW(LPFINDREPLACE);
ReplaceTextW(LPFINDREPLACEW);
WINBOOL
STDCALL
ChooseFontW(LPCHOOSEFONT);
ChooseFontW(LPCHOOSEFONTW);
HWND
STDCALL
FindTextW(LPFINDREPLACE);
FindTextW(LPFINDREPLACEW);
WINBOOL
STDCALL
PrintDlgW(LPPRINTDLG);
PrintDlgW(LPPRINTDLGW);
WINBOOL
STDCALL
PageSetupDlgW(LPPAGESETUPDLG);
PageSetupDlgW(LPPAGESETUPDLGW);
WINBOOL
STDCALL
@ -2536,7 +2536,7 @@ GetNumberFormatW(
LCID Locale,
DWORD dwFlags,
LPCWSTR lpValue,
CONST NUMBERFMT *lpFormat,
CONST NUMBERFMTW *lpFormat,
LPWSTR lpNumberStr,
int cchNumber);
@ -2546,7 +2546,7 @@ GetCurrencyFormatW(
LCID Locale,
DWORD dwFlags,
LPCWSTR lpValue,
CONST CURRENCYFMT *lpFormat,
CONST CURRENCYFMTW *lpFormat,
LPWSTR lpCurrencyStr,
int cchCurrency);
@ -2739,18 +2739,18 @@ WNetAddConnectionW(
DWORD STDCALL
WNetAddConnection2W(
LPNETRESOURCE lpNetResource,
LPCWSTR lpPassword,
LPCWSTR lpUserName,
LPNETRESOURCEW lpNetResource,
LPCWSTR lpPassword,
LPCWSTR lpUserName,
DWORD dwFlags
);
DWORD STDCALL
WNetAddConnection3W(
HWND hwndOwner,
LPNETRESOURCE lpNetResource,
LPCWSTR lpPassword,
LPCWSTR lpUserName,
HWND hwndOwner,
LPNETRESOURCEW lpNetResource,
LPCWSTR lpPassword,
LPCWSTR lpUserName,
DWORD dwFlags
);
@ -2777,7 +2777,7 @@ WNetGetConnectionW(
DWORD STDCALL
WNetUseConnectionW(
HWND hwndOwner,
LPNETRESOURCE lpNetResource,
LPNETRESOURCEW lpNetResource,
LPCWSTR lpUserID,
LPCWSTR lpPassword,
DWORD dwFlags,
@ -2795,12 +2795,12 @@ WNetSetConnectionW(
DWORD STDCALL
WNetConnectionDialog1W(
LPCONNECTDLGSTRUCT lpConnDlgStruct
LPCONNECTDLGSTRUCTW lpConnDlgStruct
);
DWORD STDCALL
WNetDisconnectDialog1W(
LPDISCDLGSTRUCT lpConnDlgStruct
LPDISCDLGSTRUCTW lpConnDlgStruct
);
DWORD STDCALL
@ -2808,7 +2808,7 @@ WNetOpenEnumW(
DWORD dwScope,
DWORD dwType,
DWORD dwUsage,
LPNETRESOURCE lpNetResource,
LPNETRESOURCEW lpNetResource,
LPHANDLE lphEnum
);
@ -2859,7 +2859,7 @@ WNetGetLastErrorW(
DWORD STDCALL
MultinetGetConnectionPerformanceW(
LPNETRESOURCE lpNetResource,
LPNETRESOURCEW lpNetResource,
LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct
);

View file

@ -17,7 +17,7 @@ W32kColorMatchToTarget(HDC hDC,
HCOLORSPACE
STDCALL
W32kCreateColorSpace(LPLOGCOLORSPACE LogColorSpace);
W32kCreateColorSpace(LPLOGCOLORSPACEW LogColorSpace);
BOOL
STDCALL
@ -25,7 +25,7 @@ W32kDeleteColorSpace(HCOLORSPACE hColorSpace);
INT
STDCALL
W32kEnumICMProfiles(HDC hDC,
W32kEnumICMProfiles(HDC hDC,
ICMENUMPROC EnumICMProfilesFunc,
LPARAM lParam);
@ -35,19 +35,19 @@ W32kGetColorSpace(HDC hDC);
BOOL
STDCALL
W32kGetDeviceGammaRamp(HDC hDC,
W32kGetDeviceGammaRamp(HDC hDC,
LPVOID Ramp);
BOOL
STDCALL
W32kGetICMProfile(HDC hDC,
LPDWORD NameSize,
LPDWORD NameSize,
LPWSTR Filename);
BOOL
STDCALL
W32kGetLogColorSpace(HCOLORSPACE hColorSpace,
LPLOGCOLORSPACE Buffer,
LPLOGCOLORSPACEW Buffer,
DWORD Size);
HCOLORSPACE

View file

@ -3,20 +3,28 @@
ULONG STDCALL
NtUserGetSystemMetrics(ULONG Index);
DWORD STDCALL
NtUserGetClassLong(HWND hWnd, DWORD Offset);
NtUserGetClassLong(HWND hWnd, DWORD Offset, BOOL Ansi);
LONG STDCALL
NtUserGetWindowLong(HWND hWnd, DWORD Index);
NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi);
INT STDCALL
NtUserReleaseDC(HWND hWnd, HDC hDc);
BOOL STDCALL
NtUserGetWindowRect(HWND hWnd, LPRECT Rect);
BOOL STDCALL
NtUserGetClientRect(HWND hWnd, LPRECT Rect);
HANDLE STDCALL
NtUserGetProp(HWND hWnd, ATOM Atom);
BOOL STDCALL
NtUserGetClientOrigin(HWND hWnd, LPPOINT Point);
HWND STDCALL
NtUserGetDesktopWindow();
@ -80,7 +88,7 @@ DWORD
STDCALL
NtUserBuildMenuItemList(
HMENU hMenu,
LPCMENUITEMINFO* lpmiil,
LPCMENUITEMINFOW* lpmiil,
ULONG nBufSize,
DWORD Reserved);
@ -448,7 +456,8 @@ NtUserInsertMenuItem(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFOW lpmii);
LPCMENUITEMINFOW lpmii);
DWORD
STDCALL
@ -571,10 +580,9 @@ NtUserGetClassInfo(IN LPWSTR ClassName,
DWORD
STDCALL
NtUserGetClassName(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
NtUserGetClassName(HWND hWnd,
LPWSTR lpClassName,
int nMaxCount);
DWORD
STDCALL
@ -1148,13 +1156,12 @@ NtUserRedrawWindow
RTL_ATOM
STDCALL
NtUserRegisterClassExWOW(
LPWNDCLASSEXW lpwcx,
BOOL bUnicodeClass,
DWORD Unknown2,
DWORD Unknown3,
DWORD Unknown4,
DWORD Unknown5);
NtUserRegisterClassExWOW(CONST WNDCLASSEXW* lpwcxw,
CONST WNDCLASSEXA* lpwcxa,
BOOL bUnicodeClass,
DWORD Unknown3,
DWORD Unknown4,
DWORD Unknown5);
DWORD
STDCALL
@ -1259,9 +1266,13 @@ NtUserSetCapture(HWND Wnd);
HWND STDCALL
NtUserGetCapture(VOID);
DWORD
STDCALL
NtUserSetClassLong(HWND hWnd, int Index, LONG NewValue, DWORD unk);
DWORD STDCALL
NtUserSetClassLong(
HWND hWnd,
DWORD Offset,
LONG dwNewLong,
BOOL Ansi );
DWORD
STDCALL

View file

@ -39,7 +39,7 @@ W32kSetAbortProc(HDC hDC,
INT
STDCALL
W32kStartDoc(HDC hDC,
CONST PDOCINFO di);
CONST PDOCINFOW di);
INT
STDCALL

View file

@ -56,14 +56,14 @@ int
STDCALL
W32kEnumFontFamilies(HDC hDC,
LPCWSTR Family,
FONTENUMPROC EnumFontFamProc,
FONTENUMPROCW EnumFontFamProc,
LPARAM lParam);
int
STDCALL
W32kEnumFontFamiliesEx(HDC hDC,
LPLOGFONTW Logfont,
FONTENUMEXPROC EnumFontFamExProc,
FONTENUMEXPROCW EnumFontFamExProc,
LPARAM lParam,
DWORD Flags);
@ -71,7 +71,7 @@ int
STDCALL
W32kEnumFonts(HDC hDC,
LPCWSTR FaceName,
FONTENUMPROC FontFunc,
FONTENUMPROCW FontFunc,
LPARAM lParam);
BOOL
@ -110,7 +110,7 @@ W32kGetCharacterPlacement(HDC hDC,
LPCWSTR String,
int Count,
int MaxExtent,
LPGCP_RESULTS Results,
LPGCP_RESULTSW Results,
DWORD Flags);
BOOL
@ -213,7 +213,7 @@ W32kGetTextMetrics(HDC hDC,
BOOL
STDCALL
W32kPolyTextOut(HDC hDC,
CONST LPPOLYTEXT txt,
CONST LPPOLYTEXTW txt,
int Count);
BOOL

View file

@ -1,4 +1,4 @@
/* $Id: _system.c,v 1.7 2003/07/11 17:25:16 royce Exp $
/* $Id: _system.c,v 1.8 2003/08/05 15:41:02 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -23,7 +23,7 @@ int system(const char *command)
PROCESS_INFORMATION ProcessInformation;
STARTUPINFO StartupInfo;
STARTUPINFOA StartupInfo;
int nStatus;
@ -57,7 +57,7 @@ int system(const char *command)
//command file has invalid format ENOEXEC
StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved= NULL;
StartupInfo.dwFlags = 0;
StartupInfo.wShowWindow = SW_SHOWDEFAULT;

View file

@ -36,9 +36,9 @@ direct_exec_tail(const char* program, const char* args,
char* const envp[],
PROCESS_INFORMATION* ProcessInformation)
{
static STARTUPINFO StartupInfo;
static STARTUPINFOA StartupInfo;
StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved= NULL;
StartupInfo.dwFlags = 0;
StartupInfo.wShowWindow = SW_SHOWDEFAULT;

View file

@ -15,7 +15,7 @@ FILE *_popen (const char *cm, const char *md) /* program name, pipe mode */
{
FILE *pf;
HANDLE hReadPipe, hWritePipe;
STARTUPINFO StartupInfo;
STARTUPINFOA StartupInfo;
PROCESS_INFORMATION ProcessInformation;
// fixme CreatePipe
@ -23,7 +23,7 @@ FILE *_popen (const char *cm, const char *md) /* program name, pipe mode */
// if ( !CreatePipe(&hReadPipe,&hWritePipe,NULL,1024))
// return NULL;
StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.cb = sizeof(StartupInfo);
if ( md == "r" ) {
StartupInfo.hStdOutput = hWritePipe;
}

View file

@ -12,7 +12,7 @@
int _stat(const char* path, struct stat* buffer)
{
HANDLE fh;
WIN32_FIND_DATA wfd;
WIN32_FIND_DATAA wfd;
fh = FindFirstFile(path, &wfd);
if (fh == INVALID_HANDLE_VALUE) {

View file

@ -1,4 +1,4 @@
/* $Id: stubs.c,v 1.29 2003/07/21 04:04:20 jimtabor Exp $
/* $Id: stubs.c,v 1.30 2003/08/05 15:41:02 weiden Exp $
*
* reactos/lib/gdi32/misc/stubs.c
*
@ -31,27 +31,6 @@ AnimatePalette(
}
/*
* @unimplemented
*/
BOOL
STDCALL
Arc(
HDC a0,
int a1,
int a2,
int a3,
int a4,
int a5,
int a6,
int a7,
int a8
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
@ -117,21 +96,6 @@ CloseMetaFile(
return 0;
}
/*
* @unimplemented
*/
HBRUSH
STDCALL
CreateBrushIndirect(
CONST LOGBRUSH *a0
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -147,21 +111,6 @@ CreateDIBPatternBrush(
}
/*
* @unimplemented
*/
HBRUSH
STDCALL
CreateDIBPatternBrushPt(
CONST VOID *a0,
UINT a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -193,35 +142,6 @@ CreateEllipticRgnIndirect(
}
/*
* @unimplemented
*/
HBRUSH
STDCALL
CreateHatchBrush(
int a0,
COLORREF a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
HPALETTE
STDCALL
CreatePalette(
CONST LOGPALETTE *a0
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -525,54 +445,6 @@ GetMetaFileBitsEx(
return 0;
}
/*
* @unimplemented
*/
COLORREF
STDCALL
GetNearestColor(
HDC a0,
COLORREF a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
UINT
STDCALL
GetNearestPaletteIndex(
HPALETTE a0,
COLORREF a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
UINT
STDCALL
GetPaletteEntries(
HPALETTE a0,
UINT a1,
UINT a2,
LPPALETTEENTRY a3
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -617,25 +489,6 @@ GetRasterizerCaps(
return FALSE;
}
/*
* @unimplemented
*/
UINT
STDCALL
GetSystemPaletteEntries(
HDC a0,
UINT a1,
UINT a2,
LPPALETTEENTRY a3
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -829,23 +682,6 @@ PolyPolygon(
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
PtInRegion(
HRGN a0,
int a1,
int a2
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
@ -862,21 +698,6 @@ PtVisible(
}
/*
* @unimplemented
*/
BOOL
STDCALL
RectInRegion(
HRGN a0,
CONST RECT *a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
@ -892,21 +713,6 @@ RectVisible(
}
/*
* @unimplemented
*/
BOOL
STDCALL
RestoreDC(
HDC a0,
int a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
@ -941,21 +747,6 @@ ResizePalette(
return FALSE;
}
/*
* @unimplemented
*/
int
STDCALL
SaveDC(
HDC a0
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -1032,23 +823,6 @@ SetMetaFileBitsEx(
}
/*
* @unimplemented
*/
UINT
STDCALL
SetPaletteEntries(
HPALETTE a0,
UINT a1,
UINT a2,
CONST PALETTEENTRY *a3
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -1422,68 +1196,6 @@ PolyPolyline(
}
/*
* @unimplemented
*/
BOOL
STDCALL
GetWorldTransform(
HDC hdc,
LPXFORM a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
SetWorldTransform(
HDC a0,
CONST XFORM *a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
ModifyWorldTransform(
HDC a0,
CONST XFORM *a1,
DWORD a2
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
CombineTransform(
LPXFORM a0,
CONST XFORM *a1,
CONST XFORM *a2
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
@ -1500,26 +1212,8 @@ GetDIBColorTable(
return 0;
}
/*
* @unimplemented
*/
UINT
STDCALL
SetDIBColorTable(
HDC hdc,
UINT a1,
UINT a2,
CONST RGBQUAD *a3
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
* @unimplemented
*/
BOOL
STDCALL
@ -1548,20 +1242,6 @@ GetColorAdjustment(
}
/*
* @unimplemented
*/
HPALETTE
STDCALL
CreateHalftonePalette(
HDC hdc
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -1647,28 +1327,6 @@ AbortPath(
}
/*
* @unimplemented
*/
BOOL
STDCALL
ArcTo(
HDC hdc,
int a1,
int a2,
int a3,
int a4,
int a5,
int a6,
int a7,
int a8
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
@ -1908,106 +1566,6 @@ CreatePolygonRgn(
return 0;
}
/*
* @unimplemented
*/
BOOL
STDCALL
PolyBezier(
HDC a0,
CONST POINT *a1,
DWORD a2
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
PolyBezierTo(
HDC a0,
CONST POINT *a1,
DWORD a2
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
PolylineTo(
HDC a0,
CONST POINT *a1,
DWORD a2
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
SetViewportExtEx(
HDC a0,
int a1,
int a2,
LPSIZE a3
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
SetWindowExtEx(
HDC a0,
int a1,
int a2,
LPSIZE a3
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
BOOL
STDCALL
OffsetWindowOrgEx(
HDC a0,
int a1,
int a2,
LPPOINT a3
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
@ -2046,23 +1604,6 @@ ScaleWindowExtEx(
}
/*
* @unimplemented
*/
BOOL
STDCALL
SetBitmapDimensionEx(
HBITMAP a0,
int a1,
int a2,
LPSIZE a3
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/
@ -2080,21 +1621,6 @@ SetBrushOrgEx(
}
/*
* @unimplemented
*/
BOOL
STDCALL
GetDCOrgEx(
HDC a0,
LPPOINT a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*
* @unimplemented
*/

View file

@ -1,4 +1,4 @@
/* $Id: stubsa.c,v 1.21 2003/08/04 00:28:44 royce Exp $
/* $Id: stubsa.c,v 1.22 2003/08/05 15:41:02 weiden Exp $
*
* reactos/lib/gdi32/misc/stubs.c
*
@ -227,39 +227,46 @@ DeviceCapabilitiesExA(
/*
* @implemented
* @unimplemented
*/
int
STDCALL
EnumFontFamiliesExA(
EnumFontFamiliesExA (
HDC hdc,
LPLOGFONTA lpLogFont,
FONTENUMEXPROC lpEnumFontFamProc,
FONTENUMEXPROCA lpEnumFontFamProc,
LPARAM lParam,
DWORD dwFlags
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
#if 0
LOGFONTW LogFontW;
RosRtlLogFontA2W ( &LogFontW, lpLogFont );
/* no need to convert LogFontW back to lpLogFont b/c it's an [in] parameter only */
return W32kEnumFontFamiliesEx ( hdc, &LogFontW, lpEnumFontFamProc, lParam, dwFlags );
#endif
}
/*
* @implemented
* @unimplemented
*/
int
STDCALL
EnumFontFamiliesA(
HDC hdc,
LPCSTR lpszFamily,
FONTENUMPROC lpEnumFontFamProc,
FONTENUMPROCA lpEnumFontFamProc,
LPARAM lParam
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
#if 0
NTSTATUS Status;
LPWSTR lpszFamilyW;
int rc = 0;
@ -275,6 +282,7 @@ EnumFontFamiliesA(
}
return rc;
#endif
}
@ -286,10 +294,13 @@ STDCALL
EnumFontsA (
HDC hDC,
LPCSTR lpFaceName,
FONTENUMPROC FontFunc,
FONTENUMPROCA FontFunc,
LPARAM lParam
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
#if 0
NTSTATUS Status;
LPWSTR lpFaceNameW;
int rc = 0;
@ -304,6 +315,7 @@ EnumFontsA (
HEAP_free ( lpFaceNameW );
}
return rc;
#endif
}
@ -498,7 +510,7 @@ GetCharacterPlacementA(
LPCSTR a1,
int a2,
int a3,
LPGCP_RESULTS a4,
LPGCP_RESULTSA a4,
DWORD a5
)
{
@ -699,7 +711,7 @@ int
STDCALL
StartDocA(
HDC hdc,
CONST DOCINFO *a1
CONST DOCINFOA *a1
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@ -729,7 +741,7 @@ BOOL
STDCALL
PolyTextOutA(
HDC hdc,
CONST POLYTEXT *a1,
CONST POLYTEXTA *a1,
int a2
)
{
@ -777,7 +789,7 @@ BOOL
STDCALL
GetLogColorSpaceA(
HCOLORSPACE a0,
LPLOGCOLORSPACE a1,
LPLOGCOLORSPACEA a1,
DWORD a2
)
{
@ -792,7 +804,7 @@ GetLogColorSpaceA(
HCOLORSPACE
STDCALL
CreateColorSpaceA(
LPLOGCOLORSPACE a0
LPLOGCOLORSPACEA a0
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

View file

@ -1,4 +1,4 @@
/* $Id: stubsw.c,v 1.17 2003/07/24 22:17:15 royce Exp $
/* $Id: stubsw.c,v 1.18 2003/08/05 15:41:02 weiden Exp $
*
* reactos/lib/gdi32/misc/stubs.c
*
@ -129,51 +129,66 @@ DeviceCapabilitiesExW(
/*
* @implemented
* @unimplemented
*/
int
STDCALL
EnumFontFamiliesExW(
HDC hdc,
LPLOGFONTW lpLogFont,
FONTENUMEXPROC lpEnumFontFamProc,
FONTENUMEXPROCW lpEnumFontFamProc,
LPARAM lParam,
DWORD dwFlags
)
{
#if 0
return W32kEnumFontFamiliesEx ( hdc, lpLogFont, lpEnumFontFamProc, lParam, dwFlags );
#else
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
#endif
}
/*
* @implemented
* @unimplemented
*/
int
STDCALL
EnumFontFamiliesW(
HDC hdc,
LPCWSTR lpszFamily,
FONTENUMPROC lpEnumFontFamProc,
FONTENUMPROCW lpEnumFontFamProc,
LPARAM lParam
)
{
#if 0
return W32kEnumFontFamilies ( hdc, lpszFamily, lpEnumFontFamProc, lParam );
#else
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
#endif
}
/*
* @implemented
* @unimplemented
*/
int
STDCALL
EnumFontsW(
HDC hDC,
LPCWSTR lpFaceName,
FONTENUMPROC FontFunc,
FONTENUMPROCW FontFunc,
LPARAM lParam
)
{
#if 0
return W32kEnumFonts ( hDC, lpFaceName, FontFunc, lParam );
#else
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
#endif
}
@ -335,7 +350,7 @@ GetCharacterPlacementW(
LPCWSTR a1,
int a2,
int a3,
LPGCP_RESULTS a4,
LPGCP_RESULTSW a4,
DWORD a5
)
{
@ -435,11 +450,11 @@ GetEnhMetaFileDescriptionW(
int
STDCALL
StartDocW(
HDC hdc,
CONST DOCINFO *a1
HDC hdc,
CONST DOCINFOW *a1
)
{
return W32kStartDoc ( hdc, (CONST PDOCINFO)a1 );
return W32kStartDoc ( hdc, (CONST PDOCINFOW)a1 );
}
@ -465,7 +480,7 @@ BOOL
STDCALL
PolyTextOutW(
HDC hdc,
CONST POLYTEXT *a1,
CONST POLYTEXTW *a1,
int a2
)
{
@ -513,7 +528,7 @@ BOOL
STDCALL
GetLogColorSpaceW(
HCOLORSPACE a0,
LPLOGCOLORSPACE a1,
LPLOGCOLORSPACEW a1,
DWORD a2
)
{
@ -527,7 +542,7 @@ GetLogColorSpaceW(
HCOLORSPACE
STDCALL
CreateColorSpaceW(
LPLOGCOLORSPACE a0
LPLOGCOLORSPACEW a0
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

View file

@ -19,3 +19,41 @@ CreateSolidBrush(
{
return W32kCreateSolidBrush(a0);
}
/*
* @implemented
*/
HBRUSH
STDCALL
CreateBrushIndirect(
CONST LOGBRUSH *a0
)
{
return W32kCreateBrushIndirect(a0);
}
/*
* @implemented
*/
HBRUSH
STDCALL
CreateDIBPatternBrushPt(
CONST VOID *a0,
UINT a1
)
{
return W32kCreateDIBPatternBrushPt(a0,a1);
}
/*
* @implemented
*/
HBRUSH
STDCALL
CreateHatchBrush(
int a0,
COLORREF a1
)
{
return W32kCreateHatchBrush(a0,a1);
}

View file

@ -624,3 +624,266 @@ GetDeviceCaps(
{
return W32kGetDeviceCaps(DC, Index);
}
/*
* @implemented
*/
HPALETTE
STDCALL
CreatePalette(
CONST LOGPALETTE *a0
)
{
return W32kCreatePalette((CONST PLOGPALETTE)a0);
}
/*
* @implemented
*/
COLORREF
STDCALL
GetNearestColor(
HDC a0,
COLORREF a1
)
{
return W32kGetNearestColor(a0,a1);
}
/*
* @implemented
*/
UINT
STDCALL
GetNearestPaletteIndex(
HPALETTE a0,
COLORREF a1
)
{
return W32kGetNearestPaletteIndex(a0,a1);
}
/*
* @implemented
*/
UINT
STDCALL
GetPaletteEntries(
HPALETTE a0,
UINT a1,
UINT a2,
LPPALETTEENTRY a3
)
{
return W32kGetPaletteEntries(a0,a1,a2,a3);
}
/*
* @implemented
*/
UINT
STDCALL
GetSystemPaletteEntries(
HDC a0,
UINT a1,
UINT a2,
LPPALETTEENTRY a3
)
{
return W32kGetSystemPaletteEntries(a0,a1,a2,a3);
}
/*
* @implemented
*/
BOOL
STDCALL
RestoreDC(
HDC a0,
int a1
)
{
return W32kRestoreDC(a0,a1);
}
/*
* @implemented
*/
int
STDCALL
SaveDC(
HDC a0
)
{
return W32kSaveDC(a0);
}
/*
* @implemented
*/
UINT
STDCALL
SetPaletteEntries(
HPALETTE a0,
UINT a1,
UINT a2,
CONST PALETTEENTRY *a3
)
{
return W32kSetPaletteEntries(a0,a1,a2,(CONST PPALETTEENTRY)a3);
}
/*
* @implemented
*/
BOOL
STDCALL
GetWorldTransform(
HDC hdc,
LPXFORM a1
)
{
return W32kGetWorldTransform(hdc,a1);
}
/*
* @implemented
*/
BOOL
STDCALL
SetWorldTransform(
HDC a0,
CONST XFORM *a1
)
{
return W32kSetWorldTransform(a0,(CONST PXFORM)a1);
}
/*
* @implemented
*/
BOOL
STDCALL
ModifyWorldTransform(
HDC a0,
CONST XFORM *a1,
DWORD a2
)
{
return W32kModifyWorldTransform(a0,(CONST PXFORM)a1,a2);
}
/*
* @implemented
*/
BOOL
STDCALL
CombineTransform(
LPXFORM a0,
CONST XFORM *a1,
CONST XFORM *a2
)
{
return W32kCombineTransform(a0,(CONST PXFORM)a1,(CONST PXFORM)a2);
}
/*
* @implemented
*/
UINT
STDCALL
SetDIBColorTable(
HDC hdc,
UINT a1,
UINT a2,
CONST RGBQUAD *a3
)
{
return W32kSetDIBColorTable(hdc,a1,a2,(CONST PRGBQUAD)a3);
}
/*
* @implemented
*/
HPALETTE
STDCALL
CreateHalftonePalette(
HDC hdc
)
{
return W32kCreateHalftonePalette(hdc);
}
/*
* @implemented
*/
BOOL
STDCALL
SetViewportExtEx(
HDC a0,
int a1,
int a2,
LPSIZE a3
)
{
return W32kSetViewportExtEx(a0,a1,a2,a3);
}
/*
* @implemented
*/
BOOL
STDCALL
SetWindowExtEx(
HDC a0,
int a1,
int a2,
LPSIZE a3
)
{
return W32kSetWindowExtEx(a0,a1,a2,a3);
}
/*
* @implemented
*/
BOOL
STDCALL
OffsetWindowOrgEx(
HDC a0,
int a1,
int a2,
LPPOINT a3
)
{
return W32kOffsetWindowOrgEx(a0,a1,a2,a3);
}
/*
* @implemented
*/
BOOL
STDCALL
SetBitmapDimensionEx(
HBITMAP a0,
int a1,
int a2,
LPSIZE a3
)
{
return W32kSetBitmapDimensionEx(a0,a1,a2,a3);
}
/*
* @implemented
*/
BOOL
STDCALL
GetDCOrgEx(
HDC a0,
LPPOINT a1
)
{
return W32kGetDCOrgEx(a0,a1);
}

View file

@ -8,6 +8,26 @@
#include <win32k/kapi.h>
/*
* @implemented
*/
BOOL
STDCALL
Arc(
HDC a0,
int a1,
int a2,
int a3,
int a4,
int a5,
int a6,
int a7,
int a8
)
{
return W32kArc(a0,a1,a2,a3,a4,a5,a6,a7,a8);
}
/*
* @implemented
*/
@ -66,3 +86,67 @@ Polyline( HDC hdc, CONST POINT *lppt, int cPoints )
{
return W32kPolyline(hdc, (CONST LPPOINT) lppt, cPoints);
}
/*
* @implemented
*/
BOOL
STDCALL
ArcTo(
HDC hdc,
int a1,
int a2,
int a3,
int a4,
int a5,
int a6,
int a7,
int a8
)
{
return W32kArcTo(hdc,a1,a2,a3,a4,a5,a6,a7,a8);
}
/*
* @implemented
*/
BOOL
STDCALL
PolyBezier(
HDC a0,
CONST POINT *a1,
DWORD a2
)
{
return PolyBezier(a0,(CONST PPOINT)a1,a2);
}
/*
* @implemented
*/
BOOL
STDCALL
PolyBezierTo(
HDC a0,
CONST POINT *a1,
DWORD a2
)
{
return PolyBezierTo(a0,(CONST PPOINT)a1,a2);
}
/*
* @unimplemented
*/
BOOL
STDCALL
PolylineTo(
HDC a0,
CONST POINT *a1,
DWORD a2
)
{
return PolyBezierTo(a0,(CONST PPOINT)a1,a2);
}

View file

@ -240,3 +240,30 @@ FillRgn(
{
return W32kFillRgn(a0, a1, a2);
}
/*
* @implemented
*/
BOOL
STDCALL
PtInRegion(
HRGN a0,
int a1,
int a2
)
{
return W32kPtInRegion(a0,a1,a2);
}
/*
* @implemented
*/
BOOL
STDCALL
RectInRegion(
HRGN a0,
CONST RECT *a1
)
{
return W32kRectInRegion(a0,(CONST PRECT)a1);
}

View file

@ -1,4 +1,4 @@
/* $Id: stubs.c,v 1.52 2003/07/10 18:50:51 chorns Exp $
/* $Id: stubs.c,v 1.53 2003/08/05 15:41:02 weiden Exp $
*
* KERNEL32.DLL stubs (unimplemented functions)
* Remove from this file, if you implement them.
@ -425,7 +425,7 @@ GetCurrencyFormatW (
LCID Locale,
DWORD dwFlags,
LPCWSTR lpValue,
CONST CURRENCYFMT * lpFormat,
CONST CURRENCYFMTW * lpFormat,
LPWSTR lpCurrencyStr,
int cchCurrency
)
@ -444,7 +444,7 @@ GetCurrencyFormatA (
LCID Locale,
DWORD dwFlags,
LPCSTR lpValue,
CONST CURRENCYFMT * lpFormat,
CONST CURRENCYFMTA * lpFormat,
LPSTR lpCurrencyStr,
int cchCurrency
)
@ -550,7 +550,7 @@ GetNumberFormatW (
LCID Locale,
DWORD dwFlags,
LPCWSTR lpValue,
CONST NUMBERFMT * lpFormat,
CONST NUMBERFMTW * lpFormat,
LPWSTR lpNumberStr,
int cchNumber
)
@ -569,7 +569,7 @@ GetNumberFormatA (
LCID Locale,
DWORD dwFlags,
LPCSTR lpValue,
CONST NUMBERFMT * lpFormat,
CONST NUMBERFMTA * lpFormat,
LPSTR lpNumberStr,
int cchNumber
)

View file

@ -1,4 +1,4 @@
/* $Id: proc.c,v 1.54 2003/07/10 18:50:51 chorns Exp $
/* $Id: proc.c,v 1.55 2003/08/05 15:41:02 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -22,7 +22,7 @@
WaitForInputIdleType lpfnGlobalRegisterWaitForInputIdle;
LPSTARTUPINFO lpLocalStartupInfo = NULL;
LPSTARTUPINFOA lpLocalStartupInfo = NULL;
VOID STDCALL
RegisterWaitForInputIdle(WaitForInputIdleType lpfnRegisterWaitForInputIdle);

View file

@ -1,4 +1,4 @@
/* $Id: open.c,v 1.15 2003/07/11 21:57:54 royce Exp $
/* $Id: open.c,v 1.16 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -358,7 +358,7 @@ BOOL __fileno_init(void)
ULONG count = 0, i;
HANDLE* pFile;
char* pmode;
STARTUPINFO StInfo;
STARTUPINFOA StInfo;
GetStartupInfoA(&StInfo);
if (StInfo.lpReserved2 && StInfo.cbReserved2 >= sizeof(ULONG)) {

View file

@ -48,7 +48,7 @@ int add(char* name)
int expand(char* name, int flag)
{
char* s;
WIN32_FIND_DATA fd;
WIN32_FIND_DATAA fd;
HANDLE hFile;
BOOLEAN first = TRUE;
char buffer[256];

View file

@ -1,4 +1,4 @@
/* $Id: _system.c,v 1.7 2003/07/11 21:58:09 royce Exp $
/* $Id: _system.c,v 1.8 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -24,7 +24,7 @@ int system(const char *command)
char *szComSpec = NULL;
PROCESS_INFORMATION ProcessInformation;
STARTUPINFO StartupInfo;
STARTUPINFOA StartupInfo;
char *s;
BOOL result;
@ -80,8 +80,8 @@ int system(const char *command)
//command file has invalid format ENOEXEC
memset (&StartupInfo, 0, sizeof(STARTUPINFO));
StartupInfo.cb = sizeof(STARTUPINFO);
memset (&StartupInfo, 0, sizeof(StartupInfo));
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved= NULL;
StartupInfo.dwFlags = 0;
StartupInfo.wShowWindow = SW_SHOWDEFAULT;

View file

@ -1,4 +1,4 @@
/* $Id: process.c,v 1.6 2003/07/16 02:45:24 royce Exp $ */
/* $Id: process.c,v 1.7 2003/08/05 15:41:03 weiden Exp $ */
#include <msvcrt/process.h>
#include <msvcrt/stdlib.h>
#include <msvcrt/string.h>
@ -163,7 +163,7 @@ valisttos(const char* arg0, va_list alist, char delim)
static int
do_spawn(int mode, const char* cmdname, const char* args, const char* envp)
{
STARTUPINFO StartupInfo;
STARTUPINFOA StartupInfo;
PROCESS_INFORMATION ProcessInformation;
char* fmode;
HANDLE* hFile;
@ -191,8 +191,8 @@ do_spawn(int mode, const char* cmdname, const char* args, const char* envp)
return -1;
}
memset (&StartupInfo, 0, sizeof(STARTUPINFO));
StartupInfo.cb = sizeof(STARTUPINFO);
memset (&StartupInfo, 0, sizeof(StartupInfo));
StartupInfo.cb = sizeof(StartupInfo);
for (last = i = 0; i < maxfno; i++)
{

View file

@ -1,4 +1,4 @@
/* $Id: desktop.c,v 1.16 2003/07/25 23:02:21 royce Exp $
/* $Id: desktop.c,v 1.17 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
@ -46,10 +46,10 @@ SystemParametersInfoW(UINT uiAction,
PVOID pvParam,
UINT fWinIni)
{
NONCLIENTMETRICS *nclm;
NONCLIENTMETRICSW *nclm;
/* FIXME: This should be obtained from the registry */
static LOGFONT CaptionFont =
static LOGFONTW CaptionFont =
{ 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, OEM_CHARSET,
0, 0, DEFAULT_QUALITY, FF_MODERN, L"Bitstream Vera Sans Bold" };
@ -66,8 +66,8 @@ SystemParametersInfoW(UINT uiAction,
case SPI_GETNONCLIENTMETRICS:
{
nclm = pvParam;
memcpy(&nclm->lfCaptionFont, &CaptionFont, sizeof(LOGFONT));
memcpy(&nclm->lfSmCaptionFont, &CaptionFont, sizeof(LOGFONT));
memcpy(&nclm->lfCaptionFont, &CaptionFont, sizeof(CaptionFont));
memcpy(&nclm->lfSmCaptionFont, &CaptionFont, sizeof(CaptionFont));
return(TRUE);
}
}

View file

@ -1,4 +1,4 @@
/* $Id: class.c,v 1.21 2003/07/27 21:35:50 dwelch Exp $
/* $Id: class.c,v 1.22 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
@ -10,9 +10,10 @@
*/
#include <windows.h>
#include <user32.h>
#include <string.h>
#include <stdlib.h>
#include <debug.h>
/*
* @unimplemented
*/
@ -79,32 +80,21 @@ GetClassInfoW(
DWORD STDCALL
GetClassLongA(HWND hWnd, int nIndex)
{
switch (nIndex)
{
case GCL_WNDPROC:
UNIMPLEMENTED;
return(0);
case GCL_MENUNAME:
UNIMPLEMENTED;
return(0);
default:
return(GetClassLongW(hWnd, nIndex));
}
return(NtUserGetClassLong(hWnd, nIndex, TRUE));
}
/*
* @implemented
*/
DWORD STDCALL
GetClassLongW(HWND hWnd, int nIndex)
{
return(NtUserGetClassLong(hWnd, nIndex));
return(NtUserGetClassLong(hWnd, nIndex, FALSE));
}
/*
* @unimplemented
* @implemented
*/
int
STDCALL
@ -113,13 +103,27 @@ GetClassNameA(
LPSTR lpClassName,
int nMaxCount)
{
UNIMPLEMENTED;
return 0;
int result;
LPWSTR ClassName;
NTSTATUS Status;
ClassName = RtlAllocateHeap(RtlGetProcessHeap(),HEAP_ZERO_MEMORY,nMaxCount);
result = NtUserGetClassName(hWnd, ClassName, nMaxCount);
Status = RtlUnicodeToMultiByteN (lpClassName,
result,
NULL,
ClassName,
result);
if (!NT_SUCCESS(Status))
{
return 0;
}
RtlFreeHeap(RtlGetProcessHeap(),0,ClassName);
return result;
}
/*
* @unimplemented
* @implemented
*/
int
STDCALL
@ -128,8 +132,13 @@ GetClassNameW(
LPWSTR lpClassName,
int nMaxCount)
{
UNIMPLEMENTED;
return 0;
int result;
LPWSTR ClassName;
ClassName = RtlAllocateHeap(RtlGetProcessHeap(),HEAP_ZERO_MEMORY,nMaxCount);
result = NtUserGetClassName(hWnd, ClassName, nMaxCount);
RtlCopyMemory(ClassName,lpClassName,result);
RtlFreeHeap(RtlGetProcessHeap(),0,ClassName);
return result;
}
@ -156,7 +165,7 @@ GetClassWord(
LONG STDCALL
GetWindowLongA(HWND hWnd, int nIndex)
{
return NtUserGetWindowLong(hWnd, nIndex);
return NtUserGetWindowLong(hWnd, nIndex, TRUE);
}
@ -166,7 +175,7 @@ GetWindowLongA(HWND hWnd, int nIndex)
LONG STDCALL
GetWindowLongW(HWND hWnd, int nIndex)
{
return NtUserGetWindowLong(hWnd, nIndex);
return NtUserGetWindowLong(hWnd, nIndex, FALSE);
}
@ -223,7 +232,7 @@ RegisterClassA(CONST WNDCLASSA *lpWndClass)
{
WNDCLASSEXA Class;
RtlMoveMemory(&Class.style, lpWndClass, sizeof(WNDCLASS));
RtlMoveMemory ( &Class.style, lpWndClass, sizeof(WNDCLASSA));
Class.cbSize = sizeof(WNDCLASSEXA);
Class.hIconSm = INVALID_HANDLE_VALUE;
return RegisterClassExA(&Class);
@ -236,49 +245,14 @@ RegisterClassA(CONST WNDCLASSA *lpWndClass)
ATOM STDCALL
RegisterClassExA(CONST WNDCLASSEXA *lpwcx)
{
UNICODE_STRING MenuName;
UNICODE_STRING ClassName;
WNDCLASSEXW Class;
RTL_ATOM Atom;
RtlMoveMemory(&Class, lpwcx, sizeof(WNDCLASSEXA));
if (HIWORD((ULONG)lpwcx->lpszMenuName) != 0)
{
if (!RtlCreateUnicodeStringFromAsciiz(&MenuName, (PCSZ)lpwcx->lpszMenuName))
{
RtlFreeUnicodeString(&MenuName);
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return (ATOM)0;
}
Class.lpszMenuName = MenuName.Buffer;
}
if (HIWORD((ULONG)lpwcx->lpszClassName) != 0)
{
if (!RtlCreateUnicodeStringFromAsciiz(&ClassName, (PCSZ)lpwcx->lpszClassName))
{
RtlFreeUnicodeString(&ClassName);
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return (ATOM)0;
}
Class.lpszClassName = ClassName.Buffer;
}
Atom = NtUserRegisterClassExWOW(&Class,
Atom = NtUserRegisterClassExWOW(0,(WNDCLASSEXA*)lpwcx,
FALSE,
0,
0,
0,
0);
if (HIWORD((ULONG)lpwcx->lpszMenuName) != 0)
{
RtlFreeUnicodeString(&ClassName);
}
if (HIWORD((ULONG)lpwcx->lpszClassName )!= 0)
{
RtlFreeUnicodeString(&MenuName);
}
return (ATOM)Atom;
}
@ -292,8 +266,8 @@ RegisterClassExW(CONST WNDCLASSEXW *lpwcx)
RTL_ATOM Atom;
Atom = NtUserRegisterClassExWOW((WNDCLASSEXW*)lpwcx,
TRUE,
0,
TRUE,
0,
0,
0);
@ -318,7 +292,7 @@ RegisterClassW(CONST WNDCLASSW *lpWndClass)
/*
* @unimplemented
* @mplemented
*/
DWORD
STDCALL
@ -327,13 +301,12 @@ SetClassLongA(
int nIndex,
LONG dwNewLong)
{
UNIMPLEMENTED;
return 0;
return(NtUserSetClassLong(hWnd, nIndex, dwNewLong, TRUE));
}
/*
* @unimplemented
* @implemented
*/
DWORD
STDCALL
@ -342,8 +315,7 @@ SetClassLongW(
int nIndex,
LONG dwNewLong)
{
UNIMPLEMENTED;
return 0;
return(NtUserSetClassLong(hWnd, nIndex, dwNewLong, FALSE));
}

View file

@ -1,4 +1,4 @@
/* $Id: defwnd.c,v 1.58 2003/08/03 01:48:53 rcampbell Exp $
/* $Id: defwnd.c,v 1.59 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
@ -393,7 +393,7 @@ static void UserDrawCaptionNC( HDC hDC, RECT *rect, HWND hWnd,
DWORD style, BOOL active )
{
RECT r = *rect;
char buffer[256];
WCHAR buffer[256];
/* FIXME: Implement and Use DrawCaption() */
SelectObject( hDC, GetSysColorBrush(active ? COLOR_ACTIVECAPTION : COLOR_INACTIVECAPTION) );
@ -410,12 +410,12 @@ static void UserDrawCaptionNC( HDC hDC, RECT *rect, HWND hWnd,
UserDrawCaptionButton( hWnd, hDC, FALSE, DFCS_CAPTIONMIN);
UserDrawCaptionButton( hWnd, hDC, FALSE, DFCS_CAPTIONMAX);
}
if (GetWindowTextA( hWnd, buffer, sizeof(buffer) ))
if (GetWindowTextW( hWnd, buffer, sizeof(buffer)/sizeof(buffer[0]) ))
{
NONCLIENTMETRICS nclm;
NONCLIENTMETRICSW nclm;
HFONT hFont, hOldFont;
nclm.cbSize = sizeof(NONCLIENTMETRICS);
nclm.cbSize = sizeof(nclm);
SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, 0, &nclm, 0);
SetTextColor(hDC, SysColours[ active ? COLOR_CAPTIONTEXT : COLOR_INACTIVECAPTIONTEXT]);
SetBkMode( hDC, TRANSPARENT );
@ -424,7 +424,7 @@ static void UserDrawCaptionNC( HDC hDC, RECT *rect, HWND hWnd,
else
hFont = CreateFontIndirectW(&nclm.lfCaptionFont);
hOldFont = SelectObject(hDC, hFont);
TextOutA(hDC, r.left + (GetSystemMetrics(SM_CXDLGFRAME) * 2), rect->top + (nclm.lfCaptionFont.lfHeight / 2), buffer, strlen(buffer));
TextOutW(hDC, r.left + (GetSystemMetrics(SM_CXDLGFRAME) * 2), rect->top + (nclm.lfCaptionFont.lfHeight / 2), buffer, wcslen(buffer));
DeleteObject (SelectObject (hDC, hOldFont));
}
}

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: menu.c,v 1.15 2003/08/04 23:52:25 weiden Exp $
/* $Id: menu.c,v 1.16 2003/08/05 15:41:03 weiden Exp $
*
* PROJECT: ReactOS user32.dll
* FILE: lib/user32/windows/menu.c
@ -171,53 +171,59 @@ STATIC HEAP_strdupA2W ( HANDLE hHeap, LPWSTR* ppszW, LPCSTR lpszA, UINT* NewLen
*
* Parse an extended menu resource and add items to the menu.
* Return a pointer to the end of the resource.
*
* FIXME - should we be passing an LPCSTR to a predominantly UNICODE function?
*/
static LPCSTR MENUEX_ParseResource( LPCSTR res, HMENU hMenu)
{
WORD resinfo;
do {
MENUITEMINFO mii;
WORD resinfo;
do
{
MENUITEMINFOW mii;
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_STATE | MIIM_ID | MIIM_TYPE;
mii.fType = GET_DWORD(res);
res += sizeof(DWORD);
mii.fState = GET_DWORD(res);
res += sizeof(DWORD);
mii.wID = GET_DWORD(res);
res += sizeof(DWORD);
resinfo = GET_WORD(res);
res += sizeof(WORD);
/* Align the text on a word boundary. */
res += (~((int)res - 1)) & 1;
mii.dwTypeData = (LPWSTR) res;
res += (1 + strlenW(mii.dwTypeData)) * sizeof(WCHAR);
/* Align the following fields on a dword boundary. */
res += (~((int)res - 1)) & 3;
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_STATE | MIIM_ID | MIIM_TYPE;
mii.fType = GET_DWORD(res);
res += sizeof(DWORD);
mii.fState = GET_DWORD(res);
res += sizeof(DWORD);
mii.wID = GET_DWORD(res);
res += sizeof(DWORD);
resinfo = GET_WORD(res);
res += sizeof(WORD);
/* Align the text on a word boundary. */
res += (~((int)res - 1)) & 1;
mii.dwTypeData = (LPWSTR) res;
res += (1 + strlenW(mii.dwTypeData)) * sizeof(WCHAR);
/* Align the following fields on a dword boundary. */
res += (~((int)res - 1)) & 3;
if (resinfo & 1) { /* Pop-up? */
/* DWORD helpid = GET_DWORD(res); FIXME: use this. */
res += sizeof(DWORD);
mii.hSubMenu = CreatePopupMenu();
if (!mii.hSubMenu)
return NULL;
if (!(res = MENUEX_ParseResource(res, mii.hSubMenu))) {
DestroyMenu(mii.hSubMenu);
return NULL;
}
mii.fMask |= MIIM_SUBMENU;
mii.fType |= MF_POPUP;
}
else if(!*mii.dwTypeData && !(mii.fType & MF_SEPARATOR))
if (resinfo & 1) /* Pop-up? */
{
DbgPrint("WARN: Converting NULL menu item %04x, type %04x to SEPARATOR\n",
mii.wID, mii.fType);
mii.fType |= MF_SEPARATOR;
/* DWORD helpid = GET_DWORD(res); FIXME: use this. */
res += sizeof(DWORD);
mii.hSubMenu = CreatePopupMenu();
if (!mii.hSubMenu)
return NULL;
if (!(res = MENUEX_ParseResource(res, mii.hSubMenu)))
{
DestroyMenu(mii.hSubMenu);
return NULL;
}
mii.fMask |= MIIM_SUBMENU;
mii.fType |= MF_POPUP;
}
InsertMenuItemW(hMenu, -1, MF_BYPOSITION, &mii);
} while (!(resinfo & MF_END));
return res;
else if(!*mii.dwTypeData && !(mii.fType & MF_SEPARATOR))
{
DbgPrint("WARN: Converting NULL menu item %04x, type %04x to SEPARATOR\n",
mii.wID, mii.fType);
mii.fType |= MF_SEPARATOR;
}
InsertMenuItemW(hMenu, -1, MF_BYPOSITION, &mii);
}
while (!(resinfo & MF_END));
return res;
}
/**********************************************************************
@ -751,7 +757,7 @@ GetMenuItemInfoA(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFO lpmii)
LPMENUITEMINFOA lpmii)
{
UNIMPLEMENTED;
return FALSE;
@ -767,7 +773,7 @@ GetMenuItemInfoW(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFO lpmii)
LPMENUITEMINFOW lpmii)
{
UNIMPLEMENTED;
return FALSE;
@ -892,7 +898,7 @@ InsertMenuItemA(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPCMENUITEMINFO lpmii)
LPCMENUITEMINFOA lpmii)
{
MENUITEMINFOW mi;
WINBOOL res = FALSE;
@ -935,7 +941,7 @@ InsertMenuItemW(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPCMENUITEMINFO lpmii)
LPCMENUITEMINFOW lpmii)
{
MENUITEMINFOW mi;
WINBOOL res = FALSE;
@ -1250,7 +1256,7 @@ SetMenuItemInfoA(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFO lpmii)
LPMENUITEMINFOA lpmii)
{
UNIMPLEMENTED;
return FALSE;
@ -1266,7 +1272,7 @@ SetMenuItemInfoW(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFO lpmii)
LPMENUITEMINFOW lpmii)
{
UNIMPLEMENTED;
return FALSE;

View file

@ -1,4 +1,4 @@
/* $Id: window.c,v 1.50 2003/08/04 16:56:40 gdalsnes Exp $
/* $Id: window.c,v 1.51 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
@ -45,6 +45,7 @@ User32SendNCCALCSIZEMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
DPRINT("Wrong length.\n");
return(STATUS_INFO_LENGTH_MISMATCH);
}
/* FIXME: handle ANSI windows vs Unicode windows */
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
DPRINT("Proc %X\n", Proc);
/* Call the window procedure; notice kernel messages are always unicode. */
@ -80,6 +81,7 @@ User32SendGETMINMAXINFOMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
DPRINT("Wrong length.\n");
return(STATUS_INFO_LENGTH_MISMATCH);
}
/* FIXME: handle ANSI windows vs Unicode windows */
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
DPRINT("Proc %X\n", Proc);
/* Call the window procedure; notice kernel messages are always unicode. */
@ -105,6 +107,7 @@ User32SendCREATEMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
DPRINT("Wrong length.\n");
return(STATUS_INFO_LENGTH_MISMATCH);
}
/* FIXME: handle ANSI windows vs Unicode windows */
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
DPRINT("Proc %X\n", Proc);
/* Call the window procedure; notice kernel messages are always unicode. */
@ -129,6 +132,7 @@ User32SendNCCREATEMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
DPRINT("Wrong length.\n");
return(STATUS_INFO_LENGTH_MISMATCH);
}
/* FIXME: handle ANSI windows vs Unicode windows */
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
DPRINT("Proc %X\n", Proc);
/* Call the window procedure; notice kernel messages are always unicode. */
@ -153,6 +157,7 @@ User32SendWINDOWPOSCHANGINGMessageForKernel(PVOID Arguments, ULONG ArgumentLengt
DPRINT("Wrong length.\n");
return(STATUS_INFO_LENGTH_MISMATCH);
}
/* FIXME: handle ANSI windows vs Unicode windows */
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
DPRINT("Proc %X\n", Proc);
/* Call the window procedure; notice kernel messages are always unicode. */
@ -177,6 +182,7 @@ User32SendWINDOWPOSCHANGEDMessageForKernel(PVOID Arguments, ULONG ArgumentLength
DPRINT("Wrong length.\n");
return(STATUS_INFO_LENGTH_MISMATCH);
}
/* FIXME: handle ANSI windows vs Unicode windows */
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
DPRINT("Proc %X\n", Proc);
/* Call the window procedure; notice kernel messages are always unicode. */
@ -201,6 +207,7 @@ User32SendSTYLECHANGINGMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
DPRINT("Wrong length.\n");
return(STATUS_INFO_LENGTH_MISMATCH);
}
/* FIXME: handle ANSI windows vs Unicode windows */
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
DPRINT("Proc %X\n", Proc);
/* Call the window procedure; notice kernel messages are always unicode. */
@ -225,6 +232,7 @@ User32SendSTYLECHANGEDMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
DPRINT("Wrong length.\n");
return(STATUS_INFO_LENGTH_MISMATCH);
}
/* FIXME: handle ANSI windows vs Unicode windows */
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
DPRINT("Proc %X\n", Proc);
/* Call the window procedure; notice kernel messages are always unicode. */
@ -265,6 +273,7 @@ User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
}
if (CallbackArgs->Proc == NULL)
{
/* FIXME: handle ANSI windows vs Unicode windows */
CallbackArgs->Proc = (WNDPROC)GetWindowLong(CallbackArgs->Wnd,
GWL_WNDPROC);
}
@ -1257,7 +1266,7 @@ IsChild(HWND hWndParent,
WINBOOL STDCALL
IsIconic(HWND hWnd)
{
return (NtUserGetWindowLong( hWnd, GWL_STYLE ) & WS_MINIMIZE) != 0;
return (NtUserGetWindowLong( hWnd, GWL_STYLE, FALSE) & WS_MINIMIZE) != 0;
}
@ -1267,8 +1276,7 @@ IsIconic(HWND hWnd)
WINBOOL STDCALL
IsWindow(HWND hWnd)
{
DWORD WndProc = NtUserGetWindowLong(hWnd, GWL_WNDPROC);
DWORD WndProc = NtUserGetWindowLong(hWnd, GWL_WNDPROC, FALSE);
return (0 != WndProc || ERROR_INVALID_HANDLE != GetLastError());
}

View file

@ -10,7 +10,8 @@
typedef struct _WNDCLASS_OBJECT
{
WNDCLASSEX Class;
WNDCLASSEXA ClassA;
WNDCLASSEXW ClassW;
BOOL Unicode;
LIST_ENTRY ListEntry;
} WNDCLASS_OBJECT, *PWNDCLASS_OBJECT;
@ -33,12 +34,13 @@ NTSTATUS FASTCALL
ClassReferenceClassByNameOrAtom(PWNDCLASS_OBJECT *Class,
LPWSTR ClassNameOrAtom);
PWNDCLASS_OBJECT FASTCALL
W32kCreateClass(LPWNDCLASSEXW lpwcx,
W32kCreateClass(CONST WNDCLASSEXW *lpwcxw,
CONST WNDCLASSEXA *lpwcxa,
BOOL bUnicodeClass,
RTL_ATOM ClassName);
RTL_ATOM Atom);
struct _WINDOW_OBJECT;
ULONG FASTCALL
W32kGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset);
W32kGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
#endif /* __WIN32K_CLASS_H */

View file

@ -48,7 +48,7 @@ DWORD
STDCALL
NtUserBuildMenuItemList(
HMENU hMenu,
LPCMENUITEMINFO* lpmiil,
LPCMENUITEMINFOW* lpmiil,
ULONG nBufSize,
DWORD Reserved);
@ -97,7 +97,8 @@ NtUserInsertMenuItem(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFOW lpmii);
LPCMENUITEMINFOW lpmii);
BOOL
STDCALL
@ -210,4 +211,4 @@ NtUserTrackPopupMenuEx(
#endif /* __WIN32K_MENU_H */
/* EOF */
/* EOF */

View file

@ -91,7 +91,9 @@ typedef struct _WINDOW_OBJECT
PSCROLLBARINFO pVScroll;
PSCROLLBARINFO wExtra;
LONG UserData;
WNDPROC WndProc;
BOOL Unicode;
WNDPROC WndProcA;
WNDPROC WndProcW;
PETHREAD OwnerThread;
HWND hWndOwner; /* handle to the owner window (why not use pointer to window? wine doesn't...)*/
HWND hWndLastPopup; /* handle to last active popup window (why not use pointer to window? wine doesn't...)*/

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: class.c,v 1.21 2003/08/04 16:54:54 gdalsnes Exp $
/* $Id: class.c,v 1.22 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -68,17 +68,17 @@ ClassReferenceClassByAtom(PWNDCLASS_OBJECT* Class,
CurrentEntry = Process->ClassListHead.Flink;
while (CurrentEntry != &Process->ClassListHead)
{
Current = CONTAINING_RECORD(CurrentEntry, WNDCLASS_OBJECT, ListEntry);
Current = CONTAINING_RECORD(CurrentEntry, WNDCLASS_OBJECT, ListEntry);
if (Current->Class.lpszClassName == (LPWSTR)(ULONG)Atom)
if (Current->ClassW.lpszClassName == (LPWSTR)(ULONG)Atom)
{
*Class = Current;
ObmReferenceObject(Current);
ExReleaseFastMutexUnsafe (&Process->ClassListLock);
return(STATUS_SUCCESS);
*Class = Current;
ObmReferenceObject(Current);
ExReleaseFastMutexUnsafe (&Process->ClassListLock);
return(STATUS_SUCCESS);
}
CurrentEntry = CurrentEntry->Flink;
CurrentEntry = CurrentEntry->Flink;
}
ExReleaseFastMutexUnsafe (&Process->ClassListLock);
@ -162,14 +162,37 @@ NtUserGetClassInfo(IN LPWSTR ClassName,
return(0);
}
DWORD STDCALL
NtUserGetClassName(DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2)
ULONG FASTCALL
W32kGetClassName(struct _WINDOW_OBJECT *WindowObject,
LPWSTR lpClassName,
int nMaxCount)
{
UNIMPLEMENTED;
return(0);
int length;
length = wcslen(WindowObject->Class->ClassW.lpszClassName);
if (length > nMaxCount)
{
length = nMaxCount;
}
wcsncpy(lpClassName,WindowObject->Class->ClassW.lpszClassName,length+1);
return length;
}
DWORD STDCALL
NtUserGetClassName(HWND hWnd,
LPWSTR lpClassName,
int nMaxCount)
{
PWINDOW_OBJECT WindowObject;
LONG Ret;
WindowObject = W32kGetWindowObject(hWnd);
if (WindowObject == NULL)
{
return(0);
}
Ret = W32kGetClassName(WindowObject, lpClassName, nMaxCount);
W32kReleaseWindowObject(WindowObject);
return(Ret);
}
DWORD STDCALL
@ -182,38 +205,88 @@ NtUserGetWOWClass(DWORD Unknown0,
}
PWNDCLASS_OBJECT FASTCALL
W32kCreateClass(LPWNDCLASSEXW lpwcx,
BOOL bUnicodeClass,
RTL_ATOM Atom)
W32kCreateClass(CONST WNDCLASSEXW *lpwcxw,
CONST WNDCLASSEXA *lpwcxa,
BOOL bUnicodeClass,
RTL_ATOM Atom)
{
PWNDCLASS_OBJECT ClassObject;
WORD objectSize;
LPTSTR namePtr;
LPWSTR namePtrW;
LPSTR namePtrA;
ULONG menulenA=1, menulenW=sizeof(WCHAR);
objectSize = sizeof(WNDCLASS_OBJECT) +
(lpwcx->lpszMenuName != 0 ? ((wcslen (lpwcx->lpszMenuName) + 1) * 2) : 0);
/* FIXME - how to handle INT resources? */
/* FIXME - lpszClassName = Atom? is that right */
if ( bUnicodeClass )
{
if ( lpwcxw->lpszMenuName )
{
menulenW = (wcslen(lpwcxw->lpszMenuName) + 1) * sizeof(WCHAR);
RtlUnicodeToMultiByteSize ( &menulenA, lpwcxw->lpszMenuName, menulenW );
}
}
else
{
if ( lpwcxa->lpszMenuName )
{
menulenA = strlen(lpwcxa->lpszMenuName) + 1;
RtlMultiByteToUnicodeSize ( &menulenW, lpwcxa->lpszMenuName, menulenA );
}
}
objectSize = sizeof(WNDCLASS_OBJECT);
ClassObject = ObmCreateObject(NULL, NULL, otClass, objectSize);
if (ClassObject == 0)
{
return(NULL);
}
ClassObject->Class = *lpwcx;
ClassObject->Unicode = bUnicodeClass;
if (lpwcx->lpszMenuName != 0)
if ( bUnicodeClass )
{
namePtr = (LPTSTR)(((PCHAR)ClassObject) + sizeof (WNDCLASS_OBJECT));
ClassObject->Class.lpszMenuName = namePtr;
wcscpy (namePtr, lpwcx->lpszMenuName);
memmove ( &ClassObject->ClassW, lpwcxw, sizeof(ClassObject->ClassW) );
memmove ( &ClassObject->ClassA, &ClassObject->ClassW, sizeof(ClassObject->ClassA) );
ClassObject->ClassA.lpfnWndProc = 0xCCCCCCCC; /*FIXME: figure out what the correct strange value is and what to do with it */
namePtrW = ExAllocatePool(PagedPool, menulenW);
if ( lpwcxw->lpszMenuName )
memmove ( namePtrW, lpwcxw->lpszMenuName, menulenW );
else
*namePtrW = L'\0';
ClassObject->ClassW.lpszMenuName = namePtrW;
namePtrA = ExAllocatePool(PagedPool, menulenA);
if ( *namePtrW )
RtlUnicodeToMultiByteN ( namePtrA, menulenA, NULL, namePtrW, menulenW );
else
*namePtrA = '\0';
ClassObject->ClassA.lpszMenuName = namePtrA;
}
ClassObject->Class.lpszClassName = (LPWSTR)(ULONG)Atom;
else
{
memmove ( &ClassObject->ClassA, lpwcxa, sizeof(ClassObject->ClassA) );
memmove ( &ClassObject->ClassW, &ClassObject->ClassA, sizeof(ClassObject->ClassW) );
ClassObject->ClassW.lpfnWndProc = 0xCCCCCCCC; /* FIXME: figure out what the correct strange value is and what to do with it */
namePtrA = ExAllocatePool(PagedPool, menulenA);
if ( lpwcxa->lpszMenuName )
memmove ( namePtrA, lpwcxa->lpszMenuName, menulenA );
else
*namePtrA = '\0';
ClassObject->ClassA.lpszMenuName = namePtrA;
namePtrW = ExAllocatePool(PagedPool, menulenW);
if ( *namePtrA )
RtlMultiByteToUnicodeN ( namePtrW, menulenW, NULL, namePtrA, menulenA );
else
*namePtrW = L'\0';
ClassObject->ClassW.lpszMenuName = namePtrW;
}
ClassObject->Unicode = bUnicodeClass;
ClassObject->ClassW.lpszClassName = (LPWSTR)(ULONG)Atom;
ClassObject->ClassA.lpszClassName = (LPSTR)(ULONG)Atom;
return(ClassObject);
}
RTL_ATOM STDCALL
NtUserRegisterClassExWOW(LPWNDCLASSEXW lpwcx,
NtUserRegisterClassExWOW(CONST WNDCLASSEXW *lpwcxw,
CONST WNDCLASSEXA *lpwcxa,
BOOL bUnicodeClass,
DWORD Unknown2,
DWORD Unknown3,
DWORD Unknown4,
DWORD Unknown5)
@ -221,7 +294,8 @@ NtUserRegisterClassExWOW(LPWNDCLASSEXW lpwcx,
* FUNCTION:
* Registers a new class with the window manager
* ARGUMENTS:
* lpcx = Win32 extended window class structure
* lpcxw = Win32 extended window class structure (unicode)
* lpcxa = Win32 extended window class structure (ascii)
* bUnicodeClass = Wether to send ANSI or unicode strings
* to window procedures
* RETURNS:
@ -232,6 +306,8 @@ NtUserRegisterClassExWOW(LPWNDCLASSEXW lpwcx,
PWNDCLASS_OBJECT ClassObject;
NTSTATUS Status;
RTL_ATOM Atom;
LPWSTR classname;
int len;
DPRINT("About to open window station handle (0x%X)\n",
PROCESS_WINDOW_STATION());
@ -246,36 +322,83 @@ NtUserRegisterClassExWOW(LPWNDCLASSEXW lpwcx,
PROCESS_WINDOW_STATION());
return((RTL_ATOM)0);
}
if (!IS_ATOM(lpwcx->lpszClassName))
if (bUnicodeClass)
{
if (!IS_ATOM(lpwcxw->lpszClassName))
{
Status = RtlAddAtomToAtomTable(WinStaObject->AtomTable,
(LPWSTR)lpwcxw->lpszClassName,
&Atom);
if (!NT_SUCCESS(Status))
{
ObDereferenceObject(WinStaObject);
DPRINT("Failed adding class name (%wS) to atom table\n",
lpwcxw->lpszClassName);
SetLastNtError(Status);
return((RTL_ATOM)0);
}
}
else
{
Atom = (RTL_ATOM)(ULONG)lpwcxw->lpszClassName;
}
ClassObject = W32kCreateClass(lpwcxw, NULL, bUnicodeClass, Atom);
if (ClassObject == NULL)
{
Status = RtlAddAtomToAtomTable(WinStaObject->AtomTable,
(LPWSTR)lpwcx->lpszClassName,
&Atom);
if (!NT_SUCCESS(Status))
{
ObDereferenceObject(WinStaObject);
DPRINT("Failed adding class name (%wS) to atom table\n",
lpwcx->lpszClassName);
SetLastNtError(Status);
return((RTL_ATOM)0);
if (!IS_ATOM(lpwcxw->lpszClassName))
{
RtlDeleteAtomFromAtomTable(WinStaObject->AtomTable, Atom);
}
ObDereferenceObject(WinStaObject);
DPRINT("Failed creating window class object\n");
SetLastNtError(STATUS_INSUFFICIENT_RESOURCES);
return((RTL_ATOM)0);
}
}
}
else
{
if (!IS_ATOM(lpwcxa->lpszClassName))
{
len = strlen(lpwcxa->lpszClassName);
classname = ExAllocatePool(PagedPool, ((len + 1) * sizeof(WCHAR)));
Status = RtlMultiByteToUnicodeN (classname,
((len + 1) * sizeof(WCHAR)),
NULL,
lpwcxa->lpszClassName,
len);
if (!NT_SUCCESS(Status))
{
return 0;
}
Status = RtlAddAtomToAtomTable(WinStaObject->AtomTable,
(LPWSTR)classname,
&Atom);
if (!NT_SUCCESS(Status))
{
ObDereferenceObject(WinStaObject);
DPRINT("Failed adding class name (%wS) to atom table\n",
lpwcxa->lpszClassName);
SetLastNtError(Status);
return((RTL_ATOM)0);
}
}
else
{
Atom = (RTL_ATOM)(ULONG)lpwcxa->lpszClassName;
}
ClassObject = W32kCreateClass(NULL, lpwcxa, bUnicodeClass, Atom);
if (ClassObject == NULL)
{
Atom = (RTL_ATOM)(ULONG)lpwcx->lpszClassName;
}
ClassObject = W32kCreateClass(lpwcx, bUnicodeClass, Atom);
if (ClassObject == NULL)
{
if (!IS_ATOM(lpwcx->lpszClassName))
{
RtlDeleteAtomFromAtomTable(WinStaObject->AtomTable, Atom);
if (!IS_ATOM(lpwcxa->lpszClassName))
{
RtlDeleteAtomFromAtomTable(WinStaObject->AtomTable, Atom);
}
ObDereferenceObject(WinStaObject);
DPRINT("Failed creating window class object\n");
SetLastNtError(STATUS_INSUFFICIENT_RESOURCES);
return((RTL_ATOM)0);
}
ObDereferenceObject(WinStaObject);
DPRINT("Failed creating window class object\n");
SetLastNtError(STATUS_INSUFFICIENT_RESOURCES);
return((RTL_ATOM)0);
}
}
ExAcquireFastMutex(&PsGetWin32Process()->ClassListLock);
InsertTailList(&PsGetWin32Process()->ClassListHead, &ClassObject->ListEntry);
ExReleaseFastMutex(&PsGetWin32Process()->ClassListLock);
@ -286,25 +409,54 @@ NtUserRegisterClassExWOW(LPWNDCLASSEXW lpwcx,
}
ULONG FASTCALL
W32kGetClassLong(PWINDOW_OBJECT WindowObject, ULONG Offset)
W32kGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi)
{
LONG Ret;
switch (Offset)
{
case GCL_STYLE:
Ret = WindowObject->Class->Class.style;
break;
case GCL_CBWNDEXTRA:
Ret = WindowObject->Class->Class.cbWndExtra;
Ret = WindowObject->Class->ClassW.cbWndExtra;
break;
case GCL_CBCLSEXTRA:
Ret = WindowObject->Class->Class.cbClsExtra;
break;
case GCL_HMODULE:
Ret = (ULONG)WindowObject->Class->Class.hInstance;
Ret = WindowObject->Class->ClassW.cbClsExtra;
break;
case GCL_HBRBACKGROUND:
Ret = (ULONG)WindowObject->Class->Class.hbrBackground;
Ret = (ULONG)WindowObject->Class->ClassW.hbrBackground;
break;
case GCL_HCURSOR:
Ret = (ULONG)WindowObject->Class->ClassW.hCursor;
break;
case GCL_HICON:
Ret = (ULONG)WindowObject->Class->ClassW.hIcon;
break;
case GCL_HICONSM:
Ret = (ULONG)WindowObject->Class->ClassW.hIconSm;
break;
case GCL_HMODULE:
Ret = (ULONG)WindowObject->Class->ClassW.hInstance;
break;
case GCL_MENUNAME:
if (Ansi)
{
Ret = (ULONG)WindowObject->Class->ClassA.lpszMenuName;
}
else
{
Ret = (ULONG)WindowObject->Class->ClassW.lpszMenuName;
}
break;
case GCL_STYLE:
Ret = WindowObject->Class->ClassW.style;
break;
case GCL_WNDPROC:
if (WindowObject->Unicode)
{
Ret = (ULONG)WindowObject->Class->ClassW.lpfnWndProc;
}
else
{
Ret = (ULONG)WindowObject->Class->ClassA.lpfnWndProc;
}
break;
default:
Ret = 0;
@ -314,7 +466,7 @@ W32kGetClassLong(PWINDOW_OBJECT WindowObject, ULONG Offset)
}
DWORD STDCALL
NtUserGetClassLong(HWND hWnd, DWORD Offset)
NtUserGetClassLong(HWND hWnd, DWORD Offset, BOOL Ansi)
{
PWINDOW_OBJECT WindowObject;
LONG Ret;
@ -324,17 +476,75 @@ NtUserGetClassLong(HWND hWnd, DWORD Offset)
{
return(0);
}
Ret = W32kGetClassLong(WindowObject, Offset);
Ret = W32kGetClassLong(WindowObject, Offset, Ansi);
W32kReleaseWindowObject(WindowObject);
return(Ret);
}
DWORD STDCALL
NtUserSetClassLong(HWND hWnd, int Index, LONG NewValue, DWORD unk)
void FASTCALL
W32kSetClassLong(PWINDOW_OBJECT WindowObject, ULONG Offset, LONG dwNewLong, BOOL Ansi)
{
UNIMPLEMENTED;
switch (Offset)
{
case GCL_CBWNDEXTRA:
WindowObject->Class->ClassW.cbWndExtra = dwNewLong;
WindowObject->Class->ClassA.cbWndExtra = dwNewLong;
break;
case GCL_CBCLSEXTRA:
WindowObject->Class->ClassW.cbClsExtra = dwNewLong;
WindowObject->Class->ClassA.cbClsExtra = dwNewLong;
break;
case GCL_HBRBACKGROUND:
WindowObject->Class->ClassW.hbrBackground = (HBRUSH)dwNewLong;
WindowObject->Class->ClassA.hbrBackground = (HBRUSH)dwNewLong;
break;
case GCL_HCURSOR:
WindowObject->Class->ClassW.hCursor = (HCURSOR)dwNewLong;
WindowObject->Class->ClassA.hCursor = (HCURSOR)dwNewLong;
break;
case GCL_HICON:
WindowObject->Class->ClassW.hIcon = (HICON)dwNewLong;
WindowObject->Class->ClassA.hIcon = (HICON)dwNewLong;
break;
case GCL_HICONSM:
WindowObject->Class->ClassW.hIconSm = (HICON)dwNewLong;
WindowObject->Class->ClassA.hIconSm = (HICON)dwNewLong;
break;
case GCL_HMODULE:
WindowObject->Class->ClassW.hInstance = (HINSTANCE)dwNewLong;
WindowObject->Class->ClassA.hInstance = (HINSTANCE)dwNewLong;
break;
/*case GCL_MENUNAME:
WindowObject->Class->Class.lpszMenuName = (LPCWSTR)dwNewLong;
break;*/
case GCL_STYLE:
WindowObject->Class->ClassW.style = dwNewLong;
WindowObject->Class->ClassA.style = dwNewLong;
break;
/*case GCL_WNDPROC:
WindowObject->Class->Class.lpfnWndProc = (WNDPROC)dwNewLong;
break;*/
}
}
return(0);
DWORD STDCALL
NtUserSetClassLong(HWND hWnd,
DWORD Offset,
LONG dwNewLong,
BOOL Ansi)
{
PWINDOW_OBJECT WindowObject;
LONG Ret;
WindowObject = W32kGetWindowObject(hWnd);
if (WindowObject == NULL)
{
return(0);
}
Ret = W32kGetClassLong(WindowObject, Offset, Ansi);
W32kSetClassLong(WindowObject, Offset, dwNewLong, Ansi);
W32kReleaseWindowObject(WindowObject);
return(Ret);
}
DWORD STDCALL

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: menu.c,v 1.7 2003/08/04 23:52:25 weiden Exp $
/* $Id: menu.c,v 1.8 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -621,7 +621,7 @@ DWORD
STDCALL
NtUserBuildMenuItemList(
HMENU hMenu,
LPCMENUITEMINFO* lpmiil,
LPCMENUITEMINFOW* lpmiil,
ULONG nBufSize,
DWORD Reserved)
{
@ -773,7 +773,7 @@ NtUserInsertMenuItem(
HMENU hMenu,
UINT uItem,
WINBOOL fByPosition,
LPMENUITEMINFOW lpmii)
LPCMENUITEMINFOW lpmii)
{
DWORD res = 0;
PMENU_OBJECT MenuObject;

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: message.c,v 1.26 2003/08/02 16:53:08 gdalsnes Exp $
/* $Id: message.c,v 1.27 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -106,11 +106,22 @@ NtUserDispatchMessage(CONST MSG* UnsafeMsg)
/* FIXME: Call hook procedures. */
/* Call the window procedure. */
Result = W32kCallWindowProc(WindowObject->WndProc,
Msg.hwnd,
Msg.message,
Msg.wParam,
Msg.lParam);
if (WindowObject->Unicode == TRUE)
{
Result = W32kCallWindowProc(WindowObject->WndProcW,
Msg.hwnd,
Msg.message,
Msg.wParam,
Msg.lParam);
}
else
{
Result = W32kCallWindowProc(WindowObject->WndProcA,
Msg.hwnd,
Msg.message,
Msg.wParam,
Msg.lParam);
}
return Result;
}
@ -211,7 +222,7 @@ W32kPeekMessage(LPMSG Msg,
if (WindowObject != NULL)
{
if (WindowObject->Style & WS_MINIMIZE &&
(HICON)NtUserGetClassLong(Msg->hwnd, GCL_HICON) != NULL)
(HICON)NtUserGetClassLong(Msg->hwnd, GCL_HICON, FALSE) != NULL)
{
Msg->message = WM_PAINTICON;
Msg->wParam = 1;
@ -512,7 +523,14 @@ W32kSendMessage(HWND hWnd,
}
else
{
Result = W32kCallWindowProc(Window->WndProc, hWnd, Msg, wParam, lParam);
if (Window->Unicode == TRUE)
{
Result = W32kCallWindowProc(Window->WndProcW, hWnd, Msg, wParam, lParam);
}
else
{
Result = W32kCallWindowProc(Window->WndProcA, hWnd, Msg, wParam, lParam);
}
return Result;
}
}

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: msgqueue.c,v 1.13 2003/08/02 16:53:08 gdalsnes Exp $
/* $Id: msgqueue.c,v 1.14 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -195,7 +195,7 @@ MsqTranslateMouseMessage(HWND hWnd, UINT FilterLow, UINT FilterHigh,
}
if (Click)
{
if (W32kGetClassLong(Window, GCL_STYLE) & CS_DBLCLKS ||
if (W32kGetClassLong(Window, GCL_STYLE, FALSE) & CS_DBLCLKS ||
(*HitTest) != HTCLIENT)
{
if (Msg == ClkMessage &&

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: painting.c,v 1.22 2003/08/04 16:54:54 gdalsnes Exp $
/* $Id: painting.c,v 1.23 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -63,7 +63,7 @@ PaintDoPaint(PWINDOW_OBJECT Window, HRGN hRgn, ULONG Flags, ULONG ExFlags)
HDC hDC;
HWND hWnd = Window->Self;
BOOL bIcon = (0 != (Window->Style & WS_MINIMIZE)) &&
(0 != W32kGetClassLong(Window, GCL_HICON));
(0 != W32kGetClassLong(Window, GCL_HICON, FALSE));
if (0 != (ExFlags & RDW_EX_DELAY_NCPAINT) ||
PaintHaveToDelayNCPaint(Window, 0))
@ -902,14 +902,14 @@ NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs)
/* FIXME: Hide caret. */
IsIcon = (Window->Style & WS_MINIMIZE) && W32kGetClassLong(Window, GCL_HICON);
IsIcon = (Window->Style & WS_MINIMIZE) && W32kGetClassLong(Window, GCL_HICON, FALSE);
DcxFlags = DCX_INTERSECTRGN | DCX_WINDOWPAINT | DCX_USESTYLE;
if (IsIcon)
{
DcxFlags |= DCX_WINDOW;
}
if (W32kGetClassLong(Window, GCL_STYLE) & CS_PARENTDC)
if (W32kGetClassLong(Window, GCL_STYLE, FALSE) & CS_PARENTDC)
{
/* Don't clip the output to the update region for CS_PARENTDC window */
if ((HRGN) 1 < UpdateRegion)

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: windc.c,v 1.16 2003/07/17 21:25:11 gvg Exp $
/* $Id: windc.c,v 1.17 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -250,7 +250,7 @@ NtUserGetDCEx(HWND hWnd, HANDLE ClipRegion, ULONG Flags)
if (!(Flags & DCX_WINDOW))
{
if (Window->Class->Class.style & CS_PARENTDC)
if (Window->Class->ClassW.style & CS_PARENTDC)
{
Flags |= DCX_PARENTCLIP;
}

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: window.c,v 1.76 2003/08/04 21:21:13 royce Exp $
/* $Id: window.c,v 1.77 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -64,6 +64,9 @@ static LIST_ENTRY RegisteredMessageListHead;
#define REGISTERED_MESSAGE_MIN 0xc000
#define REGISTERED_MESSAGE_MAX 0xffff
PWINDOW_OBJECT FASTCALL
W32kGetParent(PWINDOW_OBJECT Wnd);
/* FUNCTIONS *****************************************************************/
PWINDOW_OBJECT FASTCALL
@ -119,7 +122,7 @@ W32kGetParent(PWINDOW_OBJECT Wnd)
{
if (Wnd->Style & WS_POPUP)
{
return W32kGetWindowObject(Wnd->hWndOwner); /* wine use HWND for owner window (unknown reason) */
return W32kGetWindowObject(Wnd->ParentHandle); /* wine use HWND for owner window (unknown reason) */
}
else if (Wnd->Style & WS_CHILD)
{
@ -488,7 +491,9 @@ W32kCreateDesktopWindow(PWINSTATION_OBJECT WindowStation,
WindowObject->WindowRect.bottom = Height;
WindowObject->ClientRect = WindowObject->WindowRect;
WindowObject->UserData = 0;
WindowObject->WndProc = DesktopClass->Class.lpfnWndProc;
/*FIXME: figure out what the correct strange value is and what to do with it (and how to set the wndproc values correctly) */
WindowObject->WndProcA = DesktopClass->ClassA.lpfnWndProc;
WindowObject->WndProcW = DesktopClass->ClassW.lpfnWndProc;
WindowObject->OwnerThread = PsGetCurrentThread();
InitializeListHead(&WindowObject->ChildrenListHead);
@ -599,7 +604,7 @@ NtUserCreateWindowEx(DWORD dwExStyle,
/* Create the window object. */
WindowObject = (PWINDOW_OBJECT)
ObmCreateObject(PsGetWin32Process()->WindowStation->HandleTable, &Handle,
otWindow, sizeof(WINDOW_OBJECT) + ClassObject->Class.cbWndExtra
otWindow, sizeof(WINDOW_OBJECT) + ClassObject->ClassW.cbWndExtra
);
DPRINT("Created object with handle %X\n", Handle);
@ -632,14 +637,16 @@ NtUserCreateWindowEx(DWORD dwExStyle,
WindowObject->MessageQueue = PsGetWin32Thread()->MessageQueue;
WindowObject->Parent = ParentWindow;
WindowObject->UserData = 0;
WindowObject->WndProc = ClassObject->Class.lpfnWndProc;
WindowObject->Unicode = ClassObject->Unicode;
WindowObject->WndProcA = ClassObject->ClassA.lpfnWndProc;
WindowObject->WndProcW = ClassObject->ClassW.lpfnWndProc;
WindowObject->OwnerThread = PsGetCurrentThread();
/* extra window data */
if (ClassObject->Class.cbWndExtra != 0)
if (ClassObject->ClassW.cbWndExtra != 0)
{
WindowObject->ExtraData = (PULONG)(WindowObject + 1);
WindowObject->ExtraDataSize = ClassObject->Class.cbWndExtra;
WindowObject->ExtraDataSize = ClassObject->ClassW.cbWndExtra;
RtlZeroMemory(WindowObject->ExtraData, WindowObject->ExtraDataSize);
}
else
@ -1684,7 +1691,7 @@ NtUserSetWindowFNID(DWORD Unknown0,
}
LONG STDCALL
NtUserGetWindowLong(HWND hWnd, DWORD Index)
NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi)
{
PWINDOW_OBJECT WindowObject;
NTSTATUS Status;
@ -1722,9 +1729,17 @@ NtUserGetWindowLong(HWND hWnd, DWORD Index)
case GWL_STYLE:
Result = WindowObject->Style;
break;
/* FIXME: need to return the "invalid" value if the caller asks for it
(but we cant do that because that breaks stuff in user32 which wont be fixable until we have an implementation of IsWindowUnicode available */
case GWL_WNDPROC:
Result = (LONG) WindowObject->WndProc;
if (WindowObject->Unicode)
{
Result = (LONG) WindowObject->WndProcW;
}
else
{
Result = (LONG) WindowObject->WndProcA;
}
break;
case GWL_HINSTANCE:
@ -1810,8 +1825,9 @@ NtUserSetWindowLong(HWND hWnd, DWORD Index, LONG NewValue, BOOL Ansi)
case GWL_WNDPROC:
/* FIXME: should check if window belongs to current process */
OldValue = (LONG) WindowObject->WndProc;
WindowObject->WndProc = (WNDPROC) NewValue;
/*OldValue = (LONG) WindowObject->WndProc;
WindowObject->WndProc = (WNDPROC) NewValue;*/
OldValue = 0;
break;
case GWL_HINSTANCE:

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: winsta.c,v 1.22 2003/08/04 16:54:54 gdalsnes Exp $
/* $Id: winsta.c,v 1.23 2003/08/05 15:41:03 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -203,7 +203,7 @@ InitWindowStationImpl(VOID)
wcx.hbrBackground = NULL;
wcx.lpszMenuName = NULL;
wcx.lpszClassName = L"DesktopWindowClass";
DesktopWindowClass = W32kCreateClass(&wcx, TRUE, (RTL_ATOM)32880);
DesktopWindowClass = W32kCreateClass(&wcx, 0, TRUE, (RTL_ATOM)32880);
return(STATUS_SUCCESS);
}

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: icm.c,v 1.6 2003/05/18 17:16:18 ea Exp $ */
/* $Id: icm.c,v 1.7 2003/08/05 15:41:03 weiden Exp $ */
#undef WIN32_LEAN_AND_MEAN
#include <windows.h>
@ -47,7 +47,7 @@ W32kColorMatchToTarget(HDC hDC,
HCOLORSPACE
STDCALL
W32kCreateColorSpace(LPLOGCOLORSPACE LogColorSpace)
W32kCreateColorSpace(LPLOGCOLORSPACEW LogColorSpace)
{
UNIMPLEMENTED;
}
@ -86,8 +86,8 @@ W32kGetDeviceGammaRamp(HDC hDC,
BOOL
STDCALL
W32kGetICMProfile(HDC hDC,
LPDWORD NameSize,
W32kGetICMProfile(HDC hDC,
LPDWORD NameSize,
LPWSTR Filename)
{
UNIMPLEMENTED;
@ -96,7 +96,7 @@ W32kGetICMProfile(HDC hDC,
BOOL
STDCALL
W32kGetLogColorSpace(HCOLORSPACE hColorSpace,
LPLOGCOLORSPACE Buffer,
LPLOGCOLORSPACEW Buffer,
DWORD Size)
{
UNIMPLEMENTED;

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: print.c,v 1.9 2003/05/18 17:16:18 ea Exp $ */
/* $Id: print.c,v 1.10 2003/08/05 15:41:03 weiden Exp $ */
#undef WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <ddk/ntddk.h>
@ -80,7 +80,7 @@ W32kSetAbortProc(HDC hDC,
INT
STDCALL
W32kStartDoc(HDC hDC,
CONST PDOCINFO di)
CONST PDOCINFOW di)
{
UNIMPLEMENTED;
}

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: text.c,v 1.37 2003/07/24 21:23:37 gvg Exp $ */
/* $Id: text.c,v 1.38 2003/08/05 15:41:03 weiden Exp $ */
#undef WIN32_LEAN_AND_MEAN
@ -364,7 +364,7 @@ int
STDCALL
W32kEnumFontFamiliesEx(HDC hDC,
LPLOGFONTW Logfont,
FONTENUMEXPROC EnumFontFamExProc,
FONTENUMEXPROCW EnumFontFamExProc,
LPARAM lParam,
DWORD Flags)
{
@ -429,7 +429,7 @@ W32kGetCharacterPlacement(HDC hDC,
LPCWSTR String,
int Count,
int MaxExtent,
LPGCP_RESULTS Results,
LPGCP_RESULTSW Results,
DWORD Flags)
{
UNIMPLEMENTED;
@ -914,7 +914,7 @@ W32kGetTextMetrics(HDC hDC,
BOOL
STDCALL
W32kPolyTextOut(HDC hDC,
CONST LPPOLYTEXT txt,
CONST LPPOLYTEXTW txt,
int Count)
{
UNIMPLEMENTED;