/*++ Copyright (C) 1996-1999 Microsoft Corporation Module Name: utils.h Abstract: --*/ #ifndef _UTILS_H_ #define _UTILS_H_ //#include #include // For PUNICODE_STRING #include "stdafx.h" #include "propbag.h" //=========================================================================== // Macro Definitions //=========================================================================== #define DEFAULT_LOG_FILE_SERIAL_NUMBER ((DWORD)0x00000001) #define DEFAULT_LOG_FILE_MAX_SIZE ((DWORD)-1) #define DEFAULT_CTR_LOG_FILE_TYPE SLF_BIN_FILE //=========================================================================== // Exported Functions //=========================================================================== // // Conversion // BOOL TruncateLLTime (LONGLONG llTime, LONGLONG* pllTime); BOOL LLTimeToVariantDate (LONGLONG llTime, DATE *pDate); BOOL VariantDateToLLTime (DATE Date, LONGLONG *pllTime); DWORD SlqTimeToMilliseconds ( SLQ_TIME_INFO* pTimeInfo, LONGLONG* pllmsecs); // // Property bag I/O // HRESULT _stdcall DwordFromPropertyBag ( CPropertyBag* pPropBag, LPCWSTR szPropName, DWORD& rdwData ); HRESULT _stdcall ShortFromPropertyBag ( CPropertyBag* pPropBag, LPCWSTR szPropName, SHORT& riData ); HRESULT _stdcall BOOLFromPropertyBag ( CPropertyBag* pPropBag, LPCWSTR szPropName, BOOL& rbData ); HRESULT _stdcall DoubleFromPropertyBag ( CPropertyBag* pPropBag, LPCWSTR szPropName, DOUBLE& rdblData ); HRESULT _stdcall FloatFromPropertyBag ( CPropertyBag* pPropBag, LPCWSTR szPropName, FLOAT& rfData ); HRESULT _stdcall CyFromPropertyBag ( CPropertyBag* pPropBag, LPCWSTR szPropName, CY& rcyData ); HRESULT _stdcall StringFromPropertyBag ( CPropertyBag* pPropBag, LPCWSTR szPropName, LPWSTR szData, DWORD* pdwBufLen ); HRESULT _stdcall LLTimeFromPropertyBag ( CPropertyBag* pPropBag, LPCWSTR szPropName, LONGLONG& rllData ); HRESULT _stdcall SlqTimeFromPropertyBag ( CPropertyBag* pPropBag, WORD wFlags, PSLQ_TIME_INFO pstiDefault, PSLQ_TIME_INFO pstiData ); // Registry I/O DWORD _stdcall AddStringToMszBuffer ( LPCWSTR szString, LPWSTR szBuffer, DWORD* pdwBufLen, DWORD* pdwBufStringLen ); LONG _stdcall WriteRegistryStringValue ( HKEY hKey, LPCWSTR cwszValueName, DWORD dwType, LPCWSTR pszBuffer, DWORD dwBufLen ); LONG _stdcall WriteRegistryDwordValue ( HKEY hKey, LPCWSTR cwszValueName, LPDWORD pdwValue, DWORD dwType=REG_DWORD); // Also supports REG_BINARY LONG _stdcall WriteRegistrySlqTime ( HKEY hKey, LPCWSTR cwszValueName, PSLQ_TIME_INFO pstiData ); LONG _stdcall ReadRegistryDwordValue ( HKEY hKey, LPCWSTR cwszValueName, LPDWORD pdwValue ); LONG _stdcall ReadRegistrySlqTime ( HKEY hKey, LPCWSTR cwszValueName, PSLQ_TIME_INFO pstiData ); // // Wrapper and helper functions for html to registry // HRESULT _stdcall StringFromPropBagAlloc ( CPropertyBag* pPropBag, LPCWSTR szPropertyName, LPWSTR* pszBuffer, DWORD* pdwBufferLen, DWORD* pdwStringLen = NULL ); HRESULT _stdcall AddStringToMszBufferAlloc ( LPCWSTR szString, LPWSTR* pszBuffer, DWORD* pdwBufLen, DWORD* pdwBufStringLen ); HRESULT _stdcall InitDefaultSlqTimeInfo ( DWORD dwQueryType, WORD wTimeType, PSLQ_TIME_INFO pstiData ); /* HRESULT ProcessStringProperty ( CPropertyBag* pPropBag, HKEY hKeyParent, LPCWSTR szHtmlPropertyName, LPCWSTR szRegPropertyName, DWORD dwRegType, LPWSTR* pszBuffer, DWORD* pdwBufferLen ); */ // // Resources // LPWSTR ResourceString(UINT uID); // // Messages // DWORD _stdcall FormatSystemMessage ( DWORD dwMessageId, LPWSTR pszSystemMessage, DWORD dwBufSize, ... ); DWORD _stdcall FormatResourceString ( DWORD dwResourceId, LPWSTR pszFormattedString, DWORD dwBufSize, va_list* pargList ); void _stdcall DisplayResourceString ( DWORD dwResourceId, ... ); void _stdcall DisplayErrorMessage ( DWORD dwMessageId, ... ); BOOL _stdcall IsLogManMessage ( DWORD dwMessageId, DWORD* pdwResourceId = NULL ); // // Files // BOOL _stdcall FileRead ( HANDLE hFile, void* lpMemory, DWORD nAmtToRead ); BOOL _stdcall FileWrite ( HANDLE hFile, void* lpMemory, DWORD nAmtToWrite ); BOOL _stdcall IsValidFileName ( LPCWSTR cszFileName ); LPTSTR _stdcall ExtractFileName ( LPTSTR pFileSpec ); // // Folder path // BOOL _stdcall LoadDefaultLogFileFolder( TCHAR *szFolder ); DWORD _stdcall ParseFolderPath( LPCTSTR szOrigPath, LPTSTR szBuffer, INT* piBufLen ); DWORD __stdcall IsValidDirPath ( LPCWSTR cszPath, BOOL bLastNameIsDirectory, BOOL bCreateMissingDirs, BOOL& rbIsValid ); // // Guids // DWORD _stdcall GuidFromString( IN PUNICODE_STRING GuidString, OUT GUID* Guid ); #endif //_UTILS_H_