Установка свойств модема
От: Sidus  
Дата: 17.05.04 12:46
Оценка:
Privet vsem!
Vot takaya voznikla problema — nugno vyrubit' dinamiki modema, ya delau tak, no ono ne pashet
To4nee pComConf->wcProviderData ne sodergit infu ot modema.
Kto-to moget byt' ustanavlival svoistva modema?
                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 );
            }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.