//
//   COMPONENT_NAME: somm
//
//   ORIGINS: 27
//
//
//    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1996,1996  
//   All Rights Reserved
//   Licensed Materials - Property of IBM
//   US Government Users Restricted Rights - Use, duplication or
//   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//
//#  @(#) /45 1.16 6/13/96 16:08:34 [12/22/96 21:13:44]


#ifndef sombacls_idl
#define sombacls_idl

#include <somcls.idl>

interface SOMMBeforeAfter
			  : SOMClass
{
  boolean sommBeforeMethod(in SOMObject object, 
		 	 in somId methodId, 
			 in va_list ap);
  // returns one of the following values:
  //      TRUE  --  continue Before/After processing
  //      FALSE --  skip to executing After method that is after
  //                the corresponding After method
  //                (this includes skipping the requested method)

  void sommAfterMethod(in SOMObject object, 
			in somId methodId, 
			in somToken returnedvalue, 
			in va_list ap);


	 #ifdef __SOMIDL__
	 implementation 
	 {
	   releaseorder: sommBeforeMethod,
			 sommAfterMethod;

	   //# Class Modifiers
	   majorversion = 2;
	   minorversion = 2;
	   filestem = sombacls;
	   callstyle = idl;
	   dllname = "somu.dll";


	 };
	 #endif /* __SOMIDL__ */
};

#if defined(__SOM_KERNEL_LEVEL) && (__SOM_KERNEL_LEVEL >= 300 )
interface SOMMSaferBeforeAfter : SOMMBeforeAfter {
	#ifdef __SOMIDL__
	implementation 
	{
 	  //# Class Modifiers
 	  filestem = sombacls;
	  functionprefix = SOMMBA2;
	   dllname = "somu.dll";
	};
	#endif /* __SOMIDL__ */
};
#endif

#endif  /* sombacls_idl */
