iplgxprt.idl 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. //+---------------------------------------------------------------------------
  2. //
  3. // Contents: NetMeeting pluggable transport interfaces
  4. //
  5. // Copyright 1999-2002 Microsoft Corporation. All Rights Reserved.
  6. //
  7. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  8. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  9. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  10. // PARTICULAR PURPOSE.
  11. //----------------------------------------------------------------------------
  12. import "oaidl.idl";
  13. import "ocidl.idl";
  14. #define UUID_IPluggableTransport FB7045F0-A4DC-11D2-B724-00104BC51339
  15. typedef unsigned int HCOMMDEV;
  16. typedef unsigned int HEVENT;
  17. typedef enum tagPLUGXPRT_FRAMING
  18. {
  19. FRAMING_LEGACY_PSTN = 0, // legacy PSTN framing
  20. FRAMING_X224 = 1, // X224 Connect + X224 Data Transfer
  21. }
  22. PLUGXPRT_FRAMING;
  23. typedef enum tagPLUGXPRT_CALL_TYPE
  24. {
  25. PLUGXPRT_UNKNOWN_CALL_TYPE = 0,
  26. PLUGXPRT_CALLER = 1,
  27. PLUGXPRT_CALLEE = 2,
  28. }
  29. PLUGXPRT_CALL_TYPE;
  30. typedef enum tagPLUGXPRT_PSTN_CALL_CONTROL
  31. {
  32. PLUGXPRT_PSTN_CALL_CONTROL_PORT_HANDLE = 0, // default, for normal PSTN
  33. PLUGXPRT_PSTN_CALL_CONTROL_MANUAL = 1, // for legacy null modem
  34. }
  35. PLUGXPRT_PSTN_CALL_CONTROL;
  36. typedef struct tagPLUGXPRT_PARAMETERS
  37. {
  38. ULONG cbStructSize; // size of this structure, must be initialized
  39. DWORD dwFlags; // valid fields defined below
  40. /* PSTN framing */
  41. PLUGXPRT_PSTN_CALL_CONTROL eCallControl; // PSTN call control
  42. ULONG cbReadFileBufferSize; // 10K default; must be no less than 1K
  43. ULONG cbPhysicalLayerSendBufferSize; // 1K default; must be no less than the default
  44. ULONG cbPhysicalLayerReceiveBufferSize; // 10K default; must be no less than 1K
  45. ULONG cMaximumT200TimeoutsInQ922; // 5 default; must be no less than the default
  46. ULONG nT203TimeoutInQ922; // must be no less than the default, which is
  47. // 30000 for PLUGXPRT_PSTN_CALL_CONTROL_PORT_HANDLE,
  48. // 600 for PLUGXPRT_PSTN_CALL_CONTROL_MANUAL
  49. /* X.224 framing */
  50. }
  51. PLUGXPRT_PARAMETERS;
  52. cpp_quote("#define PSTN_PARAM__CALL_CONTROL 0x0001")
  53. cpp_quote("#define PSTN_PARAM__READ_FILE_BUFFER_SIZE 0x0002")
  54. cpp_quote("#define PSTN_PARAM__PHYSICAL_LAYER_SEND_BUFFER_SIZE 0x0004")
  55. cpp_quote("#define PSTN_PARAM__PHSYICAL_LAYER_RECV_BUFFER_SIZE 0x0008")
  56. cpp_quote("#define PSTN_PARAM__MAX_T200_TIMEOUT_COUNT_IN_Q922 0x0010")
  57. cpp_quote("#define PSTN_PARAM__T203_TIMEOUT_IN_Q922 0x0020")
  58. [
  59. object,
  60. uuid(UUID_IPluggableTransport),
  61. pointer_default(unique)
  62. ]
  63. interface IPluggableTransport : IUnknown
  64. {
  65. HRESULT CreateConnection(
  66. [out] BSTR *pbstrConnectionID, // For placing a call and closing connection
  67. [in] PLUGXPRT_CALL_TYPE eCaller, // caller vs callee
  68. [in] DWORD dwProcessID, // Used for DuplicateHandle
  69. [in] HCOMMDEV hCommLink, // Handle to communications file handle
  70. [in] HEVENT hevtDataAvailable, // Ready To Read event ( data avail )
  71. [in] HEVENT hevtWriteReady, // Ready To Write event
  72. [in] HEVENT hevtConnectionClosed, // Connection closed ( unexpectedly???)
  73. [in] PLUGXPRT_FRAMING eFraming, // framing of bits sent on link
  74. [in] PLUGXPRT_PARAMETERS *pParams // OPTIONAL framing specific parameters
  75. );
  76. HRESULT CloseConnection(
  77. [in] BSTR bstrConnectionID);
  78. HRESULT EnableWinsock( );
  79. HRESULT DisableWinsock( );
  80. };