1、dmcwincpp/ Include this file for Microsoft Visual C+ if you are using pre-compiled headers#include stdafx.h#include dmcwin.hCDMCWin:CDMCWin() m_usController = 0; m_hWnd = 0; m_lThreadID = 0; m_bConnected = FALSE; m_hDmc = -1; m_lLastError = 0;#ifdef DMCMULTIPLETHREADS InitializeCriticalSection(&m_Cr
2、itSec);#endifCDMCWin:CDMCWin(USHORT usController, HWND hWnd, LONG lThreadID) m_usController = usController; m_hWnd = hWnd; m_lThreadID = lThreadID; m_bConnected = FALSE; m_hDmc = -1; m_lLastError = 0;#ifdef DMCMULTIPLETHREADS InitializeCriticalSection(&m_CritSec);#endif if (m_usController 0 & m_usCo
3、ntroller 0 & m_usController 0 & m_usController 17) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCGetHandle(m_usController, &m_hDmc); #ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif if (m_lLastError = 0) return m_hDmc; return -1; void CDMCWin:Se
4、thWnd(HWND hWnd) m_hWnd = hWnd; if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCChangeInterruptNotification(m_hDmc, (long)hWnd);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif ;void CDMCWin:SetThreadID(LONG lThreadID) m_lThreadI
5、D = lThreadID; if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCChangeInterruptNotification(m_hDmc, (long)lThreadID);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif ; LONG CDMCWin:Close() m_lLastError = 0; if (m_hDmc != -1) #ifde
6、f DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCClose(m_hDmc);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif m_hDmc = -1; m_bConnected = FALSE; return m_lLastError;LONG CDMCWin:Command(const PSZ pszCommand, PCHAR pchResponse, ULONG cbResponse) if (m_
7、bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCCommand(m_hDmc, (PSZ)pszCommand, pchResponse, cbResponse);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif else m_lLastError = DMCERROR_HANDLE; return m_lLastError;LONG CDMCWin:FastComman
8、d(const PSZ pszCommand) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCFastCommand(m_hDmc, (PSZ)pszCommand);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif else m_lLastError = DMCERROR_HANDLE; return m_lLastError;LONG CDMCWin:B
9、inaryCommand(PBYTE pbCommand, ULONG ulCommandLength, PCHAR pchResponse, ULONG cbResponse) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCBinaryCommand(m_hDmc, pbCommand, ulCommandLength, pchResponse, cbResponse);#ifdef DMCMULTIPLETHREADS LeaveCr
10、iticalSection(&m_CritSec);#endif else m_lLastError = DMCERROR_HANDLE; return m_lLastError;LONG CDMCWin:GetUnsolicitedResponse(PCHAR pchResponse, ULONG cbResponse) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCGetUnsolicitedResponse(m_hDmc, pchR
11、esponse, cbResponse);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif else m_lLastError = DMCERROR_HANDLE; return m_lLastError;LONG CDMCWin:GetAdditionalResponseLen() LONG lLength; if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMC
12、GetAdditionalResponseLen(m_hDmc, (PULONG)&lLength);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif else m_lLastError = DMCERROR_HANDLE; if (m_lLastError != 0) lLength = 0; return lLength; LONG CDMCWin:GetAdditionalResponse(PCHAR pchResponse, ULONG cbResponse) if (m_bConnected) #ifd
13、ef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCGetAdditionalResponse(m_hDmc, pchResponse, cbResponse);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif else m_lLastError = DMCERROR_HANDLE; return m_lLastError;LONG CDMCWin:GetErrorText(LONG lError, PCH
14、AR pchMessage, ULONG cbMessage)#ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCError(m_hDmc, lError, pchMessage, cbMessage);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif return m_lLastError;LONG CDMCWin:Clear() if (m_bConnected) #ifdef DMCMULTI
15、PLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCClear(m_hDmc);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif return m_lLastError;LONG CDMCWin:Reset() if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCReset(m_
16、hDmc);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif return m_lLastError;LONG CDMCWin:MasterReset() if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCMasterReset(m_hDmc);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);
17、#endif return m_lLastError;LONG CDMCWin:GetVersion(PCHAR pchVersion, ULONG cbVersion) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCVersion(m_hDmc, pchVersion, cbVersion);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif return
18、m_lLastError;LONG CDMCWin:DownloadFile(const PSZ pszFileName, const PSZ pszLabel) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCDownloadFile(m_hDmc, (PSZ)pszFileName, (PSZ)pszLabel);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#en
19、dif return m_lLastError;LONG CDMCWin:DownloadFromBuffer(const PSZ pszBuffer, const PSZ pszLabel) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCDownloadFromBuffer(m_hDmc, (PSZ)pszBuffer, (PSZ)pszLabel);#ifdef DMCMULTIPLETHREADS LeaveCriticalSect
20、ion(&m_CritSec);#endif return m_lLastError;LONG CDMCWin:UploadFile(const PSZ pszFileName) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCUploadFile(m_hDmc, (PSZ)pszFileName);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif retur
21、n m_lLastError;LONG CDMCWin:UploadToBuffer(PCHAR pchBuffer, ULONG cbBuffer) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCUploadToBuffer(m_hDmc, pchBuffer, cbBuffer);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif return m_lLa
22、stError;LONG CDMCWin:SendFile(const PSZ pszFileName) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCSendFile(m_hDmc, (PSZ)pszFileName);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif return m_lLastError;LONG CDMCWin:SendBinaryF
23、ile(const PSZ pszFileName) if (m_bConnected) #ifdef DMCMULTIPLETHREADS EnterCriticalSection(&m_CritSec);#endif m_lLastError = DMCSendBinaryFile(m_hDmc, (PSZ)pszFileName);#ifdef DMCMULTIPLETHREADS LeaveCriticalSection(&m_CritSec);#endif return m_lLastError;LONG CDMCWin:AsciiCommandToBinaryCommand(PSZ
24、 pszAsciiCommand, ULONG ulAsciiCommandLength, PBYTE pbBinaryResult, ULONG cbBinaryResult, ULONG FAR *pulBinaryResultLength) m_lLastError = DMCCommand_AsciiToBinary(m_hDmc, pszAsciiCommand, ulAsciiCommandLength, pbBinaryResult, cbBinaryResult, pulBinaryResultLength); return m_lLastError;LONG CDMCWin:
25、BinaryCommandToAsciiCommand(PBYTE pbBinaryCommand, ULONG ulBinaryCommandLength, PSZ pszAsciiResult, ULONG cbAsciiResult, ULONG FAR *pulAsciiResultLength) m_lLastError = DMCCommand_BinaryToAscii(m_hDmc, pbBinaryCommand, ulBinaryCommandLength, pszAsciiResult, cbAsciiResult, pulAsciiResultLength); return m_lLastError;LONG CDMCWin:AsciiFileToBinaryFile(const PSZ pszInputFileName, const PSZ pszOutputFileName) m_lLastError = DMCFil
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1