/*===================================================================
Microsoft Denali

Microsoft Confidential.
Copyright 1997 Microsoft Corporation. All Rights Reserved.

Component: Transascted Scripts Context Object

File: TxnScrpt.idl

IDL source for ObjectContext object
This file will be processed by the MIDL tool to
produce the type library (TxnScrpt.tlb) and marshalling code.

Owner: AndrewS
===================================================================*/
import "oaidl.idl";
import "ocidl.idl";
	/*
	 * The IASPObjectContext object supports 3 interfaces,
	 * 1 OleAutomation interface
	 * 1 custom interface
	 * and the MTX IObjectControl interface
	 *
	 * The first two are defined here.
	 */
	[
		object,
		uuid(D97A6DA2-9C1C-11D0-9C3C-00A0C922E764),
		helpstring("IASPObjectContext Custom Interface"),
		pointer_default(unique)
	]
	interface IASPObjectContextCustom : IUnknown
	{
    import "basetsd.h";
		[id(1), helpstring("method SetComplete")] HRESULT SetComplete();
		[id(2), helpstring("method SetAbort")] HRESULT SetAbort();
#ifdef _WIN64
                // Win64 fix -- use UINT64 instead of LONG_PTR since LONG_PTR is broken for Win64 1/21/2000
		[id(3), helpstring("method Call")] HRESULT Call(UINT64 pvScriptEngine, [unique] LPCOLESTR strEntryPoint, [in, out] boolean *pfAborted);
		[id(4), helpstring("method ResetScript")] HRESULT ResetScript(UINT64 pvScriptEngine);
#else
		[id(3), helpstring("method Call")] HRESULT Call(LONG_PTR pvScriptEngine, [unique] LPCOLESTR strEntryPoint, [in, out] boolean *pfAborted);
		[id(4), helpstring("method ResetScript")] HRESULT ResetScript(LONG_PTR pvScriptEngine);
#endif
	};

	[
		uuid(D97A6DA3-9C1C-11D0-9C3C-00A0C922E764),
		helpstring("IASPObjectContext Interface"),
		oleautomation,
		pointer_default(unique)
	]
	interface IASPObjectContext : IDispatch
	{
		[id(1), helpstring("method SetComplete")] HRESULT SetComplete();
		[id(2), helpstring("method SetAbort")] HRESULT SetAbort();
	};
	
[
	uuid(D97A6DA0-9C1C-11D0-9C3C-00A0C922E764),
	version(2.0),
	helpstring("Microsoft Active Server Pages ObjectContext Object Library")
]
library ASPTxnTypeLibrary
{
	importlib("stdole2.tlb");

	[
		uuid(14D0916D-9CDC-11D1-8C4A-00C04FC324A4),
		helpstring("Transacted Script ObjectContextTxRequired Class")
	]
	coclass ASPObjectContextTxRequired
	{
		[default] interface IASPObjectContext;
				  interface IASPObjectContextCustom;
	};

	[
		uuid(14D0916E-9CDC-11D1-8C4A-00C04FC324A4),
		helpstring("Transacted Script ObjectContextTxRequiresNew Class")
	]
	coclass ASPObjectContextTxRequiresNew
	{
		[default] interface IASPObjectContext;
				  interface IASPObjectContextCustom;
	};
	
	[
		uuid(14D0916F-9CDC-11D1-8C4A-00C04FC324A4),
		helpstring("Transacted Script ObjectContextTxSupported Class")
	]
	coclass ASPObjectContextTxSupported
	{
		[default] interface IASPObjectContext;
				  interface IASPObjectContextCustom;
	};

	[
		uuid(14D09170-9CDC-11D1-8C4A-00C04FC324A4),
		helpstring("Transacted Script ObjectContextTxNotSupported Class")
	]
	coclass ASPObjectContextTxNotSupported
	{
		[default] interface IASPObjectContext;
				  interface IASPObjectContextCustom;
	};
	
};
