⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initgui.c

📁 详细的MiniGUI源代码
💻 C
字号:
/*	Copyright (C) 2004-2005 Li Yudong*//*** This program 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; either version 2 of the License, or** (at your option) any later version.**** This program 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 this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#include "../include/common.h"#include "../include/blockheap.h"#include "../include/mouse.h"#include "../include/keyboard.h"#include "../include/framebuffer.h"#include "../include/rect.h"#include "../include/invalidregion.h"#include "../include/clipregion.h"#include "../include/hdc.h"#include "../include/lguiapp.h"#include "../include/ipcsocket.h"#include "../include/message.h"#include "../include/regclass.h"#include "../include/shmem.h"#include "../include/caret.h"#include "../include/winnc.h"#include "../include/winbase.h"#include "../include/window.h"#include "../include/scrollbar.h"#include "../include/ipcsignal.h"#include "../include/timer.h"#include "../include/initgui.h"extern PlGUIAppStat  _lGUI_pAppStat;extern WndCaptureMouse _lGUI_wndCaptureMouse;BOOL GUIAPIInitGUIServer(){	RegisterServerControls();	InitMsgQueueHeap();	InitClipRegionHeap();	InitInvalidRegionHeap();	if(!InitFrameBuffer()){		printerror("init framebuffer error!");		return false;	}	InitShareMemServer();	CreateStockObject();	if(!InitIpcSocketServer())		return false;	RegisterTimerRoutine();	InitMouseServer();	InitKeyboard();	return true;}BOOL GUIAPI InitGUIClient(){	RegisterClientControls();	InitMsgQueueHeap();	InitClipRegionHeap();	InitInvalidRegionHeap();	if(!InitFrameBuffer()){		printerror("init framebuffer error!");		return false;	}	_lGUI_pAppStat=(PlGUIAppStat)malloc(sizeof(lGUIAppStat));	if(!_lGUI_pAppStat){		printerror("alloc memory error!");		return false;	}	memset(_lGUI_pAppStat,0,sizeof(lGUIAppStat));	_lGUI_pAppStat->pClipRgn=(PClipRegion)malloc(sizeof(ClipRegion));	if(!(_lGUI_pAppStat->pClipRgn))		return false;	memset(_lGUI_pAppStat->pClipRgn,0,sizeof(ClipRegion));	InitClipRegion(_lGUI_pAppStat->pClipRgn);	if(!InitIpcSocketClient())		return false;	InitShareMemClient();	//register signal callback function, used when server want to terminate client 	RegSignalCallBack();	//initial timer function	RegisterTimerRoutine();	InitMouseClient();	_lGUI_wndCaptureMouse.pWin=NULL;	return true;}void GUIAPI TerminateGUIServer(){	TerminateMouseServer();	TerminateKeyboard();	TerminateIpcSocket();	DestroyRegWndTable();	UnInitFrameBuffer();	DestroyClipRegionHeap();	DestroyInvalidRegionHeap();	DestroyMsgQueueHeap();	UnInitShareMem();	UnInitTimer();}void GUIAPI TerminateGUIClient(){	//main window clipregion maintained by server end.	EmptyClipRegion(_lGUI_pAppStat->pClipRgn);	free(_lGUI_pAppStat->pClipRgn);	free(_lGUI_pAppStat);	DestroyRegWndTable();	DestroyClipRegionHeap();	DestroyInvalidRegionHeap();	DestroyMsgQueueHeap();	UnInitShareMem();	TerminateIpcSocket();	//cancel the socket thread will close the socket at first	//if client close the socket,server will get this socket close event	//and will process destroy application.	UnInitTimer();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -