📄 stdio.c
字号:
#include "stdio.h"
#include "unistd.h"
#include "string.h"
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void os_info(void)
{
sys_os_info();
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
int Fork(void)
{
int pid=0;
pid=sys_Fork(2);
return pid;
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void LockProc(BOOL bLock)
{
sys_LockProc((unsigned)bLock);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void WakeUpProc(HINSTANCE hInstance)
{
//Printf(0,320,"Wake Up Proc %d",hInstance);
sys_WakeUpProc((unsigned)hInstance);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void BlockProc(HINSTANCE hInstance)
{
sys_BlcokProc((unsigned)hInstance);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
HINSTANCE GetCurInstance(void)
{
return (HINSTANCE)sys_GetCurInstance();
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
HINSTANCE GetWndInstance(HWND hWnd)
{
return (HINSTANCE)sys_GetWndInstance((unsigned)hWnd);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
WNDPROC GetWndProc(HWND hWnd)
{
return (WNDPROC)sys_GetWndProc(hWnd);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
unsigned long kmalloc(unsigned long size)
{
unsigned long addr;
LockProc(TRUE);
addr=sys_kmalloc((unsigned)size);
memset((void*)addr,0,size); //<----------??关键??
LockProc(FALSE);
return addr;
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void kfree(unsigned long base,unsigned long size)
{
LockProc(TRUE);
sys_kfree((unsigned)base,(unsigned)size);
LockProc(FALSE);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void GetPagesInfo(int* TotalPages,int* FreePages)
{
sys_GetPageInfo((unsigned)TotalPages,(unsigned)FreePages);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void GetMemHoleInfo(unsigned long* HoleSize,unsigned long* HoleNum)
{
sys_GetMemHoleInfo((unsigned)HoleSize,(unsigned)HoleNum);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void RefreshMsBuf(RECT aInvRect)
{
sys_RefreshMsBuf((unsigned)&aInvRect);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
HWND RegisterWin(WINSTRUCT* pWin)
{
return (HWND)sys_RegisterWin((unsigned)pWin);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
HDC GetDC(HWND hWnd)
{
return (HDC)sys_GetDC((unsigned)hWnd);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void GetWndRect(HWND hWnd,RECT* pRect)
{
sys_GetWndRect((unsigned)hWnd,(unsigned)pRect);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
BOOL SetWndSize(HWND hWnd,int w,int h)
{
return (BOOL)sys_SetWndSize((unsigned)hWnd,(unsigned)w,(unsigned)h);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
BOOL SetWndPos(HWND hWnd,int x,int y)
{
POINT pt;
pt.x=x;
pt.y=y;
return (BOOL)sys_SetWndPos((unsigned)hWnd,(unsigned)&pt);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
BOOL SendMessage(HWND hWnd,S_Mes* Mes)
{
//HINSTANCE hInstance=GetWndInstance(hWnd);
Mes->hInstance=GetCurInstance(); //获得当前的进程号
sys_SendMessage((unsigned)hWnd,(unsigned)Mes);
//if(hInstance!=Mes->hInstance)
//BlockProc(Mes->hInstance); //要阻塞当前进程
return TRUE;
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
S_Queue* GetMsgQueue(HWND hWnd)
{
return (S_Queue*)sys_GetMsgQueue((unsigned)hWnd);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
BOOL GetMessage(S_Mes* mes,HWND hWnd,unsigned int Param1,unsigned int Param2)
{
S_Queue* MsgQueue=GetMsgQueue(hWnd);
while(1)
{
if(!QueueEmpty(MsgQueue))
{
*mes=QueueGetMessage(MsgQueue);
mes->hWnd=hWnd;
return TRUE;
}
}
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
int DispatchMessage(const S_Mes* mes)
{
WNDPROC WndProc;
HINSTANCE hInstance;
int iRet;
WndProc=GetWndProc(mes->hWnd);
hInstance=GetWndInstance(mes->hWnd);
iRet = (*WndProc)(mes->hWnd, mes->MessageType, mes->Param1, mes->Param2);
//if(hInstance!=mes->hInstance) //发送消息的不是本进程,则要唤醒发送消息进程
// WakeUpProc(mes->hInstance);
return iRet;
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
FILE* OpenFile(char* filename)
{
return (FILE*)sys_openfile((unsigned)filename);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
unsigned long ReadFile(FILE* fp,void* buf,unsigned long size)
{
LockProc(TRUE);
return sys_readfile((unsigned)fp,(unsigned)buf,(unsigned)size);
LockProc(FALSE);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void SetBelowClipRgn(HWND hWnd)
{
sys_SetBelowClipRgn((unsigned)hWnd);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void SetAboveClipRgn(HWND hWnd)
{
sys_SetAboveClipRgn((unsigned)hWnd);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void SetBelowInvalidRgn(HWND hWnd,RECT* pRect)
{
sys_SetBelowInvalidRgn((unsigned)hWnd,(unsigned)pRect);
}
//----------------------------------------------------------------------------------------------//// ////----------------------------------------------------------------------------------------------
void TextOut(HDC hdc,unsigned short x,unsigned short y,char * str)
{
RECT eRect;
int i=0;
char *p=str;
hdc->brushColor=hdc->bkColor;
if(!hdc->bTextTransparent)
HdcFillRect(hdc,x,y,x+8*strlen(str),y+16);
while(*p!='\0')
{
HdcOutAsc(hdc,x+i,y,*p++);
i+=8;
}
eRect=SetRect(x,y,x+8*strlen(str),y+16);
InvalidRectToVram(hdc,&eRect);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -