/* @(#)Z 1.13 com/src/core/idl/ODSessnB.idl, odcore, od96nt, odnt9712d 97/03/21 16:44:25 (97/02/26 15:24:13) */


#ifndef _ODSESSNB_
#define _ODSESSNB_

#ifndef _ODOBJECT_
#include "ODObject.idl"
#endif

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

interface   ODBaseSession;

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

interface   ODWindowState;
interface   ODDispatcher;
interface   ODArbitrator;
interface   ODStorageSystem;
interface   ODClipboard;
interface   ODDragAndDrop;
interface   ODLinkManager;
interface   ODNameSpaceManager;
interface   ODMessageInterface;
interface   ODNameResolver;
interface   ODTranslation;
interface   ODUndo;
interface   ODSemanticInterface;
interface   ODBinding;
interface   ODInfo;
#ifdef _TOOLSPACE_
interface   ODToolSpaceManager;
#endif


//==============================================================================
// ODBaseSession
//==============================================================================

interface ODBaseSession :  ODObject
{

   ODArbitrator GetArbitrator();
   void SetArbitrator(in ODArbitrator arbitrator);

   ODBinding GetBinding();
   void SetBinding(in ODBinding binding);

   ODDispatcher GetDispatcher();
   void SetDispatcher(in ODDispatcher dispatcher);

   ODClipboard GetClipboard();
   void SetClipboard(in ODClipboard clipboard);

   ODDragAndDrop GetDragAndDrop();
   void SetDragAndDrop(in ODDragAndDrop dragAndDrop);

   ODInfo GetInfo();
   void	SetInfo(in ODInfo info);

   ODLinkManager GetLinkManager();
   void SetLinkManager(in ODLinkManager linkManager);

   ODMessageInterface GetMessageInterface();
   void SetMessageInterface(in ODMessageInterface messageInterface);

   ODNameResolver GetNameResolver();
   void SetNameResolver(in ODNameResolver nameResolver);

   ODNameSpaceManager GetNameSpaceManager();
   void SetNameSpaceManager(in ODNameSpaceManager nameSpaceManager);

   ODStorageSystem GetStorageSystem();
   void SetStorageSystem(in ODStorageSystem storageSystem);

   ODTranslation GetTranslation();
   void SetTranslation(in ODTranslation translation);

   ODUndo GetUndo();
   void SetUndo(in ODUndo undo);

#ifdef _TOOLSPACE_
   ODToolSpaceManager GetToolSpaceManager();
   void SetToolSpaceManager(in ODToolSpaceManager toolSpaceManager);
#endif

   ODWindowState GetWindowState();
   void SetWindowState(in ODWindowState windowState);

   ODSemanticInterface AcquireShellSemtInterface();
   void SetShellSemtInterface(in ODSemanticInterface shellSemanticInterface);

   ODTypeToken Tokenize(in ODType type);

   void RemoveEntry( in ODType type);

   ODBoolean GetType(in ODTypeToken token, out ODType type);


#ifdef __SOMIDL__
  implementation
  {
	majorversion = 1; minorversion = 0;

  	functionprefix = ODBaseSession;

    override:
		somUninit;

    releaseorder:
        GetArbitrator,
        GetBinding,
        GetClipboard,
        GetDispatcher,
        GetDragAndDrop,
        GetInfo,
        GetLinkManager,
        GetMessageInterface,
        GetNameResolver,
        GetNameSpaceManager,
        GetStorageSystem,
        GetTranslation,
        GetUndo,
        GetWindowState,
        SetArbitrator,
        SetBinding,
        SetClipboard,
        SetDispatcher,
        SetDragAndDrop,
        SetInfo,
        SetLinkManager,
        SetMessageInterface,
        SetNameResolver,
        SetNameSpaceManager,
        SetStorageSystem,
        SetTranslation,
        SetUndo,
        SetWindowState,
#ifdef _TOOLSPACE_
        GetToolSpaceManager,
        SetToolSpaceManager,
#endif
        AcquireShellSemtInterface,
        SetShellSemtInterface,
        Tokenize,
        RemoveEntry,
        GetType,
        reserved1,
        reserved2,
        reserved3,
        reserved4,
        reserved5,
	#ifdef _PLATFORM_WIN32_
            reserved6,
            reserved7,
            reserved8;
	#else
	    reserved6;
	#endif

  };
#endif
};

#endif // _BASESESS_

