INETCALLBACK Function

#include "l_bitmap.h"
#include "ltnet.h"

L_INT pEXT_CALLBACK YourFunction (hComputer, nMessage, nError, pBuffer, lSize, pUserData)

L_COMP hComputer;

/* handle to a connected computer */

L_INT nMessage;

/* reason for the callback */

L_INT nError;

/* error code */

L_VOID * pBuffer

/* data buffer */

L_UINT32 lSize;

/* size of the data buffer */

L_VOID * pUserData;

/* pointer to additional parameters */

Handles the messages received by a connected computer.

Parameter

Description

hComputer

Handle to the computer connection that is receiving the message.

nMessage

Value indicating reason for the callback. Can be one of the following values:

 

Value

Meaning

 

INET_CONNECT

Connected to remote computer.

 

INET_DATA_READY

Data ready to be read.

 

INET_CLOSE

Connection has been terminated.

 

INET_COMMAND_RECEIVED

A command has been received.

 

INET_CONNECT_REQUEST

Remote computer is requesting a connection.

 

INET_DATA_SENT

Data has been completely sent to remote.

 

INET_DATA_SENDING

Queued data has been sent.

 

INET_DATA_START

About to start receiving data.

 

INET_DATA_RECEIVING

Receiving data from a remote connection.

 

INET_DETACH

Handle has been detached from windows socket.

 

INET_IMAGE_RECEIVED

An image has been received.

 

INET_MMEDIA_RECEIVED

A multimedia object has been received.

 

INET_RESPONSE_RECEIVED

A response has been received.

 

INET_SOUND_RECEIVED

Sound block has been received.

 

INET_USER1_RECEIVED

User data has been received.

 

INET_USER2_RECEIVED

User data has been received.

 

INET_USER3_RECEIVED

User data has been received.

 

INET_USER4_RECEIVED

User data has been received.

nError

If no error has occurred, nError will be SUCCESS. If nError is < SUCCESS, an error has occurred.

pBuffer

Pointer to a data buffer. The buffer can hold different data, depending on nMessage:

 

Message

Type of data in pBuffer

 

INET_IMAGE_RECEIVED

pBuffer points to a BITMAPHANDLE structure containing the bitmap.

 

INET_MMEDIA_RECEIVED

pBuffer points to a MEDIAHANDLE structure containing a multimedia object.

 

INET_USERx_RECEIVED

pBuffer points to data of a user-defined format.

 

INET_SOUND_RECEIVED

pBuffer points to a WAVEFORMATDATA structure, followed by a WAVEDATA structure.

 

other

Not used

lSize

The size of the data pointed to by pBuffer. The value depends on nMessage:

 

Message

Size of data in pBuffer

 

INET_DATA_READY

The size of the available data pointed to by pBuffer.

 

INET_USERx_RECEIVED

The size of the user-defined data pointed to by pBuffer.

 

INET_SOUND_RECEIVED

The size of the data pointed to by pBuffer.

pUserData

A void pointer that you can use to access a variable or structure containing data that your callback function needs. This gives you a way to receive data indirectly from the function that uses this callback function. (This is the same pointer that you pass in the pUserData parameter of the calling function.)

 

Keep in mind that this is a void pointer, which must be cast to the appropriate data type within your callback function.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

If nMessage is INET_IMAGE_RECEIVED, the bitmap pointed to by pBuffer will be freed upon returning from the callback. If you want to keep the bitmap, you can make a copy of the bitmap before returning.

If nMessage is INET_MMEDIA_RECEIVED, the multimedia object pointed to by pBuffer was opened in L_OPEN_READ mode.

If nError is < SUCCESS, pBuffer should be ignored.

The INET_DATA_READY message is sent before the INET_IMAGE_RECEIVED, INET_MMEDIA_RECEIVED or INET_USERx_RECEIVED messages so that you can determine the total amount of data that will be received.

If auto process was not enabled for hComputer, pBuffer will be NULL, and you should read the data by calling L_InetReadData.

Immediately after successfully connecting to a LEADTOOLS server started with L_InetServerInit, the INETCALLBACK function will be called. If auto process is enabled, the first message will be INET_USER1_RECEIVED and pBuffer will contain a NULL terminated string containing "LEAD Technologies Server X.X" where X.X is the server version number. If auto process is not enabled, the first message will be INET_DATA_READY, and the version string can be read using L_InetReadData.

If nMessage is INET_SOUND_RECEIVED, then pBuffer points to a WAVEFORMATDATA structure followed by a WAVEDATA structure.

Note:

The WAVEFORMATDATA structure is a variable length structure. For more information, refer to the example for L_InetSendSound.

The buffer pointed to by pBuffer will be freed upon returning from the callback.

Required DLLs and Libraries

LTNET

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application

See Also

Functions:

L_InetAutoProcess, L_InetReadData, L_InetSendData

Example

For an example, refer to L_InetConnect or L_InetSendSound.