Changeset 761 for trunk/src/kernel32
- Timestamp:
- Aug 31, 1999, 7:15:53 PM (26 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/KERNEL32.DEF
r752 r761 1 ; $Id: KERNEL32.DEF,v 1.3 3 1999-08-31 14:36:44sandervl Exp $1 ; $Id: KERNEL32.DEF,v 1.34 1999-08-31 17:15:29 sandervl Exp $ 2 2 3 3 ;Created by BLAST for IBM's compiler … … 1014 1014 __ct__12Win32MenuResFP10Win32ImageUlN22 @1260 1015 1015 __ct__12Win32MenuResFP10Win32ImageUlN22Pc @1261 1016 __ct__12Win32MenuResF Pvi@12621017 __ct__12Win32MenuResF Ul@12631016 __ct__12Win32MenuResFUl @1262 1017 __ct__12Win32MenuResFPv @1263 -
trunk/src/kernel32/cvtmenu.cpp
r581 r761 1 /* $Id: cvtmenu.cpp,v 1. 1 1999-08-19 14:19:14sandervl Exp $ */1 /* $Id: cvtmenu.cpp,v 1.2 1999-08-31 17:15:29 sandervl Exp $ */ 2 2 3 3 /* … … 28 28 29 29 static int ProcessSubMenu(PopupMenuItem *popupitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size, int cp); 30 static int QuerySubMenuSize(PopupMenuItem *popupitem); 30 31 static int ProcessMenuItem(NormalMenuItem *popupitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size, int cp); 32 static int QueryMenuItemSize(NormalMenuItem *normalitem); 31 33 static void menustrcpy(char *dest, char *src); 34 //****************************************************************************** 35 //****************************************************************************** 36 static int QueryMenuSize(MenuHeader *menu) 37 { 38 PopupMenuItem *popupitem = (PopupMenuItem *)((char *)menu + sizeof(MenuHeader)); 39 NormalMenuItem *normalitem = (NormalMenuItem *)((char *)menu + sizeof(MenuHeader)); 40 int size = sizeof(MenuHeader); 41 int increment; 42 43 while(TRUE) 44 { 45 if(popupitem->fItemFlags & POPUP) { 46 increment = QuerySubMenuSize(popupitem); 47 } 48 else increment = QueryMenuItemSize(normalitem); 49 50 size += increment; 51 52 if(popupitem->fItemFlags & ENDMENU) break; 53 54 popupitem = (PopupMenuItem *)((char *)popupitem + increment); 55 normalitem = (NormalMenuItem *)((char *)normalitem + increment); 56 } 57 return size; 58 } 32 59 //****************************************************************************** 33 60 //****************************************************************************** … … 41 68 ULONG ulCpSize, ulCP; 42 69 70 if(size == 0) { 71 size = QueryMenuSize(menu); 72 } 43 73 os2menu = (MT_OS2 *)malloc(size*4); //should always be sufficient 44 74 os2menu->len = sizeof(MT_OS2) - sizeof(MTI_OS2); … … 182 212 //****************************************************************************** 183 213 //****************************************************************************** 214 static int QuerySubMenuSize(PopupMenuItem *popupitem) 215 { 216 NormalMenuItem *normalitem; 217 int len = 0, size, increment; 218 219 if(!(popupitem->fItemFlags & MENUBARBREAK)) { 220 len = (UniStrlen(popupitem->szItemText)+1)*2; 221 } 222 223 size = (sizeof(PopupMenuItem)-2 + len); /*PLF Sat 97-06-21 22:17:51*/ 224 225 normalitem = (NormalMenuItem *)((char*)popupitem + sizeof(PopupMenuItem)-2); /*PLF Sat 97-06-21 23:54:50*/ 226 normalitem = (NormalMenuItem *)((int)normalitem + len); 227 228 while(TRUE) { 229 if(normalitem->fItemFlags & POPUP) { 230 increment = QuerySubMenuSize((PopupMenuItem *)normalitem); 231 } 232 else increment = QueryMenuItemSize(normalitem); 233 234 size += increment; 235 236 if(normalitem->fItemFlags & ENDMENU) { 237 return(size); 238 } 239 normalitem = (NormalMenuItem *)((char *)normalitem + increment); 240 } 241 return(size); 242 } 243 //****************************************************************************** 244 //****************************************************************************** 184 245 static int ProcessMenuItem(NormalMenuItem *normalitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size, int cp) 185 246 { … … 267 328 //****************************************************************************** 268 329 //****************************************************************************** 330 static int QueryMenuItemSize(NormalMenuItem *normalitem) 331 { 332 int len = 0; 333 334 if(!(normalitem->fItemFlags & MENUBARBREAK)) { 335 len = (UniStrlen(normalitem->szItemText)+1)*2; 336 } 337 338 return(sizeof(NormalMenuItem)-2 + len); 339 } 340 //****************************************************************************** 341 //****************************************************************************** 269 342 static void menustrcpy(char *dest, char *src) 270 343 { -
trunk/src/kernel32/kernel32exp.def
r752 r761 1 ; $Id: kernel32exp.def,v 1.1 8 1999-08-31 14:36:45sandervl Exp $1 ; $Id: kernel32exp.def,v 1.19 1999-08-31 17:15:30 sandervl Exp $ 2 2 3 3 ;Created by BLAST for IBM's compiler … … 868 868 __ct__12Win32MenuResFP10Win32ImageUlN22 @1260 869 869 __ct__12Win32MenuResFP10Win32ImageUlN22Pc @1261 870 __ct__12Win32MenuResF Pvi@1262871 __ct__12Win32MenuResF Ul@1263870 __ct__12Win32MenuResFUl @1262 871 __ct__12Win32MenuResFPv @1263 -
trunk/src/kernel32/winres.cpp
r752 r761 1 /* $Id: winres.cpp,v 1.1 3 1999-08-31 14:36:46sandervl Exp $ */1 /* $Id: winres.cpp,v 1.14 1999-08-31 17:15:30 sandervl Exp $ */ 2 2 3 3 /* … … 103 103 orgos2type = -1; 104 104 OS2ResHandle = 0; 105 //resources are in Unicode format by default; indirectly created resources 106 //can also be in ascii format 107 isUnicode = TRUE; 105 108 } 106 109 //****************************************************************************** … … 160 163 ressize = 0; 161 164 } 165 //resources are in Unicode format by default 166 isUnicode = TRUE; 162 167 } 163 168 //****************************************************************************** … … 189 194 } 190 195 else memcpy(winresdata, resdata, size); 196 197 //resources are in Unicode format by default 198 isUnicode = TRUE; 191 199 } 192 200 //****************************************************************************** … … 197 205 198 206 //returned by DosGetResource, so we don't (and mustn't) free it 199 if(os2resdata && resType == RSRC_PELOADER)207 if(os2resdata && (resType == RSRC_PELOADER || resType == RSRC_CUSTOMINDIRECT)) 200 208 free(os2resdata); 201 209 … … 350 358 case NTRT_NEWMENU: 351 359 case NTRT_MENU: 352 return ConvertMenu((MenuHeader *)win32res, ressize );360 return ConvertMenu((MenuHeader *)win32res, ressize, isUnicode); 353 361 354 362 case NTRT_NEWDIALOG: -
trunk/src/kernel32/winresmenu.cpp
r752 r761 1 /* $Id: winresmenu.cpp,v 1. 1 1999-08-31 14:36:46sandervl Exp $ */1 /* $Id: winresmenu.cpp,v 1.2 1999-08-31 17:15:30 sandervl Exp $ */ 2 2 3 3 /* … … 49 49 } 50 50 //****************************************************************************** 51 //Template always contains Unicode strings 51 52 //****************************************************************************** 52 Win32MenuRes::Win32MenuRes(LPVOID menutemplate , BOOL isUnicode)53 Win32MenuRes::Win32MenuRes(LPVOID menutemplate) 53 54 : Win32Resource() 54 55 { 55 resType = RSRC_CUSTOMINDIRECT; 56 resType = RSRC_CUSTOMINDIRECT; 57 58 os2resdata = ConvertMenu((MenuHeader *)menutemplate, 0); 59 OS2ResHandle = 0; 56 60 } 57 61 //****************************************************************************** … … 59 63 Win32MenuRes::~Win32MenuRes() 60 64 { 61 62 65 } 63 66 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.