|

Chilkat Email Components Home
FileTimeToDosDateTime Source Code
Back
The FileTimeToDosDateTime function is missing on the Pocket PC. Use this as a replacement...
BOOL
FileTimeToDosDateTime(
const FILETIME *lpFileTime,
LPWORD lpFatDate,
LPWORD lpFatTime )
{
*lpFatDate = 0;
*lpFatTime = 0;
BOOL bRetVal = FALSE;
/* Sanity checks. */
if ( !lpFileTime || !lpFatDate || !lpFatTime )
{
return 0;
}
else
{
/* Do conversion. */
SYSTEMTIME SysTime;
if ( FileTimeToSystemTime( lpFileTime, &SysTime ) )
{
if ( SysTime.wYear >= 1980 && SysTime.wYear <= 2037 )
{
*lpFatDate = 0;
*lpFatTime = 0;
*lpFatDate |= ( SysTime.wDay & 0x1F );
*lpFatDate |= ( ( SysTime.wMonth & 0xF ) << 5 );
*lpFatDate |= ( ( ( SysTime.wYear - 1980 ) & 0x7F ) << 9 );
if ( SysTime.wSecond % 2 == 0 )
{
*lpFatTime |= ( ( SysTime.wSecond / 2 ) & 0x1F );
}
else
{
*lpFatTime |= ( ( SysTime.wSecond / 2 + 1 ) & 0x1F );
}
*lpFatTime |= ( ( SysTime.wMinute & 0x3F ) << 5 );
*lpFatTime |= ( ( SysTime.wHour & 0x1F ) << 11 );
bRetVal = TRUE;
}
else
{
bRetVal = 0;
}
}
else
{
bRetVal = FALSE;
}
}
return bRetVal;
}
|