Can I use mingw headers instead?
I see that we already have some of these (mprerror.h, fltdefs.h, several more in msvcrt directory), and they have the header I need (http://sourceforge.net/apps/trac/mingw-w64/browser/experimental/headers_additions_test/include/transact.h).


2013/5/1 Juan Lang <juan.lang@gmail.com>
Type it yourself. Refer to MSDN, public descriptions, and publicly available headers, but don't copy/paste from any of them.
--Juan


On Wed, May 1, 2013 at 3:56 AM, Daniel Jeli���ski <djelinski1@gmail.com> wrote:
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