/* @(#)Z 1.3 com/src/include/c/ShPlugIn.h, odcore, od96nt, odnt9712d 97/03/21 16:52:09 (97/03/14 17:01:42) */
/*====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========================================
 */
/*
	File:		ShPlugIn.h

	Contains:	Interface and constants for ShellPlugin Shared Libraries

	Owned by: Eric House

	Copyright:	(C) 1993-95 by Apple Computer, Inc., all rights reserved.

	Change History (most recent first):

		 <5>	 9/27/95	eeh		1284893: fix capitalization
		 <4>	 9/26/95	eeh		1284893: remove macros, fix
									kODShellPluginCloseConnection
		 <3>	 9/19/95	eeh		1284893: add kODShellPluginCloseConnection
									etc.
		 <2>	 9/12/95	eeh		1253309: make ODShellPluginInstallProc
									extern 'C'
		 <1>	 9/11/95	eeh		first checked in

	To Do:
	In Progress:
		
*/

#ifndef _SHPLUGIN_
#define _SHPLUGIN_

typedef ODULong ODShellPlugInActionCodes;

// action codes.  ODShellPlugInActionCodes is a bit vector.
// Now there is but one action to be turned
// on or off: kODShellPlugInCloseConnection, which asks the Shell to
// close the connection that was opened in order to call the 
// ODShellPlugInInstallProc.  Later we'll add up to 31 others, among
// which kODShellPlugInCallOnShutdown is an obvious candidate.

#define kODShellPlugInCloseConnection		1<<0
// others to follow (next is 1<<1, then 1<<2, etc.)

// kODShellPlugInNoAction is the value to which action is initalized
// before the ODShellPlugInInstall proc is called.  Clients need only
// set those bits corresponding to actions they want taken on return.
// Leaving them cleared gets them the default behavior: no action.

#define kODShellPlugInNoAction		0x00000000

#ifdef __cplusplus
extern "C" {
#endif

class Environment;
class ODDraft;

typedef OSErr (*ODShellPlugInInstallProc)( Environment*,
		ODDraft*, ODShellPlugInActionCodes* );

#ifdef __cplusplus
}
#endif

#endif
