cchannel.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef H_CCHANNEL
  7. #define H_CCHANNEL
  8. #include <pchannel.h>
  9. #define VCAPITYPE _stdcall
  10. #define VCEXPORT
  11. typedef VOID _stdcall CHANNEL_INIT_EVENT_FN(LPVOID pInitHandle,UINT event,LPVOID pData,UINT dataLength);
  12. typedef CHANNEL_INIT_EVENT_FN *PCHANNEL_INIT_EVENT_FN;
  13. #define CHANNEL_EVENT_INITIALIZED 0
  14. #define CHANNEL_EVENT_CONNECTED 1
  15. #define CHANNEL_EVENT_V1_CONNECTED 2
  16. #define CHANNEL_EVENT_DISCONNECTED 3
  17. #define CHANNEL_EVENT_TERMINATED 4
  18. typedef VOID _stdcall CHANNEL_OPEN_EVENT_FN(DWORD openHandle,UINT event,LPVOID pData,UINT32 dataLength,UINT32 totalLength,UINT32 dataFlags);
  19. typedef CHANNEL_OPEN_EVENT_FN *PCHANNEL_OPEN_EVENT_FN;
  20. #define CHANNEL_EVENT_DATA_RECEIVED 10
  21. #define CHANNEL_EVENT_WRITE_COMPLETE 11
  22. #define CHANNEL_EVENT_WRITE_CANCELLED 12
  23. #define CHANNEL_RC_OK 0
  24. #define CHANNEL_RC_ALREADY_INITIALIZED 1
  25. #define CHANNEL_RC_NOT_INITIALIZED 2
  26. #define CHANNEL_RC_ALREADY_CONNECTED 3
  27. #define CHANNEL_RC_NOT_CONNECTED 4
  28. #define CHANNEL_RC_TOO_MANY_CHANNELS 5
  29. #define CHANNEL_RC_BAD_CHANNEL 6
  30. #define CHANNEL_RC_BAD_CHANNEL_HANDLE 7
  31. #define CHANNEL_RC_NO_BUFFER 8
  32. #define CHANNEL_RC_BAD_INIT_HANDLE 9
  33. #define CHANNEL_RC_NOT_OPEN 10
  34. #define CHANNEL_RC_BAD_PROC 11
  35. #define CHANNEL_RC_NO_MEMORY 12
  36. #define CHANNEL_RC_UNKNOWN_CHANNEL_NAME 13
  37. #define CHANNEL_RC_ALREADY_OPEN 14
  38. #define CHANNEL_RC_NOT_IN_VIRTUALCHANNELENTRY 15
  39. #define CHANNEL_RC_NULL_DATA 16
  40. #define CHANNEL_RC_ZERO_LENGTH 17
  41. #define VIRTUAL_CHANNEL_VERSION_WIN2000 1
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45. typedef UINT _stdcall VIRTUALCHANNELINIT(LPVOID *ppInitHandle,PCHANNEL_DEF pChannel,INT channelCount,ULONG versionRequested,PCHANNEL_INIT_EVENT_FN pChannelInitEventProc);
  46. typedef VIRTUALCHANNELINIT *PVIRTUALCHANNELINIT;
  47. typedef UINT _stdcall VIRTUALCHANNELOPEN(LPVOID pInitHandle,LPDWORD pOpenHandle,PCHAR pChannelName,PCHANNEL_OPEN_EVENT_FN pChannelOpenEventProc);
  48. typedef VIRTUALCHANNELOPEN *PVIRTUALCHANNELOPEN;
  49. typedef UINT _stdcall VIRTUALCHANNELCLOSE(DWORD openHandle);
  50. typedef VIRTUALCHANNELCLOSE *PVIRTUALCHANNELCLOSE;
  51. typedef UINT _stdcall VIRTUALCHANNELWRITE(DWORD openHandle,LPVOID pData,ULONG dataLength,LPVOID pUserData);
  52. typedef VIRTUALCHANNELWRITE *PVIRTUALCHANNELWRITE;
  53. typedef struct tagCHANNEL_ENTRY_POINTS {
  54. DWORD cbSize;
  55. DWORD protocolVersion;
  56. PVIRTUALCHANNELINIT pVirtualChannelInit;
  57. PVIRTUALCHANNELOPEN pVirtualChannelOpen;
  58. PVIRTUALCHANNELCLOSE pVirtualChannelClose;
  59. PVIRTUALCHANNELWRITE pVirtualChannelWrite;
  60. } CHANNEL_ENTRY_POINTS,*PCHANNEL_ENTRY_POINTS;
  61. typedef WINBOOL _stdcall VIRTUALCHANNELENTRY(PCHANNEL_ENTRY_POINTS pEntryPoints);
  62. typedef VIRTUALCHANNELENTRY *PVIRTUALCHANNELENTRY;
  63. #ifdef __cplusplus
  64. }
  65. #endif
  66. #endif