mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-22 14:30:52 +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/sms.pp svneol=native#text/plain
|
||||||
packages/winceunits/src/tapi.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/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.pp svneol=native#text/plain
|
||||||
packages/winceunits/src/windbase_edb.inc svneol=native#text/plain
|
packages/winceunits/src/windbase_edb.inc svneol=native#text/plain
|
||||||
packages/winceunits/src/wininet.pp 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
|
override TARGET_UNITS+=comobj buildwinceunits
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wince)
|
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
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-wince)
|
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
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_RSTS+=comconst
|
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 \
|
gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl \
|
||||||
sipapi cpl bt_api bt_sdp bthapi bthutil pimstore ril sms ws2bth keybd nled \
|
sipapi cpl bt_api bt_sdp bthapi bthutil pimstore ril sms ws2bth keybd nled \
|
||||||
phone connmgr devload devmgmt mmreg mmsystem msacm wininet ras raserror \
|
phone connmgr devload devmgmt mmreg mmsystem msacm wininet ras raserror \
|
||||||
sip projects \
|
sip projects wap \
|
||||||
activex ole2 comconst
|
activex ole2 comconst
|
||||||
|
|
||||||
units_win32=rapi cesync
|
units_win32=rapi cesync
|
||||||
|
@ -25,7 +25,7 @@ uses
|
|||||||
gpsapi,todaycmn,windbase,cesync,gx,winioctl,msgqueue,pm,service,htmlctrl,
|
gpsapi,todaycmn,windbase,cesync,gx,winioctl,msgqueue,pm,service,htmlctrl,
|
||||||
sipapi, cpl, bt_api, bt_sdp, bthapi, bthutil, pimstore, ril, sms, ws2bth,
|
sipapi, cpl, bt_api, bt_sdp, bthapi, bthutil, pimstore, ril, sms, ws2bth,
|
||||||
keybd, nled, phone, connmgr, devload, devmgmt, mmreg, mmsystem, msacm,
|
keybd, nled, phone, connmgr, devload, devmgmt, mmreg, mmsystem, msacm,
|
||||||
wininet, ras, raserror, sip, projects;
|
wininet, ras, raserror, sip, projects, wap;
|
||||||
|
|
||||||
implementation
|
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