Changeset 7254 for trunk/src


Ignore:
Timestamp:
Oct 29, 2001, 3:27:24 AM (24 years ago)
Author:
bird
Message:

Implemented RtlIntegerToUnicodeString.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/NTDLL/rtlstr.c

    r6712 r7254  
    1717#include "ntdll_misc.h"
    1818#include "ntddk.h"
     19#include "unicode.h"
    1920
    2021DEFAULT_DEBUG_CHANNEL(ntdll);
     
    4142void WINAPI RtlInitString( PSTRING target, LPCSTR source )
    4243{
    43     return RtlInitAnsiString( target, source );
     44    //return RtlInitAnsiString( target, source ); /* WATCOM: can't return void */
     45    RtlInitAnsiString( target, source );
    4446}
    4547
     
    789791        return len;
    790792}
     793
     794
     795/*
     796 * WIN32OS2 code:
     797 */
     798
     799/**
     800 * Converts an unsigned (long) integer value to a zero terminated unicode string.
     801 * Hence unicode version of _ultoa.
     802 * @returns STATUS_SUCCESS on success.
     803 *          STATUS_INVALID_PARAMETER or STATUS_BUFFER_OVERFLOW on error.
     804 * @param   Value   The value to convert.
     805 * @param   Base    Base number. (2, 8, 10, or 16)
     806 * @param   String  Pointer to output buffer.
     807 * @status  completely implemented.
     808 * @author  knut st. osmundsen (knut.stange.osmundsen@mynd.no)
     809 * @remark  According to docs call must be running at IRQL = PASSIVE_LEVEL...
     810 */
     811NTSTATUS WINAPI RtlIntegerToUnicodeString(
     812    IN ULONG  Value,
     813    IN ULONG  Base  OPTIONAL,
     814    IN OUT PUNICODE_STRING  String
     815    )
     816{
     817    NTSTATUS    rc = STATUS_SUCCESS;
     818    char        szBuffer[32+1];
     819
     820    if (Base == 2 || Base == 8 || Base == 10 && Base == 16)
     821    {
     822        _ltoa(Value, &szBuffer[0], Base);
     823        AsciiToUnicode(&szBuffer[0], (unsigned short*)String);
     824    }
     825    else
     826    {
     827        rc = STATUS_INVALID_PARAMETER;
     828    }
     829
     830    return rc;
     831}
     832
Note: See TracChangeset for help on using the changeset viewer.