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

#ifndef SOM_ODFacet_xh
#define SOM_ODFacet_xh

class ODFacet;

#define ODFacet_MajorVersion 1
#define ODFacet_MinorVersion 0

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

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

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

/*
 * Start of user-defined types:
 */
class SOMClass;
class SOMObject;
class ODFrame;
class ODFacet;
class ODPlatformCanvas;
class ODObject;
class ODExtension;
class ODCanvas;
class ODDragItemIterator;
class ODFacetIterator;
class ODShape;
class ODTransform;
class ODWindow;
class M_ODFacet;
class ODWin32StandardCanvas;

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

/* A procedure to create the ODFacet Class */
class M_ODFacet;
SOMEXTERN
#if (defined(SOM_Module_Facet_Source) || defined(ODFacet_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODFacet))
WIN32_DLLEXPORT
#else
WIN32_DLLIMPORT
#endif
M_ODFacet * SOMLINK ODFacetNewClass(
		integer4,
		integer4 );

/* The API to the ODFacet class object, and the methods it introduces. */
SOMEXTERN struct ODFacetClassDataStructure {
	M_ODFacet *classObject;
	somMToken GetFrame;
	somMToken CreateEmbeddedFacet;
	somMToken RemoveFacet;
	somMToken MoveBefore;
	somMToken MoveBehind;
	somMToken GetContainingFacet;
	somMToken CreateFacetIterator;
	somMToken CreateShape;
	somMToken AcquireClipShape;
	somMToken ChangeGeometry;
	somMToken AcquireAggregateClipShape;
	somMToken AcquireWindowAggregateClipShape;
	somMToken AcquireActiveShape;
	somMToken ChangeActiveShape;
	somMToken CreateTransform;
	somMToken AcquireExternalTransform;
	somMToken AcquireFrameTransform;
	somMToken AcquireContentTransform;
	somMToken AcquireWindowFrameTransform;
	somMToken AcquireWindowContentTransform;
	somMToken CreateCanvas;
	somMToken HasCanvas;
	somMToken GetCanvas;
	somMToken ChangeCanvas;
	somMToken GetWindow;
	somMToken GetPartInfo;
	somMToken SetPartInfo;
	somMToken DragEnter;
	somMToken DragWithin;
	somMToken DragLeave;
	somMToken Drop;
	somMToken Update;
	somMToken Invalidate;
	somMToken Validate;
	somMToken Draw;
	somMToken DrawChildren;
	somMToken DrawChildrenAlways;
	somMToken DrawnIn;
	somMToken InvalidateActiveBorder;
	somMToken DrawActiveBorder;
	somMToken ContainsPoint;
	somMToken ActiveBorderContainsPoint;
	somMToken IsSelected;
	somMToken SetSelected;
	somMToken GetHighlight;
	somMToken ChangeHighlight;
	somMToken GetFacetHWND;
	somMToken CreatePlatformCanvas;
	somMToken reserved1;
	somMToken reserved2;
	somMToken reserved3;
	somMToken reserved4;
	somMToken reserved5;
	somMToken reserved6;
	somMToken reserved7;
	somMToken reserved8;
	somMToken reserved9;
	somMToken reserved10;
	somMToken reserved11;
}
#if !(defined(SOM_Module_Facet_Source) || defined(ODFacet_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODFacet))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODFacetClassData;
#define _ODFacet ODFacetClassData.classObject

/* The API to parentMtabs for ODFacet, and the instance data it introduces. */
SOMEXTERN struct ODFacetCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
}
#if !(defined(SOM_Module_Facet_Source) || defined(ODFacet_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODFacet))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODFacetCClassData;

/*
 * -- Typedefs for ODFacet Method Procedures
 */
extern "C" {
typedef ODFrame*   SOMLINK somTP_ODFacet_GetFrame(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_GetFrame *somTD_ODFacet_GetFrame;
typedef ODFacet*   SOMLINK somTP_ODFacet_CreateEmbeddedFacet(ODFacet *somSelf, Environment *ev,
		ODFrame* frame,
		ODShape* clipShape,
		ODTransform* externalTransform,
		ODCanvas* canvas,
		ODCanvas* biasCanvas,
		ODFacet* siblingFacet,
		ODFramePosition position);
typedef somTP_ODFacet_CreateEmbeddedFacet *somTD_ODFacet_CreateEmbeddedFacet;
typedef void   SOMLINK somTP_ODFacet_RemoveFacet(ODFacet *somSelf, Environment *ev,
		ODFacet* facet);
typedef somTP_ODFacet_RemoveFacet *somTD_ODFacet_RemoveFacet;
typedef void   SOMLINK somTP_ODFacet_MoveBefore(ODFacet *somSelf, Environment *ev,
		ODFacet* child,
		ODFacet* sibling);
typedef somTP_ODFacet_MoveBefore *somTD_ODFacet_MoveBefore;
typedef void   SOMLINK somTP_ODFacet_MoveBehind(ODFacet *somSelf, Environment *ev,
		ODFacet* child,
		ODFacet* sibling);
typedef somTP_ODFacet_MoveBehind *somTD_ODFacet_MoveBehind;
typedef ODFacet*   SOMLINK somTP_ODFacet_GetContainingFacet(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_GetContainingFacet *somTD_ODFacet_GetContainingFacet;
typedef ODFacetIterator*   SOMLINK somTP_ODFacet_CreateFacetIterator(ODFacet *somSelf, Environment *ev,
		ODTraversalType traversalType,
		ODSiblingOrder siblingOrder);
typedef somTP_ODFacet_CreateFacetIterator *somTD_ODFacet_CreateFacetIterator;
typedef ODShape*   SOMLINK somTP_ODFacet_CreateShape(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_CreateShape *somTD_ODFacet_CreateShape;
typedef ODShape*   SOMLINK somTP_ODFacet_AcquireClipShape(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireClipShape *somTD_ODFacet_AcquireClipShape;
typedef void   SOMLINK somTP_ODFacet_ChangeGeometry(ODFacet *somSelf, Environment *ev,
		ODShape* clipShape,
		ODTransform* transform,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_ChangeGeometry *somTD_ODFacet_ChangeGeometry;
typedef ODShape*   SOMLINK somTP_ODFacet_AcquireAggregateClipShape(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireAggregateClipShape *somTD_ODFacet_AcquireAggregateClipShape;
typedef ODShape*   SOMLINK somTP_ODFacet_AcquireWindowAggregateClipShape(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireWindowAggregateClipShape *somTD_ODFacet_AcquireWindowAggregateClipShape;
typedef ODShape*   SOMLINK somTP_ODFacet_AcquireActiveShape(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireActiveShape *somTD_ODFacet_AcquireActiveShape;
typedef void   SOMLINK somTP_ODFacet_ChangeActiveShape(ODFacet *somSelf, Environment *ev,
		ODShape* activeShape,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_ChangeActiveShape *somTD_ODFacet_ChangeActiveShape;
typedef ODTransform*   SOMLINK somTP_ODFacet_CreateTransform(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_CreateTransform *somTD_ODFacet_CreateTransform;
typedef ODTransform*   SOMLINK somTP_ODFacet_AcquireExternalTransform(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireExternalTransform *somTD_ODFacet_AcquireExternalTransform;
typedef ODTransform*   SOMLINK somTP_ODFacet_AcquireFrameTransform(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireFrameTransform *somTD_ODFacet_AcquireFrameTransform;
typedef ODTransform*   SOMLINK somTP_ODFacet_AcquireContentTransform(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireContentTransform *somTD_ODFacet_AcquireContentTransform;
typedef ODTransform*   SOMLINK somTP_ODFacet_AcquireWindowFrameTransform(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireWindowFrameTransform *somTD_ODFacet_AcquireWindowFrameTransform;
typedef ODTransform*   SOMLINK somTP_ODFacet_AcquireWindowContentTransform(ODFacet *somSelf, Environment *ev,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_AcquireWindowContentTransform *somTD_ODFacet_AcquireWindowContentTransform;
typedef ODCanvas*   SOMLINK somTP_ODFacet_CreateCanvas(ODFacet *somSelf, Environment *ev,
		ODGraphicsSystem graphicsSystem,
		ODPlatformCanvas* platformCanvas,
		ODBoolean isDynamic,
		ODBoolean isOffscreen);
typedef somTP_ODFacet_CreateCanvas *somTD_ODFacet_CreateCanvas;
typedef ODBoolean   SOMLINK somTP_ODFacet_HasCanvas(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_HasCanvas *somTD_ODFacet_HasCanvas;
typedef ODCanvas*   SOMLINK somTP_ODFacet_GetCanvas(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_GetCanvas *somTD_ODFacet_GetCanvas;
typedef void   SOMLINK somTP_ODFacet_ChangeCanvas(ODFacet *somSelf, Environment *ev,
		ODCanvas* canvas);
typedef somTP_ODFacet_ChangeCanvas *somTD_ODFacet_ChangeCanvas;
typedef ODWindow*   SOMLINK somTP_ODFacet_GetWindow(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_GetWindow *somTD_ODFacet_GetWindow;
typedef ODInfoType   SOMLINK somTP_ODFacet_GetPartInfo(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_GetPartInfo *somTD_ODFacet_GetPartInfo;
typedef void   SOMLINK somTP_ODFacet_SetPartInfo(ODFacet *somSelf, Environment *ev,
		ODInfoType partInfo);
typedef somTP_ODFacet_SetPartInfo *somTD_ODFacet_SetPartInfo;
typedef ODDragResult   SOMLINK somTP_ODFacet_DragEnter(ODFacet *somSelf, Environment *ev,
		ODPoint* point,
		ODDragItemIterator* dragInfo,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_DragEnter *somTD_ODFacet_DragEnter;
typedef ODDragResult   SOMLINK somTP_ODFacet_DragWithin(ODFacet *somSelf, Environment *ev,
		ODPoint* point,
		ODDragItemIterator* dragInfo,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_DragWithin *somTD_ODFacet_DragWithin;
typedef void   SOMLINK somTP_ODFacet_DragLeave(ODFacet *somSelf, Environment *ev,
		ODPoint* point,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_DragLeave *somTD_ODFacet_DragLeave;
typedef ODDropResult   SOMLINK somTP_ODFacet_Drop(ODFacet *somSelf, Environment *ev,
		ODPoint* point,
		ODDragItemIterator* dropInfo,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_Drop *somTD_ODFacet_Drop;
typedef void   SOMLINK somTP_ODFacet_Update(ODFacet *somSelf, Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_Update *somTD_ODFacet_Update;
typedef void   SOMLINK somTP_ODFacet_Invalidate(ODFacet *somSelf, Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_Invalidate *somTD_ODFacet_Invalidate;
typedef void   SOMLINK somTP_ODFacet_Validate(ODFacet *somSelf, Environment *ev,
		ODShape* validShape,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_Validate *somTD_ODFacet_Validate;
typedef void   SOMLINK somTP_ODFacet_Draw(ODFacet *somSelf, Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_Draw *somTD_ODFacet_Draw;
typedef void   SOMLINK somTP_ODFacet_DrawChildren(ODFacet *somSelf, Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_DrawChildren *somTD_ODFacet_DrawChildren;
typedef void   SOMLINK somTP_ODFacet_DrawChildrenAlways(ODFacet *somSelf, Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_DrawChildrenAlways *somTD_ODFacet_DrawChildrenAlways;
typedef void   SOMLINK somTP_ODFacet_DrawnIn(ODFacet *somSelf, Environment *ev,
		ODShape* shape,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_DrawnIn *somTD_ODFacet_DrawnIn;
typedef void   SOMLINK somTP_ODFacet_InvalidateActiveBorder(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_InvalidateActiveBorder *somTD_ODFacet_InvalidateActiveBorder;
typedef void   SOMLINK somTP_ODFacet_DrawActiveBorder(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_DrawActiveBorder *somTD_ODFacet_DrawActiveBorder;
typedef ODBoolean   SOMLINK somTP_ODFacet_ContainsPoint(ODFacet *somSelf, Environment *ev,
		ODPoint* point,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_ContainsPoint *somTD_ODFacet_ContainsPoint;
typedef ODBoolean   SOMLINK somTP_ODFacet_ActiveBorderContainsPoint(ODFacet *somSelf, Environment *ev,
		ODPoint* point,
		ODCanvas* biasCanvas);
typedef somTP_ODFacet_ActiveBorderContainsPoint *somTD_ODFacet_ActiveBorderContainsPoint;
typedef ODBoolean   SOMLINK somTP_ODFacet_IsSelected(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_IsSelected *somTD_ODFacet_IsSelected;
typedef void   SOMLINK somTP_ODFacet_SetSelected(ODFacet *somSelf, Environment *ev,
		ODBoolean isSelected);
typedef somTP_ODFacet_SetSelected *somTD_ODFacet_SetSelected;
typedef ODHighlight   SOMLINK somTP_ODFacet_GetHighlight(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_GetHighlight *somTD_ODFacet_GetHighlight;
typedef void   SOMLINK somTP_ODFacet_ChangeHighlight(ODFacet *somSelf, Environment *ev,
		ODHighlight highlight);
typedef somTP_ODFacet_ChangeHighlight *somTD_ODFacet_ChangeHighlight;
typedef HWND   SOMLINK somTP_ODFacet_GetFacetHWND(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_GetFacetHWND *somTD_ODFacet_GetFacetHWND;
typedef ODWin32StandardCanvas*   SOMLINK somTP_ODFacet_CreatePlatformCanvas(ODFacet *somSelf, Environment *ev,
		HDC hdc);
typedef somTP_ODFacet_CreatePlatformCanvas *somTD_ODFacet_CreatePlatformCanvas;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ODFacet_InitObject(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_InitObject *somTD_ODFacet_InitObject;
typedef ODBoolean   SOMLINK somTP_ODFacet_HasExtension(ODFacet *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODFacet_HasExtension *somTD_ODFacet_HasExtension;
typedef ODExtension*   SOMLINK somTP_ODFacet_AcquireExtension(ODFacet *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODFacet_AcquireExtension *somTD_ODFacet_AcquireExtension;
typedef void   SOMLINK somTP_ODFacet_ReleaseExtension(ODFacet *somSelf, Environment *ev,
		ODExtension* extension);
typedef somTP_ODFacet_ReleaseExtension *somTD_ODFacet_ReleaseExtension;
typedef ODSize   SOMLINK somTP_ODFacet_Purge(ODFacet *somSelf, Environment *ev,
		ODSize size);
typedef somTP_ODFacet_Purge *somTD_ODFacet_Purge;
typedef ODBoolean   SOMLINK somTP_ODFacet_IsEqualTo(ODFacet *somSelf, Environment *ev,
		ODObject* object);
typedef somTP_ODFacet_IsEqualTo *somTD_ODFacet_IsEqualTo;
typedef void   SOMLINK somTP_ODFacet_SubClassResponsibility(ODFacet *somSelf, Environment *ev);
typedef somTP_ODFacet_SubClassResponsibility *somTD_ODFacet_SubClassResponsibility;
typedef void   SOMLINK somTP_ODFacet_somInit(ODFacet *somSelf);
typedef somTP_ODFacet_somInit *somTD_ODFacet_somInit;
typedef void   SOMLINK somTP_ODFacet_somUninit(ODFacet *somSelf);
typedef somTP_ODFacet_somUninit *somTD_ODFacet_somUninit;
typedef void   SOMLINK somTP_ODFacet_somDefaultInit(ODFacet *somSelf,
		somInitCtrl* ctrl);
typedef somTP_ODFacet_somDefaultInit *somTD_ODFacet_somDefaultInit;
typedef void   SOMLINK somTP_ODFacet_somDestruct(ODFacet *somSelf,
		octet doFree,
		somDestructCtrl* ctrl);
typedef somTP_ODFacet_somDestruct *somTD_ODFacet_somDestruct;
typedef void   SOMLINK somTP_ODFacet_somDefaultCopyInit(ODFacet *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODFacet_somDefaultCopyInit *somTD_ODFacet_somDefaultCopyInit;
typedef ODFacet*   SOMLINK somTP_ODFacet_somDefaultAssign(ODFacet *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODFacet_somDefaultAssign *somTD_ODFacet_somDefaultAssign;
typedef void   SOMLINK somTP_ODFacet_somDefaultConstCopyInit(ODFacet *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODFacet_somDefaultConstCopyInit *somTD_ODFacet_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ODFacet_somDefaultVCopyInit(ODFacet *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODFacet_somDefaultVCopyInit *somTD_ODFacet_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ODFacet_somDefaultConstVCopyInit(ODFacet *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODFacet_somDefaultConstVCopyInit *somTD_ODFacet_somDefaultConstVCopyInit;
typedef ODFacet*   SOMLINK somTP_ODFacet_somDefaultConstAssign(ODFacet *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODFacet_somDefaultConstAssign *somTD_ODFacet_somDefaultConstAssign;
typedef ODFacet*   SOMLINK somTP_ODFacet_somDefaultVAssign(ODFacet *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODFacet_somDefaultVAssign *somTD_ODFacet_somDefaultVAssign;
typedef ODFacet*   SOMLINK somTP_ODFacet_somDefaultConstVAssign(ODFacet *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODFacet_somDefaultConstVAssign *somTD_ODFacet_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ODFacet_somFree(ODFacet *somSelf);
typedef somTP_ODFacet_somFree *somTD_ODFacet_somFree;
typedef M_ODFacet*   SOMLINK somTP_ODFacet_somGetClass(ODFacet *somSelf);
typedef somTP_ODFacet_somGetClass *somTD_ODFacet_somGetClass;
typedef string   SOMLINK somTP_ODFacet_somGetClassName(ODFacet *somSelf);
typedef somTP_ODFacet_somGetClassName *somTD_ODFacet_somGetClassName;
typedef long   SOMLINK somTP_ODFacet_somGetSize(ODFacet *somSelf);
typedef somTP_ODFacet_somGetSize *somTD_ODFacet_somGetSize;
typedef boolean   SOMLINK somTP_ODFacet_somIsA(ODFacet *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODFacet_somIsA *somTD_ODFacet_somIsA;
typedef boolean   SOMLINK somTP_ODFacet_somIsInstanceOf(ODFacet *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODFacet_somIsInstanceOf *somTD_ODFacet_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ODFacet_somRespondsTo(ODFacet *somSelf,
		somId mId);
typedef somTP_ODFacet_somRespondsTo *somTD_ODFacet_somRespondsTo;
typedef boolean   SOMLINK somTP_ODFacet_somDispatch(ODFacet *somSelf,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODFacet_somDispatch *somTD_ODFacet_somDispatch;
typedef boolean   SOMLINK somTP_ODFacet_somClassDispatch(ODFacet *somSelf,
		SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODFacet_somClassDispatch *somTD_ODFacet_somClassDispatch;
typedef boolean   SOMLINK somTP_ODFacet_somCastObj(ODFacet *somSelf,
		SOMClass* cls);
typedef somTP_ODFacet_somCastObj *somTD_ODFacet_somCastObj;
typedef boolean   SOMLINK somTP_ODFacet_somResetObj(ODFacet *somSelf);
typedef somTP_ODFacet_somResetObj *somTD_ODFacet_somResetObj;
typedef SOMObject*   SOMLINK somTP_ODFacet_somPrintSelf(ODFacet *somSelf);
typedef somTP_ODFacet_somPrintSelf *somTD_ODFacet_somPrintSelf;
typedef void   SOMLINK somTP_ODFacet_somDumpSelf(ODFacet *somSelf,
		long level);
typedef somTP_ODFacet_somDumpSelf *somTD_ODFacet_somDumpSelf;
typedef void   SOMLINK somTP_ODFacet_somDumpSelfInt(ODFacet *somSelf,
		long level);
typedef somTP_ODFacet_somDumpSelfInt *somTD_ODFacet_somDumpSelfInt;
}

#endif /* ODFacet_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 ODFacet
 */
class ODFacet : public ODObject
{
public:

// ODFacet::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 (!_ODFacet) ODFacetNewClass(ODFacet_MajorVersion,ODFacet_MinorVersion);
   return (void*)
      SOM_Resolve(_ODFacet,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_ODFacet));
}

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

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

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

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


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


/* method: CreateEmbeddedFacet */
ODFacet*   CreateEmbeddedFacet(Environment *ev,
		ODFrame* frame,
		ODShape* clipShape,
		ODTransform* externalTransform,
		ODCanvas* canvas,
		ODCanvas* biasCanvas,
		ODFacet* siblingFacet,
		ODFramePosition position)
{
#ifdef SOMCHKEXCEPT
   ODFacet* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,CreateEmbeddedFacet)
	(this, ev,frame,clipShape,externalTransform,canvas,biasCanvas,siblingFacet,position);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,CreateEmbeddedFacet)
	(this, ev,frame,clipShape,externalTransform,canvas,biasCanvas,siblingFacet,position);
#endif
}


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


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


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


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


/* method: CreateFacetIterator */
ODFacetIterator*   CreateFacetIterator(Environment *ev,
		ODTraversalType traversalType,
		ODSiblingOrder siblingOrder)
{
#ifdef SOMCHKEXCEPT
   ODFacetIterator* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,CreateFacetIterator)
	(this, ev,traversalType,siblingOrder);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,CreateFacetIterator)
	(this, ev,traversalType,siblingOrder);
#endif
}


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


/* method: AcquireClipShape */
ODShape*   AcquireClipShape(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODShape* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireClipShape)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireClipShape)
	(this, ev,biasCanvas);
#endif
}


/* method: ChangeGeometry */
void   ChangeGeometry(Environment *ev,
		ODShape* clipShape,
		ODTransform* transform,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,ChangeGeometry)
	(this, ev,clipShape,transform,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: AcquireAggregateClipShape */
ODShape*   AcquireAggregateClipShape(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODShape* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireAggregateClipShape)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireAggregateClipShape)
	(this, ev,biasCanvas);
#endif
}


/* method: AcquireWindowAggregateClipShape */
ODShape*   AcquireWindowAggregateClipShape(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODShape* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireWindowAggregateClipShape)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireWindowAggregateClipShape)
	(this, ev,biasCanvas);
#endif
}


/* method: AcquireActiveShape */
ODShape*   AcquireActiveShape(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODShape* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireActiveShape)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireActiveShape)
	(this, ev,biasCanvas);
#endif
}


/* method: ChangeActiveShape */
void   ChangeActiveShape(Environment *ev,
		ODShape* activeShape,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,ChangeActiveShape)
	(this, ev,activeShape,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


/* method: AcquireExternalTransform */
ODTransform*   AcquireExternalTransform(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODTransform* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireExternalTransform)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireExternalTransform)
	(this, ev,biasCanvas);
#endif
}


/* method: AcquireFrameTransform */
ODTransform*   AcquireFrameTransform(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODTransform* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireFrameTransform)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireFrameTransform)
	(this, ev,biasCanvas);
#endif
}


/* method: AcquireContentTransform */
ODTransform*   AcquireContentTransform(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODTransform* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireContentTransform)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireContentTransform)
	(this, ev,biasCanvas);
#endif
}


/* method: AcquireWindowFrameTransform */
ODTransform*   AcquireWindowFrameTransform(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODTransform* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireWindowFrameTransform)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireWindowFrameTransform)
	(this, ev,biasCanvas);
#endif
}


/* method: AcquireWindowContentTransform */
ODTransform*   AcquireWindowContentTransform(Environment *ev,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODTransform* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,AcquireWindowContentTransform)
	(this, ev,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,AcquireWindowContentTransform)
	(this, ev,biasCanvas);
#endif
}


/* method: CreateCanvas */
ODCanvas*   CreateCanvas(Environment *ev,
		ODGraphicsSystem graphicsSystem,
		ODPlatformCanvas* platformCanvas,
		ODBoolean isDynamic,
		ODBoolean isOffscreen)
{
#ifdef SOMCHKEXCEPT
   ODCanvas* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,CreateCanvas)
	(this, ev,graphicsSystem,platformCanvas,isDynamic,isOffscreen);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,CreateCanvas)
	(this, ev,graphicsSystem,platformCanvas,isDynamic,isOffscreen);
#endif
}


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


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


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


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


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


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


/* method: DragEnter */
ODDragResult   DragEnter(Environment *ev,
		ODPoint* point,
		ODDragItemIterator* dragInfo,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODDragResult __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,DragEnter)
	(this, ev,point,dragInfo,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,DragEnter)
	(this, ev,point,dragInfo,biasCanvas);
#endif
}


/* method: DragWithin */
ODDragResult   DragWithin(Environment *ev,
		ODPoint* point,
		ODDragItemIterator* dragInfo,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODDragResult __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,DragWithin)
	(this, ev,point,dragInfo,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,DragWithin)
	(this, ev,point,dragInfo,biasCanvas);
#endif
}


/* method: DragLeave */
void   DragLeave(Environment *ev,
		ODPoint* point,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,DragLeave)
	(this, ev,point,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Drop */
ODDropResult   Drop(Environment *ev,
		ODPoint* point,
		ODDragItemIterator* dropInfo,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODDropResult __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,Drop)
	(this, ev,point,dropInfo,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,Drop)
	(this, ev,point,dropInfo,biasCanvas);
#endif
}


/* method: Update */
void   Update(Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,Update)
	(this, ev,invalidShape,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Invalidate */
void   Invalidate(Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,Invalidate)
	(this, ev,invalidShape,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Validate */
void   Validate(Environment *ev,
		ODShape* validShape,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,Validate)
	(this, ev,validShape,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Draw */
void   Draw(Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,Draw)
	(this, ev,invalidShape,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: DrawChildren */
void   DrawChildren(Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,DrawChildren)
	(this, ev,invalidShape,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: DrawChildrenAlways */
void   DrawChildrenAlways(Environment *ev,
		ODShape* invalidShape,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,DrawChildrenAlways)
	(this, ev,invalidShape,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: DrawnIn */
void   DrawnIn(Environment *ev,
		ODShape* shape,
		ODCanvas* biasCanvas)
{
   SOM_ResolveD(this,ODFacet,ODFacet,DrawnIn)
	(this, ev,shape,biasCanvas);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


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


/* method: ContainsPoint */
ODBoolean   ContainsPoint(Environment *ev,
		ODPoint* point,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,ContainsPoint)
	(this, ev,point,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,ContainsPoint)
	(this, ev,point,biasCanvas);
#endif
}


/* method: ActiveBorderContainsPoint */
ODBoolean   ActiveBorderContainsPoint(Environment *ev,
		ODPoint* point,
		ODCanvas* biasCanvas)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,ActiveBorderContainsPoint)
	(this, ev,point,biasCanvas);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,ActiveBorderContainsPoint)
	(this, ev,point,biasCanvas);
#endif
}


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


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


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


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


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


/* method: CreatePlatformCanvas */
ODWin32StandardCanvas*   CreatePlatformCanvas(Environment *ev,
		HDC hdc)
{
#ifdef SOMCHKEXCEPT
   ODWin32StandardCanvas* __somResult = 
      SOM_ResolveD(this,ODFacet,ODFacet,CreatePlatformCanvas)
	(this, ev,hdc);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODFacet,CreatePlatformCanvas)
	(this, ev,hdc);
#endif
}


/*
 * Reintroduce inherited methods
 */

/* method: InitObject */
void   InitObject(Environment *ev)
{
   SOM_ResolveD(this,ODFacet,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,ODFacet,ODObject,HasExtension)
	(this, ev,extensionName);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODObject,HasExtension)
	(this, ev,extensionName);
#endif
}


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


/* method: ReleaseExtension */
void   ReleaseExtension(Environment *ev,
		ODExtension* extension)
{
   SOM_ResolveD(this,ODFacet,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,ODFacet,ODObject,Purge)
	(this, ev,size);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODFacet,ODObject,Purge)
	(this, ev,size);
#endif
}


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


/* method: somGetClass */
M_ODFacet*  somGetClass()
{
   return SOM_ResolveD(this,ODFacet,SOMObject,somGetClass)
	(this);
}


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


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


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


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


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


/* va_list method: somDispatch */
/* the va_list invocation form */
boolean   ODFacet_somDispatch(somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODFacet,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,ODFacet,SOMObject,somDispatch)
	(this,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */
/* the va_list invocation form */
boolean   ODFacet_somClassDispatch(SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODFacet,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,ODFacet,SOMObject,somClassDispatch)
	(this,clsObj,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


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


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


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


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


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



};   /* ODFacet */



#endif       /* SOM_ODFacet_xh */
