/* * JBP (Jim Peterson ): Lots of stubs needed for * libwine.a. */ #include #include #include #include #include "dde_mem.h" #include "windows.h" #include "global.h" #include "relay32.h" #include "debug.h" #include "xmalloc.h" int CallTo32_LargeStack( int (*func)(), int nbargs, ...) { va_list arglist; int i,a[32]; va_start(arglist,nbargs); for(i=0; i= GLOBAL_MAX_ALLOC_SIZE - 0x1f) return 0; if (size == 0) size = 0x20; else size = (size + 0x1f) & ~0x1f; /* Allocate the linear memory */ #ifdef CONFIG_IPC if ((flags & GMEM_DDESHARE) && Options.ipc) ptr = DDE_malloc(flags, size, &shmdata); else #endif /* CONFIG_IPC */ ptr = malloc( size ); if (!ptr) return 0; /* Allocate the selector(s) */ handle = GLOBAL_CreateBlock( flags, ptr, size, hOwner, isCode, is32Bit, isReadOnly, &shmdata); if (!handle) { free( ptr ); return 0; } if (flags & GMEM_ZEROINIT) memset( ptr, 0, size ); return handle; } HGLOBAL GLOBAL_CreateBlock( WORD flags, const void *ptr, DWORD size, HGLOBAL hOwner, BOOL isCode, BOOL is32Bit, BOOL isReadOnly, SHMDATA *shmdata) { return (HGLOBAL)ptr; } BOOL GLOBAL_FreeBlock( HGLOBAL handle ) { return 1; } HGLOBAL GlobalHandle(LPCVOID a) { fprintf(stderr,"JBP: GlobalHandle() ignored.\n"); return 0; } WIN32_builtin *RELAY32_GetBuiltinDLL(char *name) { return NULL; } void *RELAY32_GetEntryPoint(WIN32_builtin *dll, char *item, int hint) { return NULL; } extern LRESULT ACTIVATEAPP_callback(HWND,UINT,WPARAM,LPARAM); extern LRESULT AboutDlgProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT ButtonWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT CARET_Callback(HWND,UINT,WPARAM,LPARAM); extern LRESULT ColorDlgProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT ComboBoxWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT ComboLBoxWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT DesktopWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT EditWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT FileOpenDlgProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT FileSaveDlgProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT FindTextDlgProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT ListBoxWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT MDIClientWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT PopupMenuWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT PrintDlgProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT PrintSetupDlgProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT ReplaceTextDlgProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT ScrollBarWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT StaticWndProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT SystemMessageBoxProc(HWND,UINT,WPARAM,LPARAM); extern LRESULT TASK_Reschedule(HWND,UINT,WPARAM,LPARAM); LRESULT ErrorProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) { fprintf(stderr,"ERROR: ErrorProc() called!\n"); return 0; } /*********************************************************************** * GetWndProcEntry16 (not a Windows API function) * * Return an entry point from the WINPROCS dll. */ WNDPROC GetWndProcEntry16( char *name ) { #define MAP_STR_TO_PROC(str,proc) if(!strcmp(name,str))return proc MAP_STR_TO_PROC("ActivateAppProc",ACTIVATEAPP_callback); MAP_STR_TO_PROC("AboutDlgProc",AboutDlgProc); MAP_STR_TO_PROC("ButtonWndProc",ButtonWndProc); MAP_STR_TO_PROC("CARET_Callback",CARET_Callback); MAP_STR_TO_PROC("ColorDlgProc",ColorDlgProc); MAP_STR_TO_PROC("ComboBoxWndProc",ComboBoxWndProc); MAP_STR_TO_PROC("ComboLBoxWndProc",ComboLBoxWndProc); MAP_STR_TO_PROC("DefDlgProc",DefDlgProc); MAP_STR_TO_PROC("DesktopWndProc",DesktopWndProc); MAP_STR_TO_PROC("EditWndProc",EditWndProc); MAP_STR_TO_PROC("FileOpenDlgProc",FileOpenDlgProc); MAP_STR_TO_PROC("FileSaveDlgProc",FileSaveDlgProc); MAP_STR_TO_PROC("FindTextDlgProc",FindTextDlgProc); MAP_STR_TO_PROC("ListBoxWndProc",ListBoxWndProc); MAP_STR_TO_PROC("MDIClientWndProc",MDIClientWndProc); MAP_STR_TO_PROC("PopupMenuWndProc",PopupMenuWndProc); MAP_STR_TO_PROC("PrintDlgProc",PrintDlgProc); MAP_STR_TO_PROC("PrintSetupDlgProc",PrintSetupDlgProc); MAP_STR_TO_PROC("ReplaceTextDlgProc",ReplaceTextDlgProc); MAP_STR_TO_PROC("ScrollBarWndProc",ScrollBarWndProc); MAP_STR_TO_PROC("StaticWndProc",StaticWndProc); MAP_STR_TO_PROC("SystemMessageBoxProc",SystemMessageBoxProc); MAP_STR_TO_PROC("TASK_Reschedule",TASK_Reschedule); fprintf(stderr,"warning: No mapping for %s(), add one in library/miscstubs.c\n",name); return ErrorProc; }