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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: E:\cwpsh\rel\os2c\include\base\os2\wpabs.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: WPABS
  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_WPAbstract_xh
  23. #define SOM_WPAbstract_xh
  24.  
  25. class WPAbstract;
  26.  
  27. #define WPAbstract_MajorVersion 1
  28. #define WPAbstract_MinorVersion 2
  29.  
  30. /* C++ SOM defs */
  31. #include <somcls.xh>
  32. #include <somcm.xh>
  33.  
  34. /* C++ parent defs */
  35. #ifndef SOM_WPObject_xh
  36. #include <wpobject.xh>
  37. #endif
  38.  
  39. #ifndef WPAbstract_API
  40. #define WPAbstract_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 WPFolder;
  52. class M_WPObject;
  53. class WPObject;
  54. class WPImageFile;
  55. class M_WPAbstract;
  56.  
  57. /*
  58.  * End of bindings for IDL types.
  59.  */
  60.  
  61. /* A procedure to create the WPAbstract Class */
  62. class M_WPAbstract;
  63. SOMEXTERN M_WPAbstract * SOMLINK WPAbstractNewClass(
  64.         integer4 majorVersion,
  65.         integer4 minorVersion);
  66.  
  67. /* The API to the WPAbstract class object, and the methods it introduces. */
  68. SOMEXTERN struct WPAbstractClassDataStructure {
  69.     M_WPAbstract *classObject;
  70. } SOMDLINK WPAbstractClassData;
  71. #define _WPAbstract WPAbstractClassData.classObject
  72.  
  73. /* The API to parentMtabs for WPAbstract, and the instance data it introduces. */
  74. SOMEXTERN struct WPAbstractCClassDataStructure {
  75.     somMethodTabs parentMtab;
  76.     somDToken              instanceDataToken;
  77. } SOMDLINK WPAbstractCClassData;
  78.  
  79. /*
  80.  * -- Typedefs for WPAbstract Method Procedures
  81.  */
  82. SOMEXTERN {
  83.  
  84. /*
  85.  * -- Typedefs for Reintroduced Wrapper Methods
  86.  */
  87. typedef M_WPAbstract*   SOMLINK somTP_WPAbstract_somGetClass(WPAbstract *somSelf);
  88. typedef somTP_WPAbstract_somGetClass *somTD_WPAbstract_somGetClass;
  89. }
  90.  
  91. #endif /* WPAbstract_API */
  92.  
  93.  
  94. /*
  95.  * -- This emitter treats Method Tokens as Thunks by default.
  96.  * -- Use the sc modifier "nothunks" to change this default
  97.  */
  98. #undef somresolve_
  99. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  100.  
  101. /*
  102.  * -- The C++ Wrapper Class for WPAbstract
  103.  */
  104. class WPAbstract : public WPObject
  105. {
  106. public:
  107.  
  108. // WPAbstract::new creates the class object if necessary, and then uses somNewNoInit
  109. // to allocate memory and create the object. Initialization is in ctors.
  110. void *operator new(size_t)
  111. {
  112.    if (!_WPAbstract) WPAbstractNewClass(WPAbstract_MajorVersion,WPAbstract_MinorVersion);
  113.    return (void*)
  114.       SOM_Resolve(_WPAbstract,SOMClass,somNewNoInit)
  115.          ((SOMClass *)((void*)_WPAbstract));
  116. }
  117.  
  118. // WPAbstract::delete uses somDestruct.
  119. void operator delete(void * obj)
  120. {
  121.    if (obj && *(void**)obj) {
  122.       SOM_Resolve(obj,SOMObject,somDestruct)
  123.          ((SOMObject*)obj, 1, 0);
  124.    }
  125. }
  126.  
  127. WPAbstract& operator=(WPAbstract& fromObj)
  128. {
  129.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  130.    return *this;
  131. }
  132.  
  133. WPAbstract()
  134. {
  135.    if (*(void**)this != 
  136.        ((somParentMtabStructPtr)
  137.         (WPAbstractCClassData.parentMtab))->mtab)
  138.       return;
  139.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  140. }
  141.  
  142. WPAbstract(WPAbstract* fromObj)
  143. {
  144.    if (*(void**)this != 
  145.        ((somParentMtabStructPtr)
  146.         (WPAbstractCClassData.parentMtab))->mtab)
  147.       return;
  148.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  149. }
  150.  
  151. WPAbstract(const WPAbstract* fromObj)
  152. {
  153.    if (*(void**)this != 
  154.        ((somParentMtabStructPtr)
  155.         (WPAbstractCClassData.parentMtab))->mtab)
  156.       return;
  157.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  158. }
  159.  
  160.  
  161. /*
  162.  * Reintroduce inherited methods
  163.  */
  164.  
  165. /* method: somGetClass */
  166. M_WPAbstract*  somGetClass()
  167. {
  168. /*
  169.  *  Return the receiver's class.
  170.  */
  171.    return SOM_ResolveD(this,WPAbstract,SOMObject,somGetClass)
  172.     (this);
  173. }
  174.  
  175.  
  176.  
  177. };   /* WPAbstract */
  178.  
  179.  
  180.  
  181. #endif       /* SOM_WPAbstract_xh */
  182.  
  183. #ifndef SOM_M_WPAbstract_xh
  184. #define SOM_M_WPAbstract_xh
  185.  
  186. class M_WPAbstract;
  187.  
  188. #define M_WPAbstract_MajorVersion 1
  189. #define M_WPAbstract_MinorVersion 2
  190.  
  191. /* C++ SOM defs */
  192. #include <somcls.xh>
  193. #include <somcm.xh>
  194.  
  195. /* C++ parent defs */
  196. #ifndef SOM_M_WPObject_xh
  197. #include <wpobject.xh>
  198. #endif
  199.  
  200. #ifndef M_WPAbstract_API
  201. #define M_WPAbstract_API
  202. /*
  203.  * -- The Class API
  204.  */
  205.  
  206. /*
  207.  * Start of bindings for IDL types
  208.  */
  209.  
  210.  
  211. /*
  212.  * End of bindings for IDL types.
  213.  */
  214.  
  215. /*
  216.  * -- M_WPAbstract is a metaclass for WPAbstract. Make sure WPAbstract is known.
  217.  */
  218. class WPAbstract;
  219.  
  220.  
  221. /* A procedure to create the M_WPAbstract Class */
  222. SOMEXTERN SOMClass * SOMLINK M_WPAbstractNewClass(
  223.         integer4 majorVersion,
  224.         integer4 minorVersion);
  225.  
  226. /* The API to the M_WPAbstract class object, and the methods it introduces. */
  227. SOMEXTERN struct M_WPAbstractClassDataStructure {
  228.     SOMClass *classObject;
  229.     somMToken wpclsAbsPrivate1;
  230.     somMToken wpclsAbsPrivate2;
  231.     somMToken wpclsAbsPrivate3;
  232.     somMToken wpclsQuerySetting;
  233.     somMToken wpclsSetSetting;
  234. } SOMDLINK M_WPAbstractClassData;
  235. #define _M_WPAbstract M_WPAbstractClassData.classObject
  236.  
  237. /* The API to parentMtabs for M_WPAbstract, and the instance data it introduces. */
  238. SOMEXTERN struct M_WPAbstractCClassDataStructure {
  239.     somMethodTabs parentMtab;
  240.     somDToken              instanceDataToken;
  241. } SOMDLINK M_WPAbstractCClassData;
  242.  
  243. /*
  244.  * -- Typedefs for M_WPAbstract Method Procedures
  245.  */
  246. SOMEXTERN {
  247. typedef ULONG   SOMLINK somTP_M_WPAbstract_wpclsQuerySetting(M_WPAbstract *somSelf, 
  248.         PSZ pszSetting, 
  249.         PVOID pValue, 
  250.         ULONG ulValueLen);
  251. typedef somTP_M_WPAbstract_wpclsQuerySetting *somTD_M_WPAbstract_wpclsQuerySetting;
  252. typedef BOOL   SOMLINK somTP_M_WPAbstract_wpclsSetSetting(M_WPAbstract *somSelf, 
  253.         PSZ pszSetting, 
  254.         PVOID pValue);
  255. typedef somTP_M_WPAbstract_wpclsSetSetting *somTD_M_WPAbstract_wpclsSetSetting;
  256.  
  257. /*
  258.  * -- Typedefs for Reintroduced Wrapper Methods
  259.  */
  260. typedef WPAbstract*   SOMLINK somTP_M_WPAbstract_somNew(M_WPAbstract *somSelf);
  261. typedef somTP_M_WPAbstract_somNew *somTD_M_WPAbstract_somNew;
  262. }
  263.  
  264. #endif /* M_WPAbstract_API */
  265.  
  266.  
  267. /*
  268.  * -- This emitter treats Method Tokens as Thunks by default.
  269.  * -- Use the sc modifier "nothunks" to change this default
  270.  */
  271. #undef somresolve_
  272. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  273.  
  274. /*
  275.  * -- The C++ Wrapper Class for M_WPAbstract
  276.  */
  277. class M_WPAbstract : public M_WPObject
  278. {
  279. public:
  280.  
  281. // M_WPAbstract::new creates the class object if necessary, and then uses somNewNoInit
  282. // to allocate memory and create the object. Initialization is in ctors.
  283. void *operator new(size_t)
  284. {
  285.    if (!_M_WPAbstract) M_WPAbstractNewClass(M_WPAbstract_MajorVersion,M_WPAbstract_MinorVersion);
  286.    return (void*)
  287.       SOM_Resolve(_M_WPAbstract,SOMClass,somNewNoInit)
  288.          ((SOMClass *)((void*)_M_WPAbstract));
  289. }
  290.  
  291. // M_WPAbstract::delete uses somDestruct.
  292. void operator delete(void * obj)
  293. {
  294.    if (obj && *(void**)obj) {
  295.       SOM_Resolve(obj,SOMObject,somDestruct)
  296.          ((SOMObject*)obj, 1, 0);
  297.    }
  298. }
  299.  
  300. M_WPAbstract& operator=(M_WPAbstract& fromObj)
  301. {
  302.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  303.    return *this;
  304. }
  305.  
  306. M_WPAbstract()
  307. {
  308.    if (*(void**)this != 
  309.        ((somParentMtabStructPtr)
  310.         (M_WPAbstractCClassData.parentMtab))->mtab)
  311.       return;
  312.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  313. }
  314.  
  315. M_WPAbstract(M_WPAbstract* fromObj)
  316. {
  317.    if (*(void**)this != 
  318.        ((somParentMtabStructPtr)
  319.         (M_WPAbstractCClassData.parentMtab))->mtab)
  320.       return;
  321.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  322. }
  323.  
  324. M_WPAbstract(const M_WPAbstract* fromObj)
  325. {
  326.    if (*(void**)this != 
  327.        ((somParentMtabStructPtr)
  328.         (M_WPAbstractCClassData.parentMtab))->mtab)
  329.       return;
  330.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  331. }
  332.  
  333.  
  334. /* method: wpclsQuerySetting */
  335. ULONG   wpclsQuerySetting(PSZ pszSetting, 
  336.         PVOID pValue, 
  337.         ULONG ulValueLen)
  338. {
  339.    return SOM_ResolveD(this,M_WPAbstract,M_WPAbstract,wpclsQuerySetting)
  340.     (this,pszSetting,pValue,ulValueLen);
  341. }
  342.  
  343.  
  344. /* method: wpclsSetSetting */
  345. BOOL   wpclsSetSetting(PSZ pszSetting, 
  346.         PVOID pValue)
  347. {
  348.    return SOM_ResolveD(this,M_WPAbstract,M_WPAbstract,wpclsSetSetting)
  349.     (this,pszSetting,pValue);
  350. }
  351.  
  352.  
  353. /*
  354.  * Reintroduce inherited methods
  355.  */
  356.  
  357. /* method: somNew */
  358. WPAbstract*  somNew()
  359. {
  360.    return SOM_ResolveD(this,M_WPAbstract,SOMClass,somNew)
  361.     (this);
  362. }
  363.  
  364.  
  365.  
  366. };   /* M_WPAbstract */
  367.  
  368.  
  369.  
  370. #endif       /* SOM_M_WPAbstract_xh */
  371.