
/*
 * This file was generated by the SOM Compiler.
 * FileName: F:\BUILD\NT\ship\include\DragDrp.xh.
 * Generated using:
 *     SOM Precompiler somipc: Development
 *     SOM Emitter emitxh.dll: Development
 */

#ifndef SOM_ODDragAndDrop_xh
#define SOM_ODDragAndDrop_xh

class ODDragAndDrop;

#define ODDragAndDrop_MajorVersion 1
#define ODDragAndDrop_MinorVersion 0

/*
 * Passthru lines: File: "C.xh", "before"
 */


/* C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

/* C++ parent defs */
#ifndef SOM_ODObject_xh
#include <ODObject.xh>
#endif

#ifndef ODDragAndDrop_API
#define ODDragAndDrop_API
/*
 * -- The Class API
 */

/*
 * Start of user-defined types:
 */
class SOMClass;
class SOMObject;
class ODFrame;
class ODFacet;
class ODPlatformCanvas;
class ODObject;
class ODExtension;
class ODDragAndDrop;
class ODSession;
class ODPart;
class ODStorageUnit;
class ODDraft;
class ODStorageSystem;
class ODWindowState;
class ODDragItemIterator;

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

/* A procedure to create the ODDragAndDrop Class */
SOMEXTERN
#if (defined(SOM_Module_DragDrp_Source) || defined(ODDragAndDrop_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODDragAndDrop))
WIN32_DLLEXPORT
#else
WIN32_DLLIMPORT
#endif
SOMClass * SOMLINK ODDragAndDropNewClass(
		integer4,
		integer4 );

/* The API to the ODDragAndDrop class object, and the methods it introduces. */
SOMEXTERN struct ODDragAndDropClassDataStructure {
	SOMClass *classObject;
	somMToken Clear;
	somMToken GetContentStorageUnit;
	somMToken StartDrag;
	somMToken ShowPasteAsDialog;
	somMToken GetDragAttributes;
	somMToken GetDragReference;
	somMToken reserved07;
	somMToken reserved08;
	somMToken reserved09;
	somMToken reserved10;
	somMToken reserved11;
	somMToken reserved12;
	somMToken reserved13;
	somMToken reserved14;
	somMToken reserved15;
	somMToken reserved16;
	somMToken reserved17;
	somMToken reserved18;
	somMToken reserved19;
	somMToken reserved20;
	somMToken reserved21;
	somMToken reserved22;
	somMToken reserved23;
	somMToken reserved24;
	somMToken reserved25;
	somMToken reserved26;
	somMToken reserved27;
	somMToken reserved28;
	somMToken reserved29;
	somMToken reserved30;
	somMToken reserved31;
	somMToken reserved32;
	somMToken reserved33;
	somMToken reserved34;
	somMToken reserved35;
	somMToken reserved36;
	somMToken reserved37;
	somMToken reserved38;
	somMToken reserved39;
	somMToken reserved40;
	somMToken reserved41;
	somMToken reserved42;
}
#if !(defined(SOM_Module_DragDrp_Source) || defined(ODDragAndDrop_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODDragAndDrop))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODDragAndDropClassData;
#define _ODDragAndDrop ODDragAndDropClassData.classObject

/* The API to parentMtabs for ODDragAndDrop, and the instance data it introduces. */
SOMEXTERN struct ODDragAndDropCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
}
#if !(defined(SOM_Module_DragDrp_Source) || defined(ODDragAndDrop_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODDragAndDrop))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODDragAndDropCClassData;

/*
 * -- Typedefs for ODDragAndDrop Method Procedures
 */
extern "C" {
typedef void   SOMLINK somTP_ODDragAndDrop_Clear(ODDragAndDrop *somSelf, Environment *ev);
typedef somTP_ODDragAndDrop_Clear *somTD_ODDragAndDrop_Clear;
typedef ODStorageUnit*   SOMLINK somTP_ODDragAndDrop_GetContentStorageUnit(ODDragAndDrop *somSelf, Environment *ev);
typedef somTP_ODDragAndDrop_GetContentStorageUnit *somTD_ODDragAndDrop_GetContentStorageUnit;
typedef ODDropResult   SOMLINK somTP_ODDragAndDrop_StartDrag(ODDragAndDrop *somSelf, Environment *ev,
		ODFrame* srcFrame,
		ODType imageType,
		ODByteArray* image,
		ODPart** destPart,
		ODByteArray* refCon);
typedef somTP_ODDragAndDrop_StartDrag *somTD_ODDragAndDrop_StartDrag;
typedef ODBoolean   SOMLINK somTP_ODDragAndDrop_ShowPasteAsDialog(ODDragAndDrop *somSelf, Environment *ev,
		ODBoolean canPasteLink,
		ODPasteAsMergeSetting mergeSetting,
		ODFacet* facet,
		ODTypeToken viewType,
		ODStorageUnit* contentSU,
		ODPasteAsResult* theResult);
typedef somTP_ODDragAndDrop_ShowPasteAsDialog *somTD_ODDragAndDrop_ShowPasteAsDialog;
typedef ODULong   SOMLINK somTP_ODDragAndDrop_GetDragAttributes(ODDragAndDrop *somSelf, Environment *ev);
typedef somTP_ODDragAndDrop_GetDragAttributes *somTD_ODDragAndDrop_GetDragAttributes;
typedef ODPlatformDragReference   SOMLINK somTP_ODDragAndDrop_GetDragReference(ODDragAndDrop *somSelf, Environment *ev);
typedef somTP_ODDragAndDrop_GetDragReference *somTD_ODDragAndDrop_GetDragReference;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ODDragAndDrop_InitObject(ODDragAndDrop *somSelf, Environment *ev);
typedef somTP_ODDragAndDrop_InitObject *somTD_ODDragAndDrop_InitObject;
typedef ODBoolean   SOMLINK somTP_ODDragAndDrop_HasExtension(ODDragAndDrop *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODDragAndDrop_HasExtension *somTD_ODDragAndDrop_HasExtension;
typedef ODExtension*   SOMLINK somTP_ODDragAndDrop_AcquireExtension(ODDragAndDrop *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODDragAndDrop_AcquireExtension *somTD_ODDragAndDrop_AcquireExtension;
typedef void   SOMLINK somTP_ODDragAndDrop_ReleaseExtension(ODDragAndDrop *somSelf, Environment *ev,
		ODExtension* extension);
typedef somTP_ODDragAndDrop_ReleaseExtension *somTD_ODDragAndDrop_ReleaseExtension;
typedef ODSize   SOMLINK somTP_ODDragAndDrop_Purge(ODDragAndDrop *somSelf, Environment *ev,
		ODSize size);
typedef somTP_ODDragAndDrop_Purge *somTD_ODDragAndDrop_Purge;
typedef ODBoolean   SOMLINK somTP_ODDragAndDrop_IsEqualTo(ODDragAndDrop *somSelf, Environment *ev,
		ODObject* object);
typedef somTP_ODDragAndDrop_IsEqualTo *somTD_ODDragAndDrop_IsEqualTo;
typedef void   SOMLINK somTP_ODDragAndDrop_SubClassResponsibility(ODDragAndDrop *somSelf, Environment *ev);
typedef somTP_ODDragAndDrop_SubClassResponsibility *somTD_ODDragAndDrop_SubClassResponsibility;
typedef void   SOMLINK somTP_ODDragAndDrop_somInit(ODDragAndDrop *somSelf);
typedef somTP_ODDragAndDrop_somInit *somTD_ODDragAndDrop_somInit;
typedef void   SOMLINK somTP_ODDragAndDrop_somUninit(ODDragAndDrop *somSelf);
typedef somTP_ODDragAndDrop_somUninit *somTD_ODDragAndDrop_somUninit;
typedef void   SOMLINK somTP_ODDragAndDrop_somDefaultInit(ODDragAndDrop *somSelf,
		somInitCtrl* ctrl);
typedef somTP_ODDragAndDrop_somDefaultInit *somTD_ODDragAndDrop_somDefaultInit;
typedef void   SOMLINK somTP_ODDragAndDrop_somDestruct(ODDragAndDrop *somSelf,
		octet doFree,
		somDestructCtrl* ctrl);
typedef somTP_ODDragAndDrop_somDestruct *somTD_ODDragAndDrop_somDestruct;
typedef void   SOMLINK somTP_ODDragAndDrop_somDefaultCopyInit(ODDragAndDrop *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDragAndDrop_somDefaultCopyInit *somTD_ODDragAndDrop_somDefaultCopyInit;
typedef ODDragAndDrop*   SOMLINK somTP_ODDragAndDrop_somDefaultAssign(ODDragAndDrop *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDragAndDrop_somDefaultAssign *somTD_ODDragAndDrop_somDefaultAssign;
typedef void   SOMLINK somTP_ODDragAndDrop_somDefaultConstCopyInit(ODDragAndDrop *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDragAndDrop_somDefaultConstCopyInit *somTD_ODDragAndDrop_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ODDragAndDrop_somDefaultVCopyInit(ODDragAndDrop *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDragAndDrop_somDefaultVCopyInit *somTD_ODDragAndDrop_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ODDragAndDrop_somDefaultConstVCopyInit(ODDragAndDrop *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDragAndDrop_somDefaultConstVCopyInit *somTD_ODDragAndDrop_somDefaultConstVCopyInit;
typedef ODDragAndDrop*   SOMLINK somTP_ODDragAndDrop_somDefaultConstAssign(ODDragAndDrop *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDragAndDrop_somDefaultConstAssign *somTD_ODDragAndDrop_somDefaultConstAssign;
typedef ODDragAndDrop*   SOMLINK somTP_ODDragAndDrop_somDefaultVAssign(ODDragAndDrop *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDragAndDrop_somDefaultVAssign *somTD_ODDragAndDrop_somDefaultVAssign;
typedef ODDragAndDrop*   SOMLINK somTP_ODDragAndDrop_somDefaultConstVAssign(ODDragAndDrop *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDragAndDrop_somDefaultConstVAssign *somTD_ODDragAndDrop_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ODDragAndDrop_somFree(ODDragAndDrop *somSelf);
typedef somTP_ODDragAndDrop_somFree *somTD_ODDragAndDrop_somFree;
typedef SOMClass*   SOMLINK somTP_ODDragAndDrop_somGetClass(ODDragAndDrop *somSelf);
typedef somTP_ODDragAndDrop_somGetClass *somTD_ODDragAndDrop_somGetClass;
typedef string   SOMLINK somTP_ODDragAndDrop_somGetClassName(ODDragAndDrop *somSelf);
typedef somTP_ODDragAndDrop_somGetClassName *somTD_ODDragAndDrop_somGetClassName;
typedef long   SOMLINK somTP_ODDragAndDrop_somGetSize(ODDragAndDrop *somSelf);
typedef somTP_ODDragAndDrop_somGetSize *somTD_ODDragAndDrop_somGetSize;
typedef boolean   SOMLINK somTP_ODDragAndDrop_somIsA(ODDragAndDrop *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODDragAndDrop_somIsA *somTD_ODDragAndDrop_somIsA;
typedef boolean   SOMLINK somTP_ODDragAndDrop_somIsInstanceOf(ODDragAndDrop *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODDragAndDrop_somIsInstanceOf *somTD_ODDragAndDrop_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ODDragAndDrop_somRespondsTo(ODDragAndDrop *somSelf,
		somId mId);
typedef somTP_ODDragAndDrop_somRespondsTo *somTD_ODDragAndDrop_somRespondsTo;
typedef boolean   SOMLINK somTP_ODDragAndDrop_somDispatch(ODDragAndDrop *somSelf,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODDragAndDrop_somDispatch *somTD_ODDragAndDrop_somDispatch;
typedef boolean   SOMLINK somTP_ODDragAndDrop_somClassDispatch(ODDragAndDrop *somSelf,
		SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODDragAndDrop_somClassDispatch *somTD_ODDragAndDrop_somClassDispatch;
typedef boolean   SOMLINK somTP_ODDragAndDrop_somCastObj(ODDragAndDrop *somSelf,
		SOMClass* cls);
typedef somTP_ODDragAndDrop_somCastObj *somTD_ODDragAndDrop_somCastObj;
typedef boolean   SOMLINK somTP_ODDragAndDrop_somResetObj(ODDragAndDrop *somSelf);
typedef somTP_ODDragAndDrop_somResetObj *somTD_ODDragAndDrop_somResetObj;
typedef SOMObject*   SOMLINK somTP_ODDragAndDrop_somPrintSelf(ODDragAndDrop *somSelf);
typedef somTP_ODDragAndDrop_somPrintSelf *somTD_ODDragAndDrop_somPrintSelf;
typedef void   SOMLINK somTP_ODDragAndDrop_somDumpSelf(ODDragAndDrop *somSelf,
		long level);
typedef somTP_ODDragAndDrop_somDumpSelf *somTD_ODDragAndDrop_somDumpSelf;
typedef void   SOMLINK somTP_ODDragAndDrop_somDumpSelfInt(ODDragAndDrop *somSelf,
		long level);
typedef somTP_ODDragAndDrop_somDumpSelfInt *somTD_ODDragAndDrop_somDumpSelfInt;
}

#endif /* ODDragAndDrop_API */


/*
 * -- This emitter believes that method thunks are unavailable,
 * -- so somResolve will be called.
 */
#undef somresolve_
#define somresolve_(obj,mToken) (somResolve(obj,mToken))

/*
 * -- The C++ Wrapper Class for ODDragAndDrop
 */
class ODDragAndDrop : public ODObject
{
public:

// ODDragAndDrop::new creates the class object if necessary, and then uses somNewNoInit
// to allocate memory and create the object. Initialization is in ctors.
void *operator new(size_t)
{
   if (!_ODDragAndDrop) ODDragAndDropNewClass(ODDragAndDrop_MajorVersion,ODDragAndDrop_MinorVersion);
   return (void*)
      SOM_Resolve(_ODDragAndDrop,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_ODDragAndDrop));
}

// ODDragAndDrop::delete uses somDestruct.
void operator delete(void * obj)
{
   if (obj && *(void**)obj) {
      SOM_Resolve(obj,SOMObject,somDestruct)
         ((SOMObject*)obj, 1, 0);
   }
}

ODDragAndDrop()
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODDragAndDropCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

ODDragAndDrop(ODDragAndDrop* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODDragAndDropCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}

ODDragAndDrop(const ODDragAndDrop* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODDragAndDropCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/* method: Clear */
void   Clear(Environment *ev)
{
   SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,Clear)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: GetContentStorageUnit */
ODStorageUnit*   GetContentStorageUnit(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODStorageUnit* __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,GetContentStorageUnit)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,GetContentStorageUnit)
	(this, ev);
#endif
}


/* method: StartDrag */
ODDropResult   StartDrag(Environment *ev,
		ODFrame* srcFrame,
		ODType imageType,
		ODByteArray* image,
		ODPart** destPart,
		ODByteArray* refCon)
{
#ifdef SOMCHKEXCEPT
   ODDropResult __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,StartDrag)
	(this, ev,srcFrame,imageType,image,destPart,refCon);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,StartDrag)
	(this, ev,srcFrame,imageType,image,destPart,refCon);
#endif
}


/* method: ShowPasteAsDialog */
ODBoolean   ShowPasteAsDialog(Environment *ev,
		ODBoolean canPasteLink,
		ODPasteAsMergeSetting mergeSetting,
		ODFacet* facet,
		ODTypeToken viewType,
		ODStorageUnit* contentSU,
		ODPasteAsResult* theResult)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,ShowPasteAsDialog)
	(this, ev,canPasteLink,mergeSetting,facet,viewType,contentSU,theResult);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,ShowPasteAsDialog)
	(this, ev,canPasteLink,mergeSetting,facet,viewType,contentSU,theResult);
#endif
}


/* method: GetDragAttributes */
ODULong   GetDragAttributes(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODULong __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,GetDragAttributes)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,GetDragAttributes)
	(this, ev);
#endif
}


/* method: GetDragReference */
ODPlatformDragReference   GetDragReference(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODPlatformDragReference __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,GetDragReference)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODDragAndDrop,GetDragReference)
	(this, ev);
#endif
}


/*
 * Reintroduce inherited methods
 */

/* method: InitObject */
void   InitObject(Environment *ev)
{
   SOM_ResolveD(this,ODDragAndDrop,ODObject,InitObject)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: HasExtension */
ODBoolean   HasExtension(Environment *ev,
		ODType extensionName)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODObject,HasExtension)
	(this, ev,extensionName);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODObject,HasExtension)
	(this, ev,extensionName);
#endif
}


/* method: AcquireExtension */
ODExtension*   AcquireExtension(Environment *ev,
		ODType extensionName)
{
#ifdef SOMCHKEXCEPT
   ODExtension* __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODObject,AcquireExtension)
	(this, ev,extensionName);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODObject,AcquireExtension)
	(this, ev,extensionName);
#endif
}


/* method: ReleaseExtension */
void   ReleaseExtension(Environment *ev,
		ODExtension* extension)
{
   SOM_ResolveD(this,ODDragAndDrop,ODObject,ReleaseExtension)
	(this, ev,extension);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Purge */
ODSize   Purge(Environment *ev,
		ODSize size)
{
#ifdef SOMCHKEXCEPT
   ODSize __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODObject,Purge)
	(this, ev,size);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODObject,Purge)
	(this, ev,size);
#endif
}


/* method: IsEqualTo */
ODBoolean   IsEqualTo(Environment *ev,
		ODObject* object)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,ODObject,IsEqualTo)
	(this, ev,object);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDragAndDrop,ODObject,IsEqualTo)
	(this, ev,object);
#endif
}


/* method: SubClassResponsibility */
void   SubClassResponsibility(Environment *ev)
{
   SOM_ResolveD(this,ODDragAndDrop,ODObject,SubClassResponsibility)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: somInit */
void   somInit()
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somInit)
	(this);
}


/* method: somUninit */
void   somUninit()
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somUninit)
	(this);
}


/* initializer method: somDefaultInit */
void   somDefaultInit(somInitCtrl* ctrl)
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultInit)
	(this,ctrl);
}


/* method: somDestruct */
void   somDestruct(octet doFree,
		somDestructCtrl* ctrl)
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDestruct)
	(this,doFree,ctrl);
}


/* initializer method: somDefaultCopyInit */
void   somDefaultCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultCopyInit)
	(this,ctrl,fromObj);
}


/* method: somDefaultAssign */
ODDragAndDrop*  somDefaultAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultAssign)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultConstCopyInit */
void   somDefaultConstCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultConstCopyInit)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultVCopyInit */
void   somDefaultVCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultVCopyInit)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultConstVCopyInit */
void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultConstVCopyInit)
	(this,ctrl,fromObj);
}


/* method: somDefaultConstAssign */
ODDragAndDrop*  somDefaultConstAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultConstAssign)
	(this,ctrl,fromObj);
}


/* method: somDefaultVAssign */
ODDragAndDrop*  somDefaultVAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultVAssign)
	(this,ctrl,fromObj);
}


/* method: somDefaultConstVAssign */
ODDragAndDrop*  somDefaultConstVAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDefaultConstVAssign)
	(this,ctrl,fromObj);
}


/* method: somFree */
void   somFree()
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somFree)
	(this);
}


/* method: somGetClass */
SOMClass*   somGetClass()
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somGetClass)
	(this);
}


/* method: somGetClassName */
string   somGetClassName()
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somGetClassName)
	(this);
}


/* method: somGetSize */
long   somGetSize()
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somGetSize)
	(this);
}


/* method: somIsA */
boolean   somIsA(SOMClass* aClassObj)
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somIsA)
	(this,aClassObj);
}


/* method: somIsInstanceOf */
boolean   somIsInstanceOf(SOMClass* aClassObj)
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somIsInstanceOf)
	(this,aClassObj);
}


/* method: somRespondsTo */
boolean   somRespondsTo(somId mId)
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somRespondsTo)
	(this,mId);
}


/* va_list method: somDispatch */
/* the va_list invocation form */
boolean   ODDragAndDrop_somDispatch(somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDispatch)
	(this,retValue,methodId,ap);
}

/* the varargs invocation form */
boolean   somDispatch(somToken* retValue,
		somId methodId,
		...)
{
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDispatch)
	(this,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */
/* the va_list invocation form */
boolean   ODDragAndDrop_somClassDispatch(SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somClassDispatch)
	(this,clsObj,retValue,methodId,ap);
}

/* the varargs invocation form */
boolean   somClassDispatch(SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		...)
{
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      SOM_ResolveD(this,ODDragAndDrop,SOMObject,somClassDispatch)
	(this,clsObj,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


/* method: somCastObj */
boolean   somCastObj(SOMClass* cls)
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somCastObj)
	(this,cls);
}


/* method: somResetObj */
boolean   somResetObj()
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somResetObj)
	(this);
}


/* method: somPrintSelf */
SOMObject*   somPrintSelf()
{
   return SOM_ResolveD(this,ODDragAndDrop,SOMObject,somPrintSelf)
	(this);
}


/* method: somDumpSelf */
void   somDumpSelf(long level)
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDumpSelf)
	(this,level);
}


/* method: somDumpSelfInt */
void   somDumpSelfInt(long level)
{
   SOM_ResolveD(this,ODDragAndDrop,SOMObject,somDumpSelfInt)
	(this,level);
}



};   /* ODDragAndDrop */



#endif       /* SOM_ODDragAndDrop_xh */
