Daniel Jelinski : include: Added transact.idl.

Alexandre Julliard julliard at winehq.org
Mon May 6 14:08:45 CDT 2013


Module: wine
Branch: master
Commit: adafd6c49de86a1b1df2a13fbd00a309619e6bfc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=adafd6c49de86a1b1df2a13fbd00a309619e6bfc

Author: Daniel Jelinski <djelinski1 at gmail.com>
Date:   Fri May  3 15:58:54 2013 +0200

include: Added transact.idl.

---

 .gitignore           |    1 +
 dlls/adsiid/adsiid.c |    1 +
 include/Makefile.in  |    1 +
 include/transact.idl |  226 ++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 229 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index b13b6be..9cb851b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -246,6 +246,7 @@ include/structuredquerycondition.h
 include/textstor.h
 include/tlogstg.h
 include/tom.h
+include/transact.h
 include/uiautomationclient.h
 include/uiautomationcore.h
 include/unknwn.h
diff --git a/dlls/adsiid/adsiid.c b/dlls/adsiid/adsiid.c
index e4e85d8..fc0b8b1 100644
--- a/dlls/adsiid/adsiid.c
+++ b/dlls/adsiid/adsiid.c
@@ -25,3 +25,4 @@
 #include "initguid.h"
 
 #include "iads.h"
+#include "transact.h"
diff --git a/include/Makefile.in b/include/Makefile.in
index 9589c34..39821d2 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -98,6 +98,7 @@ PUBLIC_IDL_H_SRCS = \
 	textstor.idl \
 	tlogstg.idl \
 	tom.idl \
+	transact.idl \
 	uiautomationclient.idl \
 	uiautomationcore.idl \
 	unknwn.idl \
diff --git a/include/transact.idl b/include/transact.idl
new file mode 100644
index 0000000..c9dbc69
--- /dev/null
+++ b/include/transact.idl
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2013 Daniel Jeliński
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "unknwn.idl";
+
+cpp_quote("#include <winerror.h>")
+
+interface ITransaction;
+interface ITransactionCloner;
+interface ITransaction2;
+interface ITransactionDispenser;
+interface ITransactionOptions;
+interface ITransactionOutcomeEvents;
+interface ITmNodeName;
+
+typedef struct BOID {
+    byte rgb[16];
+} BOID;
+
+cpp_quote("#ifndef MAX_TRAN_DESC_DEFINED")
+cpp_quote("#define MAX_TRAN_DESC_DEFINED")
+typedef enum TX_MISC_CONSTANTS {
+    MAX_TRAN_DESC = 40
+} TX_MISC_CONSTANTS;
+cpp_quote("#endif")
+
+typedef BOID XACTUOW;
+typedef LONG ISOLEVEL;
+
+typedef enum ISOLATIONLEVEL {
+    ISOLATIONLEVEL_UNSPECIFIED = 0xffffffff,
+    ISOLATIONLEVEL_CHAOS = 0x10,
+    ISOLATIONLEVEL_READUNCOMMITTED = 0x100,
+    ISOLATIONLEVEL_BROWSE = 0x100,
+    ISOLATIONLEVEL_CURSORSTABILITY = 0x1000,
+    ISOLATIONLEVEL_READCOMMITTED = 0x1000,
+    ISOLATIONLEVEL_REPEATABLEREAD = 0x10000,
+    ISOLATIONLEVEL_SERIALIZABLE = 0x100000,
+    ISOLATIONLEVEL_ISOLATED = 0x100000
+} ISOLATIONLEVEL;
+
+typedef struct XACTTRANSINFO {
+    XACTUOW uow;
+    ISOLEVEL isoLevel;
+    ULONG isoFlags;
+    DWORD grfTCSupported;
+    DWORD grfRMSupported;
+    DWORD grfTCSupportedRetaining;
+    DWORD grfRMSupportedRetaining;
+} XACTTRANSINFO;
+
+typedef struct XACTSTATS {
+    ULONG cOpen;
+    ULONG cCommitting;
+    ULONG cCommitted;
+    ULONG cAborting;
+    ULONG cAborted;
+    ULONG cInDoubt;
+    ULONG cHeuristicDecision;
+    FILETIME timeTransactionsUp;
+} XACTSTATS;
+
+typedef enum ISOFLAG {
+    ISOFLAG_RETAIN_COMMIT_DC = 1,
+    ISOFLAG_RETAIN_COMMIT = 2,
+    ISOFLAG_RETAIN_COMMIT_NO = 3,
+    ISOFLAG_RETAIN_ABORT_DC = 4,
+    ISOFLAG_RETAIN_ABORT = 8,
+    ISOFLAG_RETAIN_ABORT_NO = 12,
+    ISOFLAG_RETAIN_DONTCARE = ISOFLAG_RETAIN_COMMIT_DC | ISOFLAG_RETAIN_ABORT_DC,
+    ISOFLAG_RETAIN_BOTH = ISOFLAG_RETAIN_COMMIT | ISOFLAG_RETAIN_ABORT,
+    ISOFLAG_RETAIN_NONE = ISOFLAG_RETAIN_COMMIT_NO | ISOFLAG_RETAIN_ABORT_NO,
+    ISOFLAG_OPTIMISTIC = 16,
+    ISOFLAG_READONLY = 32
+} ISOFLAG;
+
+typedef enum XACTTC {
+    XACTTC_NONE = 0,
+    XACTTC_SYNC_PHASEONE = 1,
+    XACTTC_SYNC_PHASETWO = 2,
+    XACTTC_SYNC = 2,
+    XACTTC_ASYNC_PHASEONE = 4,
+    XACTTC_ASYNC = 4
+} XACTTC;
+
+typedef enum XACTRM {
+    XACTRM_OPTIMISTICLASTWINS = 1,
+    XACTRM_NOREADONLYPREPARES
+} XACTRM;
+
+typedef enum XACTCONST {
+    XACTCONST_TIMEOUTINFINITE
+} XACTCONST;
+
+typedef enum XACTHEURISTIC {
+    XACTHEURISTIC_ABORT = 1,
+    XACTHEURISTIC_COMMIT,
+    XACTHEURISTIC_DAMAGE,
+    XACTHEURISTIC_DANGER
+} XACTHEURISTIC;
+
+typedef enum XACTSTAT {
+    XACTSTAT_NONE = 0,
+    XACTSTAT_OPENNORMAL = 0x1,
+    XACTSTAT_OPENREFUSED = 0x2,
+    XACTSTAT_PREPARING = 0x4,
+    XACTSTAT_PREPARED = 0x8,
+    XACTSTAT_PREPARERETAINING = 0x10,
+    XACTSTAT_PREPARERETAINED = 0x20,
+    XACTSTAT_COMMITTING = 0x40,
+    XACTSTAT_COMMITRETAINING = 0x80,
+    XACTSTAT_ABORTING = 0x100,
+    XACTSTAT_ABORTED = 0x200,
+    XACTSTAT_COMMITTED = 0x400,
+    XACTSTAT_HEURISTIC_ABORT = 0x800,
+    XACTSTAT_HEURISTIC_COMMIT = 0x1000,
+    XACTSTAT_HEURISTIC_DAMAGE = 0x2000,
+    XACTSTAT_HEURISTIC_DANGER = 0x4000,
+    XACTSTAT_FORCED_ABORT = 0x8000,
+    XACTSTAT_FORCED_COMMIT = 0x10000,
+    XACTSTAT_INDOUBT = 0x20000,
+    XACTSTAT_CLOSED = 0x40000,
+    XACTSTAT_OPEN = 0x3,
+    XACTSTAT_NOTPREPARED = 0x7ffc3,
+    XACTSTAT_ALL = 0x7ffff
+} XACTSTAT;
+
+typedef struct XACTOPT {
+    ULONG ulTimeout;
+    char szDescription[40 ];
+} XACTOPT;
+
+[
+    object,
+    uuid(0fb15084-af41-11ce-bd2b-204c4f4f5020)
+]
+interface ITransaction : IUnknown {
+    HRESULT Commit([in] BOOL fRetaining,
+                   [in] DWORD grfTC,
+                   [in] DWORD grfRM);
+    HRESULT Abort([in, unique] BOID *pboidReason,
+                  [in] BOOL fRetaining,
+                  [in] BOOL fAsync);
+    HRESULT GetTransactionInfo([out] XACTTRANSINFO *pinfo);
+};
+
+[
+    object,
+    uuid(02656950-2152-11d0-944C-00A0C905416E)
+]
+interface ITransactionCloner : ITransaction {
+    HRESULT CloneWithCommitDisabled([out] ITransaction **ppITransaction);
+};
+
+[
+    object,
+    uuid(34021548-0065-11d3-bac1-00c04f797be2)
+]
+interface ITransaction2 : ITransactionCloner {
+    HRESULT GetTransactionInfo2([out] XACTTRANSINFO *pinfo);
+};
+
+[
+    object,
+    uuid(3A6AD9E1-23B9-11cf-AD60-00AA00A74CCD)
+]
+interface ITransactionDispenser : IUnknown {
+    HRESULT GetOptionsObject([out] ITransactionOptions **ppOptions);
+    HRESULT BeginTransaction([in, unique] IUnknown *punkOuter,
+                             [in] ISOLEVEL isoLevel,
+                             [in] ULONG isoFlags,
+                             [in, unique] ITransactionOptions *pOptions,
+                             [out] ITransaction **ppTransaction);
+};
+
+[
+    object,
+    uuid(3A6AD9E0-23B9-11cf-AD60-00AA00A74CCD)
+]
+interface ITransactionOptions : IUnknown {
+    HRESULT SetOptions([in] XACTOPT *pOptions);
+    HRESULT GetOptions([in, out] XACTOPT *pOptions);
+};
+
+[
+    object,
+    uuid(3A6AD9E2-23B9-11cf-AD60-00AA00A74CCD)
+]
+interface ITransactionOutcomeEvents : IUnknown {
+    HRESULT Committed([in] BOOL fRetaining,
+                      [in, unique] XACTUOW *pNewUOW,
+                      [in] HRESULT hr);
+    HRESULT Aborted([in, unique] BOID *pboidReason,
+                    [in] BOOL fRetaining,
+                    [in, unique] XACTUOW *pNewUOW,
+                    [in] HRESULT hr);
+    HRESULT HeuristicDecision([in] DWORD dwDecision,
+                              [in, unique] BOID *pboidReason,
+                              [in] HRESULT hr);
+    HRESULT Indoubt(void);
+};
+
+[
+    object,
+    uuid(30274F88-6EE4-474e-9B95-7807BC9EF8CF)
+]
+interface ITmNodeName : IUnknown {
+    HRESULT GetNodeNameSize([out] ULONG *pcbNodeNameSize);
+    HRESULT GetNodeName([in] ULONG cbNodeNameBufferSize,
+                        [in, out] LPWSTR pNodeNameBuffer);
+};




More information about the wine-cvs mailing list