📄 kmisc.c
字号:
SHORT SC_GetAsyncKeyState(INT vKey) {
CALLSTACK cstk;
SHORT sRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_WMGR);
try {
sRet = (*(SHORT (*)(INT))(pci->ppfnMethods[MID_GetAsyncKeyState]))(vKey);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
sRet = 0;
}
SwitchBack();
return sRet;
}
int SC_GetDlgCtrlID(HWND hWnd) {
CALLSTACK cstk;
int iRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_WMGR);
try {
iRet = (*(int (*)(HWND))(pci->ppfnMethods[MID_GetDlgCtrlID]))(hWnd);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
iRet = 0;
}
SwitchBack();
return iRet;
}
HGDIOBJ SC_GetStockObject(int fnObject) {
CALLSTACK cstk;
HGDIOBJ hRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_GDI);
try {
hRet = (*(HGDIOBJ (*)(int))(pci->ppfnMethods[GETSTOCKOBJECT]))(fnObject);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
hRet = 0;
}
SwitchBack();
return hRet;
}
int SC_GetSystemMetrics(int nIndex) {
CALLSTACK cstk;
int iRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_WMGR);
try {
iRet = (*(int (*)(int))(pci->ppfnMethods[MID_GetSystemMetrics]))(nIndex);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
iRet = 0;
}
SwitchBack();
return iRet;
}
ATOM SC_RegisterClassWStub(CONST WNDCLASSW *lpWndClass, LPCWSTR lpszClassName, HANDLE hprcWndProc) {
CALLSTACK cstk;
ATOM aRet;
const CINFO *pci;
MapArgPtr(lpWndClass);
MapArgPtr(lpszClassName);
pci = SwitchToProc(&cstk,SH_WMGR);
try {
aRet = (*(ATOM (*)(CONST WNDCLASSW *, LPCWSTR, HANDLE))(pci->ppfnMethods[MID_RegisterClassWStub]))(lpWndClass,lpszClassName,hprcWndProc);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
aRet = 0;
}
SwitchBack();
return aRet;
}
UINT SC_RegisterClipboardFormatW(LPCWSTR lpszFormat) {
CALLSTACK cstk;
UINT uRet;
const CINFO *pci;
MapArgPtr(lpszFormat);
pci = SwitchToProc(&cstk,SH_WMGR);
try {
uRet = (*(UINT (*)(LPCWSTR))(pci->ppfnMethods[MID_RegisterClipboardFormatW]))(lpszFormat);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
uRet = 0;
}
SwitchBack();
return uRet;
}
int SC_SetBkMode(HDC hdc,int iBkMode) {
CALLSTACK cstk;
int iRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_GDI);
try {
iRet = (*(int (*)(HDC,int))(pci->ppfnMethods[SETBKMODE]))(hdc,iBkMode);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
iRet = 0;
}
SwitchBack();
return iRet;
}
COLORREF SC_SetTextColor(HDC hdc,COLORREF crColor) {
CALLSTACK cstk;
COLORREF cRet ;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_GDI);
try {
cRet = (*(COLORREF (*)(HDC,COLORREF))(pci->ppfnMethods[SETTEXTCOLOR]))(hdc,crColor);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
cRet = 0;
}
SwitchBack();
return cRet;
}
BOOL SC_InvalidateRect(HWND hwnd, LPCRECT prc, BOOL fErase) {
CALLSTACK cstk;
BOOL bRet;
const CINFO *pci;
MapArgPtr(prc);
pci = SwitchToProc(&cstk,SH_WMGR);
try {
bRet = (*(BOOL (*)(HWND, LPCRECT, BOOL))(pci->ppfnMethods[MID_InvalidateRect]))(hwnd,prc,fErase);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
bRet = 0;
}
SwitchBack();
return bRet;
}
BOOL SC_TransparentImage(HDC hdcDest, int nXDest, int nYDest, int nWidthDest, int nHeightDest,
HANDLE hImgSrc, int nXSrc, int nYSrc, int nWidthSrc, int nHeightSrc, COLORREF crTransparentColor) {
CALLSTACK cstk;
BOOL bRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_GDI);
try {
bRet = (*(BOOL (*)(HDC,int,int,int,int,HANDLE,int,int,int,int,COLORREF))(pci->ppfnMethods[TRANSPARENTIMAGE]))
(hdcDest, nXDest, nYDest, nWidthDest, nHeightDest, hImgSrc, nXSrc, nYSrc, nWidthSrc, nHeightSrc, crTransparentColor);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
bRet = 0;
}
SwitchBack();
return bRet;
}
BOOL SC_IsDialogMessageW(HWND hDlg, LPMSG lpMsg) {
CALLSTACK cstk;
BOOL bRet;
const CINFO *pci;
MapArgPtr(lpMsg);
pci = SwitchToProc(&cstk,SH_WMGR);
try {
bRet = (*(BOOL (*)(HWND,LPMSG))(pci->ppfnMethods[MID_IsDialogMessageW]))(hDlg,lpMsg);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
bRet = 0;
}
SwitchBack();
return bRet;
}
BOOL SC_PostMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) {
CALLSTACK cstk;
BOOL bRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_WMGR);
try {
bRet = (*(BOOL (*)(HWND,UINT,WPARAM,LPARAM))(pci->ppfnMethods[MID_PostMessageW]))(hWnd,Msg,wParam,lParam);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
bRet = 0;
}
SwitchBack();
return bRet;
}
BOOL SC_IsWindowVisible(HWND hWnd) {
CALLSTACK cstk;
BOOL bRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_WMGR);
try {
bRet = (*(BOOL (*)(HWND))(pci->ppfnMethods[MID_IsWindowVisible]))(hWnd);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
bRet = 0;
}
SwitchBack();
return bRet;
}
SHORT SC_GetKeyState(int nVirtKey){
CALLSTACK cstk;
SHORT sRet;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_WMGR);
try {
sRet = (*(SHORT (*)(int))(pci->ppfnMethods[MID_GetKeyState]))(nVirtKey);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
sRet = 0;
}
SwitchBack();
return sRet;
}
HDC SC_BeginPaint(HWND hwnd, LPPAINTSTRUCT pps) {
CALLSTACK cstk;
HDC hRet;
const CINFO *pci;
MapArgPtr(pps);
pci = SwitchToProc(&cstk,SH_WMGR);
try {
hRet = (*(HDC (*)(HWND,LPPAINTSTRUCT))(pci->ppfnMethods[MID_BeginPaint]))(hwnd,pps);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
hRet = 0;
}
SwitchBack();
return hRet;
}
BOOL SC_EndPaint(HWND hwnd, LPPAINTSTRUCT pps) {
CALLSTACK cstk;
BOOL bRet;
const CINFO *pci;
MapArgPtr(pps);
pci = SwitchToProc(&cstk,SH_WMGR);
try {
bRet = (*(BOOL (*)(HWND,LPPAINTSTRUCT))(pci->ppfnMethods[MID_EndPaint]))(hwnd,pps);
} except(EXCEPTION_EXECUTE_HANDLER) {
(*(void (*)(void))pGwesHandler)();
bRet = 0;
}
SwitchBack();
return bRet;
}
LONG SC_RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult) {
CALLSTACK cstk;
LONG lRet ;
const CINFO *pci;
MapArgPtr(lpSubKey);
MapArgPtr(phkResult);
pci = SwitchToProc(&cstk,SH_FILESYS_APIS);
lRet = (*(LONG (*)(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY))(pci->ppfnMethods[23]))(hKey,lpSubKey,ulOptions,samDesired,phkResult);
SwitchBack();
return lRet;
}
LONG SC_RegCloseKey(HKEY hKey) {
CALLSTACK cstk;
LONG lRet ;
const CINFO *pci;
pci = SwitchToProc(&cstk,SH_FILESYS_APIS);
lRet = (*(LONG (*)(HKEY))(pci->ppfnMethods[17]))(hKey);
SwitchBack();
return lRet;
}
LONG SC_RegQueryValueExW(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData) {
CALLSTACK cstk;
LONG lRet ;
const CINFO *pci;
MapArgPtr(lpValueName);
MapArgPtr(lpReserved);
MapArgPtr(lpType);
MapArgPtr(lpData);
MapArgPtr(lpcbData);
pci = SwitchToProc(&cstk,SH_FILESYS_APIS);
lRet = (*(LONG (*)(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD))(pci->ppfnMethods[25]))(hKey,lpValueName,lpReserved,lpType,lpData,lpcbData);
SwitchBack();
return lRet;
}
LONG SC_RegCreateKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPWSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition) {
CALLSTACK cstk;
LONG lRet ;
const CINFO *pci;
MapArgPtr(lpSubKey);
MapArgPtr(lpClass);
MapArgPtr(lpSecurityAttributes);
MapArgPtr(phkResult);
MapArgPtr(lpdwDisposition);
pci = SwitchToProc(&cstk,SH_FILESYS_APIS);
lRet = (*(LONG (*)(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,LPDWORD))(pci->ppfnMethods[18]))(hKey,lpSubKey,Reserved,lpClass,dwOptions,samDesired,lpSecurityAttributes,phkResult,lpdwDisposition);
SwitchBack();
return lRet;
}
HANDLE SC_CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile){
CALLSTACK cstk;
HANDLE h;
const CINFO *pci;
MapArgPtr(lpFileName);
MapArgPtr(lpSecurityAttributes);
pci = SwitchToProc(&cstk,SH_FILESYS_APIS);
h = (*(HANDLE (*)(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE))(pci->ppfnMethods[9]))(lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile);
SwitchBack();
return h;
}
BOOL SC_ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped) {
CALLSTACK cstk;
BOOL b = FALSE;
const CINFO *pci;
MapArgPtr(lpBuffer);
MapArgPtr(lpNumberOfBytesRead);
MapArgPtr(lpOverlapped);
if (!(pci = SwitchToProcHandle(&cstk,&hFile,HT_FILE)))
SetLastError(ERROR_INVALID_HANDLE);
else {
__try {
b = (*(BOOL (*)(HANDLE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED))(pci->ppfnMethods[2]))(hFile,lpBuffer,nNumberOfBytesToRead,lpNumberOfBytesRead,lpOverlapped);
} __except (EXCEPTION_EXECUTE_HANDLER) {
SetLastError(ERROR_INVALID_PARAMETER);
}
SwitchBack();
}
return b;
}
CEOID SC_CeWriteRecordProps(HANDLE hDbase, CEOID oidRecord, WORD cPropID, CEPROPVAL *rgPropVal) {
CALLSTACK cstk;
CEOID oid = 0;
const CINFO *pci;
MapArgPtr(rgPropVal);
if (!(pci = SwitchToProcHandle(&cstk,&hDbase,HT_DBFILE)))
SetLastError(ERROR_INVALID_HANDLE);
else {
__try {
oid = (*(CEOID (*)(HANDLE,CEOID,WORD,CEPROPVAL *))(pci->ppfnMethods[5]))(hDbase,oidRecord,cPropID,rgPropVal);
} __except (EXCEPTION_EXECUTE_HANDLER) {
SetLastError(ERROR_INVALID_PARAMETER);
}
SwitchBack();
}
return oid;
}
BOOL SC_ReadFileWithSeek(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped, DWORD dwLowOffset, DWORD dwHighOffset) {
CALLSTACK cstk;
BOOL b = 0;
const CINFO *pci;
MapArgPtr(lpBuffer);
MapArgPtr(lpNumberOfBytesRead);
MapArgPtr(lpOverlapped);
if (!(pci = SwitchToProcHandle(&cstk,&hFile,HT_FILE)))
SetLastError(ERROR_INVALID_HANDLE);
else {
__try {
b = (*(BOOL (*)(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED, DWORD, DWORD))(pci->ppfnMethods[12]))
(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped, dwLowOffset, dwHighOffset);
} __except (EXCEPTION_EXECUTE_HANDLER) {
SetLastError(ERROR_INVALID_PARAMETER);
}
SwitchBack();
}
return b;
}
BOOL SC_WriteFileWithSeek(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped, DWORD dwLowOffset, DWORD dwHighOffset) {
CALLSTACK cstk;
BOOL b = 0;
const CINFO *pci;
MapArgPtr(lpBuffer);
MapArgPtr(lpNumberOfBytesWritten);
MapArgPtr(lpOverlapped);
if (!(pci = SwitchToProcHandle(&cstk,&hFile,HT_FILE)))
SetLastError(ERROR_INVALID_HANDLE);
else {
__try {
b = (*(BOOL (*)(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED, DWORD, DWORD))(pci->ppfnMethods[13]))
(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped, dwLowOffset, dwHighOffset);
} __except (EXCEPTION_EXECUTE_HANDLER) {
SetLastError(ERROR_INVALID_PARAMETER);
}
SwitchBack();
}
return b;
}
BOOL SC_CloseHandle(HANDLE hObj) {
CALLSTACK cstk;
BOOL b = FALSE;
const CINFO *pci;
if (!(pci = SwitchToProcHandleClosing(&cstk,&hObj,&b))) {
if (!b)
SetLastError(ERROR_INVALID_HANDLE);
} else {
__try {
b = (*(BOOL (*)(HANDLE))(pci->ppfnMethods[0]))(hObj);
} __except (EXCEPTION_EXECUTE_HANDLER) {
SetLastError(ERROR_INVALID_PARAMETER);
}
SwitchBack();
}
return b;
}
BOOL SC_DeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped) {
CALLSTACK cstk;
BOOL b = FALSE;
const CINFO *pci;
MapArgPtr(lpInBuf);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -