Steven Edwards wanted me to commit this.

This adds a vew basic stubs of the SkyOS libraries libsky and libskygi. This actually was an experiment if SkyOS apps run in ReactOS/Win/WINE. It gets a slightly patched (only the optional PE header needs to be set to the right subsys code) version of TicTacToe released in the SkyOS forums. It doesn't crash but also doesn't work yet of course, but it successfully launches and calls the functions as you can see in the debug output.

svn path=/trunk/; revision=10501
This commit is contained in:
Thomas Bluemel 2004-08-12 02:50:35 +00:00
parent cb9fb81c44
commit 7dd153e40e
21 changed files with 985 additions and 0 deletions

View file

@ -0,0 +1,6 @@
/*
* ReactOS SkyOS headers
*/
#include <rosky/structs.h>

View file

@ -0,0 +1,211 @@
#ifndef __RSK_STRUCTS_H
#define __RSK_STRUCTS_H
typedef unsigned int COLOR;
typedef struct region
{
int x1;
int y1;
int x2;
int y2;
} s_region;
typedef struct s_gi_msg
{
HANDLE win;
unsigned int type;
unsigned int para1;
unsigned int para2;
s_region rect;
struct s_gi_msg *next;
struct s_gi_msg *prev;
unsigned long long timestamp;
} s_gi_msg;
typedef struct DDB
{
unsigned int color;
unsigned int width;
unsigned int height;
unsigned char *data;
unsigned int palette_size;
unsigned int transcolor;
unsigned char trans;
unsigned char *bAndMask;
unsigned char bUseAndMask;
unsigned int uiAndMaskWidth;
unsigned int uiAndMaskHeight;
COLOR *palette;
} DDB;
typedef struct DIB
{
unsigned int color;
unsigned int width;
unsigned int height;
unsigned char *data;
unsigned int palette_size;
unsigned int transcolor;
unsigned char trans;
unsigned char *bAndMask;
unsigned char bUseAndMask;
unsigned int uiAndMaskWidth;
unsigned int uiAndMaskHeight;
unsigned int uiFlags;
COLOR *palette;
} DIB;
typedef struct GC
{
unsigned int type;
HANDLE window;
DIB *hDIB;
unsigned int width;
unsigned int height;
s_region *clip;
COLOR fg_color;
COLOR bg_color;
COLOR trans_color;
unsigned int uiTransparentLevel;
unsigned int flags;
unsigned int fontIndex;
unsigned int fontSize;
unsigned int fontFlags;
} GC;
typedef struct sBlit
{
DIB *hDIB;
DDB *hDDB;
int iDestX;
int iDestY;
int iSrcX;
int iSrcY;
int iWidth;
int iHeight;
unsigned int uiFlags;
unsigned int uiReserved0;
unsigned int uiReserved1;
unsigned int uiReserved2;
unsigned int uiReserved3;
unsigned int uiReserved4;
unsigned int uiReserved5;
unsigned int uiReserved6;
unsigned int uiReserved7;
unsigned int uiReserved8;
unsigned int uiReserved9;
} sBlit;
typedef struct widget_dynbmp_item
{
DIB *hDib;
unsigned char *rawData;
struct widget_dynbmp_item *next;
} widget_dynbmp_item;
typedef struct widget_dynbmp
{
unsigned int state;
unsigned int trans;
unsigned int transcolor;
unsigned int thread_id;
unsigned int timer_id;
widget_dynbmp_item *first;
widget_dynbmp_item *selected;
} widget_dynbmp;
typedef struct widget_popup
{
unsigned int uiItemHeight;
unsigned int uiFlags;
HANDLE hFont;
unsigned int uiFontFlags;
unsigned int uiFontSize;
unsigned int uiColorSelectedBack;
unsigned int uiColorSelectedFore;
unsigned int uiColorBack;
unsigned int uiColorFore;
unsigned int uiWindowBackColor;
unsigned int uiSpacingX;
} widget_popup;
typedef struct widget_menu_item
{
unsigned char text[255];
unsigned int ID;
unsigned int flags;
struct widget_menu_item *next;
struct widget_menu *child;
unsigned int focus;
unsigned int enabled;
unsigned int x;
HANDLE icon;
DIB *hDIB;
unsigned int has_icon;
/* sub items */
unsigned int width;
unsigned int count;
} widget_menu_item;
typedef struct widget_menu
{
unsigned char focus;
unsigned int count;
unsigned int width;
unsigned int has_icons;
widget_menu_item *items;
widget_dynbmp *animation;
widget_popup *pPopUpData;
unsigned int uiLineColor;
unsigned int uiBackGroundColor;
} widget_menu;
typedef struct app_para
{
unsigned char cpName[255];
unsigned int ulX;
unsigned int ulY;
unsigned int ulWidth;
unsigned int ulHeight;
void *win_func;
unsigned int ulStyle;
unsigned int ulBackGround;
unsigned int ulAppIcon;
widget_menu *pMenu;
} app_para;
typedef struct s_window
{
unsigned char name[255];
unsigned int x;
unsigned int y;
unsigned int height;
unsigned int width;
unsigned int orgx;
unsigned int orgy;
unsigned long (*win_func)(HANDLE win, s_gi_msg *m);
HANDLE handle;
struct s_window *parent;
struct s_window *child;
struct s_window *next;
unsigned char focus;
struct s_window *focus_win;
void *windowData;
unsigned int windowDataSize;
unsigned int flags;
int origin_x;
int origin_y;
} s_window;
#endif /* __RSK_STRUCTS_H */

View file

@ -0,0 +1,55 @@
#
# ReactOS SkyOS implementation
#
PATH_TO_TOP = ../..
include $(PATH_TO_TOP)/rules.mak
SKY_LIBS = libsky libskygi
all: $(SKY_LIBS)
depends:
implib: $(SKY_LIBS:%=%_implib)
test: $(SKY_LIBS:%=%_test)
clean: $(SKY_LIBS:%=%_clean)
install: $(SKY_LIBS:%=%_install)
bootcd: $(SKY_LIBS:%=%_bootcd)
.PHONY: all depends implib clean install bootcd
#
# Sky Libs
#
$(SKY_LIBS): %:
$(MAKE) -C $*
$(SKY_LIBS:%=%_implib): %_implib:
$(MAKE) -C $* implib
$(SKY_LIBS:%=%_test): %_test:
$(MAKE) -C $* test
$(SKY_LIBS:%=%_clean): %_clean:
$(MAKE) -C $* clean
$(SKY_LIBS:%=%_install): %_install:
$(MAKE) -C $* install
$(SKY_LIBS:%=%_bootcd): %_bootcd:
$(MAKE) -C $* bootcd
.PHONY: $(SKY_LIBS) $(SKY_LIBS:%=%_implib) $(SKY_LIBS:%=%_test) \
$(SKY_LIBS:%=%_clean) $(SKY_LIBS:%=%_install) \
$(SKY_LIBS:%=%_bootcd)
etags:
find . -name "*.[ch]" -print | etags --language=c -

View file

@ -0,0 +1,8 @@
*.coff
*.dll
*.d
*.a
*.o
*.sym
*.map
*.tmp

View file

@ -0,0 +1,44 @@
# $Id: Makefile,v 1.1 2004/08/12 02:50:35 weiden Exp $
PATH_TO_TOP = ../../..
TARGET_TYPE = dynlink
TARGET_NAME = libsky
TARGET_INSTALLDIR = system32
TARGET_BASE = 0x71c10000
TARGET_CFLAGS = \
-I./include \
-Wall \
-Werror \
-fno-builtin
TARGET_LFLAGS = -nostartfiles -nostdlib
TARGET_SDKLIBS = ntdll.a kernel32.a
TARGET_ENTRY = 0x00000000
TARGET_GCCLIBS = gcc
TARGET_PCH =
TARGET_CLEAN =
TARGET_OBJECTS = libsky.o stubs.o
DEP_OBJECTS = $(TARGET_OBJECTS)
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
include $(TOOLS_PATH)/depend.mk
%/TAGS:
etags -o $(@D)/TAGS $(@D)/\*.c
etags: ./TAGS

View file

@ -0,0 +1,41 @@
/*
* ReactOS kernel
* Copyright (C) 2004 ReactOS Team
*
* 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: libsky.c,v 1.1 2004/08/12 02:50:35 weiden Exp $
*
* PROJECT: SkyOS library
* FILE: lib/libsky/libsky.c
* PURPOSE: SkyOS library
*
* UPDATE HISTORY:
* 08/12/2004 Created
*/
#include <windows.h>
#include "libsky.h"
#include "resource.h"
/*
* @implemented
*/
void __cdecl
__to_kernel(int ret)
{
DBG("__to_kernel: ret=0x%x\n", ret);
ExitProcess(ret);
}

View file

@ -0,0 +1,13 @@
LIBRARY libsky.dll
EXPORTS
__libc_init_memory
__to_kernel
_alloca
ctor_dtor_initialize=ctor_dtor_initialize
get_usec_counter
rand
srand
strcpy
; EOF

View file

@ -0,0 +1,13 @@
LIBRARY acledit.dll
EXPORTS
__libc_init_memory=__libc_init_memory
__to_kernel=__to_kernel
_alloca=NTDLL._alloca_probe
ctor_dtor_initialize=ctor_dtor_initialize
get_usec_counter=get_usec_counter
rand=MSVCRT.rand
srand=MSVCRT.srand
strcpy=NTDLL.strcpy
; EOF

View file

@ -0,0 +1,9 @@
#ifndef __LIBSKY_H
#define __LIBSKY_H
#define DBG DbgPrint
#define STUB DbgPrint("Stub in %s:%i: ", __FILE__, __LINE__); DbgPrint
#endif /* __LIBSKY_H */
/* EOF */

View file

@ -0,0 +1,40 @@
#include <reactos/resource.h>
#include <defines.h>
#include "resource.h"
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
VS_VERSION_INFO VERSIONINFO
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "ReactOS SkyOS library\0"
VALUE "FileVersion", RES_STR_FILE_VERSION
VALUE "InternalName", "libsky\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
VALUE "OriginalFilename", "libsky.dll\0"
VALUE "ProductName", RES_STR_PRODUCT_NAME
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

View file

@ -0,0 +1,6 @@
#ifndef __LIBSKY_RESOURCE_H
#define __LIBSKY_RESOURCE_H
#endif /* __LIBSKY_RESOURCE_H */
/* EOF */

View file

@ -0,0 +1,48 @@
/* $Id: stubs.c,v 1.1 2004/08/12 02:50:35 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: SkyOS library
* FILE: lib/libsky/stubs.c
* PURPOSE: libsky.dll stubs
* NOTES: If you implement a function, remove it from this file
*
* UPDATE HISTORY:
* 08/12/2004 Created
*/
#include <windows.h>
#include <libsky.h>
/*
* @unimplemented
*/
void __cdecl
__libc_init_memory(void * end,
void * __bss_end__,
void * __bss_start__)
{
STUB("__libc_init_memory: end=0x%x __bss_end__=0x%x __bss_start__=0x%x\n", end, __bss_end__, __bss_start__);
}
/*
* @unimplemented
*/
void __cdecl
ctor_dtor_initialize(void * __CTOR_LIST__,
void * __DTOR_LIST__,
void * unknown)
{
STUB("ctor_dtor_initialize: __CTOR_LIST__=0x%x __DTOR_LIST__=0x%x unknown=0x%x\n", __CTOR_LIST__, __DTOR_LIST__, unknown);
}
/*
* @unimplemented
*/
unsigned long long __cdecl
get_usec_counter(void)
{
STUB("get_usec_counter() returns 0x0LL!\n");
return 0x0LL;
}
/* EOF */

View file

@ -0,0 +1,8 @@
*.coff
*.dll
*.d
*.a
*.o
*.sym
*.map
*.tmp

View file

@ -0,0 +1,44 @@
# $Id: Makefile,v 1.1 2004/08/12 02:50:35 weiden Exp $
PATH_TO_TOP = ../../..
TARGET_TYPE = dynlink
TARGET_NAME = libskygi
TARGET_INSTALLDIR = system32
TARGET_BASE = 0x71b10000
TARGET_CFLAGS = \
-I./include \
-Wall \
-Werror \
-fno-builtin
TARGET_LFLAGS = -nostartfiles -nostdlib
TARGET_SDKLIBS = ntdll.a kernel32.a
TARGET_ENTRY = 0x00000000
TARGET_GCCLIBS = gcc
TARGET_PCH =
TARGET_CLEAN =
TARGET_OBJECTS = libskygi.o stubs.o
DEP_OBJECTS = $(TARGET_OBJECTS)
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
include $(TOOLS_PATH)/depend.mk
%/TAGS:
etags -o $(@D)/TAGS $(@D)/\*.c
etags: ./TAGS

View file

@ -0,0 +1,34 @@
/*
* ReactOS kernel
* Copyright (C) 2004 ReactOS Team
*
* 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: libskygi.c,v 1.1 2004/08/12 02:50:35 weiden Exp $
*
* PROJECT: SkyOS GI library
* FILE: lib/libskygi/libskygi.c
* PURPOSE: SkyOS GI library
*
* UPDATE HISTORY:
* 08/12/2004 Created
*/
#include <windows.h>
#include <rosky/rosky.h>
#include "libskygi.h"
#include "resource.h"
/* EOF */

View file

@ -0,0 +1,28 @@
LIBRARY libsky.dll
EXPORTS
DefaultWindowFunction
GC_ResetBlit
GC_blit
GC_create_connected
GC_destroy
GC_draw_line
GC_draw_rect_fill
GC_set_bg_color
GI_ShowApplicationWindow
GI_add_menu_item
GI_add_menu_sub
GI_create_DDB_from_DIB
GI_create_app
GI_create_menu
GI_create_menu_item
GI_destroy_window
GI_dispatch_message
GI_kill_timer
GI_load_bitmap
GI_messagebox
GI_post_quit
GI_set_high_timer
GI_wait_message
; EOF

View file

@ -0,0 +1,28 @@
LIBRARY acledit.dll
EXPORTS
DefaultWindowFunc=DefaultWindowFunc
GC_ResetBlit=GC_ResetBlit
GC_blit=GC_blit
GC_create_connected=GC_create_connected
GC_destroy=GC_destroy
GC_draw_line=GC_draw_line
GC_draw_rect_fill=GC_draw_rect_fill
GC_set_bg_color=GC_set_bg_color
GI_ShowApplicationWindow=GI_ShowApplicationWindow
GI_add_menu_item=GI_add_menu_item
GI_add_menu_sub=GI_add_menu_sub
GI_create_DDB_from_DIB=GI_create_DDB_from_DIB
GI_create_app=GI_create_app
GI_create_menu=GI_create_menu
GI_create_menu_item=GI_create_menu_item
GI_destroy_window=GI_destroy_window
GI_dispatch_message=GI_dispatch_message
GI_kill_timer=GI_kill_timer
GI_load_bitmap=GI_load_bitmap
GI_messagebox=GI_messagebox
GI_post_quit=GI_post_quit
GI_set_high_timer=GI_set_high_timer
GI_wait_message=GI_wait_message
; EOF

View file

@ -0,0 +1,9 @@
#ifndef __LIBSKY_H
#define __LIBSKY_H
#define DBG DbgPrint
#define STUB DbgPrint("Stub in %s:%i: ", __FILE__, __LINE__); DbgPrint
#endif /* __LIBSKY_H */
/* EOF */

View file

@ -0,0 +1,40 @@
#include <reactos/resource.h>
#include <defines.h>
#include "resource.h"
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
VS_VERSION_INFO VERSIONINFO
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "ReactOS SkyOS GI library\0"
VALUE "FileVersion", RES_STR_FILE_VERSION
VALUE "InternalName", "libskygi\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
VALUE "OriginalFilename", "libskygi.dll\0"
VALUE "ProductName", RES_STR_PRODUCT_NAME
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

View file

@ -0,0 +1,6 @@
#ifndef __LIBSKY_RESOURCE_H
#define __LIBSKY_RESOURCE_H
#endif /* __LIBSKY_RESOURCE_H */
/* EOF */

View file

@ -0,0 +1,294 @@
/* $Id: stubs.c,v 1.1 2004/08/12 02:50:35 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: SkyOS GI library
* FILE: lib/libskygi/stubs.c
* PURPOSE: libskygi.dll stubs
* NOTES: If you implement a function, remove it from this file
*
* UPDATE HISTORY:
* 08/12/2004 Created
*/
#include <windows.h>
#include <rosky/rosky.h>
#include "libskygi.h"
/*
* @unimplemented
*/
int __cdecl
DefaultWindowFunc(HANDLE hWin,
s_gi_msg *pMsg)
{
STUB("DefaultWindowFunc(0x%x, 0x%x) returns 0!\n", hWin, pMsg);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GC_ResetBlit(sBlit *pBlit)
{
STUB("GC_ResetBlit(0x%x) returns 0!\n", pBlit);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GC_blit(GC *gc,
sBlit *pBlit)
{
STUB("GC_blit(0x%x, 0x%x) returns 0!\n", gc, pBlit);
return 0;
}
/*
* @unimplemented
*/
GC* __cdecl
GC_create_connected(unsigned int type,
unsigned int width,
unsigned int height,
HANDLE win)
{
STUB("GC_create_connected(0x%x, 0x%x, 0x%x, 0x%x) returns NULL!\n", type, width, height, win);
return NULL;
}
/*
* @unimplemented
*/
int __cdecl
GC_destroy(GC *gc)
{
STUB("GC_destroy(0x%x) returns 0!\n", gc);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GC_draw_line(GC *gc,
int x1,
int y1,
int x2,
int y2)
{
STUB("GC_draw_line(0x%x, 0x%x, 0x%x, 0x%x, 0x%x) returns 0!\n", gc, x1, y1, x2, y2);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GC_draw_rect_fill(GC *gc,
int x,
int y,
int width,
int height)
{
STUB("GC_draw_rect_fill(0x%x, 0x%x, 0x%x, 0x%x, 0x%x) returns 0!\n", gc, x, y, width, height);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GC_set_bg_color(GC *gc,
COLOR col)
{
STUB("GC_set_bg_color(0x%x, 0x%x) returns 0!\n", gc, col);
return 0;
}
/*
* @unimplemented
*/
HRESULT __cdecl
GI_ShowApplicationWindow(HANDLE hWnd)
{
STUB("GI_ShowApplicationWindow(0x%x) returns 0!\n", hWnd);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GI_add_menu_item(widget_menu *menu,
widget_menu_item *item)
{
STUB("GI_add_menu_item(0x%x, 0x%x) returns 0!\n", menu, item);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GI_add_menu_sub(widget_menu *menu,
widget_menu_item *item,
widget_menu *sub)
{
STUB("GI_add_menu_sub(0x%x, 0x%x, 0x%x) returns 0!\n", menu, item, sub);
return 0;
}
/*
* @unimplemented
*/
DDB* __cdecl
GI_create_DDB_from_DIB(DIB *dib)
{
STUB("GI_create_DDB_from_DIB(0x%x) returns NULL!\n", dib);
return NULL;
}
/*
* @unimplemented
*/
HANDLE __cdecl
GI_create_app(app_para *p)
{
STUB("GI_create_app(0x%x) returns NULL!\n", p);
return NULL;
}
/*
* @unimplemented
*/
widget_menu* __cdecl
GI_create_menu(HANDLE win)
{
STUB("GI_create_menu(0x%x) returns NULL!\n", win);
return NULL;
}
/*
* @unimplemented
*/
widget_menu_item* __cdecl
GI_create_menu_item(unsigned char *text,
unsigned int ID,
unsigned int flags,
unsigned int enabled)
{
STUB("GI_create_menu_item(0x%x, 0x%x, 0x%x, 0x%x) returns NULL!\n", text, ID, flags, enabled);
return NULL;
}
/*
* @unimplemented
*/
int __cdecl
GI_destroy_window(s_window *win)
{
STUB("GI_destroy_window(0x%x) returns 0!\n", win);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GI_dispatch_message(s_window *win,
s_gi_msg *m)
{
STUB("GI_dispatch_message(0x%x, 0x%x) returns 0!\n", win, m);
return 0;
}
/*
* @unimplemented
*/
int __cdecl
GI_kill_timer(unsigned int uiID)
{
STUB("GI_kill_timer(0x%x) returns 0!\n", uiID);
return 0;
}
/*
* @unimplemented
*/
DIB* __cdecl
GI_load_bitmap(char *filename,
unsigned int ImageIndex)
{
STUB("GI_load_bitmap(0x%x, 0x%x) returns NULL!\n", filename, ImageIndex);
return NULL;
}
/*
* @unimplemented
*/
int __cdecl
GI_messagebox(HANDLE hWnd,
unsigned int flags,
char *titel,
char *fmt,
...)
{
STUB("GI_messagebox(0x%x, 0x%x, 0x%x, 0x%x, ...) returns 0!\n", hWnd, flags, titel, fmt);
return 0;
}
/*
* @unimplemented
*/
void __cdecl
GI_post_quit(HANDLE win)
{
STUB("GI_post_quit(0x%x)\n", win);
}
/*
* @unimplemented
*/
unsigned int __cdecl
GI_set_high_timer(HANDLE w,
unsigned int msec)
{
STUB("GI_set_high_timer(0x%x, 0x%x) returns 0!\n", w, msec);
return 0;
}
/*
* @unimplemented
*/
unsigned int __cdecl
GI_wait_message(s_gi_msg *m,
s_window* w)
{
STUB("GI_wait_message(0x%x, 0x%x) returns 0!\n", m, w);
return 0;
}
/* EOF */