It probably is, I downloaded it somewhere. Had to remove some stuff to get it to compile. I think saw some mail saying that headers aren't copyrighted.Anyway. What's the correct approach here? I mean, I clearly shouldn't add anything, and removing stuff also doesn't look like the right idea. Well I could remove comments, but that's hardly innovative. What's the usual way to do it?
2013/5/1 Alexandre Julliard <julliard@winehq.org>
Daniel Jeliński <djelinski1@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@winehq.org