This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/Borland/BCC55/Include/repldist.h

489 lines
13 KiB
C++

#ifndef _REPLDIST_H_
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define _REPLDIST_H_
// OLEDB header
#include "oledb.h"
#ifndef __IDistributionStore_FWD_DEFINED__
#define __IDistributionStore_FWD_DEFINED__
typedef interface IDistributionStore IDistributionStore;
#endif /* __IDistributionStore_FWD_DEFINED__ */
#ifndef __IDistributionStore_INTERFACE_DEFINED__
#define __IDistributionStore_INTERFACE_DEFINED__
// SQLDistributionStore's CLSID
// {16D9A8E2-C326-11d0-94E9-00C04FC2DB9C}
DEFINE_GUID(CLSID_SQLDistribution,
0x16d9a8e2, 0xc326, 0x11d0, 0x94, 0xe9, 0x0, 0xc0, 0x4f, 0xc2, 0xdb, 0x9c);
// {63797CA0-9684-11d0-94DD-00C04FC2DB9C}
DEFINE_GUID(IID_IDistributionStore,
0x63797ca0, 0x9684, 0x11d0, 0x94, 0xdd, 0x0, 0xc0, 0x4f, 0xc2, 0xdb, 0x9c);
// {074EACFD-A791-11d0-94E0-00C04FC2DB9C}
DEFINE_GUID(IID_IDistributionLog,
0x74eacfd, 0xa791, 0x11d0, 0x94, 0xe0, 0x0, 0xc0, 0x4f, 0xc2, 0xdb, 0x9c);
typedef DWORD DISTCMDTYPE;
class DistByteArray
{
private:
BYTE rgDistByteArray[16];
public:
DistByteArray(){memset(rgDistByteArray, 0, sizeof(rgDistByteArray));}
~DistByteArray(){}
BYTE* operator& ()
{
return rgDistByteArray;
}
// Pre-increment
DistByteArray& operator++ ()
{
return Increment();
}
// Post-increment
DistByteArray& operator++ (int dummy)
{
return Increment();
}
DistByteArray& Increment()
{
for (int i=sizeof(rgDistByteArray)-1; i>=0; i--)
{
UCHAR *pByte = ((UCHAR *) rgDistByteArray + i);
if (0xFF == *pByte)
{
*pByte = 0;
continue;
}
else
{
(*pByte)++;
break;
}
}
return *this;
}
};
enum DISTCMDTYPEENUM
{
DISTCMDTYPE_SQL = 1,
DISTCMDTYPE_SCRIPT = 2,
DISTCMDTYPE_NATIVE_BCP = 3,
DISTCMDTYPE_CHAR_BCP = 4,
DISTCMDTYPE_SQL_WORKINGDIR = 7
};
typedef struct tagDISTCOMMANDDESC
{
INT PublicationId;
INT ArticleId;
INT CommandId;
DISTCMDTYPE CommandType;
BOOL fPartialCommand;
LPSTR szCommand;
BYTE* pXactId;
BYTE* pXactSeqno;
LPSTR szOriginator;
LPSTR szOriginatorDB;
} DISTCOMMANDDESC;
// Error source type
typedef enum {
DIST_SOURCE_NULL = 0,
DIST_SOURCE_COMMAND = 1,
DIST_SOURCE_AGENT = 2,
DIST_SOURCE_OS = 3,
DIST_SOURCE_ODBC = 4,
DIST_SOURCE_SQLSERVER = 5
} DISTERRSRCTYPE;
typedef struct tagDISTERRORDESC
{
DISTERRSRCTYPE SourceType;
CHAR szSourceName[31];
CHAR szErrorCode[31];
BSTR bstrErrorText;
} DISTERRORDESC;
typedef DWORD DISTLOGSTATUS;
enum DISTLOGSTATUSENUM
{
DISTLOG_STARTUP = 1,
DISTLOG_SUCCESS = 2,
DISTLOG_INPROGRESS = 3,
DISTLOG_IDLE = 4,
DISTLOG_RETRY = 5,
DISTLOG_FAILURE = 6
};
typedef BYTE DISTAPPTYPE;
enum DISTTYPEENUM
{
DISTTYPE_SNAPSHOT = 0,
DISTTYPE_LOGREADER = 1
};
enum DISTPROPENUM
{ DBPROP_INIT_PUBLISHER_NAME = 0xFF1,
DBPROP_INIT_PUBLISHER_DATASOURCE = 0xFF2,
DBPROP_INIT_XACTID_SIZE = 0xFF3,
DBPROP_INIT_XACT_SEQNO_SIZE = 0xFF4,
DBPROP_PUBLICATION_NAME = 0xFF5,
DBPROP_APPLICATION_NAME = 0xFF6,
DBPROP_APPLICATION_TYPE = 0xFF7
};
EXTERN_C const IID IID_IDistributionStore;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IDistributionStore : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLastTransaction(
/* [out] */ BYTE* pXactId,
/* [out] */ BYTE* pXactSeqno) = 0;
virtual HRESULT STDMETHODCALLTYPE AddTransactionCommands(
/* [in] */ ULONG cCommandDescs,
/* [size_is][in] */ const DISTCOMMANDDESC __RPC_FAR rgCommandDescs[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE StartTransaction( void) = 0;
};
#else /* C style interface */
typedef struct IDistributionStoreVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IDistributionStore __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IDistributionStore __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IDistributionStore __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Abort )(
IDistributionStore __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Commit )(
IDistributionStore __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetLastTransaction )(
IDistributionStore __RPC_FAR * This,
/* [out] */ BYTE* pXactId,
/* [out] */ BYTE* pXactSeqno);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddTransactionCommands )(
IDistributionStore __RPC_FAR * This,
/* [in] */ ULONG cCommandDescs,
/* [size_is][in] */ const DISTCOMMANDDESC __RPC_FAR rgCommandDescs[ ]);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *StartTransaction )(
IDistributionStore __RPC_FAR * This);
END_INTERFACE
} IDistributionStoreVtbl;
interface IDistributionStore
{
CONST_VTBL struct IDistributionStoreVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IDistributionStore_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IDistributionStore_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IDistributionStore_Release(This) \
(This)->lpVtbl -> Release(This)
#define IDistributionStore_Abort(This) \
(This)->lpVtbl -> Abort(This)
#define IDistributionStore_Commit(This) \
(This)->lpVtbl -> Commit(This)
#define IDistributionStore_GetLastTransaction(This) \
(This)->lpVtbl -> GetLastTransaction(This, pXactId, pXactSeqno)
#define IDistributionStore_AddTransactionCommands(This) \
(This)->lpVtbl -> AddTransactionCommands(This, cCommandDescs, rgCommandDescs)
#define IDistributionStore_StartTransaction(This) \
(This)->lpVtbl -> StartTransaction(This)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IDistributionStore_Abort_Proxy(
IDistributionStore __RPC_FAR * This);
void __RPC_STUB IDistributionStore_Abort_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IDistributionStore_Commit_Proxy(
IDistributionStore __RPC_FAR * This);
void __RPC_STUB IDistributionStore_Commit_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IDistributionStore_GetLastTransaction_Proxy(
IDistributionStore __RPC_FAR * This,
BYTE* pXactId,
BYTE* pXactSeqno);
void __RPC_STUB IDistributionStore_GetLastTransaction_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IDistributionStore_AddTransactionCommands_Proxy(
IDistributionStore __RPC_FAR * This,
ULONG cCommandDescs,
const DISTCOMMANDDESC __RPC_FAR rgCommandDescs[ ]);
void __RPC_STUB IDistributionStore_AddTransactionCommands_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IDistributionStore_StartTransaction_Proxy(
IDistributionStore __RPC_FAR * This);
void __RPC_STUB IDistributionStore_StartTransaction_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IDistributionStore_INTERFACE_DEFINED__ */
#ifndef __IDistributionLog_FWD_DEFINED__
#define __IDistributionLog_FWD_DEFINED__
typedef interface IDistributionLog IDistributionLog;
#endif /* __IDistributionLog_FWD_DEFINED__ */
#ifndef __IDistributionLog_INTERFACE_DEFINED__
#define __IDistributionLog_INTERFACE_DEFINED__
EXTERN_C const IID IID_IDistributionLog;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IDistributionLog : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE AddLog(
/* [in] */ DWORD dwStatusId,
/* [in] */ LPSTR szComment,
/* [in] */ BYTE* pXactSeqno,
/* [in] */ ULONG ulTransactions,
/* [in] */ ULONG ulCommands,
/* [in] */ ULONG cErrorDescs,
/* [size_is][in] */ const DISTERRORDESC __RPC_FAR rgErrorDescs[ ]) = 0;
};
#else /* C style interface */
typedef struct IDistributionLogVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IDistributionLog __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IDistributionLog __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddLog )(
IDistributionLog __RPC_FAR * This,
/* [in] */ DWORD dwStatusId,
/* [in] */ LPSTR szComment,
/* [in] */ BYTE* pXactSeqno,
/* [in] */ ULONG ulTransactions,
/* [in] */ ULONG ulCommands,
/* [in] */ ULONG cErrorDescs,
/* [size_is][in] */ const DISTERRORDESC __RPC_FAR rgErrorDescs[ ]);
END_INTERFACE
} IDistributionLogVtbl;
interface IDistributionLog
{
CONST_VTBL struct IDistributionLogVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IDistributionLog_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IDistributionLog_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IDistributionLog_Release(This) \
(This)->lpVtbl -> Release(This)
#define IDistributionLog_AddLog(This) \
(This)->lpVtbl -> AddLog(This, dwStatusId, szComment, pXactSeqno, cTransactions, cCommands, cErrorDescs, rgErrorDescs)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IDistributionLog_AddLog_Proxy(
IDistributionLog __RPC_FAR * This,
DWORD dwStatusId,
LPSTR szComment,
BYTE* pXactSeqno,
ULONG ulTransactions,
ULONG ulCommands,
ULONG cErrorDescs,
const DISTERRORDESC __RPC_FAR rgErrorDescs[ ]);
void __RPC_STUB IDistributionLog_AddLog_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IDistributionLog_INTERFACE_DEFINED__ */
#ifndef __IGetCustomErrorInfo_FWD_DEFINED__
#define __IGetCustomErrorInfo_FWD_DEFINED__
typedef interface IGetCustomErrorInfo IGetCustomErrorInfo ;
#endif /* __IGetCustomErrorInfo_FWD_DEFINED__ */
#ifndef __IGetCustomErrorInfo_INTERFACE_DEFINED__
#define __IGetCustomErrorInfo_INTERFACE_DEFINED__
// @msg IID_IGetCustomErrorInfo | {D83B7C8D-F22F-11d0-9AE8-00C04FB6B6EF}
// Interface ID to the IGetCustomErrorInfo interface
DEFINE_GUID(IID_IGetCustomErrorInfo, 0xd83b7c8d, 0xf22f, 0x11d0, 0x9a, 0xe8, 0x0, 0xc0, 0x4f, 0xb6, 0xb6, 0xef);
// @msg CLSID_DistErrorLookup | {246CBC55-F3E8-11d0-9AEB-00C04FB6B6EF}
// ID of the Distribution Error Lookup Service class
DEFINE_GUID(CLSID_DistErrorLookup,0x246cbc55, 0xf3e8, 0x11d0, 0x9a, 0xeb, 0x0, 0xc0, 0x4f, 0xb6, 0xb6, 0xef);
EXTERN_C const IID IID_IGetCustomErrorInfo;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IGetCustomErrorInfo : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetCustomErrorInfo(DISTERRORDESC * pDistErrorDesc) = 0;
};
#else /* C style interface */
typedef struct IGetCustomErrorInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IGetCustomErrorInfo __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IGetCustomErrorInfo __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IGetCustomErrorInfo __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCustomErrorInfo )(
IGetCustomErrorInfo __RPC_FAR * This,
/* out */ REPL_ERROR * pReplError);
END_INTERFACE
} IGetCustomErrorInfoVtbl;
interface IGetCustomErrorInfo
{
CONST_VTBL struct IGetCustomErrorInfoVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IGetCustomErrorInfo_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IGetCustomErrorInfo_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IGetCustomErrorInfo_Release(This) \
(This)->lpVtbl -> Release(This)
#define IGetCustomErrorInfo_GetCustomErrorInfo(This,pReplError) \
(This)->lpVtbl -> GetCustomErrorInfo(This,pReplError)
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IGetCustomErrorInfo_INTERFACE_DEFINED__ */
#pragma option pop /*P_O_Pop*/
#endif // _REPLDIST_H_