Changeset 227 for trunk/src


Ignore:
Timestamp:
Jun 27, 1999, 6:49:52 PM (26 years ago)
Author:
sandervl
Message:

Fix for winhlp32 buttons

Location:
trunk/src/user32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/setwindow.cpp

    r225 r227  
    1 /* $Id: setwindow.cpp,v 1.2 1999-06-27 16:23:23 sandervl Exp $ */
     1/* $Id: setwindow.cpp,v 1.3 1999-06-27 16:49:52 sandervl Exp $ */
    22
    33/*
     
    7474 LONG rc;
    7575
     76    dprintf(("USER32:  GetWindowLong %X %d\n", hwnd, nIndex));
     77
    7678    if(nIndex == GWL_WNDPROC || nIndex == DWL_DLGPROC) {
    77 #ifdef DEBUG
    78         WriteLog("USER32:  GetWindowLong %X %d\n", hwnd, nIndex);
    79 #endif
    8079        Win32WindowProc *window = Win32WindowProc::FindProc(hwnd);
    8180        if(window && !(nIndex == DWL_DLGPROC && window->IsWindow() == TRUE)) {
     
    8483    }
    8584    rc = O32_GetWindowLong(hwnd, nIndex);
     85    //SvL: We must return longs here, not shorts!
     86    //     (fixed Winhlp32 buttons)
     87    if(rc == 0xffff)
     88        rc = 0xffffffff;
    8689    return(rc);
    8790}
  • trunk/src/user32/wndclass.cpp

    r223 r227  
    1 /* $Id: wndclass.cpp,v 1.13 1999-06-26 18:25:08 sandervl Exp $ */
     1/* $Id: wndclass.cpp,v 1.14 1999-06-27 16:49:52 sandervl Exp $ */
    22
    33/*
     
    2727#include <wprocess.h>
    2828#include "hooks.h"
     29#include "wndmsg.h"
    2930
    3031//default window handlers that are registered by RegisterClass are called
    3132//in this callback handler
    3233LRESULT EXPENTRY_O32 OS2ToWinCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam);
    33 //default window handlers that are queried by GetClassInfo/GetClassLong is really
    34 //this callback handler
    35 LRESULT WIN32API WinToOS2Callback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam);
    36 
    37 #ifdef DEBUG
    38 char *GetMsgText(int Msg);
    39 #endif
    4034
    4135DWORD MapOEMToRealKey(DWORD wParam, DWORD lParam);
     
    6862LRESULT WIN32API ButtonCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    6963{
    70  DWORD   dwStyle, dwExStyle;
    71  LRESULT rc;
    72 
    73   //Restore our FS selector
    74   SetWin32TIB();
    75 
    76   PostSpyMessage(hwnd, Msg, wParam, lParam);
    77   switch(Msg)
    78   {
    79         case WM_LBUTTONDOWN:
    80                 rc = ButtonHandler(hwnd, Msg, wParam, lParam);
    81                 //Restore our FS selector
    82                 SetWin32TIB();
    83 
    84                 NotifyParent(hwnd, Msg, wParam, lParam);
    85                 dwStyle   = GetWindowLongA(hwnd, GWL_STYLE);
    86                 dwExStyle = GetWindowLongA(hwnd, GWL_EXSTYLE);
    87 
    88                 if(dwStyle & WS_CHILD && !(dwExStyle & WS_EX_NOPARENTNOTIFY) )
    89                 {
    90                         HWND hwndParent = GetParent(hwnd);
    91 
    92                         //TODO: Mouse shouldn't be captured
    93                         Win32WindowProc *parentwnd = Win32WindowProc::FindProc(hwndParent);
    94                         if(parentwnd) {
    95                                 //TODO: HTCLIENT isn't always accurate
    96                                 parentwnd->SendMessageA(hwndParent, WM_SETCURSOR, hwnd, HTCLIENT | (WM_LBUTTONDOWN << 16));
    97                         }
    98                 }       
    99                 return rc;
    100 
    101         case WM_CREATE:
    102         case WM_MBUTTONDOWN:
    103         case WM_RBUTTONDOWN:
    104                 rc = ButtonHandler(hwnd, Msg, wParam, lParam);
    105                 //Restore our FS selector
    106                 SetWin32TIB();
    107                 NotifyParent(hwnd, Msg, wParam, lParam);
    108                 RestoreOS2TIB();
    109                 return rc;
    110 
    111         case WM_DESTROY:
    112                 NotifyParent(hwnd, Msg, wParam, lParam);
    113                 break;
    114   }
    115   rc = ButtonHandler(hwnd, Msg, wParam, lParam);
    116   RestoreOS2TIB();
    117   return rc;
     64  return ButtonHandler(hwnd, Msg, wParam, lParam);
    11865}
    11966//******************************************************************************
     
    12168LRESULT WIN32API ListboxCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    12269{
    123   PostSpyMessage(hwnd, Msg, wParam, lParam);
    12470  return ListboxHandler(hwnd, Msg, wParam, lParam);
    12571}
     
    12874LRESULT WIN32API ComboboxCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    12975{
    130   PostSpyMessage(hwnd, Msg, wParam, lParam);
    13176  return ComboboxHandler(hwnd, Msg, wParam, lParam);
    13277}
     
    13580LRESULT WIN32API MdiClientCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    13681{
    137   PostSpyMessage(hwnd, Msg, wParam, lParam);
    13882  return MdiClientHandler(hwnd, Msg, wParam, lParam);
    13983}
     
    14286LRESULT WIN32API EditCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    14387{
    144   PostSpyMessage(hwnd, Msg, wParam, lParam);
    14588  return EditHandler(hwnd, Msg, wParam, lParam);
    14689}
     
    14992LRESULT WIN32API ScrollbarCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    15093{
    151   PostSpyMessage(hwnd, Msg, wParam, lParam);
    15294  return ScrollbarHandler(hwnd, Msg, wParam, lParam);
    15395}
     
    15698LRESULT WIN32API StaticCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    15799{
    158   PostSpyMessage(hwnd, Msg, wParam, lParam);
    159100  return StaticHandler(hwnd, Msg, wParam, lParam);
    160101}
     
    175116                dprintf(("RegisterSystemClasses failed!!"));
    176117        }
    177         O32_SetClassLong(hwndButton, GCL_WNDPROC, (LONG)ButtonCallback);
     118        O32_SetClassLong(hwndButton, GCL_WNDPROC, (LONG)Win32WindowClass::GetOS2ClassCallback());
    178119   }
    179120   if(O32_GetClassInfo(NULL, "LISTBOX", &wndclass)) {
     
    185126                dprintf(("RegisterSystemClasses failed!!"));
    186127        }
    187         O32_SetClassLong(hwndListbox, GCL_WNDPROC, (LONG)ListboxCallback);
     128        O32_SetClassLong(hwndListbox, GCL_WNDPROC, (LONG)Win32WindowClass::GetOS2ClassCallback());
    188129   }
    189130   if(O32_GetClassInfo(NULL, "COMBOBOX", &wndclass)) {
     
    195136                dprintf(("RegisterSystemClasses failed!!"));
    196137        }
    197         O32_SetClassLong(hwndCombobox, GCL_WNDPROC, (LONG)ComboboxCallback);
     138        O32_SetClassLong(hwndCombobox, GCL_WNDPROC, (LONG)Win32WindowClass::GetOS2ClassCallback());
    198139   }
    199140   if(O32_GetClassInfo(NULL, "EDIT", &wndclass)) {
     
    205146                dprintf(("RegisterSystemClasses failed!!"));
    206147        }
    207         O32_SetClassLong(hwndEdit, GCL_WNDPROC, (LONG)EditCallback);
     148        O32_SetClassLong(hwndEdit, GCL_WNDPROC, (LONG)Win32WindowClass::GetOS2ClassCallback());
    208149   }
    209150   //TODO: This doens't work yet!! (need to create a normal window as parent)
     
    216157                dprintf(("RegisterSystemClasses failed!!"));
    217158        }
    218         O32_SetClassLong(hwndMdiClient, GCL_WNDPROC, (LONG)MdiClientCallback);
     159        O32_SetClassLong(hwndMdiClient, GCL_WNDPROC, (LONG)Win32WindowClass::GetOS2ClassCallback());
    219160   }
    220161   if(O32_GetClassInfo(NULL, "SCROLLBAR", &wndclass)) {
     
    226167                dprintf(("RegisterSystemClasses failed!!"));
    227168        }
    228         O32_SetClassLong(hwndScrollbar, GCL_WNDPROC, (LONG)ScrollbarCallback);
     169        O32_SetClassLong(hwndScrollbar, GCL_WNDPROC, (LONG)Win32WindowClass::GetOS2ClassCallback());
    229170   }
    230171   if(O32_GetClassInfo(NULL, "STATIC", &wndclass)) {
     
    236177                dprintf(("RegisterSystemClasses failed!!"));
    237178        }
    238         O32_SetClassLong(hwndStatic, GCL_WNDPROC, (LONG)StaticCallback);
     179        O32_SetClassLong(hwndStatic, GCL_WNDPROC, (LONG)Win32WindowClass::GetOS2ClassCallback());
    239180   }
    240181//TODO: More standard classes in win95/NT4?
     
    611552    dprintf(("USER32: OS2GetClassLongA\n"));
    612553    rc = O32_GetClassLong(hwnd, nIndex);
    613     if(nIndex == GCL_WNDPROC) {
     554    if(nIndex == GCL_WNDPROC)
     555    {
    614556      char                  szClass[128];
    615557      Win32WindowClass     *wclass;
     
    925867//******************************************************************************
    926868//******************************************************************************
    927 LRESULT WIN32API WinToOS2Callback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    928 {
    929  WNDPROC_O32 os2callback;
    930 
    931   os2callback = (WNDPROC_O32)GetClassLongA(hwnd, GCL_WNDPROC);
    932   if(os2callback) {
    933         return os2callback(hwnd, Msg, wParam, lParam);
    934   } 
    935   dprintf(("OS2ToWinCallback: window procedure == NULL!!\n"));
    936   return(0);
    937 }
    938 //******************************************************************************
    939 //******************************************************************************
    940869Win32WindowClass *Win32WindowClass::wndclasses = NULL;
Note: See TracChangeset for help on using the changeset viewer.