mirror of
https://github.com/UzixLS/KernelEx.git
synced 2025-07-19 07:21:20 +03:00
import KernelEx-4.0-Final2
This commit is contained in:
@ -6,3 +6,4 @@ comdlg32
|
||||
shell32
|
||||
rpcrt4
|
||||
winspool
|
||||
shlwapi
|
||||
|
@ -53,7 +53,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib rpcrt4.lib usp10.lib ../../common/KernelEx.lib ../../kexcrt/kexcrt.lib libc.lib delayimp.lib /nologo /dll /map /machine:I386 /nodefaultlib /OPT:NOWIN98 /DELAYLOAD:shell32.dll /DELAYLOAD:rpcrt4.dll /DELAYLOAD:usp10.dll /DELAYLOAD:comdlg32.dll /DELAYLOAD:winspool.drv
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib rpcrt4.lib usp10.lib ../../common/KernelEx.lib ../../kexcrt/kexcrt.lib libc.lib delayimp.lib /nologo /dll /map /machine:I386 /nodefaultlib /OPT:NOWIN98 /DELAYLOAD:shell32.dll /DELAYLOAD:rpcrt4.dll /DELAYLOAD:usp10.dll /DELAYLOAD:comdlg32.dll /DELAYLOAD:winspool.drv /DELAYLOAD:shlwapi.dll
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ELSEIF "$(CFG)" == "KernelEx Base NonShared - Win32 Debug"
|
||||
@ -80,7 +80,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib rpcrt4.lib usp10.lib ../../common/KernelEx.lib ../../kexcrt/kexcrt.lib libc.lib delayimp.lib /nologo /dll /map /debug /machine:I386 /nodefaultlib /pdbtype:sept /OPT:NOWIN98 /DELAYLOAD:shell32.dll /DELAYLOAD:rpcrt4.dll /DELAYLOAD:usp10.dll /DELAYLOAD:comdlg32.dll /DELAYLOAD:winspool.drv
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib rpcrt4.lib usp10.lib ../../common/KernelEx.lib ../../kexcrt/kexcrt.lib libc.lib delayimp.lib /nologo /dll /map /debug /machine:I386 /nodefaultlib /pdbtype:sept /OPT:NOWIN98 /DELAYLOAD:shell32.dll /DELAYLOAD:rpcrt4.dll /DELAYLOAD:usp10.dll /DELAYLOAD:comdlg32.dll /DELAYLOAD:winspool.drv /DELAYLOAD:shlwapi.dll
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ENDIF
|
||||
@ -244,6 +244,22 @@ SOURCE=.\winspool\_winspool_apilist.h
|
||||
SOURCE=.\winspool\DefaultPrinter.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "shlwapi"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\shlwapi\_shlwapi_apilist.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\shlwapi\_shlwapi_apilist.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\shlwapi\string.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\common.c
|
||||
|
@ -30,9 +30,10 @@
|
||||
#include "shell32/_shell32_apilist.h"
|
||||
#include "rpcrt4/_rpcrt4_apilist.h"
|
||||
#include "winspool/_winspool_apilist.h"
|
||||
#include "shlwapi/_shlwapi_apilist.h"
|
||||
//#include "/__apilist.h"
|
||||
|
||||
static apilib_api_table api_table[9];
|
||||
static apilib_api_table api_table[10];
|
||||
|
||||
static void fill_apitable()
|
||||
{
|
||||
@ -44,6 +45,7 @@ static void fill_apitable()
|
||||
api_table[5] = apitable_shell32;
|
||||
api_table[6] = apitable_rpcrt4;
|
||||
api_table[7] = apitable_winspool;
|
||||
api_table[8] = apitable_shlwapi;
|
||||
//last entry is null terminator
|
||||
}
|
||||
|
||||
@ -57,7 +59,7 @@ const apilib_api_table* get_api_table()
|
||||
|
||||
BOOL init()
|
||||
{
|
||||
return common_init() && init_kernel32() && init_gdi32() && init_user32() && init_advapi32() && init_comdlg32() && init_shell32() && init_rpcrt4() && init_winspool();
|
||||
return common_init() && init_kernel32() && init_gdi32() && init_user32() && init_advapi32() && init_comdlg32() && init_shell32() && init_rpcrt4() && init_winspool() && init_shlwapi();
|
||||
}
|
||||
|
||||
BOOL APIENTRY DllMain(HINSTANCE instance, DWORD reason, BOOL load_static)
|
||||
|
46
apilibs/kexbasen/shlwapi/_shlwapi_apilist.c
Normal file
46
apilibs/kexbasen/shlwapi/_shlwapi_apilist.c
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* KernelEx
|
||||
* Copyright (C) 2009, Xeno86
|
||||
*
|
||||
* This file is part of KernelEx source code.
|
||||
*
|
||||
* KernelEx is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published
|
||||
* by the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* KernelEx is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Make; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
#include "kexcoresdk.h"
|
||||
#include "_shlwapi_apilist.h"
|
||||
|
||||
BOOL init_shlwapi()
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static const apilib_named_api shlwapi_named_apis[] =
|
||||
{
|
||||
/*** AUTOGENERATED APILIST NAMED EXPORTS BEGIN ***/
|
||||
DECL_API("StrCmpLogicalW", StrCmpLogicalW_new),
|
||||
/*** AUTOGENERATED APILIST NAMED EXPORTS END ***/
|
||||
};
|
||||
|
||||
#if 0
|
||||
static const apilib_unnamed_api shlwapi_ordinal_apis[] =
|
||||
{
|
||||
/*** AUTOGENERATED APILIST ORDINAL EXPORTS BEGIN ***/
|
||||
/*** AUTOGENERATED APILIST ORDINAL EXPORTS END ***/
|
||||
};
|
||||
#endif
|
||||
|
||||
const apilib_api_table apitable_shlwapi = DECL_TAB("SHLWAPI.DLL", shlwapi_named_apis, 0 /*shlwapi_ordinal_apis*/);
|
34
apilibs/kexbasen/shlwapi/_shlwapi_apilist.h
Normal file
34
apilibs/kexbasen/shlwapi/_shlwapi_apilist.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* KernelEx
|
||||
* Copyright (C) 2009, Xeno86
|
||||
*
|
||||
* This file is part of KernelEx source code.
|
||||
*
|
||||
* KernelEx is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published
|
||||
* by the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* KernelEx is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Make; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _SHLWAPI_APILIST_H
|
||||
#define _SHLWAPI_APILIST_H
|
||||
|
||||
#include "kexcoresdk.h"
|
||||
|
||||
BOOL init_shlwapi();
|
||||
extern const apilib_api_table apitable_shlwapi;
|
||||
|
||||
/*** AUTOGENERATED APILIST DECLARATIONS BEGIN ***/
|
||||
INT WINAPI StrCmpLogicalW_new(LPCWSTR lpszStr, LPCWSTR lpszComp);
|
||||
/*** AUTOGENERATED APILIST DECLARATIONS END ***/
|
||||
|
||||
#endif
|
104
apilibs/kexbasen/shlwapi/string.c
Normal file
104
apilibs/kexbasen/shlwapi/string.c
Normal file
@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Shlwapi string functions
|
||||
*
|
||||
* Copyright 1998 Juergen Schmied
|
||||
* Copyright 2002 Jon Griffiths
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#pragma warning(disable:4002)
|
||||
#define TRACE()
|
||||
|
||||
EXTERN_C DECLSPEC_IMPORT BOOL WINAPI StrToIntExW(LPCWSTR lpszStr, DWORD dwFlags, LPINT lpiRet);
|
||||
EXTERN_C DECLSPEC_IMPORT BOOL WINAPI ChrCmpIW(WCHAR ch1, WCHAR ch2);
|
||||
|
||||
static int isdigitW(WCHAR wc)
|
||||
{
|
||||
if (wc >= '0' && wc <= '9')
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* StrCmpLogicalW [SHLWAPI.@]
|
||||
*
|
||||
* Compare two strings, ignoring case and comparing digits as numbers.
|
||||
*
|
||||
* PARAMS
|
||||
* lpszStr [I] First string to compare
|
||||
* lpszComp [I] Second string to compare
|
||||
* iLen [I] Length to compare
|
||||
*
|
||||
* RETURNS
|
||||
* TRUE If the strings are equal.
|
||||
* FALSE Otherwise.
|
||||
*/
|
||||
/* MAKE_EXPORT StrCmpLogicalW_new=StrCmpLogicalW */
|
||||
INT WINAPI StrCmpLogicalW_new(LPCWSTR lpszStr, LPCWSTR lpszComp)
|
||||
{
|
||||
INT iDiff;
|
||||
|
||||
TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszComp));
|
||||
|
||||
if (lpszStr && lpszComp)
|
||||
{
|
||||
while (*lpszStr)
|
||||
{
|
||||
if (!*lpszComp)
|
||||
return 1;
|
||||
else if (isdigitW(*lpszStr))
|
||||
{
|
||||
int iStr, iComp;
|
||||
|
||||
if (!isdigitW(*lpszComp))
|
||||
return -1;
|
||||
|
||||
/* Compare the numbers */
|
||||
StrToIntExW(lpszStr, 0, &iStr);
|
||||
StrToIntExW(lpszComp, 0, &iComp);
|
||||
|
||||
if (iStr < iComp)
|
||||
return -1;
|
||||
else if (iStr > iComp)
|
||||
return 1;
|
||||
|
||||
/* Skip */
|
||||
while (isdigitW(*lpszStr))
|
||||
lpszStr++;
|
||||
while (isdigitW(*lpszComp))
|
||||
lpszComp++;
|
||||
}
|
||||
else if (isdigitW(*lpszComp))
|
||||
return 1;
|
||||
else
|
||||
{
|
||||
iDiff = ChrCmpIW(*lpszStr,*lpszComp);
|
||||
if (iDiff > 0)
|
||||
return 1;
|
||||
else if (iDiff < 0)
|
||||
return -1;
|
||||
|
||||
lpszStr++;
|
||||
lpszComp++;
|
||||
}
|
||||
}
|
||||
if (*lpszComp)
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user