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

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


#ifndef SOM_ODBaseDragAndDrop_h
#define SOM_ODBaseDragAndDrop_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 ODBaseDragAndDropClassData (*resolve_ODBaseDragAndDropClassData())
#define ODBaseDragAndDropCClassData (*resolve_ODBaseDragAndDropCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODBaseDragAndDrop
#define ODBaseDragAndDrop 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 ODBaseDragAndDrop
    #define ODBaseDragAndDrop SOMObject
#endif /* ODBaseDragAndDrop */
#ifndef ODSession
    #define ODSession SOMObject
#endif /* ODSession */
#ifndef ODPart
    #define ODPart SOMObject
#endif /* ODPart */
#ifndef ODStorageUnit
    #define ODStorageUnit SOMObject
#endif /* ODStorageUnit */
#ifndef ODFrame
    #define ODFrame SOMObject
#endif /* ODFrame */

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

#define ODBaseDragAndDrop_MajorVersion 1
#define ODBaseDragAndDrop_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODBaseDragAndDropNewClass c
#define ODBaseDragAndDropClassData d
#define ODBaseDragAndDropCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODBaseDragAndDrop_classObj ODBaseDragAndDropClassData.classObject
#define _ODBaseDragAndDrop ODBaseDragAndDrop_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODBaseDragAndDropClassDataStructure {
	SOMClass *classObject;
	somMToken Clear;
	somMToken GetContentStorageUnit;
	somMToken StartDrag;
	somMToken InitBaseDragAndDrop;
}  _ODBaseDragAndDropClassData;
SOMEXTERN struct ODBaseDragAndDropClassDataStructure * SOMLINK resolve_ODBaseDragAndDropClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODBaseDragAndDropCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODBaseDragAndDropCClassData;
SOMEXTERN struct ODBaseDragAndDropCClassDataStructure * SOMLINK resolve_ODBaseDragAndDropCClassData(void);

/*
 * New and Renew macros for ODBaseDragAndDrop
 */
#define ODBaseDragAndDropNew() \
   (_somNew(_ODBaseDragAndDrop ? _ODBaseDragAndDrop : ODBaseDragAndDropNewClass(ODBaseDragAndDrop_MajorVersion, ODBaseDragAndDrop_MinorVersion)))
#define ODBaseDragAndDropRenew(buf) \
   (_somRenew(_ODBaseDragAndDrop ? _ODBaseDragAndDrop : ODBaseDragAndDropNewClass(ODBaseDragAndDrop_MajorVersion, ODBaseDragAndDrop_MinorVersion), buf))

/*
 * New Method: Clear
 */
typedef void   (SOMLINK * somTD_ODBaseDragAndDrop_Clear)(ODBaseDragAndDrop *somSelf, Environment *ev);
#define somMD_ODBaseDragAndDrop_Clear "::ODBaseDragAndDrop::Clear"
#define ODBaseDragAndDrop_Clear(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseDragAndDrop, Clear) \
	(somSelf,ev))
#ifndef SOMGD_Clear
    #if (defined(_Clear) || defined(__Clear))
        #undef _Clear
        #undef __Clear
        #define SOMGD_Clear 1
    #else
        #define _Clear ODBaseDragAndDrop_Clear
    #endif /* _Clear */
#endif /* SOMGD_Clear */

/*
 * New Method: GetContentStorageUnit
 */
typedef ODStorageUnit*   (SOMLINK * somTD_ODBaseDragAndDrop_GetContentStorageUnit)(ODBaseDragAndDrop *somSelf, Environment *ev);
#define somMD_ODBaseDragAndDrop_GetContentStorageUnit "::ODBaseDragAndDrop::GetContentStorageUnit"
#define ODBaseDragAndDrop_GetContentStorageUnit(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseDragAndDrop, GetContentStorageUnit) \
	(somSelf,ev))
#ifndef SOMGD_GetContentStorageUnit
    #if (defined(_GetContentStorageUnit) || defined(__GetContentStorageUnit))
        #undef _GetContentStorageUnit
        #undef __GetContentStorageUnit
        #define SOMGD_GetContentStorageUnit 1
    #else
        #define _GetContentStorageUnit ODBaseDragAndDrop_GetContentStorageUnit
    #endif /* _GetContentStorageUnit */
#endif /* SOMGD_GetContentStorageUnit */

/*
 * New Method: StartDrag
 */
typedef ODDropResult   (SOMLINK * somTD_ODBaseDragAndDrop_StartDrag)(ODBaseDragAndDrop *somSelf, Environment *ev,
		ODFrame* srcFrame,
		ODValueType imageType,
		ODPtr image,
		ODPart** destPart,
		ODPtr refCon);
#define somMD_ODBaseDragAndDrop_StartDrag "::ODBaseDragAndDrop::StartDrag"
#define ODBaseDragAndDrop_StartDrag(somSelf,ev,srcFrame,imageType,image,destPart,refCon) \
    (SOM_Resolve(somSelf, ODBaseDragAndDrop, StartDrag) \
	(somSelf,ev,srcFrame,imageType,image,destPart,refCon))
#ifndef SOMGD_StartDrag
    #if (defined(_StartDrag) || defined(__StartDrag))
        #undef _StartDrag
        #undef __StartDrag
        #define SOMGD_StartDrag 1
    #else
        #define _StartDrag ODBaseDragAndDrop_StartDrag
    #endif /* _StartDrag */
#endif /* SOMGD_StartDrag */

/*
 * New Method: InitBaseDragAndDrop
 */
typedef void   (SOMLINK * somTD_ODBaseDragAndDrop_InitBaseDragAndDrop)(ODBaseDragAndDrop *somSelf, Environment *ev,
		ODSession* session);
#define somMD_ODBaseDragAndDrop_InitBaseDragAndDrop "::ODBaseDragAndDrop::InitBaseDragAndDrop"
#define ODBaseDragAndDrop_InitBaseDragAndDrop(somSelf,ev,session) \
    (SOM_Resolve(somSelf, ODBaseDragAndDrop, InitBaseDragAndDrop) \
	(somSelf,ev,session))
#ifndef SOMGD_InitBaseDragAndDrop
    #if (defined(_InitBaseDragAndDrop) || defined(__InitBaseDragAndDrop))
        #undef _InitBaseDragAndDrop
        #undef __InitBaseDragAndDrop
        #define SOMGD_InitBaseDragAndDrop 1
    #else
        #define _InitBaseDragAndDrop ODBaseDragAndDrop_InitBaseDragAndDrop
    #endif /* _InitBaseDragAndDrop */
#endif /* SOMGD_InitBaseDragAndDrop */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODBaseDragAndDrop_InitObject ODObject_InitObject
#define ODBaseDragAndDrop_IsInitialized ODObject_IsInitialized
#define ODBaseDragAndDrop_HasExtension ODObject_HasExtension
#define ODBaseDragAndDrop_GetExtension ODObject_GetExtension
#define ODBaseDragAndDrop_ReleaseExtension ODObject_ReleaseExtension
#define ODBaseDragAndDrop_Purge ODObject_Purge
#define ODBaseDragAndDrop_IsEqualTo ODObject_IsEqualTo
#define ODBaseDragAndDrop_SubClassResponsibility ODObject_SubClassResponsibility
#define ODBaseDragAndDrop_somDefaultInit SOMObject_somDefaultInit
#define ODBaseDragAndDrop_somDestruct SOMObject_somDestruct
#define ODBaseDragAndDrop_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODBaseDragAndDrop_somDefaultAssign SOMObject_somDefaultAssign
#define ODBaseDragAndDrop_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODBaseDragAndDrop_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODBaseDragAndDrop_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODBaseDragAndDrop_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODBaseDragAndDrop_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODBaseDragAndDrop_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODBaseDragAndDrop_somInit SOMObject_somInit
#define ODBaseDragAndDrop_somFree SOMObject_somFree
#define ODBaseDragAndDrop_somUninit SOMObject_somUninit
#define ODBaseDragAndDrop_somGetClass SOMObject_somGetClass
#define ODBaseDragAndDrop_somGetClassName SOMObject_somGetClassName
#define ODBaseDragAndDrop_somGetSize SOMObject_somGetSize
#define ODBaseDragAndDrop_somIsA SOMObject_somIsA
#define ODBaseDragAndDrop_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODBaseDragAndDrop_somRespondsTo SOMObject_somRespondsTo
#define ODBaseDragAndDrop_somDispatch SOMObject_somDispatch
#define ODBaseDragAndDrop_somClassDispatch SOMObject_somClassDispatch
#define ODBaseDragAndDrop_somCastObj SOMObject_somCastObj
#define ODBaseDragAndDrop_somResetObj SOMObject_somResetObj
#define ODBaseDragAndDrop_somDispatchV SOMObject_somDispatchV
#define ODBaseDragAndDrop_somDispatchL SOMObject_somDispatchL
#define ODBaseDragAndDrop_somDispatchA SOMObject_somDispatchA
#define ODBaseDragAndDrop_somDispatchD SOMObject_somDispatchD
#define ODBaseDragAndDrop_somPrintSelf SOMObject_somPrintSelf
#define ODBaseDragAndDrop_somDumpSelf SOMObject_somDumpSelf
#define ODBaseDragAndDrop_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODBaseDragAndDrop_h */
