Thread

Simple method for creating "Lock-Up Look" FREE Logins, Sample Source included!!! (Sdk)

Simple method for creating "Lock-Up Look" FREE Logins, Sample Source included!!! // Sdk

1  |  

andon m. coleman

Sep 22, 1999, 5:54pm
This is a multi-part message in MIME format.

------=_NextPart_000_002C_01BF0512.BBF7E980
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ooopsies, already I discovered a BUG . . . The Name specified is too =
long . . .
[View Quote] Q. What's this "Lock-Up Look", and what's it caused by?
A. The "Lock-Up Look" is named that because, when you call the AW SDK =
Login Functions without any intervention, your Dialog Thread does not =
receive the WIN32 Message Pump until each one of functions you call has =
finished.
Subsequently, your Dialog Thread is not able to do a Redraw, =
causing undesired Dialog Painting effects.

Q. What is this Thread you speak of?
A. Think of a thread in terms of real life . . .=20
Imagine our program as a string of yarn.
Now, think back to kindergarten, what is yarn made of? --- Why, =
threads of course!
=20
This applies to WIN32 Programming also, however, WIN32 Programs =
are not usually made of hundreds of threads :) --- Usually there's 2 or =
3, and in the case of simple MFC App Wizard applications, there's 1.
=20
This single thread is assigned the job of many things, including : =
Repainting the windows, and any code executed from within it (Such as a =
while block) . . . While blocks will cause the thread to focus in ONLY =
on repeating the code contained inside the block, and not redraw the =
windows, or any of the other stuff it's SUPPOSED to do

Q. Alrighty, that was a kind of loaded answer . . . How does Andon13 =
solve the "Lock-Up Look" problem?
A. Haven't you learned anything so far? =3DP
The most simple solution to the whole problem is the one used . . =
..
=20
In this work-around, we create a Background Worker thread . . . =
This thread has no Dialog Boxes or anything assigned to it, so it can =
focus solely on the AW SDK Initialization / Login --- Further, it has =
the ability to send data to the MAIN Thread, which is the basis for =
the nifty looking status indicator used in this solution.

=20
Q. Wow, sounds interesting . . . Is it hard to implement?
A. No, not at all --- The whole Sample Source code has been commented =
from head to toe (Well, the functions relating to the LOGIN anyway).






NOTE:
Here's a list of syntax / usage / purpose for the most commonly used =
functions in this sample code :

Function: Class: =
Usage: =
=
=
Return Type:
NewStatus(CString LOG, int nTYPE); CLogin Log is the =
message to be appended to the status text area of the Status Dialog, =
nTYPE is an integer value specifying the type of Status Message being =
sent VOID

=
nTYPE:
=
-1 =3D Append without increasing the Progress Indicator's =
Position
=
0 =3D Error --- This removes ANY progress currently shown =
in the Progress Indicator
=
1 =3D Append and Step the Progress indicator up 1 notch.

Function: =
=
=
Class: Usage:
Login (CString chPassword, int nCitnum, int nX, int nY, int nZ, int =
nYAW, int nAV, CString WorldName, CString chIP, int nPort, CString =
chBotName) CLogin Pretty straight forward . . . This function =
is to be called ONLY from within the Thread.

Return Type:
Boolean -- TRUE if the login completed without any errors, =
otherwise, it returns FALSE.

Function: Class: =
Usage:
ThreadFunc (LPVOID pParam) N/A (Global) This is =
called with the creation of the thread . . . There is no need to modify =
the Input / Output to this whatsoever, however, you may change the =
functions called from it (Login being the only important one)

Return Type:
UINT -- No need for intervention with this, just let =
WIN32 Process it.


Function: =
Class: Usage: =
=
=
Return Type:
OnThreadFinished (WPARAM wParam, LPARAM lParam) CLogin =
This is called by the Global Scope call to =
::PostMessage(There's some parameter's in here, but who cares? =3D)) =
LONG --- Leave this to WIN32

That's pretty much it --- If you have any questions, or find any BUGs, =
please E-Mail me : Andon M. Coleman at : Gizmo98 at earthlink.net

Andon M. Coleman

Senior Programmer
R&D

Nothing, Inc.


P.S. I can't forget to give J=F6rg K=F6nig credit for his nice little =
Bitmap Based Dialog code . . .

------=_NextPart_000_002C_01BF0512.BBF7E980
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2614.3500" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Ooopsies, already I discovered a BUG . =
.. . The Name=20
specified is too long . . .</FONT></DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: =
0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV>Andon M. Coleman &lt;<A=20
href=3D"mailto:gizmo98 at earthlink.net">gizmo98 at earthlink.net</A>&gt; =
wrote in=20
message <A =
href=3D"news:37e92b4d.0 at homer">news:37e92b4d.0 at homer</A>...</DIV>
<DIV><FONT face=3DArial size=3D2>
<DIV>
<DIV><FONT face=3DArial size=3D2>Q. What is this?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. A method devised by Andon13 to =
work around the=20
problems associated with calling the AW SDK Login =
Functions.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Q. What's this "Lock-Up Look", and =
what's it=20
caused by?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. The "Lock-Up Look" is named that =
because, when=20
you call the AW SDK Login Functions without any intervention, your =
Dialog=20
Thread does not receive&nbsp;the WIN32 Message Pump until each one of=20
functions you call has finished.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; Subsequently, your =
Dialog=20
Thread is not able to do a Redraw, causing undesired Dialog Painting=20
effects.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Q. What is this Thread you speak =
of?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. </FONT><FONT face=3DArial =
size=3D2>Think of a=20
thread in terms of real life . . . </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; Imagine our =
program as a=20
string of yarn.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; Now, think back to =

kindergarten, what is yarn made of? --- Why, threads of =
course!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; This applies to =
WIN32=20
Programming also, however, WIN32 Programs are not usually made of =
hundreds of=20
threads :) --- Usually there's 2 or 3, and in the case of simple MFC =
App=20
Wizard applications, there's 1.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; This single thread =
is assigned=20
the job of many things, including : Repainting the windows, and any =
code=20
executed from within it (Such as a while block) . . . While blocks =
will cause=20
the thread to focus in ONLY on repeating the code contained inside the =
block,=20
and not &nbsp;&nbsp;&nbsp; redraw the windows, or any of the other =
stuff it's=20
SUPPOSED to do</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Q. Alrighty, that was a kind of =
loaded answer . .=20
. How does Andon13 solve the "Lock-Up Look" problem?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. Haven't you learned anything so =
far?=20
=3DP</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; The most simple =
solution to=20
the whole problem is the one used . . .</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; In this =
work-around, we create=20
a Background Worker thread . . . This thread has no Dialog Boxes or =
anything=20
assigned to it, so it can focus solely on the AW SDK Initialization / =
Login=20
--- Further, it has the ability to send data to the MAIN =
Thread,&nbsp;which is=20
the basis for &nbsp;&nbsp;&nbsp; the&nbsp;nifty looking status =
indicator used=20
in this solution.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Q. Wow, sounds interesting . . . Is =
it hard to=20
implement?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. No, not at all --- The whole =
Sample Source=20
code has been commented from head to toe (Well, the functions relating =
to the=20
LOGIN anyway).</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>NOTE:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Here's a list of syntax / usage / =
purpose for the=20
most commonly used functions in this sample code :</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3DArial size=3D2><FONT =
face=3DArial=20
=
size=3D2>Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class:&nbs=
p;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;=20
Usage:&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; Return Type:</FONT></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>NewStatus(CString LOG, int=20
nTYPE);&nbsp;&nbsp;&nbsp;=20
=
CLogin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;=20
Log is the message to be appended to the status text area of the =
Status=20
Dialog, nTYPE is an integer value specifying the type of Status =
Message being=20
=
sent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;VOID</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;=20
nTYPE:</FONT></DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;=20
-1 =3D Append without increasing the Progress Indicator's =
Position</FONT></DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;0=20
=3D Error --- This removes ANY progress currently shown in the =
Progress=20
Indicator</FONT></DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;1=20
=3D Append and Step the Progress indicator up 1 notch.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3DArial size=3D2><FONT =
face=3DArial=20
size=3D2><FONT face=3DArial=20
=
size=3D2>Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;=20
Class:&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=20
Usage:</FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Login (CString chPassword, int =
nCitnum, int nX,=20
int nY, int nZ, int nYAW, int nAV, CString WorldName, CString chIP, =
int nPort,=20
CString chBotName)&nbsp;&nbsp;&nbsp;&nbsp; CLogin&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; Pretty straight forward . . . This function is to =
be called=20
ONLY from within the Thread.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Return Type:</FONT></DIV>
<DIV><FONT face=3DArial =
size=3D2>Boolean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --=20
&nbsp;&nbsp;&nbsp; TRUE if the login completed without any errors, =
otherwise,=20
it returns FALSE.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>
<DIV><FONT face=3DArial size=3D2>Function:&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=20
=
Class:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
Usage:</FONT></DIV>ThreadFunc (LPVOID =
pParam)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
N/A=20
=
(Global)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;This=20
is called with the creation of the thread . . . There is no need to =
modify the=20
Input / Output to this whatsoever, however, you may change the =
functions=20
called from it (Login being the only important one)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Return Type:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>UINT&nbsp;&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp;&nbsp; -- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No need for =

intervention with this, just let WIN32 Process it.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>
<DIV><FONT face=3DArial size=3D2>Function:&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp;=20
=
Class:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
=
Usage:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return=20
Type:</FONT></DIV>
<DIV>OnThreadFinished (WPARAM wParam, LPARAM=20
=
lParam)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLogin&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
This is called by the Global Scope call to ::PostMessage(There's some=20
parameter's in here, but who cares?=20
=
=3D))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;LONG=20
--- Leave this to WIN32</DIV>
<DIV>&nbsp;</DIV>
<DIV>That's pretty much it --- If you have any questions, or find any =
BUGs,=20
please E-Mail me : Andon M. Coleman at : <A=20
href=3D"mailto:Gizmo98 at earthlink.net">Gizmo98 at earthlink.net</A></DIV>
<DIV>&nbsp;</DIV>
<DIV>Andon M. Coleman</DIV>
<DIV><BR>Senior Programmer</DIV>
<DIV>R&amp;D</DIV>
<DIV>&nbsp;</DIV>
<DIV>Nothing, Inc.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>P.S. I can't forget to give J=F6rg K=F6nig credit for his nice =
little Bitmap=20
Based Dialog code . .=20
..</DIV></FONT></DIV></DIV></FONT></DIV></BLOCKQUOTE></BODY></HTML>

------=_NextPart_000_002C_01BF0512.BBF7E980--

andon m. coleman

Sep 22, 1999, 6:02pm
This is a multi-part message in MIME format.

------=_NextPart_000_003E_01BF0513.CF8FF9A0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hmmmmmm --- Converting that out of my DJ BOT and into a simple Sample =
BOT has presented a few bugs, maybe by tomorrow I'll have them all fixed =
.. . .

Regards, Andon13
[View Quote] Q. What's this "Lock-Up Look", and what's it caused by?
A. The "Lock-Up Look" is named that because, when you call the AW =
SDK Login Functions without any intervention, your Dialog Thread does =
not receive the WIN32 Message Pump until each one of functions you call =
has finished.
Subsequently, your Dialog Thread is not able to do a Redraw, =
causing undesired Dialog Painting effects.

Q. What is this Thread you speak of?
A. Think of a thread in terms of real life . . .=20
Imagine our program as a string of yarn.
Now, think back to kindergarten, what is yarn made of? --- Why, =
threads of course!
=20
This applies to WIN32 Programming also, however, WIN32 Programs =
are not usually made of hundreds of threads :) --- Usually there's 2 or =
3, and in the case of simple MFC App Wizard applications, there's 1.
=20
This single thread is assigned the job of many things, including =
: Repainting the windows, and any code executed from within it (Such as =
a while block) . . . While blocks will cause the thread to focus in ONLY =
on repeating the code contained inside the block, and not redraw the =
windows, or any of the other stuff it's SUPPOSED to do

Q. Alrighty, that was a kind of loaded answer . . . How does Andon13 =
solve the "Lock-Up Look" problem?
A. Haven't you learned anything so far? =3DP
The most simple solution to the whole problem is the one used . =
.. .
=20
In this work-around, we create a Background Worker thread . . . =
This thread has no Dialog Boxes or anything assigned to it, so it can =
focus solely on the AW SDK Initialization / Login --- Further, it has =
the ability to send data to the MAIN Thread, which is the basis for =
the nifty looking status indicator used in this solution.

=20
Q. Wow, sounds interesting . . . Is it hard to implement?
A. No, not at all --- The whole Sample Source code has been =
commented from head to toe (Well, the functions relating to the LOGIN =
anyway).






NOTE:
Here's a list of syntax / usage / purpose for the most commonly used =
functions in this sample code :

Function: Class: =
Usage: =
=
=
Return Type:
NewStatus(CString LOG, int nTYPE); CLogin Log is =
the message to be appended to the status text area of the Status Dialog, =
nTYPE is an integer value specifying the type of Status Message being =
sent VOID

=
nTYPE:
=
-1 =3D Append without increasing the Progress =
Indicator's Position
=
0 =3D Error --- This removes ANY progress currently =
shown in the Progress Indicator
=
1 =3D Append and Step the Progress indicator up 1 =
notch.

Function: =
=
=
Class: Usage:
Login (CString chPassword, int nCitnum, int nX, int nY, int nZ, int =
nYAW, int nAV, CString WorldName, CString chIP, int nPort, CString =
chBotName) CLogin Pretty straight forward . . . This function =
is to be called ONLY from within the Thread.

Return Type:
Boolean -- TRUE if the login completed without any errors, =
otherwise, it returns FALSE.

Function: Class: =
Usage:
ThreadFunc (LPVOID pParam) N/A (Global) This is =
called with the creation of the thread . . . There is no need to modify =
the Input / Output to this whatsoever, however, you may change the =
functions called from it (Login being the only important one)

Return Type:
UINT -- No need for intervention with this, just let =
WIN32 Process it.


Function: =
Class: Usage: =
=
=
Return Type:
OnThreadFinished (WPARAM wParam, LPARAM lParam) CLogin =
This is called by the Global Scope call to =
::PostMessage(There's some parameter's in here, but who cares? =3D)) =
LONG --- Leave this to WIN32

That's pretty much it --- If you have any questions, or find any =
BUGs, please E-Mail me : Andon M. Coleman at : Gizmo98 at earthlink.net

Andon M. Coleman

Senior Programmer
R&D

Nothing, Inc.


P.S. I can't forget to give J=F6rg K=F6nig credit for his nice =
little Bitmap Based Dialog code . . .

------=_NextPart_000_003E_01BF0513.CF8FF9A0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2614.3500" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Hmmmmmm --- Converting that out of my =
DJ BOT and=20
into a simple Sample BOT has presented a few bugs, maybe by tomorrow =
I'll have=20
them all fixed . . .</FONT></DIV>
<DIV><BR><FONT face=3DArial size=3D2>Regards, Andon13</FONT></DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: =
0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV>Andon M. Coleman &lt;<A=20
href=3D"mailto:gizmo98 at earthlink.net">gizmo98 at earthlink.net</A>&gt; =
wrote in=20
message <A =
href=3D"news:37e93262.0 at homer">news:37e93262.0 at homer</A>...</DIV>
<DIV><FONT face=3DArial size=3D2>Ooopsies, already I discovered a BUG =
.. . . The=20
Name specified is too long . . .</FONT></DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; =
MARGIN-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV>Andon M. Coleman &lt;<A=20
href=3D"mailto:gizmo98 at earthlink.net">gizmo98 at earthlink.net</A>&gt; =
wrote in=20
message <A =
href=3D"news:37e92b4d.0 at homer">news:37e92b4d.0 at homer</A>...</DIV>
<DIV><FONT face=3DArial size=3D2>
<DIV>
<DIV><FONT face=3DArial size=3D2>Q. What is this?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. A method devised by Andon13 to =
work around=20
the problems associated with calling the AW SDK Login=20
Functions.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Q. What's this "Lock-Up Look", and =
what's it=20
caused by?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. The "Lock-Up Look" is named that =
because,=20
when you call the AW SDK Login Functions without any intervention, =
your=20
Dialog Thread does not receive&nbsp;the WIN32 Message Pump until =
each one of=20
functions you call has finished.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; Subsequently, =
your Dialog=20
Thread is not able to do a Redraw, causing undesired Dialog Painting =

effects.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Q. What is this Thread you speak=20
of?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. </FONT><FONT face=3DArial =
size=3D2>Think of a=20
thread in terms of real life . . . </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; Imagine our =
program as a=20
string of yarn.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; Now, think back =
to=20
kindergarten, what is yarn made of? --- Why, threads of =
course!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; This applies to =
WIN32=20
Programming also, however, WIN32 Programs are not usually made of =
hundreds=20
of threads :) --- Usually there's 2 or 3, and in the case of simple =
MFC App=20
Wizard applications, there's 1.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; This single =
thread is=20
assigned the job of many things, including : Repainting the windows, =
and any=20
code executed from within it (Such as a while block) . . . While =
blocks will=20
cause the thread to focus in ONLY on repeating the code contained =
inside the=20
block, and not &nbsp;&nbsp;&nbsp; redraw the windows, or any of the =
other=20
stuff it's SUPPOSED to do</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Q. Alrighty, that was a kind of =
loaded answer .=20
. . How does Andon13 solve the "Lock-Up Look" problem?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. Haven't you learned anything so =
far?=20
=3DP</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; The most simple =
solution to=20
the whole problem is the one used . . .</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; In this =
work-around, we=20
create a Background Worker thread . . . This thread has no Dialog =
Boxes or=20
anything assigned to it, so it can focus solely on the AW SDK =
Initialization=20
/ Login --- Further, it has the ability to send data to the MAIN=20
Thread,&nbsp;which is the basis for &nbsp;&nbsp;&nbsp; =
the&nbsp;nifty=20
looking status indicator used in this solution.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Q. Wow, sounds interesting . . . Is =
it hard to=20
implement?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A. No, not at all --- The whole =
Sample Source=20
code has been commented from head to toe (Well, the functions =
relating to=20
the LOGIN anyway).</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>NOTE:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Here's a list of syntax / usage / =
purpose for=20
the most commonly used functions in this sample code :</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3DArial size=3D2><FONT =
face=3DArial=20
=
size=3D2>Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class:&nbs=
p;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;=20
Usage:&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; Return Type:</FONT></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>NewStatus(CString LOG, int=20
nTYPE);&nbsp;&nbsp;&nbsp;=20
=
CLogin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;=20
Log is the message to be appended to the status text area of the =
Status=20
Dialog, nTYPE is an integer value specifying the type of Status =
Message=20
being=20
=
sent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;VOID</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;=20
nTYPE:</FONT></DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;=20
-1 =3D Append without increasing the Progress Indicator's=20
Position</FONT></DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;0=20
=3D Error --- This removes ANY progress currently shown in the =
Progress=20
Indicator</FONT></DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;1=20
=3D Append and Step the Progress indicator up 1 notch.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3DArial size=3D2><FONT =
face=3DArial=20
size=3D2><FONT face=3DArial=20
=
size=3D2>Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;=20
Class:&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=20
Usage:</FONT></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Login (CString chPassword, int =
nCitnum, int nX,=20
int nY, int nZ, int nYAW, int nAV, CString WorldName, CString chIP, =
int=20
nPort, CString chBotName)&nbsp;&nbsp;&nbsp;&nbsp; =
CLogin&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; Pretty straight forward . . . This function is to =
be=20
called ONLY from within the Thread.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Return Type:</FONT></DIV>
<DIV><FONT face=3DArial =
size=3D2>Boolean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --=20
&nbsp;&nbsp;&nbsp; TRUE if the login completed without any errors,=20
otherwise, it returns FALSE.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>
<DIV><FONT face=3DArial size=3D2>Function:&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=20
=
Class:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
Usage:</FONT></DIV>ThreadFunc (LPVOID =
pParam)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
N/A=20
=
(Global)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;This=20
is called with the creation of the thread . . . There is no need to =
modify=20
the Input / Output to this whatsoever, however, you may change the =
functions=20
called from it (Login being the only important one)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Return Type:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>UINT&nbsp;&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp;&nbsp; -- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No need =
for=20
intervention with this, just let WIN32 Process it.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>
<DIV><FONT face=3DArial size=3D2>Function:&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp;=20
=
Class:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
=
Usage:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return=20
Type:</FONT></DIV>
<DIV>OnThreadFinished (WPARAM wParam, LPARAM=20
=
lParam)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLogin&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
This is called by the Global Scope call to ::PostMessage(There's =
some=20
parameter's in here, but who cares?=20
=
=3D))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;LONG=20
--- Leave this to WIN32</DIV>
<DIV>&nbsp;</DIV>
<DIV>That's pretty much it --- If you have any questions, or find =
any BUGs,=20
please E-Mail me : Andon M. Coleman at : <A=20
=
href=3D"mailto:Gizmo98 at earthlink.net">Gizmo98 at earthlink.net</A></DIV>
<DIV>&nbsp;</DIV>
<DIV>Andon M. Coleman</DIV>
<DIV><BR>Senior Programmer</DIV>
<DIV>R&amp;D</DIV>
<DIV>&nbsp;</DIV>
<DIV>Nothing, Inc.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>P.S. I can't forget to give J=F6rg K=F6nig credit for his nice =
little=20
Bitmap Based Dialog code . .=20
=
..</DIV></FONT></DIV></DIV></FONT></DIV></BLOCKQUOTE></BLOCKQUOTE></BODY><=
/HTML>

------=_NextPart_000_003E_01BF0513.CF8FF9A0--

1  |  
Awportals.com is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.
Awportals.com   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn