e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
177 lines
5.1 KiB
C#
177 lines
5.1 KiB
C#
//-----------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
namespace System.ServiceModel.ComIntegration
|
|
{
|
|
using System;
|
|
using System.ServiceModel.Channels;
|
|
using System.Runtime.InteropServices;
|
|
|
|
[Serializable]
|
|
[ComVisible(false)]
|
|
enum ThreadPoolOption
|
|
{
|
|
None = 0,
|
|
Inherit = 1,
|
|
STA = 2,
|
|
MTA = 3
|
|
}
|
|
|
|
[Serializable]
|
|
[ComVisible(false)]
|
|
enum BindingOption
|
|
{
|
|
NoBinding = 0,
|
|
BindingToPoolThread = 1
|
|
}
|
|
|
|
[Serializable]
|
|
[ComVisible(false)]
|
|
enum SxsOption
|
|
{
|
|
Ignore = 0,
|
|
Inherit = 1,
|
|
New = 2
|
|
}
|
|
|
|
[Serializable]
|
|
[ComVisible(false)]
|
|
enum PartitionOption
|
|
{
|
|
Ignore = 0,
|
|
Inherit = 1,
|
|
New = 2
|
|
}
|
|
|
|
[Serializable]
|
|
[ComVisible(false)]
|
|
enum TransactionConfig
|
|
{
|
|
NoTransaction = 0,
|
|
IfContainerIsTransactional = 1,
|
|
CreateTransactionIfNecessary = 2,
|
|
NewTransaction = 3
|
|
}
|
|
|
|
[Serializable]
|
|
[ComVisible(false)]
|
|
enum CSC_SxsConfig
|
|
{
|
|
CSC_NoSxs = 0,
|
|
CSC_InheritSxs = 1,
|
|
CSC_NewSxs = 2
|
|
}
|
|
|
|
[ComImport]
|
|
[Guid("186d89bc-f277-4bcc-80d5-4df7b836ef4a")]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IServiceThreadPoolConfig
|
|
{
|
|
void SelectThreadPool(ThreadPoolOption threadPool);
|
|
void SetBindingInfo(BindingOption binding);
|
|
}
|
|
|
|
|
|
[ComImport]
|
|
[Guid("80182d03-5ea4-4831-ae97-55beffc2e590")]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IServicePartitionConfig
|
|
{
|
|
void PartitionConfig(PartitionOption partitionConfig);
|
|
void PartitionID(
|
|
[In, MarshalAs(UnmanagedType.LPStruct)] Guid guidPartitionID);
|
|
}
|
|
|
|
[ComImport]
|
|
[Guid("33CAF1A1-FCB8-472b-B45E-967448DED6D8")]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IServiceSysTxnConfig
|
|
{
|
|
// NOTE: This is actually IServiceSysTxnConfigInternal.
|
|
void ConfigureTransaction(TransactionConfig transactionConfig);
|
|
void IsolationLevel(int option);
|
|
void TransactionTimeout(uint ulTimeoutSec);
|
|
void BringYourOwnTransaction([MarshalAs(UnmanagedType.LPWStr)] string szTipURL);
|
|
void NewTransactionDescription([MarshalAs(UnmanagedType.LPWStr)] string szTxDesc);
|
|
void ConfigureBYOT(IntPtr pITxByot);
|
|
void ConfigureBYOTSysTxn(IntPtr pITxByot);
|
|
}
|
|
|
|
[ComImport]
|
|
[Guid("C7CD7379-F3F2-4634-811B-703281D73E08")]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IServiceSxsConfig
|
|
{
|
|
void SxsConfig(CSC_SxsConfig sxsConfig);
|
|
void SxsName([MarshalAs(UnmanagedType.LPWStr)] string szSxsName);
|
|
void SxsDirectory([MarshalAs(UnmanagedType.LPWStr)] string szSxsDirectory);
|
|
}
|
|
|
|
[ComImport]
|
|
[Guid("59f4c2a3-d3d7-4a31-b6e4-6ab3177c50b9")]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IServiceTransactionConfig
|
|
{
|
|
// NOTE: This is actually IServiceSysTxnConfigInternal.
|
|
void ConfigureTransaction(TransactionConfig transactionConfig);
|
|
void IsolationLevel(int option);
|
|
void TransactionTimeout(uint ulTimeoutSec);
|
|
void BringYourOwnTransaction([MarshalAs(UnmanagedType.LPWStr)] string szTipURL);
|
|
void NewTransactionDescription([MarshalAs(UnmanagedType.LPWStr)] string szTxDesc);
|
|
void ConfigureBYOT(IntPtr pITxByot);
|
|
}
|
|
|
|
|
|
[ComImport]
|
|
[Guid("ecabb0c8-7f19-11d2-978e-0000f8757e2a")]
|
|
class CServiceConfig { }
|
|
|
|
[ComImport]
|
|
[Guid("BD3E2E12-42DD-40f4-A09A-95A50C58304B")]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IServiceCall
|
|
{
|
|
void OnCall();
|
|
}
|
|
|
|
|
|
[ComImport]
|
|
[Guid("67532E0C-9E2F-4450-A354-035633944E17")]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IServiceActivity
|
|
{
|
|
void SynchronousCall(IServiceCall pIServiceCall);
|
|
void AsynchronousCall(IServiceCall pIServiceCall);
|
|
void BindToCurrentThread();
|
|
void UnbindFromThread();
|
|
}
|
|
|
|
[ComImport]
|
|
[Guid("000001ce-0000-0000-C000-000000000046")]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
interface IComThreadingInfo
|
|
{
|
|
void GetCurrentApartmentType(out uint aptType);
|
|
void GetCurrentThreadType(out uint threadType);
|
|
void GetCurrentLogicalThreadId(out Guid guidLogicalThreadID);
|
|
void SetCurrentLogicalThreadId([In, MarshalAs(UnmanagedType.LPStruct)] Guid guidLogicalThreadID);
|
|
};
|
|
|
|
[ComImport,
|
|
Guid("75B52DDB-E8ED-11D1-93AD-00AA00BA3258"),
|
|
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
|
|
internal interface IObjectContextInfo
|
|
{
|
|
[PreserveSig]
|
|
[return: MarshalAs(UnmanagedType.Bool)]
|
|
bool IsInTransaction();
|
|
[PreserveSig]
|
|
[return: MarshalAs(UnmanagedType.Interface)]
|
|
Object GetTransaction();
|
|
void GetTransactionId(out Guid guid);
|
|
void GetActivityId(out Guid guid);
|
|
void GetContextId(out Guid guid);
|
|
}
|
|
|
|
}
|