/* @(#) 1.8 nt/src/storage/idl/DragDrp.idl, oddataxfer, od96nt, odnt9712d 11/1/96 18:16:27 [3/21/97 17:16:33] */


#ifndef _DRAGDROP_
#define _DRAGDROP_

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

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

interface  ODDragAndDrop;

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

interface	ODSession;
interface	ODPart;
interface	ODStorageUnit;
interface	ODFacet;
interface	ODFrame;
interface	ODDraft;
interface	ODStorageSystem;
interface	ODWindowState;
interface	ODPlatformDragReference;
interface	ODDragItemIterator;
interface   ODPoint;
interface   ODULong;
interface   ODRgnHandle;
interface   ODPlatformWindow;
interface   ODBoolean;


//=====================================================================================
// ODDragAndDrop
//=====================================================================================

interface ODDragAndDrop :  ODObject
{
	void Clear();

	ODStorageUnit  GetContentStorageUnit();

	ODDropResult StartDrag(in ODFrame srcFrame,
					in ODType imageType,
					in ODByteArray image,
					out ODPart destPart,
					in ODByteArray refCon);

	ODBoolean ShowPasteAsDialog(
					in		ODBoolean				canPasteLink,
					in		ODPasteAsMergeSetting	mergeSetting,
					in		ODFacet					facet,
					in		ODTypeToken				viewType,
					in		ODStorageUnit			contentSU,
					out		ODPasteAsResult			theResult);

	ODULong GetDragAttributes();

	ODPlatformDragReference GetDragReference();


#ifdef __SOMIDL__
	implementation
	{
		functionprefix = ODDragAndDrop;
		override:
			somUninit;

		releaseorder:
			Clear,
			GetContentStorageUnit,
			StartDrag,
			ShowPasteAsDialog,
			GetDragAttributes,
			GetDragReference,
			// reserved01 -- Clear
			// reserved02 -- GetContentStorageUnit
			// reserved03 -- StartDrag
			// reserved04 -- ShowPasteAsDialog
			// reserved05 -- GetDragAttributes
			// reserved06 -- GetDragReference
			reserved07,
			reserved08,
			reserved09,
			reserved10,
			reserved11,
			reserved12,
			reserved13,
			reserved14,
			reserved15,
			reserved16,
			reserved17,
			reserved18,
			reserved19,
			reserved20,
			reserved21,
			reserved22,
			reserved23,
			reserved24,
			reserved25,
			reserved26,
			reserved27,
			reserved28,
			reserved29,
			reserved30,
			reserved31,
			reserved32,
			reserved33,
			reserved34,
			reserved35,
			reserved36,
			reserved37,
			reserved38,
			reserved39,
			reserved40,
			reserved41,
			reserved42;

			majorversion = 1; minorversion = 0;

			passthru C_h = 
				"";

			passthru C_xh = 
				"";


	};
#endif  // __SOMIDL__

};
#endif  // _DRAGDROP_
