|
|
/******************************************************************************
* Utility file for guid and other support. *****************************************************************************/
/******************************************************************************
includes ******************************************************************************/ #include "precomp.hxx"
/******************************************************************************
defines and prototypes ******************************************************************************/
/******************************************************************************
Da Code ******************************************************************************/ char * StringToULong( char * pString, unsigned long * pNumber ) { unsigned long Number = 0; int Count;
// There will be 8 characters int a string that converts into a long.
for( Count = 0; (Count < 8) && pString && *pString ; ++Count, ++pString ) { if( (*pString >= '0') && (*pString <= '9' ) ) { Number = (Number << 4) + (*pString -'0'); } else if( (*pString >='A') && (*pString <= 'F')) { Number = (Number << 4) + (*pString - 'A') + 10; } else if( (*pString >='a') && (*pString <= 'f')) { Number = (Number << 4) + (*pString - 'a') + 10; } }
*pNumber = Number; return pString; }
char * StringToUShort( char * pString, unsigned short * pNumber ) { unsigned short Number = 0; int Count;
// There will be 4 characters int a string that converts into a short.
for( Count = 0; (Count < 4) && pString ; ++Count, ++pString ) { if( (*pString >= '0') && (*pString <= '9' ) ) { Number = (Number << 4) + (*pString -'0'); } else if( (*pString >='A') && (*pString <= 'F')) { Number = (Number << 4) + (*pString - 'A') + 10; } else if( (*pString >='a') && (*pString <= 'f')) { Number = (Number << 4) + (*pString - 'a') + 10; } }
*pNumber = Number; return pString; } char * StringToUChar( char * pString, unsigned char * pNumber ) { unsigned char Number = 0; int Count;
// There will be 2 characters int a string that converts into a char.
for( Count = 0; (Count < 2) && pString ; ++Count, ++pString ) { if( (*pString >= '0') && (*pString <= '9' ) ) { Number = (Number << 4) + (*pString -'0'); } else if( (*pString >='A') && (*pString <= 'F')) { Number = (Number << 4) + (*pString - 'A') + 10; } else if( (*pString >='a') && (*pString <= 'f')) { Number = (Number << 4) + (*pString - 'a') + 10; } }
*pNumber = Number; return pString; }
char * StringToCLSID( char * pString, CLSID * pClsid ) {
pString = StringToULong( pString, &pClsid->Data1 ); pString++; // skip -
pString = StringToUShort( pString, &pClsid->Data2 ); pString++; // skip -
pString = StringToUShort( pString, &pClsid->Data3 ); pString++; // skip -
pString = StringToUChar( pString, &pClsid->Data4[0] ); pString = StringToUChar( pString, &pClsid->Data4[1] ); pString++; // skip -
pString = StringToUChar( pString, &pClsid->Data4[2] ); pString = StringToUChar( pString, &pClsid->Data4[3] ); pString = StringToUChar( pString, &pClsid->Data4[4] ); pString = StringToUChar( pString, &pClsid->Data4[5] ); pString = StringToUChar( pString, &pClsid->Data4[6] ); pString = StringToUChar( pString, &pClsid->Data4[7] );
return pString; }
void CLSIDToString( CLSID * pClsid, char * pString ) { sprintf( pString, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}", pClsid->Data1, pClsid->Data2, pClsid->Data3, pClsid->Data4[0], pClsid->Data4[1], pClsid->Data4[2], pClsid->Data4[3], pClsid->Data4[4], pClsid->Data4[5], pClsid->Data4[6], pClsid->Data4[7] ); }
|