
/*
 * This file was generated by the SOM Compiler.
 * FileName: E:\cwpsh\rel\os2c\include\base\os2\wpclsmgr.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.14
 *     SOM Emitter emith: 2.43
 */

/*
 *   Module Header
 * 
 *   Module Name: WPCLSMGR
 * 
 *   OS/2 Presentation Manager Workplace class definitions
 * 
 *   Copyright (c) International Business Machines Corporation 1991, 1992
 * 
 */


#ifndef SOM_WPClassManager_h
#define SOM_WPClassManager_h


#include <som.h>

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

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

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef Repository
    #define Repository SOMObject
#endif /* Repository */
#ifndef WPObject
    #define WPObject SOMObject
#endif /* WPObject */

/*
 * End of bindings for IDL types.
 */

#define WPClassManager_MajorVersion 1
#define WPClassManager_MinorVersion 2

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define WPClassManagerNewClass WPClassManagerc
#pragma linkage(WPClassManagerc, system)
#define WPClassManagerClassData WPClassManagerd
#define WPClassManagerCClassData WPClassManagerx
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define WPClassManager_classObj WPClassManagerClassData.classObject
#define _WPClassManager WPClassManager_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK WPClassManagerNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);
#pragma linkage(WPClassManagerNewClass, system)

/*
 * Declare the class data structure
 */
SOMEXTERN struct WPClassManagerClassDataStructure {
	SOMClass *classObject;
	somMToken wpClassManagerPrivate1;
	somMToken wpGetTrueClassName;
	somMToken wpReplacementIsInEffect;
	somMToken wpModuleForClass;
} SOMDLINK WPClassManagerClassData;

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct WPClassManagerCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOMDLINK WPClassManagerCClassData;

/*
 * New and Renew macros for WPClassManager
 */
#define WPClassManagerNew() \
   ( _WPClassManager ? \
	_somNew(_WPClassManager) \
	: ( WPClassManagerNewClass(\
		WPClassManager_MajorVersion, \
		WPClassManager_MinorVersion),\
	   _somNew(_WPClassManager)))
#define WPClassManagerRenew(buf) \
   ( _WPClassManager ? \
	_somRenew(_WPClassManager, buf) \
	: ( WPClassManagerNewClass(\
		WPClassManager_MajorVersion, \
		WPClassManager_MinorVersion),\
	   _somRenew(_WPClassManager, buf)))

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

/*
 * Override method: somFindClass
 */
#define WPClassManager_somFindClass(somSelf,classId,majorVersion,minorVersion) \
	SOMClassMgr_somFindClass(somSelf,classId,majorVersion,minorVersion)

/*
 * Override method: somFindClsInFile
 */
#define WPClassManager_somFindClsInFile(somSelf,classId,majorVersion,minorVersion,file) \
	SOMClassMgr_somFindClsInFile(somSelf,classId,majorVersion,minorVersion,file)

/*
 * Override method: somLocateClassFile
 */
#define WPClassManager_somLocateClassFile(somSelf,classId,majorVersion,minorVersion) \
	SOMClassMgr_somLocateClassFile(somSelf,classId,majorVersion,minorVersion)

/*
 * Override method: somMergeInto
 */
#define WPClassManager_somMergeInto(somSelf,targetObj) \
	SOMClassMgr_somMergeInto(somSelf,targetObj)

/*
 * Override method: somRegisterClass
 */
#define WPClassManager_somRegisterClass(somSelf,classObj) \
	SOMClassMgr_somRegisterClass(somSelf,classObj)

/*
 * Override method: somUnregisterClass
 */
#define WPClassManager_somUnregisterClass(somSelf,classObj) \
	SOMClassMgr_somUnregisterClass(somSelf,classObj)

/*
 * Override method: somDefaultInit
 */
#define WPClassManager_somDefaultInit(somSelf,ctrl) \
	SOMObject_somDefaultInit(somSelf,ctrl)

/*
 * Override method: somDestruct
 */
#define WPClassManager_somDestruct(somSelf,doFree,ctrl) \
	SOMObject_somDestruct(somSelf,doFree,ctrl)

/*
 * New Method: wpReplacementIsInEffect
 */
typedef BOOL   SOMLINK somTP_WPClassManager_wpReplacementIsInEffect(WPClassManager *somSelf, 
		PSZ pszOldClass, 
		PSZ pszNewClass);
#pragma linkage(somTP_WPClassManager_wpReplacementIsInEffect, system)
typedef somTP_WPClassManager_wpReplacementIsInEffect *somTD_WPClassManager_wpReplacementIsInEffect;
#define somMD_WPClassManager_wpReplacementIsInEffect "::WPClassManager::wpReplacementIsInEffect"
#define WPClassManager_wpReplacementIsInEffect(somSelf,pszOldClass,pszNewClass) \
    (SOM_Resolve(somSelf, WPClassManager, wpReplacementIsInEffect) \
	(somSelf,pszOldClass,pszNewClass))
#ifndef SOMGD_wpReplacementIsInEffect
    #if (defined(_wpReplacementIsInEffect) || defined(__wpReplacementIsInEffect))
        #undef _wpReplacementIsInEffect
        #undef __wpReplacementIsInEffect
        #define SOMGD_wpReplacementIsInEffect 1
    #else
        #define _wpReplacementIsInEffect WPClassManager_wpReplacementIsInEffect
    #endif /* _wpReplacementIsInEffect */
#endif /* SOMGD_wpReplacementIsInEffect */

/*
 * New Method: wpModuleForClass
 */
typedef PSZ   SOMLINK somTP_WPClassManager_wpModuleForClass(WPClassManager *somSelf, 
		PSZ pszClass);
#pragma linkage(somTP_WPClassManager_wpModuleForClass, system)
typedef somTP_WPClassManager_wpModuleForClass *somTD_WPClassManager_wpModuleForClass;
#define somMD_WPClassManager_wpModuleForClass "::WPClassManager::wpModuleForClass"
#define WPClassManager_wpModuleForClass(somSelf,pszClass) \
    (SOM_Resolve(somSelf, WPClassManager, wpModuleForClass) \
	(somSelf,pszClass))
#ifndef SOMGD_wpModuleForClass
    #if (defined(_wpModuleForClass) || defined(__wpModuleForClass))
        #undef _wpModuleForClass
        #undef __wpModuleForClass
        #define SOMGD_wpModuleForClass 1
    #else
        #define _wpModuleForClass WPClassManager_wpModuleForClass
    #endif /* _wpModuleForClass */
#endif /* SOMGD_wpModuleForClass */

/*
 * New Method: wpGetTrueClassName
 */
typedef PSZ   SOMLINK somTP_WPClassManager_wpGetTrueClassName(WPClassManager *somSelf, 
		WPObject* Object);
#pragma linkage(somTP_WPClassManager_wpGetTrueClassName, system)
typedef somTP_WPClassManager_wpGetTrueClassName *somTD_WPClassManager_wpGetTrueClassName;
#define somMD_WPClassManager_wpGetTrueClassName "::WPClassManager::wpGetTrueClassName"
#define WPClassManager_wpGetTrueClassName(somSelf,Object) \
    (SOM_Resolve(somSelf, WPClassManager, wpGetTrueClassName) \
	(somSelf,Object))
#ifndef SOMGD_wpGetTrueClassName
    #if (defined(_wpGetTrueClassName) || defined(__wpGetTrueClassName))
        #undef _wpGetTrueClassName
        #undef __wpGetTrueClassName
        #define SOMGD_wpGetTrueClassName 1
    #else
        #define _wpGetTrueClassName WPClassManager_wpGetTrueClassName
    #endif /* _wpGetTrueClassName */
#endif /* SOMGD_wpGetTrueClassName */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define WPClassManager_somLoadClassFile SOMClassMgr_somLoadClassFile
#define WPClassManager_somRegisterClassLibrary SOMClassMgr_somRegisterClassLibrary
#define WPClassManager_somUnloadClassFile SOMClassMgr_somUnloadClassFile
#define WPClassManager_somBeginPersistentClasses SOMClassMgr_somBeginPersistentClasses
#define WPClassManager_somEndPersistentClasses SOMClassMgr_somEndPersistentClasses
#define WPClassManager_somJoinAffinityGroup SOMClassMgr_somJoinAffinityGroup
#define WPClassManager_somGetInitFunction SOMClassMgr_somGetInitFunction
#define WPClassManager__get_somInterfaceRepository SOMClassMgr__get_somInterfaceRepository
#define WPClassManager__set_somInterfaceRepository SOMClassMgr__set_somInterfaceRepository
#define WPClassManager__get_somRegisteredClasses SOMClassMgr__get_somRegisteredClasses
#define WPClassManager_somGetRelatedClasses SOMClassMgr_somGetRelatedClasses
#define WPClassManager_somClassFromId SOMClassMgr_somClassFromId
#define WPClassManager_somSubstituteClass SOMClassMgr_somSubstituteClass
#define WPClassManager_somUninit SOMObject_somUninit
#define WPClassManager_somDumpSelfInt SOMObject_somDumpSelfInt
#define WPClassManager_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define WPClassManager_somDefaultAssign SOMObject_somDefaultAssign
#define WPClassManager_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define WPClassManager_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define WPClassManager_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define WPClassManager_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define WPClassManager_somDefaultVAssign SOMObject_somDefaultVAssign
#define WPClassManager_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define WPClassManager_somFree SOMObject_somFree
#define WPClassManager_somGetClass SOMObject_somGetClass
#define WPClassManager_somGetClassName SOMObject_somGetClassName
#define WPClassManager_somGetSize SOMObject_somGetSize
#define WPClassManager_somIsA SOMObject_somIsA
#define WPClassManager_somIsInstanceOf SOMObject_somIsInstanceOf
#define WPClassManager_somRespondsTo SOMObject_somRespondsTo
#define WPClassManager_somDispatch SOMObject_somDispatch
#define WPClassManager_somClassDispatch SOMObject_somClassDispatch
#define WPClassManager_somCastObj SOMObject_somCastObj
#define WPClassManager_somResetObj SOMObject_somResetObj
#define WPClassManager_somDispatchV SOMObject_somDispatchV
#define WPClassManager_somDispatchL SOMObject_somDispatchL
#define WPClassManager_somDispatchA SOMObject_somDispatchA
#define WPClassManager_somDispatchD SOMObject_somDispatchD
#define WPClassManager_somPrintSelf SOMObject_somPrintSelf
#define WPClassManager_somDumpSelf SOMObject_somDumpSelf
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_WPClassManager_h */
