768 lines
21 KiB
C++
768 lines
21 KiB
C++
/*
|
||
* mcsdllif.h
|
||
*
|
||
* Copyright (c) 1993 by DataBeam Corporation, Lexington, KY
|
||
*
|
||
* Abstract:
|
||
* This is the interface file for the MCAT MCS DLL Interface class.
|
||
*
|
||
* When this class is first instantiated, it initializes MCS. After
|
||
* that, the application using this object requests MCS services through
|
||
* this object. This object is also responsible for receiving and
|
||
* forwarding cllback messages. When this object is deleted it calls
|
||
* MCSCleanupAPI to shut down the MCATMCS DLL.
|
||
*
|
||
* MCS interface objects represent the Service Access Point (SAP)
|
||
* between GCC and MCS. Exactly how the interface works is an
|
||
* implementation matter for those classes that inherit from this one.
|
||
* This class defines the public member functions that GCC expects to be
|
||
* able to call upon to utilize MCS.
|
||
*
|
||
* The public member functions defined here can be broken into two
|
||
* categories: those that are part of T.122; and those that are not.
|
||
* The T.122 functions include connect provider request, connect
|
||
* provider response, disconnect provider request, create domain, delete
|
||
* domain, send data request, etc. All other member functions are
|
||
* considered a local matter from a standards point-of-view. These
|
||
* functions include support for initialization and setup, as well as
|
||
* functions allowing GCC to poll MCS for activity.
|
||
*
|
||
* Note that this class also handles the connect provider confirms by
|
||
* keeping a list of all the objects with outstanding connect provider
|
||
* request. These are held in the ConfirmObjectList.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*
|
||
* Author:
|
||
* Christos Tsollis
|
||
*
|
||
*/
|
||
#ifndef _MCS_DLL_INTERFACE_
|
||
#define _MCS_DLL_INTERFACE_
|
||
|
||
#include "mcsuser.h"
|
||
|
||
/*
|
||
** This dictionary keeps up with all the outstanding connect provider
|
||
** request. When a response is received, this interface class will obtain
|
||
** a pointer to the correct object from this list and will then pass on the
|
||
** response.
|
||
*/
|
||
class CConnHdlConfList2 : public CList2
|
||
{
|
||
DEFINE_CLIST2_(CConnHdlConfList2, CConf*, ConnectionHandle)
|
||
};
|
||
|
||
extern PController g_pMCSController;
|
||
|
||
/*
|
||
* CONNECT_PROVIDER_INDICATION
|
||
*
|
||
* Parameter1:
|
||
* PConnectProviderIndication
|
||
* This is a pointer to a structure that contains all necessary
|
||
* information about an incoming connection.
|
||
* Parameter2: Unused
|
||
*
|
||
* Functional Description:
|
||
* This indication is sent to the owner object when an incoming
|
||
* connection is detected. The owner object should respond by calling
|
||
* MCSConnectProviderResponse indicating whether or not the connection
|
||
* is to be accepted.
|
||
*/
|
||
|
||
/*
|
||
* CONNECT_PROVIDER_CONFIRM
|
||
*
|
||
* Parameter1:
|
||
* PConnectProviderConfirm
|
||
* This is a pointer to a structure that contains all necessary
|
||
* information about an outgoing connection.
|
||
* Parameter2: Unused
|
||
*
|
||
* Functional Description:
|
||
* This confirm is sent to the object that made the original connect
|
||
* provider request. It informs the requesting object of when the new
|
||
* connection is available for use, or that the connection could not be
|
||
* established (or that it was rejected by the remote site).
|
||
*/
|
||
|
||
/*
|
||
* DISCONNECT_PROVIDER_INDICATION
|
||
*
|
||
* Parameter1: Unused
|
||
* Parameter2:
|
||
* (LOWUSHORT) ConnectionHandle
|
||
* This is the handle for the connection that was lost.
|
||
* (HIGHUSHORT) Reason
|
||
* This is the reason for the disconnect.
|
||
*
|
||
* Functional Description:
|
||
* This indication is sent to the owner object whenever a connection
|
||
* is lost. This essentially tells the owner object that the contained
|
||
* connection handle is no longer valid.
|
||
*/
|
||
|
||
/*
|
||
* GCC_ATTACH_USER_CONFIRM
|
||
*
|
||
* Parameter1: Unused
|
||
* Parameter2:
|
||
* (LOWUSHORT) UserID
|
||
* If the result is success, then this is the newly assigned user ID.
|
||
* If the result is failure, then this field is undefined.
|
||
* (HIGHUSHORT) Result
|
||
* This is the result of the attach user request.
|
||
*
|
||
* Functional Description:
|
||
* This confirm is sent to the user object in response to a previous
|
||
* call to MCS_AttachRequest. It contains the result of that service
|
||
* request. If successful, it also contains the user ID that has been
|
||
* assigned to that attachment.
|
||
*/
|
||
|
||
/*
|
||
* GCC_DETACH_USER_INDICATION
|
||
*
|
||
* Parameter1: Unused
|
||
* Parameter2:
|
||
* (LOWUSHORT) UserID
|
||
* This is the user ID of the user that is detaching.
|
||
* (HIGHUSHORT) Reason
|
||
* This is the reason for the detachment.
|
||
*
|
||
* Functional Description:
|
||
* This indication is sent to the user object whenever a user detaches
|
||
* from the domain. This is sent to ALL remaining user objects in the
|
||
* domain automatically. Note that if the user ID contained in this
|
||
* indication is the same as that of the user object receiving it, the
|
||
* user is essentially being told that it has been kicked out of the
|
||
* conference. The user handle and user ID are no longer valid in this
|
||
* case. It is the responsibility of the user object to recognize when
|
||
* this occurs.
|
||
*/
|
||
|
||
/*
|
||
* GCC_CHANNEL_JOIN_CONFIRM
|
||
*
|
||
* Parameter1: Unused
|
||
* Parameter2:
|
||
* (LOWUSHORT) ChannelID
|
||
* This is the channel that has been joined.
|
||
* (HIGHUSHORT) Result
|
||
* This is the result of the join request.
|
||
*
|
||
* Functional Description:
|
||
* This confirm is sent to a user object in response to a previous
|
||
* call to ChannelJoinRequest. It lets the user object know if the
|
||
* join was successful for a particular channel. Furthermore, if the
|
||
* join request was for channel 0 (zero), then the ID of the assigned
|
||
* channel is contained in this confirm.
|
||
*/
|
||
|
||
/*
|
||
* CHANNEL_LEAVE_INDICATION
|
||
*
|
||
* Parameter1: Unused
|
||
* Parameter2:
|
||
* (LOWUSHORT) ChannelID
|
||
* This is the channel that has been left or is being told to leave.
|
||
* (HIGHUSHORT) Reason
|
||
* This is the reason for the leave.
|
||
*
|
||
* Functional Description:
|
||
* This indication is sent to a user object when a domain merger has
|
||
* caused a channel to be purged from the lower domain. This informs the
|
||
* the user that it is no longer joined to the channel.
|
||
*/
|
||
|
||
/*
|
||
* GCC_SEND_DATA_INDICATION
|
||
*
|
||
* Parameter1:
|
||
* PSendData
|
||
* This is a pointer to a SendData structure that contains all
|
||
* information about the data received.
|
||
* Parameter2: Unused
|
||
*
|
||
* Functional Description:
|
||
* This indication is sent to a user object when data is received
|
||
* by the local MCS provider on a channel to which the user is joined.
|
||
*/
|
||
|
||
/*
|
||
* GCC_UNIFORM_SEND_DATA_INDICATION
|
||
*
|
||
* Parameter1:
|
||
* PSendData
|
||
* This is a pointer to a SendData structure that contains all
|
||
* information about the data received.
|
||
* Parameter2: Unused
|
||
*
|
||
* Functional Description:
|
||
* This indication is sent to a user object when data is received
|
||
* by the local MCS provider on a channel to which the user is joined.
|
||
*/
|
||
/*
|
||
* TRANSPORT_STATUS_INDICATION
|
||
*
|
||
* Parameter1:
|
||
* PTransportStatus
|
||
* This is a pointer to a TransportStatus structure that contains
|
||
* information about this indication. This structure is defined in
|
||
* "transprt.h".
|
||
*
|
||
* Functional Description:
|
||
* A transport stack will issue this indication when it detects a status
|
||
* change of some sort. It fills in the TransportStatus structure to
|
||
* describe the state change and the sends it to MCS. MCS fills in the
|
||
* field containing the name of the stack (using the transport identifier),
|
||
* and forwards it to GCC.
|
||
*/
|
||
|
||
class CConf;
|
||
class MCSUser;
|
||
|
||
class CMCSUserList : public CList
|
||
{
|
||
DEFINE_CLIST(CMCSUserList, MCSUser*)
|
||
};
|
||
|
||
class MCSDLLInterface
|
||
{
|
||
public:
|
||
|
||
MCSDLLInterface(PMCSError);
|
||
~MCSDLLInterface ();
|
||
|
||
MCSError CreateDomain(GCCConfID *domain_selector)
|
||
{
|
||
ASSERT (g_pMCSController != NULL);
|
||
return g_pMCSController->HandleAppletCreateDomain(domain_selector);
|
||
};
|
||
|
||
MCSError DeleteDomain(GCCConfID *domain_selector)
|
||
{
|
||
ASSERT (g_pMCSController != NULL);
|
||
return g_pMCSController->HandleAppletDeleteDomain(domain_selector);
|
||
}
|
||
|
||
|
||
MCSError ConnectProviderRequest (
|
||
GCCConfID *calling_domain,
|
||
GCCConfID *called_domain,
|
||
TransportAddress calling_address,
|
||
TransportAddress called_address,
|
||
BOOL fSecure,
|
||
DBBoolean upward_connection,
|
||
PUChar user_data,
|
||
ULong user_data_length,
|
||
PConnectionHandle connection_handle,
|
||
PDomainParameters domain_parameters,
|
||
CConf *confirm_object);
|
||
|
||
|
||
MCSError ConnectProviderResponse (
|
||
ConnectionHandle connection_handle,
|
||
GCCConfID *domain_selector,
|
||
PDomainParameters domain_parameters,
|
||
Result result,
|
||
PUChar user_data,
|
||
ULong user_data_length);
|
||
|
||
MCSError DisconnectProviderRequest (
|
||
ConnectionHandle connection_handle);
|
||
|
||
MCSError AttachUserRequest (
|
||
GCCConfID *domain_selector,
|
||
PIMCSSap *ppMCSSap,
|
||
MCSUser *user_object);
|
||
|
||
MCSError DetachUserRequest (
|
||
PIMCSSap pMCSSap,
|
||
MCSUser *pMCSUser);
|
||
|
||
MCSError ChannelJoinRequest (
|
||
ChannelID channel_id,
|
||
PIMCSSap pMCSSap)
|
||
{
|
||
return pMCSSap->ChannelJoin (channel_id);
|
||
};
|
||
|
||
MCSError ChannelLeaveRequest (
|
||
ChannelID channel_id,
|
||
PIMCSSap pMCSSap)
|
||
{
|
||
return pMCSSap->ChannelLeave (channel_id);
|
||
};
|
||
|
||
MCSError SendDataRequest (
|
||
ChannelID channel_id,
|
||
PIMCSSap pMCSSap,
|
||
Priority priority,
|
||
PUChar user_data,
|
||
ULong user_data_length)
|
||
{
|
||
return pMCSSap->SendData (NORMAL_SEND_DATA,
|
||
channel_id,
|
||
priority,
|
||
user_data,
|
||
user_data_length,
|
||
APP_ALLOCATION);
|
||
};
|
||
|
||
MCSError UniformSendDataRequest (
|
||
ChannelID channel_id,
|
||
PIMCSSap pMCSSap,
|
||
Priority priority,
|
||
PUChar user_data,
|
||
ULong user_data_length)
|
||
{
|
||
return pMCSSap->SendData (UNIFORM_SEND_DATA,
|
||
channel_id,
|
||
priority,
|
||
user_data,
|
||
user_data_length,
|
||
APP_ALLOCATION);
|
||
};
|
||
|
||
MCSError TokenGrabRequest (
|
||
PIMCSSap pMCSSap,
|
||
TokenID token_id)
|
||
{
|
||
return pMCSSap->TokenGrab (token_id);
|
||
};
|
||
|
||
MCSError TokenGiveRequest (
|
||
PIMCSSap pMCSSap,
|
||
TokenID token_id,
|
||
UserID receiver_id)
|
||
{
|
||
return pMCSSap->TokenGive (token_id,
|
||
receiver_id);
|
||
};
|
||
|
||
MCSError TokenGiveResponse (
|
||
PIMCSSap pMCSSap,
|
||
TokenID token_id,
|
||
Result result)
|
||
{
|
||
return pMCSSap->TokenGiveResponse (token_id,
|
||
result);
|
||
};
|
||
|
||
MCSError TokenPleaseRequest (
|
||
PIMCSSap pMCSSap,
|
||
TokenID token_id)
|
||
{
|
||
return pMCSSap->TokenPlease (token_id);
|
||
};
|
||
|
||
MCSError TokenReleaseRequest (
|
||
PIMCSSap pMCSSap,
|
||
TokenID token_id)
|
||
{
|
||
return pMCSSap->TokenRelease (token_id);
|
||
};
|
||
|
||
MCSError TokenTestRequest (
|
||
PIMCSSap pMCSSap,
|
||
TokenID token_id)
|
||
{
|
||
return pMCSSap->TokenTest (token_id);
|
||
};
|
||
|
||
#ifdef NM_RESET_DEVICE
|
||
MCSError ResetDevice (
|
||
PChar device_identifier)
|
||
{
|
||
return MCSResetDevice (device_identifier);
|
||
};
|
||
#endif // NM_RESET_DEVICE
|
||
|
||
GCCError TranslateMCSIFErrorToGCCError (MCSError mcs_error)
|
||
{
|
||
return ((mcs_error <= MCS_SECURITY_FAILED) ?
|
||
(GCCError) mcs_error : GCC_UNSUPPORTED_ERROR);
|
||
};
|
||
|
||
void ProcessCallback (
|
||
unsigned int message,
|
||
LPARAM parameter,
|
||
PVoid object_ptr);
|
||
private:
|
||
MCSError AddObjectToConfirmList (
|
||
CConf *confirm_object,
|
||
ConnectionHandle connection_handle);
|
||
|
||
DBBoolean IsUserAttachmentVaid (
|
||
MCSUser *user_object)
|
||
{
|
||
return (m_MCSUserList.Find(user_object));
|
||
};
|
||
CConnHdlConfList2 m_ConfirmConnHdlConfList2;
|
||
CMCSUserList m_MCSUserList;
|
||
};
|
||
typedef MCSDLLInterface * PMCSDLLInterface;
|
||
|
||
|
||
GCCResult TranslateMCSResultToGCCResult ( Result mcs_result );
|
||
|
||
/*
|
||
* MCSDLLInterface ( HANDLE instance_handle,
|
||
* PMCSError error_value)
|
||
*
|
||
* Functional Description:
|
||
* This is the constructor for the MCS Interface class. It is responsible
|
||
* for initializing the MCAT MCS DLL. Any errors that occur during
|
||
* initialization are returned in the error_value provided.
|
||
*
|
||
* Formal Parameters:
|
||
* instance_handle (i)
|
||
* The windows instance handle is used when creating MCS diagnostics.
|
||
* error_value (i)
|
||
* This pointer is used to pass back any errors that may have occured
|
||
* while initializing the class. This includes any problems with
|
||
* initializing the MCAT MCS DLL.
|
||
*
|
||
* Return Value:
|
||
* None.
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
|
||
/*
|
||
* ~MCSDLLInterface ()
|
||
*
|
||
* Functional Description:
|
||
* This is the destructor for the MCS Interface class. It is responsible
|
||
* for cleaning up both itself and the MCAT MCS DLL.
|
||
*
|
||
* Formal Parameters:
|
||
* None.
|
||
*
|
||
* Return Value:
|
||
* None.
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
|
||
/*
|
||
* MCSError CreateDomain (
|
||
* DomainSelector domain_selector_string,
|
||
* UINT domain_selector_length)
|
||
*
|
||
* Functional Description:
|
||
* This function is used to create an MCS domain.
|
||
*
|
||
* Formal Parameters:
|
||
* domain_selector_string (i)
|
||
* This is the name of the domain to be created.
|
||
* domain_selector_length (i)
|
||
* This is the length of the domain name in characters.
|
||
*
|
||
* Return Value:
|
||
* MCS_NO_ERROR
|
||
* On success
|
||
* MCS_NOT_INITIALIZED
|
||
* The mcs interface did not initialize properly
|
||
* MCS_DOMAIN_ALREADY_EXISTS
|
||
* A domain by this name alread exist
|
||
* MCS_ALLOCATION_FAILURE
|
||
* A memory failure occured
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
|
||
/*
|
||
* MCSError DeleteDomain (
|
||
* DomainSelector domain_selector_string,
|
||
* UINT domain_selector_length)
|
||
*
|
||
* Functional Description:
|
||
* This function an MCS domain which was created using the CreateDomain
|
||
* call.
|
||
*
|
||
* Formal Parameters:
|
||
* domain_selector_string (i)
|
||
* This is the name of the domain to be deleted.
|
||
* domain_selector_length (i)
|
||
* This is the length of the domain name in characters.
|
||
*
|
||
* Return Value:
|
||
* MCS_NO_ERROR
|
||
* On success
|
||
* MCS_NOT_INITIALIZED
|
||
* The mcs interface did not initialize properly
|
||
* MCS_NO_SUCH_DOMAIN
|
||
* The domain to be deleted does not exist
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
|
||
/*
|
||
* MCSError ConnectProviderRequest (
|
||
* DomainSelector calling_domain,
|
||
* UINT calling_domain_length,
|
||
* DomainSelector called_domain,
|
||
* UINT called_domain_length,
|
||
* TransportAddress calling_address,
|
||
* TransportAddress called_address,
|
||
* DBBoolean upward_connection,
|
||
* PUChar user_data,
|
||
* ULong user_data_length,
|
||
* PConnectionHandle connection_handle,
|
||
* PDomainParameters domain_parameters,
|
||
* CConf *confirm_object)
|
||
*
|
||
* Functional Description:
|
||
* This T.122 primitive is used to connect two domains. This request
|
||
* should always be followed by a connect provider confirm. The
|
||
* confirm will be sent to be object specified by the confirm object
|
||
* the is passed into this routine.
|
||
*
|
||
* Formal Parameters:
|
||
* calling_domain (i)
|
||
* This is a pointer to the calling domain selector string.
|
||
* calling_domain_length (i)
|
||
* This is the length of the calling domain selector string.
|
||
* called_domain (i)
|
||
* This is a pointer to the called domain selector string.
|
||
* called_domain_length (i)
|
||
* This is the length of the called domain selector length.
|
||
* calling_address (i)
|
||
* This is a pointer to the calling addres (an ASCII string).
|
||
* called_address (i)
|
||
* This is a pointer to the address being called (an ASCII string).
|
||
* upward_connection (i)
|
||
* This boolean flag denotes the hierarchical direction of the
|
||
* connection to be created (TRUE means upward, FALSE means downward).
|
||
* user_data (i)
|
||
* This is a pointer to the user data to be transmitted during the
|
||
* creation of this new connection.
|
||
* user_data_length (i)
|
||
* This is the length of the user data field mentioned above.
|
||
* connection_handle (o)
|
||
* This is set by MCS to a unique handle that can be used to access
|
||
* this connection on subsequent calls.
|
||
* domain_parameters (i)
|
||
* This is a pointer to a structure containing the domain parameters
|
||
* that the node controller wishes to use for this new connection.
|
||
* confirm_object (i)
|
||
* This is a pointer to the object that the connect provider response
|
||
* is sent to.
|
||
* object_message_base (i)
|
||
* This message base is added to the connect provider response
|
||
* message.
|
||
*
|
||
* Return Value:
|
||
* MCS_NO_ERROR
|
||
* On success
|
||
* MCS_NOT_INITIALIZED
|
||
* The mcs interface did not initialize properly
|
||
* MCS_NO_SUCH_DOMAIN
|
||
* The domain to connect does not exist
|
||
* MCS_DOMAIN_NOT_HIERARCHICAL
|
||
* An upward connection from this domain already exist
|
||
* MCS_NVALID_ADDRESS_PREFIX
|
||
* The transport prefix is not recognized
|
||
* MCS_ALLOCATION_FAILURE
|
||
* A memory failure occured
|
||
* MCS_INVALID_PARAMETER
|
||
* One of the parameters to the request is invalid
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
|
||
/*
|
||
* MCSError ConnectProviderResponse (
|
||
* ConnectionHandle connection_handle,
|
||
* DomainSelector domain_selector,
|
||
* UINT domain_selector_length,
|
||
* PDomainParameters domain_parameters,
|
||
* Result result,
|
||
* PUChar user_data,
|
||
* ULong user_data_length)
|
||
*
|
||
* Functional Description:
|
||
* This function is used to respond to a connect provider indication.
|
||
* This call will result in a connect provider confirm at the remote
|
||
* node.
|
||
*
|
||
* Formal Parameters:
|
||
* connection_handle (i)
|
||
* This is the handle of the connection that the response is for.
|
||
* domain_selector (i)
|
||
* This is a pointer to the domain selector identifying which domain
|
||
* the inbound connection is to be bound to.
|
||
* domain_selector_length (i)
|
||
* This is the length of the above domain selector.
|
||
* domain_parameters (i)
|
||
* This is a pointer to a structure containing the domain parameters
|
||
* that the node controller has agreed to use for the connection
|
||
* being created.
|
||
* result (i)
|
||
* This is the result. This determines whether an inbound connection
|
||
* is accepted or rejected. Anything but RESULT_SUCCESSFUL rejects
|
||
* the connection.
|
||
* user_data (i)
|
||
* This is the address of user data to be sent in the connect response
|
||
* PDU.
|
||
* user_data_length (i)
|
||
* This is the length of the user data mentioned above.
|
||
*
|
||
* Return Value:
|
||
* MCS_NO_ERROR
|
||
* On success
|
||
* MCS_NOT_INITIALIZED
|
||
* The mcs interface did not initialize properly
|
||
* MCS_NO_SUCH_CONNECTION
|
||
* The connection specified is invalid
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
|
||
/*
|
||
* MCSError DisconnectProviderRequest (
|
||
* ConnectionHandle connection_handle)
|
||
*
|
||
* Functional Description:
|
||
* This function is used to disconnect a node from a particular connection.
|
||
* This can be either an upward or downward connection
|
||
*
|
||
* Formal Parameters:
|
||
* connection_handle (i)
|
||
* This is the handle of the connection which the node controller wants
|
||
* to disconnect.
|
||
*
|
||
* Return Value:
|
||
* MCS_NO_ERROR
|
||
* On success
|
||
* MCS_NOT_INITIALIZED
|
||
* The mcs interface did not initialize properly
|
||
* MCS_NO_SUCH_CONNECTION
|
||
* The connection specified is invalid
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
|
||
/*
|
||
* MCSError AttachUserRequest (
|
||
* DomainSelector domain_selector,
|
||
* UINT domain_selector_length,
|
||
* PIMCSSap *ppMCSSap,
|
||
* PMCSUser user_object)
|
||
*
|
||
* Functional Description:
|
||
* This function is used to create a user attachment to MCS. It will result
|
||
* in an attach user confirm.
|
||
*
|
||
* Formal Parameters:
|
||
* domain_selector (i)
|
||
* This is the name of the domain to which the user wishes to attach.
|
||
* domain_selector_length (i)
|
||
* This is the length of the above domain selector.
|
||
* ppMCSSap (o)
|
||
* This is a pointer to a variable where the new user handle will be
|
||
* stored upon successful completion of this call.
|
||
* user_object (i)
|
||
* This is a pointer to the MCSUser object which should receive the callbacks
|
||
* for this user attachment.
|
||
*
|
||
* Return Value:
|
||
* MCS_NO_ERROR
|
||
* On success
|
||
* MCS_NO_SUCH_DOMAIN
|
||
* The domain to be attached to does not exist
|
||
* MCS_ALLOCATION_FAILURE
|
||
* A memory failure occured
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
|
||
/*
|
||
* void ProcessCallback ( UINT message,
|
||
* ULong parameter,
|
||
* PVoid object_ptr)
|
||
*
|
||
* Functional Description:
|
||
* This routine is called whenever a callback message is received by
|
||
* the "C" callback routine. It is responsible for both processing
|
||
* callback messages and forwarding callback messages on to the
|
||
* appropriate object.
|
||
*
|
||
* Formal Parameters:
|
||
* message (i)
|
||
* This is the mcs message to be processed
|
||
* parameter (i)
|
||
* Varies according to the message. See the MCAT programmers manual
|
||
* object_ptr (i)
|
||
* This is the user defined field that was passed to MCS on
|
||
* initialization.
|
||
*
|
||
* Return Value:
|
||
* MCS_NO_ERROR
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
/*
|
||
* MCSDLLInterface::TranslateMCSIFErrorToGCCError ()
|
||
* MCSError mcs_error)
|
||
*
|
||
* Public
|
||
*
|
||
* Function Description
|
||
* This routine translate an MCS Interface error into a GCC Error.
|
||
*
|
||
* Formal Parameters:
|
||
* mcs_error (i)
|
||
* This is the error to be translated.
|
||
*
|
||
* Return Value:
|
||
* This is the translated GCC error.
|
||
*
|
||
* Side Effects:
|
||
* None.
|
||
*
|
||
* Caveats:
|
||
* None.
|
||
*/
|
||
#endif
|
||
|