Changeset 1593 for trunk/src/user32/user32.cpp
- Timestamp:
- Nov 4, 1999, 7:36:15 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/user32.cpp
r1516 r1593 1 /* $Id: user32.cpp,v 1. 49 1999-10-30 10:55:15 sandervlExp $ */1 /* $Id: user32.cpp,v 1.50 1999-11-04 18:35:42 phaller Exp $ */ 2 2 3 3 /* … … 336 336 } 337 337 338 /* String Manipulation Functions */339 340 int __cdecl wsprintfA(char *lpOut, LPCSTR lpFmt, ...)341 {342 int rc;343 va_list argptr;344 345 #ifdef DEBUG346 WriteLog("USER32: wsprintfA\n");347 WriteLog("USER32: %s\n", lpFmt);348 #endif349 va_start(argptr, lpFmt);350 rc = O32_wvsprintf(lpOut, (char *)lpFmt, argptr);351 va_end(argptr);352 #ifdef DEBUG353 WriteLog("USER32: %s\n", lpOut);354 #endif355 return(rc);356 }357 //******************************************************************************358 //******************************************************************************359 int __cdecl wsprintfW(LPWSTR lpOut, LPCWSTR lpFmt, ...)360 {361 int rc;362 char *lpFmtA;363 char szOut[512];364 va_list argptr;365 366 dprintf(("USER32: wsprintfW(%08xh,%08xh).\n",367 lpOut,368 lpFmt));369 370 lpFmtA = UnicodeToAsciiString((LPWSTR)lpFmt);371 372 /* @@@PH 98/07/13 transform "%s" to "%ls" does the unicode magic */373 {374 PCHAR pszTemp;375 PCHAR pszTemp1;376 ULONG ulStrings;377 ULONG ulIndex; /* temporary string counter */378 379 for (ulStrings = 0, /* determine number of placeholders */380 pszTemp = lpFmtA;381 382 (pszTemp != NULL) &&383 (*pszTemp != 0);384 385 ulStrings++)386 {387 pszTemp = strstr(pszTemp,388 "%s");389 if (pszTemp != NULL) /* skip 2 characters */390 {391 pszTemp++;392 pszTemp++;393 }394 else395 break; /* leave loop immediately */396 }397 398 if (ulStrings != 0) /* transformation required ? */399 {400 /* now reallocate lpFmt */401 ulStrings += strlen(lpFmtA); /* calculate total string length */402 pszTemp = lpFmtA; /* save string pointer */403 pszTemp1 = lpFmtA; /* save string pointer */404 405 /* @@@PH allocation has to be compatible to FreeAsciiString !!! */406 lpFmtA = (char *)malloc(ulStrings + 1);407 if (lpFmtA == NULL) /* check proper allocation */408 return (0); /* raise error condition */409 410 for (ulIndex = 0;411 ulIndex <= ulStrings;412 ulIndex++,413 pszTemp++)414 {415 if ((pszTemp[0] == '%') &&416 (pszTemp[1] == 's') )417 {418 /* replace %s by %ls */419 lpFmtA[ulIndex++] = '%';420 lpFmtA[ulIndex ] = 'l';421 lpFmtA[ulIndex+1] = 's';422 }423 else424 lpFmtA[ulIndex] = *pszTemp; /* just copy over the character */425 }426 427 lpFmtA[ulStrings] = 0; /* string termination */428 429 FreeAsciiString(pszTemp1); /* the original string is obsolete */430 }431 }432 433 dprintf(("USER32: wsprintfW (%s).\n",434 lpFmt));435 436 va_start(argptr,437 lpFmt);438 439 rc = O32_wvsprintf(szOut,440 lpFmtA,441 argptr);442 443 AsciiToUnicode(szOut,444 lpOut);445 446 FreeAsciiString(lpFmtA);447 return(rc);448 }449 //******************************************************************************450 //******************************************************************************451 int WIN32API wvsprintfA( LPSTR lpOutput, LPCSTR lpFormat, va_list arglist)452 {453 #ifdef DEBUG454 WriteLog("USER32: wvsprintfA\n");455 #endif456 return O32_wvsprintf(lpOutput,lpFormat,(LPCVOID*)arglist);457 }458 //******************************************************************************459 //******************************************************************************460 int WIN32API wvsprintfW(LPWSTR lpOutput, LPCWSTR lpFormat, va_list arglist)461 {462 int rc;463 char szOut[256];464 char *lpFmtA;465 466 lpFmtA = UnicodeToAsciiString((LPWSTR)lpFormat);467 #ifdef DEBUG468 WriteLog("USER32: wvsprintfW, DOES NOT HANDLE UNICODE STRINGS!\n");469 WriteLog("USER32: %s\n", lpFormat);470 #endif471 rc = O32_wvsprintf(szOut, lpFmtA, (LPCVOID)arglist);472 473 AsciiToUnicode(szOut, lpOutput);474 #ifdef DEBUG475 WriteLog("USER32: %s\n", lpOutput);476 #endif477 FreeAsciiString(lpFmtA);478 return(rc);479 }480 481 338 /* Cursor Functions */ 482 339
Note:
See TracChangeset
for help on using the changeset viewer.