mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 01:48:00 +02:00
+ Added wap wince api unit by AnarchyMob.
git-svn-id: trunk@12370 -
This commit is contained in:
parent
9e19ef3a2c
commit
6dd66f09b9
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -4648,6 +4648,7 @@ packages/winceunits/src/sipapi.pp svneol=native#text/plain
|
||||
packages/winceunits/src/sms.pp svneol=native#text/plain
|
||||
packages/winceunits/src/tapi.pp svneol=native#text/plain
|
||||
packages/winceunits/src/todaycmn.pp svneol=native#text/plain
|
||||
packages/winceunits/src/wap.pp svneol=native#text/plain
|
||||
packages/winceunits/src/windbase.pp svneol=native#text/plain
|
||||
packages/winceunits/src/windbase_edb.inc svneol=native#text/plain
|
||||
packages/winceunits/src/wininet.pp svneol=native#text/plain
|
||||
|
@ -275,10 +275,10 @@ ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_UNITS+=comobj buildwinceunits
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl sipapi cpl bt_api bt_sdp bthapi bthutil pimstore ril sms ws2bth keybd nled phone connmgr devload devmgmt mmreg mmsystem msacm wininet ras raserror sip projects activex ole2 comconst
|
||||
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl sipapi cpl bt_api bt_sdp bthapi bthutil pimstore ril sms ws2bth keybd nled phone connmgr devload devmgmt mmreg mmsystem msacm wininet ras raserror sip projects wap activex ole2 comconst
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl sipapi cpl bt_api bt_sdp bthapi bthutil pimstore ril sms ws2bth keybd nled phone connmgr devload devmgmt mmreg mmsystem msacm wininet ras raserror sip projects activex ole2 comconst
|
||||
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl sipapi cpl bt_api bt_sdp bthapi bthutil pimstore ril sms ws2bth keybd nled phone connmgr devload devmgmt mmreg mmsystem msacm wininet ras raserror sip projects wap activex ole2 comconst
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_RSTS+=comconst
|
||||
|
@ -12,7 +12,7 @@ implicitunits_wince=aygshell commctrl commdlg iphlpapi notify oleauto power shel
|
||||
gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl \
|
||||
sipapi cpl bt_api bt_sdp bthapi bthutil pimstore ril sms ws2bth keybd nled \
|
||||
phone connmgr devload devmgmt mmreg mmsystem msacm wininet ras raserror \
|
||||
sip projects \
|
||||
sip projects wap \
|
||||
activex ole2 comconst
|
||||
|
||||
units_win32=rapi cesync
|
||||
|
@ -25,7 +25,7 @@ uses
|
||||
gpsapi,todaycmn,windbase,cesync,gx,winioctl,msgqueue,pm,service,htmlctrl,
|
||||
sipapi, cpl, bt_api, bt_sdp, bthapi, bthutil, pimstore, ril, sms, ws2bth,
|
||||
keybd, nled, phone, connmgr, devload, devmgmt, mmreg, mmsystem, msacm,
|
||||
wininet, ras, raserror, sip, projects;
|
||||
wininet, ras, raserror, sip, projects, wap;
|
||||
|
||||
implementation
|
||||
|
||||
|
239
packages/winceunits/src/wap.pp
Normal file
239
packages/winceunits/src/wap.pp
Normal file
@ -0,0 +1,239 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2008 Free Pascal development team.
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
********************************************************************** }
|
||||
|
||||
unit wap;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows;
|
||||
|
||||
{$calling cdecl}
|
||||
|
||||
//*********************************************************
|
||||
//
|
||||
// Constants
|
||||
//
|
||||
//*********************************************************
|
||||
|
||||
const
|
||||
wapdll = 'wap.dll';
|
||||
//*******************************************************
|
||||
FACILITY_WAP = $500;
|
||||
//WTLS errors
|
||||
WAP_E_WTLS = (SEVERITY_ERROR shl 31) or (FACILITY_WAP shl 16) or $0001;
|
||||
WAP_E_WTLS_CERTIFICATE = (SEVERITY_ERROR shl 31) or (FACILITY_WAP shl 16) or $0002;
|
||||
WAP_E_WTLS_HANDSHAKE = (SEVERITY_ERROR shl 31) or (FACILITY_WAP shl 16) or $0003;
|
||||
WAP_E_WTLS_CRYPTERROR = (SEVERITY_ERROR shl 31) or (FACILITY_WAP shl 16) or $0004;
|
||||
WAP_E_WTLS_BADMAC = (SEVERITY_ERROR shl 31) or (FACILITY_WAP shl 16) or $0005;
|
||||
WAP_E_NO_UDP_ACCESS = (SEVERITY_ERROR shl 31) or (FACILITY_WAP shl 16) or $00100;
|
||||
|
||||
//Maximum sizes
|
||||
const
|
||||
MAX_WAP_ADDRESS_LENGTH = 64;
|
||||
//WDP field identifiers
|
||||
WDP_FIELD_NONE = $00000000;
|
||||
WDP_FIELD_SOURCEADDRESS = $00000001;
|
||||
WDP_FIELD_SOURCEPORT = $00000002;
|
||||
WDP_FIELD_DESTINATIONADDRESS = $00000004;
|
||||
WDP_FIELD_DESTINATIONPORT = $00000008;
|
||||
WDP_FIELD_USERDATA = $00000010;
|
||||
WDP_FIELD_ERRORCODE = $00000020;
|
||||
//WTP field identifiers
|
||||
WTP_FIELD_NONE = $00000000;
|
||||
WTP_FIELD_SOURCEADDRESS = $00000001;
|
||||
WTP_FIELD_SOURCEPORT = $00000002;
|
||||
WTP_FIELD_DESTINATIONADDRESS = $00000004;
|
||||
WTP_FIELD_DESTINATIONPORT = $00000008;
|
||||
WTP_FIELD_USERACKNOWLEDGEMENT = $00000010;
|
||||
WTP_FIELD_WANTSECURETRANSACTION = $00000020;
|
||||
WTP_FIELD_USERDATA = $00000040;
|
||||
WTP_FIELD_CLASSTYPE = $00000080;
|
||||
WTP_FIELD_EXITINFO = $00000100;
|
||||
WTP_FIELD_HANDLE = $00000200;
|
||||
WTP_FIELD_ABORTCODE = $00000400;
|
||||
WTP_FIELD_TRANSACTIONSECURITYLEVEL = $00000800;
|
||||
INVALID_WTP_TRANSACTION_HANDLE = 0;
|
||||
|
||||
//****************************************************************
|
||||
//
|
||||
// Types
|
||||
//
|
||||
//****************************************************************
|
||||
|
||||
type
|
||||
WAP_LAYER = (
|
||||
WAP_LAYER_WDP = 1,
|
||||
WAP_LAYER_WTLS,
|
||||
WAP_LAYER_WTP,
|
||||
WAP_LAYER_WSP,
|
||||
WAP_LAYER_WAE);
|
||||
PWAP_LAYER = ^WAP_LAYER;
|
||||
|
||||
//WAP primitives
|
||||
WAP_PRIMITIVE_ID = (
|
||||
WAP_PRIMITIVE_ID_T_DUNITDATA = 1);
|
||||
PWAP_PRIMITIVE_ID = ^WAP_PRIMITIVE_ID;
|
||||
|
||||
//WAP primitive type
|
||||
WAP_PRIMITIVE_TYPE = (
|
||||
WAP_PRIMITIVE_TYPE_REQUEST = 1,
|
||||
WAP_PRIMITIVE_TYPE_INDICATION,
|
||||
WAP_PRIMITIVE_TYPE_RESPONSE,
|
||||
WAP_PRIMITIVE_TYPE_CONFIRM);
|
||||
PWAP_PRIMITIVE_TYPE = ^WAP_PRIMITIVE_TYPE;
|
||||
|
||||
//WAP address types
|
||||
WAP_ADDRESS_TYPE = (
|
||||
WAP_ADDRESS_TYPE_UDP = 1,
|
||||
WAP_ADDRESS_TYPE_GSM_SMS);
|
||||
PWAP_ADDRESS_TYPE = ^WAP_ADDRESS_TYPE;
|
||||
|
||||
//WAP address structure
|
||||
WAP_ADDRESS_tag = record
|
||||
watAddressType: WAP_ADDRESS_TYPE;
|
||||
ptsAddress : Array[0..MAX_WAP_ADDRESS_LENGTH-1] of TCHAR;
|
||||
end {WAP_ADDRESS_tag};
|
||||
WAP_ADDRESS = WAP_ADDRESS_tag;
|
||||
PWAP_ADDRESS = ^WAP_ADDRESS_tag;
|
||||
|
||||
WAP_HANDLE = LongInt;
|
||||
PWAP_HANDLE = ^WAP_HANDLE;
|
||||
|
||||
//WTP transaction class types
|
||||
WTP_TRANSACTION_CLASS_TYPE = (
|
||||
WTP_TRANSACTION_CLASS_TYPE_0 = 1,
|
||||
WTP_TRANSACTION_CLASS_TYPE_1,
|
||||
WTP_TRANSACTION_CLASS_TYPE_2);
|
||||
PWTP_TRANSACTION_CLASS_TYPE = ^WTP_TRANSACTION_CLASS_TYPE;
|
||||
|
||||
//WTP secure transaction (WTLS) security levels
|
||||
WTP_TRANSACTION_SECURITY_LEVEL = (
|
||||
WTP_TRANSACTION_SECURITY_LEVEL_NOTSECURE = 1,
|
||||
WTP_TRANSACTION_SECURITY_LEVEL_SECURENOAUTH,
|
||||
WTP_TRANSACTION_SECURITY_LEVEL_GATEWAYAUTH);
|
||||
PWTP_TRANSACTION_SECURITY_LEVEL = ^WTP_TRANSACTION_SECURITY_LEVEL;
|
||||
|
||||
WTP_TRANSACTION_HANDLE = LongInt;
|
||||
|
||||
//WAP primitives
|
||||
//Base primitive type - all other primitive types derive from this one
|
||||
wap_primitive_base_tag = record
|
||||
wpiPrimitiveID : WAP_PRIMITIVE_ID;
|
||||
wptPrimitiveType: WAP_PRIMITIVE_TYPE;
|
||||
dwValidFields : LongInt;
|
||||
end {wap_primitive_base_tag};
|
||||
WAP_PRIMITIVE_BASE = wap_primitive_base_tag;
|
||||
PWAP_PRIMITIVE_BASE = ^wap_primitive_base_tag;
|
||||
|
||||
//T-DUnitdata primitive (WDP)
|
||||
wdp_unitdata_tag = record
|
||||
wpiPrimitiveID : WAP_PRIMITIVE_ID;
|
||||
wptPrimitiveType : WAP_PRIMITIVE_TYPE;
|
||||
dwValidFields : LongInt;
|
||||
waSourceAddress : WAP_ADDRESS;
|
||||
dwSourcePort : LongInt;
|
||||
waDestinationAddress: WAP_ADDRESS;
|
||||
dwDestinationPort : LongInt;
|
||||
pbUserData : PBYTE;
|
||||
dwUserDataSize : LongInt;
|
||||
end {wdp_unitdata_tag};
|
||||
WDP_INITDATA = wdp_unitdata_tag;
|
||||
PWDP_INITDATA = ^wdp_unitdata_tag;
|
||||
|
||||
//T-DError primitive (WDP)
|
||||
//typedef struct wap_primitive_t_derror_tag
|
||||
//WAP_PRIMITIVE_ID wpiPrimitiveID;
|
||||
//WAP_PRIMITIVE_TYPE wptPrimitiveType;
|
||||
//DWORD dwValidFields;
|
||||
//WAP_ADDRESS waSourceAddress;
|
||||
//DWORD dwSourcePort;
|
||||
//WAP_ADDRESS waDestinationAddress;
|
||||
//DWORD dwDestinationPort;
|
||||
//HRESULT hrErrorCode;
|
||||
//WAP_PRIMITIVE_T_DERROR;
|
||||
//TR-Invoke primitive (WTP)
|
||||
|
||||
wtp_invoke_tag = record
|
||||
wpiPrimitiveID : WAP_PRIMITIVE_ID;
|
||||
wptPrimitiveType : WAP_PRIMITIVE_TYPE;
|
||||
dwValidFields : LongInt;
|
||||
waSourceAddress : WAP_ADDRESS;
|
||||
dwSourcePort : LongInt;
|
||||
waDestinationAddress : WAP_ADDRESS;
|
||||
dwDestinationPort : LongInt;
|
||||
bUserAcknowledgement : Bool;
|
||||
bWantSecureTransaction: Bool;
|
||||
pbUserData : PBYTE;
|
||||
dwUserDataSize : LongInt;
|
||||
wtctClassType : WTP_TRANSACTION_CLASS_TYPE;
|
||||
pbExitInfo : PBYTE;
|
||||
dwExitInfoSize : LongInt;
|
||||
wthTransactionHandle : WTP_TRANSACTION_HANDLE;
|
||||
end {wtp_invoke_tag};
|
||||
WTP_INVOKE = wtp_invoke_tag;
|
||||
PWTP_INVOKE = ^wtp_invoke_tag;
|
||||
|
||||
//TR-Result primitive (WTP)
|
||||
wtp_result_tag = record
|
||||
wpiPrimitiveID : WAP_PRIMITIVE_ID;
|
||||
wptPrimitiveType : WAP_PRIMITIVE_TYPE;
|
||||
dwValidFields : LongInt;
|
||||
pbUserData : PBYTE;
|
||||
dwUserDataSize : LongInt;
|
||||
pbExitInfo : PBYTE;
|
||||
dwExitInfoSize : LongInt;
|
||||
wthTransactionHandle : WTP_TRANSACTION_HANDLE ;
|
||||
wtslTransactionSecurityLevel: WTP_TRANSACTION_SECURITY_LEVEL;
|
||||
end {wtp_result_tag};
|
||||
WTP_RESULT = wtp_result_tag;
|
||||
PWTP_RESULT = ^wtp_result_tag;
|
||||
|
||||
//TR-Abort primitive (WTP)
|
||||
wtp_abort_tag = record
|
||||
wpiPrimitiveID : WAP_PRIMITIVE_ID;
|
||||
wptPrimitiveType : WAP_PRIMITIVE_TYPE;
|
||||
dwValidFields : LongInt;
|
||||
bAbortCode : BYTE;
|
||||
wthTransactionHandle: WTP_TRANSACTION_HANDLE ;
|
||||
end {wtp_abort_tag};
|
||||
WTP_ABORT = wtp_abort_tag;
|
||||
PWTP_ABORT = ^wtp_abort_tag;
|
||||
|
||||
//************************************************************
|
||||
//
|
||||
// WinAPI functions
|
||||
//
|
||||
//************************************************************
|
||||
|
||||
function WapOpen(const wlLayer: WAP_LAYER;
|
||||
const dwLocalPort: LongInt;
|
||||
const pwhHandle: PWAP_HANDLE;
|
||||
const phMessageAvailableEvent: PHandle): HRESULT; external wapdll name 'WapOpen';
|
||||
function WapClose(const whHandle: WAP_HANDLE): HRESULT; external wapdll name 'WapClose';
|
||||
function WapSend(const whHandle: WAP_HANDLE;
|
||||
const pwpbPrimitive: PWAP_PRIMITIVE_BASE): HRESULT; external wapdll name 'WapSend';
|
||||
function WapGetNextPrimitiveSize(const whHandle: WAP_HANDLE;
|
||||
const pdwNextPrimitiveSize: PLongInt): HRESULT; external wapdll name 'WapGetNextPrimitiveSize';
|
||||
function WapRead(const whHandle: WAP_HANDLE;
|
||||
const pwpbPrimitiveBuffer: WAP_PRIMITIVE_BASE;
|
||||
const dwPrimitiveBufferSize: LongInt): HRESULT; external wapdll name 'WapRead';
|
||||
function WapPing(const pwaAddress: PWAP_ADDRESS;
|
||||
const wIdentifier: Word;
|
||||
const dwSendDataSize: LongInt;
|
||||
const pdwReceiveDataSize: PLongInt;
|
||||
const dwTimeout: LongInt): HRESULT; external wapdll name 'WapPing';
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
Loading…
Reference in New Issue
Block a user