home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / header45.zip / wpclsmgr.xh < prev    next >
Text File  |  1999-03-15  |  5KB  |  196 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: E:\cwpsh\rel\os2c\include\base\os2\wpclsmgr.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.14
  7.  *     SOM Emitter emitxh: 2.43
  8.  */
  9.  
  10. /*
  11.  *   Module Header
  12.  * 
  13.  *   Module Name: WPCLSMGR
  14.  * 
  15.  *   OS/2 Presentation Manager Workplace class definitions
  16.  * 
  17.  *   Copyright (c) International Business Machines Corporation 1991, 1992
  18.  * 
  19.  */
  20.  
  21.  
  22. #ifndef SOM_WPClassManager_xh
  23. #define SOM_WPClassManager_xh
  24.  
  25. class WPClassManager;
  26.  
  27. #define WPClassManager_MajorVersion 1
  28. #define WPClassManager_MinorVersion 2
  29.  
  30. /* C++ SOM defs */
  31. #include <somcls.xh>
  32. #include <somcm.xh>
  33.  
  34. /* C++ parent defs */
  35. #ifndef SOM_SOMClassMgr_xh
  36. #include <somcm.xh>
  37. #endif
  38.  
  39. #ifndef WPClassManager_API
  40. #define WPClassManager_API
  41. /*
  42.  * -- The Class API
  43.  */
  44.  
  45. /*
  46.  * Start of bindings for IDL types
  47.  */
  48.  
  49. class SOMClass;
  50. class SOMObject;
  51. class Repository;
  52. class WPObject;
  53.  
  54. /*
  55.  * End of bindings for IDL types.
  56.  */
  57.  
  58. /* A procedure to create the WPClassManager Class */
  59. SOMEXTERN SOMClass * SOMLINK WPClassManagerNewClass(
  60.         integer4 majorVersion,
  61.         integer4 minorVersion);
  62.  
  63. /* The API to the WPClassManager class object, and the methods it introduces. */
  64. SOMEXTERN struct WPClassManagerClassDataStructure {
  65.     SOMClass *classObject;
  66.     somMToken wpClassManagerPrivate1;
  67.     somMToken wpGetTrueClassName;
  68.     somMToken wpReplacementIsInEffect;
  69.     somMToken wpModuleForClass;
  70. } SOMDLINK WPClassManagerClassData;
  71. #define _WPClassManager WPClassManagerClassData.classObject
  72.  
  73. /* The API to parentMtabs for WPClassManager, and the instance data it introduces. */
  74. SOMEXTERN struct WPClassManagerCClassDataStructure {
  75.     somMethodTabs parentMtab;
  76.     somDToken              instanceDataToken;
  77. } SOMDLINK WPClassManagerCClassData;
  78.  
  79. /*
  80.  * -- Typedefs for WPClassManager Method Procedures
  81.  */
  82. SOMEXTERN {
  83. typedef BOOL   SOMLINK somTP_WPClassManager_wpReplacementIsInEffect(WPClassManager *somSelf, 
  84.         PSZ pszOldClass, 
  85.         PSZ pszNewClass);
  86. typedef somTP_WPClassManager_wpReplacementIsInEffect *somTD_WPClassManager_wpReplacementIsInEffect;
  87. typedef PSZ   SOMLINK somTP_WPClassManager_wpModuleForClass(WPClassManager *somSelf, 
  88.         PSZ pszClass);
  89. typedef somTP_WPClassManager_wpModuleForClass *somTD_WPClassManager_wpModuleForClass;
  90. typedef PSZ   SOMLINK somTP_WPClassManager_wpGetTrueClassName(WPClassManager *somSelf, 
  91.         WPObject* Object);
  92. typedef somTP_WPClassManager_wpGetTrueClassName *somTD_WPClassManager_wpGetTrueClassName;
  93. }
  94.  
  95. #endif /* WPClassManager_API */
  96.  
  97.  
  98. /*
  99.  * -- This emitter treats Method Tokens as Thunks by default.
  100.  * -- Use the sc modifier "nothunks" to change this default
  101.  */
  102. #undef somresolve_
  103. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  104.  
  105. /*
  106.  * -- The C++ Wrapper Class for WPClassManager
  107.  */
  108. class WPClassManager : public SOMClassMgr
  109. {
  110. public:
  111.  
  112. // WPClassManager::new creates the class object if necessary, and then uses somNewNoInit
  113. // to allocate memory and create the object. Initialization is in ctors.
  114. void *operator new(size_t)
  115. {
  116.    if (!_WPClassManager) WPClassManagerNewClass(WPClassManager_MajorVersion,WPClassManager_MinorVersion);
  117.    return (void*)
  118.       SOM_Resolve(_WPClassManager,SOMClass,somNewNoInit)
  119.          ((SOMClass *)((void*)_WPClassManager));
  120. }
  121.  
  122. // WPClassManager::delete uses somDestruct.
  123. void operator delete(void * obj)
  124. {
  125.    if (obj && *(void**)obj) {
  126.       SOM_Resolve(obj,SOMObject,somDestruct)
  127.          ((SOMObject*)obj, 1, 0);
  128.    }
  129. }
  130.  
  131. WPClassManager& operator=(WPClassManager& fromObj)
  132. {
  133.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  134.    return *this;
  135. }
  136.  
  137. WPClassManager()
  138. {
  139.    if (*(void**)this != 
  140.        ((somParentMtabStructPtr)
  141.         (WPClassManagerCClassData.parentMtab))->mtab)
  142.       return;
  143.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  144. }
  145.  
  146. WPClassManager(WPClassManager* fromObj)
  147. {
  148.    if (*(void**)this != 
  149.        ((somParentMtabStructPtr)
  150.         (WPClassManagerCClassData.parentMtab))->mtab)
  151.       return;
  152.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  153. }
  154.  
  155. WPClassManager(const WPClassManager* fromObj)
  156. {
  157.    if (*(void**)this != 
  158.        ((somParentMtabStructPtr)
  159.         (WPClassManagerCClassData.parentMtab))->mtab)
  160.       return;
  161.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  162. }
  163.  
  164.  
  165. /* method: wpReplacementIsInEffect */
  166. BOOL   wpReplacementIsInEffect(PSZ pszOldClass, 
  167.         PSZ pszNewClass)
  168. {
  169.    return SOM_ResolveD(this,WPClassManager,WPClassManager,wpReplacementIsInEffect)
  170.     (this,pszOldClass,pszNewClass);
  171. }
  172.  
  173.  
  174. /* method: wpModuleForClass */
  175. PSZ   wpModuleForClass(PSZ pszClass)
  176. {
  177.    return SOM_ResolveD(this,WPClassManager,WPClassManager,wpModuleForClass)
  178.     (this,pszClass);
  179. }
  180.  
  181.  
  182. /* method: wpGetTrueClassName */
  183. PSZ   wpGetTrueClassName(WPObject* Object)
  184. {
  185.    return SOM_ResolveD(this,WPClassManager,WPClassManager,wpGetTrueClassName)
  186.     (this,Object);
  187. }
  188.  
  189.  
  190.  
  191. };   /* WPClassManager */
  192.  
  193.  
  194.  
  195. #endif       /* SOM_WPClassManager_xh */
  196.