{\r
m_OverlapRead.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);\r
m_OverlapWrite.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);\r
- if (m_OverlapRead.hEvent == NULL || m_OverlapWrite.hEvent == NULL)\r
- return E_OUTOFMEMORY;\r
\r
- m_OverlapRead.hEvent = (HANDLE) ((ULONG_PTR) m_OverlapRead.hEvent | 1);\r
- m_OverlapWrite.hEvent = (HANDLE) ((ULONG_PTR) m_OverlapWrite.hEvent | 1);\r
- return NOERROR;\r
+ return (m_OverlapRead.hEvent != NULL && m_OverlapWrite.hEvent != NULL) ?\r
+ NOERROR : E_OUTOFMEMORY;\r
}\r
\r
CWMProvider::~CWMProvider()\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return ::GetOverlappedResult(m_hFile, pOverlapped,\r
- pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP_(HANDLE) CWMProvider::\r
lpInBuffer, nInBufferSize,\r
lpOutBuffer, nOutBufferSize,\r
lpBytesReturned, &m_OverlapWrite);\r
- ret = GetOverlappedResult(&m_OverlapWrite, lpBytesReturned, TRUE);\r
+ ret = ::GetOverlappedResult(m_hFile, &m_OverlapWrite, lpBytesReturned, TRUE);\r
LeaveCriticalSection(&m_CritSecWrite);\r
} else {\r
ret = DeviceIoControl(hDevice, dwIoControlCode,\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return ::GetOverlappedResult(m_hFile, pOverlapped,\r
- pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP CWVCompletionQueue::\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return ::GetOverlappedResult(m_hFile, pOverlapped,\r
- pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP CWVDevice::\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return ::GetOverlappedResult(m_hFile, pOverlapped,\r
- pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP CWVConnectEndpoint::\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return ::GetOverlappedResult(m_hFile, pOverlapped,\r
- pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP CWVDatagramEndpoint::\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return ::GetOverlappedResult(m_hFile, pOverlapped,\r
- pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP CWVQueuePair::\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return CWVQueuePair::\r
- GetOverlappedResult(pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP CWVConnectQueuePair::\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return CWVQueuePair::\r
- GetOverlappedResult(pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP CWVDatagramQueuePair::\r
GetOverlappedResult(OVERLAPPED *pOverlapped,\r
DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
{\r
- return ::GetOverlappedResult(m_hFile, pOverlapped,\r
- pNumberOfBytesTransferred, bWait);\r
+ ::GetOverlappedResult(m_hFile, pOverlapped, pNumberOfBytesTransferred, bWait);\r
+ return (HRESULT) pOverlapped->Internal;\r
}\r
\r
STDMETHODIMP CWVSharedReceiveQueue::\r