--- /dev/null
+// This is header file for gnokiiapi.dll\r
+// Latest version: http://marcin-wiacek.topnet.pl\r
+\r
+unit GnokiiAPI;\r
+\r
+interface\r
+\r
+uses Classes,Forms,SysUtils;\r
+\r
+const\r
+ GSM_General = 10;\r
+ GSM_Mobile = 3;\r
+ GSM_Work = 6;\r
+ GSM_Fax = 4;\r
+ GSM_Home = 2;\r
+\r
+ GSM_Date = 19;\r
+ GSM_Number = 11;\r
+ GSM_Note = 10;\r
+ GSM_Postal = 9;\r
+ GSM_Email = 8;\r
+\r
+const\r
+ GMT_ME=0;\r
+ GMT_SM=1;\r
+ GMT_FD=2;\r
+ GMT_ON=3;\r
+ GMT_EN=4;\r
+ GMT_DC=5;\r
+ GMT_RC=6;\r
+ GMT_MC=7;\r
+ GMT_LD=8;\r
+ GMT_MT=9;\r
+ GMT_TA=10;\r
+ GMT_CB=11;\r
+ GMT_CG=12;\r
+\r
+ GCT_FBUS=0;\r
+ GCT_MBUS=3;\r
+\r
+ GSS_SENTREAD=1;\r
+ GSS_NOTSENTREAD=3;\r
+\r
+const\r
+ GSM_None=0;\r
+ GSM_StartupLogo=1; //size 84*48\r
+ GSM_OperatorLogo=2; //size 72*14\r
+ GSM_CallerLogo=3; //size 72*14\r
+ GSM_PictureImage=4; //size 72*28\r
+ GSM_7110OperatorLogo=5; //size 78*21\r
+ GSM_7110StartupLogo=6; //size 96*65\r
+ GSM_6210StartupLogo=7; //size 96*60\r
+ GSM_WelcomeNoteText=8;\r
+ GSM_DealerNoteText=9;\r
+\r
+const\r
+ GSM_SoftReset=3;\r
+\r
+const\r
+ GCN_REMINDER=1;\r
+ GCN_CALL=2;\r
+ GCN_MEETING=3;\r
+ GCN_BIRTHDAY=4;\r
+\r
+const\r
+ GSMF_Text = 0;\r
+ GSMF_Fax = 34;\r
+ GSMF_Voice = 36;\r
+ GSMF_ERMES = 37;\r
+ GSMF_Paging = 38;\r
+ GSMF_UCI = 45;\r
+ GSMF_Email = 50;\r
+ GSMF_X400 = 49;\r
+\r
+ GSMV_1_Hour = 11;\r
+ GSMV_6_Hours = 71;\r
+ GSMV_24_Hours = 167;\r
+ GSMV_72_Hours = 169;\r
+ GSMV_1_Week = 173;\r
+ GSMV_Max_Time = 255;\r
+\r
+ GST_SMS=0;\r
+ GST_DR=1;\r
+\r
+ GSM_Coding_Unicode = 1;\r
+ GSM_Coding_Default = 2;\r
+\r
+ GSCT_SecurityCode = 1;\r
+\r
+ GSM_NoUDH=0;\r
+\r
+const\r
+ FN_CALENDAR=0;\r
+ FN_CALLERGROUPS=2;\r
+ FN_SMS=11;\r
+ FN_PROFILES=14;\r
+ FN_WAP=16;\r
+\r
+ F_CAL61=0;//Calendar in 6110 style - 4 types,...\r
+ F_CAL33=1;//Calendar in 3310 style - 10 reminders, Unicode, 3 coding types\r
+ F_CAL71=2;//Calendar in 7110 style - 4 types, recurrance, etc.\r
+\r
+ F_SMS =7; //SMS with Inbox, Outbox\r
+ F_SMS71=8; //SMS with SMS folders like in 7110\r
+ F_PROF61=22;//Profiles numbered like in N6110\r
+ F_PROF51=23;//Profiles numbered like in N5110\r
+ F_PROF33=24;//Profiles numbered like in N3310.Unicode names\r
+\r
+const\r
+ GE_SMSTOOLONG=22;\r
+\r
+const\r
+ PROFILE_MESSAGE_NOTONE=0;\r
+ PROFILE_MESSAGE_STANDARD=1;\r
+ PROFILE_MESSAGE_SPECIAL=2;\r
+ PROFILE_MESSAGE_BEEPONCE=3;\r
+ PROFILE_MESSAGE_ASCENDING=4;\r
+\r
+ PROFILE_WARNING_OFF=255;\r
+ PROFILE_WARNING_ON =4;\r
+\r
+ PROFILE_CALLALERT_RINGING=1;\r
+ PROFILE_CALLALERT_BEEPONCE=2;\r
+ PROFILE_CALLALERT_OFF=4;\r
+ PROFILE_CALLALERT_RINGONCE=5;\r
+ PROFILE_CALLALERT_ASCENDING=6;\r
+ PROFILE_CALLALERT_CALLERGROUPS=7;\r
+\r
+ PROFILE_KEYPAD_OFF=255;\r
+ PROFILE_KEYPAD_LEVEL1=0;\r
+ PROFILE_KEYPAD_LEVEL2=1;\r
+ PROFILE_KEYPAD_LEVEL3=2;\r
+\r
+ PROFILE_VOLUME_LEVEL1=6;\r
+ PROFILE_VOLUME_LEVEL2=7;\r
+ PROFILE_VOLUME_LEVEL3=8;\r
+ PROFILE_VOLUME_LEVEL4=9;\r
+ PROFILE_VOLUME_LEVEL5=10;\r
+\r
+ PROFILE_CALLERGROUPS_ALL=255;\r
+ PROFILE_CALLERGROUPS_FAMILY=1;\r
+ PROFILE_CALLERGROUPS_VIP=2;\r
+ PROFILE_CALLERGROUPS_FRIENDS=4;\r
+ PROFILE_CALLERGROUPS_COLLEAGUES=8;\r
+ PROFILE_CALLERGROUPS_OTHERS=16;\r
+\r
+ PROFILE_VIBRATION_OFF=0;\r
+ PROFILE_VIBRATION_ON=1;\r
+ PROFILE_VIBRATION_FIRST=2;\r
+\r
+type\r
+ GSM_NetworkInfo= record\r
+ NetworkCode: array[1..10] of char; // GSM network code\r
+ CellID: array[1..10] of char; // CellID\r
+ LAC: array[1..10] of char; // LAC\r
+ end;\r
+ PGSM_NetworkInfo=^GSM_NetworkInfo;\r
+\r
+ GSM_DateTime=record\r
+ IsSet:integer;\r
+ Year:integer;\r
+ Month:integer;\r
+ Day:integer;\r
+ Hour:integer;\r
+ Minute:integer;\r
+ Second:integer;\r
+ Timezone:integer;\r
+ end;\r
+ PGSM_DateTime=^GSM_DateTime;\r
+\r
+ GSM_SubPhonebookEntry= record\r
+ EntryType:integer;\r
+ NumberType:integer;\r
+ Number:array[1..61] of char;\r
+ Date:GSM_DateTime;\r
+ BlockNumber:integer;\r
+ end;\r
+\r
+ GSM_PhonebookEntry= record\r
+ Empty:integer;\r
+ Name:array[1..51] of char;\r
+ Number:array[1..49] of char;\r
+ MemoryType:integer;\r
+ Group:integer;\r
+ Location:integer;\r
+ SubEntries:array[1..8] of GSM_SubPhonebookEntry;\r
+ SubEntriesCount:integer;\r
+ end;\r
+ PGSM_PhonebookEntry=^GSM_PhonebookEntry;\r
+\r
+ GSM_MemoryStatus=record\r
+ MemoryType:integer;\r
+ Used:integer;\r
+ Free:integer;\r
+ end;\r
+ PGSM_memoryStatus=^GSM_MemoryStatus;\r
+\r
+ GSM_RingtoneNote=record\r
+ duration:byte;\r
+ note:byte;\r
+ tempo:integer;\r
+ style:byte;\r
+ end;\r
+\r
+ GSM_Ringtone=record\r
+ name:array[1..20] of char;\r
+ Loop:byte;\r
+ NrNotes:byte;\r
+ notes:array[1..256] of GSM_RingtoneNote;\r
+ allnotesscale:integer;\r
+ location:integer;\r
+ end;\r
+ PGSM_Ringtone=^GSM_Ringtone;\r
+\r
+ GSM_BinRingtone=record\r
+ name:array[1..20] of char;\r
+ frame:array[1..1000] of char;\r
+ length:integer;\r
+ location:integer;\r
+ end;\r
+ PGSM_BinRingtone=^GSM_BinRingtone;\r
+\r
+ GSM_Bitmap=record\r
+ heigh:byte;\r
+ width:byte;\r
+ size:smallint;\r
+ type2:integer;\r
+ netcode:array[1..7] of char;\r
+ text:array[1..256] of char;\r
+ bitmap:array[1..864] of char;\r
+ number:byte;\r
+ ringtone:byte;\r
+ enabled:integer;\r
+ Sender:array[1..41] of char;\r
+ end;\r
+ PGSM_Bitmap=^GSM_Bitmap;\r
+\r
+ GSM_SpeedDial=record\r
+ Number:integer;\r
+ MemoryType:integer;\r
+ Location:integer;\r
+ end;\r
+ PGSM_SpeedDial=^GSM_SpeedDial;\r
+\r
+ GSM_CalendarNote=record\r
+ Location:integer;\r
+ Type2:integer;\r
+ Time:GSM_DateTime;\r
+ Alarm:GSM_DateTime;\r
+ Text:array[1..59] of char;\r
+ Phone:array[1..37] of char;\r
+\r
+ Recurrance:integer;\r
+ YearOfBirth:integer;\r
+ AlarmType:byte;\r
+ ReadNotesInfo:integer;\r
+ end;\r
+ PGSM_CalendarNote=^GSM_CalendarNote;\r
+\r
+ GSM_MessageCenter=record\r
+ No:integer;\r
+ Name:array[1..20] of char;\r
+ Format:integer;\r
+ Validity:integer;\r
+ Number:array[1..40] of char;\r
+ DefaultRecipient:array[1..40] of char;\r
+ end;\r
+ PGSM_MessageCenter=^GSM_MessageCenter;\r
+\r
+ GSM_Profile=record\r
+ Number:integer;\r
+ Name:array[1..40] of char;\r
+ DefaultName:integer;\r
+ KeypadTone:integer;\r
+ Lights:integer;\r
+ CallAlert:integer;\r
+ Ringtone:integer;\r
+ Volume:integer;\r
+ MessageTone:integer;\r
+ WarningTone:integer;\r
+ Vibration:integer;\r
+ CallerGroups:integer;\r
+ ScreenSaver:integer;\r
+ AutomaticAnswer:integer;\r
+ end;\r
+ PGSM_Profile=^GSM_Profile;\r
+\r
+ GSM_OneSimlock=record\r
+ data:array[1..11] of char;\r
+ enabled:integer;\r
+ counter:integer;\r
+ factory:integer;\r
+ end;\r
+\r
+ GSM_AllSimlocks=record\r
+ simlocks:array[1..4] of GSM_OneSimlock;\r
+ end;\r
+ PGSM_AllSimlocks=^GSM_AllSimlocks;\r
+\r
+ GSM_OneSMSFolder=record\r
+ Name:array[1..15] of char;\r
+ locations:array[1..160] of byte;\r
+ number:byte;\r
+ end;\r
+\r
+ GSM_SMSFolders=record\r
+ Folder: array[1..24] of GSM_OneSMSFolder;\r
+ FoldersID: array[1..24] of byte;\r
+ number:byte;\r
+ end;\r
+ PGSM_SMSFolders=^GSM_SMSFolders;\r
+\r
+ GSM_SMSMessage=record\r
+ Coding:integer;\r
+ Time:GSM_DateTime;\r
+ SMSCTime:GSM_DateTime;\r
+ Length:integer;\r
+ Validity:integer;\r
+ UDHType:integer;\r
+ UDH:array[1..140] of char;\r
+ MessageText:array[1..161] of char;\r
+ MessageCenter:GSM_MessageCenter;\r
+ Sender:array[1..41] of char;\r
+ Destination:array[1..41] of char;\r
+ MessageNumber:integer;\r
+ MemoryType:integer;\r
+ Type2:integer;\r
+ Status:integer;\r
+ Class2:integer;\r
+ Compression:integer;\r
+ Location:integer;\r
+ ReplyViaSameSMSC:integer;\r
+ folder:integer;\r
+ SMSData:integer;\r
+ Name:array[1..26] of char;\r
+ end;\r
+ PGSM_SMSMessage=^GSM_SMSMessage;\r
+\r
+ GSM_MultiSMSMessage=record\r
+ number:integer;\r
+ SMS:array[1..6] of GSM_SMSMessage;\r
+ end;\r
+ PGSM_MultiSMSMessage=^GSM_MultiSMSMessage;\r
+\r
+ GSM_SMS2Foldertable=record\r
+ smsnum:integer;\r
+ folder:shortint;\r
+ location:integer;\r
+ end;\r
+\r
+ GSM_SMSStatus=record\r
+ UnRead:integer;\r
+ Number:integer;\r
+ foldertable:array[1..255] of GSM_SMS2FolderTable;\r
+ end;\r
+ PGSM_SMSStatus=^GSM_SMSStatus;\r
+\r
+ GSM_SecurityCode=record\r
+ Type2:integer;\r
+ Code:array[1..10] of char;\r
+ end;\r
+ PGSM_SecurityCode=^GSM_SecurityCode;\r
+\r
+ GSM_WAPBookmark=record\r
+ adress:array[1..256] of char;\r
+ title:array[1..51] of char;\r
+ location:Word;\r
+ end;\r
+ PGSM_WAPBookmark=^GSM_WAPBookmark;\r
+\r
+ GSM_WAPSettings=record\r
+ location:byte;\r
+ homepage:array[1..101] of char;\r
+ title:array[1..21] of char;\r
+ bearer:integer;\r
+ issecurity:integer;\r
+ iscontinuous:integer;\r
+\r
+ //for data bearer\r
+ ipaddress:array[1..21] of char;\r
+ dialup:array[1..21] of char;\r
+ user:array[1..51] of char;\r
+ password:array[1..51] of char;\r
+ isspeed14400:integer;\r
+ isISDNcall:integer;\r
+ isnormalauthentication:integer;\r
+\r
+ //for sms bearer\r
+ server:array[1..22] of char;\r
+\r
+ //for sms or ussd bearer\r
+ service:array[1..21] of char;\r
+ isIP:integer;\r
+\r
+ //for ussd bearer\r
+ code:array[1..11] of char;\r
+ end;\r
+ PGSM_WAPSettings=^GSM_WAPSettings;\r
+\r
+const\r
+ WAPSETTINGS_BEARER_SMS=0;\r
+ WAPSETTINGS_BEARER_DATA=1;\r
+ WAPSETTINGS_BEARER_USSD=2;\r
+\r
+const\r
+ GSM_CDV_Busy = 1; // Divert when busy\r
+ GSM_CDV_NoAnswer = 2; // Divert when not answered\r
+ GSM_CDV_OutOfReach = 3; // Divert when phone off or no coverage\r
+ GSM_CDV_AllTypes = 4; // Divert all calls without ringing\r
+\r
+ GSM_CDV_VoiceCalls = 1;\r
+ GSM_CDV_FaxCalls = 2;\r
+ GSM_CDV_DataCalls = 3;\r
+ GSM_CDV_AllCalls = 4;\r
+\r
+ GSM_CDV_Disable = 0;\r
+ GSM_CDV_Enable = 1;\r
+ GSM_CDV_Query = 2; // Is concrete divert enabled ?\r
+ GSM_CDV_Register = 3; // Sets divert\r
+ GSM_CDV_Erasure = 4; // Erase concrete divert\r
+\r
+type\r
+ GSM_CallDivert=record\r
+ DType:integer;\r
+ CType:integer;\r
+ Operation:integer;\r
+ Number:array[1..41] of char;\r
+ timeout:longword;\r
+ enabled:integer;\r
+ end;\r
+ PGSM_CallDivert=^GSM_CallDivert;\r
+\r
+var\r
+ GSMPhoneConnected: boolean=false;\r
+ GSMNetworkInfo: GSM_NetworkInfo;\r
+\r
+ GSMPort: array[1..256] of Char;\r
+ GSMModel: array[1..256] of Char;\r
+ GSMInitLength: Array[1..256] of char;\r
+ GSMSynchronizeTime: array[1..256] of char;\r
+ GSMConnection: integer=GCT_FBUS;\r
+\r
+type\r
+ TSparkyThread = class(TThread)\r
+ public\r
+ procedure Execute; override;\r
+ end;\r
+\r
+var\r
+ SparkyThread: TSparkyThread;\r
+\r
+function GSM_Initialize(Port:Pchar;Model:Pchar;connectiontype:integer): integer; stdcall; external 'gnokiiapi.dll' name 'myinitialize';\r
+function GSM_Terminate(): integer; stdcall; external 'gnokiiapi.dll' name 'myterminate';\r
+\r
+function GSM_GetNetworkInfo(NetworkInfo:PGSM_NetworkInfo): integer; stdcall; external 'gnokiiapi.dll' name 'mygetnetworkinfo';\r
+function GSM_GetNetworkName(NetworkName:Pchar;NetworkCode:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetnetworkname';\r
+function GSM_GetNetworkCode(NetworkName:Pchar;NetworkCode:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetnetworkcode';\r
+function GSM_GetNetworkData(number:integer; NetworkName:Pchar;NetworkCode:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetnetworkdata';\r
+\r
+function GSM_Netmonitor(mode:integer;Screen:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mynetmonitor';\r
+\r
+function GSM_GetMemoryLocation(entry:PGSM_Phonebookentry): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmemorylocation';\r
+function GSM_WritePhonebookLocation(entry:PGSM_Phonebookentry): integer; stdcall; external 'gnokiiapi.dll' name 'mywritephonebooklocation';\r
+function GSM_GetMemoryStatus(status:PGSM_MemoryStatus): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmemorystatus';\r
+\r
+function GSM_ReadRingtoneFile(filename:Pchar;ringtone:PGSM_Ringtone): integer; stdcall; external 'gnokiiapi.dll' name 'myreadringtonefile';\r
+function GSM_SetRingtone(ringtone:PGSM_Ringtone;notes:Pinteger): integer; stdcall; external 'gnokiiapi.dll' name 'mysetringtone';\r
+function GSM_ReadBinRingtoneFile(filename:Pchar;ringtone:PGSM_BinRingtone): integer; stdcall; external 'gnokiiapi.dll' name 'myreadbinringtonefile';\r
+function GSM_SetBinRingtone(ringtone:PGSM_BinRingtone): integer; stdcall; external 'gnokiiapi.dll' name 'mysetbinringtone';\r
+function GSM_PlayRingtone(ringtone:PGSM_Ringtone): integer; stdcall; external 'gnokiiapi.dll' name 'myplayringtone';\r
+function GSM_PlayNote(note:GSM_RingtoneNote): integer; stdcall; external 'gnokiiapi.dll' name 'myplaynote';\r
+function GSM_PlayTone(herz:integer;volume:byte): integer; stdcall; external 'gnokiiapi.dll' name 'myplaytone';\r
+function GSM_GetTempo(beats:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mygettempo';\r
+\r
+function GSM_ReadBitmapFile(filename:Pchar;bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'myreadbitmapfile';\r
+function GSM_SaveBitmapFile(filename:Pchar;bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'mysavebitmapfile';\r
+function GSM_IsPointBitmap(bitmap:PGSM_Bitmap;x:integer;y:integer): integer; stdcall; external 'gnokiiapi.dll' name 'myispointbitmap';\r
+function GSM_SetPointBitmap(bitmap:PGSM_Bitmap;x:integer;y:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mysetpointbitmap';\r
+function GSM_ClearPointBitmap(bitmap:PGSM_Bitmap;x:integer;y:integer): integer; stdcall; external 'gnokiiapi.dll' name 'myclearpointbitmap';\r
+function GSM_ClearBitmap(bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'myclearbitmap';\r
+function GSM_GetBitmap(bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'mygetbitmap';\r
+function GSM_SetBitmap(bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'mysetbitmap';\r
+function GSM_ResizeBitmap(bitmap:PGSM_Bitmap;bitmaptype:integer): integer; stdcall; external 'gnokiiapi.dll' name 'myresizebitmap';\r
+\r
+function GSM_GetImei(IMEI:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetimei';\r
+function GSM_GetRevision(revision:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetrevision';\r
+function GSM_GetModel(model:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmodel';\r
+function GSM_GetModelNumber(model:Pchar;model2:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmodelnumber';\r
+\r
+function GSM_GetDLLVersion(version:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetdllversion';\r
+\r
+function GSM_GetSpeedDial(entry:PGSM_SpeedDial): integer; stdcall; external 'gnokiiapi.dll' name 'mygetspeeddial';\r
+\r
+function GSM_Reset(mode:byte): integer; stdcall; external 'gnokiiapi.dll' name 'myreset';\r
+\r
+function GSM_GetCalendarNote(entry:PGSM_CalendarNote): integer; stdcall; external 'gnokiiapi.dll' name 'mygetcalendarnote';\r
+function GSM_WriteCalendarNote(entry:PGSM_CalendarNote): integer; stdcall; external 'gnokiiapi.dll' name 'mywritecalendarnote';\r
+function GSM_DeleteCalendarNote(entry:PGSM_CalendarNote): integer; stdcall; external 'gnokiiapi.dll' name 'mydeletecalendarnote';\r
+\r
+function GSM_GetAlarm(alarmnumber:integer;alarm:PGSM_DateTime): integer; stdcall; external 'gnokiiapi.dll' name 'mygetalarm';\r
+\r
+function GSM_GetSMSCenter(center:PGSM_MessageCenter): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsmscenter';\r
+function GSM_SetSMSCenter(center:PGSM_MessageCenter): integer; stdcall; external 'gnokiiapi.dll' name 'mysetsmscenter';\r
+\r
+function GSM_GetProfile(profile:PGSM_Profile): integer; stdcall; external 'gnokiiapi.dll' name 'mygetprofile';\r
+\r
+function GSM_GetSimlock(simlock:PGSM_AllSimlocks): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsimlock';\r
+\r
+function GSM_GetSMSFolders(folders:PGSM_SMSFolders): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsmsfolders';\r
+function GSM_GetSMSMessage(sms:PGSM_SMSMessage): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsmsmessage';\r
+function GSM_SaveSMSMessage(sms:PGSM_SMSMessage): integer; stdcall; external 'gnokiiapi.dll' name 'mysavesmsmessage';\r
+function GSM_SendSMSMessage(sms:PGSM_SMSMessage): integer; stdcall; external 'gnokiiapi.dll' name 'mysendsmsmessage';\r
+function GSM_DeleteSMSMessage(sms:PGSM_SMSMessage): integer; stdcall; external 'gnokiiapi.dll' name 'mydeletesmsmessage';\r
+function GSM_GetSMSStatus(folders:PGSM_SMSStatus): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsmsstatus';\r
+function GSM_MakeMultiPartSMS2(SMS:PGSM_MultiSMSMessage;MessageBuffer:PByte;MessageLength:Integer;UDHType:integer;Coding:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mymakemultipartsms2';\r
+\r
+function GSM_SaveRingtoneToSMS(SMS:PGSM_MultiSMSMessage;ringtone:PGSM_Ringtone;profilestyle:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mysaveringtonetosms';\r
+function GSM_SaveCalendarNoteToSMS(SMS:PGSM_MultiSMSMessage;note:PGSM_CalendarNote): integer; stdcall; external 'gnokiiapi.dll' name 'mysavecalendarnotetosms';\r
+function GSM_SaveBitmapToSMS(SMS:PGSM_MultiSMSMessage;bitmap:PGSM_Bitmap;ScreenSaver:integer;Unicode:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mysavebitmaptosms';\r
+function GSM_SavePhonebookEntryToSMS(SMS:PGSM_MultiSMSMessage;entry:PGSM_PhonebookEntry;version:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mysavephonebookentrytosms';\r
+function GSM_SaveWAPBookmarkToSMS(SMS:PGSM_MultiSMSMessage;bookmark:PGSM_WAPBookmark): integer; stdcall; external 'gnokiiapi.dll' name 'mysavewapbookmarktosms';\r
+function GSM_SaveWAPSettingsToSMS(SMS:PGSM_MultiSMSMessage;settings:PGSM_WAPSettings): integer; stdcall; external 'gnokiiapi.dll' name 'mysavewapsettingstosms';\r
+\r
+function GSM_ReadConfig(model:Pchar;port:Pchar;initlength:Pchar;connection:Pinteger;synchronizetime:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'myreadconfig';\r
+\r
+function GSM_SetLocale(locale:pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mysetlocale';\r
+\r
+function GSM_GetSecurityCode(code:PGSM_SecurityCode): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsecuritycode';\r
+\r
+function GSM_GetModelFeature(featurenumber:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmodelfeature';\r
+\r
+function GSM_GetWAPBookmark(bookmark:PGSM_WAPBookmark): integer; stdcall; external 'gnokiiapi.dll' name 'mygetwapbookmark';\r
+function GSM_SetWAPBookmark(bookmark:PGSM_WAPBookmark): integer; stdcall; external 'gnokiiapi.dll' name 'mysetwapbookmark';\r
+\r
+function GSM_GetWAPSettings(settings:PGSM_WAPSettings): integer; stdcall; external 'gnokiiapi.dll' name 'mygetwapsettings';\r
+\r
+function GSM_CallDivertOperation(divert:PGSM_CallDivert): integer; stdcall; external 'gnokiiapi.dll' name 'mycalldivert';\r
+\r
+implementation\r
+\r
+procedure TSparkyThread.Execute;\r
+begin\r
+ while not Terminated do\r
+ begin\r
+ if GSMPhoneConnected then\r
+ begin\r
+ if GSM_GetNetworkInfo(@GSMNetworkInfo)<>0 then\r
+ begin\r
+ GSMPhoneConnected:=false;\r
+ GSM_Terminate();\r
+ end else begin\r
+ if not SparkyThread.Suspended then SparkyThread.Suspend;\r
+ end;\r
+ end else\r
+ begin\r
+ if GSM_Initialize(@GSMPort,@GSMModel,GSMConnection)=0 then\r
+ begin\r
+ GSMPhoneConnected:=true;\r
+ end else\r
+ GSM_Terminate();\r
+ end;\r
+ end;\r
+ GSMPhoneConnected:=false;\r
+end;\r
+\r
+begin\r
+ GSM_ReadConfig(@GSMmodel,@GSMport,@GSMinitlength,@GSMconnection,@GSMsynchronizetime);\r
+ GSM_SetLocale('.1250');\r
+ GSMPhoneConnected:=false;\r
+ SparkyThread:=TSparkyThread.Create(True);\r
+ SparkyThread.Priority:=tpIdle;\r
+// SparkyThread.Priority:=tpLowest;\r
+ SparkyThread.Resume;\r
+end.\r