I have the following piece of code:

        COMSTAT         sStatus ;
        DWORD           dwNumBytesWritten, dwError, dwDummy ;
        OVERLAPPED      sOverlapData ;

        if (m_hPortHandle != INVALID_HANDLE_VALUE)
        {
                memset(&sOverlapData, 0, sizeof(OVERLAPPED) );
                sOverlapData.hEvent = ::CreateEvent(NULL, TRUE, FALSE, NULL);

                if (!::WriteFile(m_hPortHandle, pbyBuffer, uLength,
                                                        &dwNumBytesWritten, 
&sOverlapData) )
                {
                        dwError = ::GetLastError();
                        if (dwError == ERROR_IO_PENDING)
                        {
                                // Wait for completion of write.
                                ::GetOverlappedResult(m_hPortHandle, &sOverlapData,
                                                                                
&dwDummy, TRUE);
                        }

Reply via email to