/****************************************************************************** * 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] ); }