#ifdef __PRIVATE__
//#
//#	File:		SemtIntf.idl
//#
//#	Contains:	Class definition for ODCPlusSemanticInterface
//#
//#	Owned by:	Nick Pilch
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <2>	  1/9/95	NP		1194880: SemtIntf name changes.
//#		 <1>	11/15/94	NP		first checked in
//#		 <7>	  9/9/94	NP		1185851: implement scripting. 1184040: API
//#									changes.
//#		 <6>	  7/8/94	NP		Added CallTokenInquiryProc.
//#		 <5>	  7/5/94	NP		Renamed private field.
//#		 <4>	 6/29/94	NP		Added overrides.
//#		 <3>	 6/28/94	NP		Added GetSIHelper.
//#		 <2>	 6/24/94	NP		First public checkin.
//#		 <1>	  6/8/94	RR		first checked in
//#		 <1>	  6/8/94	RR		first checked in
//#		 <1>	  6/8/94	RR		first checked in
//#		 <1>	  6/8/94	RR		first checked in
//#		 <3>	  6/7/94	RR		Privatise change log
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _SEMTINTF_
#define _SEMTINTF_

#ifndef _SEMTINTB_
#include "SemtIntB.idl"
#endif

//==============================================================================
// Classes defined in this interface
//==============================================================================

interface   ODCPlusSemanticInterface;

//==============================================================================
// Classes used by this interface
//==============================================================================

interface   ODPart;
interface   ODSession;

//=====================================================================================
// Implementation Types
//=====================================================================================

typedef somToken SIHelperAbs;

//==============================================================================
// ODCPlusSemanticInterface
//==============================================================================

//ram#ifdef _PLATFORM_MACINTOSH_

interface ODCPlusSemanticInterface : ODSemanticInterface
{
	void InitCPlusSemanticInterface(in ODPart base, in SIHelperAbs* helper,
								in ODSession session);

	SIHelperAbs* GetSIHelper();

#ifdef __SOMIDL__
	implementation
	{
  		functionprefix = ODCPlusSemanticInterface;

		override:
			somInit,
			somUninit,
			CallEventHandler,
			CallCoercionHandler,
			CallObjectAccessor,
			CallPredispatchProc,
			CallCompareProc,
			CallCountProc,
			CallDisposeTokenProc,
			CallGetErrDescProc,
			CallGetMarkTokenProc,
			CallMarkProc,
			CallAdjustMarksProc,
			CallTokenInquiryProc;
		releaseorder:
			InitCPlusSemanticInterface,
			GetSIHelper;

		#ifdef	__PRIVATE__
		passthru	C_xih	=	"
		""
		"#include	\"SIHelper.h\""
		""
		"struct OSLContext;"					//#	figure out where to put
		"typedef OSLContext ODOSLContext;"		//#	this!
		"const ODSize	kOSLContextSize = sizeof(ODOSLContext*);"
		"";

		SIHelperAbs*	fHelper;
		#endif

		passthru	C_xh	=	"
		""
		"class	SIHelperAbs;"
		"";
	};
#endif //# __SOMIDL__
};


//ram#endif //# _PLATFORM_MACINTOSH_


#endif //# _SEMTINTF_
