| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files/SMSC client .NET/samples/cbuilder/SMPP/ |
Upload File : |
//------------------------------------------------------------------------------
// SMSC Relay components SMPP sample application
//
// $Header: $
// Copyright (c) 2003-2013 Tops. All rights reserved.
//------------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "smscc_OCX"
#pragma link "smscc_TLB"
#pragma resource "*.dfm"
TfmMain *fmMain;
//---------------------------------------------------------------------------
__fastcall TfmMain::TfmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
// Connect to SMSC
void __fastcall TfmMain::bConnectClick(TObject *Sender) {
int Result;
mLog->Text = "";
FLog->AddConnectingEvent();
mLog->Refresh();
Result = SMSCclientSMPP1->tcpConnect(WideString(eHost->Text).c_bstr(),
StrToInt(ePort->Text), WideString("").c_bstr());
if (Result) { FLog->AddConnectionErrorEvent(Result); }
else { FLog->AddConnectedEvent(); }
}
//---------------------------------------------------------------------------
// Disonnect from SMSC
void __fastcall TfmMain::bDisconnectClick(TObject *Sender) {
SMSCclientSMPP1->tcpDisconnect();
}
//---------------------------------------------------------------------------
// Initialize session with SMSC
void __fastcall TfmMain::bInitializeClick(TObject *Sender) {
int Result;
Result = SMSCclientSMPP1->smppInitializeSession(WideString(eSystemID->Text).c_bstr(),
WideString(ePassword->Text).c_bstr(), StrToInt(eTON->Text),
StrToInt(eNPI->Text), WideString(eSystemType->Text).c_bstr());
if (Result) { FLog->AddInitializationErrorEvent(Result); }
else { FLog->AddInitializedEvent(); }
}
//---------------------------------------------------------------------------
// Submit message to the SMSC
void __fastcall TfmMain::bSubmitClick(TObject *Sender) {
int Result;
WideString MessageID;
TDateTime TimeStamp;
TOleEnum Encoding;
long Options, i;
switch (cEncoding->ItemIndex) {
case 2: Encoding = EncodingEnum::EncodingEnum_etUCS2Text; break;
case 1: Encoding = EncodingEnum::EncodingEnum_et8BitHexadecimal; break;
default: Encoding = EncodingEnum::EncodingEnum_et7BitText; break;
}
Options = 0;
if (cbStatusReport->State == cbChecked) {
Options += SubmitOptionEnum::SubmitOptionEnum_soRequestStatusReport;
}
if (cbDirectDisplay->State == cbChecked) {
Options += SubmitOptionEnum::SubmitOptionEnum_soDirectDisplay;
}
// Create multipart representation of the message
IMultipartMessage* mpm = SMSCencoder1->EncodeMultipartMessage(
SplitMethodEnum::SplitMethodEnum_smUDH,
WideString(mSubmit->Text).c_bstr(),
WideString(mUDH->Text).c_bstr(), Encoding, L"");
int cLower = mpm->get_Parts()->rgsabound[0].lLbound;
int cCount = mpm->get_Parts()->rgsabound[0].cElements;
for(i = cLower; i < cLower + cCount; i++) {
SafeArrayLock(mpm->get_Parts());
IDispatchPtr pDisp;
IMessagePartPtr mp;
// Get element as pointer to IDispatch interface
SafeArrayGetElement(mpm->get_Parts(), &i, (void HUGEP* FAR*)&pDisp);
// Convert to IMessagePart
mp = pDisp;
// Submit part
Result = SMSCclientSMPP1->smppSubmitMessage(
WideString(eDestination->Text).c_bstr(), StrToInt(eDestTON->Text),
StrToInt(eDestNPI->Text), WideString(eOriginator->Text).c_bstr(),
StrToInt(eOrigTON->Text), StrToInt(eOrigNPI->Text),
mp->Content, Encoding, mp->UDH, Options, &MessageID);
SafeArrayUnlock(mpm->get_Parts());
if (Result) { FLog->AddMessageSubmissionErrorEvent(Result); }
else { FLog->AddMessageSubmitedEvent(MessageID); }
}
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::FormCreate(TObject *Sender) {
FLog = new TEventLog(mLog);
cEncoding->ItemIndex = 0;
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::FormDestroy(TObject *Sender) {
delete FLog;
}
// Disconnected from SMSC
void __fastcall TfmMain::SMSCclientSMPP1TcpDisconnected(TObject *Sender, Variant sender,
ITcpDisconnectedEventArgs *e)
{
FLog->AddDisconnectedEvent(e->Reason);
}
//---------------------------------------------------------------------------
// Message received from SMSC
void __fastcall TfmMain::SMSCclientSMPP1SmppMessageReceived(TObject *Sender, Variant sender,
ISmppMessageReceivedEventArgs *e)
{
FLog->AddMessageReceivedEvent(e->Destination, e->Originator, e->Content,
e->Encoding, e->UserDataHeader);
}
//---------------------------------------------------------------------------
// Status Report (SR) received from SMSC
void __fastcall TfmMain::SMSCclientSMPP1SmppStatusReportReceived(TObject *Sender,
Variant sender, ISmppStatusReportReceivedEventArgs *e)
{
FLog->AddStatusReportReceivedEvent(e->MessageID, e->Destination,
e->Originator, e->MessageState, e->NetworkErrorCode);
}
//---------------------------------------------------------------------------