[2/4] include: added transact.idl (resend)

Alexandre Julliard julliard at winehq.org
Wed May 1 04:14:53 CDT 2013


Daniel Jeliński <djelinski1 at gmail.com> writes:

> +import "unknwn.idl";
> +
> +interface ITransaction;
> +interface ITransactionDispenser;
> +interface ITransactionOptions;
> +interface ITransactionOutcomeEvents;
> +interface ITransactionCompletionEvents;
> +
> +/*==========================================================================
> + * Transaction related types
> + *==========================================================================*/
> +
> +[local,pointer_default(unique)]
> +interface BasicTransactionTypes
> +    {
> +
> +    typedef struct BOID {
> +        byte rgb[16];
> +        } BOID;
> +
> +    cpp_quote("#define BOID_NULL (*((BOID*)(&IID_NULL)))")
> +
> +    /* change the following two line together */
> +    cpp_quote("#ifndef MAX_TRAN_DESC_DEFINED")        /* conflicts with uimsg.h. This is temporary work around */
> +    cpp_quote("#define MAX_TRAN_DESC_DEFINED")
> +    typedef enum TX_MISC_CONSTANTS
> +        {
> +        MAX_TRAN_DESC                   = 40
> +        } TX_MISC_CONSTANTS;
> +    cpp_quote("#endif")
> +
> +    /* Unit Of Work. */
> +
> +    typedef BOID XACTUOW;
> +
> +    /* Data type for isolation level values. */
> +
> +    typedef LONG ISOLEVEL;
> +
> +    /* Constants that specifiy isolation level of a transaction. */
> +
> +    typedef enum ISOLATIONLEVEL {
> +        ISOLATIONLEVEL_UNSPECIFIED      = 0xFFFFFFFF,
> +        ISOLATIONLEVEL_CHAOS            = 0x00000010,
> +        ISOLATIONLEVEL_READUNCOMMITTED  = 0x00000100,
> +        ISOLATIONLEVEL_BROWSE           = 0x00000100,   /* Synonym for _READUNCOMITTED */
> +        ISOLATIONLEVEL_CURSORSTABILITY  = 0x00001000,
> +        ISOLATIONLEVEL_READCOMMITTED    = 0x00001000,   /* Synonym for _CURSORSTABILITY */
> +        ISOLATIONLEVEL_REPEATABLEREAD   = 0x00010000,
> +        ISOLATIONLEVEL_SERIALIZABLE     = 0x00100000,
> +        ISOLATIONLEVEL_ISOLATED         = 0x00100000,   /* Synonym for _SERIALIZABLE */
> +        } ISOLATIONLEVEL;
> +
> +    /* Transaction information structure, used in ITransaction */
> +
> +    typedef struct XACTTRANSINFO {
> +        XACTUOW     uow;                        /* The current unit of work */
> +        ISOLEVEL    isoLevel;                   /* The isolation level for the current UOW */
> +        ULONG       isoFlags;                   /* Values from ISOFLAG enumeration */
> +        DWORD       grfTCSupported;             /* Flags indicating capabilities */
> +        DWORD       grfRMSupported;             /*       ... of this transaction wrt */
> +        DWORD       grfTCSupportedRetaining;    /*       ... parameters to Commit */
> +        DWORD       grfRMSupportedRetaining;    /*       ... */
> +        } XACTTRANSINFO;
> +
> +    typedef struct XACTSTATS {
> +        ULONG       cOpen;              /* The number of currently extant transactions. */
> +        ULONG       cCommitting;        /* The number of transactions which are proceding towards committing. */
> +        ULONG       cCommitted;         /* The number of transactions that are have been committed. */
> +        ULONG       cAborting;          /* The number of transactions which are in the process of aborting. */
> +        ULONG       cAborted;           /* The number of transactions that are have been aborted. */
> +        ULONG       cInDoubt;           /* The number of transactions which are presently in doubt. */
> +        ULONG       cHeuristicDecision; /* The number of transactions that have completed by heuristic decision. */
> +        FILETIME    timeTransactionsUp; /* The amount of time that this transaction service has been up. */
> +        } XACTSTATS;

This is clearly a straight copy of the SDK header. You can't do that.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list