|
|
//==========================================================================
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright 1998 - 1999 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------
// just some stuff to help out.
#include "precomp.h"
//+---------------------------------------------------------------------------
//
// Function: CalcListViewWidth, public
//
// Synopsis: Given a ListView determines width of client size
// subtracting off the scrollbar.
//
// Arguments:
//
// Returns:
//
// Modifies:
//
//----------------------------------------------------------------------------
int CalcListViewWidth(HWND hwndList,int iDefault) { NONCLIENTMETRICSA metrics; RECT rcClientRect;
metrics.cbSize = sizeof(metrics);
// explicitly ask for ANSI version of SystemParametersInfo since we just
// care about the ScrollWidth and don't want to conver the LOGFONT info.
if (GetClientRect(hwndList,&rcClientRect) && SystemParametersInfoA(SPI_GETNONCLIENTMETRICS,sizeof(metrics),(PVOID) &metrics,0)) { // subtract off scroll bar distance
rcClientRect.right -= (metrics.iScrollWidth); } else { rcClientRect.right = iDefault; // if fail, use default
}
return rcClientRect.right; }
//+---------------------------------------------------------------------------
//
// Function: IsValidDir, public
//
// Synopsis: Determines pDirName is a valid fullpath to a directory.
//
// Arguments:
//
// Returns:
//
// Modifies:
//
//----------------------------------------------------------------------------
BOOL IsValidDir(TCHAR *pDirName) { BOOL fReturn = FALSE; HANDLE hFind; WIN32_FIND_DATA finddata;
hFind = FindFirstFile(pDirName, &finddata);
if (hFind != (HANDLE) -1) {
fReturn = (finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? TRUE : FALSE; FindClose(hFind); }
return fReturn; }
//+---------------------------------------------------------------------------
//
// Function: FormatDateTime, public
//
// Synopsis: Formats the filetime into a string.
//
// Arguments:
//
// Returns:
//
// Modifies:
//
//----------------------------------------------------------------------------
TCHAR *FormatDateTime(FILETIME *pft,TCHAR *pszDatetimeBuf,DWORD cbBufSize) { TCHAR * pDateTime = pszDatetimeBuf; int cchWritten; SYSTEMTIME sysTime; FILETIME ftLocal;
FileTimeToLocalFileTime(pft,&ftLocal); FileTimeToSystemTime(&ftLocal,&sysTime);
// insert date in form of date<space>hour
*pDateTime = NULL;
// want to insert the date
if (cchWritten = GetDateFormat(NULL,DATE_SHORTDATE,&sysTime,NULL,pDateTime,cbBufSize)) { pDateTime += (cchWritten -1); // move number of characters written. (cchWritten includes the NULL)
*pDateTime = TEXT(' '); // pDateTime is now ponting at the NULL character.
++pDateTime;
// no try to get the hours if fails we make sure that the last char is NULL;
if (!GetTimeFormat(NULL,TIME_NOSECONDS,&sysTime,NULL,pDateTime,cbBufSize - cchWritten)) { *pDateTime = NULL; } }
return pszDatetimeBuf; }
//+---------------------------------------------------------------------------
//
// Function: lstrcpyX, public
//
// Synopsis: Implements WideChar strcpy so can use on Win9x
//
// Arguments:
//
// Returns:
//
// Modifies:
//
//----------------------------------------------------------------------------
LPWSTR lstrcpyX( LPWSTR lpString1, LPCWSTR lpString2 ) { LPWSTR lpDest = lpString1;
Assert(lpString1); Assert(lpString2);
while( *lpDest++ = *lpString2++ ) ; return lpString1; }
|