Article View: borland.public.cppbuilder.nativeapi
Article #16466Re: Sending Message over a network
From: Jarkko Juntunen
Date: Tue, 13 May 2003 21:20
Date: Tue, 13 May 2003 21:20
70 lines
3077 bytes
3077 bytes
"Muhammad Momin Rashid" <momin@hotmail.com> wrote in
news:3ec1568a@newsgroups.borland.com:
> Following is the code which executes on a button click
>
> void __fastcall TForm1::Button1Click(TObject *Sender)
> {
> AnsiString asTemp = "";
> unsigned long lBufferSize = 0;
>
> StatusBar1->SimpleText = "Sending Message";
>
> asTemp = EditSendTo->Text;
> lBufferSize = asTemp.WideCharBufSize() + 1;
> wchar_t *wcSendTo = new wchar_t[lBufferSize];
> wcSendTo = asTemp.WideChar(wcSendTo, lBufferSize);
>
> asTemp = EditMessageFrom->Text;
> lBufferSize = asTemp.WideCharBufSize() + 1;
> wchar_t *wcFromName = new wchar_t[lBufferSize];
> wcFromName = asTemp.WideChar(wcFromName, lBufferSize);
>
> lBufferSize = MemoMessage->GetTextLen() + 1;
> char *cBuffer = new char[lBufferSize];
> MemoMessage->GetTextBuf(cBuffer, lBufferSize);
>
> int iReturn = NetMessageBufferSend(wcSendTo, wcSendTo, wcFromName,
> cBuffer, lBufferSize);
>
> // additional code here for error checking and cleanup
>
> delete [] wcSendTo;
> delete [] wcFromName;
> delete [] cBuffer;
> }
>
You should cast buffer to LPBYTE, and "calculate" buffer length to
correct value.
Some time ago I just fight with this same thing and I think f following
chunk of code will do the trick.
AnsiString asRecipient = EditSendTo->Text;
AnsiString asFrom = EditMessageFrom->Text;
AnsiString asMessage = "";
for(int i=0; i<MemoMsg->Lines->Count; i++)
{
asMessage += MemoMessage->Lines->Strings[i];
}
wchar_t * MyBuffer = new wchar_t[asMessage.WideCharBufSize()];
wchar_t * MyUser = new wchar_t[asRecipient.WideCharBufSize()];
wchar_t * MySelf = new wchar_t[asFrom.WideCharBufSize()];
asMessage.WideChar(MyBuffer, asMessage.WideCharBufSize());
asRecipient.WideChar(MyUser, asRecipient.WideCharBufSize());
asFrom.WideChar(MySelf, asFrom.WideCharBufSize());
NET_API_STATUS MyStatus = NetMessageBufferSend(NULL,
MyUser,
MySelf,
(LPBYTE)MyBuffer,
wcslen(MyBuffer) * sizeof(WCHAR));
delete [] MyBuffer;
delete [] MyUser;
delete [] MySelf;
--
-jii
Technical Details
Message-ID:
<Xns937B37F94604dzeidzei@207.105.83.65>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!newsfeed.wirehub.nl!news.kweb.on.ca!KWeb!newsgroups.borland.com!not-for-mailReferences:
<3ec0f3fb@newsgroups.borland.com> <3ec11fe0$1@newsgroups.borland.com> <3ec1568a@newsgroups.borland.com>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 10cc67,372ba4ad7a699fb7 X-Google-Attributes: gid10cc67,public X-Google-ArrivalTime: 2003-05-13 14:28:04 PST Newsgroups: borland.public.cppbuilder.nativeapi Subject: Re: Sending Message over a network From: Jarkko Juntunen <dzeidzei@suolakaivos.com> References: <3ec0f3fb@newsgroups.borland.com> <3ec11fe0$1@newsgroups.borland.com> <3ec1568a@newsgroups.borland.com> Organization: Suolakaivos Message-ID: <Xns937B37F94604dzeidzei@207.105.83.65> User-Agent: Xnews/L5 NNTP-Posting-Host: 192.107.203.190 Date: 13 May 2003 14:20:38 -0700 X-Trace: newsgroups.borland.com 1052860838 192.107.203.190 (13 May 2003 14:20:38 -0700) Lines: 70 Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!newsfeed.wirehub.nl!news.kweb.on.ca!KWeb!newsgroups.borland.com!not-for-mail