Changeset 20067
- Timestamp:
- Dec 18, 2002, 1:28:08 PM (22 years ago)
- Location:
- tags/trunk/src/user32
- Files:
-
- 4 added
- 6 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified tags/trunk/src/user32/USER32.DEF ¶
r19746 r20067 1 ; $Id: USER32.DEF,v 1.7 4 2002-09-03 12:34:00sandervl Exp $1 ; $Id: USER32.DEF,v 1.75 2002-12-18 12:28:01 sandervl Exp $ 2 2 3 3 LIBRARY USER32 INITINSTANCE TERMINSTANCE … … 203 203 DrawTextExW = _DrawTextExW@24 @167 204 204 DrawTextW = _DrawTextW@20 @168 205 EditWndProc = _EditWndProc @16@169205 EditWndProc = _EditWndProcA@16 @169 206 206 EmptyClipboard = _EmptyClipboard@0 @170 207 207 EnableMenuItem = _EnableMenuItem@12 @171 -
TabularUnified tags/trunk/src/user32/controls.cpp ¶
r13384 r20067 1 /* $Id: controls.cpp,v 1.1 0 2000-02-16 14:34:08sandervl Exp $ */1 /* $Id: controls.cpp,v 1.11 2002-12-18 12:28:02 sandervl Exp $ */ 2 2 /* File: controls.cpp -- Win32 common controls 3 3 * … … 13 13 #include "static.h" 14 14 #include "scroll.h" 15 #include "combo.h" //listbox,combo,edit16 15 #include "win32wmdiclient.h" 17 16 #include "win32dlg.h" 18 17 #include "win32wdesktop.h" 18 #include "win32class.h" 19 19 #include "winswitch.h" 20 20 #include "icontitle.h" 21 21 #include "menu.h" 22 22 #include "controls.h" 23 #include "ctrlconf.h" 23 24 24 25 #define DBG_LOCALLOG DBG_controls … … 51 52 52 53 dprintf(("Register LISTBOX class")); 53 controlAtoms[LISTBOX_CONTROL] = LISTBOX_Register(); 54 controlAtoms[LISTBOX_CONTROL] = 55 InternalRegisterClass((LPSTR)LISTBOX_builtin_class.name, 56 LISTBOX_builtin_class.style, 57 LISTBOX_builtin_class.procA, 58 LISTBOX_builtin_class.procW, 59 LISTBOX_builtin_class.extra, 60 LISTBOX_builtin_class.cursor, 61 LISTBOX_builtin_class.brush); 62 54 63 if (!controlAtoms[LISTBOX_CONTROL]) dprintf(("failed!!!")); 55 64 56 65 dprintf(("Register COMBOLBOX class")); 57 controlAtoms[COMBOLBOX_CONTROL] = COMBOLBOX_Register(); 66 controlAtoms[COMBOLBOX_CONTROL] = 67 InternalRegisterClass((LPSTR)COMBOLBOX_builtin_class.name, 68 COMBOLBOX_builtin_class.style, 69 COMBOLBOX_builtin_class.procA, 70 COMBOLBOX_builtin_class.procW, 71 COMBOLBOX_builtin_class.extra, 72 COMBOLBOX_builtin_class.cursor, 73 COMBOLBOX_builtin_class.brush); 58 74 if (!controlAtoms[COMBOLBOX_CONTROL]) dprintf(("failed!!!")); 59 75 60 76 dprintf(("Register COMBOBOX class")); 61 controlAtoms[COMBOBOX_CONTROL] = COMBOBOX_Register(); 77 controlAtoms[COMBOBOX_CONTROL] = 78 InternalRegisterClass((LPSTR)COMBO_builtin_class.name, 79 COMBO_builtin_class.style, 80 COMBO_builtin_class.procA, 81 COMBO_builtin_class.procW, 82 COMBO_builtin_class.extra, 83 COMBO_builtin_class.cursor, 84 COMBO_builtin_class.brush); 62 85 if (!controlAtoms[COMBOBOX_CONTROL]) dprintf(("failed!!!")); 63 86 64 87 dprintf(("Register EDIT class")); 65 controlAtoms[EDIT_CONTROL] = EDIT_Register(); 88 controlAtoms[EDIT_CONTROL] = 89 InternalRegisterClass((LPSTR)EDIT_builtin_class.name, 90 EDIT_builtin_class.style, 91 EDIT_builtin_class.procA, 92 EDIT_builtin_class.procW, 93 EDIT_builtin_class.extra, 94 EDIT_builtin_class.cursor, 95 EDIT_builtin_class.brush); 66 96 if (!controlAtoms[EDIT_CONTROL]) dprintf(("failed!!!")); 67 97 68 98 dprintf(("Register MDICLIENT class")); 69 controlAtoms[MDICLIENT_CONTROL] = MDICLIENT_Register(); 99 controlAtoms[MDICLIENT_CONTROL] = 100 InternalRegisterClass((LPSTR)MDICLIENT_builtin_class.name, 101 MDICLIENT_builtin_class.style, 102 MDICLIENT_builtin_class.procA, 103 MDICLIENT_builtin_class.procW, 104 MDICLIENT_builtin_class.extra, 105 MDICLIENT_builtin_class.cursor, 106 //Default brush is ugly light gray; use this one instead 107 GetStockObject(GRAY_BRUSH)); 108 // MDICLIENT_builtin_class.brush); 70 109 if (!controlAtoms[MDICLIENT_CONTROL]) dprintf(("failed!!!")); 71 110 … … 99 138 100 139 dprintf(("Unregister LISTBOX class")); 101 if (! LISTBOX_Unregister()) dprintf(("failed!!!"));140 if (!UnregisterClassA((LPSTR)LISTBOX_builtin_class.name, NULL)) dprintf(("failed!!!")); 102 141 103 142 dprintf(("Unregister COMBOLBOX class")); 104 if (! COMBOLBOX_Unregister()) dprintf(("failed!!!"));143 if (!UnregisterClassA((LPSTR)COMBOLBOX_builtin_class.name, NULL)) dprintf(("failed!!!")); 105 144 106 145 dprintf(("Unregister COMBOBOX class")); 107 if (! COMBOBOX_Unregister()) dprintf(("failed!!!"));146 if (!UnregisterClassA((LPSTR)COMBO_builtin_class.name, NULL)) dprintf(("failed!!!")); 108 147 109 148 dprintf(("Unregister EDIT class")); 110 if (! EDIT_Unregister()) dprintf(("failed!!!"));149 if (!UnregisterClassA((LPSTR)EDIT_builtin_class.name, NULL)) dprintf(("failed!!!")); 111 150 112 151 dprintf(("Unregister MDICLIENT class")); 113 if (! MDICLIENT_Unregister()) dprintf(("failed!!!"));152 if (!UnregisterClassA((LPSTR)MDICLIENT_builtin_class.name, NULL)) dprintf(("failed!!!")); 114 153 115 154 dprintf(("Unregister DIALOG class")); -
TabularUnified tags/trunk/src/user32/controls.h ¶
r16158 r20067 1 /* $Id: controls.h,v 1. 5 2001-04-26 17:02:28sandervl Exp $ */1 /* $Id: controls.h,v 1.6 2002-12-18 12:28:02 sandervl Exp $ */ 2 2 /* 3 3 * Win32 common controls … … 45 45 #define ID_CB_EDIT 1001 46 46 47 /* internal flags */ 48 #define CBF_DROPPED 0x0001 49 #define CBF_BUTTONDOWN 0x0002 50 #define CBF_NOROLLUP 0x0004 51 #define CBF_MEASUREITEM 0x0008 52 #define CBF_FOCUSED 0x0010 53 #define CBF_CAPTURE 0x0020 54 #define CBF_EDIT 0x0040 55 #define CBF_NORESIZE 0x0080 56 #define CBF_NOTIFY 0x0100 57 #define CBF_NOREDRAW 0x0200 58 #define CBF_SELCHANGE 0x0400 59 #define CBF_NOEDITNOTIFY 0x1000 60 #define CBF_NOLBSELECT 0x2000 /* do not change current selection */ 61 #define CBF_EUI 0x8000 62 63 /* combo state struct */ 64 typedef struct 65 { 66 HWND self; 67 HWND owner; 68 UINT dwStyle; 69 HWND hWndEdit; 70 HWND hWndLBox; 71 UINT wState; 72 HFONT hFont; 73 RECT textRect; 74 RECT buttonRect; 75 RECT droppedRect; 76 INT droppedIndex; 77 INT fixedOwnerDrawHeight; 78 INT droppedWidth; /* last two are not used unless set */ 79 INT editHeight; /* explicitly */ 80 } HEADCOMBO,*LPHEADCOMBO; 81 82 /* Note, that CBS_DROPDOWNLIST style is actually (CBS_SIMPLE | CBS_DROPDOWN) */ 83 #define CB_GETTYPE( lphc ) ((lphc)->dwStyle & (CBS_DROPDOWNLIST)) 84 85 extern BOOL COMBO_FlipListbox( LPHEADCOMBO, BOOL, BOOL ); 86 47 87 #endif // __CONTROLS_H -
TabularUnified tags/trunk/src/user32/dbgwrap.cpp ¶
r19526 r20067 144 144 BOOL WIN32API SysErrorBox(DWORD x1, DWORD x2, DWORD x3); 145 145 BOOL WIN32API EndTask(DWORD x1, DWORD x2, DWORD x3); 146 LRESULT WINAPI EditWndProc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );146 LRESULT WINAPI EditWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ); 147 147 148 148 … … 169 169 DEBUGWRAP12(DragDetect) 170 170 DEBUGWRAP20(DragObject) 171 DEBUGWRAP16(EditWndProc )171 DEBUGWRAP16(EditWndProcA) 172 172 DEBUGWRAP12(EndTask) 173 173 DEBUGWRAP12(EnumDesktopWindows) -
TabularUnified tags/trunk/src/user32/mdi.c ¶
r19981 r20067 91 91 #include "pmwindow.h" 92 92 #include <heapstring.h> 93 #define WIN_GetFullHandle(a) a 93 94 #include "ctrlconf.h" 94 95 #endif 95 96 … … 142 143 static HWND MDI_MoreWindowsDialog(HWND); 143 144 static void MDI_SwapMenuItems(HWND, UINT, UINT); 144 #ifdef __WIN32OS2__145 LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );146 LRESULT WINAPI MDIClientWndProcW( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );147 #else148 145 static LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); 149 146 static LRESULT WINAPI MDIClientWndProcW( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); 150 #endif151 147 152 148 /* -------- Miscellaneous service functions ---------- … … 181 177 182 178 183 #ifndef __WIN32OS2__184 179 /********************************************************************* 185 180 * MDIClient class descriptor … … 196 191 }; 197 192 193 #ifndef __WIN32OS2__ 198 194 static MDICLIENTINFO *get_client_info( HWND client ) 199 195 { … … 2379 2375 } 2380 2376 2381 #ifdef __WIN32OS2__2382 2383 #define MDICLIENTCLASSNAMEA "MDICLIENT"2384 #define MDICLIENTCLASSNAMEW L"MDICLIENT"2385 2386 //******************************************************************************2387 //******************************************************************************2388 BOOL MDICLIENT_Register()2389 {2390 WNDCLASSA wndClass;2391 2392 //SvL: Don't check this now2393 // if (GlobalFindAtomA(MDICLIENTCLASSNAMEA)) return FALSE;2394 2395 ZeroMemory(&wndClass,sizeof(WNDCLASSA));2396 wndClass.style = CS_GLOBALCLASS;2397 wndClass.lpfnWndProc = (WNDPROC)MDIClientWndProcA;2398 wndClass.cbClsExtra = 0;2399 wndClass.cbWndExtra = 0;2400 wndClass.hCursor = LoadCursorA(0,IDC_ARROWA);;2401 wndClass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);2402 wndClass.lpszClassName = MDICLIENTCLASSNAMEA;2403 2404 return RegisterClassA(&wndClass);2405 }2406 //******************************************************************************2407 //******************************************************************************2408 BOOL MDICLIENT_Unregister()2409 {2410 if (GlobalFindAtomA(MDICLIENTCLASSNAMEA))2411 return UnregisterClassA(MDICLIENTCLASSNAMEA,(HINSTANCE)NULL);2412 else return FALSE;2413 }2414 //******************************************************************************2415 //******************************************************************************2416 #endif -
TabularUnified tags/trunk/src/user32/oslibres.cpp ¶
r20039 r20067 1 /* $Id: oslibres.cpp,v 1.3 2 2002-12-13 16:46:12sandervl Exp $ */1 /* $Id: oslibres.cpp,v 1.33 2002-12-18 12:28:05 sandervl Exp $ */ 2 2 /* 3 3 * Window API wrappers for OS/2 … … 799 799 temp, CO_REPLACEIFEXISTS); 800 800 } 801 // If SysCreateObject("WPProgram", "WarpMix", "<ICHAUDIO>",,802 // "PROGTYPE=PM;OBJECTID=<WARPMIX>;ICONFILE=WARPMIX.ICO;EXENAME="||bootDrive||"\MMOS2\WARPMIX.EXE")803 801 804 802 free(pszSetupString); -
TabularUnified tags/trunk/src/user32/user32dbg.def ¶
r19746 r20067 1 ; $Id: user32dbg.def,v 1. 7 2002-09-03 12:34:01sandervl Exp $1 ; $Id: user32dbg.def,v 1.8 2002-12-18 12:28:05 sandervl Exp $ 2 2 3 3 LIBRARY USER32 INITINSTANCE TERMINSTANCE … … 203 203 DrawTextExW = _DbgDrawTextExW@24 @167 204 204 DrawTextW = _DbgDrawTextW@20 @168 205 EditWndProc = _DbgEditWndProc @16@169205 EditWndProc = _DbgEditWndProcA@16 @169 206 206 EmptyClipboard = _DbgEmptyClipboard@0 @170 207 207 EnableMenuItem = _DbgEnableMenuItem@12 @171 -
TabularUnified tags/trunk/src/user32/win32class.cpp ¶
r18218 r20067 1 /* $Id: win32class.cpp,v 1. 29 2001-12-20 20:45:55sandervl Exp $ */1 /* $Id: win32class.cpp,v 1.30 2002-12-18 12:28:06 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Class Managment Code for OS/2 4 4 * 5 5 * Copyright 1998-1999 Sander van Leeuwen (sandervl@xs4all.nl) 6 * 7 * 8 * Parts copied from ReWind (Get/SetClassLong for GCL_WNDPROC) 9 * Copyright 1993, 1996 Alexandre Julliard 10 * 1998 Juergen Schmied (jsch) 6 11 * 7 12 * … … 40 45 //Win32WndClass methods: 41 46 //****************************************************************************** 42 Win32WndClass::Win32WndClass(WNDCLASSEXA *wndclass, BOOL fUnicode)47 Win32WndClass::Win32WndClass(WNDCLASSEXA *wndclass, WNDCLASS_TYPE fClassType) 43 48 : GenericObject(&wndclasses, &critsect) 44 49 { 45 isUnicode = fUnicode;50 this->fClassType = fClassType; 46 51 processId = 0; 47 52 48 if(HIWORD(wndclass->lpszClassName)) { 49 if(isUnicode) { 53 if(HIWORD(wndclass->lpszClassName)) 54 { 55 if(fClassType == WNDCLASS_UNICODE) { 50 56 INT len = lstrlenW((LPWSTR)wndclass->lpszClassName)+1; 51 57 … … 63 69 exit(1); 64 70 } 65 if( isUnicode) {71 if(fClassType == WNDCLASS_UNICODE) { 66 72 lstrcpyW(classNameW, (LPWSTR)wndclass->lpszClassName); 67 73 UnicodeToAscii(classNameW, classNameA); … … 126 132 windowStyle = wndclass->style; 127 133 128 windowProc = 0; 129 WINPROC_SetProc((HWINDOWPROC *)&windowProc, wndclass->lpfnWndProc, (isUnicode) ? WIN_PROC_32W : WIN_PROC_32A, WIN_PROC_CLASS); 130 dprintf2(("Window class ptr %x", windowProc)); 134 pfnWindowProcA = 0; 135 pfnWindowProcW = 0; 136 if(fClassType == WNDCLASS_UNICODE) { 137 WINPROC_SetProc((HWINDOWPROC *)&pfnWindowProcW, wndclass->lpfnWndProc, WIN_PROC_32W, WIN_PROC_CLASS); 138 } 139 else { 140 WINPROC_SetProc((HWINDOWPROC *)&pfnWindowProcA, wndclass->lpfnWndProc, WIN_PROC_32A, WIN_PROC_CLASS); 141 } 142 dprintf2(("Window class ptr %x/%x", pfnWindowProcA, pfnWindowProcW)); 131 143 132 144 //User data class words/longs … … 156 168 } 157 169 158 WINPROC_FreeProc(windowProc, WIN_PROC_CLASS); 170 if(pfnWindowProcA) 171 WINPROC_FreeProc(pfnWindowProcA, WIN_PROC_CLASS); 172 if(pfnWindowProcW) 173 WINPROC_FreeProc(pfnWindowProcW, WIN_PROC_CLASS); 159 174 160 175 if(userClassBytes) free(userClassBytes); … … 179 194 { 180 195 if(HIWORD(classname) == 0) { 181 return classAtom == (DWORD)classname;196 return classAtom == (DWORD)classname; 182 197 } 183 198 if(fUnicode) { … … 349 364 //****************************************************************************** 350 365 //****************************************************************************** 366 WNDPROC Win32WndClass::getWindowProc(WNDPROC_TYPE type) 367 { 368 WNDPROC proc; 369 370 if(type == WNDPROC_UNICODE) { 371 proc = (pfnWindowProcW) ? pfnWindowProcW : pfnWindowProcA; 372 } 373 else proc = (pfnWindowProcA) ? pfnWindowProcA : pfnWindowProcW; 374 375 return proc; 376 }; 377 //****************************************************************************** 378 //NOTE: Only to be used when a class has both ascii & unicode window procedures! 379 // Otherwise use SetClassLong GCL_WNDPROC 380 //****************************************************************************** 381 void Win32WndClass::setWindowProc(WNDPROC pfnWindowProc, WNDPROC_TYPE type) 382 { 383 if(type == WNDPROC_UNICODE) { 384 WINPROC_SetProc((HWINDOWPROC *)&pfnWindowProcW, pfnWindowProc, WIN_PROC_32W, WIN_PROC_CLASS); 385 } 386 else WINPROC_SetProc((HWINDOWPROC *)&pfnWindowProcA, pfnWindowProc, WIN_PROC_32A, WIN_PROC_CLASS); 387 } 388 //****************************************************************************** 389 //****************************************************************************** 351 390 void Win32WndClass::setMenuName(LPSTR newMenuName) 352 391 { … … 358 397 } 359 398 if(HIWORD(newMenuName)) { 360 if( isUnicode) {399 if(fClassType == WNDCLASS_UNICODE) { 361 400 menuNameA = (PCHAR)_smalloc(lstrlenW((LPWSTR)newMenuName)+1); 362 401 menuNameW = (WCHAR *)_smalloc((lstrlenW((LPWSTR)newMenuName)+1)*sizeof(WCHAR)); … … 368 407 if(menuNameA == NULL || menuNameW == NULL) { 369 408 dprintf(("Win32Class ctr; menuName/menuNameW == NULL")); 370 exit(1); 371 } 372 if(isUnicode) { 409 DebugInt3(); 410 return; 411 } 412 if(fClassType == WNDCLASS_UNICODE) { 373 413 lstrcpyW(menuNameW, (LPWSTR)newMenuName); 374 414 UnicodeToAscii(menuNameW, menuNameA); … … 405 445 return hInstance; 406 446 case GCL_MENUNAME: 407 return ( isUnicode) ? (ULONG)menuNameW : (ULONG)menuNameA;447 return (fUnicode) ? (ULONG)menuNameW : (ULONG)menuNameA; 408 448 case GCL_STYLE: 409 449 return windowStyle; 410 450 case GCL_WNDPROC: 411 return (ULONG) WINPROC_GetProc(windowProc, (fUnicode) ? WIN_PROC_32W : WIN_PROC_32A); 451 { 452 WNDPROC pfnWindowProc = pfnWindowProcA; 453 454 if(pfnWindowProcW) 455 { 456 if(!pfnWindowProc || fUnicode) 457 pfnWindowProc = pfnWindowProcW; 458 } 459 return (ULONG) WINPROC_GetProc(pfnWindowProc, (fUnicode) ? WIN_PROC_32W : WIN_PROC_32A); 460 } 412 461 case GCW_ATOM: //TODO: does this really happen in windows? 413 462 SetLastError(ERROR_INVALID_PARAMETER); … … 493 542 break; 494 543 case GCL_WNDPROC: 544 { 495 545 //Note: Type of SetWindowLong determines new window proc type 496 546 // UNLESS the new window proc has already been registered … … 498 548 // (VERIFIED in NT 4, SP6) 499 549 //TODO: Is that also true for GCL_WNDPROC??????????????? 500 rc = (LONG)WINPROC_GetProc(windowProc, (fUnicode) ? WIN_PROC_32W : WIN_PROC_32A ); 501 WINPROC_SetProc((HWINDOWPROC *)&windowProc, (WNDPROC)lNewVal, (fUnicode) ? WIN_PROC_32W : WIN_PROC_32A, WIN_PROC_CLASS ); 502 break; 550 WNDPROC *proc = &pfnWindowProcA; 551 WINDOWPROCTYPE type = (fUnicode) ? WIN_PROC_32W : WIN_PROC_32A; 552 553 if(pfnWindowProcW) 554 { 555 if(!*proc || fUnicode) 556 proc = &pfnWindowProcW; 557 } 558 rc = (LONG)WINPROC_GetProc(*proc, type ); 559 WINPROC_SetProc((HWINDOWPROC *)proc, (WNDPROC)lNewVal, type, WIN_PROC_CLASS); 560 561 /* now free the one that we didn't set */ 562 if(pfnWindowProcA && pfnWindowProcW) 563 { 564 if (proc == &pfnWindowProcA) 565 { 566 WINPROC_FreeProc( pfnWindowProcW, WIN_PROC_CLASS ); 567 pfnWindowProcW = 0; 568 } 569 else 570 { 571 WINPROC_FreeProc( pfnWindowProcA, WIN_PROC_CLASS ); 572 pfnWindowProcA = 0; 573 } 574 } 575 break; 576 } 503 577 case GCW_ATOM: //TODO: does this really happen in windows? 504 578 SetLastError(ERROR_INVALID_PARAMETER); -
TabularUnified tags/trunk/src/user32/win32class.h ¶
r16496 r20067 1 /* $Id: win32class.h,v 1.1 5 2001-06-09 14:50:20sandervl Exp $ */1 /* $Id: win32class.h,v 1.16 2002-12-18 12:28:06 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Class Managment Code for OS/2 … … 15 15 #define RELEASE_CLASSOBJ(a) { a->release(); a = NULL; } 16 16 17 typedef enum { 18 WNDCLASS_ASCII, 19 WNDCLASS_UNICODE 20 } WNDCLASS_TYPE; 21 22 typedef enum { 23 WNDPROC_ASCII, 24 WNDPROC_UNICODE 25 } WNDPROC_TYPE; 26 17 27 class Win32WndClass : public GenericObject 18 28 { 19 29 public: 20 Win32WndClass(WNDCLASSEXA *wndclass, BOOL fUnicode = FALSE);30 Win32WndClass(WNDCLASSEXA *wndclass, WNDCLASS_TYPE fClassType = WNDCLASS_ASCII); 21 31 ~Win32WndClass(); 22 32 23 ULONG getClassLongA(int index, BOOL fUnicode = FALSE);33 ULONG getClassLongA(int index, BOOL fUnicode = TRUE); 24 34 ULONG getClassLongW(int index) 25 35 { … … 28 38 WORD getClassWord(int index); 29 39 30 ULONG setClassLongA(int index, LONG lNewVal, BOOL fUnicode = FALSE);40 ULONG setClassLongA(int index, LONG lNewVal, BOOL fUnicode = TRUE); 31 41 ULONG setClassLongW(int index, LONG lNewVal) 32 42 { … … 42 52 ULONG getClassName(LPWSTR lpszClassName, ULONG cchClassName); 43 53 44 WNDPROC getWindowProc() { return windowProc; }; 54 WNDPROC getWindowProc(WNDPROC_TYPE type); 55 //NOTE: Only to be used when a class has both ascii & unicode window procedures! 56 void setWindowProc(WNDPROC pfnWindowProc, WNDPROC_TYPE type); 57 45 58 LPSTR getMenuNameA() { return menuNameA; }; 46 59 DWORD getExtraWndBytes() { return nrExtraWindowBytes; }; … … 59 72 void setMenuName(LPSTR newMenuName); 60 73 61 BOOL hasClassName(LPSTR classname, BOOL fUnicode = FALSE);74 BOOL hasClassName(LPSTR classname, BOOL fUnicode); 62 75 63 76 BOOL isAppClass(ULONG curProcessId); … … 73 86 74 87 private: 75 BOOL isUnicode;88 WNDCLASS_TYPE fClassType; 76 89 77 90 //Standard class words/longs … … 85 98 PCHAR menuNameA; //GCL_MENUNAME 86 99 WCHAR *menuNameW; //GCL_MENUNAME 87 WNDPROC windowProc; //GCL_WNDPROC 100 WNDPROC pfnWindowProcA; //GCL_WNDPROC 101 WNDPROC pfnWindowProcW; //GCL_WNDPROC 88 102 ULONG classAtom; //GCW_ATOM 89 103 … … 101 115 }; 102 116 117 ATOM WIN32API InternalRegisterClass(LPSTR lpszClassName, DWORD dwStyle, 118 WNDPROC pfnClassA, WNDPROC pfnClassW, 119 UINT cbExtraWindowWords, LPCSTR lpszCursor, 120 HBRUSH hBrush); 121 103 122 #endif //__WIN32CLASS_H__ -
TabularUnified tags/trunk/src/user32/win32dlg.cpp ¶
r19397 r20067 1 /* $Id: win32dlg.cpp,v 1.7 8 2002-07-08 11:43:44sandervl Exp $ */1 /* $Id: win32dlg.cpp,v 1.79 2002-12-18 12:28:06 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Dialog Code for OS/2 … … 708 708 dlgtemplate = (LPCSTR)getControl( (WORD *)dlgtemplate, &info, dlgInfo.dialogEx ); 709 709 710 /* Is this it? */ 711 if (info.style & WS_BORDER) 712 { 713 info.style &= ~WS_BORDER; 714 info.exStyle |= WS_EX_CLIENTEDGE; 715 } 716 710 717 dprintf(("Create CONTROL %d", info.id)); 711 718 -
TabularUnified tags/trunk/src/user32/win32wbase.cpp ¶
r20010 r20067 1 /* $Id: win32wbase.cpp,v 1.34 5 2002-12-05 09:25:06sandervl Exp $ */1 /* $Id: win32wbase.cpp,v 1.346 2002-12-18 12:28:07 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 … … 115 115 } 116 116 117 WINPROC_SetProc((HWINDOWPROC *)&win32wndproc, windowClass->getWindowProc( ), WINPROC_GetProcType(windowClass->getWindowProc()), WIN_PROC_WINDOW);117 WINPROC_SetProc((HWINDOWPROC *)&win32wndproc, windowClass->getWindowProc((isUnicode) ? WNDPROC_UNICODE : WNDPROC_ASCII), WINPROC_GetProcType(windowClass->getWindowProc((isUnicode) ? WNDPROC_UNICODE : WNDPROC_ASCII)), WIN_PROC_WINDOW); 118 118 hInstance = NULL; 119 119 dwStyle = WS_VISIBLE; … … 523 523 } 524 524 525 WINPROC_SetProc((HWINDOWPROC *)&win32wndproc, windowClass->getWindowProc( ), WINPROC_GetProcType(windowClass->getWindowProc()), WIN_PROC_WINDOW);525 WINPROC_SetProc((HWINDOWPROC *)&win32wndproc, windowClass->getWindowProc((isUnicode) ? WNDPROC_UNICODE : WNDPROC_ASCII), WINPROC_GetProcType(windowClass->getWindowProc((isUnicode) ? WNDPROC_UNICODE : WNDPROC_ASCII)), WIN_PROC_WINDOW); 526 526 hInstance = cs->hInstance; 527 527 dwStyle = cs->style & ~WS_VISIBLE; -
TabularUnified tags/trunk/src/user32/win32wdesktop.cpp ¶
r18764 r20067 1 /* $Id: win32wdesktop.cpp,v 1. 19 2002-04-07 21:37:35sandervl Exp $ */1 /* $Id: win32wdesktop.cpp,v 1.20 2002-12-18 12:28:07 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Desktop Window for OS/2 … … 60 60 windowClass = Win32WndClass::FindClass(0, (LPSTR)DESKTOP_CLASS_ATOM); 61 61 62 setWindowProc(windowClass->getWindowProc( ));62 setWindowProc(windowClass->getWindowProc(WNDPROC_ASCII)); 63 63 64 64 dwStyle |= WS_VISIBLE; -
TabularUnified tags/trunk/src/user32/win32wmdiclient.cpp ¶
r18420 r20067 1 /* $Id: win32wmdiclient.cpp,v 1.4 0 2002-02-11 13:48:42sandervl Exp $ */1 /* $Id: win32wmdiclient.cpp,v 1.41 2002-12-18 12:28:08 sandervl Exp $ */ 2 2 /* 3 3 * Win32 MDI Client Window Class for OS/2 … … 127 127 return (FALSE); /* default */ 128 128 } 129 130 129 //****************************************************************************** 131 130 //****************************************************************************** 132 BOOL MDICLIENT_Register()133 {134 WNDCLASSA wndClass;135 136 //SvL: Don't check this now137 // if (GlobalFindAtomA(MDICLIENTCLASSNAMEA)) return FALSE;138 139 ZeroMemory(&wndClass,sizeof(WNDCLASSA));140 wndClass.style = CS_GLOBALCLASS;141 wndClass.lpfnWndProc = (WNDPROC)MDIClientWndProcA;142 wndClass.cbClsExtra = 0;143 wndClass.cbWndExtra = 0;144 wndClass.hCursor = LoadCursorA(0,IDC_ARROWA);;145 wndClass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);146 wndClass.lpszClassName = MDICLIENTCLASSNAMEA;147 148 return RegisterClassA(&wndClass);149 }150 //******************************************************************************151 //******************************************************************************152 BOOL MDICLIENT_Unregister()153 {154 if (GlobalFindAtomA(MDICLIENTCLASSNAMEA))155 return UnregisterClassA(MDICLIENTCLASSNAMEA,(HINSTANCE)NULL);156 else return FALSE;157 }158 //******************************************************************************159 //****************************************************************************** -
TabularUnified tags/trunk/src/user32/windowclass.cpp ¶
r18429 r20067 1 /* $Id: windowclass.cpp,v 1.2 5 2002-02-11 16:06:00sandervl Exp $ */1 /* $Id: windowclass.cpp,v 1.26 2002-12-18 12:28:08 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Class Code for OS/2 … … 80 80 LR_COPYFROMRESOURCE); 81 81 82 wclass = new Win32WndClass(&wc, FALSE);82 wclass = new Win32WndClass(&wc, WNDCLASS_ASCII); 83 83 if(wclass == NULL) { 84 84 dprintf(("ERROR: RegisterClassA winclass == NULL!")); … … 109 109 110 110 dprintf(("RegisterClassExA")); 111 wclass = new Win32WndClass((WNDCLASSEXA *)lpWndClass, FALSE);111 wclass = new Win32WndClass((WNDCLASSEXA *)lpWndClass, WNDCLASS_ASCII); 112 112 if(wclass == NULL) { 113 113 dprintf(("ERROR: RegisterClassExA winclass == NULL!")); … … 115 115 return(0); 116 116 } 117 ATOM atom = wclass->getAtom(); 118 RELEASE_CLASSOBJ(wclass); 119 return atom; 120 } 121 //****************************************************************************** 122 //Used for user32 control class registration only 123 //****************************************************************************** 124 ATOM WIN32API InternalRegisterClass(LPSTR lpszClassName, DWORD dwStyle, 125 WNDPROC pfnClassA, WNDPROC pfnClassW, 126 UINT cbExtraWindowWords, LPCSTR lpszCursor, 127 HBRUSH hBrush) 128 { 129 WNDCLASSEXA wc; 130 Win32WndClass *wclass; 131 132 wclass = Win32WndClass::FindClass(0, lpszClassName); 133 if(wclass) { 134 RELEASE_CLASSOBJ(wclass); 135 DebugInt3(); //this must never happen 136 dprintf(("ERROR: InternalRegisterClass %s already exists", lpszClassName)); 137 SetLastError(ERROR_CLASS_ALREADY_EXISTS); 138 return 0; 139 } 140 141 dprintf(("InternalRegisterClass %s %x %x %x %d %x %x", lpszClassName, dwStyle, pfnClassA, pfnClassW, cbExtraWindowWords, lpszCursor, hBrush)); 142 wc.cbSize = sizeof(wc); 143 wc.style = dwStyle; 144 wc.lpfnWndProc = pfnClassA; 145 wc.cbClsExtra = 0; 146 wc.cbWndExtra = cbExtraWindowWords; 147 wc.hInstance = NULL; 148 wc.hIcon = 0; 149 wc.hCursor = LoadCursorA(0, lpszCursor); 150 wc.hbrBackground = hBrush; 151 wc.lpszMenuName = NULL; 152 wc.lpszClassName = lpszClassName; 153 wc.hIconSm = 0; 154 155 wclass = new Win32WndClass(&wc, WNDCLASS_ASCII); 156 if(wclass == NULL) { 157 dprintf(("ERROR: InternalRegisterClass winclass == NULL!")); 158 DebugInt3(); 159 return(0); 160 } 161 wclass->setWindowProc(pfnClassW, WNDPROC_UNICODE); 117 162 ATOM atom = wclass->getAtom(); 118 163 RELEASE_CLASSOBJ(wclass); … … 154 199 155 200 dprintf(("RegisterClassW")); 156 winclass = new Win32WndClass((WNDCLASSEXA *)&wc, TRUE);201 winclass = new Win32WndClass((WNDCLASSEXA *)&wc, WNDCLASS_UNICODE); 157 202 if(winclass == NULL) { 158 203 dprintf(("ERROR: RegisterClassW winclass == NULL!")); … … 187 232 188 233 dprintf(("RegisterClassExW")); 189 winclass = new Win32WndClass((WNDCLASSEXA *)&wc, TRUE);234 winclass = new Win32WndClass((WNDCLASSEXA *)&wc, WNDCLASS_UNICODE); 190 235 if(winclass == NULL) { 191 236 dprintf(("ERROR: RegisterClassExW winclass == NULL!")); -
TabularUnified tags/trunk/src/user32/wndmsg.cpp ¶
r19114 r20067 1 /* $Id: wndmsg.cpp,v 1.1 8 2002-06-03 13:37:19sandervl Exp $ */1 /* $Id: wndmsg.cpp,v 1.19 2002-12-18 12:28:08 sandervl Exp $ */ 2 2 /* 3 3 * Win32 window message text function for OS/2 … … 15 15 #include <win\winmfcmsg.h> 16 16 #include <spy.h> 17 #include "wndmsg.h" 17 18 18 19 #define DBG_LOCALLOG DBG_wndmsg -
TabularUnified tags/trunk/src/user32/wndmsg.h ¶
r13052 r20067 1 /* $Id: wndmsg.h,v 1. 6 2000-01-18 20:08:18 sandervl Exp $ */1 /* $Id: wndmsg.h,v 1.7 2002-12-18 12:28:08 sandervl Exp $ */ 2 2 /* 3 3 * Win32 window message text function for OS/2 … … 12 12 #define __WNDMSG_H__ 13 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 14 18 #ifdef DEBUG 15 19 char *GetMsgText(int Msg); 20 16 21 void DebugPrintMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, BOOL fUnicode, BOOL fInternalMsg); 17 22 #else … … 19 24 #endif 20 25 26 #ifdef __cplusplus 27 } 21 28 #endif 29 30 #endif
Note:
See TracChangeset
for help on using the changeset viewer.