//
//   COMPONENT_NAME: somuc
//
//   ORIGINS: 82, 81, 27
//
//
//   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
//   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.
//
//   Copyright © 1988-92 Apple Computer, Inc.  All rights reserved.
/*
 * CLASS_NAME: somf_MOrderableCollectible
 *
 * DESCRIPTION: MOrderableCollectible should be mixed into objects which
 *              might want to be ordered.
 *
 */
#ifndef MOrder_idl
#define MOrder_idl
#include "mcollect.idl"
interface somf_MOrderableCollectible : somf_MCollectible
{
  enum EComparisonResult { kLessThan, kEqual, kGreaterThan } ;
typedef somMToken somf_MOrderableCompareFn;
typedef somMToken somf_MBetterOrderableCompareFn;
typedef somf_MOrderableCollectible* somf_MOrderableCollectiblePtr;
  boolean somfIsGreaterThan(in somf_MOrderableCollectible obj);
  // Returns TRUE if obj is "greater than" this.
  boolean somfIsLessThan(in somf_MOrderableCollectible obj);
  // Returns TRUE if obj is "less than" this.
  EComparisonResult somfCompare(in somf_MOrderableCollectible obj);
  // This method compares obj to this.
  boolean somfIsGreaterThanOrEqualTo(in somf_MOrderableCollectible obj);
  // Returns TRUE if obj is "greater than" or "equal to" this.
  boolean somfIsLessThanOrEqualTo(in somf_MOrderableCollectible obj);
  // Returns TRUE if obj is "less than" or "equal to" this.
#ifdef __SOMIDL__
  implementation {
    releaseorder: somfClone, somfClonePointer,
		  somfHash, somfIsEqual,
		  somfIsSame, somfIsNotEqual,
		  somfIsGreaterThan, somfIsLessThan,
		  somfCompare, somfIsGreaterThanOrEqualTo,
		  somfIsLessThanOrEqualTo;
    majorversion = 2;
    minorversion = 1;
    filestem = morder;
    dllname = "somuc.dll";
    passthru C_xh_after =  ""
""
"#define SOMF_CALL_ORDERABLE_COMPARE_FN(obj,token,parameter) (((somTD_somf_MOrderableCollectible_somfIsLessThan) somResolve(obj,token))(obj, ev, parameter))"
""
"#define SOMF_CALL_BETTER_ORDERABLE_COMPARE_FN(obj,token,parameter) (((somTD_somf_MOrderableCollectible_somfCompare) somResolve(obj,token))(obj, ev, parameter))"
"";
    passthru C_h_after =  ""
""
"#define SOMF_CALL_ORDERABLE_COMPARE_FN(obj,token,parameter) (((somTD_somf_MOrderableCollectible_somfIsLessThan) somResolve(obj,token))(obj, ev, parameter))"
""
"#define SOMF_CALL_BETTER_ORDERABLE_COMPARE_FN(obj,token,parameter) (((somTD_somf_MOrderableCollectible_somfCompare) somResolve(obj,token))(obj, ev, parameter))"
"";
    somfIsGreaterThan: nomodify;
    somfIsLessThan: nomodify;
    somfCompare: nomodify;
    somfIsGreaterThanOrEqualTo: nomodify;
    somfIsLessThanOrEqualTo: nomodify;
  };
#endif /* __SOMIDL__ */
};
#endif  /* MOrder_idl */
