🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.program
Article #1366

Re: Win95 API �� Win95 Comm Port �� ��

#1366
From: ����
Date: Tue, 14 Apr 1998 00:00
70 lines
3128 bytes
�� �� rgong. �Ĵ������ᵽ: ��
: �� �� �� WIN95 COMM PORT �� �� ��
: �� �� CreatFile �� �� COM1�� Ϊ ʲ ô �� �� �� ERROR��(�� �� ֵ �� �� -1)
: �� �� �� ��lpFileName?
: �� д COM1�� �� ��lpFileName="COM1"?
: �� л ָ �� ��

BOOL NEAR OpenConnection()
{            
        char szPort[15];
        BOOL fRetVal;
        HCURSOR hOldCursor,hWaitCursor;
   
        HANDLE hCommWatchThread;
        DWORD dwThreadID;
        COMMTIMEOUTS CommTimeOuts;

        if (!npGPSInfo) return (FALSE);
        
        hWaitCursor=LoadCursor(NULL,IDC_WAIT) ;
        hOldCursor=SetCursor(hWaitCursor) ;

        wsprintf(szPort,"COM%d",PORT(npGPSInfo));

        if ((COMDEV(npGPSInfo)=CreateFile(szPort,GENERIC_READ|GENERIC_WRITE,
                  0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
                  NULL))==(HANDLE)-1)
                return ( FALSE ) ;
        else
        {       SetCommMask(COMDEV(npGPSInfo),EV_RXCHAR);
                SetupComm(COMDEV(npGPSInfo),4096,4096);
                PurgeComm(COMDEV(npGPSInfo),PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
                CommTimeOuts.ReadIntervalTimeout=0xFFFFFFFF;
                CommTimeOuts.ReadTotalTimeoutMultiplier=0;
                CommTimeOuts.ReadTotalTimeoutConstant=1000;
                CommTimeOuts.WriteTotalTimeoutMultiplier=0;
                CommTimeOuts.WriteTotalTimeoutConstant=1000;
                SetCommTimeouts(COMDEV(npGPSInfo),&CommTimeOuts);
        }

        fRetVal=SetupConnection();

        if (fRetVal)
        {       CONNECTED(npGPSInfo)=TRUE;
                if (NULL==(hCommWatchThread=CreateThread((LPSECURITY_ATTRIBUTES)NULL,
                                    0,(LPTHREAD_START_ROUTINE)CommWatchProc,
                                    (LPVOID)NULL,0,&dwThreadID)))
                {       CONNECTED(npGPSInfo)=FALSE;
                        CloseHandle(COMDEV(npGPSInfo));
                        fRetVal=FALSE;
                }
                else
                {       THREADID(npGPSInfo)=dwThreadID;
                        HTHREAD(npGPSInfo)=hCommWatchThread;
                        EscapeCommFunction(COMDEV(npGPSInfo),SETDTR);
                }
        }
        else
        {       CONNECTED(npGPSInfo)=FALSE;
                CloseHandle(COMDEV(npGPSInfo));
        }

        SetCursor(hOldCursor);
        return (fRetVal);
} 


--
�� ��Դ:���ϴ�С�ٺ���Ϣ����վ bbs.nju.edu.cn��[FROM: dialup61-024.nj]
Technical Details
Message-ID: <3O6iZF$t90@bbs.nju.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: fc86e,69751e983eb26185
X-Google-Attributes: gidfc86e,public
From: quest.bbs@bbs.nju.edu.cn (����)
Subject: Re: Win95 API �� Win95 Comm Port �� ��
Date: 1998/04/14
Message-ID: <3O6iZF$t90@bbs.nju.edu.cn>
X-Deja-AN: 344248177
X-Filename: Programming/M.892580511.A
Organization: nju_bbs
Newsgroups: cn.bbs.comp.program