/*
 * Lzexpand APIs thunks for Win32s
 */
__foldwin32sstuff __foldwin32sstuff;
//**********************************foldstyleinitialization = true;


enablemapdirect3216 = true;
flatthunks = false;

#include "types.thk"

typedef HANDLE  HINSTANCE;
typedef DWORD   HTAPI;
typedef HTAPI   *LPHTAPI;
typedef HTAPI   HAPP;
typedef HAPP    HLINEAPP;
typedef HAPP    HPHONEAPP;
typedef HAPP    *LPHAPP;        
typedef HTAPI   HCALL;
typedef HCALL   *LPHCALL;       
typedef HTAPI   HLINE;
typedef HLINE   *LPHLINE;       
typedef HTAPI   HPHONE;
typedef HPHONE  *LPHPHONE;      
typedef HICON   *LPHICON;
typedef void    LINECALLBACK;
typedef void    PHONECALLBACK;
typedef LPSTR   LPCSTR;

typedef HLINEAPP *LPHLINEAPP;
typedef HPHONEAPP *LPHPHONEAPP;
typedef LPVOID  LPLINEEXTENSIONID;

typedef WORD    WPARAM;

typedef LPVOID  LPLINETRANSLATEOUTPUT;          /* LP to data structure */
typedef LPVOID  LPLINETRANSLATECAPS;            /* LP to data structure */
typedef LPVOID  LPLINEFORWARDLIST;
typedef LPVOID  LPLINECALLPARAMS;
typedef LPVOID  LPLINEGENERATETONE;
typedef LPVOID  LPLINEADDRESSCAPS;
typedef LPVOID  LPLINEADDRESSSTATUS;
typedef LPVOID  LPLINECALLINFO;
typedef LPVOID  LPLINECALLSTATUS;
typedef LPVOID  LPLINECALLLIST;
typedef LPVOID  LPLINEDEVCAPS;
typedef LPVOID  LPLINEDEVSTATUS;
typedef LPVOID  LPLINEMONITORTONE;
typedef LPVOID  LPVARSTRING;
typedef LPVOID  LPLINEDIALPARAMS;
typedef LPVOID  LPLINEMEDIACONTROLDIGIT;
typedef LPVOID  LPLINEMEDIACONTROLMEDIA;
typedef LPVOID  LPLINEMEDIACONTROLTONE;
typedef LPVOID  LPLINEMEDIACONTROLCALLSTATE;
typedef LPVOID  LPPHONEBUTTONINFO;
typedef LPVOID  LPPHONECAPS;
typedef LPVOID  LPPHONESTATUS;
typedef LPVOID  LPPHONEEXTENSIONID;
typedef LPVOID  LPLINECOUNTRYLIST;
typedef LPVOID  LPLINEPROVIDERLIST;





/* Simple Telephony prototypes */

LONG tapiRequestMakeCall (LPCSTR lpszDestAddress, LPCSTR lpszAppName, LPCSTR lpszCalledParty, LPCSTR lpszComment) =
LONG tapiRequestMakeCall (LPCSTR lpszDestAddress, LPCSTR lpszAppName, LPCSTR lpszCalledParty, LPCSTR lpszComment)
{
}

/*PROBLEM? WORD as parameter */
LONG tapiRequestMediaCall (HWND hWnd, WORD wRequestID, LPCSTR lpszDeviceClass, LPCSTR lpDeviceID, DWORD dwSize, 
                DWORD dwSecure, LPCSTR lpszDestAddress, LPCSTR lpszAppName, LPCSTR lpszCalledParty, LPCSTR lpszComment) =
LONG tapiRequestMediaCall (HWND hWnd, WORD wRequestID, LPCSTR lpszDeviceClass, LPCSTR lpDeviceID, DWORD dwSize, 
                DWORD dwSecure, LPCSTR lpszDestAddress, LPCSTR lpszAppName, LPCSTR lpszCalledParty, LPCSTR lpszComment)
{
    body = special;
}

/*PROBLEM? WORD as parameter */
LONG tapiRequestDrop (HWND hWnd, WPARAM wRequestID) =
LONG tapiRequestDrop (HWND hWnd, WPARAM wRequestID)
{
    body = special;
}

LONG tapiGetLocationInfo(LPSTR lpszCountryCode, LPSTR lpszCityCode) =
LONG tapiGetLocationInfo(LPSTR lpszCountryCode, LPSTR lpszCityCode)
{}
                
LONG lineRegisterRequestRecipient (HLINEAPP hLineApp, DWORD dwRegistrationInstance, DWORD dwRequestMode, DWORD bEnable) =
LONG lineRegisterRequestRecipient (HLINEAPP hLineApp, DWORD dwRegistrationInstance, DWORD dwRequestMode, DWORD bEnable)
{
    body = special;
}


/* Other TAPI functions */

//   hInstance  = push;
//   lpfnCallback = push;
LONG lineInitialize16 (LPHLINEAPP lphLineApp, HINSTANCE hInstance, LINECALLBACK lpfnCallback, 
                        LPCSTR lpszAppName, LPDWORD lpdwNumDevs) =
LONG lineInitialize16 (LPHLINEAPP lphLineApp, HINSTANCE hInstance, LINECALLBACK lpfnCallback, 
                        LPCSTR lpszAppName, LPDWORD lpdwNumDevs)
{
   body = special;
}


LONG lineShutdown16 (HLINEAPP hLineApp) =
LONG lineShutdown16 (HLINEAPP hLineApp)
{
   body = special;
}


//   hInstance  = push;
//   lpfnCallback = push;
LONG phoneInitialize16 (LPHPHONEAPP lphPhoneApp, HINSTANCE hInstance, PHONECALLBACK lpfnCallback,
                        LPCSTR lpszAppName, LPDWORD lpdwNumDevs) =
LONG phoneInitialize16 (LPHPHONEAPP lphPhoneApp, HINSTANCE hInstance, PHONECALLBACK lpfnCallback,
                        LPCSTR lpszAppName, LPDWORD lpdwNumDevs)
{
    body = special;
}

LONG phoneShutdown16 (HPHONEAPP hPhoneApp) =
LONG phoneShutdown16 (HPHONEAPP hPhoneApp)
{
    body = special;
}

LONG lineForward (HLINE hLine, DWORD bAllAddresses, DWORD dwAddressID, LPLINEFORWARDLIST lpForwardList, 
                DWORD dwNumRingsNoAnswer, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams) =
LONG lineForward (HLINE hLine, DWORD bAllAddresses, DWORD dwAddressID, LPLINEFORWARDLIST lpForwardList, 
                DWORD dwNumRingsNoAnswer, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
{
    body = special;
}

LONG lineMakeCall (HLINE hLine, LPHCALL lphCall, LPCSTR lpszDestAddress, DWORD dwCountryCode, LPLINECALLPARAMS lpCallParams) =
LONG lineMakeCall (HLINE hLine, LPHCALL lphCall, LPCSTR lpszDestAddress, DWORD dwCountryCode, LPLINECALLPARAMS lpCallParams)
{
    body = special;
}

LONG lineUnpark (HLINE hLine, DWORD dwAddressID, LPHCALL lphCall, LPCSTR lpszDestAddress) =
LONG lineUnpark (HLINE hLine, DWORD dwAddressID, LPHCALL lphCall, LPCSTR lpszDestAddress)
{
    body = special;
}

LONG linePickup (HLINE hLine, DWORD dwAddressID, LPHCALL lphCall, LPCSTR lpszDestAddress, LPCSTR lpszGroupID) =
LONG linePickup (HLINE hLine, DWORD dwAddressID, LPHCALL lphCall, LPCSTR lpszDestAddress, LPCSTR lpszGroupID)
{
    body = special;
}

LONG lineSetupConference (HCALL hCall, HLINE hLine, LPHCALL lphConfCall, LPHCALL lphConsultCall, 
                DWORD dwNumParties, LPLINECALLPARAMS lpCallParams) =
LONG lineSetupConference (HCALL hCall, HLINE hLine, LPHCALL lphConfCall, LPHCALL lphConsultCall, 
                DWORD dwNumParties, LPLINECALLPARAMS lpCallParams)
{
    body = special;
}

LONG lineCompleteTransfer (HCALL hCall, HCALL hConsultCall, LPHCALL lphConfCall, DWORD dwTransferMode) =
LONG lineCompleteTransfer (HCALL hCall, HCALL hConsultCall, LPHCALL lphConfCall, DWORD dwTransferMode)
{
    body = special;
}

LONG linePrepareAddToConference (HCALL hConfCall, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams) =
LONG linePrepareAddToConference (HCALL hConfCall, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
{
    body = special;
}

LONG lineSetupTransfer (HCALL hCall, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams) =
LONG lineSetupTransfer (HCALL hCall, LPHCALL lphConsultCall, LPLINECALLPARAMS lpCallParams)
{
    body = special;
}

LONG lineCompleteCall (HCALL hCall, LPDWORD lpdwCompletionID, DWORD dwCompletionMode, DWORD dwMessageID) =
LONG lineCompleteCall (HCALL hCall, LPDWORD lpdwCompletionID, DWORD dwCompletionMode, DWORD dwMessageID)
{
    body = special;
}

LONG lineDevSpecific (HLINE hLine, DWORD dwAddressID, HCALL hCall, LPVOID lpParams, DWORD dwSize) =
LONG lineDevSpecific (HLINE hLine, DWORD dwAddressID, HCALL hCall, LPVOID lpParams, DWORD dwSize)
{
    body = special;
}

LONG lineDevSpecificFeature (HLINE hLine, DWORD dwFeature, LPVOID lpParams, DWORD dwSize) =
LONG lineDevSpecificFeature (HLINE hLine, DWORD dwFeature, LPVOID lpParams, DWORD dwSize)
{
    body = special;
}

LONG lineGatherDigits (HCALL hCall, DWORD dwDigitModes, LPSTR lpsDigits, DWORD dwNumDigits, 
                LPCSTR lpszTerminationDigits, DWORD dwFirstDigitTimeout, DWORD dwInterDigitTimeout) =
LONG lineGatherDigits (HCALL hCall, DWORD dwDigitModes, LPSTR lpsDigits, DWORD dwNumDigits, 
                LPCSTR lpszTerminationDigits, DWORD dwFirstDigitTimeout, DWORD dwInterDigitTimeout)
{
    body = special;
}

LONG linePark (HCALL hCall, DWORD dwParkMode, LPCSTR lpszDirAddress, LPVARSTRING lpNonDirAddress) =
LONG linePark (HCALL hCall, DWORD dwParkMode, LPCSTR lpszDirAddress, LPVARSTRING lpNonDirAddress)
{
    body = special;
}




LONG phoneDevSpecific (HPHONE hPhone, LPVOID lpParams, DWORD dwSize) =
LONG phoneDevSpecific (HPHONE hPhone, LPVOID lpParams, DWORD dwSize)
{
    body = special;
}

 









//*   
//*   
//*   /* Private API: TAPI32 must run this thunk to clean up our act.
//*    *
//*    * We declare pCB32Tab as DWORD, not POINTER. We want the linear
//*    * address passed thru untouched.
//*    */
//*   VOID TapiThunkInit(DWORD pCB32Tab) =
//*   VOID TapiThunkInit(DWORD pCB32Tab)
//*   {
//*   }
//*   /* Private API: TAPI32 must run this thunk before any other.
//*    *
//*    * We declare pCB32Tab as DWORD, not POINTER. We want the linear
//*    * address passed thru untouched.
//*    */
//*   VOID TapiThunkTerminate(DWORD pCB32Tab) =
//*   VOID TapiThunkTerminate(DWORD pCB32Tab)
//*   {
//*   }
//*   
//*   






/*
typedef void (CALLBACK * LINECALLBACK) (DWORD hDevice, DWORD dwMessage, DWORD dwInstance,
                DWORD dwParam1, DWORD dwParam2, DWORD dwParam3) =
typedef void (CALLBACK * LINECALLBACK) (DWORD hDevice, DWORD dwMessage, DWORD dwInstance,
                DWORD dwParam1, DWORD dwParam2, DWORD dwParam3)
{}
*/


/*
typedef void (CALLBACK * PHONECALLBACK) (DWORD hDevice, DWORD dwMessage, DWORD dwInstance,
                DWORD dwParam1, DWORD dwParam2, DWORD dwParam3) =
typedef void (CALLBACK * PHONECALLBACK) (DWORD hDevice, DWORD dwMessage, DWORD dwInstance,
                DWORD dwParam1, DWORD dwParam2, DWORD dwParam3)
{}
*/