mirror of
https://github.com/UzixLS/KernelEx.git
synced 2025-07-19 07:21:20 +03:00
import KernelEx-4.5-Beta1
This commit is contained in:
0
auxiliary/auxiliary.dsp
Normal file → Executable file
0
auxiliary/auxiliary.dsp
Normal file → Executable file
0
auxiliary/makefile
Normal file → Executable file
0
auxiliary/makefile
Normal file → Executable file
6
auxiliary/makefile.msv
Normal file → Executable file
6
auxiliary/makefile.msv
Normal file → Executable file
@ -14,6 +14,9 @@ all :
|
||||
cd psapi
|
||||
@$(MAKE) /nologo /f makefile.msv $@
|
||||
cd ..
|
||||
cd userenv
|
||||
@$(MAKE) /nologo /f makefile.msv $@
|
||||
cd ..
|
||||
|
||||
clean :
|
||||
cd msimg32
|
||||
@ -31,6 +34,9 @@ clean :
|
||||
cd psapi
|
||||
@$(MAKE) /nologo /f makefile.msv $@
|
||||
cd ..
|
||||
cd userenv
|
||||
@$(MAKE) /nologo /f makefile.msv $@
|
||||
cd ..
|
||||
|
||||
ide : all clean
|
||||
-@if exist Release\NUL rd Release
|
||||
|
0
auxiliary/msimg32/makefile
Normal file → Executable file
0
auxiliary/msimg32/makefile
Normal file → Executable file
0
auxiliary/msimg32/makefile.msv
Normal file → Executable file
0
auxiliary/msimg32/makefile.msv
Normal file → Executable file
4
auxiliary/msimg32/msimg32.c
Normal file → Executable file
4
auxiliary/msimg32/msimg32.c
Normal file → Executable file
@ -63,7 +63,7 @@ BOOL WINAPI AlphaBlend_NEW( HDC hdcDest, // handle to destination DC
|
||||
BLENDFUNCTION blendFunction // alpha-blending function
|
||||
)
|
||||
{
|
||||
unsigned int i, srcalpha, dstalpha;
|
||||
unsigned int srcalpha, dstalpha;
|
||||
BITMAPINFO bmi;
|
||||
HBITMAP srcBM, dstBM, dcBM;
|
||||
HDC srcDC, dstDC;
|
||||
@ -102,6 +102,7 @@ BOOL WINAPI AlphaBlend_NEW( HDC hdcDest, // handle to destination DC
|
||||
//workwork
|
||||
if ( !(blendFunction.AlphaFormat & AC_SRC_ALPHA) ) //no alpha channel
|
||||
{
|
||||
int i;
|
||||
srcalpha = blendFunction.SourceConstantAlpha;
|
||||
dstalpha = 255 - srcalpha;
|
||||
for (i = 0; i < (nWidthDest*nHeightDest); i++)
|
||||
@ -116,6 +117,7 @@ BOOL WINAPI AlphaBlend_NEW( HDC hdcDest, // handle to destination DC
|
||||
}
|
||||
else
|
||||
{
|
||||
int i;
|
||||
unsigned int tmp;
|
||||
srcalpha = blendFunction.SourceConstantAlpha;
|
||||
for (i = 0; i < (nWidthDest*nHeightDest); i++)
|
||||
|
0
auxiliary/msimg32/msimg32.def
Normal file → Executable file
0
auxiliary/msimg32/msimg32.def
Normal file → Executable file
0
auxiliary/msimg32/msimgme.rc
Normal file → Executable file
0
auxiliary/msimg32/msimgme.rc
Normal file → Executable file
0
auxiliary/pdh/kord.def
Normal file → Executable file
0
auxiliary/pdh/kord.def
Normal file → Executable file
0
auxiliary/pdh/makefile
Normal file → Executable file
0
auxiliary/pdh/makefile
Normal file → Executable file
0
auxiliary/pdh/makefile.msv
Normal file → Executable file
0
auxiliary/pdh/makefile.msv
Normal file → Executable file
0
auxiliary/pdh/pdh.c
Normal file → Executable file
0
auxiliary/pdh/pdh.c
Normal file → Executable file
0
auxiliary/pdh/pdh.def
Normal file → Executable file
0
auxiliary/pdh/pdh.def
Normal file → Executable file
0
auxiliary/psapi/makefile
Normal file → Executable file
0
auxiliary/psapi/makefile
Normal file → Executable file
0
auxiliary/psapi/makefile.msv
Normal file → Executable file
0
auxiliary/psapi/makefile.msv
Normal file → Executable file
0
auxiliary/psapi/psapi.c
Normal file → Executable file
0
auxiliary/psapi/psapi.c
Normal file → Executable file
0
auxiliary/psapi/psapi.def
Normal file → Executable file
0
auxiliary/psapi/psapi.def
Normal file → Executable file
33
auxiliary/userenv/makefile.msv
Executable file
33
auxiliary/userenv/makefile.msv
Executable file
@ -0,0 +1,33 @@
|
||||
# Makefile for Microsoft Visual C++ Compiler (MSVC)
|
||||
|
||||
OBJ = userenv.obj
|
||||
RES =
|
||||
DEF = /DEF:userenv.def
|
||||
BIN = ..\userenv.dll
|
||||
LIBS = -nodefaultlib kernel32.lib gdi32.lib shell32.lib shlwapi.lib
|
||||
LDFLAGS = /DLL /OPT:NOWIN98 /ENTRY:DllMain@12
|
||||
CFLAGS = /W3 /O2 /Oi /FD
|
||||
CXXFLAGS = $(CFLAGS)
|
||||
|
||||
all : $(BIN)
|
||||
-@if exist $(BIN:.dll=.exp) del $(BIN:.dll=.exp)
|
||||
-@if exist $(BIN:.dll=.lib) del $(BIN:.dll=.lib)
|
||||
|
||||
.PHONY : clean
|
||||
clean :
|
||||
-@if exist *.obj del *.obj
|
||||
-@if exist *.idb del *.idb
|
||||
-@if exist *.res del *.res
|
||||
|
||||
realclean : clean
|
||||
-@if exist $(BIN) del $(BIN)
|
||||
|
||||
$(BIN) : $(OBJ) $(RES)
|
||||
link /nologo $(LDFLAGS) $(DEF) /OUT:$(BIN) $(LIBS) $(OBJ) $(RES)
|
||||
|
||||
.c.obj :
|
||||
cl /nologo $(CFLAGS) /c /Fo$@ $<
|
||||
|
||||
.cpp.obj :
|
||||
cl /nologo $(CXXFLAGS) /c /Fo$@ $<
|
||||
|
202
auxiliary/userenv/userenv.c
Executable file
202
auxiliary/userenv/userenv.c
Executable file
@ -0,0 +1,202 @@
|
||||
/*
|
||||
* Implementation of userenv.dll
|
||||
*
|
||||
* Copyright 2006 Mike McCormack for CodeWeavers
|
||||
*
|
||||
* 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>
|
||||
#include <Shlobj.h>
|
||||
#include <Shlwapi.h>
|
||||
#include <profinfo.h>
|
||||
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
||||
#pragma warning(disable:4002)
|
||||
#define TRACE()
|
||||
#define FIXME()
|
||||
|
||||
#else
|
||||
|
||||
#define TRACE(x,args...) debug_output(__func__,x,args)
|
||||
#define FIXME(x,args...) TRACE("FIXME: "x,args)
|
||||
|
||||
#endif
|
||||
|
||||
//WINE_DEFAULT_DEBUG_CHANNEL( userenv );
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
{
|
||||
TRACE("%p %d %p\n", hinstDLL, fdwReason, lpvReserved);
|
||||
|
||||
switch (fdwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
DisableThreadLibraryCalls(hinstDLL);
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI CreateEnvironmentBlock( LPVOID* lpEnvironment,
|
||||
HANDLE hToken, BOOL bInherit )
|
||||
{
|
||||
FIXME("%p %p %d\n", lpEnvironment, hToken, bInherit );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL WINAPI DestroyEnvironmentBlock( LPVOID lpEnvironment )
|
||||
{
|
||||
FIXME("%p\n", lpEnvironment);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL WINAPI ExpandEnvironmentStringsForUserA( HANDLE hToken, LPCSTR lpSrc,
|
||||
LPSTR lpDest, DWORD dwSize )
|
||||
{
|
||||
BOOL ret;
|
||||
|
||||
TRACE("%p %s %p %d\n", hToken, debugstr_a(lpSrc), lpDest, dwSize);
|
||||
|
||||
ret = ExpandEnvironmentStringsA( lpSrc, lpDest, dwSize );
|
||||
TRACE("<- %s\n", debugstr_a(lpDest));
|
||||
return ret;
|
||||
}
|
||||
|
||||
BOOL WINAPI ExpandEnvironmentStringsForUserW( HANDLE hToken, LPCWSTR lpSrc,
|
||||
LPWSTR lpDest, DWORD dwSize )
|
||||
{
|
||||
BOOL ret;
|
||||
|
||||
TRACE("%p %s %p %d\n", hToken, debugstr_w(lpSrc), lpDest, dwSize);
|
||||
|
||||
ret = ExpandEnvironmentStringsW( lpSrc, lpDest, dwSize );
|
||||
TRACE("<- %s\n", debugstr_w(lpDest));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int getsubdirpath(int nFolder, LPSTR lpBuffer, LPSTR lpSubDir)
|
||||
{
|
||||
if ( FAILED(SHGetSpecialFolderPathA(NULL,lpBuffer,CSIDL_APPDATA,TRUE)) )
|
||||
return 0;
|
||||
PathAppendA(lpBuffer,lpSubDir);
|
||||
return lstrlenA(lpBuffer) + 1;
|
||||
}
|
||||
|
||||
static int GetSpecialSubdirPathA(int nFolder, LPSTR lpSubDir, LPSTR lpDir, LPDWORD lpcchSize )
|
||||
{
|
||||
char buffer[MAX_PATH];
|
||||
DWORD bufsize = getsubdirpath(nFolder,buffer,lpSubDir);
|
||||
if (!lpDir || !lpcchSize || !bufsize) return 0;
|
||||
if (*lpcchSize<bufsize)
|
||||
{
|
||||
*lpcchSize = bufsize;
|
||||
return 0;
|
||||
}
|
||||
*lpcchSize = bufsize;
|
||||
lstrcpyA(lpDir,buffer);
|
||||
return bufsize;
|
||||
}
|
||||
|
||||
static int GetSpecialSubdirPathW(int nFolder, LPSTR lpSubDir, LPWSTR lpDir, LPDWORD lpcchSize )
|
||||
{
|
||||
char buffer[MAX_PATH];
|
||||
DWORD bufsize = getsubdirpath(nFolder,buffer,lpSubDir);
|
||||
if (!lpDir || !lpcchSize || !bufsize) return 0;
|
||||
bufsize = MultiByteToWideChar(CP_ACP,0,buffer,-1,NULL,0);
|
||||
if (*lpcchSize<bufsize)
|
||||
{
|
||||
*lpcchSize = bufsize;
|
||||
return 0;
|
||||
}
|
||||
*lpcchSize = bufsize;
|
||||
return MultiByteToWideChar(CP_ACP,0,buffer,-1,lpDir,bufsize);
|
||||
}
|
||||
|
||||
|
||||
int WINAPI GetUserProfileDirectoryA( HANDLE hToken, LPSTR lpProfileDir,
|
||||
LPDWORD lpcchSize )
|
||||
{
|
||||
return GetSpecialSubdirPathA(CSIDL_APPDATA,"..",lpProfileDir,lpcchSize);
|
||||
}
|
||||
|
||||
int WINAPI GetUserProfileDirectoryW( HANDLE hToken, LPWSTR lpProfileDir,
|
||||
LPDWORD lpcchSize )
|
||||
{
|
||||
return GetSpecialSubdirPathW(CSIDL_APPDATA,"..",lpProfileDir,lpcchSize);
|
||||
}
|
||||
|
||||
int WINAPI GetAllUsersProfileDirectoryA( LPSTR lpProfileDir, LPDWORD lpcchSize )
|
||||
{
|
||||
return GetSpecialSubdirPathA(CSIDL_COMMON_APPDATA,"..",lpProfileDir,lpcchSize);
|
||||
}
|
||||
|
||||
int WINAPI GetAllUsersProfileDirectoryW( LPWSTR lpProfileDir, LPDWORD lpcchSize )
|
||||
{
|
||||
return GetSpecialSubdirPathW(CSIDL_COMMON_APPDATA,"..",lpProfileDir,lpcchSize);
|
||||
}
|
||||
|
||||
int WINAPI GetProfilesDirectoryA( LPSTR lpProfilesDir, LPDWORD lpcchSize )
|
||||
{
|
||||
return GetSpecialSubdirPathA(CSIDL_APPDATA,"..\\..",lpProfilesDir,lpcchSize);
|
||||
}
|
||||
|
||||
int WINAPI GetProfilesDirectoryW( LPWSTR lpProfilesDir, LPDWORD lpcchSize )
|
||||
{
|
||||
return GetSpecialSubdirPathW(CSIDL_APPDATA,"..\\..",lpProfilesDir,lpcchSize);
|
||||
}
|
||||
|
||||
BOOL WINAPI GetProfileType( DWORD *pdwFlags )
|
||||
{
|
||||
FIXME("%p\n", pdwFlags );
|
||||
*pdwFlags = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI LoadUserProfileA( HANDLE hToken, LPPROFILEINFOA lpProfileInfo )
|
||||
{
|
||||
FIXME("%p %p\n", hToken, lpProfileInfo );
|
||||
lpProfileInfo->hProfile = HKEY_CURRENT_USER;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI LoadUserProfileW( HANDLE hToken, LPPROFILEINFOW lpProfileInfo )
|
||||
{
|
||||
FIXME("%p %p\n", hToken, lpProfileInfo );
|
||||
lpProfileInfo->hProfile = HKEY_CURRENT_USER;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI RegisterGPNotification( HANDLE event, BOOL machine )
|
||||
{
|
||||
FIXME("%p %d\n", event, machine );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI UnregisterGPNotification( HANDLE event )
|
||||
{
|
||||
FIXME("%p\n", event );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI UnloadUserProfile( HANDLE hToken, HANDLE hProfile )
|
||||
{
|
||||
FIXME("(%p, %p): stub\n", hToken, hProfile);
|
||||
return FALSE;
|
||||
}
|
18
auxiliary/userenv/userenv.def
Executable file
18
auxiliary/userenv/userenv.def
Executable file
@ -0,0 +1,18 @@
|
||||
LIBRARY userenv.dll BASE=0x7D0A0000
|
||||
EXPORTS
|
||||
CreateEnvironmentBlock
|
||||
DestroyEnvironmentBlock
|
||||
ExpandEnvironmentStringsForUserA
|
||||
ExpandEnvironmentStringsForUserW
|
||||
GetAllUsersProfileDirectoryA
|
||||
GetAllUsersProfileDirectoryW
|
||||
GetProfilesDirectoryA
|
||||
GetProfilesDirectoryW
|
||||
GetProfileType
|
||||
GetUserProfileDirectoryA
|
||||
GetUserProfileDirectoryW
|
||||
LoadUserProfileA
|
||||
LoadUserProfileW
|
||||
RegisterGPNotification
|
||||
UnloadUserProfile
|
||||
UnregisterGPNotification
|
0
auxiliary/uxtheme/kord.def
Normal file → Executable file
0
auxiliary/uxtheme/kord.def
Normal file → Executable file
0
auxiliary/uxtheme/makefile
Normal file → Executable file
0
auxiliary/uxtheme/makefile
Normal file → Executable file
4
auxiliary/uxtheme/makefile.msv
Normal file → Executable file
4
auxiliary/uxtheme/makefile.msv
Normal file → Executable file
@ -1,10 +1,10 @@
|
||||
# Makefile for Microsoft Visual C++ Compiler (MSVC)
|
||||
|
||||
OBJ = kord.lib uxtheme.obj
|
||||
OBJ = kord.lib uxtheme.obj metric.obj
|
||||
RES =
|
||||
DEF = /DEF:uxtheme.def
|
||||
BIN = ..\uxtheme.dll
|
||||
LIBS = -nodefaultlib kernel32.lib gdi32.lib
|
||||
LIBS = -nodefaultlib kernel32.lib gdi32.lib user32.lib
|
||||
LDFLAGS = /DLL /OPT:NOWIN98 /ENTRY:DllMain@12
|
||||
CFLAGS = /W3 /O2 /Oi /FD
|
||||
CXXFLAGS = $(CFLAGS)
|
||||
|
125
auxiliary/uxtheme/metric.c
Executable file
125
auxiliary/uxtheme/metric.c
Executable file
@ -0,0 +1,125 @@
|
||||
/*
|
||||
* Win32 5.1 Theme metrics
|
||||
*
|
||||
* Copyright (C) 2003 Kevin Koltzau
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#define UNICODE
|
||||
#define _WIN32_WINNT 0x0501
|
||||
#include <windows.h>
|
||||
#include <uxtheme.h>
|
||||
#include <tmschema.h>
|
||||
|
||||
#ifndef TMT_FIRSTCOLOR
|
||||
#define TMT_FIRSTCOLOR TMT_SCROLLBAR
|
||||
#endif
|
||||
|
||||
#pragma warning(disable:4273)
|
||||
|
||||
/***********************************************************************
|
||||
* GetThemeSysBool (UXTHEME.@)
|
||||
* MAKE_EXPORT GetThemeSysBool=GetThemeSysBool
|
||||
*/
|
||||
BOOL WINAPI GetThemeSysBool(HTHEME hTheme, int iBoolID)
|
||||
{
|
||||
SetLastError(0);
|
||||
if(iBoolID == TMT_FLATMENUS) {
|
||||
return FALSE;
|
||||
}
|
||||
else {
|
||||
SetLastError(STG_E_INVALIDPARAMETER);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GetThemeSysColor (UXTHEME.@)
|
||||
* MAKE_EXPORT GetThemeSysColor=GetThemeSysColor
|
||||
*/
|
||||
COLORREF WINAPI GetThemeSysColor(HTHEME hTheme, int iColorID)
|
||||
{
|
||||
SetLastError(0);
|
||||
return GetSysColor(iColorID - TMT_FIRSTCOLOR);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GetThemeSysColorBrush (UXTHEME.@)
|
||||
* MAKE_EXPORT GetThemeSysColorBrush=GetThemeSysColorBrush
|
||||
*/
|
||||
HBRUSH WINAPI GetThemeSysColorBrush(HTHEME hTheme, int iColorID)
|
||||
{
|
||||
return CreateSolidBrush(GetThemeSysColor(hTheme, iColorID));
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GetThemeSysFont (UXTHEME.@)
|
||||
* MAKE_EXPORT GetThemeSysFont=GetThemeSysFont
|
||||
*/
|
||||
HRESULT WINAPI GetThemeSysFont(HTHEME hTheme, int iFontID, LOGFONTW *plf)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
if(iFontID == TMT_ICONTITLEFONT) {
|
||||
if(!SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(LOGFONTW), &plf, 0))
|
||||
return HRESULT_FROM_WIN32(GetLastError());
|
||||
}
|
||||
else {
|
||||
NONCLIENTMETRICSW ncm;
|
||||
LOGFONTW *font = NULL;
|
||||
ncm.cbSize = sizeof(NONCLIENTMETRICSW);
|
||||
if(!SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), &ncm, 0))
|
||||
return HRESULT_FROM_WIN32(GetLastError());
|
||||
switch(iFontID) {
|
||||
case TMT_CAPTIONFONT: font = &ncm.lfCaptionFont; break;
|
||||
case TMT_SMALLCAPTIONFONT: font = &ncm.lfSmCaptionFont; break;
|
||||
case TMT_MENUFONT: font = &ncm.lfMenuFont; break;
|
||||
case TMT_STATUSFONT: font = &ncm.lfStatusFont; break;
|
||||
case TMT_MSGBOXFONT: font = &ncm.lfMessageFont; break;
|
||||
}
|
||||
if(font) *plf = *font;
|
||||
else hr = STG_E_INVALIDPARAMETER;
|
||||
}
|
||||
return hr;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GetThemeSysInt (UXTHEME.@)
|
||||
* MAKE_EXPORT GetThemeSysInt=GetThemeSysInt
|
||||
*/
|
||||
HRESULT WINAPI GetThemeSysInt(HTHEME hTheme, int iIntID, int *piValue)
|
||||
{
|
||||
return E_HANDLE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GetThemeSysSize (UXTHEME.@)
|
||||
* MAKE_EXPORT GetThemeSysSize=GetThemeSysSize
|
||||
*/
|
||||
int WINAPI GetThemeSysSize(HTHEME hTheme, int iSizeID)
|
||||
{
|
||||
return GetSystemMetrics(iSizeID);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GetThemeSysString (UXTHEME.@)
|
||||
* MAKE_EXPORT GetThemeSysString=GetThemeSysString
|
||||
*/
|
||||
HRESULT WINAPI GetThemeSysString(HTHEME hTheme, int iStringID,
|
||||
LPWSTR pszStringBuff, int cchMaxStringChars)
|
||||
{
|
||||
return E_HANDLE;
|
||||
}
|
134
auxiliary/uxtheme/uxtheme.c
Normal file → Executable file
134
auxiliary/uxtheme/uxtheme.c
Normal file → Executable file
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* KernelEx
|
||||
* Copyright (C) 2008, Xeno86
|
||||
* Copyright (C) 2008-2009, Xeno86
|
||||
*
|
||||
* This file is part of KernelEx source code.
|
||||
*
|
||||
@ -21,86 +21,70 @@
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
int WINAPI CommonUnimpStub(void);
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define UNIMPL_FUNC(name,params) \
|
||||
__asm__( ".text\n" \
|
||||
".globl _" #name "@0\n" \
|
||||
"_" #name "_new@0:\n\t" \
|
||||
"xor %eax, %eax\n\t" \
|
||||
"movb $" #params ", %cl\n\t" \
|
||||
"jmp _CommonUnimpStub@0\n\t" \
|
||||
)
|
||||
#else
|
||||
#define UNIMPL_FUNC(name,params) \
|
||||
int __declspec(naked) __stdcall name() \
|
||||
#define UNIMPL_FUNC(name,params,val) \
|
||||
unsigned long __declspec(naked) __stdcall name() \
|
||||
{ \
|
||||
__asm xor eax,eax \
|
||||
__asm mov cl, params \
|
||||
__asm jmp CommonUnimpStub \
|
||||
__asm mov eax, val \
|
||||
__asm ret 4*params \
|
||||
}
|
||||
#endif
|
||||
|
||||
BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
#define _E_NOTIMPL 0x80004001
|
||||
|
||||
BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, BOOL bLoadStatic)
|
||||
{
|
||||
if (fdwReason == DLL_PROCESS_ATTACH)
|
||||
{
|
||||
OSVERSIONINFO osv;
|
||||
osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||
GetVersionEx(&osv);
|
||||
if (osv.dwMajorVersion < 5 || (osv.dwMajorVersion == 5 && osv.dwMinorVersion == 0))
|
||||
return FALSE;
|
||||
{
|
||||
if (!bLoadStatic)
|
||||
{
|
||||
OSVERSIONINFO osv;
|
||||
osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||
GetVersionEx(&osv);
|
||||
if (osv.dwMajorVersion < 5)
|
||||
return FALSE;
|
||||
}
|
||||
DisableThreadLibraryCalls(hinstDLL);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
UNIMPL_FUNC(CloseThemeData, 1);
|
||||
UNIMPL_FUNC(DrawThemeBackground, 6);
|
||||
UNIMPL_FUNC(DrawThemeBackgroundEx, 6);
|
||||
UNIMPL_FUNC(DrawThemeEdge, 8);
|
||||
UNIMPL_FUNC(DrawThemeIcon, 7);
|
||||
UNIMPL_FUNC(DrawThemeParentBackground, 3);
|
||||
UNIMPL_FUNC(DrawThemeText, 9);
|
||||
UNIMPL_FUNC(EnableThemeDialogTexture, 2);
|
||||
UNIMPL_FUNC(EnableTheming, 1);
|
||||
UNIMPL_FUNC(GetCurrentThemeName, 6);
|
||||
UNIMPL_FUNC(GetThemeAppProperties, 0);
|
||||
UNIMPL_FUNC(GetThemeBackgroundContentRect, 6);
|
||||
UNIMPL_FUNC(GetThemeBackgroundExtent, 6);
|
||||
UNIMPL_FUNC(GetThemeBackgroundRegion, 6);
|
||||
UNIMPL_FUNC(GetThemeBool, 5);
|
||||
UNIMPL_FUNC(GetThemeColor, 5);
|
||||
UNIMPL_FUNC(GetThemeDocumentationProperty, 4);
|
||||
UNIMPL_FUNC(GetThemeEnumValue, 5);
|
||||
UNIMPL_FUNC(GetThemeFilename, 6);
|
||||
UNIMPL_FUNC(GetThemeFont, 6);
|
||||
UNIMPL_FUNC(GetThemeInt, 5);
|
||||
UNIMPL_FUNC(GetThemeIntList, 5);
|
||||
UNIMPL_FUNC(GetThemeMargins, 7);
|
||||
UNIMPL_FUNC(GetThemeMetric, 6);
|
||||
UNIMPL_FUNC(GetThemePartSize, 7);
|
||||
UNIMPL_FUNC(GetThemePosition, 5);
|
||||
UNIMPL_FUNC(GetThemePropertyOrigin, 5);
|
||||
UNIMPL_FUNC(GetThemeRect, 5);
|
||||
UNIMPL_FUNC(GetThemeString, 6);
|
||||
UNIMPL_FUNC(GetThemeSysBool, 2);
|
||||
UNIMPL_FUNC(GetThemeSysColor, 2);
|
||||
UNIMPL_FUNC(GetThemeSysColorBrush, 2);
|
||||
UNIMPL_FUNC(GetThemeSysFont, 3);
|
||||
UNIMPL_FUNC(GetThemeSysInt, 3);
|
||||
UNIMPL_FUNC(GetThemeSysSize, 2);
|
||||
UNIMPL_FUNC(GetThemeSysString, 4);
|
||||
UNIMPL_FUNC(GetThemeTextExtent, 9);
|
||||
UNIMPL_FUNC(GetThemeTextMetrics, 5);
|
||||
UNIMPL_FUNC(GetWindowTheme, 1);
|
||||
UNIMPL_FUNC(HitTestThemeBackground, 10);
|
||||
UNIMPL_FUNC(IsAppThemed, 0);
|
||||
UNIMPL_FUNC(IsThemeActive, 0);
|
||||
UNIMPL_FUNC(IsThemeBackgroundPartiallyTransparent, 3);
|
||||
UNIMPL_FUNC(IsThemeDialogTextureEnabled, 1);
|
||||
UNIMPL_FUNC(IsThemePartDefined, 3);
|
||||
UNIMPL_FUNC(OpenThemeData, 2);
|
||||
UNIMPL_FUNC(SetThemeAppProperties, 1);
|
||||
UNIMPL_FUNC(SetWindowTheme, 3);
|
||||
UNIMPL_FUNC(CloseThemeData, 1, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(DrawThemeBackground, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(DrawThemeBackgroundEx, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(DrawThemeEdge, 8, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(DrawThemeIcon, 7, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(DrawThemeParentBackground, 3, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(DrawThemeText, 9, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(EnableThemeDialogTexture, 2, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(EnableTheming, 1, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetCurrentThemeName, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeAppProperties, 0, 0);
|
||||
UNIMPL_FUNC(GetThemeBackgroundContentRect, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeBackgroundExtent, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeBackgroundRegion, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeBool, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeColor, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeDocumentationProperty, 4, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeEnumValue, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeFilename, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeFont, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeInt, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeIntList, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeMargins, 7, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeMetric, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemePartSize, 7, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemePosition, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemePropertyOrigin, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeRect, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeString, 6, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeTextExtent, 9, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetThemeTextMetrics, 5, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(GetWindowTheme, 1, 0);
|
||||
UNIMPL_FUNC(HitTestThemeBackground, 10, _E_NOTIMPL);
|
||||
UNIMPL_FUNC(IsAppThemed, 0, FALSE);
|
||||
UNIMPL_FUNC(IsThemeActive, 0, FALSE);
|
||||
UNIMPL_FUNC(IsThemeBackgroundPartiallyTransparent, 3, FALSE);
|
||||
UNIMPL_FUNC(IsThemeDialogTextureEnabled, 1, FALSE);
|
||||
UNIMPL_FUNC(IsThemePartDefined, 3, FALSE);
|
||||
UNIMPL_FUNC(OpenThemeData, 2, 0);
|
||||
UNIMPL_FUNC(SetThemeAppProperties, 1, 0);
|
||||
UNIMPL_FUNC(SetWindowTheme, 3, _E_NOTIMPL);
|
||||
|
0
auxiliary/uxtheme/uxtheme.def
Normal file → Executable file
0
auxiliary/uxtheme/uxtheme.def
Normal file → Executable file
0
auxiliary/wtsapi32/makefile
Normal file → Executable file
0
auxiliary/wtsapi32/makefile
Normal file → Executable file
0
auxiliary/wtsapi32/makefile.msv
Normal file → Executable file
0
auxiliary/wtsapi32/makefile.msv
Normal file → Executable file
0
auxiliary/wtsapi32/wtsapi32.c
Normal file → Executable file
0
auxiliary/wtsapi32/wtsapi32.c
Normal file → Executable file
0
auxiliary/wtsapi32/wtsapi32.def
Normal file → Executable file
0
auxiliary/wtsapi32/wtsapi32.def
Normal file → Executable file
0
auxiliary/wtsapi32/wtsapi32.h
Normal file → Executable file
0
auxiliary/wtsapi32/wtsapi32.h
Normal file → Executable file
Reference in New Issue
Block a user