Ignore:
Timestamp:
Jul 10, 1999, 5:59:42 PM (26 years ago)
Author:
sandervl
Message:

Fixes for CreateWindowExW and several unicode menu apis

File:
1 edited

Legend:

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

    r96 r287  
    1 /* $Id: menu.cpp,v 1.4 1999-06-10 16:50:39 phaller Exp $ */
     1/* $Id: menu.cpp,v 1.5 1999-07-10 15:58:52 sandervl Exp $ */
    22
    33/*
     
    186186BOOL WIN32API AppendMenuW( HMENU arg1, UINT arg2, UINT arg3, LPCWSTR  arg4)
    187187{
    188  BOOL  rc;
    189  char *astring = UnicodeToAsciiString((LPWSTR)arg4);
     188    BOOL  rc;
     189    char *astring = NULL;
    190190
    191191#ifdef DEBUG
    192192    WriteLog("USER32:  OS2AppendMenuW\n");
    193193#endif
     194    if(arg2 & MF_STRING  && (int)arg4 >> 16 != 0)
     195      astring = UnicodeToAsciiString((LPWSTR)arg4);
     196    else
     197      astring = (char *) arg4;
     198
    194199    rc = O32_AppendMenu(arg1, arg2, arg3, astring);
    195     FreeAsciiString(astring);
     200    if(arg2 & MF_STRING  && (int)arg4 >> 16 != 0)
     201      FreeAsciiString(astring);
    196202    return(rc);
    197203}
     
    250256BOOL WIN32API ModifyMenuW( HMENU arg1, UINT arg2, UINT arg3, UINT arg4, LPCWSTR arg5)
    251257{
    252  BOOL  rc;
    253  char *astring = UnicodeToAsciiString((LPWSTR)arg5);
     258    BOOL  rc;
     259    char *astring = NULL;
    254260
    255261#ifdef DEBUG
    256262    WriteLog("USER32: OS2ModifyMenuW %s\n", astring);
    257263#endif
     264    if(arg3 & MF_STRING  && (int)arg5 >> 16 != 0)
     265      astring = UnicodeToAsciiString((LPWSTR)arg5);
     266    else
     267      astring = (char *) arg5;
     268
    258269    rc = O32_ModifyMenu(arg1, arg2, arg3, arg4, astring);
    259     FreeAsciiString(astring);
     270    if(arg3 & MF_STRING  && (int)arg5 >> 16 != 0)
     271      FreeAsciiString(astring);
    260272    return(rc);
    261273}
     
    309321BOOL WIN32API InsertMenuW(HMENU arg1, UINT arg2, UINT arg3, UINT arg4, LPCWSTR arg5)
    310322{
    311  BOOL  rc;
    312  char *astring = UnicodeToAsciiString((LPWSTR)arg5);
     323    BOOL  rc;
     324    char *astring = NULL;
    313325
    314326#ifdef DEBUG
    315327    WriteLog("USER32:  OS2InsertMenuW %s\n", astring);
    316328#endif
     329    if(arg3 & MF_STRING  && (int)arg5 >> 16 != 0)
     330      astring = UnicodeToAsciiString((LPWSTR)arg5);
     331    else
     332      astring = (char *) arg5;
     333
    317334    rc = O32_InsertMenu(arg1, arg2, arg3, arg4, astring);
    318     FreeAsciiString(astring);
     335    if(arg3 & MF_STRING  && (int)arg5 >> 16 != 0)
     336      FreeAsciiString(astring);
    319337    return(rc);
    320338}
     339//******************************************************************************
     340//******************************************************************************
    321341BOOL WIN32API SetMenuContextHelpId(HMENU hmenu, DWORD dwContextHelpId)
    322342{
Note: See TracChangeset for help on using the changeset viewer.