🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.nativeapi
Article #16466

Re: Sending Message over a network

#16466
From: Jarkko Juntunen
Date: Tue, 13 May 2003 21:20
70 lines
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-mail
References: <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