localmon.h
上传用户:looem2003
上传日期:2014-07-20
资源大小:13733k
文件大小:6k
源码类别:

打印编程

开发平台:

Visual C++

  1. /*++
  2. Copyright (c) 1990-1998  Microsoft Corporation
  3. All rights reserved
  4. Module Name:
  5.     localmon.h
  6. --*/
  7. #ifndef _LOCALMON_H_
  8. #define _LOCALMON_H_
  9. #define COUNTOF(x)                (sizeof(x)/sizeof *(x))
  10. #include "mem.h"
  11. #define DBG_TRACE
  12. #define DBG_WARN
  13. #define DBG_ERROR
  14. #define DBG_MSG(level, message)
  15. #define SPLASSERT(arg)
  16. extern HINSTANCE   LcmhInst;
  17. extern CRITICAL_SECTION    LcmSpoolerSection;
  18. extern DWORD    LcmPortInfo1Strings[];
  19. extern DWORD    LcmPortInfo2Strings[];
  20. extern PINIPORT pIniFirstPort;
  21. extern PINIXCVPORT pIniFirstXcvPort;
  22. extern WCHAR szNULL[];
  23. extern WCHAR szWindows[];
  24. extern WCHAR szINIKey_TransmissionRetryTimeout[];
  25. extern WCHAR szLcmDeviceNameHeader[];
  26. extern WCHAR szFILE[];
  27. extern WCHAR szNUL[];
  28. extern WCHAR szNUL_COLON[];
  29. extern WCHAR szLcmCOM[];
  30. extern WCHAR szLcmLPT[];
  31. extern WCHAR szIRDA[];
  32. extern WCHAR szPopFax[];
  33. #define MSG_ERROR           MB_OK | MB_ICONSTOP
  34. #define MSG_WARNING         MB_OK | MB_ICONEXCLAMATION
  35. #define MSG_YESNO           MB_YESNO | MB_ICONQUESTION
  36. #define MSG_INFORMATION     MB_OK | MB_ICONINFORMATION
  37. #define MSG_CONFIRMATION    MB_OKCANCEL | MB_ICONEXCLAMATION
  38. #define TIMEOUT_MIN         1
  39. #define TIMEOUT_MAX         999999
  40. #define TIMEOUT_STRING_MAX  6
  41. #define WITHINRANGE( val, lo, hi ) 
  42.     ( ( val <= hi ) && ( val >= lo ) )
  43. #define IS_FILE_PORT(pName) 
  44.     !_wcsicmp( pName, szFILE )
  45. #define IS_NUL_PORT(pName) 
  46.     (!_wcsicmp( pName, szNUL ) || !_wcsicmp( pName, szNUL_COLON ) )
  47. #define IS_IRDA_PORT(pName) 
  48.     !_wcsicmp( pName, szIRDA )
  49. #define IS_POPFAX_PORT(pName) 
  50.     !_wcsicmp( pName, szPopFax )
  51. #define IS_COM_PORT(pName) 
  52.     IsCOMPort( pName )
  53. #define IS_LPT_PORT(pName) 
  54.     IsLPTPort( pName )
  55. VOID
  56. CompleteRead(
  57.             DWORD Error,
  58.             DWORD ByteCount,
  59.     __in    LPOVERLAPPED pOverlapped
  60.     );
  61. BOOL
  62. PortExists(
  63.     __in_opt LPWSTR pName,
  64.     __in     LPWSTR pPortName,
  65.     __out    PDWORD pError
  66.     );
  67. BOOL
  68. PortIsValid(
  69.     __in    LPWSTR pPortName
  70.     );
  71. BOOL
  72. IsCOMPort(
  73.     __in    LPWSTR pPort
  74.     );
  75. BOOL
  76. IsLPTPort(
  77.     __in    LPWSTR pPort
  78.     );
  79. VOID
  80. LcmEnterSplSem(
  81.     VOID
  82.     );
  83. VOID
  84. LcmLeaveSplSem(
  85.     VOID
  86.     );
  87. VOID
  88. LcmSplOutSem(
  89.     VOID
  90.     );
  91. PINIENTRY
  92. LcmFindName(
  93.     __in    PINIENTRY pIniKey,
  94.     __in    LPWSTR pName
  95.     );
  96. PINIENTRY
  97. LcmFindIniKey(
  98.     __in    PINIENTRY pIniEntry,
  99.     __in    LPWSTR lpName
  100.     );
  101. LPBYTE
  102. LcmPackStrings(
  103.     __in    LPWSTR *pSource,
  104.     __out   LPBYTE pDest,
  105.     __inout DWORD *DestOffsets,
  106.     __inout LPBYTE pEnd
  107.     );
  108. INT
  109. LcmMessage(
  110.     HWND hwnd,
  111.     DWORD Type,
  112.     INT CaptionID,
  113.     INT TextID,
  114.     ...
  115.     );
  116. DWORD
  117. ReportError(
  118.     HWND  hwndParent,
  119.     DWORD idTitle,
  120.     DWORD idDefaultError
  121.     );
  122. VOID
  123. LcmRemoveColon(
  124.     __inout LPWSTR  pName
  125.     );
  126. PINIPORT
  127. LcmCreatePortEntry(
  128.     __inout PINILOCALMON pIniLocalMon,
  129.     __in    LPWSTR   pPortName
  130.     );
  131. BOOL
  132. LcmDeletePortEntry(
  133.     __inout PINILOCALMON pIniLocalMon,
  134.     __in    LPWSTR   pPortName
  135.     );
  136. PINIXCVPORT
  137. CreateXcvPortEntry(
  138.     __inout PINILOCALMON pIniLocalMon,
  139.             LPCWSTR pszName,
  140.             ACCESS_MASK GrantedAccess
  141.     );
  142. BOOL
  143. DeleteXcvPortEntry(
  144.     __in PINIXCVPORT  pIniXcvPort
  145.     );
  146. BOOL
  147. GetIniCommValues(
  148.     __in LPWSTR         pName,
  149.          LPDCB          pdcb,
  150.          LPCOMMTIMEOUTS pcto
  151.     );
  152. BOOL
  153. LocalAddPortEx(
  154.     __in LPWSTR   pName,
  155.          DWORD    Level,
  156.          LPBYTE   pBuffer,
  157.     __in LPWSTR   pMonitorName
  158.     );
  159. DWORD
  160. ConfigureLPTPortCommandOK(
  161.     __in_bcount(cbInputData)   PBYTE        pInputData,
  162.                                DWORD        cbInputData,
  163.     __out_bcount(cbOutputData) PBYTE        pOutputData,
  164.                                DWORD        cbOutputData,
  165.     __out                      PDWORD       pcbOutputNeeded,
  166.     __inout                    PINIXCVPORT  pIniXcv
  167.     );
  168. DWORD
  169. GetPortSize(
  170.     __in    PINIPORT pIniPort,
  171.             DWORD   Level
  172.     );
  173. LPBYTE
  174. CopyIniPortToPort(
  175.     __in    PINIPORT pIniPort,
  176.             DWORD   Level,
  177.     __out   LPBYTE  pPortInfo,
  178.     __in    LPBYTE   pEnd
  179.     );
  180. BOOL
  181. GetCOMPort(
  182.     __inout PINIPORT    pIniPort
  183.     );
  184. BOOL
  185. ReleaseCOMPort(
  186.     __inout PINIPORT    pIniPort
  187.     );
  188. BOOL
  189. ValidateDosDevicePort(
  190.     __inout PINIPORT    pIniPort
  191.     );
  192. BOOL
  193. RemoveDosDeviceDefinition(
  194.     __in    PINIPORT    pIniPort
  195.     );
  196. BOOL
  197. DeletePortNode(
  198.     __inout PINILOCALMON pIniLocalMon,
  199.     __in    PINIPORT  pIniPort
  200.     );
  201. BOOL
  202. FixupDosDeviceDefinition(
  203.     __inout PINIPORT    pIniPort
  204.     );
  205. DWORD
  206. LcmXcvDataPort(
  207.     __in    HANDLE  hXcv,
  208.             LPCWSTR pszDataName,
  209.     __in_bcount(cbInputData) PBYTE   pInputData,
  210.             DWORD   cbInputData,
  211.     __out_bcount(cbOutputData) PBYTE   pOutputData,
  212.             DWORD   cbOutputData,
  213.     __out   PDWORD  pcbOutputNeeded
  214.     );
  215. BOOL
  216. LcmXcvOpenPort(
  217.     __in    HANDLE hMonitor,
  218.             LPCWSTR pszObject,
  219.             ACCESS_MASK GrantedAccess,
  220.             PHANDLE phXcv
  221.     );
  222. BOOL
  223. LcmXcvClosePort(
  224.     __in    HANDLE  hXcv
  225.     );
  226. DWORD
  227. WINAPIV
  228. StrNCatBuffW(
  229.     __out_ecount(cchBuffer) PWSTR pszBuffer,
  230.     UINT        cchBuffer,
  231.     ...
  232.     );
  233. #endif // _LOCALMON_H_
  234. BOOL
  235. GetIniCommValuesFromRegistry (
  236.     __in        LPCWSTR     pszPortName,
  237.     __deref_out LPWSTR*     ppszCommValues
  238.     );
  239. VOID
  240. GetTransmissionRetryTimeoutFromRegistry (
  241.     __out DWORD*      pdwTimeout
  242.     );
  243. DWORD
  244. SetTransmissionRetryTimeoutInRegistry (
  245.     __in LPCWSTR     pszTimeout
  246.     );
  247. BOOL
  248. AddPortInRegistry (
  249.     __in LPCWSTR     pszPortName
  250.     );
  251. VOID
  252. DeletePortFromRegistry (
  253.     __in LPCWSTR     pszPortName
  254.     );
  255. LPWSTR
  256. AdjustFileName(
  257.     __in LPWSTR pFileName
  258.     );