TAPIUTILS.H
上传用户:fstfhk1234
上传日期:2007-06-12
资源大小:67k
文件大小:2k
源码类别:

TAPI编程

开发平台:

Visual C++

  1. //
  2. // TAPIUTILS.H
  3. //
  4. #include <tapi.h>
  5. class CTapiConnection
  6. {
  7.  protected:
  8.     // this area contains the protected members of the CTapiConnection class
  9.     DWORD m_dwNumDevs;   // the number of line devices available
  10.     DWORD m_dwDeviceID;  // the device ID
  11.     DWORD m_dwRequestedID;
  12.     LONG m_lAsyncReply;
  13.     // BOOLEANS to handle reentrancy
  14.     BOOL m_bShuttingDown;
  15.     BOOL m_bStoppingCall;
  16.     BOOL m_bInitializing;
  17.     BOOL m_bReplyReceived;
  18.     
  19.     BOOL m_bTapiInUse;   // whether TAPI is in use or not
  20.     BOOL m_bInitialized; // whether TAPI has been initialized
  21.  public:
  22.     // this area contains the public members of the CTapiConnection class
  23.     HLINEAPP m_hLineApp; // the usage handle of this application for TAPI
  24.     HCALL m_hCall;       // handle to the call
  25.     HLINE m_hLine;       // handle to the open line
  26.     DWORD m_dwAPIVersion;   // the API version
  27.     char m_szPhoneNumber[64];  // the phone number to call
  28.  protected:
  29.     // Here is where I put the protected (internal) functions
  30.     BOOL ShutdownTAPI();
  31.     BOOL HandleLineErr(long lLineErr);
  32.     LPLINEDEVCAPS GetDeviceLine(DWORD *dwAPIVersion, LPLINEDEVCAPS lpLineDevCaps);
  33.     LPLINEDEVCAPS MylineGetDevCaps(LPLINEDEVCAPS lpLineDevCaps,
  34.         DWORD dwDeviceID, DWORD dwAPIVersion);
  35.     LPVOID CheckAndReAllocBuffer(LPVOID lpBuffer, size_t sizeBufferMinimum);
  36.     LPLINEADDRESSCAPS MylineGetAddressCaps (LPLINEADDRESSCAPS lpLineAddressCaps,
  37.         DWORD dwDeviceID, DWORD dwAddressID,DWORD dwAPIVersion, DWORD dwExtVersion);
  38.     BOOL MakeTheCall(LPLINEDEVCAPS lpLineDevCaps,LPCSTR lpszAddress);
  39.     LPLINECALLPARAMS CreateCallParams (LPLINECALLPARAMS lpCallParams, LPCSTR lpszDisplayableAddress);
  40.     long WaitForReply (long lRequestID);
  41.     void HandleLineCallState(DWORD dwDevice, DWORD dwMessage, DWORD dwCallbackInstance,
  42.         DWORD dwParam1, DWORD dwParam2, DWORD dwParam3);
  43.  private:
  44.    // This section is for private functions
  45.  public:
  46.     // Public functions
  47.     CTapiConnection();   
  48.     ~CTapiConnection();
  49.     BOOL Create(char *szPhoneNumber = NULL);
  50.     BOOL DialCall(char *szPhoneNumber = NULL);
  51.     BOOL HangupCall();
  52.     static void CALLBACK lineCallbackFunc(
  53.         DWORD dwDevice, DWORD dwMsg, DWORD dwCallbackInstance, 
  54.         DWORD dwParam1, DWORD dwParam2, DWORD dwParam3);
  55. };