
// @(#) 1.3 com/src/odscript/idl/comp.idl, odscript, od96nt, odnt9712d 10/31/96 12:44:03 [3/21/97 17:26:46]
//
// ===========================================================================
//
// Component
//
// This class is the base class for Components to be managed by the OpenDoc
// Component Manager.  These classes are intended to be used as a way to
// expand the function available to OpenDoc parts.  For example the OpenDoc
// Direct Scripting support uses a DirectScripting Component to allow the
// dynamic installation and use of new scripting language support classes.
//
// ===========================================================================

#include <somobj.idl>
#include <somcls.idl>

#ifndef _ODTYPESM_
#include <ODTypesM.idl>
#endif

#ifndef _COMPONENT_
#define _COMPONENT_

//==============================================================================
// Class defined in this interface
//==============================================================================

interface Component;

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

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

typedef somToken OSErr;

//==============================================================================
// Class Component
//==============================================================================

interface Component : SOMObject {

        OSErr   GetComponentInstanceError();

        void    SetComponentInstanceError(in OSErr theError);

        ODULong GetComponentVersion();


#ifdef __SOMIDL__

implementation {

        OSErr     componentError;
        ODULong   componentVersion;

        majorversion = 1;
        minorversion = 0;
        dllname = "oddsscr.dll";
        somDefaultInit: override, init;
        somDestruct: override;
        functionprefix = COMP_;
        releaseorder :  GetComponentInstanceError,
                        SetComponentInstanceError,
                        GetComponentVersion,
                        Reserved1;

};

#endif

};

#endif
