/* @(#)Z 1.13 com/src/core/idl/ODSessnB.idl, odcore, od96nt, odnt9712d 97/03/21 16:44:25 (97/02/26 15:24:13) */
//#====START_GENERATED_PROLOG======================================
//#
//#
//#   COMPONENT_NAME: odcore
//#
//#   CLASSES: none
//#
//#   ORIGINS: 82,27
//#
//#
//#   (C) COPYRIGHT International Business Machines Corp. 1995,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.
//#   	
//#   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
//#   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
//#   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
//#   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
//#   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
//#   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
//#   OR PERFORMANCE OF THIS SOFTWARE.
//#
//#====END_GENERATED_PROLOG========================================
//#

#ifdef __PRIVATE__
//#
//#	File:		ODSessnB.idl
//#
//#	Contains:	Interfaces to ODBaseSession object. 
//#
//#	Owned by:	Nick Pilch
//#
//#	Copyright:	(r) 1993 - 1995 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		<13>	 8/16/95	NP		1275241: IDL Review. Add version.
//#		<12>	  8/3/95	RR		#1257260: Collapse B classes. Remove
//#									somInit methods. Don't call IsInitialized
//#									or SubclassResponsibility
//#		<11>	 5/25/95	VL		1251403: Multithreading naming support.
//#		<10>	 5/18/95	DM		#1250474: RemoveEntry(in ODType type)
//#									inout->in
//#		 <9>	 5/11/95	NP		1248917: Remove unused method.
//#		 <8>	  1/9/95	NP		1196615: ODSession::Get/SetShellSemtIntf
//#									changes.
//#		 <7>	 10/7/94	CC		1191489 - Moved UniqueChangeID() to
//#									ODSession.
//#		 <6>	 9/14/94	jpa		Removed reference to obsolete ODMemoryHeap
//#									class [1186692].
//#		 <5>	  9/8/94	NP		Changed some comments to SOM comments.
//#		 <4>	 8/19/94	NP		1181622: Ownership fix.
//#		 <3>	 8/13/94	NP		1180819-Added support for private
//#									ScritingObject.
//#		 <2>	 8/12/94	NP		1180762-Moved stuff between B and non_B
//#									file. Added setters. changed getusername.
//#									Removed GetSemtInterface.
//#		 <1>	 6/23/94	CG		first checked in
//#		 <2>	 6/14/94	CG		Removed fBinding and fNameSpaceManager.
//#		 <1>	  6/8/94	CG		first checked in
//#		 <5>	  6/7/94	RR		Privatize change history
//#		 <7>	 5/12/94	RR		First Checked in	
//#
//#	To Do:
//#	In Progress:
//#
#else
//#	Copyright:	(r) 1993 - 1995 by Apple Computer, Inc., all rights reserved.
#endif

#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

#ifdef __PRIVATE__
//=====================================================================================
// Implementation Types
//=====================================================================================

typedef somToken TokenTable;
typedef somToken ScriptingObject;
typedef somToken WindowSystemData;
#ifdef _PLATFORM_WIN32_
    typedef somToken ODOLEManager;
#endif
#endif

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

interface ODBaseSession :  ODObject
{
  //#---------------------------------
  //# Global Getters/Setters

   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);

  //#---------------------------------
  //# Semantic Events

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

  //#---------------------------------
  //# Types and Token

   ODTypeToken Tokenize(in ODType type);
    
   void RemoveEntry( in ODType type);
    
   ODBoolean GetType(in ODTypeToken token, out ODType type);
    
#ifdef __PRIVATE__
   void  InitBaseSession();
   TokenTable*  GetTokenTable();
   void  SetTokenTable(in TokenTable* table);
   WindowSystemData*	GetWindowSystemData();
   void  SetWindowSystemData(in WindowSystemData* windowSystemData);

   #ifdef _PLATFORM_WIN32_
       ODOLEManager* GetOleManager();
       void SetOleManager(in ODOLEManager* OLEManager);
   #endif
#endif

#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,
	#ifdef __PRIVATE__
        InitBaseSession,
        GetTokenTable,
        SetTokenTable,
  	GetWindowSystemData,
	#ifdef _PLATFORM_WIN32_
	    SetWindowSystemData,
	    GetOleManager,
	    SetOleManager;
	#else
	    SetWindowSystemData;
	#endif

	#else
        reserved1,
        reserved2,
        reserved3,
        reserved4,
        reserved5,
	#ifdef _PLATFORM_WIN32_
            reserved6,
            reserved7,
            reserved8;
	#else
	    reserved6;
	#endif
	#endif

    #ifdef __PRIVATE__
        ODArbitrator            fArbitrator;
        ODBinding               fBinding;
        ODClipboard             fClipboard;
        ODDispatcher	        fDispatcher;
        ODDragAndDrop           fDragAndDrop;
        ODInfo                  fInfo;
        ODLinkManager           fLinkManager;
        ODMessageInterface      fMessageInterface;
        ODNameResolver          fNameResolver;
        ODNameSpaceManager      fNameSpaceManager;
        ODStorageSystem         fStorage;
        ODTranslation           fTranslation;
        ODUndo                  fUndo;
#ifdef _TOOLSPACE_
        ODToolSpaceManager      fToolSpaceManager;
#endif
        ODSemanticInterface     fShellSemtInterface;
        ODWindowState           fWindowState;
        WindowSystemData 	fWindowSystemData;
        TokenTable*	        fTokenTable;
	#ifdef _PLATFORM_WIN32_
	    ODOLEManager*	fOLEManager;
	#endif
	  
        passthru C_xh = 
	  	""
	  	"class TokenTable;"
		"#include <WinStat.xh>"
	#ifdef _PLATFORM_WIN32_
	  	"class ODOLEManager;"
	#endif
		"";
    #endif
  };
#endif
};


#endif // _BASESESS_

