home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / WSTBSK.ZIP / WASTEBSK.IH < prev    next >
Text File  |  1992-06-08  |  22KB  |  692 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: wastebsk.ih.
  5.  * Generated using:
  6.  *     SOM Precompiler spc: 1.22
  7.  *     SOM Emitter emitih: 1.59
  8.  */
  9.  
  10. #ifndef wastebsk_ih
  11. #define wastebsk_ih
  12.  
  13.  
  14. /*
  15.  * Passthru lines: File: "C.ih", "before"
  16.  */
  17. #define IDKEY_AUTOEMPTY 9000
  18.  
  19. #include "wastebsk.ph"
  20.  
  21. /*
  22.  * Set the scope of methods functions
  23.  */
  24. #ifndef SOM_Scope
  25. #ifdef __cplusplus
  26. #define SOM_Scope extern "C"
  27. #else
  28. #define SOM_Scope extern
  29. #endif
  30. #endif
  31.  
  32. #ifndef SOM_CurrentClass
  33. #define SOM_CurrentClass WPWasteBsktCClassData.parentMtab
  34. #endif
  35.  
  36. #define WPWasteBskt_MaxNoMethods 2
  37.  
  38. /*
  39.  * Instance data
  40.  */
  41. typedef struct {
  42.     BOOL bAutoEmpty;
  43. } WPWasteBsktData;
  44.  
  45. /*
  46.  * Instance variable access macros
  47.  */
  48. #define _bAutoEmpty (somThis->bAutoEmpty)
  49.  
  50. /*
  51.  * Getdata macro
  52.  */
  53. #define WPWasteBsktGetData(somSelf) \
  54.     ((WPWasteBsktData *) \
  55.         SOM_DataResolve(somSelf, WPWasteBsktCClassData.instanceDataToken))
  56.  
  57. /*
  58.  * Trace/Debug macro
  59.  */
  60. #ifndef WPWasteBsktMethodDebug
  61. #define WPWasteBsktMethodDebug(c,m) SOMMethodDebug(c,m)
  62. #endif
  63.  
  64. /*
  65.  * Begin stuff that only goes in the primary file
  66.  */
  67. #ifdef WPWasteBskt_Class_Source
  68.  
  69. /*
  70.  * Current class macros for Instance and Meta classes.
  71.  */
  72. #undef SOMMeta
  73. #define SOMMeta M_WPWasteBsktCClassData.parentMtab
  74. #undef SOMInstance
  75. #define SOMInstance WPWasteBsktCClassData.parentMtab
  76.  
  77. #ifndef M_WPWasteBskt_Class_Source
  78. #define M_WPWasteBskt_Class_Source
  79. #endif    /* M_WPWasteBskt_Class_Source */
  80.  
  81. /*
  82.  * Generate the Apply Stubs.
  83.  */
  84. #pragma linkage(somAP_QueryAutoEmptyFlag, system)
  85. static BOOL   SOMLINK somAP_QueryAutoEmptyFlag(WPWasteBskt *somSelf,
  86.         somId __id,
  87.         somId __desc,
  88.         va_list __ap)
  89. {
  90.     __ap; __id; __desc;           /* Referenced to prevent warning msg */
  91.  
  92.     return (WPWasteBskt_QueryAutoEmptyFlag(somSelf));
  93. }
  94.  
  95. #pragma linkage(somAP_SetAutoEmptyFlag, system)
  96. static BOOL   SOMLINK somAP_SetAutoEmptyFlag(WPWasteBskt *somSelf,
  97.         somId __id,
  98.         somId __desc,
  99.         va_list __ap)
  100. {
  101.     BOOL bAutoEmpty = va_arg(__ap, BOOL);
  102.     __ap; __id; __desc;           /* Referenced to prevent warning msg */
  103.  
  104.     return (WPWasteBskt_SetAutoEmptyFlag(somSelf,bAutoEmpty));
  105. }
  106.  
  107.  
  108. /*
  109.  * Overridden method: wpInitData
  110.  */
  111. #pragma linkage(wpwastebskt_wpInitData, system)
  112. SOM_Scope void   SOMLINK wpwastebskt_wpInitData(WPWasteBskt *somSelf);
  113. #ifndef parent_wpInitData
  114. static char *somMN_wpInitData = "wpInitData";
  115. static somId somId_wpInitData = &somMN_wpInitData;
  116. #define parent_wpInitData(somSelf) \
  117.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpInitData)) \
  118.      (somSelf))
  119. #endif
  120. #define WPWasteBsktParent_wpInitData parent_wpInitData
  121.  
  122. /*
  123.  * Overridden method: wpModifyPopupMenu
  124.  */
  125. #pragma linkage(wpwastebskt_wpModifyPopupMenu, system)
  126. SOM_Scope BOOL   SOMLINK wpwastebskt_wpModifyPopupMenu(WPWasteBskt *somSelf,
  127.         HWND hwndMenu,
  128.         HWND hwndCnr,
  129.         ULONG iPosition);
  130. #ifndef parent_wpModifyPopupMenu
  131. static char *somMN_wpModifyPopupMenu = "wpModifyPopupMenu";
  132. static somId somId_wpModifyPopupMenu = &somMN_wpModifyPopupMenu;
  133. #define parent_wpModifyPopupMenu(somSelf,hwndMenu,hwndCnr,iPosition) \
  134.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpModifyPopupMenu)) \
  135.      (somSelf,hwndMenu,hwndCnr,iPosition))
  136. #endif
  137. #define WPWasteBsktParent_wpModifyPopupMenu parent_wpModifyPopupMenu
  138.  
  139. /*
  140.  * Overridden method: wpMenuItemSelected
  141.  */
  142. #pragma linkage(wpwastebskt_wpMenuItemSelected, system)
  143. SOM_Scope BOOL   SOMLINK wpwastebskt_wpMenuItemSelected(WPWasteBskt *somSelf,
  144.         HWND hwndFrame,
  145.         ULONG ulMenuId);
  146. #ifndef parent_wpMenuItemSelected
  147. static char *somMN_wpMenuItemSelected = "wpMenuItemSelected";
  148. static somId somId_wpMenuItemSelected = &somMN_wpMenuItemSelected;
  149. #define parent_wpMenuItemSelected(somSelf,hwndFrame,ulMenuId) \
  150.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpMenuItemSelected)) \
  151.      (somSelf,hwndFrame,ulMenuId))
  152. #endif
  153. #define WPWasteBsktParent_wpMenuItemSelected parent_wpMenuItemSelected
  154.  
  155. /*
  156.  * Overridden method: wpSetup
  157.  */
  158. #pragma linkage(wpwastebskt_wpSetup, system)
  159. SOM_Scope BOOL   SOMLINK wpwastebskt_wpSetup(WPWasteBskt *somSelf,
  160.         PSZ pszSetupString);
  161. #ifndef parent_wpSetup
  162. static char *somMN_wpSetup = "wpSetup";
  163. static somId somId_wpSetup = &somMN_wpSetup;
  164. #define parent_wpSetup(somSelf,pszSetupString) \
  165.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpSetup)) \
  166.      (somSelf,pszSetupString))
  167. #endif
  168. #define WPWasteBsktParent_wpSetup parent_wpSetup
  169.  
  170. /*
  171.  * Overridden method: wpSaveState
  172.  */
  173. #pragma linkage(wpwastebskt_wpSaveState, system)
  174. SOM_Scope BOOL   SOMLINK wpwastebskt_wpSaveState(WPWasteBskt *somSelf);
  175. #ifndef parent_wpSaveState
  176. static char *somMN_wpSaveState = "wpSaveState";
  177. static somId somId_wpSaveState = &somMN_wpSaveState;
  178. #define parent_wpSaveState(somSelf) \
  179.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpSaveState)) \
  180.      (somSelf))
  181. #endif
  182. #define WPWasteBsktParent_wpSaveState parent_wpSaveState
  183.  
  184. /*
  185.  * Overridden method: wpRestoreState
  186.  */
  187. #pragma linkage(wpwastebskt_wpRestoreState, system)
  188. SOM_Scope BOOL   SOMLINK wpwastebskt_wpRestoreState(WPWasteBskt *somSelf,
  189.         ULONG ulReserved);
  190. #ifndef parent_wpRestoreState
  191. static char *somMN_wpRestoreState = "wpRestoreState";
  192. static somId somId_wpRestoreState = &somMN_wpRestoreState;
  193. #define parent_wpRestoreState(somSelf,ulReserved) \
  194.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpRestoreState)) \
  195.      (somSelf,ulReserved))
  196. #endif
  197. #define WPWasteBsktParent_wpRestoreState parent_wpRestoreState
  198.  
  199. /*
  200.  * Overridden method: wpQueryStyle
  201.  */
  202. #pragma linkage(wpwastebskt_wpQueryStyle, system)
  203. SOM_Scope ULONG   SOMLINK wpwastebskt_wpQueryStyle(WPWasteBskt *somSelf);
  204. #ifndef parent_wpQueryStyle
  205. static char *somMN_wpQueryStyle = "wpQueryStyle";
  206. static somId somId_wpQueryStyle = &somMN_wpQueryStyle;
  207. #define parent_wpQueryStyle(somSelf) \
  208.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpQueryStyle)) \
  209.      (somSelf))
  210. #endif
  211. #define WPWasteBsktParent_wpQueryStyle parent_wpQueryStyle
  212.  
  213. /*
  214.  * Overridden method: wpDragOver
  215.  */
  216. #pragma linkage(wpwastebskt_wpDragOver, system)
  217. SOM_Scope MRESULT   SOMLINK wpwastebskt_wpDragOver(WPWasteBskt *somSelf,
  218.         HWND hwndCnr,
  219.         PDRAGINFO pdrgInfo);
  220. #ifndef parent_wpDragOver
  221. static char *somMN_wpDragOver = "wpDragOver";
  222. static somId somId_wpDragOver = &somMN_wpDragOver;
  223. #define parent_wpDragOver(somSelf,hwndCnr,pdrgInfo) \
  224.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpDragOver)) \
  225.      (somSelf,hwndCnr,pdrgInfo))
  226. #endif
  227. #define WPWasteBsktParent_wpDragOver parent_wpDragOver
  228.  
  229. /*
  230.  * Overridden method: wpDrop
  231.  */
  232. #pragma linkage(wpwastebskt_wpDrop, system)
  233. SOM_Scope MRESULT   SOMLINK wpwastebskt_wpDrop(WPWasteBskt *somSelf,
  234.         HWND hwndCnr,
  235.         PDRAGINFO pdrgInfo,
  236.         PDRAGITEM pdrgItem);
  237. #ifndef parent_wpDrop
  238. static char *somMN_wpDrop = "wpDrop";
  239. static somId somId_wpDrop = &somMN_wpDrop;
  240. #define parent_wpDrop(somSelf,hwndCnr,pdrgInfo,pdrgItem) \
  241.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpDrop)) \
  242.      (somSelf,hwndCnr,pdrgInfo,pdrgItem))
  243. #endif
  244. #define WPWasteBsktParent_wpDrop parent_wpDrop
  245.  
  246. /*
  247.  * Overridden method: wpAddFolderIncludePage
  248.  */
  249. #pragma linkage(wpwastebskt_wpAddFolderIncludePage, system)
  250. SOM_Scope ULONG   SOMLINK wpwastebskt_wpAddFolderIncludePage(WPWasteBskt *somSelf,
  251.         HWND hwndNotebook);
  252. #ifndef parent_wpAddFolderIncludePage
  253. static char *somMN_wpAddFolderIncludePage = "wpAddFolderIncludePage";
  254. static somId somId_wpAddFolderIncludePage = &somMN_wpAddFolderIncludePage;
  255. #define parent_wpAddFolderIncludePage(somSelf,hwndNotebook) \
  256.     ((SOM_ParentResolveE(WPFolder, SOM_CurrentClass, wpAddFolderIncludePage)) \
  257.      (somSelf,hwndNotebook))
  258. #endif
  259. #define WPWasteBsktParent_wpAddFolderIncludePage parent_wpAddFolderIncludePage
  260.  
  261. /*
  262.  * Overridden method: wpAddSettingsPages
  263.  */
  264. #pragma linkage(wpwastebskt_wpAddSettingsPages, system)
  265. SOM_Scope BOOL   SOMLINK wpwastebskt_wpAddSettingsPages(WPWasteBskt *somSelf,
  266.         HWND hwndNotebook);
  267. #ifndef parent_wpAddSettingsPages
  268. static char *somMN_wpAddSettingsPages = "wpAddSettingsPages";
  269. static somId somId_wpAddSettingsPages = &somMN_wpAddSettingsPages;
  270. #define parent_wpAddSettingsPages(somSelf,hwndNotebook) \
  271.     ((SOM_ParentResolveE(WPObject, SOM_CurrentClass, wpAddSettingsPages)) \
  272.      (somSelf,hwndNotebook))
  273. #endif
  274. #define WPWasteBsktParent_wpAddSettingsPages parent_wpAddSettingsPages
  275.  
  276. /*
  277.  * Temporary class data structure used only in class creation
  278.  */
  279. static somClassDataStructure WPWasteBskttempClassData;
  280.  
  281. /*
  282.  * Initialize the class data structure
  283.  */
  284. struct WPWasteBsktClassDataStructure WPWasteBsktClassData = {(SOMAny *) NULL};
  285.  
  286. /*
  287.  * Define the C class data structure
  288.  */
  289. struct WPWasteBsktCClassDataStructure WPWasteBsktCClassData = {(somMethodTab *) NULL};
  290.  
  291. /*
  292.  * New Method: QueryAutoEmptyFlag
  293.  */
  294. #pragma linkage(wpwastebskt_QueryAutoEmptyFlag, system)
  295. SOM_Scope BOOL   SOMLINK wpwastebskt_QueryAutoEmptyFlag(WPWasteBskt *somSelf);
  296. static char *somMN_QueryAutoEmptyFlag = "QueryAutoEmptyFlag";
  297. static somId somId_QueryAutoEmptyFlag = &somMN_QueryAutoEmptyFlag;
  298. static char *somDS_QueryAutoEmptyFlag = somMD_WPWasteBskt_QueryAutoEmptyFlag;
  299. static somId somDI_QueryAutoEmptyFlag = &somDS_QueryAutoEmptyFlag;
  300. #pragma linkage(somRD_QueryAutoEmptyFlag, system)
  301. static BOOL   SOMLINK somRD_QueryAutoEmptyFlag(WPWasteBskt *somSelf)
  302. {
  303.     return ((BOOL) va_somDispatchL(somSelf, somId_QueryAutoEmptyFlag,
  304.         _somGetMethodDescriptor(SOM_GetClass(somSelf),somId_QueryAutoEmptyFlag)));
  305. }
  306.  
  307. /*
  308.  * New Method: SetAutoEmptyFlag
  309.  */
  310. #pragma linkage(wpwastebskt_SetAutoEmptyFlag, system)
  311. SOM_Scope BOOL   SOMLINK wpwastebskt_SetAutoEmptyFlag(WPWasteBskt *somSelf,
  312.         BOOL bAutoEmpty);
  313. static char *somMN_SetAutoEmptyFlag = "SetAutoEmptyFlag";
  314. static somId somId_SetAutoEmptyFlag = &somMN_SetAutoEmptyFlag;
  315. static char *somDS_SetAutoEmptyFlag = somMD_WPWasteBskt_SetAutoEmptyFlag;
  316. static somId somDI_SetAutoEmptyFlag = &somDS_SetAutoEmptyFlag;
  317. #pragma linkage(somRD_SetAutoEmptyFlag, system)
  318. static BOOL   SOMLINK somRD_SetAutoEmptyFlag(WPWasteBskt *somSelf,
  319.         BOOL bAutoEmpty)
  320. {
  321.     return ((BOOL) va_somDispatchL(somSelf, somId_SetAutoEmptyFlag,
  322.         _somGetMethodDescriptor(SOM_GetClass(somSelf),somId_SetAutoEmptyFlag),bAutoEmpty));
  323. }
  324.  
  325. /*
  326.  * Routines to create the class object
  327.  */
  328.  
  329. /*
  330.  * Declare the Static Methods table.
  331.  */
  332. static somStaticMethod_t WPWasteBsktSM[] = {
  333.     {    &WPWasteBsktClassData.QueryAutoEmptyFlag,
  334.          &somId_QueryAutoEmptyFlag,
  335.          &somDI_QueryAutoEmptyFlag,
  336.          (somMethodProc *) wpwastebskt_QueryAutoEmptyFlag,
  337.          (somMethodProc *) somRD_QueryAutoEmptyFlag,
  338.          (somMethodProc *) somAP_QueryAutoEmptyFlag    },
  339.     {    &WPWasteBsktClassData.SetAutoEmptyFlag,
  340.          &somId_SetAutoEmptyFlag,
  341.          &somDI_SetAutoEmptyFlag,
  342.          (somMethodProc *) wpwastebskt_SetAutoEmptyFlag,
  343.          (somMethodProc *) somRD_SetAutoEmptyFlag,
  344.          (somMethodProc *) somAP_SetAutoEmptyFlag    },
  345. };
  346.  
  347.  
  348. /*
  349.  * Declare the Override Methods table.
  350.  */
  351. static somOverrideMethod_t WPWasteBsktOM[] = {
  352.     {    &somId_wpInitData,
  353.          (somMethodProc *) wpwastebskt_wpInitData    },
  354.     {    &somId_wpModifyPopupMenu,
  355.          (somMethodProc *) wpwastebskt_wpModifyPopupMenu    },
  356.     {    &somId_wpMenuItemSelected,
  357.          (somMethodProc *) wpwastebskt_wpMenuItemSelected    },
  358.     {    &somId_wpSetup,
  359.          (somMethodProc *) wpwastebskt_wpSetup    },
  360.     {    &somId_wpSaveState,
  361.          (somMethodProc *) wpwastebskt_wpSaveState    },
  362.     {    &somId_wpRestoreState,
  363.          (somMethodProc *) wpwastebskt_wpRestoreState    },
  364.     {    &somId_wpQueryStyle,
  365.          (somMethodProc *) wpwastebskt_wpQueryStyle    },
  366.     {    &somId_wpDragOver,
  367.          (somMethodProc *) wpwastebskt_wpDragOver    },
  368.     {    &somId_wpDrop,
  369.          (somMethodProc *) wpwastebskt_wpDrop    },
  370.     {    &somId_wpAddFolderIncludePage,
  371.          (somMethodProc *) wpwastebskt_wpAddFolderIncludePage    },
  372.     {    &somId_wpAddSettingsPages,
  373.          (somMethodProc *) wpwastebskt_wpAddSettingsPages    },
  374. };
  375.  
  376. static void WPWasteBsktsomInitializeClass ()
  377. {
  378.     int i;
  379.     somStaticMethod_t *smp;
  380.     somOverrideMethod_t *omp;
  381.  
  382. /*
  383.  * Add the Static Methods.
  384.  */
  385.     for (smp = WPWasteBsktSM, i = 0; i < 2; smp++, i++)
  386.         *(smp->classData) =
  387.             _somAddStaticMethod (WPWasteBskttempClassData.classObject,
  388.                 *(smp->methodId), *(smp->methodDescriptor),
  389.                 smp->method, smp->redispatchStub,
  390.                 smp->applyStub);
  391.  
  392.  
  393. /*
  394.  * Override methods.
  395.  */
  396.     for (omp = WPWasteBsktOM, i = 0; i < 11; omp++, i++)
  397.         _somOverrideSMethod (WPWasteBskttempClassData.classObject,
  398.             *(omp->methodId), omp->method);
  399.  
  400. }
  401.  
  402. #pragma linkage(WPWasteBsktsomCreateClass, system)
  403. static void SOMLINK WPWasteBsktsomCreateClass(SOMClass *pClsObj,
  404.                            SOMClass *mClsObj)
  405. {
  406.     WPWasteBskttempClassData.classObject = _somNew (mClsObj);
  407.     _somInitClass (WPWasteBskttempClassData.classObject,
  408.         "WPWasteBskt",
  409.         pClsObj,
  410.         sizeof(WPWasteBsktData),
  411.         WPWasteBskt_MaxNoMethods,
  412.         WPWasteBskt_MajorVersion,
  413.         WPWasteBskt_MinorVersion);
  414.     WPWasteBsktCClassData.instanceDataToken = 
  415.     _somGetInstanceToken(WPWasteBskttempClassData.classObject);
  416.     WPWasteBsktsomInitializeClass();
  417.     WPWasteBsktCClassData.parentMtab =
  418.     _somGetPClsMtab(WPWasteBskttempClassData.classObject);
  419.     _somSetClassData(WPWasteBskttempClassData.classObject, (somClassDataStructure *)&WPWasteBsktClassData);
  420.     _somClassReady(WPWasteBskttempClassData.classObject);
  421.     /* make newly created class object visible */
  422.     WPWasteBsktClassData.classObject = WPWasteBskttempClassData.classObject;
  423. }
  424.  
  425. WPWasteBskt * SOMLINK WPWasteBsktNewClass (integer4 scemajorVersion,
  426.         integer4 sceminorVersion)
  427. {
  428.     SOMClass *pClsObj;
  429.     SOMClass *mClsObj;
  430.  
  431.     /* Check the version numbers */
  432.     if (((scemajorVersion != 0) && 
  433.          (scemajorVersion != WPWasteBskt_MajorVersion)) ||
  434.         ((sceminorVersion != 0) && 
  435.          (sceminorVersion > WPWasteBskt_MinorVersion))) {
  436.     somPrintf("WPWasteBsktNewClass: Error, bad version numbers.\n");
  437.     SOM_Error(SOMERROR_BadVersion);
  438.     }
  439.     /* Don't do anything if class object is already created. */
  440.     if (WPWasteBsktClassData.classObject != (SOMAny *) NULL)
  441.     return(WPWasteBsktClassData.classObject);
  442.  
  443.     /* Make sure the environment is initialized. */
  444.     if (SOMClassMgrObject == (SOMAny *) NULL) somEnvironmentNew();
  445.     if (SOMClassMgrObject == (SOMAny *) NULL)
  446.     SOM_Error(SOMERROR_CouldNotStartup);
  447.  
  448.     /* Get the parent class object. */
  449.     WPFolderNewClass(1,2);    /* static reference */
  450.     pClsObj = _somFindClass(SOMClassMgrObject,
  451.         SOM_IdFromString("WPFolder"), 1, 2);
  452.     if (pClsObj == (SOMClass *) NULL)
  453.     SOM_Error(SOMERROR_NoParentClass);
  454.  
  455.     /* Explicit metaclass, so get it */ 
  456.     M_WPWasteBsktNewClass(0,0);    /* static reference */
  457.     mClsObj = _somFindClass(SOMClassMgrObject,
  458.         SOM_IdFromString("M_WPWasteBskt"), 0, 0);
  459.     if (mClsObj == (SOMClass *) NULL)
  460.     SOM_Error(SOMERROR_NoMetaClass);
  461.  
  462.     somConstructClass(WPWasteBsktsomCreateClass, pClsObj, mClsObj,
  463.              &WPWasteBskttempClassData);
  464.     return (WPWasteBsktClassData.classObject);
  465. }
  466.  
  467. #endif                   /* WPWasteBskt_Class_Source */
  468.  
  469. #endif       /* wastebsk_ih */
  470.  
  471. /*
  472.  * This file was generated by the SOM Compiler.
  473.  * FileName: wastebsk.ih.
  474.  * Generated using:
  475.  *     SOM Precompiler spc: 1.22
  476.  *     SOM Emitter emitih: 1.59
  477.  */
  478.  
  479. #ifndef wastebsk_mih
  480. #define wastebsk_mih
  481.  
  482.  
  483. /*
  484.  * Set the scope of methods functions
  485.  */
  486. #ifndef SOM_Scope
  487. #ifdef __cplusplus
  488. #define SOM_Scope extern "C"
  489. #else
  490. #define SOM_Scope extern
  491. #endif
  492. #endif
  493.  
  494. #ifndef SOM_CurrentClass
  495. #define SOM_CurrentClass M_WPWasteBsktCClassData.parentMtab
  496. #endif
  497.  
  498. #define M_WPWasteBskt_MaxNoMethods 0
  499.  
  500. /*
  501.  * Instance data
  502.  */
  503. typedef void M_WPWasteBsktData;
  504.  
  505. /*
  506.  * Trace/Debug macro
  507.  */
  508. #ifndef M_WPWasteBsktMethodDebug
  509. #define M_WPWasteBsktMethodDebug(c,m) SOMMethodDebug(c,m)
  510. #endif
  511.  
  512. /*
  513.  * Begin stuff that only goes in the primary file
  514.  */
  515. #ifdef M_WPWasteBskt_Class_Source
  516.  
  517. /*
  518.  * Current class macros for Instance and Meta classes.
  519.  */
  520.  
  521. /*
  522.  * Generate the Apply Stubs.
  523.  */
  524.  
  525. /*
  526.  * Overridden method: wpclsQueryTitle
  527.  */
  528. #pragma linkage(wpwastebsktcls_wpclsQueryTitle, system)
  529. SOM_Scope PSZ   SOMLINK wpwastebsktcls_wpclsQueryTitle(M_WPWasteBskt *somSelf);
  530. #ifndef parent_wpclsQueryTitle
  531. static char *somMN_wpclsQueryTitle = "wpclsQueryTitle";
  532. static somId somId_wpclsQueryTitle = &somMN_wpclsQueryTitle;
  533. #define parent_wpclsQueryTitle(somSelf) \
  534.     ((SOM_ParentResolveE(M_WPObject, SOM_CurrentClass, wpclsQueryTitle)) \
  535.      (somSelf))
  536. #endif
  537. #define M_WPWasteBsktParent_wpclsQueryTitle parent_wpclsQueryTitle
  538.  
  539. /*
  540.  * Overridden method: wpclsInitData
  541.  */
  542. #pragma linkage(wpwastebsktcls_wpclsInitData, system)
  543. SOM_Scope void   SOMLINK wpwastebsktcls_wpclsInitData(M_WPWasteBskt *somSelf);
  544. #ifndef parent_wpclsInitData
  545. static char *somMN_wpclsInitData = "wpclsInitData";
  546. static somId somId_wpclsInitData = &somMN_wpclsInitData;
  547. #define parent_wpclsInitData(somSelf) \
  548.     ((SOM_ParentResolveE(M_WPObject, SOM_CurrentClass, wpclsInitData)) \
  549.      (somSelf))
  550. #endif
  551. #define M_WPWasteBsktParent_wpclsInitData parent_wpclsInitData
  552.  
  553. /*
  554.  * Overridden method: wpclsQueryIcon
  555.  */
  556. #pragma linkage(wpwastebsktcls_wpclsQueryIcon, system)
  557. SOM_Scope HPOINTER   SOMLINK wpwastebsktcls_wpclsQueryIcon(M_WPWasteBskt *somSelf);
  558. #ifndef parent_wpclsQueryIcon
  559. static char *somMN_wpclsQueryIcon = "wpclsQueryIcon";
  560. static somId somId_wpclsQueryIcon = &somMN_wpclsQueryIcon;
  561. #define parent_wpclsQueryIcon(somSelf) \
  562.     ((SOM_ParentResolveE(M_WPObject, SOM_CurrentClass, wpclsQueryIcon)) \
  563.      (somSelf))
  564. #endif
  565. #define M_WPWasteBsktParent_wpclsQueryIcon parent_wpclsQueryIcon
  566.  
  567. /*
  568.  * Overridden method: wpclsUnInitData
  569.  */
  570. #pragma linkage(wpwastebsktcls_wpclsUnInitData, system)
  571. SOM_Scope void   SOMLINK wpwastebsktcls_wpclsUnInitData(M_WPWasteBskt *somSelf);
  572. #ifndef parent_wpclsUnInitData
  573. static char *somMN_wpclsUnInitData = "wpclsUnInitData";
  574. static somId somId_wpclsUnInitData = &somMN_wpclsUnInitData;
  575. #define parent_wpclsUnInitData(somSelf) \
  576.     ((SOM_ParentResolveE(M_WPObject, SOM_CurrentClass, wpclsUnInitData)) \
  577.      (somSelf))
  578. #endif
  579. #define M_WPWasteBsktParent_wpclsUnInitData parent_wpclsUnInitData
  580.  
  581. /*
  582.  * Temporary class data structure used only in class creation
  583.  */
  584. static somClassDataStructure M_WPWasteBskttempClassData;
  585.  
  586. /*
  587.  * Initialize the class data structure
  588.  */
  589. struct M_WPWasteBsktClassDataStructure M_WPWasteBsktClassData = {(SOMAny *) NULL};
  590.  
  591. /*
  592.  * Define the C class data structure
  593.  */
  594. struct M_WPWasteBsktCClassDataStructure M_WPWasteBsktCClassData = {(somMethodTab *) NULL};
  595.  
  596. /*
  597.  * Routines to create the class object
  598.  */
  599.  
  600. /*
  601.  * Declare the Override Methods table.
  602.  */
  603. static somOverrideMethod_t M_WPWasteBsktOM[] = {
  604.     {    &somId_wpclsQueryTitle,
  605.          (somMethodProc *) wpwastebsktcls_wpclsQueryTitle    },
  606.     {    &somId_wpclsInitData,
  607.          (somMethodProc *) wpwastebsktcls_wpclsInitData    },
  608.     {    &somId_wpclsQueryIcon,
  609.          (somMethodProc *) wpwastebsktcls_wpclsQueryIcon    },
  610.     {    &somId_wpclsUnInitData,
  611.          (somMethodProc *) wpwastebsktcls_wpclsUnInitData    },
  612. };
  613.  
  614. static void M_WPWasteBsktsomInitializeClass ()
  615. {
  616.     int i;
  617.     somOverrideMethod_t *omp;
  618.  
  619. /*
  620.  * Override methods.
  621.  */
  622.     for (omp = M_WPWasteBsktOM, i = 0; i < 4; omp++, i++)
  623.         _somOverrideSMethod (M_WPWasteBskttempClassData.classObject,
  624.             *(omp->methodId), omp->method);
  625.  
  626. }
  627.  
  628. #pragma linkage(M_WPWasteBsktsomCreateClass, system)
  629. static void SOMLINK M_WPWasteBsktsomCreateClass(SOMClass *pClsObj,
  630.                            SOMClass *mClsObj)
  631. {
  632.     M_WPWasteBskttempClassData.classObject = _somNew (mClsObj);
  633.     _somInitClass (M_WPWasteBskttempClassData.classObject,
  634.         "M_WPWasteBskt",
  635.         pClsObj,
  636.         0,
  637.         M_WPWasteBskt_MaxNoMethods,
  638.         M_WPWasteBskt_MajorVersion,
  639.         M_WPWasteBskt_MinorVersion);
  640.     M_WPWasteBsktCClassData.instanceDataToken = 
  641.     _somGetInstanceToken(M_WPWasteBskttempClassData.classObject);
  642.     M_WPWasteBsktsomInitializeClass();
  643.     M_WPWasteBsktCClassData.parentMtab =
  644.     _somGetPClsMtab(M_WPWasteBskttempClassData.classObject);
  645.     _somSetClassData(M_WPWasteBskttempClassData.classObject, (somClassDataStructure *)&M_WPWasteBsktClassData);
  646.     _somClassReady(M_WPWasteBskttempClassData.classObject);
  647.     /* make newly created class object visible */
  648.     M_WPWasteBsktClassData.classObject = M_WPWasteBskttempClassData.classObject;
  649. }
  650.  
  651. M_WPWasteBskt * SOMLINK M_WPWasteBsktNewClass (integer4 scemajorVersion,
  652.         integer4 sceminorVersion)
  653. {
  654.     SOMClass *pClsObj;
  655.     SOMClass *mClsObj;
  656.  
  657.     /* Check the version numbers */
  658.     if (((scemajorVersion != 0) && 
  659.          (scemajorVersion != M_WPWasteBskt_MajorVersion)) ||
  660.         ((sceminorVersion != 0) && 
  661.          (sceminorVersion > M_WPWasteBskt_MinorVersion))) {
  662.     somPrintf("M_WPWasteBsktNewClass: Error, bad version numbers.\n");
  663.     SOM_Error(SOMERROR_BadVersion);
  664.     }
  665.     /* Don't do anything if class object is already created. */
  666.     if (M_WPWasteBsktClassData.classObject != (SOMAny *) NULL)
  667.     return(M_WPWasteBsktClassData.classObject);
  668.  
  669.     /* Make sure the environment is initialized. */
  670.     if (SOMClassMgrObject == (SOMAny *) NULL) somEnvironmentNew();
  671.     if (SOMClassMgrObject == (SOMAny *) NULL)
  672.     SOM_Error(SOMERROR_CouldNotStartup);
  673.  
  674.     /* Get the parent class object. */
  675.     M_WPFolderNewClass(1,2);    /* static reference */
  676.     pClsObj = _somFindClass(SOMClassMgrObject,
  677.         SOM_IdFromString("M_WPFolder"), 1, 2);
  678.     if (pClsObj == (SOMClass *) NULL)
  679.     SOM_Error(SOMERROR_NoParentClass);
  680.  
  681.     /* Use parent's metaclass */ 
  682.     mClsObj = SOM_GetClass(pClsObj);
  683.  
  684.     somConstructClass(M_WPWasteBsktsomCreateClass, pClsObj, mClsObj,
  685.              &M_WPWasteBskttempClassData);
  686.     return (M_WPWasteBsktClassData.classObject);
  687. }
  688.  
  689. #endif                   /* M_WPWasteBskt_Class_Source */
  690.  
  691. #endif       /* wastebsk_ih */
  692.