
/*
 * This file was generated by the SOM Compiler.
 * FileName: wpclsmgr.h.
 * Generated using:
 *     SOM Precompiler spc: 1.22
 *     SOM Emitter emith: 1.11
 */

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


#ifndef wpclsmgr_h
#define wpclsmgr_h


#include <som.h>

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

#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

/*
 * New and Renew macros for WPClassManager
 */
#define _WPClassManagerNew() (_somNew(WPClassManagerClassData.classObject))
#define WPClassManagerNew() \
	( WPClassManagerClassData.classObject \
		? _WPClassManagerNew() \
		: ( WPClassManagerNewClass(WPClassManager_MajorVersion, WPClassManager_MinorVersion), _WPClassManagerNew() ) )
#define WPClassManagerRenew(buf) \
	( _somRenew(WPClassManagerClassData.classObject, 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: somUnregisterClass
 */
#define WPClassManager_somUnregisterClass(somSelf,classObj) \
	SOMClassMgr_somUnregisterClass(somSelf,classObj)

/*
 * 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 "----"
#define WPClassManager_wpGetTrueClassName(somSelf,Object) \
    (SOM_Resolve(somSelf, WPClassManager, wpGetTrueClassName) \
	(somSelf,Object))
#define _wpGetTrueClassName WPClassManager_wpGetTrueClassName

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMAny * SOMLINK WPClassManagerNewClass(integer4 scemajorVersion,
		integer4 sceminorVersion);
#pragma linkage(WPClassManagerNewClass, system)

/*
 * Declare the class data structure
 */
SOMEXTERN struct WPClassManagerClassDataStructure {
	SOMAny *classObject;
	somMToken wpQueryClassReplaceList;
	somMToken wpGetTrueClassName;
} WPClassManagerClassData;

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

#endif       /* wpclsmgr_h */
