если вы видите этот текст, отключите в настройках форума использование JavaScript
Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания .
Новичкам также крайне полезно ознакомиться с данным документом .
[Win32] Установка свойств модема 18.05.04 14:16
Автор: sidus Статус: Незарегистрированный пользователь
Нужно выключить динамики модема програмно, вот как я делаю:
HANDLE hModem = INVALID_HANDLE_VALUE;
LPCOMMCONFIG pComConf = NULL;
__try
{
hModem = CreateFile( "\\\\.\\Rockwell 56000 External Modem PnP",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, NULL);
if ( hModem == INVALID_HANDLE_VALUE )
__leave;
DWORD cbNeed = sizeof(COMMCONFIG);
pComConf = (LPCOMMCONFIG)GlobalAlloc( GMEM_ZEROINIT, cbNeed );
if ( !pComConf )
__leave;
GetCommConfig( hModem, pComConf, &cbNeed );
if ( cbNeed > sizeof(COMMCONFIG) )
{
GlobalFree( pComConf );
pComConf = (LPCOMMCONFIG)GlobalAlloc( GMEM_ZEROINIT, cbNeed );
GetCommConfig( hModem, pComConf, &cbNeed );
}
if ( pComConf->dwProviderSubType != PST_MODEM )
__leave;
if ( pComConf->dwProviderOffset == 0 )
__leave;
LPMODEMSETTINGS pModemSettings = (LPMODEMSETTINGS)&pComConf->wcProviderData;
pModemSettings->dwSpeakerMode = MDMSPKR_OFF;
SetCommConfig( hModem, pComConf, cbNeed );
}
__finally
{
if ( pComConf != NULL )
GlobalFree( pComConf );
if ( hModem != INVALID_HANDLE_VALUE )
CloseHandle( hModem );
}
Но pComConf->dwProviderOffset всегда 0! Почему??
Может я хендл не так получаю, хотя он открывается нормально.