Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

165 lines
5.2 KiB

/*==========================================================================
*
* Copyright (C) 1998-2000 Microsoft Corporation. All Rights Reserved.
*
* File: Utils.h
* Content: serial service provider utilitiy functions
*
* History:
* Date By Reason
* ==== == ======
* 11/25/98 jtk Created
***************************************************************************/
#ifndef __UTILS_H__
#define __UTILS_H__
#undef DPF_SUBCOMP
#define DPF_SUBCOMP DN_SUBCOMP_MODEM
//**********************************************************************
// Constant definitions
//**********************************************************************
//
// type definition for values in StringToValue and ValueToString
//
#define VALUE_ENUM_TYPE DWORD
//**********************************************************************
// Macro definitions
//**********************************************************************
//**********************************************************************
// Structure definitions
//**********************************************************************
//
// forward strucutre references
//
class CModemSPData;
typedef struct _BUFFERDESC BUFFERDESC;
typedef struct _MESSAGE_HEADER MESSAGE_HEADER;
//
// structure for relating a string to an enum value
//
typedef struct _STRING_BLOCK
{
DWORD dwEnumValue;
const WCHAR *pWCHARKey;
DWORD dwWCHARKeyLength;
const char *pASCIIKey;
DWORD dwASCIIKeyLength;
TCHAR szLocalizedKey[256];
} STRING_BLOCK;
//
// structure to generate list of modems
//
typedef struct _MODEM_NAME_DATA
{
DWORD dwModemID; // modem ID
DWORD dwModemNameSize; // size of name (including NULL)
const TCHAR *pModemName; // modem name
} MODEM_NAME_DATA;
//**********************************************************************
// Variable definitions
//**********************************************************************
//**********************************************************************
// Function prototypes
//**********************************************************************
BOOL ModemInitProcessGlobals( void );
void ModemDeinitProcessGlobals( void );
HRESULT InitializeInterfaceGlobals( CModemSPData *const pSPData );
void DeinitializeInterfaceGlobals( CModemSPData *const pSPData );
HRESULT LoadTAPILibrary( void );
void UnloadTAPILibrary( void );
BOOL IsSerialGUID( const GUID *const pGuid );
BOOL StringToValue( const WCHAR *const pString,
const DWORD dwStringLength,
VALUE_ENUM_TYPE *const pEnum,
const STRING_BLOCK *const pPairs,
const DWORD dwPairCount );
BOOL ValueToString( const WCHAR **const ppString,
DWORD *const pdwStringLength,
const DWORD Enum,
const STRING_BLOCK *const pPairs,
const DWORD dwPairCount );
void DeviceIDToGuid( GUID *const pGuid, const UINT_PTR DeviceID, const GUID *const pEncryptionGuid );
DWORD GuidToDeviceID( const GUID *const pGuid, const GUID *const pEncryptionGuid );
void ComDeviceIDToString( TCHAR *const pString, const UINT_PTR DeviceID );
HRESULT WideToAnsi( const WCHAR *const pWCHARString,
const DWORD dwWCHARStringLength,
char *const pString,
DWORD *const pdwStringLength );
HRESULT AnsiToWide( const char *const pString,
const DWORD dwStringLength,
WCHAR *const pWCHARString,
DWORD *const pdwWCHARStringLength );
HRESULT CreateSPData( CModemSPData **const ppSPData,
const SP_TYPE SPType,
IDP8ServiceProviderVtbl *const pVtbl );
HRESULT InitializeInterfaceGlobals( CModemSPData *const pSPData );
void DeinitializeInterfaceGlobals( CModemSPData *const pSPData );
HRESULT GenerateAvailableComPortList( BOOL *const pfPortAvailable,
const UINT_PTR uMaxDeviceIndex,
DWORD *const pdwPortCount );
HRESULT GenerateAvailableModemList( const TAPI_INFO *const pTAPIInfo,
DWORD *const pdwModemCount,
MODEM_NAME_DATA *const pModemNameData,
DWORD *const pdwModemNameDataSize );
_inline DWORD ModemIDFromTAPIID( const DWORD dwTAPIID ) { return ( dwTAPIID + 1 ); }
#undef DPF_MODNAME
#define DPF_MODNAME "TAPIIDFromModemID"
_inline DWORD TAPIIDFromModemID( const DWORD dwModemID )
{
DNASSERT( dwModemID != 0 );
return ( dwModemID - 1 );
}
#undef DPF_MODNAME
#ifndef UNICODE
HRESULT PhoneNumberToWCHAR( const char *const pPhoneNumber,
WCHAR *const pWCHARPhoneNumber,
DWORD *const pdwWCHARPhoneNumberSize );
HRESULT PhoneNumberFromWCHAR( const WCHAR *const pWCHARPhoneNumber,
char *const pPhoneNumber,
DWORD *const pdwPhoneNumberSize );
#endif
//
// GUID encryption/decription code. Note that it's presently an XOR function
// so map the decryption code to the encryption function.
//
void ModemEncryptGuid( const GUID *const pSourceGuid,
GUID *const pDestinationGuid,
const GUID *const pEncrpytionKey );
inline void ModemDecryptGuid( const GUID *const pSourceGuid,
GUID *const pDestinationGuid,
const GUID *const pEncryptionKey ) { ModemEncryptGuid( pSourceGuid, pDestinationGuid, pEncryptionKey ); }
#endif // __UTILS_H__