
/*
 * This file was generated by the SOM Compiler.
 * FileName: \odwin\h\MSSGINTB.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

/*
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODBaseMessageInterface_h
#define SOM_ODBaseMessageInterface_h


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))



/*
 * Define class data structures as resolution macros
 */
#define ODBaseMessageInterfaceClassData (*resolve_ODBaseMessageInterfaceClassData())
#define ODBaseMessageInterfaceCClassData (*resolve_ODBaseMessageInterfaceCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODBaseMessageInterface
#define ODBaseMessageInterface SOMObject
#endif
#include <ODObject.h>

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef ODObject
    #define ODObject SOMObject
#endif /* ODObject */
#ifndef ODExtension
    #define ODExtension SOMObject
#endif /* ODExtension */
#ifndef ODBaseMessageInterface
    #define ODBaseMessageInterface SOMObject
#endif /* ODBaseMessageInterface */
#ifndef ODPart
    #define ODPart SOMObject
#endif /* ODPart */
#ifndef ODShape
    #define ODShape SOMObject
#endif /* ODShape */
#ifndef ODSession
    #define ODSession SOMObject
#endif /* ODSession */
#ifndef ODNameResolver
    #define ODNameResolver SOMObject
#endif /* ODNameResolver */
#ifndef ODOSAObject
    #define ODOSAObject SOMObject
#endif /* ODOSAObject */
#ifndef ODDesc
    #define ODDesc SOMObject
#endif /* ODDesc */
#ifndef ODOSLToken
    #define ODOSLToken SOMObject
#endif /* ODOSLToken */
#ifndef ODAppleEvent
    #define ODAppleEvent SOMObject
#endif /* ODAppleEvent */
#ifndef ODAddressDesc
    #define ODAddressDesc SOMObject
#endif /* ODAddressDesc */
#ifndef ODObjectSpec
    #define ODObjectSpec SOMObject
#endif /* ODObjectSpec */

/*
 * End of user-defined types.
 */

#define ODBaseMessageInterface_MajorVersion 0
#define ODBaseMessageInterface_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODBaseMessageInterfaceNewClass c
#define ODBaseMessageInterfaceClassData d
#define ODBaseMessageInterfaceCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODBaseMessageInterface_classObj ODBaseMessageInterfaceClassData.classObject
#define _ODBaseMessageInterface ODBaseMessageInterface_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK ODBaseMessageInterfaceNewClass(integer4 somntmajorVersion,
		integer4 somntminorVersion);

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODBaseMessageInterfaceClassDataStructure {
	SOMClass *classObject;
	somMToken InitBaseMessageInterface;
	somMToken CreateEvent;
	somMToken CreatePartAddrDesc;
	somMToken CreatePartObjSpec;
	somMToken Send;
	somMToken ProcessSemanticEvent;
}  _ODBaseMessageInterfaceClassData;
SOMEXTERN struct ODBaseMessageInterfaceClassDataStructure * SOMLINK resolve_ODBaseMessageInterfaceClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODBaseMessageInterfaceCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODBaseMessageInterfaceCClassData;
SOMEXTERN struct ODBaseMessageInterfaceCClassDataStructure * SOMLINK resolve_ODBaseMessageInterfaceCClassData(void);

/*
 * New and Renew macros for ODBaseMessageInterface
 */
#define ODBaseMessageInterfaceNew() \
   (_somNew(_ODBaseMessageInterface ? _ODBaseMessageInterface : ODBaseMessageInterfaceNewClass(ODBaseMessageInterface_MajorVersion, ODBaseMessageInterface_MinorVersion)))
#define ODBaseMessageInterfaceRenew(buf) \
   (_somRenew(_ODBaseMessageInterface ? _ODBaseMessageInterface : ODBaseMessageInterfaceNewClass(ODBaseMessageInterface_MajorVersion, ODBaseMessageInterface_MinorVersion), buf))

/*
 * Override method: somInit
 */
#define ODBaseMessageInterface_somInit(somSelf) \
	SOMObject_somInit(somSelf)

/*
 * Override method: somUninit
 */
#define ODBaseMessageInterface_somUninit(somSelf) \
	SOMObject_somUninit(somSelf)

/*
 * Override method: Purge
 */
#define ODBaseMessageInterface_Purge(somSelf,ev,size) \
	ODObject_Purge(somSelf,ev,size)

/*
 * New Method: InitBaseMessageInterface
 */
typedef void   (SOMLINK * somTD_ODBaseMessageInterface_InitBaseMessageInterface)(ODBaseMessageInterface *somSelf, Environment *ev,
		ODSession* session);
#define somMD_ODBaseMessageInterface_InitBaseMessageInterface "::ODBaseMessageInterface::InitBaseMessageInterface"
#define ODBaseMessageInterface_InitBaseMessageInterface(somSelf,ev,session) \
    (SOM_Resolve(somSelf, ODBaseMessageInterface, InitBaseMessageInterface) \
	(somSelf,ev,session))
#ifndef SOMGD_InitBaseMessageInterface
    #if (defined(_InitBaseMessageInterface) || defined(__InitBaseMessageInterface))
        #undef _InitBaseMessageInterface
        #undef __InitBaseMessageInterface
        #define SOMGD_InitBaseMessageInterface 1
    #else
        #define _InitBaseMessageInterface ODBaseMessageInterface_InitBaseMessageInterface
    #endif /* _InitBaseMessageInterface */
#endif /* SOMGD_InitBaseMessageInterface */

/*
 * New Method: CreatePartAddrDesc
 */
typedef void   (SOMLINK * somTD_ODBaseMessageInterface_CreatePartAddrDesc)(ODBaseMessageInterface *somSelf, Environment *ev,
		ODAddressDesc** theAddressDesc,
		ODPart* part);
#define somMD_ODBaseMessageInterface_CreatePartAddrDesc "::ODBaseMessageInterface::CreatePartAddrDesc"
#define ODBaseMessageInterface_CreatePartAddrDesc(somSelf,ev,theAddressDesc,part) \
    (SOM_Resolve(somSelf, ODBaseMessageInterface, CreatePartAddrDesc) \
	(somSelf,ev,theAddressDesc,part))
#ifndef SOMGD_CreatePartAddrDesc
    #if (defined(_CreatePartAddrDesc) || defined(__CreatePartAddrDesc))
        #undef _CreatePartAddrDesc
        #undef __CreatePartAddrDesc
        #define SOMGD_CreatePartAddrDesc 1
    #else
        #define _CreatePartAddrDesc ODBaseMessageInterface_CreatePartAddrDesc
    #endif /* _CreatePartAddrDesc */
#endif /* SOMGD_CreatePartAddrDesc */

/*
 * New Method: CreatePartObjSpec
 */
typedef void   (SOMLINK * somTD_ODBaseMessageInterface_CreatePartObjSpec)(ODBaseMessageInterface *somSelf, Environment *ev,
		ODObjectSpec** theObjSpec,
		ODPart* thePart);
#define somMD_ODBaseMessageInterface_CreatePartObjSpec "::ODBaseMessageInterface::CreatePartObjSpec"
#define ODBaseMessageInterface_CreatePartObjSpec(somSelf,ev,theObjSpec,thePart) \
    (SOM_Resolve(somSelf, ODBaseMessageInterface, CreatePartObjSpec) \
	(somSelf,ev,theObjSpec,thePart))
#ifndef SOMGD_CreatePartObjSpec
    #if (defined(_CreatePartObjSpec) || defined(__CreatePartObjSpec))
        #undef _CreatePartObjSpec
        #undef __CreatePartObjSpec
        #define SOMGD_CreatePartObjSpec 1
    #else
        #define _CreatePartObjSpec ODBaseMessageInterface_CreatePartObjSpec
    #endif /* _CreatePartObjSpec */
#endif /* SOMGD_CreatePartObjSpec */

/*
 * New Method: CreateEvent
 */
typedef ODSShort   (SOMLINK * somTD_ODBaseMessageInterface_CreateEvent)(ODBaseMessageInterface *somSelf, Environment *ev,
		ODEventClass theAEEventClass,
		ODEventID theAEEventID,
		ODAddressDesc* target,
		ODSLong transactionID,
		ODAppleEvent** theResult);
#define somMD_ODBaseMessageInterface_CreateEvent "::ODBaseMessageInterface::CreateEvent"
#define ODBaseMessageInterface_CreateEvent(somSelf,ev,theAEEventClass,theAEEventID,target,transactionID,theResult) \
    (SOM_Resolve(somSelf, ODBaseMessageInterface, CreateEvent) \
	(somSelf,ev,theAEEventClass,theAEEventID,target,transactionID,theResult))
#ifndef SOMGD_CreateEvent
    #if (defined(_CreateEvent) || defined(__CreateEvent))
        #undef _CreateEvent
        #undef __CreateEvent
        #define SOMGD_CreateEvent 1
    #else
        #define _CreateEvent ODBaseMessageInterface_CreateEvent
    #endif /* _CreateEvent */
#endif /* SOMGD_CreateEvent */

/*
 * New Method: Send
 */
typedef void   (SOMLINK * somTD_ODBaseMessageInterface_Send)(ODBaseMessageInterface *somSelf, Environment *ev,
		ODPart* part,
		ODAppleEvent* theAppleEvent,
		ODAppleEvent* reply,
		ODSendMode sendMode,
		ODSendPriority sendPriority,
		ODULong timeOutInTicks);
#define somMD_ODBaseMessageInterface_Send "::ODBaseMessageInterface::Send"
#define ODBaseMessageInterface_Send(somSelf,ev,part,theAppleEvent,reply,sendMode,sendPriority,timeOutInTicks) \
    (SOM_Resolve(somSelf, ODBaseMessageInterface, Send) \
	(somSelf,ev,part,theAppleEvent,reply,sendMode,sendPriority,timeOutInTicks))
#ifndef SOMGD_Send
    #if (defined(_Send) || defined(__Send))
        #undef _Send
        #undef __Send
        #define SOMGD_Send 1
    #else
        #define _Send ODBaseMessageInterface_Send
    #endif /* _Send */
#endif /* SOMGD_Send */

/*
 * New Method: ProcessSemanticEvent
 */
typedef ODBoolean   (SOMLINK * somTD_ODBaseMessageInterface_ProcessSemanticEvent)(ODBaseMessageInterface *somSelf, Environment *ev,
		ODParamData* theEvent);
#define somMD_ODBaseMessageInterface_ProcessSemanticEvent "::ODBaseMessageInterface::ProcessSemanticEvent"
#define ODBaseMessageInterface_ProcessSemanticEvent(somSelf,ev,theEvent) \
    (SOM_Resolve(somSelf, ODBaseMessageInterface, ProcessSemanticEvent) \
	(somSelf,ev,theEvent))
#ifndef SOMGD_ProcessSemanticEvent
    #if (defined(_ProcessSemanticEvent) || defined(__ProcessSemanticEvent))
        #undef _ProcessSemanticEvent
        #undef __ProcessSemanticEvent
        #define SOMGD_ProcessSemanticEvent 1
    #else
        #define _ProcessSemanticEvent ODBaseMessageInterface_ProcessSemanticEvent
    #endif /* _ProcessSemanticEvent */
#endif /* SOMGD_ProcessSemanticEvent */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODBaseMessageInterface_InitObject ODObject_InitObject
#define ODBaseMessageInterface_IsInitialized ODObject_IsInitialized
#define ODBaseMessageInterface_HasExtension ODObject_HasExtension
#define ODBaseMessageInterface_GetExtension ODObject_GetExtension
#define ODBaseMessageInterface_ReleaseExtension ODObject_ReleaseExtension
#define ODBaseMessageInterface_IsEqualTo ODObject_IsEqualTo
#define ODBaseMessageInterface_SubClassResponsibility ODObject_SubClassResponsibility
#define ODBaseMessageInterface_somDefaultInit SOMObject_somDefaultInit
#define ODBaseMessageInterface_somDestruct SOMObject_somDestruct
#define ODBaseMessageInterface_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODBaseMessageInterface_somDefaultAssign SOMObject_somDefaultAssign
#define ODBaseMessageInterface_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODBaseMessageInterface_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODBaseMessageInterface_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODBaseMessageInterface_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODBaseMessageInterface_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODBaseMessageInterface_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODBaseMessageInterface_somFree SOMObject_somFree
#define ODBaseMessageInterface_somGetClass SOMObject_somGetClass
#define ODBaseMessageInterface_somGetClassName SOMObject_somGetClassName
#define ODBaseMessageInterface_somGetSize SOMObject_somGetSize
#define ODBaseMessageInterface_somIsA SOMObject_somIsA
#define ODBaseMessageInterface_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODBaseMessageInterface_somRespondsTo SOMObject_somRespondsTo
#define ODBaseMessageInterface_somDispatch SOMObject_somDispatch
#define ODBaseMessageInterface_somClassDispatch SOMObject_somClassDispatch
#define ODBaseMessageInterface_somCastObj SOMObject_somCastObj
#define ODBaseMessageInterface_somResetObj SOMObject_somResetObj
#define ODBaseMessageInterface_somDispatchV SOMObject_somDispatchV
#define ODBaseMessageInterface_somDispatchL SOMObject_somDispatchL
#define ODBaseMessageInterface_somDispatchA SOMObject_somDispatchA
#define ODBaseMessageInterface_somDispatchD SOMObject_somDispatchD
#define ODBaseMessageInterface_somPrintSelf SOMObject_somPrintSelf
#define ODBaseMessageInterface_somDumpSelf SOMObject_somDumpSelf
#define ODBaseMessageInterface_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODBaseMessageInterface_h */
