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

#ifndef SOM_M_ComponentManager_xh
#define SOM_M_ComponentManager_xh

class M_ComponentManager;

#define M_ComponentManager_MajorVersion 1
#define M_ComponentManager_MinorVersion 0

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

/* C++ parent defs */
#ifndef SOM_SOMClass_xh
#include <somcls.xh>
#endif

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

/*
 * Start of user-defined types:
 */
class SOMClass;
class SOMObject;
class ODFrame;
class ODFacet;
class ODPlatformCanvas;
class Component;
class ComponentManager;
class M_ComponentManager;
typedef
unsigned long  OSType;
typedef
struct ComponentDescription {
OSType componentType;
OSType componentSubType;
OSType componentManufacturer;
ODULong componentVersion;
ODULong componentFlags;
ODULong componentFlagsMask;
} ComponentDescription;
#define CMGR_MAX_STRING 256 /* 256 */
typedef
char  CMGRString[256];
typedef
struct ComponentRegistryData {
OSType componentType;
OSType componentSubType;
OSType componentManufacturer;
ODULong componentFlags;
ODULong componentVersion;
CMGRString componentDLL;
CMGRString componentClassName;
CMGRString componentName;
CMGRString componentInfo;
} ComponentRegistryData;

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

/*
 * -- M_ComponentManager is a metaclass for ComponentManager. Make sure ComponentManager is known.
 */
class ComponentManager;


/* A procedure to create the M_ComponentManager Class */
SOMEXTERN
#if (defined(SOM_Module_compmgr_Source) || defined(M_ComponentManager_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_M_ComponentManager))
WIN32_DLLEXPORT
#else
WIN32_DLLIMPORT
#endif
SOMClass * SOMLINK M_ComponentManagerNewClass(
		integer4,
		integer4 );

/* The API to the M_ComponentManager class object, and the methods it introduces. */
SOMEXTERN struct M_ComponentManagerClassDataStructure {
	SOMClass *classObject;
	somMToken Reserved1;
}
#if !(defined(SOM_Module_compmgr_Source) || defined(M_ComponentManager_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_M_ComponentManager))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK M_ComponentManagerClassData;
#define _M_ComponentManager M_ComponentManagerClassData.classObject

/* The API to parentMtabs for M_ComponentManager, and the instance data it introduces. */
SOMEXTERN struct M_ComponentManagerCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
}
#if !(defined(SOM_Module_compmgr_Source) || defined(M_ComponentManager_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_M_ComponentManager))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK M_ComponentManagerCClassData;

/*
 * -- Typedefs for M_ComponentManager Method Procedures
 */
extern "C" {

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef long   SOMLINK somTP_M_ComponentManager__get_somDataAlignment(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager__get_somDataAlignment *somTD_M_ComponentManager__get_somDataAlignment;
typedef SOMClass_somOffsets   SOMLINK somTP_M_ComponentManager__get_somInstanceDataOffsets(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager__get_somInstanceDataOffsets *somTD_M_ComponentManager__get_somInstanceDataOffsets;
typedef SOMClass_SOMClassSequence   SOMLINK somTP_M_ComponentManager__get_somDirectInitClasses(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager__get_somDirectInitClasses *somTD_M_ComponentManager__get_somDirectInitClasses;
typedef void   SOMLINK somTP_M_ComponentManager__set_somDirectInitClasses(M_ComponentManager *somSelf,
		SOMClass_SOMClassSequence* somDirectInitClasses);
typedef somTP_M_ComponentManager__set_somDirectInitClasses *somTD_M_ComponentManager__set_somDirectInitClasses;
typedef ComponentManager*   SOMLINK somTP_M_ComponentManager_somNew(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somNew *somTD_M_ComponentManager_somNew;
typedef SOMObject*   SOMLINK somTP_M_ComponentManager_somNewNoInit(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somNewNoInit *somTD_M_ComponentManager_somNewNoInit;
typedef SOMObject*   SOMLINK somTP_M_ComponentManager_somRenew(M_ComponentManager *somSelf,
		void* obj);
typedef somTP_M_ComponentManager_somRenew *somTD_M_ComponentManager_somRenew;
typedef SOMObject*   SOMLINK somTP_M_ComponentManager_somRenewNoInit(M_ComponentManager *somSelf,
		void* obj);
typedef somTP_M_ComponentManager_somRenewNoInit *somTD_M_ComponentManager_somRenewNoInit;
typedef SOMObject*   SOMLINK somTP_M_ComponentManager_somRenewNoZero(M_ComponentManager *somSelf,
		void* obj);
typedef somTP_M_ComponentManager_somRenewNoZero *somTD_M_ComponentManager_somRenewNoZero;
typedef SOMObject*   SOMLINK somTP_M_ComponentManager_somRenewNoInitNoZero(M_ComponentManager *somSelf,
		void* obj);
typedef somTP_M_ComponentManager_somRenewNoInitNoZero *somTD_M_ComponentManager_somRenewNoInitNoZero;
typedef string   SOMLINK somTP_M_ComponentManager_somAllocate(M_ComponentManager *somSelf,
		long size);
typedef somTP_M_ComponentManager_somAllocate *somTD_M_ComponentManager_somAllocate;
typedef void   SOMLINK somTP_M_ComponentManager_somDeallocate(M_ComponentManager *somSelf,
		string memptr);
typedef somTP_M_ComponentManager_somDeallocate *somTD_M_ComponentManager_somDeallocate;
typedef somMethodProc*   SOMLINK somTP_M_ComponentManager__get_somClassAllocate(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager__get_somClassAllocate *somTD_M_ComponentManager__get_somClassAllocate;
typedef somMethodProc*   SOMLINK somTP_M_ComponentManager__get_somClassDeallocate(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager__get_somClassDeallocate *somTD_M_ComponentManager__get_somClassDeallocate;
typedef somBooleanVector   SOMLINK somTP_M_ComponentManager_somGetInstanceInitMask(M_ComponentManager *somSelf,
		somInitCtrl* ctrl);
typedef somTP_M_ComponentManager_somGetInstanceInitMask *somTD_M_ComponentManager_somGetInstanceInitMask;
typedef somBooleanVector   SOMLINK somTP_M_ComponentManager_somGetInstanceDestructionMask(M_ComponentManager *somSelf,
		somDestructCtrl* ctrl);
typedef somTP_M_ComponentManager_somGetInstanceDestructionMask *somTD_M_ComponentManager_somGetInstanceDestructionMask;
typedef somBooleanVector   SOMLINK somTP_M_ComponentManager_somGetInstanceAssignmentMask(M_ComponentManager *somSelf,
		somAssignCtrl* ctrl);
typedef somTP_M_ComponentManager_somGetInstanceAssignmentMask *somTD_M_ComponentManager_somGetInstanceAssignmentMask;
typedef void   SOMLINK somTP_M_ComponentManager_somInitClass(M_ComponentManager *somSelf,
		string className,
		SOMClass* parentClass,
		long dataSize,
		long maxStaticMethods,
		long majorVersion,
		long minorVersion);
typedef somTP_M_ComponentManager_somInitClass *somTD_M_ComponentManager_somInitClass;
typedef void   SOMLINK somTP_M_ComponentManager_somInitMIClass(M_ComponentManager *somSelf,
		long inherit_vars,
		string className,
		SOMClass_SOMClassSequence* parentClasses,
		long dataSize,
		long dataAlignment,
		long maxStaticMethods,
		long majorVersion,
		long minorVersion);
typedef somTP_M_ComponentManager_somInitMIClass *somTD_M_ComponentManager_somInitMIClass;
typedef somMToken   SOMLINK somTP_M_ComponentManager_somAddStaticMethod(M_ComponentManager *somSelf,
		somId methodId,
		somId methodDescriptor,
		somMethodPtr method,
		somMethodPtr redispatchStub,
		somMethodPtr applyStub);
typedef somTP_M_ComponentManager_somAddStaticMethod *somTD_M_ComponentManager_somAddStaticMethod;
typedef void   SOMLINK somTP_M_ComponentManager_somAddDynamicMethod(M_ComponentManager *somSelf,
		somId methodId,
		somId methodDescriptor,
		somMethodPtr method,
		somMethodPtr applyStub);
typedef somTP_M_ComponentManager_somAddDynamicMethod *somTD_M_ComponentManager_somAddDynamicMethod;
typedef void   SOMLINK somTP_M_ComponentManager_somOverrideSMethod(M_ComponentManager *somSelf,
		somId methodId,
		somMethodPtr method);
typedef somTP_M_ComponentManager_somOverrideSMethod *somTD_M_ComponentManager_somOverrideSMethod;
typedef void   SOMLINK somTP_M_ComponentManager_somClassReady(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somClassReady *somTD_M_ComponentManager_somClassReady;
typedef somClassDataStructure*   SOMLINK somTP_M_ComponentManager_somGetClassData(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetClassData *somTD_M_ComponentManager_somGetClassData;
typedef void   SOMLINK somTP_M_ComponentManager_somSetClassData(M_ComponentManager *somSelf,
		somClassDataStructure* cds);
typedef somTP_M_ComponentManager_somSetClassData *somTD_M_ComponentManager_somSetClassData;
typedef somMethodTab*   SOMLINK somTP_M_ComponentManager_somGetClassMtab(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetClassMtab *somTD_M_ComponentManager_somGetClassMtab;
typedef long   SOMLINK somTP_M_ComponentManager_somGetInstanceOffset(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetInstanceOffset *somTD_M_ComponentManager_somGetInstanceOffset;
typedef long   SOMLINK somTP_M_ComponentManager_somGetInstancePartSize(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetInstancePartSize *somTD_M_ComponentManager_somGetInstancePartSize;
typedef long   SOMLINK somTP_M_ComponentManager_somGetInstanceSize(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetInstanceSize *somTD_M_ComponentManager_somGetInstanceSize;
typedef somDToken   SOMLINK somTP_M_ComponentManager_somGetInstanceToken(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetInstanceToken *somTD_M_ComponentManager_somGetInstanceToken;
typedef somDToken   SOMLINK somTP_M_ComponentManager_somGetMemberToken(M_ComponentManager *somSelf,
		long memberOffset,
		somDToken instanceToken);
typedef somTP_M_ComponentManager_somGetMemberToken *somTD_M_ComponentManager_somGetMemberToken;
typedef boolean   SOMLINK somTP_M_ComponentManager_somGetMethodData(M_ComponentManager *somSelf,
		somId methodId,
		somMethodData* md);
typedef somTP_M_ComponentManager_somGetMethodData *somTD_M_ComponentManager_somGetMethodData;
typedef somMethodProc*   SOMLINK somTP_M_ComponentManager_somGetRdStub(M_ComponentManager *somSelf,
		somId methodId);
typedef somTP_M_ComponentManager_somGetRdStub *somTD_M_ComponentManager_somGetRdStub;
typedef somId   SOMLINK somTP_M_ComponentManager_somGetMethodDescriptor(M_ComponentManager *somSelf,
		somId methodId);
typedef somTP_M_ComponentManager_somGetMethodDescriptor *somTD_M_ComponentManager_somGetMethodDescriptor;
typedef long   SOMLINK somTP_M_ComponentManager_somGetMethodIndex(M_ComponentManager *somSelf,
		somId id);
typedef somTP_M_ComponentManager_somGetMethodIndex *somTD_M_ComponentManager_somGetMethodIndex;
typedef somMToken   SOMLINK somTP_M_ComponentManager_somGetMethodToken(M_ComponentManager *somSelf,
		somId methodId);
typedef somTP_M_ComponentManager_somGetMethodToken *somTD_M_ComponentManager_somGetMethodToken;
typedef string   SOMLINK somTP_M_ComponentManager_somGetName(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetName *somTD_M_ComponentManager_somGetName;
typedef boolean   SOMLINK somTP_M_ComponentManager_somGetNthMethodData(M_ComponentManager *somSelf,
		long n,
		somMethodData* md);
typedef somTP_M_ComponentManager_somGetNthMethodData *somTD_M_ComponentManager_somGetNthMethodData;
typedef somId   SOMLINK somTP_M_ComponentManager_somGetNthMethodInfo(M_ComponentManager *somSelf,
		long n,
		somId* descriptor);
typedef somTP_M_ComponentManager_somGetNthMethodInfo *somTD_M_ComponentManager_somGetNthMethodInfo;
typedef long   SOMLINK somTP_M_ComponentManager_somGetNumMethods(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetNumMethods *somTD_M_ComponentManager_somGetNumMethods;
typedef long   SOMLINK somTP_M_ComponentManager_somGetNumStaticMethods(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetNumStaticMethods *somTD_M_ComponentManager_somGetNumStaticMethods;
typedef SOMClass*   SOMLINK somTP_M_ComponentManager_somGetParent(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetParent *somTD_M_ComponentManager_somGetParent;
typedef SOMClass_SOMClassSequence   SOMLINK somTP_M_ComponentManager_somGetParents(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetParents *somTD_M_ComponentManager_somGetParents;
typedef somMethodTabs   SOMLINK somTP_M_ComponentManager_somGetPClsMtab(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetPClsMtab *somTD_M_ComponentManager_somGetPClsMtab;
typedef somMethodTabs   SOMLINK somTP_M_ComponentManager_somGetPClsMtabs(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetPClsMtabs *somTD_M_ComponentManager_somGetPClsMtabs;
typedef void   SOMLINK somTP_M_ComponentManager_somGetVersionNumbers(M_ComponentManager *somSelf,
		long* majorVersion,
		long* minorVersion);
typedef somTP_M_ComponentManager_somGetVersionNumbers *somTD_M_ComponentManager_somGetVersionNumbers;
typedef boolean   SOMLINK somTP_M_ComponentManager_somSetMethodDescriptor(M_ComponentManager *somSelf,
		somId methodId,
		somId descriptor);
typedef somTP_M_ComponentManager_somSetMethodDescriptor *somTD_M_ComponentManager_somSetMethodDescriptor;
typedef boolean   SOMLINK somTP_M_ComponentManager_somFindMethod(M_ComponentManager *somSelf,
		somId methodId,
		somMethodPtr* m);
typedef somTP_M_ComponentManager_somFindMethod *somTD_M_ComponentManager_somFindMethod;
typedef boolean   SOMLINK somTP_M_ComponentManager_somFindMethodOk(M_ComponentManager *somSelf,
		somId methodId,
		somMethodPtr* m);
typedef somTP_M_ComponentManager_somFindMethodOk *somTD_M_ComponentManager_somFindMethodOk;
typedef somMethodPtr   SOMLINK somTP_M_ComponentManager_somFindSMethod(M_ComponentManager *somSelf,
		somId methodId);
typedef somTP_M_ComponentManager_somFindSMethod *somTD_M_ComponentManager_somFindSMethod;
typedef somMethodPtr   SOMLINK somTP_M_ComponentManager_somFindSMethodOk(M_ComponentManager *somSelf,
		somId methodId);
typedef somTP_M_ComponentManager_somFindSMethodOk *somTD_M_ComponentManager_somFindSMethodOk;
typedef somMethodPtr   SOMLINK somTP_M_ComponentManager_somLookupMethod(M_ComponentManager *somSelf,
		somId methodId);
typedef somTP_M_ComponentManager_somLookupMethod *somTD_M_ComponentManager_somLookupMethod;
typedef boolean   SOMLINK somTP_M_ComponentManager_somCheckVersion(M_ComponentManager *somSelf,
		long majorVersion,
		long minorVersion);
typedef somTP_M_ComponentManager_somCheckVersion *somTD_M_ComponentManager_somCheckVersion;
typedef boolean   SOMLINK somTP_M_ComponentManager_somDescendedFrom(M_ComponentManager *somSelf,
		SOMClass* aClassObj);
typedef somTP_M_ComponentManager_somDescendedFrom *somTD_M_ComponentManager_somDescendedFrom;
typedef boolean   SOMLINK somTP_M_ComponentManager_somSupportsMethod(M_ComponentManager *somSelf,
		somId mId);
typedef somTP_M_ComponentManager_somSupportsMethod *somTD_M_ComponentManager_somSupportsMethod;
typedef somMethodPtr   SOMLINK somTP_M_ComponentManager_somDefinedMethod(M_ComponentManager *somSelf,
		somMToken method);
typedef somTP_M_ComponentManager_somDefinedMethod *somTD_M_ComponentManager_somDefinedMethod;
typedef void   SOMLINK somTP_M_ComponentManager_somOverrideMtab(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somOverrideMtab *somTD_M_ComponentManager_somOverrideMtab;
typedef void   SOMLINK somTP_M_ComponentManager_somDefaultInit(M_ComponentManager *somSelf,
		somInitCtrl* ctrl);
typedef somTP_M_ComponentManager_somDefaultInit *somTD_M_ComponentManager_somDefaultInit;
typedef void   SOMLINK somTP_M_ComponentManager_somDestruct(M_ComponentManager *somSelf,
		octet doFree,
		somDestructCtrl* ctrl);
typedef somTP_M_ComponentManager_somDestruct *somTD_M_ComponentManager_somDestruct;
typedef void   SOMLINK somTP_M_ComponentManager_somDefaultCopyInit(M_ComponentManager *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_M_ComponentManager_somDefaultCopyInit *somTD_M_ComponentManager_somDefaultCopyInit;
typedef M_ComponentManager*   SOMLINK somTP_M_ComponentManager_somDefaultAssign(M_ComponentManager *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_M_ComponentManager_somDefaultAssign *somTD_M_ComponentManager_somDefaultAssign;
typedef void   SOMLINK somTP_M_ComponentManager_somDefaultConstCopyInit(M_ComponentManager *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_M_ComponentManager_somDefaultConstCopyInit *somTD_M_ComponentManager_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_M_ComponentManager_somDefaultVCopyInit(M_ComponentManager *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_M_ComponentManager_somDefaultVCopyInit *somTD_M_ComponentManager_somDefaultVCopyInit;
typedef void   SOMLINK somTP_M_ComponentManager_somDefaultConstVCopyInit(M_ComponentManager *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_M_ComponentManager_somDefaultConstVCopyInit *somTD_M_ComponentManager_somDefaultConstVCopyInit;
typedef M_ComponentManager*   SOMLINK somTP_M_ComponentManager_somDefaultConstAssign(M_ComponentManager *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_M_ComponentManager_somDefaultConstAssign *somTD_M_ComponentManager_somDefaultConstAssign;
typedef M_ComponentManager*   SOMLINK somTP_M_ComponentManager_somDefaultVAssign(M_ComponentManager *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_M_ComponentManager_somDefaultVAssign *somTD_M_ComponentManager_somDefaultVAssign;
typedef M_ComponentManager*   SOMLINK somTP_M_ComponentManager_somDefaultConstVAssign(M_ComponentManager *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_M_ComponentManager_somDefaultConstVAssign *somTD_M_ComponentManager_somDefaultConstVAssign;
typedef void   SOMLINK somTP_M_ComponentManager_somInit(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somInit *somTD_M_ComponentManager_somInit;
typedef void   SOMLINK somTP_M_ComponentManager_somFree(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somFree *somTD_M_ComponentManager_somFree;
typedef void   SOMLINK somTP_M_ComponentManager_somUninit(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somUninit *somTD_M_ComponentManager_somUninit;
typedef SOMClass*   SOMLINK somTP_M_ComponentManager_somGetClass(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetClass *somTD_M_ComponentManager_somGetClass;
typedef string   SOMLINK somTP_M_ComponentManager_somGetClassName(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetClassName *somTD_M_ComponentManager_somGetClassName;
typedef long   SOMLINK somTP_M_ComponentManager_somGetSize(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somGetSize *somTD_M_ComponentManager_somGetSize;
typedef boolean   SOMLINK somTP_M_ComponentManager_somIsA(M_ComponentManager *somSelf,
		SOMClass* aClassObj);
typedef somTP_M_ComponentManager_somIsA *somTD_M_ComponentManager_somIsA;
typedef boolean   SOMLINK somTP_M_ComponentManager_somIsInstanceOf(M_ComponentManager *somSelf,
		SOMClass* aClassObj);
typedef somTP_M_ComponentManager_somIsInstanceOf *somTD_M_ComponentManager_somIsInstanceOf;
typedef boolean   SOMLINK somTP_M_ComponentManager_somRespondsTo(M_ComponentManager *somSelf,
		somId mId);
typedef somTP_M_ComponentManager_somRespondsTo *somTD_M_ComponentManager_somRespondsTo;
typedef boolean   SOMLINK somTP_M_ComponentManager_somDispatch(M_ComponentManager *somSelf,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_M_ComponentManager_somDispatch *somTD_M_ComponentManager_somDispatch;
typedef boolean   SOMLINK somTP_M_ComponentManager_somClassDispatch(M_ComponentManager *somSelf,
		SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_M_ComponentManager_somClassDispatch *somTD_M_ComponentManager_somClassDispatch;
typedef boolean   SOMLINK somTP_M_ComponentManager_somCastObj(M_ComponentManager *somSelf,
		SOMClass* cls);
typedef somTP_M_ComponentManager_somCastObj *somTD_M_ComponentManager_somCastObj;
typedef boolean   SOMLINK somTP_M_ComponentManager_somResetObj(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somResetObj *somTD_M_ComponentManager_somResetObj;
typedef SOMObject*   SOMLINK somTP_M_ComponentManager_somPrintSelf(M_ComponentManager *somSelf);
typedef somTP_M_ComponentManager_somPrintSelf *somTD_M_ComponentManager_somPrintSelf;
typedef void   SOMLINK somTP_M_ComponentManager_somDumpSelf(M_ComponentManager *somSelf,
		long level);
typedef somTP_M_ComponentManager_somDumpSelf *somTD_M_ComponentManager_somDumpSelf;
typedef void   SOMLINK somTP_M_ComponentManager_somDumpSelfInt(M_ComponentManager *somSelf,
		long level);
typedef somTP_M_ComponentManager_somDumpSelfInt *somTD_M_ComponentManager_somDumpSelfInt;
}

#endif /* M_ComponentManager_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 M_ComponentManager
 */
class M_ComponentManager : public SOMClass
{
public:

// M_ComponentManager::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 (!_M_ComponentManager) M_ComponentManagerNewClass(M_ComponentManager_MajorVersion,M_ComponentManager_MinorVersion);
   return (void*)
      SOM_Resolve(_M_ComponentManager,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_M_ComponentManager));
}

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

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

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

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


/*
 * Reintroduce inherited methods
 */

/* method: _get_somDataAlignment */
long   _get_somDataAlignment()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,_get_somDataAlignment)
	(this);
}


/* nonstatic method: _get_somInstanceDataOffsets */
SOMClass_somOffsets   _get_somInstanceDataOffsets()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,_get_somInstanceDataOffsets)
	(this);
}


/* nonstatic method: _get_somDirectInitClasses */
SOMClass_SOMClassSequence   _get_somDirectInitClasses()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,_get_somDirectInitClasses)
	(this);
}


/* nonstatic method: _set_somDirectInitClasses */
void   _set_somDirectInitClasses(SOMClass_SOMClassSequence* somDirectInitClasses)
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,_set_somDirectInitClasses)
	(this,somDirectInitClasses);
}


/* method: somNew */
ComponentManager*  somNew()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somNew)
	(this);
}


/* method: somNewNoInit */
SOMObject*   somNewNoInit()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somNewNoInit)
	(this);
}


/* method: somRenew */
SOMObject*   somRenew(void* obj)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somRenew)
	(this,obj);
}


/* method: somRenewNoInit */
SOMObject*   somRenewNoInit(void* obj)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somRenewNoInit)
	(this,obj);
}


/* method: somRenewNoZero */
SOMObject*   somRenewNoZero(void* obj)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somRenewNoZero)
	(this,obj);
}


/* method: somRenewNoInitNoZero */
SOMObject*   somRenewNoInitNoZero(void* obj)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somRenewNoInitNoZero)
	(this,obj);
}


/* nonstatic method: somAllocate */
string   somAllocate(long size)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somAllocate)
	(this,size);
}


/* nonstatic method: somDeallocate */
void   somDeallocate(string memptr)
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somDeallocate)
	(this,memptr);
}


/* nonstatic method: _get_somClassAllocate */
somMethodProc*   _get_somClassAllocate()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,_get_somClassAllocate)
	(this);
}


/* nonstatic method: _get_somClassDeallocate */
somMethodProc*   _get_somClassDeallocate()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,_get_somClassDeallocate)
	(this);
}


/* method: somGetInstanceInitMask */
somBooleanVector   somGetInstanceInitMask(somInitCtrl* ctrl)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetInstanceInitMask)
	(this,ctrl);
}


/* method: somGetInstanceDestructionMask */
somBooleanVector   somGetInstanceDestructionMask(somDestructCtrl* ctrl)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetInstanceDestructionMask)
	(this,ctrl);
}


/* method: somGetInstanceAssignmentMask */
somBooleanVector   somGetInstanceAssignmentMask(somAssignCtrl* ctrl)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetInstanceAssignmentMask)
	(this,ctrl);
}


/* method: somInitClass */
void   somInitClass(string className,
		SOMClass* parentClass,
		long dataSize,
		long maxStaticMethods,
		long majorVersion,
		long minorVersion)
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somInitClass)
	(this,className,parentClass,dataSize,maxStaticMethods,majorVersion,minorVersion);
}


/* method: somInitMIClass */
void   somInitMIClass(long inherit_vars,
		string className,
		SOMClass_SOMClassSequence* parentClasses,
		long dataSize,
		long dataAlignment,
		long maxStaticMethods,
		long majorVersion,
		long minorVersion)
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somInitMIClass)
	(this,inherit_vars,className,parentClasses,dataSize,dataAlignment,maxStaticMethods,majorVersion,minorVersion);
}


/* method: somAddStaticMethod */
somMToken   somAddStaticMethod(somId methodId,
		somId methodDescriptor,
		somMethodPtr method,
		somMethodPtr redispatchStub,
		somMethodPtr applyStub)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somAddStaticMethod)
	(this,methodId,methodDescriptor,method,redispatchStub,applyStub);
}


/* method: somAddDynamicMethod */
void   somAddDynamicMethod(somId methodId,
		somId methodDescriptor,
		somMethodPtr method,
		somMethodPtr applyStub)
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somAddDynamicMethod)
	(this,methodId,methodDescriptor,method,applyStub);
}


/* method: somOverrideSMethod */
void   somOverrideSMethod(somId methodId,
		somMethodPtr method)
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somOverrideSMethod)
	(this,methodId,method);
}


/* method: somClassReady */
void   somClassReady()
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somClassReady)
	(this);
}


/* method: somGetClassData */
somClassDataStructure*   somGetClassData()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetClassData)
	(this);
}


/* method: somSetClassData */
void   somSetClassData(somClassDataStructure* cds)
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somSetClassData)
	(this,cds);
}


/* method: somGetClassMtab */
somMethodTab*   somGetClassMtab()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetClassMtab)
	(this);
}


/* method: somGetInstanceOffset */
long   somGetInstanceOffset()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetInstanceOffset)
	(this);
}


/* method: somGetInstancePartSize */
long   somGetInstancePartSize()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetInstancePartSize)
	(this);
}


/* method: somGetInstanceSize */
long   somGetInstanceSize()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetInstanceSize)
	(this);
}


/* method: somGetInstanceToken */
somDToken   somGetInstanceToken()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetInstanceToken)
	(this);
}


/* method: somGetMemberToken */
somDToken   somGetMemberToken(long memberOffset,
		somDToken instanceToken)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetMemberToken)
	(this,memberOffset,instanceToken);
}


/* method: somGetMethodData */
boolean   somGetMethodData(somId methodId,
		somMethodData* md)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetMethodData)
	(this,methodId,md);
}


/* method: somGetRdStub */
somMethodProc*   somGetRdStub(somId methodId)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetRdStub)
	(this,methodId);
}


/* method: somGetMethodDescriptor */
somId   somGetMethodDescriptor(somId methodId)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetMethodDescriptor)
	(this,methodId);
}


/* method: somGetMethodIndex */
long   somGetMethodIndex(somId id)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetMethodIndex)
	(this,id);
}


/* method: somGetMethodToken */
somMToken   somGetMethodToken(somId methodId)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetMethodToken)
	(this,methodId);
}


/* method: somGetName */
string   somGetName()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetName)
	(this);
}


/* method: somGetNthMethodData */
boolean   somGetNthMethodData(long n,
		somMethodData* md)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetNthMethodData)
	(this,n,md);
}


/* method: somGetNthMethodInfo */
somId   somGetNthMethodInfo(long n,
		somId* descriptor)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetNthMethodInfo)
	(this,n,descriptor);
}


/* method: somGetNumMethods */
long   somGetNumMethods()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetNumMethods)
	(this);
}


/* method: somGetNumStaticMethods */
long   somGetNumStaticMethods()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetNumStaticMethods)
	(this);
}


/* method: somGetParent */
SOMClass*   somGetParent()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetParent)
	(this);
}


/* method: somGetParents */
SOMClass_SOMClassSequence   somGetParents()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetParents)
	(this);
}


/* method: somGetPClsMtab */
somMethodTabs   somGetPClsMtab()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetPClsMtab)
	(this);
}


/* method: somGetPClsMtabs */
somMethodTabs   somGetPClsMtabs()
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetPClsMtabs)
	(this);
}


/* method: somGetVersionNumbers */
void   somGetVersionNumbers(long* majorVersion,
		long* minorVersion)
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somGetVersionNumbers)
	(this,majorVersion,minorVersion);
}


/* method: somSetMethodDescriptor */
boolean   somSetMethodDescriptor(somId methodId,
		somId descriptor)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somSetMethodDescriptor)
	(this,methodId,descriptor);
}


/* method: somFindMethod */
boolean   somFindMethod(somId methodId,
		somMethodPtr* m)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somFindMethod)
	(this,methodId,m);
}


/* method: somFindMethodOk */
boolean   somFindMethodOk(somId methodId,
		somMethodPtr* m)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somFindMethodOk)
	(this,methodId,m);
}


/* method: somFindSMethod */
somMethodPtr   somFindSMethod(somId methodId)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somFindSMethod)
	(this,methodId);
}


/* method: somFindSMethodOk */
somMethodPtr   somFindSMethodOk(somId methodId)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somFindSMethodOk)
	(this,methodId);
}


/* method: somLookupMethod */
somMethodPtr   somLookupMethod(somId methodId)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somLookupMethod)
	(this,methodId);
}


/* method: somCheckVersion */
boolean   somCheckVersion(long majorVersion,
		long minorVersion)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somCheckVersion)
	(this,majorVersion,minorVersion);
}


/* method: somDescendedFrom */
boolean   somDescendedFrom(SOMClass* aClassObj)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somDescendedFrom)
	(this,aClassObj);
}


/* method: somSupportsMethod */
boolean   somSupportsMethod(somId mId)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somSupportsMethod)
	(this,mId);
}


/* method: somDefinedMethod */
somMethodPtr   somDefinedMethod(somMToken method)
{
   return SOM_ResolveD(this,M_ComponentManager,SOMClass,somDefinedMethod)
	(this,method);
}


/* method: somOverrideMtab */
void   somOverrideMtab()
{
   SOM_ResolveD(this,M_ComponentManager,SOMClass,somOverrideMtab)
	(this);
}


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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



};   /* M_ComponentManager */



#endif       /* SOM_M_ComponentManager_xh */

#ifndef SOM_ComponentManager_xh
#define SOM_ComponentManager_xh

class ComponentManager;

#define ComponentManager_MajorVersion 1
#define ComponentManager_MinorVersion 0

/*
 * Passthru lines: File: "C.xh", "before"
 */
// macro UlongToStr(L,S) - use to convert the unsigned long 
//    value L to a string in the array S.  S must be at least
//    five characters wide
#define UlongToStr(L,S)  S[0] = (char) ((L >> 24) & 0xff) ; \ 
                         S[1] = (char) ((L >> 16) & 0xff) ; \ 
                         S[2] = (char) ((L >>  8) & 0xff) ; \ 
                         S[3] = (char) ((L >>  0) & 0xff) ; \ 
                         S[4] = '\0'  
// macro StrToUlong(S,L) - use to convert the string at S into
//    an unsigned long (32 bit) value.  S must be at least
//    four characters wide
#define StrToUlong(S,L) L = ( (unsigned int) S[0] << 24 ) | \ 
                            ( (unsigned int) S[1] << 16 ) | \ 
                            ( (unsigned int) S[2] <<  8 ) | \ 
                            ( (unsigned int) S[3] <<  0 ) 

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

/* C++ parent defs */
#ifndef SOM_SOMObject_xh
#include <somobj.xh>
#endif

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

/*
 * Start of user-defined types:
 */

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

/* A procedure to create the ComponentManager Class */
class M_ComponentManager;
SOMEXTERN
#if (defined(SOM_Module_compmgr_Source) || defined(ComponentManager_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ComponentManager))
WIN32_DLLEXPORT
#else
WIN32_DLLIMPORT
#endif
M_ComponentManager * SOMLINK ComponentManagerNewClass(
		integer4,
		integer4 );

/* The API to the ComponentManager class object, and the methods it introduces. */
SOMEXTERN struct ComponentManagerClassDataStructure {
	M_ComponentManager *classObject;
	somMToken CountComponents;
	somMToken FindNextComponent;
	somMToken GetComponentInfo;
	somMToken GetComponentRefcon;
	somMToken SetComponentRefcon;
	somMToken OpenComponent;
	somMToken OpenDefaultComponent;
	somMToken CloseComponent;
	somMToken InstallComponent;
	somMToken UninstallComponent;
}
#if !(defined(SOM_Module_compmgr_Source) || defined(ComponentManager_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ComponentManager))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ComponentManagerClassData;
#define _ComponentManager ComponentManagerClassData.classObject

/* The API to parentMtabs for ComponentManager, and the instance data it introduces. */
SOMEXTERN struct ComponentManagerCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
}
#if !(defined(SOM_Module_compmgr_Source) || defined(ComponentManager_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ComponentManager))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ComponentManagerCClassData;

/*
 * -- Typedefs for ComponentManager Method Procedures
 */
extern "C" {
typedef ODULong   SOMLINK somTP_ComponentManager_CountComponents(ComponentManager *somSelf, Environment *ev,
		ComponentDescription* plooking);
typedef somTP_ComponentManager_CountComponents *somTD_ComponentManager_CountComponents;
typedef OSErr   SOMLINK somTP_ComponentManager_FindNextComponent(ComponentManager *somSelf, Environment *ev,
		ComponentDescription* plastFound,
		ComponentDescription* plooking,
		ComponentDescription* pfound);
typedef somTP_ComponentManager_FindNextComponent *somTD_ComponentManager_FindNextComponent;
typedef OSErr   SOMLINK somTP_ComponentManager_GetComponentInfo(ComponentManager *somSelf, Environment *ev,
		ComponentDescription* ptheComponent,
		char* pcomponentClassName,
		char* pcomponentDLL,
		char* pcomponentName,
		char* pcomponentInfo);
typedef somTP_ComponentManager_GetComponentInfo *somTD_ComponentManager_GetComponentInfo;
typedef ODSLong   SOMLINK somTP_ComponentManager_GetComponentRefcon(ComponentManager *somSelf, Environment *ev,
		ComponentDescription* ptheComponent);
typedef somTP_ComponentManager_GetComponentRefcon *somTD_ComponentManager_GetComponentRefcon;
typedef void   SOMLINK somTP_ComponentManager_SetComponentRefcon(ComponentManager *somSelf, Environment *ev,
		ComponentDescription* ptheComponent,
		ODSLong Refcon);
typedef somTP_ComponentManager_SetComponentRefcon *somTD_ComponentManager_SetComponentRefcon;
typedef Component*   SOMLINK somTP_ComponentManager_OpenComponent(ComponentManager *somSelf, Environment *ev,
		ComponentDescription* ptheComponent);
typedef somTP_ComponentManager_OpenComponent *somTD_ComponentManager_OpenComponent;
typedef Component*   SOMLINK somTP_ComponentManager_OpenDefaultComponent(ComponentManager *somSelf, Environment *ev,
		OSType componentType,
		OSType componentSubType);
typedef somTP_ComponentManager_OpenDefaultComponent *somTD_ComponentManager_OpenDefaultComponent;
typedef OSErr   SOMLINK somTP_ComponentManager_CloseComponent(ComponentManager *somSelf, Environment *ev,
		Component* theComponentInstance);
typedef somTP_ComponentManager_CloseComponent *somTD_ComponentManager_CloseComponent;
typedef OSErr   SOMLINK somTP_ComponentManager_InstallComponent(ComponentManager *somSelf, Environment *ev,
		ComponentRegistryData* ptheData);
typedef somTP_ComponentManager_InstallComponent *somTD_ComponentManager_InstallComponent;
typedef OSErr   SOMLINK somTP_ComponentManager_UninstallComponent(ComponentManager *somSelf, Environment *ev,
		OSType componentType,
		OSType componentSubType);
typedef somTP_ComponentManager_UninstallComponent *somTD_ComponentManager_UninstallComponent;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ComponentManager_somDefaultInit(ComponentManager *somSelf,
		somInitCtrl* ctrl);
typedef somTP_ComponentManager_somDefaultInit *somTD_ComponentManager_somDefaultInit;
typedef void   SOMLINK somTP_ComponentManager_somDestruct(ComponentManager *somSelf,
		octet doFree,
		somDestructCtrl* ctrl);
typedef somTP_ComponentManager_somDestruct *somTD_ComponentManager_somDestruct;
typedef void   SOMLINK somTP_ComponentManager_somDefaultCopyInit(ComponentManager *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ComponentManager_somDefaultCopyInit *somTD_ComponentManager_somDefaultCopyInit;
typedef ComponentManager*   SOMLINK somTP_ComponentManager_somDefaultAssign(ComponentManager *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ComponentManager_somDefaultAssign *somTD_ComponentManager_somDefaultAssign;
typedef void   SOMLINK somTP_ComponentManager_somDefaultConstCopyInit(ComponentManager *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ComponentManager_somDefaultConstCopyInit *somTD_ComponentManager_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ComponentManager_somDefaultVCopyInit(ComponentManager *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ComponentManager_somDefaultVCopyInit *somTD_ComponentManager_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ComponentManager_somDefaultConstVCopyInit(ComponentManager *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ComponentManager_somDefaultConstVCopyInit *somTD_ComponentManager_somDefaultConstVCopyInit;
typedef ComponentManager*   SOMLINK somTP_ComponentManager_somDefaultConstAssign(ComponentManager *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ComponentManager_somDefaultConstAssign *somTD_ComponentManager_somDefaultConstAssign;
typedef ComponentManager*   SOMLINK somTP_ComponentManager_somDefaultVAssign(ComponentManager *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ComponentManager_somDefaultVAssign *somTD_ComponentManager_somDefaultVAssign;
typedef ComponentManager*   SOMLINK somTP_ComponentManager_somDefaultConstVAssign(ComponentManager *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ComponentManager_somDefaultConstVAssign *somTD_ComponentManager_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ComponentManager_somInit(ComponentManager *somSelf);
typedef somTP_ComponentManager_somInit *somTD_ComponentManager_somInit;
typedef void   SOMLINK somTP_ComponentManager_somFree(ComponentManager *somSelf);
typedef somTP_ComponentManager_somFree *somTD_ComponentManager_somFree;
typedef void   SOMLINK somTP_ComponentManager_somUninit(ComponentManager *somSelf);
typedef somTP_ComponentManager_somUninit *somTD_ComponentManager_somUninit;
typedef M_ComponentManager*   SOMLINK somTP_ComponentManager_somGetClass(ComponentManager *somSelf);
typedef somTP_ComponentManager_somGetClass *somTD_ComponentManager_somGetClass;
typedef string   SOMLINK somTP_ComponentManager_somGetClassName(ComponentManager *somSelf);
typedef somTP_ComponentManager_somGetClassName *somTD_ComponentManager_somGetClassName;
typedef long   SOMLINK somTP_ComponentManager_somGetSize(ComponentManager *somSelf);
typedef somTP_ComponentManager_somGetSize *somTD_ComponentManager_somGetSize;
typedef boolean   SOMLINK somTP_ComponentManager_somIsA(ComponentManager *somSelf,
		SOMClass* aClassObj);
typedef somTP_ComponentManager_somIsA *somTD_ComponentManager_somIsA;
typedef boolean   SOMLINK somTP_ComponentManager_somIsInstanceOf(ComponentManager *somSelf,
		SOMClass* aClassObj);
typedef somTP_ComponentManager_somIsInstanceOf *somTD_ComponentManager_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ComponentManager_somRespondsTo(ComponentManager *somSelf,
		somId mId);
typedef somTP_ComponentManager_somRespondsTo *somTD_ComponentManager_somRespondsTo;
typedef boolean   SOMLINK somTP_ComponentManager_somDispatch(ComponentManager *somSelf,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ComponentManager_somDispatch *somTD_ComponentManager_somDispatch;
typedef boolean   SOMLINK somTP_ComponentManager_somClassDispatch(ComponentManager *somSelf,
		SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ComponentManager_somClassDispatch *somTD_ComponentManager_somClassDispatch;
typedef boolean   SOMLINK somTP_ComponentManager_somCastObj(ComponentManager *somSelf,
		SOMClass* cls);
typedef somTP_ComponentManager_somCastObj *somTD_ComponentManager_somCastObj;
typedef boolean   SOMLINK somTP_ComponentManager_somResetObj(ComponentManager *somSelf);
typedef somTP_ComponentManager_somResetObj *somTD_ComponentManager_somResetObj;
typedef SOMObject*   SOMLINK somTP_ComponentManager_somPrintSelf(ComponentManager *somSelf);
typedef somTP_ComponentManager_somPrintSelf *somTD_ComponentManager_somPrintSelf;
typedef void   SOMLINK somTP_ComponentManager_somDumpSelf(ComponentManager *somSelf,
		long level);
typedef somTP_ComponentManager_somDumpSelf *somTD_ComponentManager_somDumpSelf;
typedef void   SOMLINK somTP_ComponentManager_somDumpSelfInt(ComponentManager *somSelf,
		long level);
typedef somTP_ComponentManager_somDumpSelfInt *somTD_ComponentManager_somDumpSelfInt;
}

#endif /* ComponentManager_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 ComponentManager
 */
class ComponentManager : public SOMObject
{
public:

// ComponentManager::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 (!_ComponentManager) ComponentManagerNewClass(ComponentManager_MajorVersion,ComponentManager_MinorVersion);
   return (void*)
      SOM_Resolve(_ComponentManager,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_ComponentManager));
}

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

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

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

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


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


/* method: FindNextComponent */
OSErr   FindNextComponent(Environment *ev,
		ComponentDescription* plastFound,
		ComponentDescription* plooking,
		ComponentDescription* pfound)
{
#ifdef SOMCHKEXCEPT
   OSErr __somResult = 
      SOM_ResolveD(this,ComponentManager,ComponentManager,FindNextComponent)
	(this, ev,plastFound,plooking,pfound);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ComponentManager,ComponentManager,FindNextComponent)
	(this, ev,plastFound,plooking,pfound);
#endif
}


/* method: GetComponentInfo */
OSErr   GetComponentInfo(Environment *ev,
		ComponentDescription* ptheComponent,
		char* pcomponentClassName,
		char* pcomponentDLL,
		char* pcomponentName,
		char* pcomponentInfo)
{
#ifdef SOMCHKEXCEPT
   OSErr __somResult = 
      SOM_ResolveD(this,ComponentManager,ComponentManager,GetComponentInfo)
	(this, ev,ptheComponent,pcomponentClassName,pcomponentDLL,pcomponentName,pcomponentInfo);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ComponentManager,ComponentManager,GetComponentInfo)
	(this, ev,ptheComponent,pcomponentClassName,pcomponentDLL,pcomponentName,pcomponentInfo);
#endif
}


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


/* method: SetComponentRefcon */
void   SetComponentRefcon(Environment *ev,
		ComponentDescription* ptheComponent,
		ODSLong Refcon)
{
   SOM_ResolveD(this,ComponentManager,ComponentManager,SetComponentRefcon)
	(this, ev,ptheComponent,Refcon);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


/* method: OpenDefaultComponent */
Component*   OpenDefaultComponent(Environment *ev,
		OSType componentType,
		OSType componentSubType)
{
#ifdef SOMCHKEXCEPT
   Component* __somResult = 
      SOM_ResolveD(this,ComponentManager,ComponentManager,OpenDefaultComponent)
	(this, ev,componentType,componentSubType);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ComponentManager,ComponentManager,OpenDefaultComponent)
	(this, ev,componentType,componentSubType);
#endif
}


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


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


/* method: UninstallComponent */
OSErr   UninstallComponent(Environment *ev,
		OSType componentType,
		OSType componentSubType)
{
#ifdef SOMCHKEXCEPT
   OSErr __somResult = 
      SOM_ResolveD(this,ComponentManager,ComponentManager,UninstallComponent)
	(this, ev,componentType,componentSubType);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ComponentManager,ComponentManager,UninstallComponent)
	(this, ev,componentType,componentSubType);
#endif
}


/*
 * Reintroduce inherited methods
 */

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


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


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


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


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


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


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


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


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


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


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


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


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


/* method: somGetClass */
M_ComponentManager*  somGetClass()
{
   return SOM_ResolveD(this,ComponentManager,SOMObject,somGetClass)
	(this);
}


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


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


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


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


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


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


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


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


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


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


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


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



};   /* ComponentManager */



#endif       /* SOM_ComponentManager_xh */
