//----------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.ComIntegration { using System; using System.Runtime.InteropServices; using System.Security; using System.Transactions; internal enum DtcIsolationLevel { ISOLATIONLEVEL_UNSPECIFIED = -1, ISOLATIONLEVEL_CHAOS = 0x10, ISOLATIONLEVEL_READUNCOMMITTED = 0x100, ISOLATIONLEVEL_BROWSE = 0x100, ISOLATIONLEVEL_CURSORSTABILITY = 0x1000, ISOLATIONLEVEL_READCOMMITTED = 0x1000, ISOLATIONLEVEL_REPEATABLEREAD = 0x10000, ISOLATIONLEVEL_SERIALIZABLE = 0x100000, ISOLATIONLEVEL_ISOLATED = 0x100000 } [SuppressUnmanagedCodeSecurity] [ComImport] [Guid("02558374-DF2E-4dae-BD6B-1D5C994F9BDC")] [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] interface ITransactionProxy { void Commit(Guid guid); void Abort(); [return: MarshalAs(UnmanagedType.Interface)] IDtcTransaction Promote(); void CreateVoter( [MarshalAs(UnmanagedType.Interface)] ITransactionVoterNotifyAsync2 voterNotification, IntPtr voterBallot); DtcIsolationLevel GetIsolationLevel(); Guid GetIdentifier(); bool IsReusable(); } [SuppressUnmanagedCodeSecurity] [ComImport] [Guid("5433376C-414D-11d3-B206-00C04FC2F3EF")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface ITransactionVoterBallotAsync2 { void VoteRequestDone( int hr, int reason ); } [SuppressUnmanagedCodeSecurity] [ComImport] [Guid("3A6AD9E2-23B9-11cf-AD60-00AA00A74CCD")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface ITransactionOutcomeEvents { void Committed([MarshalAs(UnmanagedType.Bool)] bool retaining, int newUow, int hr); void Aborted(int reason, [MarshalAs(UnmanagedType.Bool)] bool retaining, int newUow, int hr); void HeuristicDecision( int decision, int reason, int hr); void InDoubt(); } [SuppressUnmanagedCodeSecurity] [ComImport] [Guid("5433376B-414D-11d3-B206-00C04FC2F3EF")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface ITransactionVoterNotifyAsync2 { void Committed( [MarshalAs(UnmanagedType.Bool)] bool retaining, int newUow, int hr); void Aborted( int reason, [MarshalAs(UnmanagedType.Bool)] bool retaining, int newUow, int hr); void HeuristicDecision( int decision, int reason, int hr); void InDoubt(); void VoteRequest(); } }