1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef __DTCHELP_H__
7 #define __DTCHELP_H__
8 
9 #include <_mingw_unicode.h>
10 #include <windows.h>
11 
12 #ifndef DEFINED_DTC_STATUS
13 #define DEFINED_DTC_STATUS
14 
15 typedef enum DTC_STATUS_ {
16   DTC_STATUS_UNKNOWN = 0,DTC_STATUS_STARTING = 1,DTC_STATUS_STARTED = 2,DTC_STATUS_PAUSING = 3,DTC_STATUS_PAUSED = 4,DTC_STATUS_CONTINUING = 5,
17   DTC_STATUS_STOPPING = 6,DTC_STATUS_STOPPED = 7,DTC_STATUS_E_CANTCONTROL = 8,DTC_STATUS_FAILED = 9
18 } DTC_STATUS;
19 #endif
20 
21 typedef HRESULT (__cdecl *DTC_GET_TRANSACTION_MANAGER)(char *pszHost,char *pszTmName,REFIID rid,DWORD dwReserved1,WORD wcbReserved2,void *pvReserved2,void **ppvObject);
22 typedef HRESULT (__cdecl *DTC_GET_TRANSACTION_MANAGER_EX_A)(char *i_pszHost,char *i_pszTmName,REFIID i_riid,DWORD i_grfOptions,void *i_pvConfigParams,void **o_ppvObject);
23 typedef HRESULT (__cdecl *DTC_GET_TRANSACTION_MANAGER_EX_W)(WCHAR *i_pwszHost,WCHAR *i_pwszTmName,REFIID i_riid,DWORD i_grfOptions,void *i_pvConfigParams,void **o_ppvObject);
24 typedef HRESULT (*DTC_INSTALL_CLIENT)(LPTSTR i_pszRemoteTmHostName,DWORD i_dwProtocol,DWORD i_dwOverwrite);
25 
26 #define DTC_GET_TRANSACTION_MANAGER_EX __MINGW_NAME_UAW(DTC_GET_TRANSACTION_MANAGER_EX)
27 #define LoadDtcHelperEx __MINGW_NAME_AW(LoadDtcHelperEx)
28 #define GetDTCStatus __MINGW_NAME_AW(GetDTCStatus)
29 #define StartDTC __MINGW_NAME_AW(StartDTC)
30 #define StopDTC __MINGW_NAME_AW(StopDTC)
31 
32 #define DTCINSTALL_E_CLIENT_ALREADY_INSTALLED __MSABI_LONG(0x0000180)
33 #define DTCINSTALL_E_SERVER_ALREADY_INSTALLED __MSABI_LONG(0x0000181)
34 
35 const DWORD DTC_INSTALL_OVERWRITE_CLIENT = 0x00000001;
36 const DWORD DTC_INSTALL_OVERWRITE_SERVER = 0x00000002;
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41   DTC_GET_TRANSACTION_MANAGER __cdecl LoadDtcHelper(void);
42   DTC_GET_TRANSACTION_MANAGER_EX_A __cdecl LoadDtcHelperExA(void);
43   DTC_GET_TRANSACTION_MANAGER_EX_W __cdecl LoadDtcHelperExW(void);
44   void __cdecl FreeDtcHelper(void);
45   HMODULE __cdecl GetDtcLocaleResourceHandle(void);
46   HRESULT __cdecl Initialize(void);
47   HRESULT __cdecl Uninitialize(void);
48   DTC_STATUS __cdecl GetDTCStatusW(WCHAR *wszHostName);
49   DTC_STATUS __cdecl GetDTCStatusA(LPSTR szHostName);
50   HRESULT __cdecl StartDTCW(WCHAR *wszHostName);
51   HRESULT __cdecl StartDTCA(LPSTR szHostName);
52   HRESULT __cdecl StopDTCW(WCHAR *wszHostName);
53   HRESULT __cdecl StopDTCA(LPSTR szHostName);
54   HRESULT __cdecl DtcInstallClient(LPTSTR i_pszRemoteTmHostName,DWORD i_dwProtocol,DWORD i_dwOverwrite);
55 #ifdef __cplusplus
56 }
57 #endif
58 
59 #endif
60